Assertify ia64 target

James E Wilson wilson@specifixinc.com
Tue Apr 26 21:02:00 GMT 2005


On Tue, 2005-04-26 at 10:32, Nathan Sidwell wrote:
> This patch assertifies the compile time ia64 target machine.

This is OK.

> There were two occurrences of
> !       if (GET_CODE (cond) != REG
> ! 	  && REGNO_REG_CLASS (REGNO (cond)) != PR_REGS)
> ! 	abort ();

Yes, this is a typo.  You didn't say what the bad rtl was.  Scanning
ia64.md, I believe it was ar.lc (loop count application register) which
is used in the doloop pattern.  I have managed to confirm this with a
build.  Also curiously, I note that this is the only register that can
appear here in the first instance of the code, but that is a side-effect
of the COND_EXEC patches.  Before COND_EXEC existed (and before the
doloop support) we always had a PR_REG here.  Now we never have one here
because we always split if_then_else conditional moves into COND_EXEC
patterns.  I believe in the second instance, this will always be a
PR_REG, but haven't checked yet.

This code does need to be rewritten a bit.  I am working on a patch.

> I was also tripped up by group_barrier_needed_p.  I thought it was
> a predicate, but it has important sideeffects.  Perhaps a name
> change would be in order?

Well, yeah, I can drop the _p.
-- 
Jim Wilson, GNU Tools Support, http://www.SpecifixInc.com




More information about the Gcc-patches mailing list