Revision tags: llvmorg-21-init, llvmorg-19.1.7, llvmorg-19.1.6, llvmorg-19.1.5, llvmorg-19.1.4, llvmorg-19.1.3, llvmorg-19.1.2, llvmorg-19.1.1, llvmorg-19.1.0, llvmorg-19.1.0-rc4 |
|
#
42067f26 |
| 20-Aug-2024 |
Robert Barinov <165884206+rbintel@users.noreply.github.com> |
[LLVM-Reduce] - Distinct Metadata Reduction (#104624)
|
Revision tags: llvmorg-19.1.0-rc3, llvmorg-19.1.0-rc2, llvmorg-19.1.0-rc1, llvmorg-20-init, 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.
|
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 |
|
#
5f6bf752 |
| 01-Jan-2023 |
Matt Arsenault <Matthew.Arsenault@amd.com> |
llvm-reduce: Reduce individual operands of named metadata
The current reduction tries all or nothing elimination of named metadata. I noticed in one case where one of the module flags was necessary,
llvm-reduce: Reduce individual operands of named metadata
The current reduction tries all or nothing elimination of named metadata. I noticed in one case where one of the module flags was necessary, but it left the rest. Reduce the individual operands of named metadata nodes that are known to behave like lists. Be conservative since some named metadata may have more specific verifier requirements for the operands.
show more ...
|
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 ...
|
#
47b1623b |
| 07-Oct-2022 |
Arthur Eubanks <aeubanks@google.com> |
[llvm-reduce] Fail verifier less when removing debug metadata
Without this patch, we hit the following a lot: "llvm.dbg.declare intrinsic requires a !dbg attachment" "DICompileUnit not listed in llv
[llvm-reduce] Fail verifier less when removing debug metadata
Without this patch, we hit the following a lot: "llvm.dbg.declare intrinsic requires a !dbg attachment" "DICompileUnit not listed in llvm.dbg.cu"
Reviewed By: dblaikie
Differential Revision: https://reviews.llvm.org/D135492
show more ...
|
#
aa065c01 |
| 06-Oct-2022 |
Ellis Hoag <ellis.sparky.hoag@gmail.com> |
Revert "[llvm-reduce] Remove debug metadata elements"
This reverts commit 69549de865550e54983ed8d00009920184de47ff.
The change in D135237 can lead to verification failures like `scope must have two
Revert "[llvm-reduce] Remove debug metadata elements"
This reverts commit 69549de865550e54983ed8d00009920184de47ff.
The change in D135237 can lead to verification failures like `scope must have two or three operands`. The ongoing work in D132077 does something similar without these failures, so lets wait for that to land and revert this patch.
Reviewed By: aeubanks
Differential Revision: https://reviews.llvm.org/D135395
show more ...
|
Revision tags: working |
|
#
69549de8 |
| 05-Oct-2022 |
Ellis Hoag <ellis.sparky.hoag@gmail.com> |
[llvm-reduce] Remove debug metadata elements
There can be lots of `MDTuple` debug metadata nodes. For example, `globals: !{!1, !2}` in `!DICompileUnit()`. Search through all debug info to find `MDTu
[llvm-reduce] Remove debug metadata elements
There can be lots of `MDTuple` debug metadata nodes. For example, `globals: !{!1, !2}` in `!DICompileUnit()`. Search through all debug info to find `MDTuple`'s and remove some of their elements.
For D135114 I was able to get a reproducer with 364 lines without manually deleting elements. After this patch I got it down to 67 lines.
Reviewed By: dblaikie
Differential Revision: https://reviews.llvm.org/D135237
show more ...
|
Revision tags: 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, 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 |
|
#
5a667c0e |
| 28-Dec-2021 |
Kazu Hirata <kazu@google.com> |
[llvm] Use nullptr instead of 0 (NFC)
Identified with modernize-use-nullptr.
|
Revision tags: llvmorg-13.0.1-rc1 |
|
#
0b5051ce |
| 12-Nov-2021 |
Arthur Eubanks <aeubanks@google.com> |
[llvm-reduce] Don't reuse SmallVector across calls to getAllMetadata()
The SmallVector is not cleared in calls to getAllMetadata().
Reviewed By: Meinersbur
Differential Revision: https://reviews.l
[llvm-reduce] Don't reuse SmallVector across calls to getAllMetadata()
The SmallVector is not cleared in calls to getAllMetadata().
Reviewed By: Meinersbur
Differential Revision: https://reviews.llvm.org/D113808
show more ...
|
#
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 ...
|
#
d9562a8e |
| 29-Sep-2021 |
Michael Kruse <llvm-project@meinersbur.de> |
[llvm-reduce] Reduce metadata references.
The ReduceMetadata pass before this patch removed metadata on a per-MDNode (or NamedMDNode) basis. Either all references to an MDNode are kept, or all of th
[llvm-reduce] Reduce metadata references.
The ReduceMetadata pass before this patch removed metadata on a per-MDNode (or NamedMDNode) basis. Either all references to an MDNode are kept, or all of them are removed. However, MDNodes are uniqued, meaning that references to MDNodes with the same data become references to the same MDNodes. As a consequence, e.g. tbaa references to the same type will all have the same MDNode reference and hence make it impossible to reduce only keeping metadata on those memory access for which they are interesting. Moreover, MDNodes can also be referenced by some intrinsics or other MDNodes. These references were not considered for removal leading to the possibility that MDNodes are not actually removed even if selected to be removed by the oracle.
This patch changes ReduceMetadata to reduces based on removable metadata references instead. MDNodes without references implicitly dropped anyway. References by intrinsic calls should be removed by ReduceOperands or ReduceInstructions. References in other MDNodes cannot be removed as it would violate the immutability of MDNodes.
Additionally, ReduceMetadata pass before this patch used `setMetadata(I, NULL)` to remove references, where `I` is the index in the array returned by `getAllMetadata`. However, `setMetadata` expects a MDKind (such as `MD_tbaa`) as first argument. `getAllMetadata` does not return those in consecutive order (otherwise it would not need to be a `std::pair` with `first` representing the MDKind).
Reviewed By: aeubanks, swamulism
Differential Revision: https://reviews.llvm.org/D110534
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, 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, llvmorg-10.0.1-rc2, 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 |
|
#
e0d9a0bd |
| 11-Sep-2019 |
Simon Pilgrim <llvm-dev@redking.me.uk> |
Fix -Wdocumentation warning - void function doesn't need a @returns. NFCI.
llvm-svn: 371606
|
#
477c1df4 |
| 10-Sep-2019 |
David Blaikie <dblaikie@gmail.com> |
llvm-reduce: Add pass to reduce Metadata
Patch by Diego Treviño!
Differential Revision: https://reviews.llvm.org/D65026
llvm-svn: 371562
|