diff options
author | Jessica Paquette <jpaquette@apple.com> | 2018-11-12 23:51:32 +0000 |
---|---|---|
committer | Jessica Paquette <jpaquette@apple.com> | 2018-11-12 23:51:32 +0000 |
commit | 82d9c0a3fabda486a646a4749c6534790d970ca6 (patch) | |
tree | e4f78a526f27a0a706e33a6edd214464dbdbdbe0 /llvm/lib/CodeGen/MachineOutliner.cpp | |
parent | e9f34b0d521f96669217656fa8162336a7d3f00a (diff) | |
download | llvm-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.cpp | 7 |
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 |