[PATCH] D118387: [IPSCCP] Switch away from Instruction::isSafeToRemove()

Serge Pavlov via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Apr 21 06:19:24 PDT 2022


sepavloff added inline comments.


================
Comment at: llvm/lib/Transforms/Scalar/SCCP.cpp:94
 
+static bool canSCCPRemoveInstruction(Instruction *I) {
+  if (wouldInstructionBeTriviallyDead(I))
----------------
I would say that `SCCP` in the function name is excessive, because we are already in SCCP.


================
Comment at: llvm/lib/Transforms/Scalar/SCCP.cpp:98
+
+  return (!isa<CallInst>(I) || !I->mayHaveSideEffects()) && !I->isTerminator();
+}
----------------
kpn wrote:
> sepavloff wrote:
> > This check is almost the same as used by `Instruction::isSafeToRemove`, but the latter also checks for `isEHPad`. Why this check is omitted here? Would it be more consistent just to call `isSafeToRemove`?
> I believe you are correct and this check should not have been omitted.
> 
> I'm trying to eliminate isSafeToRemove() since the Instruction class is the wrong place to do this check, and like the summary says, I don't want another implementation of isInstructionTriviallyDead().
I wonder if you can just make
```
    return I->isSafeToRemove();
```
instead of copying the body of `isSafeToRemove()`?


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

https://reviews.llvm.org/D118387



More information about the llvm-commits mailing list