[PATCH] D79218: Process gep (phi ptr1, ptr2) in SROA

Matt Arsenault via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri May 29 09:13:57 PDT 2020


arsenm added inline comments.


================
Comment at: llvm/lib/Transforms/Scalar/SROA.cpp:3497
+    PHINode *PHI = cast<PHINode>(GEPI.getPointerOperand());
+    if (!llvm::all_of(PHI->incoming_values(), [](Value *In)
+           { return isa<Instruction>(In) &&
----------------
any_of and invert?


================
Comment at: llvm/lib/Transforms/Scalar/SROA.cpp:3498-3501
+           { return isa<Instruction>(In) &&
+                    !isa<GetElementPtrInst>(In) &&
+                    !isa<PHINode>(In) &&
+                    cast<Instruction>(In)->getParent()->isLegalToHoistInto();
----------------
dyn_cast instead of isa && cast?


================
Comment at: llvm/lib/Transforms/Scalar/SROA.cpp:3524-3525
+      NewPN->addIncoming(NewVal, PHI->getIncomingBlock(I));
+      if (isa<Instruction>(NewVal))
+        visit(cast<Instruction>(NewVal));
+    }
----------------
dyn_cast instead of isa && cast


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

https://reviews.llvm.org/D79218





More information about the llvm-commits mailing list