1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-24 11:42:57 +01:00
llvm-mirror/lib/CodeGen/SelectionDAG
Dan Gohman 5a2169ee6e 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.

llvm-svn: 56867
2008-09-30 18:30:35 +00:00
..
CallingConvLower.cpp Add "inreg" field to CallSDNode (doesn't increase 2008-09-26 19:31:26 +00:00
CMakeLists.txt Initial support for the CMake build system. 2008-09-22 01:08:49 +00:00
DAGCombiner.cpp Rename ConstantSDNode's getSignExtended to getSExtValue, for 2008-09-26 21:54:37 +00:00
FastISel.cpp Support for i1 XOR in FastISel. It is actually safe because 2008-09-25 17:22:52 +00:00
LegalizeDAG.cpp Optimize SelectionDAG's AssignTopologicalOrder even further. 2008-09-30 18:30:35 +00:00
LegalizeFloatTypes.cpp erect abstraction boundaries for accessing SDValue members, rename Val -> Node to reflect semantics 2008-08-28 21:40:38 +00:00
LegalizeIntegerTypes.cpp Fix the alignment of loads from constant pool entries when the 2008-09-22 22:40:08 +00:00
LegalizeTypes.cpp Add "inreg" field to CallSDNode (doesn't increase 2008-09-26 19:31:26 +00:00
LegalizeTypes.h Provide two overloads of AnalyzeNewNode. 2008-09-01 15:10:19 +00:00
LegalizeTypesGeneric.cpp Rename ConstantSDNode::getValue to getZExtValue, for consistency 2008-09-12 16:56:44 +00:00
LegalizeVectorTypes.cpp Rename ConstantSDNode::getValue to getZExtValue, for consistency 2008-09-12 16:56:44 +00:00
Makefile remove attribution from lib Makefiles. 2007-12-29 20:09:26 +00:00
ScheduleDAG.cpp Separate MachineInstr-emitting routines from actual scheduling 2008-09-03 16:01:59 +00:00
ScheduleDAGEmit.cpp Next round of earlyclobber handling. Approach the 2008-09-24 01:07:17 +00:00
ScheduleDAGFast.cpp Replace the LiveRegs SmallSet with a simple counter that keeps 2008-09-23 18:50:48 +00:00
ScheduleDAGList.cpp Add a new function, ReplaceAllUsesOfValuesWith, which handles bulk 2008-07-17 19:10:17 +00:00
ScheduleDAGRRList.cpp Replace the LiveRegs SmallSet with a simple counter that keeps 2008-09-23 18:50:48 +00:00
SelectionDAG.cpp Optimize SelectionDAG's AssignTopologicalOrder even further. 2008-09-30 18:30:35 +00:00
SelectionDAGBuild.cpp Temporarily reverting r56683. This is causing a failure during the build of llvm-gcc: 2008-09-26 22:10:44 +00:00
SelectionDAGBuild.h Remove SelectionDag early allocation of registers 2008-09-24 23:13:09 +00:00
SelectionDAGISel.cpp Fix FastISel to not initialize the PIC-base register multiple times 2008-09-29 21:55:50 +00:00
SelectionDAGPrinter.cpp don't print GlobalAddressSDNode's with an offset of zero as "foo0". 2008-09-21 18:38:31 +00:00
TargetLowering.cpp Rename ConstantSDNode's getSignExtended to getSExtValue, for 2008-09-26 21:54:37 +00:00