[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