[PATCH] D23896: [InstCombine] Try to resubmit the combine of A->B->A BitCast and fix for pr27996

Evgeny Stupachenko via llvm-commits llvm-commits at lists.llvm.org
Fri Sep 23 16:52:37 PDT 2016


evstupac added inline comments.

================
Comment at: lib/Transforms/InstCombine/InstCombineCasts.cpp:1768
@@ +1767,3 @@
+  for (User *U : CI.users()) {
+    if (!isa<StoreInst>(U))
+      return false;
----------------
Ok.
You are generating BitCast only for 1 store operand:
SI->setOperand(0, Builder->CreateBitCast(NewPNodes[PN], SrcTy));

Here you are exiting if BitCast goes to one of store operand (0 or 1). What is the reason?

================
Comment at: lib/Transforms/InstCombine/InstCombineCasts.cpp:1879
@@ +1878,3 @@
+  }
+
+  return replaceInstUsesWith(CI, NewPNodes[PN]);
----------------
Could you please insert an assert on newly Created BitCast (to be sure we'll not hit it on next iteration)?


https://reviews.llvm.org/D23896





More information about the llvm-commits mailing list