[llvm-commits] [PATCH] Machine code verifier pass

Evan Cheng evan.cheng at apple.com
Fri May 15 16:17:21 PDT 2009


On May 15, 2009, at 4:11 PM, Jakob Stoklund Olesen wrote:

>
> On 15/05/2009, at 23.30, Evan Cheng wrote:
>> On May 15, 2009, at 11:50 AM, Jakob Stoklund Olesen <stoklund at 2pi.dk>
>> wrote:
>>> On 15/05/2009, at 19.44, Evan Cheng wrote:
>>>> There shouldn't be any *real* double defs. However, a def of EAX
>>>> followed by def of a sub-register, e.g. AX, is totally legal.
>
>>> Ouch, that means I misunderstood how sub-registers work. I assumed
>>> that def of EAX implied def of AX so a second def would be illegal.
>
>> No that's right. Def of EAX does imply def of AX. But you can then
>> update a part of EAX (read mod write). I think livevariables would  
>> add
>> a implict kill of the subreg. But it's unclear whether all passes
>> would do the same.
>
> OK, I am allowing double-def if a super-register is also defined. So
> this is legal:
>
> def AX
> def EAX
> def AX

Actually no. This should not be legal.

def EAX
def AX

This should be legal.

Evan

>
> But his is illegal:
>
> kill EAX
> def AX
> def AX
>
> It looks like most of the remaining errors from X86 test cases are
> related to the MBB live-in lists.
>
> /jakob
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits




More information about the llvm-commits mailing list