diff options
| author | Matt Arsenault <Matthew.Arsenault@amd.com> | 2014-07-02 17:44:53 +0000 |
|---|---|---|
| committer | Matt Arsenault <Matthew.Arsenault@amd.com> | 2014-07-02 17:44:53 +0000 |
| commit | c324b95c77f0e729801cbbcb1aa075300e48e5d1 (patch) | |
| tree | a73984d66d9dbb426a967fe96b8267532a036301 /llvm/lib/Target/R600/AMDGPUISelLowering.cpp | |
| parent | 4bddd9d400aa75de8961a4e6c5e3f387302534e8 (diff) | |
| download | bcm5719-llvm-c324b95c77f0e729801cbbcb1aa075300e48e5d1.tar.gz bcm5719-llvm-c324b95c77f0e729801cbbcb1aa075300e48e5d1.zip | |
R600: Fix crashes when an illegal type load or store is not handled.
I don't think anything hits this now, but will be exposed in future
patches.
llvm-svn: 212197
Diffstat (limited to 'llvm/lib/Target/R600/AMDGPUISelLowering.cpp')
| -rw-r--r-- | llvm/lib/Target/R600/AMDGPUISelLowering.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/llvm/lib/Target/R600/AMDGPUISelLowering.cpp b/llvm/lib/Target/R600/AMDGPUISelLowering.cpp index 9258e1569e0..64636de959b 100644 --- a/llvm/lib/Target/R600/AMDGPUISelLowering.cpp +++ b/llvm/lib/Target/R600/AMDGPUISelLowering.cpp @@ -556,6 +556,9 @@ void AMDGPUTargetLowering::ReplaceNodeResults(SDNode *N, return; case ISD::LOAD: { SDNode *Node = LowerLOAD(SDValue(N, 0), DAG).getNode(); + if (!Node) + return; + Results.push_back(SDValue(Node, 0)); Results.push_back(SDValue(Node, 1)); // XXX: LLVM seems not to replace Chain Value inside CustomWidenLowerNode @@ -564,8 +567,9 @@ void AMDGPUTargetLowering::ReplaceNodeResults(SDNode *N, return; } case ISD::STORE: { - SDNode *Node = LowerSTORE(SDValue(N, 0), DAG).getNode(); - Results.push_back(SDValue(Node, 0)); + SDValue Lowered = LowerSTORE(SDValue(N, 0), DAG); + if (Lowered.getNode()) + Results.push_back(Lowered); return; } default: |

