[PATCH] D21448: Codegen: LICM Remove check for exactly 1 register def.
Kyle Butt via llvm-commits
llvm-commits at lists.llvm.org
Thu Jun 16 13:46:59 PDT 2016
iteratee created this revision.
iteratee added a reviewer: sunfish.
iteratee added subscribers: echristo, mcrosier, haicheng, llvm-commits.
iteratee set the repository for this revision to rL LLVM.
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
inderect 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.
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 4013 bytes
Desc: not available
More information about the llvm-commits