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

Jakob Stoklund Olesen stoklund at 2pi.dk
Fri May 15 16:11:56 PDT 2009


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

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




More information about the llvm-commits mailing list