http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53975

--- Comment #15 from Steven Bosscher <steven at gcc dot gnu.org> 2012-07-26 
23:45:51 UTC ---
(In reply to comment #14)
>   So either we revert the patch at
> http://gcc.gnu.org/viewcvs?view=revision&revision=177658 or we add e.g.
> clobbers of address register to the check patterns in ia64.md _and_ allow
> limited instructions (e.g. ones writing to general or fp regs) for BE_IN_SPEC
> speculation in ia64.c, i.e. to be moved up past a speculation check.

I think reverting that patch is the right thing to do, iff it completely fixes
this problem (i.e. no similar issues lurking...). It may be worth adding a
FIXME note with a reference to this PR. Perhaps addressing this problem fully
isn't on anyone's TODO list for the moment (ia64...) but if speculation becomes
more important in future target then it's nice to know why things look the way
they do in the compiler.

The second option is more than minor surgery to the ia64 back end, and I think
that's more trouble than it's worth at this point. If a bug like this can go
undetected for such a long time (almost a year), then test coverage for the
ia64 back end is... well... not perfect ;-)

Reply via email to