1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-19 02:52:53 +02:00
llvm-mirror/lib/IR
Peter Collingbourne 1285efe0c1 ArgumentPromotion: Drop sret attribute on functions that are only called directly.
If the first argument to a function is a 'this' argument and the second
has the sret attribute, the ArgumentPromotion pass may promote the 'this'
argument to more than one argument, violating the IR constraint that 'sret'
may only be applied to the first or second argument.

Although this IR constraint is arguably unnecessary, it highlighted the fact
that ArgPromotion does not need to preserve this attribute. Dropping the
attribute reduces register pressure in the backend by avoiding the register
copy required by sret. Because sret implies noalias, we also replace the
former with the latter.

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

llvm-svn: 239488
2015-06-10 21:14:34 +00:00
..
AsmWriter.cpp Prefer copy init over direct init. NFC. 2015-06-08 18:58:57 +00:00
AttributeImpl.h Add missing dereferenceable_or_null getters 2015-05-06 17:41:54 +00:00
Attributes.cpp Add initial support for the convergent attribute. 2015-05-26 23:48:40 +00:00
AutoUpgrade.cpp [opaque pointer type] Pass explicit type to Load instruction creation in AutoUpgrade 2015-05-20 21:46:30 +00:00
BasicBlock.cpp [PlaceSafepoints] Cleanup InsertSafepointPoll function 2015-05-26 21:03:23 +00:00
CMakeLists.txt [opaque pointer type] Explicit pointee type for GEPOperator/GEPConstantExpr. 2015-05-08 00:42:26 +00:00
Comdat.cpp IR: Add COMDATs to the IR 2014-06-27 18:19:56 +00:00
ConstantFold.cpp [ConstantFold] Don't skip the first gep index when folding geps 2015-06-04 07:01:56 +00:00
ConstantFold.h Recommit r236670: [opaque pointer type] Pass explicit pointer type through GEP constant folding"" 2015-05-07 17:28:58 +00:00
ConstantRange.cpp [ConstantRange] Split makeICmpRegion in two. 2015-03-18 00:41:24 +00:00
Constants.cpp Use Op<0> accessor instead of OperandList for Instructions. NFC 2015-05-21 22:48:54 +00:00
ConstantsContext.h Fix some odd whitespace and formatting errors while making 2015-05-18 21:49:02 +00:00
Core.cpp [C API] Add LLVMStructGetTypeAtIndex. 2015-06-04 09:09:53 +00:00
DataLayout.cpp COFF: Let globals with private linkage reside in their own section 2015-03-17 23:54:51 +00:00
DebugInfo.cpp IR: Give 'DI' prefix to debug info metadata 2015-04-29 16:38:44 +00:00
DebugInfoMetadata.cpp IR / debug info: Add a DWOId field to DICompileUnit, 2015-05-21 20:37:30 +00:00
DebugLoc.cpp IR: Give 'DI' prefix to debug info metadata 2015-04-29 16:38:44 +00:00
DiagnosticInfo.cpp [IR/Diagnostic] Assert that DebugLoc is valid before accessing. 2015-05-04 18:08:35 +00:00
DiagnosticPrinter.cpp Fix typos in comments, NFC 2014-08-29 21:53:01 +00:00
DIBuilder.cpp IR / debug info: Add a DWOId field to DICompileUnit, 2015-05-21 20:37:30 +00:00
Dominators.cpp [DomTree] verifyDomTree to unconditionally perform DT verification 2015-05-06 08:18:41 +00:00
Function.cpp ArgumentPromotion: Drop sret attribute on functions that are only called directly. 2015-06-10 21:14:34 +00:00
GCOV.cpp Remove more superfluous .str() and replace std::string concatenation with Twine. 2015-03-30 15:42:36 +00:00
Globals.cpp While in GlobalValue fix the function(s) that don't follow the 2015-05-15 18:20:14 +00:00
GVMaterializer.cpp [Layering] Move GVMaterializer.h into the IR library where its 2014-03-06 03:50:29 +00:00
InlineAsm.cpp Silence sign compare warning. NFC. 2015-03-29 20:49:03 +00:00
Instruction.cpp [PlaceSafepoints] Cleanup InsertSafepointPoll function 2015-05-26 21:03:23 +00:00
Instructions.cpp [opaque pointer type] Explicitly store the pointee type of the result of a GEP 2015-06-01 03:09:34 +00:00
IntrinsicInst.cpp IR: Split Metadata from Value 2014-12-09 18:38:53 +00:00
IRBuilder.cpp Change Function::getIntrinsicID() to return an Intrinsic::ID. NFC. 2015-05-20 17:16:39 +00:00
IRPrintingPasses.cpp uselistorder: Pull the bit through PrintModulePass 2015-04-15 02:38:06 +00:00
LegacyPassManager.cpp Rangify more for loops in LegacyPassManager.cpp. 2015-06-05 17:48:47 +00:00
LLVMBuild.txt
LLVMContext.cpp [IR/AsmWriter] Output escape sequences if the first character isdigit() 2015-06-02 21:25:08 +00:00
LLVMContextImpl.cpp Add the i128 builtin type to LLVM. 2015-04-17 15:32:15 +00:00
LLVMContextImpl.h Move the name pointer out of Value into a map that lives on the 2015-06-01 22:24:01 +00:00
Makefile Actually update the CMake and Makefile builds correctly, and update the 2013-01-02 12:09:16 +00:00
Mangler.cpp Move dllimport name mangling to IR mangler. 2015-06-09 22:09:53 +00:00
MDBuilder.cpp Add isConstant argument to MDBuilder::createTBAAStructTagNode 2015-06-01 14:53:55 +00:00
Metadata.cpp Move the name pointer out of Value into a map that lives on the 2015-06-01 22:24:01 +00:00
MetadataImpl.h Added missing header for the explicit dependency on MDNode. 2015-02-04 00:20:52 +00:00
MetadataTracking.cpp IR: Store RAUW support and Context in the same pointer, NFC 2015-01-19 19:02:06 +00:00
Module.cpp While in GlobalValue fix the function(s) that don't follow the 2015-05-15 18:20:14 +00:00
module.modulemap [modules] Add module maps for LLVM. These are not quite ready for prime-time 2014-05-21 02:46:14 +00:00
Operator.cpp Put GEPOperator member function definition in the appropriate .cpp file 2015-05-21 21:17:12 +00:00
Pass.cpp Refactoring cl::parser construction and initialization. 2015-01-22 21:01:12 +00:00
PassManager.cpp [PM] Push the debug option for the new pass manager into the opt tool 2015-01-13 22:42:38 +00:00
PassRegistry.cpp Revert r231276 (including r231277): Add a lock() function in PassRegistry to speed up multi-thread synchronization. 2015-03-05 17:53:00 +00:00
Statepoint.cpp Add invoke related functionality into StatepointSite classes. 2015-02-19 11:02:11 +00:00
SymbolTableListTraitsImpl.h Canonicalize header guards into a common format. 2014-08-13 16:26:38 +00:00
Type.cpp Int128 is also a built-in preconstructed type. 2015-06-02 23:56:53 +00:00
TypeFinder.cpp Fix Value dangling reference debug output 2015-03-10 23:55:38 +00:00
Use.cpp Fix a URL (NFC) 2014-08-21 21:09:24 +00:00
User.cpp IR: Cleanup comments for Value, User, and MDNode 2014-10-15 20:28:31 +00:00
Value.cpp Move the name pointer out of Value into a map that lives on the 2015-06-01 22:24:01 +00:00
ValueSymbolTable.cpp Changed renaming of local symbols by inserting a dot vefore the numeric suffix. 2015-05-12 16:47:30 +00:00
ValueTypes.cpp Add support for v1i128 type. 2015-04-17 16:11:05 +00:00
Verifier.cpp Add initial support for the convergent attribute. 2015-05-26 23:48:40 +00:00