[PATCH] D142924: [llvm][IfConversion] update successor list when merging INLINEASM_BR
Nick Desaulniers via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu Feb 2 14:27:34 PST 2023
nickdesaulniers added inline comments.
================
Comment at: llvm/lib/CodeGen/IfConversion.cpp:2254
+ if (MO.isMBB() && !ToBBI.BB->isSuccessor(MO.getMBB()))
+ ToBBI.BB->addSuccessor(MO.getMBB(), BranchProbability::getZero());
+
----------------
void wrote:
> void wrote:
> > nickdesaulniers wrote:
> > > nickdesaulniers wrote:
> > > > Perhaps it might be best to see if the prior branch had a branch probability, and if so, reuse that?
> > > >
> > > >
> > > > See calls to `getEdgeProbability` below.
> > > eh maybe not. Pretty sure we only create these edges with 0% probability. The fallthough BB is not an explicit operand.
> > +1. I think we mark all indirect edges as "cold" by default.
> Do we already move the indirect blocks to the end of the function? Or would that be too pessimistic?
I imagine that `Branch Probability Basic Block Placement (block-placement)` would, or `ARM block placement (arm-block-placement)`. But there's no such potential optimization at least for this test case.
---
That said, tailduplication seems broken on this test case...we have 2 unconditional branches to return instructions that don't get replaced with just return instructions...
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D142924/new/
https://reviews.llvm.org/D142924
More information about the llvm-commits
mailing list