diff options
author | Kyle Butt <kyle+llvm@iteratee.net> | 2016-06-23 21:38:49 +0000 |
---|---|---|
committer | Kyle Butt <kyle+llvm@iteratee.net> | 2016-06-23 21:38:49 +0000 |
commit | 178314ab521cd6da4d16707315b79d96247e7479 (patch) | |
tree | 183da566b0c2842cfe6b45b281f5b22d3f83a755 /lldb/scripts/Python | |
parent | d29d31e30ef67b0d465160c1f07d5b6fc6bf88dd (diff) | |
download | llvm-178314ab521cd6da4d16707315b79d96247e7479.zip llvm-178314ab521cd6da4d16707315b79d96247e7479.tar.gz llvm-178314ab521cd6da4d16707315b79d96247e7479.tar.bz2 |
Codegen: LICM Remove check for exactly 1 register def.
When considering whether to split an instruction with a memory operand
into an explicit load and a register-based instruction, we currently
check that the resulting instruction has exactly 1 def. This prevents 2
important LICM optimizations: compares with memory operands, and double
indirect calls. All the tests and the test-suite pass without the check.
My guess as to original intent is to limit the additional register pressure
created by the new instruction, but given that we only split out a single
register, it is already limited.
The licm-dominance test now checks actual memory loads for hoisting instead of
undef, and it tests compares.
hoist-invariant-load.ll now checks for 2 hoists, the intended hoist, and a bonus
from calling a got-relative function in a loop.
llvm-svn: 273616
Diffstat (limited to 'lldb/scripts/Python')
0 files changed, 0 insertions, 0 deletions