[LLVMdev] Splitting live ranges of half-defined registers

Krzysztof Parzyszek
2013-01-14T21:39:05Z

On 1/14/2013 3:16 PM, Jakob Stoklund Olesen wrote:
>
> On Jan 14, 2013, at 12:56 PM, Krzysztof Parzyszek <kparzysz at
codeaurora.org> wrote:
>>
>> My question is: is this something that was a part of the design?
>
> Yes, the register allocator only deals in full-width virtual registers, so
any copies or spills created will operate on the full register.

I see.

Unfortunately, this is causing some customer code to fail in
compilation.  The direct cause of the compilation failure is a complaint
from the register scavenger in the scenario that I described in the
first email.

This is actually very much related to the other problem I've reported a
while ago ("wrong value out of predecessor")---splitting (and
spilling)
of partially defined registers was also key to the failure occurring.

I can deal with this locally, so it's not a major blocker for us.

Thanks,
-Krzysztof


--
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
hosted by The Linux Foundation