[patch] Remove ConstantIslands from AArch64

Tim Northover t.p.northover at gmail.com
Tue Feb 12 08:11:14 PST 2013


Hi,

The attached patches remove the ConstantIslands pass from AArch64, at
the suggestion of Jim. The replacement uses normal global variable
accesses for the cases where constants really are needed (much like
X86).

I'm reasonably confident of the AArch64 parts, but I'm asking for
review because there's a slight novelty (as far as I'm aware) in
AArch64ISelDAGToDAG.cpp. I think this has to be where constants of
last resort are selected (ISelLowering is too early), but I've made
the SelectToLitpool functions behave much more as if they were in
lowering.

They produce a generic DAG for litpool loads (load (A64Wrapper ...))
which then goes through a normal round of TableGenerated selection,
instead of machine nodes (LS64_LDR (ADRP ...)).

Does anyone see any problems with that approach?

Cheers.

Tim.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0002-AArch64-remove-ConstantIsland-pass-put-literals-in-s.patch
Type: application/octet-stream
Size: 89260 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20130212/f8137f87/attachment.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-AArch64-refactor-frame-handling-to-use-movz-movk-for.patch
Type: application/octet-stream
Size: 4909 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20130212/f8137f87/attachment-0001.obj>


More information about the llvm-commits mailing list