[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.
Repository:
rL LLVM
http://reviews.llvm.org/D21448
Files:
lib/CodeGen/MachineLICM.cpp
test/CodeGen/X86/hoist-invariant-load.ll
test/CodeGen/X86/licm-dominance.ll
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D21448.61021.patch
Type: text/x-patch
Size: 4013 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160616/4efb8f42/attachment.bin>
More information about the llvm-commits
mailing list