[llvm] 1652c3b - [GlobalOpt] Avoid early exit before dead constant check
Nikita Popov via llvm-commits
llvm-commits at lists.llvm.org
Tue Feb 1 06:57:26 PST 2022
Author: Nikita Popov
Date: 2022-02-01T15:57:19+01:00
New Revision: 1652c3b80c85f454c867413664fa7b51d3f08916
URL: https://github.com/llvm/llvm-project/commit/1652c3b80c85f454c867413664fa7b51d3f08916
DIFF: https://github.com/llvm/llvm-project/commit/1652c3b80c85f454c867413664fa7b51d3f08916.diff
LOG: [GlobalOpt] Avoid early exit before dead constant check
In a similar vein to 236fbf571dc6cebcb81ac5187a170c8de6d5bc0e,
make sure we don't early-exit before the dead constant check.
Added:
Modified:
llvm/lib/Transforms/IPO/GlobalOpt.cpp
Removed:
################################################################################
diff --git a/llvm/lib/Transforms/IPO/GlobalOpt.cpp b/llvm/lib/Transforms/IPO/GlobalOpt.cpp
index d3cac3efce868..a29d4f60a653e 100644
--- a/llvm/lib/Transforms/IPO/GlobalOpt.cpp
+++ b/llvm/lib/Transforms/IPO/GlobalOpt.cpp
@@ -352,14 +352,10 @@ static bool collectSRATypes(DenseMap<uint64_t, Type *> &Types, GlobalValue *GV,
while (!Worklist.empty()) {
Use *U = Worklist.pop_back_val();
User *V = U->getUser();
- if (isa<BitCastOperator>(V) || isa<AddrSpaceCastOperator>(V)) {
- AppendUses(V);
- continue;
- }
- if (auto *GEP = dyn_cast<GEPOperator>(V)) {
- if (!GEP->hasAllConstantIndices())
- return false;
+ auto *GEP = dyn_cast<GEPOperator>(V);
+ if (isa<BitCastOperator>(V) || isa<AddrSpaceCastOperator>(V) ||
+ (GEP && GEP->hasAllConstantIndices())) {
AppendUses(V);
continue;
}
More information about the llvm-commits
mailing list