This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Why doesn't -fomit-frame-pointer work(very well)?



Peter Barada wrote:

>>- Changing FIRST_PSEUDO_REGISTER causes an ABI change
>>in libgcc, unless DWARF_FRAME_REGISTERS is defined ...
>
>I only see DWARF_FRAME_REGSITERS in i386.h and rs6000.h, and no
>documentation on what DWARF_FRAME_REGSITERS should be defined as.
>For the moment I'll define it to be what FIRST_PSEUDO_REGISTER *was*.

config/s390/s390.h does define DWARF_FRAME_REGISTERS (both in
HEAD and gcc-3_1-branch, not however in gcc 3.0.x).

If it is not defined, it'll default to FIRST_PSEUDO_REGISTER,
so I think should should indeed set it to what FIRST_PSEUDO_REGISTER
was before your change.


>>- If you are using REG_ALLOC_ORDER, make sure that *all*
>>hard registers are listed, or else you'll get rare and
>>hard to reproduce reload failures ...
>
>Since the two register I'm adding are virtual, then that should change
>REG_ALLOC_ORDER since thoser oare *physical* registers...

In regclass.c you'll find
  int reg_alloc_order[FIRST_PSEUDO_REGISTER] = REG_ALLOC_ORDER;
and the users of reg_alloc_order likewise assume that all
FIRST_PSEUDO_REGISTER many entries of that array are filled.

If REG_ALLOC_ORDER is shorter, you'll have multiple copies of
register 0 in reg_alloc_order, which can confuse reload.


Mit freundlichen Gruessen / Best Regards

Ulrich Weigand

--
  Dr. Ulrich Weigand
  Linux for S/390 Design & Development
  IBM Deutschland Entwicklung GmbH, Schoenaicher Str. 220, 71032 Boeblingen
  Phone: +49-7031/16-3727   ---   Email: Ulrich.Weigand@de.ibm.com


Peter Barada <pbarada@mail.wm.sps.mot.com> on 04.04.2002 16:50:12

Please respond to Peter Barada <pbarada@mail.wm.sps.mot.com>

To:    weigand@immd1.informatik.uni-erlangen.de
cc:    Peter.Barada@motorola.com, rth@redhat.com, gcc@gcc.gnu.org, Ulrich
       Weigand/Germany/IBM@IBMDE
Subject:    Re: Why doesn't -fomit-frame-pointer work(very well)?




>> Is there anything else that I'm missing?
>
>- Changing FIRST_PSEUDO_REGISTER causes an ABI change
>in libgcc, unless DWARF_FRAME_REGISTERS is defined ...

I only see DWARF_FRAME_REGSITERS in i386.h and rs6000.h, and no
documentation on what DWARF_FRAME_REGSITERS should be defined as.
For the moment I'll define it to be what FIRST_PSEUDO_REGISTER *was*.

>- If you are using REG_ALLOC_ORDER, make sure that *all*
>hard registers are listed, or else you'll get rare and
>hard to reproduce reload failures ...

Since the two register I'm adding are virtual, then that should change
REG_ALLOC_ORDER since thoser oare *physical* registers...

--
Peter Barada                                   Peter.Barada@motorola.com
Wizard                                         781-852-2768 (direct)
WaveMark Solutions(wholly owned by Motorola)   781-270-0193 (fax)




Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]