llvm-6502/lib/Transforms/Utils
Duncan P. N. Exon Smith ae9e15f914 IR: Split GenericMDNode into MDTuple and UniquableMDNode
Split `GenericMDNode` into two classes (with more descriptive names).

  - `UniquableMDNode` will be a common subclass for `MDNode`s that are
    sometimes uniqued like constants, and sometimes 'distinct'.

    This class gets the (short-lived) RAUW support and related API.

  - `MDTuple` is the basic tuple that has always been returned by
    `MDNode::get()`.  This is as opposed to more specific nodes to be
    added soon, which have additional fields, custom assembly syntax,
    and extra semantics.

    This class gets the hash-related logic, since other sublcasses of
    `UniquableMDNode` may need to hash based on other fields.

To keep this diff from getting too big, I've added casts to `MDTuple`
that won't really scale as new subclasses of `UniquableMDNode` are
added, but I'll clean those up incrementally.

(No functionality change intended.)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@225682 91177308-0d34-0410-b5e6-96231b3b80d8
2015-01-12 20:09:34 +00:00
..
AddDiscriminators.cpp IR: Split Metadata from Value 2014-12-09 18:38:53 +00:00
ASanStackFrameLayout.cpp
BasicBlockUtils.cpp Introduce llvm::SplitAllCriticalEdges 2014-11-19 00:17:31 +00:00
BreakCriticalEdges.cpp Introduce llvm::SplitAllCriticalEdges 2014-11-19 00:17:31 +00:00
BuildLibCalls.cpp [SimplifyLibCalls] Factor out fortified libcall handling. 2015-01-12 17:22:43 +00:00
BypassSlowDivision.cpp
CloneFunction.cpp Rename MapValue(Metadata*) to MapMetadata() 2014-12-19 06:06:18 +00:00
CloneModule.cpp Remove a bad cast in CloneModule() 2014-12-23 08:23:45 +00:00
CMakeLists.txt
CmpInstAnalysis.cpp
CodeExtractor.cpp
CtorUtils.cpp
DemoteRegToStack.cpp
FlattenCFG.cpp
GlobalStatus.cpp Update SetVector to rely on the underlying set's insert to return a pair<iterator, bool> 2014-11-19 07:49:26 +00:00
InlineFunction.cpp [PM] Split the AssumptionTracker immutable pass into two separate APIs: 2015-01-04 12:03:27 +00:00
InstructionNamer.cpp
IntegerDivision.cpp
LCSSA.cpp [LCSSA] Handle PHI insertion in disjoint loops 2014-12-22 22:35:46 +00:00
LLVMBuild.txt
Local.cpp [PM] Split the AssumptionTracker immutable pass into two separate APIs: 2015-01-04 12:03:27 +00:00
LoopSimplify.cpp [PM] Split the AssumptionTracker immutable pass into two separate APIs: 2015-01-04 12:03:27 +00:00
LoopUnroll.cpp [PM] Split the AssumptionTracker immutable pass into two separate APIs: 2015-01-04 12:03:27 +00:00
LoopUnrollRuntime.cpp IR: Split Metadata from Value 2014-12-09 18:38:53 +00:00
LowerExpectIntrinsic.cpp
LowerInvoke.cpp
LowerSwitch.cpp [SwitchLowering] Handle destinations on multiple phi instructions 2014-12-02 18:31:53 +00:00
Makefile
Mem2Reg.cpp [PM] Split the AssumptionTracker immutable pass into two separate APIs: 2015-01-04 12:03:27 +00:00
MetaRenamer.cpp
ModuleUtils.cpp
PromoteMemoryToRegister.cpp [PM] Split the AssumptionTracker immutable pass into two separate APIs: 2015-01-04 12:03:27 +00:00
SimplifyCFG.cpp SimplifyCFG: check uses of constant-foldable instrs in switch destinations (PR20210) 2015-01-09 22:13:31 +00:00
SimplifyIndVar.cpp This patch teaches IndVarSimplify to add nuw and nsw to certain kinds 2015-01-06 19:02:56 +00:00
SimplifyInstructions.cpp [PM] Split the AssumptionTracker immutable pass into two separate APIs: 2015-01-04 12:03:27 +00:00
SimplifyLibCalls.cpp [SimplifyLibCalls] Factor out fortified libcall handling. 2015-01-12 17:22:43 +00:00
SSAUpdater.cpp
SymbolRewriter.cpp SymbolRewriter: use iplist::splice 2015-01-05 17:56:32 +00:00
UnifyFunctionExitNodes.cpp
Utils.cpp
ValueMapper.cpp IR: Split GenericMDNode into MDTuple and UniquableMDNode 2015-01-12 20:09:34 +00:00