llvm-project/llvm
Matthias Braun 74a0bd319a 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

llvm-svn: 266251
2016-04-13 21:43:16 +00:00
..
bindings [OCaml] Expose the LLVM diagnostic handler 2016-04-10 13:55:53 +00:00
cmake [CMake] Make llvm_ExternalProject always call the build action 2016-04-08 22:46:04 +00:00
docs Update psabi link for x86-64. Add link to linux gabi supplement. 2016-04-12 21:54:57 +00:00
examples [Kaleidoscope] Rename Error -> LogError in Chapters 2-5. 2016-03-25 17:41:26 +00:00
include [DebugInfo] Optimize memory layout of DISubprogram. 2016-04-13 20:17:42 +00:00
lib AArch64: Use a callee save registers for swiftself parameters 2016-04-13 21:43:16 +00:00
projects
resources
test AArch64: Use a callee save registers for swiftself parameters 2016-04-13 21:43:16 +00:00
tools [llvm-lto] clang-format before working on this file. 2016-04-13 21:41:35 +00:00
unittests [DebugInfo] Optimize memory layout of DISubprogram. 2016-04-13 20:17:42 +00:00
utils Delete mergefunctions.clang.svn.patch 2016-04-12 19:44:40 +00:00
.arcconfig
.clang-format
.clang-tidy Don't use misc-unused-parameters check on LLVM. 2016-04-13 08:58:52 +00:00
.gitignore
CMakeLists.txt Moving llvm-test-depends and test-depends into the Tests folder; NFC, this simply cleans up the generated solution so that these targets don't live in the root folder of the IDE. 2016-04-12 15:09:14 +00:00
CODE_OWNERS.TXT Update owners to reflect recent changes 2016-04-01 20:40:49 +00:00
CREDITS.TXT
LICENSE.TXT Update copyright year to 2016. 2016-03-30 22:41:06 +00:00
LLVMBuild.txt
README.txt
configure
llvm.spec.in

README.txt

Low Level Virtual Machine (LLVM)
================================

This directory and its subdirectories contain source code for LLVM,
a toolkit for the construction of highly optimized compilers,
optimizers, and runtime environments.

LLVM is open source software. You may freely distribute it under the terms of
the license agreement found in LICENSE.txt.

Please see the documentation provided in docs/ for further
assistance with LLVM, and in particular docs/GettingStarted.rst for getting
started with LLVM and docs/README.txt for an overview of LLVM's
documentation setup.

If you are writing a package for LLVM, see docs/Packaging.rst for our
suggestions.