aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/CodeGen/MachineOutliner.cpp
diff options
context:
space:
mode:
authorJessica Paquette <jpaquette@apple.com>2018-11-12 23:51:32 +0000
committerJessica Paquette <jpaquette@apple.com>2018-11-12 23:51:32 +0000
commit82d9c0a3fabda486a646a4749c6534790d970ca6 (patch)
treee4f78a526f27a0a706e33a6edd214464dbdbdbe0 /llvm/lib/CodeGen/MachineOutliner.cpp
parente9f34b0d521f96669217656fa8162336a7d3f00a (diff)
downloadllvm-82d9c0a3fabda486a646a4749c6534790d970ca6.zip
llvm-82d9c0a3fabda486a646a4749c6534790d970ca6.tar.gz
llvm-82d9c0a3fabda486a646a4749c6534790d970ca6.tar.bz2
[MachineOutliner][NFC] Change getMachineOutlinerMBBFlags to isMBBSafeToOutlineFrom
Instead of returning Flags, return true if the MBB is safe to outline from. This lets us check for unsafe situations, like say, in AArch64, X17 is live across a MBB without being defined in that MBB. In that case, there's no point in performing an instruction mapping. llvm-svn: 346718
Diffstat (limited to 'llvm/lib/CodeGen/MachineOutliner.cpp')
-rw-r--r--llvm/lib/CodeGen/MachineOutliner.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/llvm/lib/CodeGen/MachineOutliner.cpp b/llvm/lib/CodeGen/MachineOutliner.cpp
index 143310e..e6f3066 100644
--- a/llvm/lib/CodeGen/MachineOutliner.cpp
+++ b/llvm/lib/CodeGen/MachineOutliner.cpp
@@ -742,7 +742,12 @@ struct InstructionMapper {
/// \param TII \p TargetInstrInfo for the function.
void convertToUnsignedVec(MachineBasicBlock &MBB,
const TargetInstrInfo &TII) {
- unsigned Flags = TII.getMachineOutlinerMBBFlags(MBB);
+ unsigned Flags;
+
+ // Don't even map in this case.
+ if (!TII.isMBBSafeToOutlineFrom(MBB, Flags))
+ return;
+
MachineBasicBlock::iterator It = MBB.begin();
// The number of instructions in this block that will be considered for