diff options
author | Matt Arsenault <Matthew.Arsenault@amd.com> | 2017-07-12 23:06:18 +0000 |
---|---|---|
committer | Matt Arsenault <Matthew.Arsenault@amd.com> | 2017-07-12 23:06:18 +0000 |
commit | ce34ac588e966b09c47b38d81bfefb43d3cecd0b (patch) | |
tree | b8c2928589148c9613e9dd3d6c2dcb102184621d /llvm/lib/Target/AMDGPU/AMDGPUAnnotateUniformValues.cpp | |
parent | 3f164318e77bb1accbde6b79efb427cce7553b4c (diff) | |
download | bcm5719-llvm-ce34ac588e966b09c47b38d81bfefb43d3cecd0b.tar.gz bcm5719-llvm-ce34ac588e966b09c47b38d81bfefb43d3cecd0b.zip |
AMDGPU: Fix converting unanalyzable global loads to SMRD
Not all memory dependence queries succeed, so this needs to
be conservative if it fails.
llvm-svn: 307861
Diffstat (limited to 'llvm/lib/Target/AMDGPU/AMDGPUAnnotateUniformValues.cpp')
-rw-r--r-- | llvm/lib/Target/AMDGPU/AMDGPUAnnotateUniformValues.cpp | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/llvm/lib/Target/AMDGPU/AMDGPUAnnotateUniformValues.cpp b/llvm/lib/Target/AMDGPU/AMDGPUAnnotateUniformValues.cpp index 6f002860044..ed537082664 100644 --- a/llvm/lib/Target/AMDGPU/AMDGPUAnnotateUniformValues.cpp +++ b/llvm/lib/Target/AMDGPU/AMDGPUAnnotateUniformValues.cpp @@ -108,10 +108,11 @@ bool AMDGPUAnnotateUniformValues::isClobberedInFunction(LoadInst * Load) { DFS(Start, Checklist); for (auto &BB : Checklist) { BasicBlock::iterator StartIt = (!L && (BB == Load->getParent())) ? - BasicBlock::iterator(Load) : BB->end(); - if (MDR->getPointerDependencyFrom(MemoryLocation(Ptr), - true, StartIt, BB, Load).isClobber()) - return true; + BasicBlock::iterator(Load) : BB->end(); + auto Q = MDR->getPointerDependencyFrom(MemoryLocation(Ptr), true, + StartIt, BB, Load); + if (Q.isClobber() || Q.isUnknown()) + return true; } return false; } |