diff options
| author | Hal Finkel <hfinkel@anl.gov> | 2014-05-11 19:29:07 +0000 |
|---|---|---|
| committer | Hal Finkel <hfinkel@anl.gov> | 2014-05-11 19:29:07 +0000 |
| commit | f0e086a0bc7eaee4a97082531aac856303d3208b (patch) | |
| tree | dc0b4d6c869960367ce702aa92cdc2e266ab8476 /llvm/lib/CodeGen | |
| parent | b33e9872a061342088ffe09ac533b67cd916a658 (diff) | |
| download | bcm5719-llvm-f0e086a0bc7eaee4a97082531aac856303d3208b.tar.gz bcm5719-llvm-f0e086a0bc7eaee4a97082531aac856303d3208b.zip | |
Pass the value type to TLI::getRegisterByName
We must validate the value type in TLI::getRegisterByName, because if we
don't and the wrong type was used with the IR intrinsic, then we'll assert
(because we won't be able to find a valid register class with which to
construct the requested copy operation). For PPC64, additionally, the type
information is necessary to decide between the 64-bit register and the 32-bit
subregister.
No functionality change.
llvm-svn: 208508
Diffstat (limited to 'llvm/lib/CodeGen')
| -rw-r--r-- | llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp b/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp index 1cbc83a3f65..a5162fad944 100644 --- a/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp +++ b/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp @@ -1813,7 +1813,7 @@ SDNode MDNodeSDNode *MD = dyn_cast<MDNodeSDNode>(Op->getOperand(0)); const MDString *RegStr = dyn_cast<MDString>(MD->getMD()->getOperand(0)); unsigned Reg = getTargetLowering()->getRegisterByName( - RegStr->getString().data()); + RegStr->getString().data(), Op->getValueType(0)); SDValue New = CurDAG->getCopyFromReg( CurDAG->getEntryNode(), dl, Reg, Op->getValueType(0)); New->setNodeId(-1); @@ -1826,7 +1826,7 @@ SDNode MDNodeSDNode *MD = dyn_cast<MDNodeSDNode>(Op->getOperand(1)); const MDString *RegStr = dyn_cast<MDString>(MD->getMD()->getOperand(0)); unsigned Reg = getTargetLowering()->getRegisterByName( - RegStr->getString().data()); + RegStr->getString().data(), Op->getOperand(2).getValueType()); SDValue New = CurDAG->getCopyToReg( CurDAG->getEntryNode(), dl, Reg, Op->getOperand(2)); New->setNodeId(-1); |

