HomePhabricator

[Outliner] Add outliner for AArch64

Description

[Outliner] Add outliner for AArch64

This commit adds the necessary target hooks for outlining in AArch64. It also
refactors the switch statement used in getMemOpBaseRegImmOfsWidth into a
more general function, getMemOpInfo. This allows the outliner to share that
code without copying and pasting it.

The AArch64 outliner can be run using -mllvm -enable-machine-outliner, as with
the X86-64 outliner.

The test for this pass verifies that the outliner does, in fact outline
functions, fixes up the stack accesses properly, and can correctly generate a
tail call. In the future, this test should be replaced with a MIR test, so that
we can properly test immediate offset overflows in fixed-up instructions.

Details

Committed
paquetteMar 17 2017, 3:26 PM
Parents
rL298161: [SCEV] Use const Loop *L instead of Loop *L. NFC
Branches
Unknown
Tags
Unknown