[all-commits] [llvm/llvm-project] 7dd6d4: [SCEV] Use const SCEV * explicitly in more places.
Florian Hahn via All-commits
all-commits at lists.llvm.org
Tue Jun 25 06:13:46 PDT 2024
Branch: refs/heads/users/fhahn/scevuse
Home: https://github.com/llvm/llvm-project
Commit: 7dd6d4b4a2d18bb2891246b16986195d8e8ed4e9
https://github.com/llvm/llvm-project/commit/7dd6d4b4a2d18bb2891246b16986195d8e8ed4e9
Author: Florian Hahn <flo at fhahn.com>
Date: 2024-06-25 (Tue, 25 Jun 2024)
Changed paths:
M llvm/lib/Analysis/Delinearization.cpp
M llvm/lib/Analysis/IVUsers.cpp
M llvm/lib/Analysis/LoopAccessAnalysis.cpp
M llvm/lib/Target/ARM/MVETailPredication.cpp
M llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
M llvm/lib/Transforms/Scalar/LoopDeletion.cpp
M llvm/lib/Transforms/Scalar/LoopPredication.cpp
M llvm/lib/Transforms/Utils/LowerMemIntrinsics.cpp
M llvm/lib/Transforms/Utils/SimplifyIndVar.cpp
M llvm/lib/Transforms/Vectorize/LoopVectorizationLegality.cpp
M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
M llvm/unittests/Analysis/ScalarEvolutionTest.cpp
M llvm/unittests/Transforms/Utils/LoopUtilsTest.cpp
M llvm/unittests/Transforms/Utils/ScalarEvolutionExpanderTest.cpp
Log Message:
-----------
[SCEV] Use const SCEV * explicitly in more places.
Commit: d660a7c46bc1a5fed60367a120f5dc0482b39958
https://github.com/llvm/llvm-project/commit/d660a7c46bc1a5fed60367a120f5dc0482b39958
Author: Florian Hahn <flo at fhahn.com>
Date: 2024-06-25 (Tue, 25 Jun 2024)
Changed paths:
M llvm/include/llvm/Analysis/ScalarEvolution.h
M llvm/include/llvm/Analysis/ScalarEvolutionExpressions.h
M llvm/lib/Analysis/DependenceAnalysis.cpp
M llvm/lib/Analysis/IVDescriptors.cpp
M llvm/lib/Analysis/LoopCacheAnalysis.cpp
M llvm/lib/Analysis/ScalarEvolution.cpp
M llvm/lib/Target/PowerPC/PPCLoopInstrFormPrep.cpp
M llvm/lib/Transforms/Scalar/InductiveRangeCheckElimination.cpp
M llvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp
M llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp
M llvm/lib/Transforms/Utils/ScalarEvolutionExpander.cpp
M llvm/test/Transforms/IndVarSimplify/turn-to-invariant.ll
M llvm/unittests/Analysis/ScalarEvolutionTest.cpp
Log Message:
-----------
[SCEV] Introduce SCEVUse, use it instead of const SCEV * (NFCI) (WIP).
This patch introduces SCEVUse, which is a tagged pointer containing the
used const SCEV *, plus extra bits to store NUW/NSW flags that are only
valid at the specific use.
This was suggested by @nikic as an alternative
to https://github.com/llvm/llvm-project/pull/90742.
This patch just updates most SCEV infrastructure to operate on SCEVUse
instead of const SCEV *. It does not introduce any code that makes use
of the use-specific flags yet which I'll share as follow-ups.
Note that this should be NFC, but currently there's at least one case
where it is not (turn-to-invariant.ll), which I'll investigate once we
agree on the overall direction.
This PR at the moment also contains a commit that updates various SCEV
clients to use `const SCEV *` instead of `const auto *`, to prepare for
this patch. This reduces the number of changes needed, as SCEVUse will
automatically convert to `const SCEV *`. This is a safe default, as it
just drops the use-specific flags for the expression (it will not drop
any use-specific flags for any of its operands though).
This probably
SCEVUse could probably also be used to address mis-compiles due to
equivalent AddRecs modulo flags result in an AddRec with incorrect flags
for some uses of some phis, e.g. the one
https://github.com/llvm/llvm-project/pull/80430 attempted to fix
Compile-time impact:
stage1-O3: +0.06%
stage1-ReleaseThinLTO: +0.07%
stage1-ReleaseLTO-g: +0.07%
stage2-O3: +0.11%
https://llvm-compile-time-tracker.com/compare.php?from=ce055843e2be9643bd58764783a7bb69f6db8c9a&to=8c7f4e9e154ebc4862c4e2716cedc3c688352d7c&stat=instructions:u
Commit: c362fe9bb55f9273a51fb2538382a2d2cad72597
https://github.com/llvm/llvm-project/commit/c362fe9bb55f9273a51fb2538382a2d2cad72597
Author: Florian Hahn <flo at fhahn.com>
Date: 2024-06-25 (Tue, 25 Jun 2024)
Changed paths:
M llvm/include/llvm/Analysis/ScalarEvolution.h
M llvm/lib/Analysis/ScalarEvolution.cpp
Log Message:
-----------
!fixup use raw pointer (const SCEV * + lower bits) for AddPointer.
Commit: e510400e42885dcd8b860e1f0b8c0af6c74d2b84
https://github.com/llvm/llvm-project/commit/e510400e42885dcd8b860e1f0b8c0af6c74d2b84
Author: Florian Hahn <flo at fhahn.com>
Date: 2024-06-25 (Tue, 25 Jun 2024)
Changed paths:
M llvm/lib/Analysis/ScalarEvolution.cpp
M llvm/lib/Transforms/Scalar/InductiveRangeCheckElimination.cpp
Log Message:
-----------
!fix formatting
Commit: 4b0c62bf99772e339ee9c718f02a69a1847a179b
https://github.com/llvm/llvm-project/commit/4b0c62bf99772e339ee9c718f02a69a1847a179b
Author: Florian Hahn <flo at fhahn.com>
Date: 2024-06-25 (Tue, 25 Jun 2024)
Changed paths:
M llvm/lib/Analysis/ScalarEvolution.cpp
Log Message:
-----------
!fixup compare getPointer() in HasSameVlue.
Compare: https://github.com/llvm/llvm-project/compare/610412403d63...4b0c62bf9977
To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications
More information about the All-commits
mailing list