[llvm-branch-commits] [llvm] ObjCARCContract: Use stripPointerCastsAndAliases (PR #134275)
via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Thu Apr 3 09:53:56 PDT 2025
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-llvm-transforms
Author: Matt Arsenault (arsenm)
<details>
<summary>Changes</summary>
---
Full diff: https://github.com/llvm/llvm-project/pull/134275.diff
1 Files Affected:
- (modified) llvm/lib/Transforms/ObjCARC/ObjCARCContract.cpp (+10-24)
``````````diff
diff --git a/llvm/lib/Transforms/ObjCARC/ObjCARCContract.cpp b/llvm/lib/Transforms/ObjCARC/ObjCARCContract.cpp
index e11748b2c9dbb..ed7a235f5e2e3 100644
--- a/llvm/lib/Transforms/ObjCARC/ObjCARCContract.cpp
+++ b/llvm/lib/Transforms/ObjCARC/ObjCARCContract.cpp
@@ -661,30 +661,16 @@ bool ObjCARCContract::run(Function &F, AAResults *A, DominatorTree *D) {
Value *Arg = cast<CallInst>(Inst)->getArgOperand(0);
- // TODO: Change this to a do-while.
- for (;;) {
- ReplaceArgUses(Arg);
-
- // If Arg is a no-op casted pointer, strip one level of casts and iterate.
- if (const BitCastInst *BI = dyn_cast<BitCastInst>(Arg))
- Arg = BI->getOperand(0);
- else if (isa<GEPOperator>(Arg) &&
- cast<GEPOperator>(Arg)->hasAllZeroIndices())
- Arg = cast<GEPOperator>(Arg)->getPointerOperand();
- else if (isa<GlobalAlias>(Arg) &&
- !cast<GlobalAlias>(Arg)->isInterposable())
- Arg = cast<GlobalAlias>(Arg)->getAliasee();
- else {
- // If Arg is a PHI node, get PHIs that are equivalent to it and replace
- // their uses.
- if (PHINode *PN = dyn_cast<PHINode>(Arg)) {
- SmallVector<Value *, 1> PHIList;
- getEquivalentPHIs(*PN, PHIList);
- for (Value *PHI : PHIList)
- ReplaceArgUses(PHI);
- }
- break;
- }
+ ReplaceArgUses(Arg);
+
+ Arg = Arg->stripPointerCastsAndAliases();
+ // If Arg is a PHI node, get PHIs that are equivalent to it and replace
+ // their uses.
+ if (PHINode *PN = dyn_cast<PHINode>(Arg)) {
+ SmallVector<Value *, 1> PHIList;
+ getEquivalentPHIs(*PN, PHIList);
+ for (Value *PHI : PHIList)
+ ReplaceArgUses(PHI);
}
}
``````````
</details>
https://github.com/llvm/llvm-project/pull/134275
More information about the llvm-branch-commits
mailing list