llvm-6502/include/llvm/CodeGen
Lang Hames 944520f38c Add functions 'hasPredecessor' and 'hasPredecessorHelper' to SDNode. The
hasPredecessorHelper function allows predecessors to be cached to speed up
repeated invocations. This fixes PR10186.

X.isPredecessorOf(Y) now just calls Y.hasPredecessor(X)

Y.hasPredecessor(X) calls Y.hasPredecessorHelper(X, Visited, Worklist) with
empty Visited and Worklist sets (i.e. no caching over invocations).

Y.hasPredecessorHelper(X, Visited, Worklist) caches search state in Visited
and Worklist to speed up repeated calls. The Visited set is searched for X
before going to the worklist to further search the DAG if necessary.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134592 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-07 04:31:51 +00:00
..
PBQP Remove unused STL header includes. 2011-04-23 19:53:52 +00:00
Analysis.h
AsmPrinter.h Fix a FIXME by making GlobalVariable::getInitializer() return a 2011-06-19 18:37:11 +00:00
BinaryObject.h
CalcSpillWeights.h Use the new TRI->getLargestLegalSuperClass hook to constrain register class inflation. 2011-04-26 18:52:36 +00:00
CallingConvLower.h Provide an ARMCCState subclass of CCState so that ARM clients will always set 2011-06-10 20:59:24 +00:00
EdgeBundles.h Build the Hopfield network incrementally when splitting global live ranges. 2011-04-09 02:59:09 +00:00
FastISel.h Revert r133953 for now. 2011-06-29 23:50:13 +00:00
FunctionLoweringInfo.h Introduce MachineBranchProbabilityInfo class, which has similar API to 2011-06-16 20:22:37 +00:00
GCMetadata.h
GCMetadataPrinter.h
GCs.h
GCStrategy.h
IntrinsicLowering.h
ISDOpcodes.h Add one more argument to the prefetch intrinsic to indicate whether it's a data 2011-06-14 04:58:37 +00:00
JITCodeEmitter.h Fix a ton of comment typos found by codespell. Patch by 2011-04-15 05:18:47 +00:00
LatencyPriorityQueue.h
LinkAllAsmWriterComponents.h
LinkAllCodegenComponents.h There is only one register coalescer. Merge it into the base class and 2011-06-26 22:34:10 +00:00
LiveInterval.h Teach LiveInterval::isZeroLength about null SlotIndexes. 2011-05-16 23:50:05 +00:00
LiveIntervalAnalysis.h Dead code elimination may separate the live interval into multiple connected components. 2011-03-17 20:37:07 +00:00
LiveStackAnalysis.h
LiveVariables.h
MachineBasicBlock.h Introduce MachineBranchProbabilityInfo class, which has similar API to 2011-06-16 20:22:37 +00:00
MachineBranchProbabilityInfo.h Introduce MachineBranchProbabilityInfo class, which has similar API to 2011-06-16 20:22:37 +00:00
MachineCodeEmitter.h Fix a ton of comment typos found by codespell. Patch by 2011-04-15 05:18:47 +00:00
MachineCodeInfo.h
MachineConstantPool.h Add comment to clarify what MachineConstantPoolEntry::isMachineConstantPoolEntry() means. 2011-03-24 06:28:45 +00:00
MachineDominators.h
MachineFrameInfo.h
MachineFunction.h - Rename TargetInstrDesc, TargetOperandInfo to MCInstrDesc and MCOperandInfo and 2011-06-28 19:10:37 +00:00
MachineFunctionAnalysis.h
MachineFunctionPass.h
MachineInstr.h Include a source location when complaining about bad inline assembly. 2011-07-02 03:53:34 +00:00
MachineInstrBuilder.h - Rename TargetInstrDesc, TargetOperandInfo to MCInstrDesc and MCOperandInfo and 2011-06-28 19:10:37 +00:00
MachineJumpTableInfo.h
MachineLocation.h
MachineLoopInfo.h
MachineLoopRanges.h
MachineMemOperand.h
MachineModuleInfo.h Reformatting. Moving class definitions to more natural places. No functionalogical changes. 2011-06-11 11:37:49 +00:00
MachineModuleInfoImpls.h
MachineOperand.h Handle debug info for i128 constants. 2011-06-24 20:46:11 +00:00
MachinePassRegistry.h
MachineRegisterInfo.h Remove RegClass2VRegMap from MachineRegisterInfo. 2011-06-27 23:54:40 +00:00
MachineRelocation.h
MachineSSAUpdater.h
MachORelocation.h
ObjectCodeEmitter.h
Passes.h Remove the experimental (and unused) pre-ra splitting pass. Greedy regalloc can split live ranges. 2011-06-27 23:40:45 +00:00
ProcessImplicitDefs.h Place context in member variables instead of passing around pointers. 2011-03-14 20:57:14 +00:00
PseudoSourceValue.h Typos. 2011-06-01 23:32:40 +00:00
RegAllocPBQP.h Add a hook for PBQP clients to run a custom pre-alloc pass to run prior to PBQP allocation. Patch by Arnaud Allard de Grandmaison. 2011-06-17 07:09:01 +00:00
RegAllocRegistry.h
RegisterScavenging.h
RuntimeLibcalls.h Lower multiply with overflow checking to __mulo<mode> 2011-06-17 20:41:29 +00:00
ScheduleDAG.h - Rename TargetInstrDesc, TargetOperandInfo to MCInstrDesc and MCOperandInfo and 2011-06-28 19:10:37 +00:00
ScheduleHazardRecognizer.h
SchedulerRegistry.h
ScoreboardHazardRecognizer.h - Rename TargetInstrDesc, TargetOperandInfo to MCInstrDesc and MCOperandInfo and 2011-06-28 19:10:37 +00:00
SelectionDAG.h Don't allocate empty read-only SmallVectors during SelectionDAG deallocation. 2011-06-18 13:13:44 +00:00
SelectionDAGISel.h Recommit the fix for rdar://9289512 with a couple tweaks to 2011-04-22 21:59:37 +00:00
SelectionDAGNodes.h Add functions 'hasPredecessor' and 'hasPredecessorHelper' to SDNode. The 2011-07-07 04:31:51 +00:00
SlotIndexes.h Remove an unused variable in NDEBUG (found with -Wunused-variable). 2011-05-02 05:49:01 +00:00
TargetLoweringObjectFileImpl.h Add the suffix to the Win64 EH data sections' names if given. Add a test for 2011-05-27 21:38:47 +00:00
ValueTypes.h Fix formatting. 2011-06-16 16:52:24 +00:00
ValueTypes.td Fix formatting. 2011-06-16 16:52:24 +00:00