1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-24 21:42:54 +02:00
llvm-mirror/include/llvm/IR
Adrian Prantl 7228153c53 Turn DISubprogram into a variable-length node.
DISubprogram currently has 10 pointer operands, several of which are
often nullptr. This patch reduces the amount of memory allocated by
DISubprogram by rearranging the operands such that containing type,
template params, and thrown types come last, and are only allocated
when they are non-null (or followed by non-null operands).

This patch also eliminates the entirely unused DisplayName operand.

This saves up to 4 pointer operands per DISubprogram. (I tried
measuring the effect on peak memory usage on an LTO link of an X86
llc, but the results were very noisy).

This reapplies r301498 with an attempted workaround for g++.

Differential Revision: https://reviews.llvm.org/D32560

llvm-svn: 301501
2017-04-26 23:59:52 +00:00
..
Argument.h Prefer addAttr(Attribute::AttrKind) over the AttributeList overload 2017-04-19 17:28:52 +00:00
AssemblyAnnotationWriter.h
Attributes.h Make getSlotAttributes return an AttributeSet instead of a wrapper list 2017-04-24 22:25:02 +00:00
Attributes.td
AutoUpgrade.h
BasicBlock.h [IR] Share implementation for pairs of const and non-const methods using const_cast. NFCI 2017-03-27 05:46:58 +00:00
CallingConv.h
CallSite.h [IR] Make paramHasAttr to use arg indices instead of attr indices 2017-04-14 20:19:02 +00:00
CFG.h
CMakeLists.txt
Comdat.h [IR] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC). 2017-02-17 00:00:09 +00:00
Constant.h [IR] Implement pairs of non-const and const methods using the const version instead of the non-const version. NFCI 2017-03-27 05:47:03 +00:00
ConstantFolder.h
ConstantRange.h Fix typo in comment 2017-04-20 23:07:00 +00:00
Constants.h [IR] Grammar police: "intact" is one word. NFC 2017-01-18 00:07:18 +00:00
DataLayout.h Allow DataLayout to specify addrspace for allocas. 2017-04-10 22:27:50 +00:00
DebugInfo.h
DebugInfoFlags.def Revert "Debug Info: Add basic support for external types references." 2017-03-13 22:56:14 +00:00
DebugInfoMetadata.h Turn DISubprogram into a variable-length node. 2017-04-26 23:59:52 +00:00
DebugLoc.h
DerivedTypes.h
DiagnosticInfo.h [Stack Protection] Add diagnostic information for why stack protection was applied to a function 2017-02-28 16:02:37 +00:00
DiagnosticPrinter.h
DIBuilder.h Add support for DW_TAG_thrown_type. 2017-04-26 22:56:44 +00:00
Dominators.h [DomPrinter] Add a way to programmatically dump a dot representation. 2017-04-24 17:48:44 +00:00
Function.h [IR] Make getParamAttributes take argument numbers, not ArgNo+1 2017-04-13 23:12:13 +00:00
GetElementPtrTypeIterator.h
GlobalAlias.h
GlobalIFunc.h
GlobalIndirectSymbol.h [IR] Implement pairs of non-const and const methods using the const version instead of the non-const version. NFCI 2017-03-27 05:47:03 +00:00
GlobalObject.h [IR] Inline some Function accessors 2017-03-16 16:57:31 +00:00
GlobalValue.h [IR] Implement pairs of non-const and const methods using the const version instead of the non-const version. NFCI 2017-03-27 05:47:03 +00:00
GlobalVariable.h
GVMaterializer.h
InlineAsm.h [IR] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC). 2017-02-17 00:00:09 +00:00
InstIterator.h
InstrTypes.h These two functions should be const. We often could detect it but this just makes it always true. 2017-01-15 07:40:51 +00:00
Instruction.def
Instruction.h [IR] Add AllowContract to FastMathFlags 2017-03-28 20:11:52 +00:00
Instructions.h Add a getPointerOperandType() helper to LoadInst and StoreInst; NFC 2017-04-18 22:00:54 +00:00
InstVisitor.h [IR/Analysis] Defend against getting slightly wrong template arguments 2017-02-07 03:17:30 +00:00
IntrinsicInst.h [InstCombineCalls] Remove zero length atomic memcpy intrinsics 2017-02-08 14:23:47 +00:00
Intrinsics.h Rename AttributeSet to AttributeList 2017-03-21 16:57:19 +00:00
Intrinsics.td Remove readnone from invariant.group.barrier 2017-04-12 20:45:12 +00:00
IntrinsicsAArch64.td
IntrinsicsAMDGPU.td AMDGPU: Move v_readlane lane select from VGPR to SGPR 2017-04-24 17:17:36 +00:00
IntrinsicsARM.td [ARM] Reapply r296865 "[ARM] fpscr read/write intrinsics not aware of each other"" 2017-03-07 11:17:53 +00:00
IntrinsicsBPF.td
IntrinsicsHexagon.td [Hexagon] Add intrinsics for masked vector stores 2017-02-22 21:23:09 +00:00
IntrinsicsMips.td
IntrinsicsNVVM.td [NVPTX] Add intrinsics to support named barriers. 2017-01-28 16:38:15 +00:00
IntrinsicsPowerPC.td [PPC] cleanup of mayLoad/mayStore flags and memory operands. 2017-01-26 18:59:15 +00:00
IntrinsicsSystemZ.td
IntrinsicsWebAssembly.td [WebAssembly] Update grow_memory's return type. 2017-01-18 01:02:45 +00:00
IntrinsicsX86.td [X86][SSE] Update MOVNTDQA non-temporal loads to generic implementation (LLVM) 2017-04-14 15:05:35 +00:00
IntrinsicsXCore.td
IRBuilder.h Allow DataLayout to specify addrspace for allocas. 2017-04-10 22:27:50 +00:00
IRPrintingPasses.h
LegacyPassManager.h
LegacyPassManagers.h
LegacyPassNameParser.h
LLVMContext.h Add !associated metadata. 2017-03-17 22:17:24 +00:00
Mangler.h Move llvm::emitLinkerFlagsForGlobalCOFF() to Mangler. 2017-03-31 04:46:50 +00:00
MDBuilder.h Add function importing info from samplepgo profile to the module summary. 2017-02-28 18:09:44 +00:00
Metadata.def
Metadata.h Introducing LLVMMetadataRef 2017-04-17 11:52:54 +00:00
Module.h Update doc of the variadic version of getOrInsertFunction 2017-04-25 05:45:37 +00:00
ModuleSlotTracker.h
ModuleSummaryIndex.h IR: Remove some comments that are documenting the obvious. NFC. 2017-04-19 18:00:05 +00:00
ModuleSummaryIndexYAML.h Align all scalar numbers to LLVM_YAML_IS_FLOW_SEQUENCE_VECTOR 2017-04-04 06:02:32 +00:00
NoFolder.h
OperandTraits.h
Operator.h [IR] Add AllowContract to FastMathFlags 2017-03-28 20:11:52 +00:00
OptBisect.h Remove opt-bisect support for "cases" in favor of debug counters 2017-03-11 01:41:03 +00:00
PassManager.h Revert r293017 and fix the actual underlying issue. 2017-02-07 01:50:48 +00:00
PassManagerInternal.h Avoid potential ADL ambiguity between llvm::make_unique and std::make_unique (when building as C++14+) 2017-03-20 16:35:33 +00:00
PatternMatch.h [APInt] Rename getSignBit to getSignMask 2017-04-20 16:56:25 +00:00
PredIteratorCache.h Make PredIteratorCache size() logically const. Do not require copying predecessors to get size. 2017-03-14 11:25:45 +00:00
ProfileSummary.h
Statepoint.h Rename AttributeSet to AttributeList 2017-03-21 16:57:19 +00:00
SymbolTableListTraits.h [IR] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC). 2017-02-17 00:00:09 +00:00
TrackingMDRef.h [IR] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC). 2017-02-17 00:00:09 +00:00
Type.h [IR] Inline Type::getScalarType() by using isVectorTy() and getVectorElementType() that were already available inline. 2017-04-08 05:47:09 +00:00
TypeBuilder.h
TypeFinder.h [IR] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC). 2017-02-17 00:00:09 +00:00
Use.h [IR] Put the Use list waymarking bits in the bit positions documentation says they are using 2017-04-17 18:12:30 +00:00
UseListOrder.h [IR] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC). 2017-02-17 00:00:09 +00:00
User.h [IR] Implement pairs of non-const and const methods using the const version instead of the non-const version. NFCI 2017-03-27 05:47:03 +00:00
Value.def
Value.h Handle invariant.group.barrier in BasicAA 2017-04-24 19:37:17 +00:00
ValueHandle.h Reverts commit r301424, r301425 and r301426 2017-04-26 16:37:05 +00:00
ValueMap.h
ValueSymbolTable.h [IR] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC). 2017-02-17 00:00:09 +00:00
Verifier.h