Index: llvm/lib/Transforms/Scalar/SeparateConstOffsetFromGEP.cpp =================================================================== --- llvm/lib/Transforms/Scalar/SeparateConstOffsetFromGEP.cpp +++ llvm/lib/Transforms/Scalar/SeparateConstOffsetFromGEP.cpp @@ -212,6 +212,9 @@ cl::desc("Verify this pass produces no dead code"), cl::Hidden); +static cl::opt LowerGEPOpt("lower-gep", cl::init(false), + cl::desc("Enable GEP lowering"), cl::Hidden); + namespace { /// A helper class for separating a constant offset from a GEP index. @@ -1150,6 +1153,9 @@ if (DisableSeparateConstOffsetFromGEP) return false; + if (LowerGEPOpt) + LowerGEP = true; + auto *DT = &getAnalysis().getDomTree(); auto *SE = &getAnalysis().getSE(); auto *LI = &getAnalysis().getLoopInfo(); @@ -1165,6 +1171,9 @@ if (DisableSeparateConstOffsetFromGEP) return false; + if (LowerGEPOpt) + LowerGEP = true; + DL = &F.getParent()->getDataLayout(); bool Changed = false; for (BasicBlock &B : F) {