llvm/lib
Reid Kleckner 65c98b9da4 [ms-cxxabi] Add a new calling convention that swaps 'this' and 'sret'
MSVC always places the 'this' parameter for a method first.  The
implicit 'sret' pointer for methods always comes second.  We already
implement this for __thiscall by putting sret parameters on the stack,
but __cdecl methods require putting both parameters on the stack in
opposite order.

Using a special calling convention allows frontends to keep the sret
parameter first, which avoids breaking lots of assumptions in LLVM and
Clang.

Fixes PR15768 with the corresponding change in Clang.

Reviewers: ributzka, majnemer

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@200561 91177308-0d34-0410-b5e6-96231b3b80d8
2014-01-31 17:41:22 +00:00
..
Analysis Allow speculating llvm.sqrt, fma and fmuladd 2014-01-31 00:09:00 +00:00
AsmParser [ms-cxxabi] Add a new calling convention that swaps 'this' and 'sret' 2014-01-31 17:41:22 +00:00
Bitcode Make parseBitcodeFile return an ErrorOr<Module *>. 2014-01-15 01:08:23 +00:00
CodeGen This patch teaches the DAGCombiner how to fold insert_subvector nodes 2014-01-31 01:10:35 +00:00
DebugInfo Simplify the handling of iterators in ObjectFile. 2014-01-30 02:49:50 +00:00
ExecutionEngine Simplify the handling of iterators in ObjectFile. 2014-01-30 02:49:50 +00:00
IR [ms-cxxabi] Add a new calling convention that swaps 'this' and 'sret' 2014-01-31 17:41:22 +00:00
IRReader Make parseBitcodeFile return an ErrorOr<Module *>. 2014-01-15 01:08:23 +00:00
Linker Reapply r194218 with fix: 2014-01-16 06:29:36 +00:00
LTO Change MCStreamer EmitInstruction interface to take subtarget info 2014-01-28 23:12:42 +00:00
MC Fix PR18381 - print a minimal diagnostic rather than assert on unresolved .secidx target 2014-01-30 21:13:05 +00:00
Object Only ELF has a dynamic symbol table. Remove it from ObjectFile. 2014-01-30 20:45:33 +00:00
Option Avoid buffer copies when a Twine already is a StringRef. 2013-12-03 18:18:28 +00:00
Support [CommandLine] Aliases require an value if their target requires a value. 2014-01-29 18:54:17 +00:00
TableGen [TableGen] Correctly generate implicit anonymous prototype defs in multiclasses 2014-01-02 20:47:09 +00:00
Target [ms-cxxabi] Add a new calling convention that swaps 'this' and 'sret' 2014-01-31 17:41:22 +00:00
Transforms [vectorizer] Tweak the way we do small loop runtime unrolling in the 2014-01-31 10:51:08 +00:00
CMakeLists.txt
LLVMBuild.txt
Makefile