diff options
| author | Tom Stellard <thomas.stellard@amd.com> | 2014-10-09 19:06:00 +0000 |
|---|---|---|
| committer | Tom Stellard <thomas.stellard@amd.com> | 2014-10-09 19:06:00 +0000 |
| commit | 3457a8495a08edbd7839bf7a1ee0fdd61f5f17c4 (patch) | |
| tree | d06096e7084b9bc47e2c434fbe861d7f57c28006 /llvm/lib/Target/R600/AMDGPUISelDAGToDAG.cpp | |
| parent | ddac7611eefbf4015cb93a94d58396767adbef26 (diff) | |
| download | bcm5719-llvm-3457a8495a08edbd7839bf7a1ee0fdd61f5f17c4.tar.gz bcm5719-llvm-3457a8495a08edbd7839bf7a1ee0fdd61f5f17c4.zip | |
R600/SI: Legalize CopyToReg during instruction selection
The instruction emitter will crash if it encounters a CopyToReg
node with a non-register operand like FrameIndex.
llvm-svn: 219428
Diffstat (limited to 'llvm/lib/Target/R600/AMDGPUISelDAGToDAG.cpp')
| -rw-r--r-- | llvm/lib/Target/R600/AMDGPUISelDAGToDAG.cpp | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/llvm/lib/Target/R600/AMDGPUISelDAGToDAG.cpp b/llvm/lib/Target/R600/AMDGPUISelDAGToDAG.cpp index 32592129984..989fc938c08 100644 --- a/llvm/lib/Target/R600/AMDGPUISelDAGToDAG.cpp +++ b/llvm/lib/Target/R600/AMDGPUISelDAGToDAG.cpp @@ -487,9 +487,16 @@ SDNode *AMDGPUDAGToDAGISel::Select(SDNode *N) { case AMDGPUISD::DIV_SCALE: { return SelectDIV_SCALE(N); } + case ISD::CopyToReg: { + const SITargetLowering& Lowering = + *static_cast<const SITargetLowering*>(getTargetLowering()); + Lowering.legalizeTargetIndependentNode(N, *CurDAG); + break; + } case ISD::ADDRSPACECAST: return SelectAddrSpaceCast(N); } + return SelectCode(N); } |

