[PATCH] D16240: [InstCombine] Simplify a known nonzero incoming value of PHI

Jun Bum Lim via llvm-commits llvm-commits at lists.llvm.org
Mon Jan 18 12:50:34 PST 2016


junbuml added inline comments.

================
Comment at: lib/Transforms/InstCombine/InstCombinePHI.cpp:940
@@ +939,3 @@
+        Value *VA = PN.getIncomingValue(i);
+        if (!isa<ConstantInt>(VA) && VA->hasOneUse() &&
+            isKnownNonZero(VA, DL, 0, AC, &PN, DT))
----------------
sanjoy wrote:
> Why do you care about `VA` having only one use?
In correctness perspective, we don't have to check VA->hasOneUse(), but I expected the real impact  on performance only when the incoming value become a dead code from this modification. I'm okay with removing this check (VA->hasOneUse()) if we can expect any indirect benefit.

================
Comment at: lib/Transforms/InstCombine/InstCombinePHI.cpp:941
@@ +940,3 @@
+        if (!isa<ConstantInt>(VA) && VA->hasOneUse() &&
+            isKnownNonZero(VA, DL, 0, AC, &PN, DT))
+          PN.setIncomingValue(i, ConstantInt::get(PN.getType(), 1));
----------------
sanjoy wrote:
> Can't `CtxI` be the terminator of the `i` th incoming block?
Not sure about this comment. Can you give me more detail about it ? 


http://reviews.llvm.org/D16240





More information about the llvm-commits mailing list