llvm/lib/IR
Duncan P. N. Exon Smith 0568c3d1ac IR: Lazily create ReplaceableMetadataImpl on MDNode
RAUW support on MDNode usually requires an extra allocation for
ReplaceableMetadataImpl.  This is only strictly necessary if there are
tracking references to the MDNode.  Make the construction of
ReplaceableMetadataImpl lazy, so that we don't get allocations if we
don't need them.

Since MDNode::isResolved now checks MDNode::isTemporary and
MDNode::NumUnresolved instead of whether a ReplaceableMetadataImpl is
allocated, the internal changes are intrusive (at various internal
checkpoints, isResolved now has a different answer).

However, there should be no real functionality change here; just
slightly lazier allocation behaviour.  The external semantics should be
identical.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@265279 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-03 21:23:52 +00:00
..
AsmWriter.cpp Swift Calling Convention: add swifterror attribute. 2016-04-01 21:41:15 +00:00
AttributeImpl.h Remove TrailingObjects::operator delete. It's still suffering from 2016-02-09 02:09:16 +00:00
Attributes.cpp Swift Calling Convention: add swifterror attribute. 2016-04-01 21:41:15 +00:00
AttributesCompatFunc.td Provide a way to specify inliner's attribute compatibility and merging. 2015-12-22 23:57:37 +00:00
AutoUpgrade.cpp IR: Stop upgrading !llvm.loop attachments via MDString 2016-03-25 00:56:13 +00:00
BasicBlock.cpp Introduce @llvm.experimental.deoptimize 2016-03-11 19:08:34 +00:00
CMakeLists.txt [ThinLTO] Renaming of function index to module summary index (NFC) 2016-03-15 00:04:37 +00:00
Comdat.cpp
ConstantFold.cpp [InstCombine] Ensure all undef operands are handled before binary instruction constant folding 2016-03-21 22:15:50 +00:00
ConstantFold.h Minor code cleanup. NFC. 2016-03-22 04:37:32 +00:00
ConstantRange.cpp [ConstantRange] Generalize makeGuaranteedNoWrapRegion to work on ranges 2016-03-03 18:31:16 +00:00
Constants.cpp IR: Add ConstantData, for operand-less Constants 2016-02-21 02:39:49 +00:00
ConstantsContext.h Add a new insert_as() method to DenseMap and use it for ConstantUniqueMap 2016-03-07 00:51:00 +00:00
Core.cpp Various style fix in Core.h/Core.cpp . NFC 2016-04-03 21:06:04 +00:00
DataLayout.cpp Replace Type::getInt32Ty() and comparison by isIntegerTy(32). NFC. 2016-01-22 03:30:27 +00:00
DebugInfo.cpp Remove llvm::getDISubprogram in favor of Function::getSubprogram 2016-03-11 02:14:16 +00:00
DebugInfoMetadata.cpp Move the DebugEmissionKind enum from DIBuilder into DICompileUnit. 2016-03-31 23:56:58 +00:00
DebugLoc.cpp Annotate dump() methods with LLVM_DUMP_METHOD, addressing Richard Smith r259192 post commit comment. 2016-01-29 20:50:44 +00:00
DiagnosticInfo.cpp Refactor backend diagnostics for unsupported features 2016-02-02 13:52:43 +00:00
DiagnosticPrinter.cpp
DIBuilder.cpp Move the DebugEmissionKind enum from DIBuilder into DICompileUnit. 2016-03-31 23:56:58 +00:00
Dominators.cpp [PM] Make the AnalysisManager parameter to run methods a reference. 2016-03-11 11:05:24 +00:00
Function.cpp Swift Calling Convention: add swifterror attribute. 2016-04-01 21:41:15 +00:00
GCOV.cpp llvm-cov: Fix reading gcov data that does not have function names 2016-02-08 22:49:40 +00:00
Globals.cpp constify GlobalValue::getGUID() and GlobalValue::getGlobalIdentifier() (NFC) 2016-04-02 05:25:27 +00:00
GVMaterializer.cpp
InlineAsm.cpp
Instruction.cpp fix typos; NFC 2016-01-06 00:18:29 +00:00
Instructions.cpp Swift Calling Convention: add swifterror attribute. 2016-04-01 21:41:15 +00:00
IntrinsicInst.cpp IR: Add DbgInfoIntrinsic::getVariableLocation 2016-03-29 18:56:03 +00:00
IRBuilder.cpp Revert "Support arbitrary addrspace pointers in masked load/store intrinsics" 2016-03-22 20:24:34 +00:00
IRPrintingPasses.cpp Recommit r256952 "Filtering IR printing for print-after-all/print-before-all" 2016-01-06 22:55:03 +00:00
LegacyPassManager.cpp Annotate dump() methods with LLVM_DUMP_METHOD, addressing Richard Smith r259192 post commit comment. 2016-01-29 20:50:44 +00:00
LLVMBuild.txt
LLVMContext.cpp 80 lines column after renaming "shouldDiscardValueNames" (NFC) 2016-04-02 03:59:58 +00:00
LLVMContextImpl.cpp
LLVMContextImpl.h Add a comment on partial hashing of Metadata 2016-03-19 01:06:24 +00:00
Mangler.cpp Update to use new name alignTo(). 2016-01-14 21:06:47 +00:00
MDBuilder.cpp
Metadata.cpp IR: Lazily create ReplaceableMetadataImpl on MDNode 2016-04-03 21:23:52 +00:00
MetadataImpl.h
Module.cpp Interface to get/set profile summary metadata to module 2016-03-18 21:29:30 +00:00
module.modulemap
ModuleSummaryIndex.cpp Create a typedef GlobalValue::GUID for uint64_t and RAUW (NFC) 2016-04-02 05:07:53 +00:00
Operator.cpp [opaque pointer types] [NFC] GEP: replace get(Pointer)ElementType uses with get{Source,Result}ElementType. 2016-01-19 17:28:00 +00:00
Pass.cpp Annotate dump() methods with LLVM_DUMP_METHOD, addressing Richard Smith r259192 post commit comment. 2016-01-29 20:50:44 +00:00
PassManager.cpp [PM] Implement the final conclusion as to how the analysis IDs should 2016-03-11 10:22:49 +00:00
PassRegistry.cpp
Statepoint.cpp [Statepoints] Separate out logic for statepoint directives; NFC 2016-03-17 01:56:10 +00:00
SymbolTableListTraitsImpl.h
Type.cpp [IR] Mark the Type subclass helper methods 'inline' and move their definitions to DerivedTypes.h so they can be inlined by the compiler. 2015-12-25 04:06:20 +00:00
TypeFinder.cpp
Use.cpp
User.cpp
Value.cpp Rename Context::discardValueNames() to shouldDiscardValueNames() (NFC) 2016-04-02 03:46:17 +00:00
ValueSymbolTable.cpp Annotate dump() methods with LLVM_DUMP_METHOD, addressing Richard Smith r259192 post commit comment. 2016-01-29 20:50:44 +00:00
ValueTypes.cpp Add isScalarInteger helper to EVT/MVT 2016-03-01 18:01:28 +00:00
Verifier.cpp Swift Calling Convention: add swifterror attribute. 2016-04-01 21:41:15 +00:00