[Bug target/15491] ICE (Internal compiler error) while compiling glibc to vax-linux target

danglin at gcc dot gnu dot org gcc-bugzilla@gcc.gnu.org
Sun Jan 9 16:09:00 GMT 2005


------- Additional Comments From danglin at gcc dot gnu dot org  2005-01-09 16:08 -------
Could you test this change?  I've done a full bootstrap with an x86 cross
to vax-ultrix but this doesn't provide a full test.

The ICE was introduced in the 3.4 branch when the macro RTX_COSTS was
removed.  This macro contained a switch statement containing a list of
codes that vax_rtx_costs could handle.  This list appeared redundant
but it was in fact protecting vax_rtx_costs from being exposed to rts's
such EXPR_LIST that it wasn't designed to handle.  I've now reworked
vax_rtx_costs to eliminate an unnecessary calling layer and to return
false for rtx codes that it can't handle.

In doing this rework, it became clear that vax_rtx_costs was broken
in a number of ways:

1) Various rtx codes used in the machine definition were missing,
2) The POST_INC and PRE_DEC codes were not accessible in 3.3 and
   earlier,
3) The operands for NEG and NOT were not being included in the cost
   estimate.

I've tried to fix the ICE and the above problems.  The missing
codes are given a default cost of 3 which certainly isn't right.
However, as can be seen from the comments in the function, the
cost estimates are only approximate and variations occur from
cpu to cpu.

I will try to test the patch latter but my vax is currently
busy doing a 3.3 build.



-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |WAITING


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



More information about the Gcc-bugs mailing list