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 |
|
#
92c2529c |
| 04-Dec-2023 |
Kazu Hirata <kazu@google.com> |
[llvm] Stop including vector (NFC)
Identified with clangd.
|
#
bc265bd6 |
| 01-Dec-2023 |
Kazu Hirata <kazu@google.com> |
[llvm-reduce] Stop including llvm/ADT/SetVector.h (NFC)
Identified with clangd.
|
Revision tags: 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 |
|
#
ae6a5c1d |
| 03-Jan-2023 |
Matt Arsenault <Matthew.Arsenault@amd.com> |
llvm-reduce: Fix assertion on blockaddress during function reduction
Just avoid crashing for now, we should be able to replace the blockaddresses themselves.
BlockAddress::handleOperandChangeImpl a
llvm-reduce: Fix assertion on blockaddress during function reduction
Just avoid crashing for now, we should be able to replace the blockaddresses themselves.
BlockAddress::handleOperandChangeImpl assumes it can cast to Function. The verifier seems nonexistent and the langref isn't particularly explicit on what's allowed as a blockaddress operand. As far as I can tell bugpoint isn't doing anything to handle this.
Something low level is broken with BlockAddress handling, demonstrated by reduce-functions-blockaddress-wrong-function.ll. The BasicBlock destructor of the deleted function is triggering replacement of blockaddresses for the kept function in some cases. I've only half debugged this but it seems like blockaddress is handled too-specially compared to other Constants. I have tentative patches to allow any constant to be a blockaddress input, but having the verifier check if it's really a function/block.
https://reviews.llvm.org/D140909
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 |
|
#
195087d8 |
| 09-Aug-2022 |
Arthur Eubanks <aeubanks@google.com> |
[llvm-reduce] Try harder to not create invalid aliases
This was done by adding --abort-on-invalid-reduction to remove-function-bodies-used-in-globals.ll and fixing the fallout.
Aliases must have a
[llvm-reduce] Try harder to not create invalid aliases
This was done by adding --abort-on-invalid-reduction to remove-function-bodies-used-in-globals.ll and fixing the fallout.
Aliases must have a GlobalValue or ConstantExpr aliasee and the aliasee must be a definition if it's a GlobalValue. Don't RAUW functions with null if there's an alias pointing to it, and similarly don't delete the body of a function. Don't delete the entire body of a function when reducing blocks, preserve at least one block.
Also make debugging these sorts of things easier by dumping the module when --abort-on-invalid-reduction triggers.
Reviewed By: regehr
Differential Revision: https://reviews.llvm.org/D131505
show more ...
|
Revision tags: 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 |
|
#
a5bbc6ef |
| 23-Feb-2022 |
Bill Wendling <isanbard@gmail.com> |
[NFC] Remove unnecessary "#include"s from header files
|
Revision tags: 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 ...
|
#
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, 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 |
|
#
19ab1817 |
| 02-Jan-2021 |
Roman Lebedev <lebedev.ri@gmail.com> |
[llvm-reduce] Fix removal of unused llvm intrinsics declarations
ee6e25e4391a6d3ac0a3c89615474e512f44cda6 changed the delta pass to skip intrinsics, which means we may end up being left with declara
[llvm-reduce] Fix removal of unused llvm intrinsics declarations
ee6e25e4391a6d3ac0a3c89615474e512f44cda6 changed the delta pass to skip intrinsics, which means we may end up being left with declarations of intrinsics, that aren't otherwise referenced in the module. This is obviously unwanted, do drop them.
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 |
|
#
ee6e25e4 |
| 01-Oct-2020 |
Matt Arsenault <Matthew.Arsenault@amd.com> |
llvm-reduce: Don't replace intrinsic calls with undef
These don't really have function bodies to try to eliminate. This also has a good chance of just producing invalid IR since intrinsics can have
llvm-reduce: Don't replace intrinsic calls with undef
These don't really have function bodies to try to eliminate. This also has a good chance of just producing invalid IR since intrinsics can have special operand constraints (e.g. metadata arguments aren't valid for an arbitrary call). This was wasting quite a bit of time producing and failing on invalid IR when replacing dbg.values with undefs.
show more ...
|
Revision tags: llvmorg-11.0.0-rc5, llvmorg-11.0.0-rc4, llvmorg-11.0.0-rc3, llvmorg-11.0.0-rc2 |
|
#
d4c3f202 |
| 08-Aug-2020 |
Roman Lebedev <lebedev.ri@gmail.com> |
[Reduce] Rewrite function body delta pass again
It is not enough to replace all uses of users of the function with undef, the users, we only drop instruction users, so they may stick around.
Let's
[Reduce] Rewrite function body delta pass again
It is not enough to replace all uses of users of the function with undef, the users, we only drop instruction users, so they may stick around.
Let's try different approach - first drop bodies for all the functions we will drop, which should take care of blockaddress issue the previous rewrite was dealing with; then, after dropping *all* such bodies, replace remaining uses with undef (thus all the uses are either outside of functions, or are in kept functions) and then finally drop functions.
This seems to work, and passes the *existing* test coverage, but it is possible that a new issue will be discovered later :)
A new (previously crashing) test added.
show more ...
|
Revision tags: llvmorg-11.0.0-rc1 |
|
#
1bac5101 |
| 27-Jul-2020 |
Roman Lebedev <lebedev.ri@gmail.com> |
[Reduce] Function reduction: replace all users of function with undef
There may be other users of a function other than CallInsts, but what's more important, we can't actually replace function point
[Reduce] Function reduction: replace all users of function with undef
There may be other users of a function other than CallInsts, but what's more important, we can't actually replace function pointer with undef, because for constants, that would not preserve the type and RAUW would assert.
In particular, that affects blockaddress, however it proves to be prohibitively complex to come up with a good test involving blockaddress: we'd need to both ensure that the function body survives until this pass, and is not interesting in this pass.
show more ...
|
Revision tags: 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, 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 |
|
#
6d5f0029 |
| 11-Sep-2019 |
Reid Kleckner <rnk@google.com> |
[llvm-reduce] Fix a bug, improve error handling when running test
llvm::sys::ExecuteAndWait can report errors, so let's make use of that.
Second, while iterating uses of functions to remove, a call
[llvm-reduce] Fix a bug, improve error handling when running test
llvm::sys::ExecuteAndWait can report errors, so let's make use of that.
Second, while iterating uses of functions to remove, a call can appear multiple times. Use a SetVector so we don't attempt to erase such a call twice.
llvm-svn: 371653
show more ...
|
#
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 |
|
#
c2689253 |
| 15-Aug-2019 |
Diego Trevino Ferrer <diegof30@gmail.com> |
[Bugpoint redesign] Output option can now print to STDOUT
Summary: This also changes all the outs() statements to errs() so the output and progress streams don't get mixed.
This has been added beca
[Bugpoint redesign] Output option can now print to STDOUT
Summary: This also changes all the outs() statements to errs() so the output and progress streams don't get mixed.
This has been added because D64176 had flaky tests, which I believe were because the reduced file was being catted into `FileCheck`, instead of being pass from STDOUT directly.
Reviewers: chandlerc, dblaikie, xbolva00
Subscribers: llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D66314
llvm-svn: 369060
show more ...
|
#
3755579f |
| 14-Aug-2019 |
Diego Trevino Ferrer <diegof30@gmail.com> |
[Bugpoint redesign] Modified Functions pass to consider declarations
Summary: This modification was put in place so the `ReduceMetadata` pass doesn't have to consider debug functions
Reviewers: dbl
[Bugpoint redesign] Modified Functions pass to consider declarations
Summary: This modification was put in place so the `ReduceMetadata` pass doesn't have to consider debug functions
Reviewers: dblaikie
Subscribers: llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D66257
llvm-svn: 368934
show more ...
|
#
bda73ae0 |
| 13-Aug-2019 |
Simon Pilgrim <llvm-dev@redking.me.uk> |
Fix -Wdocumentation warning (@returns used in void function). NFCI.
llvm-svn: 368693
|
Revision tags: llvmorg-9.0.0-rc2 |
|
#
ddc64eb9 |
| 08-Aug-2019 |
Diego Trevino Ferrer <diegof30@gmail.com> |
Added Delta IR Reduction Tool
Summary: Tool parses input IR file, and runs the delta debugging algorithm to reduce the functions inside the input file.
Reviewers: alexshap, chandlerc
Subscribers:
Added Delta IR Reduction Tool
Summary: Tool parses input IR file, and runs the delta debugging algorithm to reduce the functions inside the input file.
Reviewers: alexshap, chandlerc
Subscribers: mgorny, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D63672
> llvm-svn: 368071
llvm-svn: 368358
show more ...
|