summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/R600/AMDGPUISelLowering.cpp
diff options
context:
space:
mode:
authorMatt Arsenault <Matthew.Arsenault@amd.com>2014-07-02 17:44:53 +0000
committerMatt Arsenault <Matthew.Arsenault@amd.com>2014-07-02 17:44:53 +0000
commitc324b95c77f0e729801cbbcb1aa075300e48e5d1 (patch)
treea73984d66d9dbb426a967fe96b8267532a036301 /llvm/lib/Target/R600/AMDGPUISelLowering.cpp
parent4bddd9d400aa75de8961a4e6c5e3f387302534e8 (diff)
downloadbcm5719-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.cpp8
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:
OpenPOWER on IntegriCloud