[llvm] [IR] Don't store switch case values as operands (PR #170984)

Alexis Engelke via llvm-commits llvm-commits at lists.llvm.org
Thu Dec 11 08:02:28 PST 2025


================
@@ -1904,13 +1904,10 @@ bool SimplifyCFGOpt::hoistCommonCodeFromSuccessors(Instruction *TI,
     // so does not add any new instructions.
 
     // Check if sizes and terminators of all successors match.
+    Instruction *Term0 = UniqueSuccessors[0]->getTerminator();
     bool AllSame =
-        none_of(UniqueSuccessors, [&UniqueSuccessors](BasicBlock *Succ) {
-          Instruction *Term0 = UniqueSuccessors[0]->getTerminator();
-          Instruction *Term = Succ->getTerminator();
-          return !Term->isSameOperationAs(Term0) ||
-                 !equal(Term->operands(), Term0->operands()) ||
-                 UniqueSuccessors[0]->size() != Succ->size();
+        all_of(drop_begin(UniqueSuccessors), [Term0](BasicBlock *Succ) {
+          return Succ->getTerminator()->isIdenticalTo(Term0);
----------------
aengelke wrote:

No...

https://github.com/llvm/llvm-project/pull/170984


More information about the llvm-commits mailing list