AArch64: Use a callee save registers for swiftself parameters

Description

AArch64: Use a callee save registers for swiftself parameters

It is very likely that the swiftself parameter is alive throughout most
functions function so putting it into a callee save register should
avoid spills for the callers with only a minimum amount of extra spills
in the callees.

Currently the generated code is correct but unnecessarily spills and
reloads arguments passed in callee save registers, I will address this
in upcoming patches.

This also adds a missing check that for tail calls the preserved value
of the caller must be the same as the callees parameter.

Differential Revision: http://reviews.llvm.org/D19007

Details

Committed
matzeApr 13 2016, 2:43 PM
Differential Revision
D19007: AArch64: Use SplitCSR for callee save registers used for parameters.
Parents
rL266250: [llvm-lto] clang-format before working on this file.
Branches
Unknown
Tags
Unknown