Compilation failure of 20010119-1.c under hpux at -O1 and above

law@redhat.com law@redhat.com
Mon Apr 30 13:20:00 GMT 2001


  In message < 200104301940.PAA22385@hiauly1.hia.nrc.ca >you write:
  > The test 20010119-1.c fails under hpux 10.20 on the 3.0 branch:
  > 
  > Executing on host: /xxx/gnu/gcc-3.0/objdir/gcc/xgcc -B/xxx/gnu/gcc-3.0/objd
  > ir/gcc/ /xxx/gnu/gcc-3.0/gcc/testsuite/gcc.c-torture/execute/20010119-1.c  
  > -w  -O1 -lm   -fPIC -o /xxx/gnu/gcc-3.0/objdir/gcc/testsuite/20010119-1.x1 
  >    (timeout = 1200)
  > /usr/ccs/bin/ld: Unsatisfied symbols:
  >    undef (code)
  > 
  > It appears that this test doesn't work under hpux because the constant
  > `20000' exceeds the maximum size to load in one insn.  In the intial
  > rtl, it is loaded in two insns using the high and lo_sum parts.
  > Inspite of REG_EQUAL notes on both pseudos, the test `(a) > 20000' and
  > the call to undef are not eliminated from the code.  The test will pass
  > if 20000 is changed to a smaller number, say 11.
  > 
  > I would guess that this shows that comparisons involving two psuedo
  > registers containing constants are not being eliminated.  This would
  > seem like a relatively important optimisation.
There's a whole rats nest of issues here.  I've got a plan, but given that
this is an optimization issue and not a regression problem I'm not inclined
to spend time working on it in the short term.

jeff



More information about the Gcc-bugs mailing list