llvm-6502/include/llvm/IR
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
..
Argument.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
AssemblyAnnotationWriter.h Move the LLVM IR asm writer header files into the IR directory, as they 2014-01-07 12:34:26 +00:00
Attributes.h IR: Cleanup AttributeSet::get for AttrBuilder 2014-05-03 23:00:35 +00:00
AutoUpgrade.h [Layering] Move AutoUpgrade.h into the IR library where its 2014-03-05 10:34:14 +00:00
BasicBlock.h Fix some obvious Doxygen comment bugs. 2014-05-06 05:05:59 +00:00
CallingConv.h Revert r203488 and r203520. 2014-03-12 18:09:37 +00:00
CallSite.h Improve 'tail' call marking in TRE. A bootstrap of clang goes from 375k calls marked tail in the IR to 470k, however this improvement does not carry into an improvement of the call/jmp ratio on x86. The most common pattern is a tail call + br to a block with nothing but a 'ret'. 2014-05-05 23:59:03 +00:00
CFG.h [C++11] Add range based accessors for the Use-Def chain of a Value. 2014-03-09 03:16:01 +00:00
CMakeLists.txt [CMake] intrinsics_gen: Use add_public_tablegen_target(). 2014-02-20 13:42:16 +00:00
Constant.h [C++11] Add 'override' keyword to IR library. 2014-03-05 06:35:38 +00:00
ConstantFolder.h [Modules] Move the ConstantFolder into the IR library where it can 2014-03-04 12:02:47 +00:00
ConstantRange.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
Constants.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
DataLayout.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
DebugInfo.h DebugInfo: Use enum instead of unsigned 2014-05-07 12:49:08 +00:00
DebugLoc.h [BUG][REFACTOR] 2014-05-07 09:51:22 +00:00
DerivedTypes.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
DiagnosticInfo.h Inliner::OptimizationRemark: Fix crash in clang/test/Frontend/optimization-remark.c on some hosts, including --vg. 2014-04-17 12:22:14 +00:00
DiagnosticPrinter.h [C++11] Add 'override' keyword to IR library. 2014-03-05 06:35:38 +00:00
DIBuilder.h PR19598: Provide the ability to RAUW a declaration with itself, creating a non-temporary copy and using that to RAUW. 2014-05-06 03:41:57 +00:00
Dominators.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
Function.h Allow sret on the second parameter as well as the first 2014-05-09 22:32:13 +00:00
GetElementPtrTypeIterator.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
GlobalAlias.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
GlobalValue.h Run clang-format in small sections of code to make a patch easier to read. 2014-05-09 15:49:02 +00:00
GlobalVariable.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
GVMaterializer.h Style update: don't duplicate the function name. 2014-05-07 17:04:45 +00:00
InlineAsm.h Remove copy ctors that did the same thing as the default one. 2014-03-11 11:32:49 +00:00
InstIterator.h [Modules] Move InstIterator out of the Support library, where it had no 2014-03-04 10:30:26 +00:00
InstrTypes.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
Instruction.def Add addrspacecast instruction. 2013-11-15 01:34:59 +00:00
Instruction.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
Instructions.h Add 'musttail' marker to call instructions 2014-04-24 20:14:34 +00:00
InstVisitor.h [Layering] Move InstVisitor.h into the IR library as it is pretty 2014-03-06 03:23:41 +00:00
IntrinsicInst.h Add some convenience accessors for the underlying Use of an operand. 2014-02-25 03:34:17 +00:00
Intrinsics.h Intrinsics: add LLVMHalfElementsVectorType constraint 2014-03-29 07:04:54 +00:00
Intrinsics.td Implememting named register intrinsics 2014-05-06 16:51:25 +00:00
IntrinsicsAArch64.td Intrinsics: expand semantics of LLVMExtendedVectorType (& trunc) 2014-03-28 12:31:39 +00:00
IntrinsicsARM64.td AArch64/ARM64: mark fmul intrinsic as commutative. 2014-04-22 10:10:14 +00:00
IntrinsicsARM.td ARM: remove @llvm.arm.sevl 2014-04-25 17:51:25 +00:00
IntrinsicsHexagon.td
IntrinsicsMips.td [mips][msa] Add DLSA instruction. 2014-02-10 12:05:17 +00:00
IntrinsicsNVVM.td [NVPTX] Add preliminary intrinsics and codegen support for textures/surfaces 2014-04-09 15:39:15 +00:00
IntrinsicsPowerPC.td
IntrinsicsR600.td
IntrinsicsX86.td AVX-512: optimized a shuffle pattern to VINSERTI64x4. 2014-04-29 09:09:15 +00:00
IntrinsicsXCore.td [XCore] Add intrinsic for CLRPT (clear port time) instruction. 2014-02-25 17:31:15 +00:00
IRBuilder.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
IRPrintingPasses.h [PM] Fix stale header blocker, found by Duncan Smith in code review! 2014-01-14 05:50:19 +00:00
LeakDetector.h [Modules] Move the LeakDetector header into the IR library where the 2014-03-04 12:46:06 +00:00
LegacyPassManager.h [C++11] Add 'override' keyword to IR library. 2014-03-05 06:35:38 +00:00
LegacyPassManagers.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
LegacyPassNameParser.h [C++11] More 'nullptr' conversion. In some cases just using a boolean check instead of comparing to nullptr. 2014-04-15 06:32:26 +00:00
LLVMContext.h [PM] Add pass run listeners to the pass manager. 2014-04-28 18:19:25 +00:00
Mangler.h Add back r201608, r201622, r201624 and r201625 2014-02-19 17:23:20 +00:00
MDBuilder.h Move MDBuilder's methods out of line. 2014-04-12 14:26:59 +00:00
Metadata.h Remove AssemblyAnnotationWriter from NamedMDNode::print. 2014-04-23 12:23:05 +00:00
Module.h Style update: don't duplicate the function name. 2014-05-07 16:43:23 +00:00
NoFolder.h [Modules] Move the NoFolder into the IR library as it creates 2014-03-04 12:05:47 +00:00
OperandTraits.h
Operator.h [Modules] Move GetElementPtrTypeIterator into the IR library. As its 2014-03-04 10:40:04 +00:00
PassManager.h [C++] Use 'nullptr'. 2014-04-24 06:44:33 +00:00
PatternMatch.h [Modules] Move the LLVM IR pattern match header into the IR library, it 2014-03-04 11:08:18 +00:00
PredIteratorCache.h [C++11] More 'nullptr' conversion. In some cases just using a boolean check instead of comparing to nullptr. 2014-04-15 04:59:12 +00:00
SymbolTableListTraits.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
Type.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
TypeBuilder.h #include <climits> instead of <limits.h> in C++ header file. 2013-06-13 23:49:09 +00:00
TypeFinder.h
Use.h Updated the link to the correct URL. 2014-04-29 13:21:05 +00:00
User.h [ADT] Make the iterator adaptor utility a touch more general by 2014-04-29 01:57:35 +00:00
Value.h Remove trailing white space. 2014-05-09 13:54:40 +00:00
ValueHandle.h [C++] Use 'nullptr'. 2014-04-24 06:44:33 +00:00
ValueMap.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
ValueSymbolTable.h
Verifier.h verify-di: Implement DebugInfoVerifier 2014-04-15 16:27:38 +00:00