aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Target/WebAssembly/Disassembler/WebAssemblyDisassembler.cpp
diff options
context:
space:
mode:
authorAlexander Timofeev <Alexander.Timofeev@amd.com>2019-01-03 19:55:32 +0000
committerAlexander Timofeev <Alexander.Timofeev@amd.com>2019-01-03 19:55:32 +0000
commit993e2798fd13f6b7a2b4d5b382055f0c302142d7 (patch)
tree372cedc1cbfe15feb26c151b947fe3f6c07db62d /llvm/lib/Target/WebAssembly/Disassembler/WebAssemblyDisassembler.cpp
parenta470aa67019ee132e82719b465ce508a9468cc8e (diff)
downloadllvm-993e2798fd13f6b7a2b4d5b382055f0c302142d7.zip
llvm-993e2798fd13f6b7a2b4d5b382055f0c302142d7.tar.gz
llvm-993e2798fd13f6b7a2b4d5b382055f0c302142d7.tar.bz2
[AMDGPU] Fix scalar operand folding bug that causes SHOC performance regression.
Detailed description: SIFoldOperands::foldInstOperand iterates over the operand uses calling the function that changes def-use iteratorson the way. As a result loop exits immediately when def-use iterator is changed. Hence, the operand is folded to the very first use instruction only. This makes VGPR live along the whole basic block and increases register pressure significantly. The performance drop observed in SHOC DeviceMemory test is caused by this bug. Proposed fix: collect uses to separate container for further processing in another loop. Testing: make check-llvm SHOC performance test. Reviewers: rampitec, ronlieb Differential Revision: https://reviews.llvm.org/D56161 llvm-svn: 350350
Diffstat (limited to 'llvm/lib/Target/WebAssembly/Disassembler/WebAssemblyDisassembler.cpp')
0 files changed, 0 insertions, 0 deletions