diff options
| author | Alexander Timofeev <Alexander.Timofeev@amd.com> | 2017-06-15 19:33:10 +0000 |
|---|---|---|
| committer | Alexander Timofeev <Alexander.Timofeev@amd.com> | 2017-06-15 19:33:10 +0000 |
| commit | 0f9c84cd936b6532495673613d9390efdc85cb3c (patch) | |
| tree | f21751f18521ab02ca6f4075169926ff7399333a /llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp | |
| parent | f2d3e6d3d50ea7f16ffaf12bfbb03384d019d3b2 (diff) | |
| download | bcm5719-llvm-0f9c84cd936b6532495673613d9390efdc85cb3c.tar.gz bcm5719-llvm-0f9c84cd936b6532495673613d9390efdc85cb3c.zip | |
DivergencyAnalysis patch for review
llvm-svn: 305494
Diffstat (limited to 'llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp')
| -rw-r--r-- | llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp b/llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp index 65dba7d6055..0d6689bd04c 100644 --- a/llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp +++ b/llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp @@ -489,6 +489,19 @@ bool AMDGPUTTIImpl::isSourceOfDivergence(const Value *V) const { return false; } +bool AMDGPUTTIImpl::isAlwaysUniform(const Value *V) const { + if (const IntrinsicInst *Intrinsic = dyn_cast<IntrinsicInst>(V)) { + switch (Intrinsic->getIntrinsicID()) { + default: + return false; + case Intrinsic::amdgcn_readfirstlane: + case Intrinsic::amdgcn_readlane: + return true; + } + } + return false; +} + unsigned AMDGPUTTIImpl::getShuffleCost(TTI::ShuffleKind Kind, Type *Tp, int Index, Type *SubTp) { if (ST->hasVOP3PInsts()) { |

