[PATCH] D88438: BreakCriticalEdges: do not split the critical edge from a CallBr indirect successor

Fangrui Song via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Jan 14 14:00:51 PST 2021


MaskRay accepted this revision.
MaskRay added a comment.

LGTM.



================
Comment at: llvm/test/Transforms/LoopStrengthReduce/callbr-critical-edge-splitting.ll:3
+; RUN: opt -passes=loop-reduce %s -o - -S | FileCheck %s
+; RUN: opt -passes='loop(loop-reduce)' %s -o - -S | FileCheck %s
+
----------------
One RUN line `opt -passes='loop(loop-reduce)' %s` is sufficient.

`-passes=loop-reduce` is the same, just getting an implicit loop pass adapter.

The legacy PM test does not add too much value for new tests as we'll soon make a switch.


================
Comment at: llvm/test/Transforms/LoopStrengthReduce/callbr-critical-edge-splitting.ll:15
+; CHECK: callbr void asm sideeffect "", "X,X,~{dirflag},~{fpsr},~{flags}"(i8* blockaddress(@test1, %cond.true.i), i8* blockaddress(@test1, %for.end))
+; CHECK:         to label %asm.fallthrough.i.i [label %cond.true.i, label %for.end]
+  callbr void asm sideeffect "", "X,X,~{dirflag},~{fpsr},~{flags}"(i8* blockaddress(@test1, %cond.true.i), i8* blockaddress(@test1, %for.end))
----------------
-NEXT


================
Comment at: llvm/test/Transforms/LoopStrengthReduce/callbr-critical-edge-splitting2.ll:23
+; CHECK: callbr void asm sideeffect "", "X"(i8* blockaddress(@b, %cleanup.cont.critedge))
+; CHECK:         to label %return [label %cleanup.cont.critedge]
+  callbr void asm sideeffect "", "X"(i8* blockaddress(@b, %cleanup.cont.critedge))
----------------
-NEXT


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D88438



More information about the llvm-commits mailing list