diff options
author | Matt Arsenault <Matthew.Arsenault@amd.com> | 2016-06-02 18:37:16 +0000 |
---|---|---|
committer | Matt Arsenault <Matthew.Arsenault@amd.com> | 2016-06-02 18:37:16 +0000 |
commit | 8e00194be8cd1c20ee625b0adcb4fe5981301118 (patch) | |
tree | 6784ab16543e60cb32f9fcc328d0da240d3c8ebb /llvm/lib/Target/AMDGPU/R600Packetizer.cpp | |
parent | 048155c399a97c31b1b1bf1f99ed12f30dd9c441 (diff) | |
download | llvm-8e00194be8cd1c20ee625b0adcb4fe5981301118.zip llvm-8e00194be8cd1c20ee625b0adcb4fe5981301118.tar.gz llvm-8e00194be8cd1c20ee625b0adcb4fe5981301118.tar.bz2 |
AMDGPU: Fix crashes on unknown processor name
If the processor name failed to parse for amdgcn,
the resulting output would have R600 ISA in it.
If the processor name was missing or invalid for R600,
the wavefront size would not be set and there would be
crashes from missing itinerary data.
Fixes crashes in future commit caused by dividing by the unset/0
wavefront size.
llvm-svn: 271561
Diffstat (limited to 'llvm/lib/Target/AMDGPU/R600Packetizer.cpp')
-rw-r--r-- | llvm/lib/Target/AMDGPU/R600Packetizer.cpp | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/llvm/lib/Target/AMDGPU/R600Packetizer.cpp b/llvm/lib/Target/AMDGPU/R600Packetizer.cpp index 964c65c..6a34df2 100644 --- a/llvm/lib/Target/AMDGPU/R600Packetizer.cpp +++ b/llvm/lib/Target/AMDGPU/R600Packetizer.cpp @@ -336,6 +336,9 @@ bool R600Packetizer::runOnMachineFunction(MachineFunction &Fn) { // DFA state table should not be empty. assert(Packetizer.getResourceTracker() && "Empty DFA table!"); + if (Packetizer.getResourceTracker()->getInstrItins()->isEmpty()) + return false; + // // Loop over all basic blocks and remove KILL pseudo-instructions // These instructions confuse the dependence analysis. Consider: |