[PATCH] D62555: [TailDuplicator] prevent tail duplication for INLINEASM_BR
Nick Desaulniers via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu May 30 14:49:38 PDT 2019
nickdesaulniers marked 3 inline comments as done.
nickdesaulniers added inline comments.
================
Comment at: llvm/lib/CodeGen/TailDuplicator.cpp:784
return false;
+ for (MachineInstr &I : *TailBB)
+ if (I.getOpcode() == TargetOpcode::INLINEASM_BR)
----------------
peter.smith wrote:
> Is the INLINEASM_BR more likely to terminate the basic block, if it is then maybe a reverse iterator will find them faster? Although I suspect that most basic blocks won't contain any so it won't matter much anyway.
Looks like there's a `TailDuplicator::canTailDuplicate` and a `TailDuplicator::shouldTailDuplicate`. `TailDuplicator::shouldTailDuplicate` runs earlier and iterates all `MachineInstr`s in the `MachineBasicBlock`. While the iteration order is front to back, moving this check there solves @craig.topper 's point about the the `TailBB` be repeatedly analyzed.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D62555/new/
https://reviews.llvm.org/D62555
More information about the llvm-commits
mailing list