[llvm-dev] Reg units for unaddressable register parts?

Krzysztof Parzyszek via llvm-dev llvm-dev at lists.llvm.org
Wed Sep 28 11:32:49 PDT 2016


On 9/28/2016 1:20 PM, Quentin Colombet wrote:
>
>> On Sep 28, 2016, at 10:52 AM, Krzysztof Parzyszek via llvm-dev <llvm-dev at lists.llvm.org> wrote:
>>
>> On X86, the registers AX, EAX and RAX all share the exact same register units. In terms of units, there is no difference between these registers. This makes register units insufficient to track liveness, since live AX does not imply live EAX.
>
> That is exactly the intent.
> If AX is live, you don’t want another value to use EAX or RAX.

I'm not sure what value you are referring to.

I have this situation in mind:
   RAX = ...  (1)
   EAX = ...  (2)
   ... = RAX  (3)
There doesn't seem to be a way to determine whether (1) is live based on 
lane masks, and to distinguish it from
   EAX = ...  (1)
   RAX = ...  (2)
   ... = RAX  (3)

-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