Displaying 3 results from an estimated 3 matches for "materilizable".
Did you mean:
materializable
2012 Mar 08
1
[LLVMdev] "Machine LICM" for Constants?
...cause their register operands are
not always available. This makes MachineLICM::IsProfitableToHoist()
return false, preventing the hoist even though
MachineLICM::IsLoopInvariantInst() returns true.
The comment in IsProfitableToHoist() is:
// If the instruction is cheap, only hoist if it is re-materilizable
[sic]. LICM
// will increase register pressure. It's probably not worth it if the
// instruction is cheap.
The function then proceeds to actually *estimate* register pressure for
non-cheap instructions to determine whether or not to hoist them.
This heuristic seems reasonable, but doesn'...
2012 Mar 07
0
[LLVMdev] "Machine LICM" for Constants?
Yes machine-licm can and should hoist constant materialization instructions out of the loop. If it's not doing that, it's probably because the target is not modeling the instruction correctly. I would walk through MachineLICM::IsLoopInvariantInst() in the debugger to figure it out. You can also try compiling the same bitcode for a target like ARM or X86 as a comparison.
Evan
On Mar 7,
2012 Mar 07
2
[LLVMdev] "Machine LICM" for Constants?
Hi All,
I work on a backend for a target similar to Mips, where large
immediates are loaded into registers with 2 instructions, 1 to load the
MSBits and 1 to load the LSBits. I've noticed a recurring pattern
where, despite low register pressure, these constants will be
rematerialized in every iteration of a loop, rather than being hoisted.
Here's an example using the