[all-commits] [llvm/llvm-project] fc8240: [Attributor] Simplify operands inside of simplific...
Johannes Doerfert via All-commits
all-commits at lists.llvm.org
Tue Jul 6 20:45:02 PDT 2021
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: fc82409b5ce5ddcd038ff0bf192a9a2a03b23020
https://github.com/llvm/llvm-project/commit/fc82409b5ce5ddcd038ff0bf192a9a2a03b23020
Author: Johannes Doerfert <johannes at jdoerfert.de>
Date: 2021-07-06 (Tue, 06 Jul 2021)
Changed paths:
M llvm/include/llvm/Transforms/IPO/Attributor.h
M llvm/lib/Transforms/IPO/Attributor.cpp
M llvm/lib/Transforms/IPO/AttributorAttributes.cpp
M llvm/test/Transforms/Attributor/ArgumentPromotion/inalloca.ll
M llvm/test/Transforms/Attributor/IPConstantProp/PR16052.ll
M llvm/test/Transforms/Attributor/callgraph.ll
M llvm/test/Transforms/Attributor/cb_range_enabled.ll
M llvm/test/Transforms/Attributor/cgscc_bugs.ll
M llvm/test/Transforms/Attributor/depgraph.ll
M llvm/test/Transforms/Attributor/dereferenceable-1.ll
M llvm/test/Transforms/Attributor/internalize.ll
M llvm/test/Transforms/Attributor/liveness.ll
M llvm/test/Transforms/Attributor/lvi-after-jumpthreading.ll
M llvm/test/Transforms/Attributor/nonnull.ll
M llvm/test/Transforms/Attributor/potential.ll
M llvm/test/Transforms/Attributor/range.ll
M llvm/test/Transforms/Attributor/value-simplify-pointer-info.ll
M llvm/test/Transforms/Attributor/value-simplify.ll
M llvm/test/Transforms/Attributor/willreturn.ll
Log Message:
-----------
[Attributor] Simplify operands inside of simplification AAs first
When we do simplification via AAPotentialValues or AAValueConstantRange
we need to simplify the operands of an instruction we deconstruct first.
This does not only improve the result, see for example range.ll, but is
required as we allow outside AAs to provide simplification rules via
callbacks. If we do ignore the simplification rules and base other
simplifications on the IR instead we can create an inconsistent state.
Commit: aa3768278d4b1c91e6e55b596fa0d832a25428dc
https://github.com/llvm/llvm-project/commit/aa3768278d4b1c91e6e55b596fa0d832a25428dc
Author: Johannes Doerfert <johannes at jdoerfert.de>
Date: 2021-07-06 (Tue, 06 Jul 2021)
Changed paths:
M llvm/include/llvm/Transforms/IPO/Attributor.h
M llvm/lib/Transforms/IPO/Attributor.cpp
M llvm/lib/Transforms/IPO/AttributorAttributes.cpp
M llvm/test/Transforms/Attributor/dereferenceable-1.ll
M llvm/test/Transforms/Attributor/liveness.ll
M llvm/test/Transforms/Attributor/lvi-after-jumpthreading.ll
M llvm/test/Transforms/Attributor/nocapture-2.ll
M llvm/test/Transforms/Attributor/nonnull.ll
M llvm/test/Transforms/Attributor/potential.ll
M llvm/test/Transforms/Attributor/range.ll
M llvm/test/Transforms/Attributor/returned.ll
M llvm/test/Transforms/Attributor/value-simplify.ll
Log Message:
-----------
[Attributor] Introduce a helper function to deal with undef + none
We often need to deal with the value lattice that contains none and
undef as special values. A simple helper makes this much nicer.
Differential Revision: https://reviews.llvm.org/D103857
Commit: 9bd2ee07885cc1ef47dedd0b827908f51fb3565f
https://github.com/llvm/llvm-project/commit/9bd2ee07885cc1ef47dedd0b827908f51fb3565f
Author: Johannes Doerfert <johannes at jdoerfert.de>
Date: 2021-07-06 (Tue, 06 Jul 2021)
Changed paths:
M llvm/test/Transforms/Attributor/heap_to_stack.ll
Log Message:
-----------
[Attriibutor][NFC] Precommit heap-2-stack test case
Commit: 168a9234d7bbeebec3a5f16c619b68a3eba7b114
https://github.com/llvm/llvm-project/commit/168a9234d7bbeebec3a5f16c619b68a3eba7b114
Author: Johannes Doerfert <johannes at jdoerfert.de>
Date: 2021-07-06 (Tue, 06 Jul 2021)
Changed paths:
M llvm/include/llvm/Transforms/IPO/Attributor.h
M llvm/lib/Transforms/IPO/Attributor.cpp
M llvm/test/Transforms/Attributor/potential.ll
Log Message:
-----------
[Attributor][FIX] Replace uses first, then values
Before we replaced value by registering all their uses. However, as we
replace a value old uses become stale. We now replace values explicitly
and keep track of "new values" when doing so to avoid replacing only
uses in stale/old values but not their replacements.
Compare: https://github.com/llvm/llvm-project/compare/11d88c4acb68...168a9234d7bb
More information about the All-commits
mailing list