diff options
author | Vincent Lejeune <vljn@ovi.com> | 2013-02-14 16:57:19 +0000 |
---|---|---|
committer | Vincent Lejeune <vljn@ovi.com> | 2013-02-14 16:57:19 +0000 |
commit | 786788573729899a236851320c5680da8c161ec1 (patch) | |
tree | f7212f93fa2b6f460257d495cca3532c9fe26771 /lib/Target/R600/AMDILISelDAGToDAG.cpp | |
parent | f846add9adf0752e552cb98fd0ba5dae791e4c3b (diff) |
R600: Do not fold single instruction with more that 3 kcache read
It fixes around 100 tfb piglit tests and 16 glean tests.
NOTE: This is a candidate for the Mesa stable branch.
Reviewed-by: Tom Stellard <thomas.stellard at amd.com>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175183 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/R600/AMDILISelDAGToDAG.cpp')
-rw-r--r-- | lib/Target/R600/AMDILISelDAGToDAG.cpp | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/lib/Target/R600/AMDILISelDAGToDAG.cpp b/lib/Target/R600/AMDILISelDAGToDAG.cpp index b125ba87ed..2e726e949d 100644 --- a/lib/Target/R600/AMDILISelDAGToDAG.cpp +++ b/lib/Target/R600/AMDILISelDAGToDAG.cpp @@ -334,6 +334,8 @@ bool AMDGPUDAGToDAGISel::FoldOperands(unsigned Opcode, SDValue Operand = Ops[OperandIdx[i] - 1]; switch (Operand.getOpcode()) { case AMDGPUISD::CONST_ADDRESS: { + if (i == 2) + break; SDValue CstOffset; if (!Operand.getValueType().isVector() && SelectGlobalValueConstantOffset(Operand.getOperand(0), CstOffset)) { |