Revision tags: llvmorg-18.1.8, llvmorg-18.1.7, llvmorg-18.1.6, llvmorg-18.1.5, llvmorg-18.1.4, llvmorg-18.1.3, llvmorg-18.1.2, llvmorg-18.1.1, llvmorg-18.1.0, llvmorg-18.1.0-rc4, llvmorg-18.1.0-rc3, llvmorg-18.1.0-rc2, llvmorg-18.1.0-rc1, llvmorg-19-init, llvmorg-17.0.6, llvmorg-17.0.5, llvmorg-17.0.4, llvmorg-17.0.3, llvmorg-17.0.2, llvmorg-17.0.1, llvmorg-17.0.0, llvmorg-17.0.0-rc4, llvmorg-17.0.0-rc3, llvmorg-17.0.0-rc2, llvmorg-17.0.0-rc1, llvmorg-18-init, llvmorg-16.0.6, llvmorg-16.0.5, llvmorg-16.0.4, llvmorg-16.0.3, llvmorg-16.0.2, llvmorg-16.0.1, llvmorg-16.0.0, llvmorg-16.0.0-rc4, llvmorg-16.0.0-rc3, llvmorg-16.0.0-rc2, llvmorg-16.0.0-rc1, llvmorg-17-init |
|
#
23cc36e4 |
| 16-Jan-2023 |
Matt Arsenault <Matthew.Arsenault@amd.com> |
llvm-reduce: Use consistent ReductionFunc types
Some of these were relying on ReducerWorkItem's operator Module&.
|
Revision tags: llvmorg-15.0.7 |
|
#
a50cec5b |
| 04-Jan-2023 |
Matt Arsenault <Matthew.Arsenault@amd.com> |
llvm-reduce: Don't delete instructions in global variable reduction
For some reason the global variable reduction was trying to delete use instructions. This broke the verifier if the user was a ter
llvm-reduce: Don't delete instructions in global variable reduction
For some reason the global variable reduction was trying to delete use instructions. This broke the verifier if the user was a terminator, since the block now no longer has one. It doesn't make sense for this reduction to delete the users, so just stop doing that.
show more ...
|
#
aa9bdd50 |
| 09-Dec-2022 |
Matt Arsenault <Matthew.Arsenault@amd.com> |
llvm-reduce: Fix invalid reductions with llvm.used
Fixes issue 59413.
|
Revision tags: llvmorg-15.0.6, llvmorg-15.0.5, llvmorg-15.0.4, llvmorg-15.0.3 |
|
#
2592ccde |
| 18-Oct-2022 |
Arthur Eubanks <aeubanks@google.com> |
[llvm-reduce] Unify pass logging
We randomly use outs() or errs(), which makes test logs confusing. We also randomly add/don't add a line afterward.
Reviewed By: arsenm
Differential Revision: http
[llvm-reduce] Unify pass logging
We randomly use outs() or errs(), which makes test logs confusing. We also randomly add/don't add a line afterward.
Reviewed By: arsenm
Differential Revision: https://reviews.llvm.org/D136130
show more ...
|
Revision tags: working, llvmorg-15.0.2, llvmorg-15.0.1, llvmorg-15.0.0, llvmorg-15.0.0-rc3, llvmorg-15.0.0-rc2, llvmorg-15.0.0-rc1, llvmorg-16-init, llvmorg-14.0.6 |
|
#
2962f9df |
| 21-Jun-2022 |
John Regehr <regehr@cs.utah.edu> |
stop llvm-reduce from introducing undefs
Differential Revision: https://reviews.llvm.org/D128317
|
Revision tags: llvmorg-14.0.5, llvmorg-14.0.4, llvmorg-14.0.3, llvmorg-14.0.2, llvmorg-14.0.1, llvmorg-14.0.0, llvmorg-14.0.0-rc4, llvmorg-14.0.0-rc3, llvmorg-14.0.0-rc2, llvmorg-14.0.0-rc1, llvmorg-15-init, llvmorg-13.0.1, llvmorg-13.0.1-rc3, llvmorg-13.0.1-rc2, llvmorg-13.0.1-rc1 |
|
#
6f288bd7 |
| 12-Nov-2021 |
Arthur Eubanks <aeubanks@google.com> |
[llvm-reduce] Count chunks by running a preliminary reduction
Having a separate counting method runs the risk of a mismatch between the actual reduction method and the counting method.
Instead, cre
[llvm-reduce] Count chunks by running a preliminary reduction
Having a separate counting method runs the risk of a mismatch between the actual reduction method and the counting method.
Instead, create an Oracle that always returns true for shouldKeep(), run the reduction, and count how many times shouldKeep() was called. The module should not be modified if shouldKeep() always returns true.
Reviewed By: Meinersbur
Differential Revision: https://reviews.llvm.org/D113537
show more ...
|
#
2f161736 |
| 29-Oct-2021 |
Dwight Guth <dwight.guth@runtimeverification.com> |
[llvm-reduce] optimize extractFromModule functions
The extractBasicBlocksFromModule, extractInstrFromModule, and other similar functions previously performed very poorly when the number of such elem
[llvm-reduce] optimize extractFromModule functions
The extractBasicBlocksFromModule, extractInstrFromModule, and other similar functions previously performed very poorly when the number of such elements in the program to reduce was very high. Previously, we were creating the set which caches elements to keep by looping through all elements in the module and adding them to the set. However, since std::set is an ordered set, this introduces a massive amount of rebalancing if the order of elements in the program and the order of their pointers in memory are not the same.
The solution is straightforward: first put all the elements to be kept in a vector, then use the constructor for std::set which takes a pair of iterators over a collection. This constructor is optimized to avoid doing unnecessary work when initializing large sets.
Also in this change, we pass BBsToKeep set to functions replaceBranchTerminator and removeUninterestingBBsFromSwitch as a const reference rather than passing it by value. This ought to prevent the need to copy the collection each time these functions are called, which is expensive if the collection is large.
Reviewed By: aeubanks
Differential Revision: https://reviews.llvm.org/D112757
show more ...
|
#
77bc3ba3 |
| 05-Oct-2021 |
Arthur Eubanks <aeubanks@google.com> |
[NFC][llvm-reduce] Cleanup types
Use Module& wherever possible. Since every reduction immediately turns Chunks into an Oracle, directly pass Oracle instead.
Reviewed By: hans
Differential Revision
[NFC][llvm-reduce] Cleanup types
Use Module& wherever possible. Since every reduction immediately turns Chunks into an Oracle, directly pass Oracle instead.
Reviewed By: hans
Differential Revision: https://reviews.llvm.org/D111122
show more ...
|
Revision tags: llvmorg-13.0.0, llvmorg-13.0.0-rc4, llvmorg-13.0.0-rc3, llvmorg-13.0.0-rc2, llvmorg-13.0.0-rc1, llvmorg-14-init, llvmorg-12.0.1, llvmorg-12.0.1-rc4, llvmorg-12.0.1-rc3, llvmorg-12.0.1-rc2, llvmorg-12.0.1-rc1, llvmorg-12.0.0, llvmorg-12.0.0-rc5 |
|
#
56fa1b4f |
| 02-Apr-2021 |
Samuel <swamulism@gmail.com> |
[llvm-reduce] Add header guards and fix clang-tidy warnings
Add header guards and fix other clang-tidy warnings in .h files. Also align misaligned header docs
Reviewed By: aeubanks
Differential Re
[llvm-reduce] Add header guards and fix clang-tidy warnings
Add header guards and fix other clang-tidy warnings in .h files. Also align misaligned header docs
Reviewed By: aeubanks
Differential Revision: https://reviews.llvm.org/D99634
show more ...
|
Revision tags: llvmorg-12.0.0-rc4, llvmorg-12.0.0-rc3, llvmorg-12.0.0-rc2, llvmorg-11.1.0, llvmorg-11.1.0-rc3, llvmorg-12.0.0-rc1, llvmorg-13-init, llvmorg-11.1.0-rc2, llvmorg-11.1.0-rc1 |
|
#
5799fc79 |
| 02-Jan-2021 |
Roman Lebedev <lebedev.ri@gmail.com> |
[llvm-reduce] Refactor global variable delta pass
The limitation of the current pass that it skips initializer-less GV's seems arbitrary, in all the reduced cases i (personally) looked at, the globa
[llvm-reduce] Refactor global variable delta pass
The limitation of the current pass that it skips initializer-less GV's seems arbitrary, in all the reduced cases i (personally) looked at, the globals weren't needed, yet they were kept.
So let's do two things: 1. allow reducing initializer-less globals 2. before reducing globals, reduce their initializers, much like we do function bodies
show more ...
|
Revision tags: llvmorg-11.0.1, llvmorg-11.0.1-rc2, llvmorg-11.0.1-rc1, llvmorg-11.0.0, llvmorg-11.0.0-rc6, llvmorg-11.0.0-rc5, llvmorg-11.0.0-rc4, llvmorg-11.0.0-rc3, llvmorg-11.0.0-rc2, llvmorg-11.0.0-rc1, llvmorg-12-init |
|
#
a39c7ab9 |
| 08-Jul-2020 |
Roman Lebedev <lebedev.ri@gmail.com> |
[NFCI][llvm-reduce] Cleanup Delta passes to use Oracle abstraction
Summary: I think, this results in much more understandable/readable flow. At least the original logic was perhaps the most hard thi
[NFCI][llvm-reduce] Cleanup Delta passes to use Oracle abstraction
Summary: I think, this results in much more understandable/readable flow. At least the original logic was perhaps the most hard thing for me to grasp when taking an initial look on the delta passes.
Reviewers: nickdesaulniers, dblaikie, diegotf, george.burgess.iv
Reviewed By: nickdesaulniers
Subscribers: llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D83287
show more ...
|
Revision tags: llvmorg-10.0.1, llvmorg-10.0.1-rc4, llvmorg-10.0.1-rc3 |
|
#
f804bd58 |
| 04-Jul-2020 |
Roman Lebedev <lebedev.ri@gmail.com> |
[llvm-reduce] extractGVsFromModule(): don't crash when deleting instr twice
As it can be seen in newly-added (previously-crashing) test-case, there can be a situation where multiple GV's are used in
[llvm-reduce] extractGVsFromModule(): don't crash when deleting instr twice
As it can be seen in newly-added (previously-crashing) test-case, there can be a situation where multiple GV's are used in instr, and we would schedule the same instruction to be deleted several times, crashing when trying to delete it the second time.
We could either store WeakVH (done here), or use something set-like. I think using WeakVH is prevalent in these cases elsewhere.
show more ...
|
Revision tags: llvmorg-10.0.1-rc2 |
|
#
457db403 |
| 24-Jun-2020 |
Simon Pilgrim <llvm-dev@redking.me.uk> |
Cloning.h - reduce AliasAnalysis.h include to forward declarations. NFC.
Fix implicit include dependencies in source files.
|
Revision tags: llvmorg-10.0.1-rc1, llvmorg-10.0.0, llvmorg-10.0.0-rc6, llvmorg-10.0.0-rc5, llvmorg-10.0.0-rc4, llvmorg-10.0.0-rc3, llvmorg-10.0.0-rc2, llvmorg-10.0.0-rc1, llvmorg-11-init, llvmorg-9.0.1, llvmorg-9.0.1-rc3, llvmorg-9.0.1-rc2, llvmorg-9.0.1-rc1 |
|
#
c4da7eec |
| 18-Sep-2019 |
David Blaikie <dblaikie@gmail.com> |
llvm-reduce: Fix inconsistencies between int/unsigned usage (standardize on int)
llvm-svn: 372270
|
Revision tags: llvmorg-9.0.0, llvmorg-9.0.0-rc6, llvmorg-9.0.0-rc5 |
|
#
aac114ca |
| 10-Sep-2019 |
David Blaikie <dblaikie@gmail.com> |
llvm-reduce: Remove some unused headers/more narrowly include them
llvm-svn: 371564
|
#
345fbfd7 |
| 10-Sep-2019 |
David Blaikie <dblaikie@gmail.com> |
llvm-remove: Remove "using namespace" in header.
llvm-svn: 371563
|
Revision tags: llvmorg-9.0.0-rc4, llvmorg-9.0.0-rc3 |
|
#
45d20563 |
| 24-Aug-2019 |
Benjamin Kramer <benny.kra@googlemail.com> |
[llvm-reduce] Silence -Wdocumentation
ReduceGlobalVars.cpp:17:6: warning: '@returns' command used in a comment that is attached to a function returning void
llvm-svn: 369848
|
#
0ffe687e |
| 15-Aug-2019 |
Diego Trevino Ferrer <diegof30@gmail.com> |
[Bugpoint redesign] Added Pass to Remove Global Variables
Summary: This pass tries to remove Global Variables, as well as their derived uses. For example if a variable `@x` is used by `%call1` and `
[Bugpoint redesign] Added Pass to Remove Global Variables
Summary: This pass tries to remove Global Variables, as well as their derived uses. For example if a variable `@x` is used by `%call1` and `%call2`, both these uses and the definition of `@x` are deleted. Moreover if `%call1` or `%call2` are used elsewhere those uses are also deleted, and so on recursively.
I'm still uncertain if this pass should remove derived uses, I'm open to suggestions.
Subscribers: mgorny, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D64176
> llvm-svn: 368918
llvm-svn: 369061
show more ...
|
#
10e3fa28 |
| 15-Aug-2019 |
Jonas Devlieghere <jonas@devlieghere.com> |
[NFC] Remove documentation comment to fix warning.
Remove the @return to fix the warning: '@returns' command used in a comment that is attached to a function returning void [-Wdocumentation]
llvm-s
[NFC] Remove documentation comment to fix warning.
Remove the @return to fix the warning: '@returns' command used in a comment that is attached to a function returning void [-Wdocumentation]
llvm-svn: 368957
show more ...
|
#
d1ffcd07 |
| 14-Aug-2019 |
Diego Trevino Ferrer <diegof30@gmail.com> |
[Bugpoint redesign] Added Pass to Remove Global Variables
Summary: This pass tries to remove Global Variables, as well as their derived uses. For example if a variable `@x` is used by `%call1` and `
[Bugpoint redesign] Added Pass to Remove Global Variables
Summary: This pass tries to remove Global Variables, as well as their derived uses. For example if a variable `@x` is used by `%call1` and `%call2`, both these uses and the definition of `@x` are deleted. Moreover if `%call1` or `%call2` are used elsewhere those uses are also deleted, and so on recursively.
I'm still uncertain if this pass should remove derived uses, I'm open to suggestions.
Subscribers: mgorny, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D64176
llvm-svn: 368918
show more ...
|