llvm-6502/include/llvm/IR
Duncan P. N. Exon Smith 027898a77a IR: Add MDNode::replaceWithPermanent()
Add new API for converting temporaries that may self-reference.
Self-referencing nodes are not allowed to be uniqued, so sending them
into `replaceWithUniqued()` is dangerous (and this commit adds
assertions that prevent it).

`replaceWithPermanent()` has similar semantics to `get()` followed by
calls to `replaceOperandWith()`.  In particular, if there's a
self-reference, it returns a distinct node; otherwise, it returns a
uniqued one.  Like `replaceWithUniqued()` and `replaceWithDistinct()`
(well, it calls out to them) it mutates the temporary node in place if
possible, only calling `replaceAllUsesWith()` on a uniquing collision.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@228726 91177308-0d34-0410-b5e6-96231b3b80d8
2015-02-10 19:13:46 +00:00
..
Argument.h
AssemblyAnnotationWriter.h
Attributes.h
AutoUpgrade.h
BasicBlock.h Add a pass for inserting safepoints into (nearly) arbitrary IR 2015-02-04 00:37:33 +00:00
CallingConv.h
CallSite.h
CFG.h Add range adapters predecessors() and successors() for BBs 2015-02-04 19:14:57 +00:00
CMakeLists.txt
Comdat.h
Constant.h
ConstantFolder.h
ConstantRange.h
Constants.h
DataLayout.h Add a FIXME about preferred alignment to DataLayout. 2015-01-26 19:19:04 +00:00
DebugInfo.h Debug info: Use DW_OP_bit_piece instead of DW_OP_piece in the 2015-02-09 23:57:15 +00:00
DebugInfoMetadata.h IR: Remove unnecessary fields from MDTemplateParameter 2015-02-10 01:59:57 +00:00
DebugLoc.h [cleanup] Re-sort all the #include lines in LLVM using 2015-01-14 11:23:27 +00:00
DerivedTypes.h
DiagnosticInfo.h
DiagnosticPrinter.h
DIBuilder.h Debug info: Use DW_OP_bit_piece instead of DW_OP_piece in the 2015-02-09 23:57:15 +00:00
Dominators.h [PM] Port domtree to the new pass manager (at last). 2015-01-14 10:19:28 +00:00
Function.h Revert GCStrategy ownership changes 2015-01-26 18:26:35 +00:00
GetElementPtrTypeIterator.h
GlobalAlias.h
GlobalObject.h
GlobalValue.h [cleanup] Re-sort all the #include lines in LLVM using 2015-01-14 11:23:27 +00:00
GlobalVariable.h
GVMaterializer.h
InlineAsm.h
InstIterator.h Introduce print-memderefs to test isDereferenceablePointer 2015-02-06 01:46:42 +00:00
InstrTypes.h
Instruction.def
Instruction.h Move DebugLocs around instead of copying. 2015-02-07 12:28:15 +00:00
Instructions.h [cleanup] Re-sort all the #include lines in LLVM using 2015-01-14 11:23:27 +00:00
InstVisitor.h
IntrinsicInst.h
Intrinsics.h Masked Gather and Scatter Intrinsics. 2015-02-08 08:27:19 +00:00
Intrinsics.td Masked Gather and Scatter Intrinsics. 2015-02-08 08:27:19 +00:00
IntrinsicsAArch64.td
IntrinsicsARM.td
IntrinsicsBPF.td BPF backend 2015-01-24 17:51:26 +00:00
IntrinsicsHexagon.td [Hexagon] Converting XTYPE/SHIFT intrinsics. Cleaning out old intrinsic patterns and updating tests. 2015-02-03 20:40:52 +00:00
IntrinsicsMips.td
IntrinsicsNVVM.td
IntrinsicsPowerPC.td
IntrinsicsR600.td
IntrinsicsX86.td [X86] Use i8 immediate for comparison type on AVX512 packed integer instructions. This matches floating point equivalents. Includes autoupgrade support to convert old code. 2015-01-25 23:26:02 +00:00
IntrinsicsXCore.td
IRBuilder.h [Statepoint] Improve two asserts, fix some style (NFC) 2015-02-09 23:02:10 +00:00
IRPrintingPasses.h
LegacyPassManager.h
LegacyPassManagers.h [LPM] A targeted but somewhat horrible fix to the legacy pass manager's 2015-01-28 09:47:21 +00:00
LegacyPassNameParser.h Refactoring cl::parser construction and initialization. 2015-01-22 21:01:12 +00:00
LLVMContext.h
Mangler.h
MDBuilder.h
Metadata.def AsmParser: Add stubs for specialized MDNodes, NFC 2015-02-10 01:08:16 +00:00
Metadata.h IR: Add MDNode::replaceWithPermanent() 2015-02-10 19:13:46 +00:00
MetadataTracking.h
Module.h [llvm link] Destroy ConstantArrays in LLVMContext if they are not used. 2015-01-20 19:24:59 +00:00
NoFolder.h
OperandTraits.h
Operator.h Teach isDereferenceablePointer() to look through bitcast constant expressions. 2015-02-05 09:15:37 +00:00
PassManager.h [PM] Teach the module-to-function adaptor to not run function passes 2015-02-01 10:47:25 +00:00
PassManagerInternal.h [PM] Remove the 'AnalysisManagerT' type parameter from numerous layers 2015-01-13 11:31:43 +00:00
PatternMatch.h
PredIteratorCache.h
Statepoint.h [GC] CodeGenPrep transform: simplify offsetable relocate 2015-01-14 23:27:07 +00:00
SymbolTableListTraits.h
TrackingMDRef.h
Type.h
TypeBuilder.h
TypeFinder.h
Use.h
UseListOrder.h
User.h
Value.h Value: Remove superfluous typedefs and deprecated method. NFC. 2015-02-06 14:44:02 +00:00
ValueHandle.h
ValueMap.h
ValueSymbolTable.h
Verifier.h