[LLVMdev] Splitting live ranges of half-defined registers
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.
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
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.
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
hosted by The Linux Foundation
More information about the llvm-dev