[LLVMdev] Force rematerialization

Ivan Llopard ivanllopard at gmail.com
Wed Feb 22 06:33:07 PST 2012


Hi all,

I'd like to force rematerialization by extending live intervals. For 
example:

%vreg1 = opa %vreg2, %vreg3 ; RClassA:%vreg1, RClassB:%vreg2, RClassB:%vreg3
...
somewhere between --> %vreg2<kill> and %vreg3<kill>
..
%vreg4 = opb %vreg1 ; RClassA:%vreg1, RClassB:%vreg4

In my case, %vreg1 is not spillable and I'd like to extend vreg2 and 
vreg3 live intervals to get "opa" rematerialized. If I understand 
correctly, the InlineSpiller only rematerializes if all the operands 
values of "opa" reach "opb", right ?

How can I extend the live interval of some VR even if it was already 
allocated ?

Thanks in advance,

Ivan



More information about the llvm-dev mailing list