[LLVMdev] implicit CC register Defs cause "physreg was not killed in defining block!" assert

Christian Sayer Christian.Sayer at dibcom.fr
Tue Jan 13 03:56:04 PST 2009


Hi,

I was a little confused by all the passes I went through last time.
LiveVariables *is* actually being run before and after PNE (of course,
because it crashed in the second run...)

The problem was that the CCFLAGS register was not marked
non-allocatable. AFAICS this is also the case in the X86 backend, which
I took as model, although it does not make problems there - but maybe
it should not be anyway?

>The instructions containing the CCFLAGS which are not marked dead
>in the dump below (line 3+) are reg-to-reg copies inserted by
>the PHI elimination.
>In my backend, a mov instruction is currently implemented as
>an add with
>constant 0 (affecting condition codes).
>Now LiveVariables gets executed before PHI elimination, so I am trying
>to figure out if there is code in PNE which is supposed to update the
>defs. Otherwise I might try to re-run LiveVariables after PNE, or
>some similiar approach combining these two passes - unless you tell
>me they don't get marked dead because of an implementation flaw in my
>backend
...which turned out to be the correct assumption ; )

Regards,
Christian





--





sorry about that, but there is nothing I can do about it:

CONFIDENTIAL NOTICE: The contents of this message, including any attachments, are confidential and are intended solely for the use of the person or entity to whom the message was addressed. If you are not the intended recipient of this message, please be advised that any dissemination, distribution, or use of the contents of this message is strictly prohibited. If you received this message in error, please notify the sender. Please also permanently delete all copies of the original message and any attached documentation. Thank you.




More information about the llvm-dev mailing list