Implement inalloca codegen for x86 with the new inalloca design
authorReid Kleckner <reid@kleckner.net>
Fri, 31 Jan 2014 23:50:57 +0000 (23:50 +0000)
committerReid Kleckner <reid@kleckner.net>
Fri, 31 Jan 2014 23:50:57 +0000 (23:50 +0000)
commit8a24e835504105efdf6d882053d5da7b0e1dccd3
tree51aae09038f8ef7f890074e673143426c48763e8
parentcb6684b63b3c4c5a90e194c5719bc82690180f30
Implement inalloca codegen for x86 with the new inalloca design

Calls with inalloca are lowered by skipping all stores for arguments
passed in memory and the initial stack adjustment to allocate argument
memory.

Now the frontend is responsible for the memory layout, and the backend
doesn't have to do any work.  As a result these changes are pretty
minimal.

Reviewers: echristo

Differential Revision: http://llvm-reviews.chandlerc.com/D2637

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@200596 91177308-0d34-0410-b5e6-96231b3b80d8
13 files changed:
docs/LangRef.rst
include/llvm/Support/CallSite.h
include/llvm/Target/TargetCallingConv.h
include/llvm/Target/TargetLowering.h
lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
lib/CodeGen/SelectionDAG/TargetLowering.cpp
lib/IR/Mangler.cpp
lib/Target/X86/X86FastISel.cpp
lib/Target/X86/X86ISelLowering.cpp
test/CodeGen/X86/inalloca-ctor.ll [new file with mode: 0644]
test/CodeGen/X86/inalloca-invoke.ll [new file with mode: 0644]
test/CodeGen/X86/inalloca-stdcall.ll [new file with mode: 0644]
test/CodeGen/X86/inalloca.ll [new file with mode: 0644]