[PATCH] D155688: [PATCH] [llvm] [InstCombine] Canonicalise ADD+GEP

Nikita Popov via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Oct 2 06:39:38 PDT 2023


nikic added inline comments.


================
Comment at: llvm/lib/Transforms/InstCombine/InstructionCombining.cpp:2338-2340
+    if (BinaryOperator *Idx =
+            dyn_cast_or_null<BinaryOperator>(GEP.getOperand(1)))
+      if ((Idx->getOpcode() == Instruction::Add) && Idx->hasOneUse()) {
----------------



================
Comment at: llvm/lib/Transforms/InstCombine/InstructionCombining.cpp:2346
+        //   %newgep = getelementptr i32, i32* %newptr, i64 %idx2
+        Value *Ptr = GEP.getOperand(0);
+        auto *NewPtr = GetElementPtrInst::Create(
----------------



================
Comment at: llvm/lib/Transforms/InstCombine/InstructionCombining.cpp:2349
+            GEP.getResultElementType(), Ptr, Idx->getOperand(0), "", &GEP);
+        auto *NewGEP = GetElementPtrInst::Create(GEP.getResultElementType(),
+                                                 NewPtr, Idx->getOperand(1));
----------------
No need for the NewGEP variable.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D155688/new/

https://reviews.llvm.org/D155688



More information about the llvm-commits mailing list