llvm-6502/include/llvm
Reid Kleckner 805a83c041 Allow sret on the second parameter as well as the first
MSVC always places the implicit sret parameter after the implicit this
parameter of instance methods.  We used to handle this for
x86_thiscallcc by allocating the sret parameter on the stack and leaving
the this pointer in ecx, but that doesn't handle alternative calling
conventions like cdecl, stdcall, fastcall, or the win64 convention.

Instead, change the verifier to allow sret on the second parameter.

This also requires changing the Mips and X86 backends to return the
argument with the sret parameter, instead of assuming that the sret
parameter comes first.

The Sparc backend also returns sret parameters in a register, but I
wasn't able to update it to handle secondary sret parameters.  It
currently calls report_fatal_error if you feed it an sret in the second
parameter.

Reviewers: rafael.espindola, majnemer

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@208453 91177308-0d34-0410-b5e6-96231b3b80d8
2014-05-09 22:32:13 +00:00
..
ADT Missed formatting 2014-05-08 21:53:33 +00:00
Analysis split delinearization pass in 3 steps 2014-05-07 18:01:20 +00:00
AsmParser Move the LLVM IR asm writer header files into the IR directory, as they 2014-01-07 12:34:26 +00:00
Bitcode Update comment in LLVMBitCodes.h to reflect the actual bitcode record 2014-04-18 18:19:18 +00:00
CodeGen ARM: HFAs must be passed in consecutive registers 2014-05-09 14:01:47 +00:00
Config static link polly into tools 2014-03-14 04:04:14 +00:00
DebugInfo [DWARF parser] Turn DILineInfo into a struct. 2014-04-18 21:36:39 +00:00
ExecutionEngine Fix MSVC build broken by r207580 2014-04-29 22:04:55 +00:00
IR Allow sret on the second parameter as well as the first 2014-05-09 22:32:13 +00:00
IRReader Split out the IRReader header and the utility functions it provides into 2013-03-26 02:25:37 +00:00
LineEditor [C++11] Replace OwningPtr with std::unique_ptr in places where it doesn't break the API. 2014-04-21 09:34:48 +00:00
Linker [Layering] Sink Linker.h into a Linker subdirectory to make it 2014-03-06 03:42:23 +00:00
LTO Rename member variable to try to fix the bots. 2014-05-03 15:28:13 +00:00
MC Move late partial-unrolling thresholds into the processor definitions 2014-05-08 09:14:44 +00:00
Object Add range access to ELFFile's sections collection. 2014-05-05 06:48:34 +00:00
Option Add missing include, found by modules build. 2014-04-24 23:29:25 +00:00
ProfileData OnDiskHashTable: Audit types and use offset_type consistently 2014-04-19 00:33:15 +00:00
Support llvm-cov: Fix some funny indentation (NFC) 2014-05-07 21:50:43 +00:00
TableGen [tablegen] Add !listconcat operator with the similar semantics as !strconcat 2014-05-07 10:13:19 +00:00
Target ARM: HFAs must be passed in consecutive registers 2014-05-09 14:01:47 +00:00
Transforms [modules] Add missing #include. 2014-05-08 02:34:32 +00:00
CMakeLists.txt The llvm_headers_do_not_build project needs to be excluded from the default build, otherwise it gets built (at least in Visual Studio 2013). 2014-01-28 16:07:10 +00:00
InitializePasses.h Add an optimization that does CSE in a group of similar GEPs. 2014-05-01 18:38:36 +00:00
LinkAllIR.h [cleanup] Move the Dominators.h and Verifier.h headers into the IR 2014-01-13 09:26:24 +00:00
LinkAllPasses.h Add an optimization that does CSE in a group of similar GEPs. 2014-05-01 18:38:36 +00:00
Pass.h [PM] Add pass run listeners to the pass manager. 2014-04-28 18:19:25 +00:00
PassAnalysisSupport.h [C++11] More 'nullptr' conversion. In some cases just using a boolean check instead of comparing to nullptr. 2014-04-14 00:51:57 +00:00
PassManager.h Move the old pass manager infrastructure into a legacy namespace and 2013-11-09 12:26:54 +00:00
PassRegistry.h [C++11] More 'nullptr' conversion or in some cases just using a boolean check instead of comparing to nullptr. 2014-04-09 06:08:46 +00:00
PassSupport.h [PM] Add pass run listeners to the pass manager. 2014-04-28 18:19:25 +00:00