[LLVMdev] Splitting live ranges of half-defined registers
Krzysztof Parzyszek
kparzysz at codeaurora.org
Mon Jan 14 13:39:05 PST 2013
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
More information about the llvm-dev
mailing list