[PATCH] D36435: [MachineOutliner] Ensure AArch64 outliner doesn't mess with any register that overlaps with LR
Jessica Paquette via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Mon Aug 7 16:28:49 PDT 2017
paquette created this revision.
Herald added subscribers: kristof.beyls, javed.absar, rengolin, aemerson.
It's currently possible for the AArch64 outliner to mark instructions that use w30 as legal.
This wasn't exposed in any tests until I started improving candidate selection recently. Since w30 overlaps with LR, it shouldn't be possible to outline anything that uses it.
I've also attached a MIR test that handles this. Currently, the outliner will incorrectly pull out the STRHHroW %w16, %x9, %w30, 1, 1 instructions despite them using w30.
The existing MachineOutliner IR tests should be ported over to MIR in a separate patch.
https://reviews.llvm.org/D36435
Files:
lib/Target/AArch64/AArch64InstrInfo.cpp
test/CodeGen/AArch64/machine-outliner.mir
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D36435.110105.patch
Type: text/x-patch
Size: 3217 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20170807/7e28994b/attachment.bin>
More information about the llvm-commits
mailing list