[PATCH] D83523: MachineSink: permit sinking into INLINEASM_BR indirect targets
Bill Wendling via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Sun Jul 12 19:54:35 PDT 2020
void added a comment.
I think this might be a better fix:
diff --git a/llvm/lib/CodeGen/TwoAddressInstructionPass.cpp b/llvm/lib/CodeGen/TwoAddressInstructionPass.cpp
index de336abe607..d21407a60eb 100644
--- a/llvm/lib/CodeGen/TwoAddressInstructionPass.cpp
+++ b/llvm/lib/CodeGen/TwoAddressInstructionPass.cpp
@@ -888,6 +888,7 @@ rescheduleMIBelowKill(MachineBasicBlock::iterator &mi,
return false;
if (KillMI->hasUnmodeledSideEffects() || KillMI->isCall() ||
+ KillMI->getOpcode() == TargetOpcode::INLINEASM_BR ||
KillMI->isBranch() || KillMI->isTerminator())
// Don't move pass calls, etc.
return false;
@@ -948,6 +949,7 @@ rescheduleMIBelowKill(MachineBasicBlock::iterator &mi,
return false;
++NumVisited;
if (OtherMI.hasUnmodeledSideEffects() || OtherMI.isCall() ||
+ OtherMI.getOpcode() == TargetOpcode::INLINEASM_BR ||
OtherMI.isBranch() || OtherMI.isTerminator())
// Don't move pass calls, etc.
return false;
@@ -1122,6 +1124,7 @@ rescheduleKillAboveMI(MachineBasicBlock::iterator &mi,
return false;
++NumVisited;
if (OtherMI.hasUnmodeledSideEffects() || OtherMI.isCall() ||
+ OtherMI.getOpcode() == TargetOpcode::INLINEASM_BR ||
OtherMI.isBranch() || OtherMI.isTerminator())
// Don't move pass calls, etc.
return false;
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D83523/new/
https://reviews.llvm.org/D83523
More information about the llvm-commits
mailing list