[PATCH] D117110: [InstCombine] try to fold binop with phi operands

Roman Lebedev via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Jan 21 03:42:03 PST 2022


lebedev.ri added inline comments.


================
Comment at: llvm/lib/Transforms/InstCombine/InstructionCombining.cpp:1297
+  if (!Phi0 || !Phi1 || !Phi0->hasOneUse() || !Phi1->hasOneUse() ||
+      Phi0->getNumOperands() != 2 || Phi1->getNumOperands() != 2)
+    return nullptr;
----------------
lebedev.ri wrote:
> Technically, this is wrong.
> 1. for switch predecessor, we could have more than a single incoming edges 
> 2. This check is backwards. It's not really that it must have exactly two predecessors,
>    but more that there must be at most a single predecessor with non-constant input value,
>    otherwise we'd increase instruction count. And for constant incoming values we'll constant-fold.
Can you please at least add a FIXME for these issues?


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

https://reviews.llvm.org/D117110



More information about the llvm-commits mailing list