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