llvm-6502/include/llvm/CodeGen
Dan Gohman f06c835f76 Optimize SelectionDAG's AssignTopologicalOrder even further.
Completely eliminate the TopOrder std::vector. Instead, sort
the AllNodes list in place. This also eliminates the need to
call AllNodes.size(), a linear-time operation, before
performing the sort.

Also, eliminate the Sources temporary std::vector, since it
essentially duplicates the sorted result as it is being
built.

This also changes the direction of the topological sort
from bottom-up to top-down. The AllNodes list starts out in
roughly top-down order, so this reduces the amount of
reordering needed. Top-down is also more convenient for
Legalize, and ISel needed only minor adjustments.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56867 91177308-0d34-0410-b5e6-96231b3b80d8
2008-09-30 18:30:35 +00:00
..
AsmPrinter.h Use generic section-handling stuff to emit constant pool entries 2008-09-24 22:17:59 +00:00
BreakCriticalMachineEdge.h Fix the name of BreakCriticalMachineEdge.h's include guard 2008-07-16 16:04:07 +00:00
CallingConvLower.h Define CallSDNode, an SDNode subclass for use with ISD::CALL. 2008-09-13 01:54:27 +00:00
DAGISelHeader.h Optimize SelectionDAG's AssignTopologicalOrder even further. 2008-09-30 18:30:35 +00:00
DwarfWriter.h If we have a function with an unreachable statement such that the ending debug 2008-09-26 00:28:12 +00:00
ELFRelocation.h
FastISel.h Fix FastISel to not initialize the PIC-base register multiple times 2008-09-29 21:55:50 +00:00
FileWriters.h Use raw_ostream throughout the AsmPrinter. 2008-08-21 00:14:44 +00:00
GCMetadata.h Rename some GC classes so that their roll will hopefully be clearer. 2008-08-17 18:44:35 +00:00
GCMetadataPrinter.h Use raw_ostream throughout the AsmPrinter. 2008-08-21 00:14:44 +00:00
GCs.h Rename some GC classes so that their roll will hopefully be clearer. 2008-08-17 18:44:35 +00:00
GCStrategy.h Rename some GC classes so that their roll will hopefully be clearer. 2008-08-17 18:44:35 +00:00
IntrinsicLowering.h
LinkAllAsmWriterComponents.h Rename some GC classes so that their roll will hopefully be clearer. 2008-08-17 18:44:35 +00:00
LinkAllCodegenComponents.h Add a new "fast" scheduler. This is currently basically just a 2008-09-18 16:26:26 +00:00
LiveInterval.h Next round of earlyclobber handling. Approach the 2008-09-24 01:07:17 +00:00
LiveIntervalAnalysis.h Re-apply 56835 along with header file changes. 2008-09-30 15:44:16 +00:00
LiveStackAnalysis.h Tidy up several unbeseeming casts from pointer to intptr_t. 2008-09-04 17:05:41 +00:00
LiveVariables.h Factor out code into HandleVirtRegDef, for consistency with 2008-09-21 21:11:41 +00:00
MachineBasicBlock.h Update VS projects. 2008-09-20 18:02:18 +00:00
MachineCodeEmitter.h
MachineConstantPool.h Fix these comments to reflect current reality. Surprisingly, 2008-09-16 20:45:53 +00:00
MachineDominators.h
MachineFrameInfo.h Re-apply 56683 with fixes. 2008-09-27 01:56:22 +00:00
MachineFunction.h Update VS projects. 2008-09-20 18:02:18 +00:00
MachineFunctionPass.h Tidy up several unbeseeming casts from pointer to intptr_t. 2008-09-04 17:05:41 +00:00
MachineInstr.h Add a method to MachineInstr for testing whether it makes 2008-09-24 00:06:15 +00:00
MachineInstrBuilder.h Change ConstantSDNode and ConstantFPSDNode to use ConstantInt* and 2008-09-12 18:08:03 +00:00
MachineJumpTableInfo.h
MachineLocation.h
MachineLoopInfo.h Use empty() instead of begin() == end(). 2008-08-14 18:13:49 +00:00
MachineMemOperand.h Change the FoldingSetNodeID usage for objects which carry 2008-08-20 15:58:01 +00:00
MachineModuleInfo.h
MachineOperand.h Next round of earlyclobber handling. Approach the 2008-09-24 01:07:17 +00:00
MachinePassRegistry.h
MachineRegisterInfo.h Enable rematerialization of constants using AliasAnalysis::pointsToConstantMemory, 2008-07-25 00:02:30 +00:00
MachineRelocation.h
MachORelocation.h
Passes.h Add a new MachineInstr-level DCE pass. It is very simple, and is intended to 2008-09-17 00:43:24 +00:00
PseudoSourceValue.h Unbreak PseudoSourceValue::print. This fixes -print-machine-instrs 2008-08-27 15:24:43 +00:00
RegAllocRegistry.h
RegisterCoalescer.h
RegisterScavenging.h
RuntimeLibcalls.h Add intrinsics for log, log2, log10, exp, exp2. 2008-09-04 00:47:13 +00:00
ScheduleDAG.h Next round of earlyclobber handling. Approach the 2008-09-24 01:07:17 +00:00
SchedulerRegistry.h
SelectionDAG.h Optimize SelectionDAG's AssignTopologicalOrder even further. 2008-09-30 18:30:35 +00:00
SelectionDAGISel.h Optimize SelectionDAG's AssignTopologicalOrder even further. 2008-09-30 18:30:35 +00:00
SelectionDAGNodes.h Rename ConstantSDNode's getSignExtended to getSExtValue, for 2008-09-26 21:54:37 +00:00
ValueTypes.h fit in 80 cols, minor tweaks 2008-09-09 17:52:13 +00:00
ValueTypes.td Added support for overloading intrinsics (atomics) based on pointers 2008-07-30 04:36:53 +00:00