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 Enable sibling call optimization of libcalls which are expanded during 2010-11-30 23:55:39 +00:00
AsmPrinter.h Fix a FIXME by making GlobalVariable::getInitializer() return a 2011-06-19 18:37:11 +00:00
BinaryObject.h Merge System into Support. 2010-11-29 18:16:10 +00:00
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 Attach a DebugLoc to a GC point in order to get precise information in the JIT of a GC point. 2010-09-24 17:27:50 +00:00
GCMetadataPrinter.h Trailing whitespace. 2010-07-01 01:00:22 +00:00
GCs.h
GCStrategy.h
IntrinsicLowering.h Recognize inline asm 'rev /bin/bash, ' as a bswap intrinsic call. 2011-01-08 01:24:27 +00:00
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 Various bits of framework needed for precise machine-level selection 2010-12-24 05:03:26 +00:00
LinkAllAsmWriterComponents.h Make a few more LLVM headers parsable as standalone headers. 2009-11-05 23:01:30 +00:00
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 Teach TargetRegisterInfo how to cram stack slot indexes in with the virtual and 2011-01-09 21:17:37 +00:00
LiveVariables.h Use an IndexedMap for LiveVariables::VirtRegInfo. 2011-01-08 23:10:57 +00:00
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 Merge System into Support. 2010-11-29 18:16:10 +00:00
MachineConstantPool.h Add comment to clarify what MachineConstantPoolEntry::isMachineConstantPoolEntry() means. 2011-03-24 06:28:45 +00:00
MachineDominators.h typoes 2010-09-10 22:25:58 +00:00
MachineFrameInfo.h Tidy up. 2011-03-07 19:28:43 +00:00
MachineFunction.h - Rename TargetInstrDesc, TargetOperandInfo to MCInstrDesc and MCOperandInfo and 2011-06-28 19:10:37 +00:00
MachineFunctionAnalysis.h Give MachineFunctionAnalysis a getPassName() implementation to make timing reports prettier. 2011-01-04 18:21:18 +00:00
MachineFunctionPass.h Reapply r110396, with fixes to appease the Linux buildbot gods. 2010-08-06 18:33:48 +00:00
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 Add explicit keywords. 2010-06-18 19:04:37 +00:00
MachineLocation.h Merge .debug_loc entries whenever possible to reduce debug_loc size. 2011-02-04 22:57:18 +00:00
MachineLoopInfo.h Get rid of static constructors for pass registration. Instead, every pass exposes an initializeMyPassFunction(), which 2010-10-19 17:21:58 +00:00
MachineLoopRanges.h Enable loop splitting in RegAllocGreedy. 2010-12-17 23:16:32 +00:00
MachineMemOperand.h Merge System into Support. 2010-11-29 18:16:10 +00:00
MachineModuleInfo.h Reformatting. Moving class definitions to more natural places. No functionalogical changes. 2011-06-11 11:37:49 +00:00
MachineModuleInfoImpls.h Add a bit along with the MCSymbols stored in the MachineModuleInfo maps that 2010-03-10 22:34:10 +00:00
MachineOperand.h Handle debug info for i128 constants. 2011-06-24 20:46:11 +00:00
MachinePassRegistry.h Sundry dependent-name fixes flagged by clang++. 2009-12-17 23:49:16 +00:00
MachineRegisterInfo.h Remove RegClass2VRegMap from MachineRegisterInfo. 2011-06-27 23:54:40 +00:00
MachineRelocation.h Merge System into Support. 2010-11-29 18:16:10 +00:00
MachineSSAUpdater.h Combine the implementations of the core part of the SSAUpdater and 2010-05-04 23:18:19 +00:00
MachORelocation.h Merge System into Support. 2010-11-29 18:16:10 +00:00
ObjectCodeEmitter.h change EH related stuff (other than EH_LABEL) to use MCSymbol 2010-03-14 01:41:15 +00:00
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 Reformat. 2009-07-08 21:57:46 +00:00
RegisterScavenging.h Teach the register scavenger to take subregs into account when finding a free register. 2011-03-05 00:20:19 +00:00
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 Convert -enable-sched-cycles and -enable-sched-hazard to -disable 2011-01-21 05:51:33 +00:00
SchedulerRegistry.h Add an ILP scheduler. This is a register pressure aware scheduler that's 2010-07-24 00:39:05 +00:00
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