Adjust ScheduleDAGSDNodes::RegDefIter for patchpoints
authorHal Finkel <hfinkel@anl.gov>
Wed, 14 Jan 2015 01:07:03 +0000 (01:07 +0000)
committerHal Finkel <hfinkel@anl.gov>
Wed, 14 Jan 2015 01:07:03 +0000 (01:07 +0000)
commit665026838bbbb861a0b4d23910c352ff0df89d70
treeb80136d79a54e5c218bffd4469c8604671e5e8b2
parent637e765907b43d4e78914924e1c17918a60713e5
Adjust ScheduleDAGSDNodes::RegDefIter for patchpoints

PATCHPOINT is a strange pseudo-instruction. Depending on how it is used, and
whether or not the AnyReg calling convention is being used, it might or might
not define a value. However, its TableGen definition says that it defines one
value, and so when it doesn't, the code in ScheduleDAGSDNodes::RegDefIter
becomes confused and the code that uses the RegDefIter will try to get the
register class of the MVT::Other type associated with the PATCHPOINT's chain
result (under certain circumstances).

This will be covered by the PPC64 PatchPoint test cases once that support is
re-committed.

llvm-svn: 225907
llvm/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp