llvm-6502/lib
Reid Kleckner 9436574d1b musttail: Forward regparms of variadic functions on x86_64
Summary:
If a variadic function body contains a musttail call, then we copy all
of the remaining register parameters into virtual registers in the
function prologue. We track the virtual registers through the function
body, and add them as additional registers to pass to the call. Because
this is all done in virtual registers, the register allocator usually
gives us good code. If the function does a call, however, it will have
to spill and reload all argument registers (ew).

Forwarding regparms on x86_32 is not implemented because most compilers
don't support varargs in 32-bit with regparms.

Reviewers: majnemer

Subscribers: aemerson, llvm-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@216780 91177308-0d34-0410-b5e6-96231b3b80d8
2014-08-29 21:42:08 +00:00
..
Analysis Relax the constraint more in MemoryDependencyAnalysis.cpp 2014-08-29 20:32:58 +00:00
AsmParser Pass a MemoryBufferRef when we can avoid taking ownership. 2014-08-26 21:49:01 +00:00
Bitcode Fix a double free in llvm::getBitcodeTargetTriple. 2014-08-27 21:11:13 +00:00
CodeGen musttail: Forward regparms of variadic functions on x86_64 2014-08-29 21:42:08 +00:00
DebugInfo Don't own the buffer in object::Binary. 2014-08-19 18:44:46 +00:00
ExecutionEngine [MCJIT] Fix format specifiers for debug output in RuntimeDyld. 2014-08-28 04:25:17 +00:00
IR Verifier: Don't reject varargs callee cleanup functions 2014-08-29 21:25:28 +00:00
IRReader Pass a std::unique_ptr<MemoryBuffer>& to getLazyBitcodeModule. 2014-08-26 22:00:09 +00:00
LineEditor
Linker Set comdats when lazily linking functions. 2014-08-15 20:17:08 +00:00
LTO Return a std::unique_ptr when creating a new MemoryBuffer. 2014-08-27 20:03:13 +00:00
MC Silence a -Wsign-compare warning. NFC. 2014-08-28 13:23:26 +00:00
Object Simplify creation of a bunch of ArrayRefs by using None, makeArrayRef or just letting them be implicitly created. 2014-08-27 05:25:25 +00:00
Option Fix PR17239 by changing the semantics of the RemainingArgsClass Option kind 2014-08-22 19:29:17 +00:00
ProfileData llvm-cov: add code coverage tool that's based on coverage mapping format and clang's pgo. 2014-08-22 22:56:03 +00:00
Support Cleaning up static initializers in Signals.inc 2014-08-29 01:05:16 +00:00
TableGen Tablegen fixes for new syntax when initializing bits from variables. 2014-08-29 19:41:04 +00:00
Target musttail: Forward regparms of variadic functions on x86_64 2014-08-29 21:42:08 +00:00
Transforms Fix a typo in AddAliasScopeMetadata 2014-08-29 16:33:41 +00:00
CMakeLists.txt
LLVMBuild.txt
Makefile