llvm/lib/CodeGen/SelectionDAG
Evan Cheng 4784f1fc73 Add a bit IsUndef to MachineOperand. This indicates the def / use register operand is defined by an implicit_def. That means it can def / use any register and passes (e.g. register scavenger) can feel free to ignore them.
The register allocator, when it allocates a register to a virtual register defined by an implicit_def, can allocate any physical register without worrying about overlapping live ranges. It should mark all of operands of the said virtual register so later passes will do the right thing.

This is not the best solution. But it should be a lot less fragile to having the scavenger try to track what is defined by implicit_def.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74518 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-30 08:49:04 +00:00
..
CallingConvLower.cpp Minor top-level comment fix. 2009-03-31 16:51:18 +00:00
CMakeLists.txt Update for CMakeLists; untested, so tell me if there are issues. 2009-05-24 09:13:13 +00:00
DAGCombiner.cpp Adapt the x86 build_vector dagcombine to the current state of the legalizer. 2009-06-05 21:37:30 +00:00
FastISel.cpp mv CodeGen/DebugLoc.h Support/DebugLoc.h 2009-06-19 22:08:58 +00:00
LegalizeDAG.cpp This increases the maximum for MVT::LAST_VALUETYPE 2009-06-24 19:41:55 +00:00
LegalizeFloatTypes.cpp Rename CustomLowerResults to CustomLowerNode, since 2009-05-31 04:15:38 +00:00
LegalizeIntegerTypes.cpp Allow libcalls for i16 sdiv/udiv/rem operations. 2009-06-05 14:41:10 +00:00
LegalizeTypes.cpp Rename CustomLowerResults to CustomLowerNode, since 2009-05-31 04:15:38 +00:00
LegalizeTypes.h This increases the maximum for MVT::LAST_VALUETYPE 2009-06-24 19:41:55 +00:00
LegalizeTypesGeneric.cpp Minor cleanup; fixes review comments for a previous patch. Sorry for 2009-06-19 06:01:55 +00:00
LegalizeVectorOps.cpp Make SINT_TO_FP/UINT_TO_FP vector legalization queries query on the 2009-06-06 03:27:50 +00:00
LegalizeVectorTypes.cpp Implement review feedback for vector shuffle work. 2009-04-29 05:20:52 +00:00
Makefile remove dead makefile flags. 2009-06-24 05:29:56 +00:00
ScheduleDAGFast.cpp Instead of passing in an unsigned value for the optimization level, use an enum, 2009-04-29 23:29:43 +00:00
ScheduleDAGList.cpp Instead of passing in an unsigned value for the optimization level, use an enum, 2009-04-29 23:29:43 +00:00
ScheduleDAGRRList.cpp Instead of passing in an unsigned value for the optimization level, use an enum, 2009-04-29 23:29:43 +00:00
ScheduleDAGSDNodes.cpp Revert 72707 and 72709, for the moment. 2009-06-02 03:12:52 +00:00
ScheduleDAGSDNodes.h Rename COPY_TO_SUBCLASS to COPY_TO_REGCLASS, and generalize 2009-04-13 21:06:25 +00:00
ScheduleDAGSDNodesEmit.cpp Add a bit IsUndef to MachineOperand. This indicates the def / use register operand is defined by an implicit_def. That means it can def / use any register and passes (e.g. register scavenger) can feel free to ignore them. 2009-06-30 08:49:04 +00:00
SelectionDAG.cpp fix a typo that GCC should have caught that causes crashes with -view-*-dags 2009-06-27 00:57:02 +00:00
SelectionDAGBuild.cpp Change this from an assert to a cerr+exit, since it's diagnosing an 2009-06-15 22:32:41 +00:00
SelectionDAGBuild.h Split the Add, Sub, and Mul instruction opcodes into separate 2009-06-04 22:49:04 +00:00
SelectionDAGISel.cpp Add a new step to legalization to legalize vector math operations. This 2009-05-23 12:35:30 +00:00
SelectionDAGPrinter.cpp implement DOTGraphTraits<SelectionDAG*>::getNodeLabel in terms of 2009-06-26 19:06:10 +00:00
TargetLowering.cpp This increases the maximum for MVT::LAST_VALUETYPE 2009-06-24 19:41:55 +00:00