1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-28 14:32:51 +01:00
llvm-mirror/include/llvm/CodeGen
Dan Gohman 3a89011a01 Reorganize the lifetimes of the major objects SelectionDAGISel
works with.

SelectionDAG, FunctionLoweringInfo, and SelectionDAGLowering
objects now get created once per SelectionDAGISel instance, and
can be reused across blocks and across functions. Previously,
they were created and destroyed each time they were needed.

This reorganization simplifies the handling of PHI nodes, and
also SwitchCases, JumpTables, and BitTestBlocks. This
simplification has the side effect of fixing a bug in FastISel
where successor PHI nodes weren't being updated correctly.

This is also a step towards making the transition from FastISel
into and out of SelectionDAG faster, and also making
plain SelectionDAG faster on code with lots of little blocks.

llvm-svn: 55450
2008-08-27 23:52:12 +00:00
..
AsmPrinter.h Use raw_ostream throughout the AsmPrinter. 2008-08-21 00:14:44 +00:00
BreakCriticalMachineEdge.h Fix the name of BreakCriticalMachineEdge.h's include guard 2008-07-16 16:04:07 +00:00
CallingConvLower.h Wrap MVT::ValueType in a struct to get type safety 2008-06-06 12:08:01 +00:00
DAGISelHeader.h Simplify SelectRoot's interface, and factor out some common code 2008-08-21 16:36:34 +00:00
DwarfWriter.h Use raw_ostream throughout the AsmPrinter. 2008-08-21 00:14:44 +00:00
ELFRelocation.h Don't attribute in file headers anymore. See llvmdev for the 2007-12-29 19:59:42 +00:00
FastISel.h Add a helper method that will be used to support EXTRACT_SUBREG for selecting trunc's in fast-isel. 2008-08-27 22:30:02 +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 Don't attribute in file headers anymore. See llvmdev for the 2007-12-29 19:59:42 +00:00
LinkAllAsmWriterComponents.h Rename some GC classes so that their roll will hopefully be clearer. 2008-08-17 18:44:35 +00:00
LinkAllCodegenComponents.h Rename some GC classes so that their roll will hopefully be clearer. 2008-08-17 18:44:35 +00:00
LiveInterval.h Instead of adding an isSS field to LiveInterval to denote stack slot. Use top bit of 'reg' instead. If the top bit is set, than the LiveInterval represents a stack slot live interval. 2008-06-23 21:03:19 +00:00
LiveIntervalAnalysis.h consolidate DenseMapInfo implementations, and add one for std::pair. 2008-08-22 05:08:25 +00:00
LiveStackAnalysis.h Add a stack slot coloring pass. Not yet enabled. 2008-06-04 09:18:41 +00:00
LiveVariables.h - Fix SelectionDAG to generate correct CFGs. 2008-08-04 23:54:43 +00:00
MachineBasicBlock.h Fold the useful features of alist and alist_node into ilist, and 2008-07-28 21:51:04 +00:00
MachineCodeEmitter.h Prune and tidy #includes. 2008-05-29 19:52:31 +00:00
MachineConstantPool.h get MachineConstantPool off std::ostream, onto raw_ostream. It would be 2008-08-23 22:53:13 +00:00
MachineDominators.h Don't attribute in file headers anymore. See llvmdev for the 2007-12-29 19:59:42 +00:00
MachineFrameInfo.h Fix error: ‘std::ostream’ has not been declared 2008-07-25 19:29:14 +00:00
MachineFunction.h Fold the useful features of alist and alist_node into ilist, and 2008-07-28 21:51:04 +00:00
MachineFunctionPass.h Don't attribute in file headers anymore. See llvmdev for the 2007-12-29 19:59:42 +00:00
MachineInstr.h Refactor isSafeToReMat out of 2addr pass. 2008-08-27 20:33:50 +00:00
MachineInstrBuilder.h Add a MachineInstrBuilder method for adding floating-point 2008-08-26 23:19:23 +00:00
MachineJumpTableInfo.h Fix more -Wshorten-64-to-32 warnings. 2008-05-05 18:30:58 +00:00
MachineLocation.h Rename MRegisterInfo to TargetRegisterInfo. 2008-02-10 18:45:23 +00:00
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 Use StringMap for greater justice! 2008-07-07 20:59:31 +00:00
MachineOperand.h Use raw_ostream throughout the AsmPrinter. 2008-08-21 00:14:44 +00:00
MachinePassRegistry.h Don't attribute in file headers anymore. See llvmdev for the 2007-12-29 19:59:42 +00:00
MachineRegisterInfo.h Enable rematerialization of constants using AliasAnalysis::pointsToConstantMemory, 2008-07-25 00:02:30 +00:00
MachineRelocation.h Revert 51775. 2008-05-30 22:47:19 +00:00
MachORelocation.h Don't attribute in file headers anymore. See llvmdev for the 2007-12-29 19:59:42 +00:00
Passes.h Rename some GC classes so that their roll will hopefully be clearer. 2008-08-17 18:44:35 +00:00
PseudoSourceValue.h Unbreak PseudoSourceValue::print. This fixes -print-machine-instrs 2008-08-27 15:24:43 +00:00
RegAllocRegistry.h Don't attribute in file headers anymore. See llvmdev for the 2007-12-29 19:59:42 +00:00
RegisterCoalescer.h Remove uses of "llvm/Support/Debug.h" from LLVM include files, which 2008-07-07 18:14:29 +00:00
RegisterScavenging.h Allow registers defined by implicit_def to be clobbered. 2008-04-10 23:47:53 +00:00
RuntimeLibcalls.h Add libcalls for the new rounding opcodes. 2008-08-21 18:38:14 +00:00
ScheduleDAG.h Rename SDOperand to SDValue. 2008-07-27 21:46:04 +00:00
SchedulerRegistry.h Do not use computationally expensive scheduling heuristics with -fast. 2008-07-01 18:05:03 +00:00
SelectionDAG.h Reorganize the lifetimes of the major objects SelectionDAGISel 2008-08-27 23:52:12 +00:00
SelectionDAGISel.h Reorganize the lifetimes of the major objects SelectionDAGISel 2008-08-27 23:52:12 +00:00
SelectionDAGNodes.h disallow direct access to SDValue::ResNo, provide a getter instead 2008-08-26 22:36:50 +00:00
ValueTypes.h Added support for overloading intrinsics (atomics) based on pointers 2008-07-30 04:36:53 +00:00
ValueTypes.td Added support for overloading intrinsics (atomics) based on pointers 2008-07-30 04:36:53 +00:00