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: help for arm avr bfin cris frv h8300 m68k mcore mmix pdp11 rs6000 sh vax


> Hm.  In fold-const.c we try to make sure to produce the same result
> as the target would for constant-folding shifts.  Thus, Paolo, I think
> what fold-const.c does is what we should assume for
> !SHIFT_COUNT_TRUNCATED.  No?

Unfortunately it is not so simple.  fold-const.c is actually wrong, as
witnessed by this program

  static inline int f (int s) { return 2 << s; }
  int main () { printf ("%d\n", f(33)); }

which prints 4 at -O0 and 0 at -O2 on i686-pc-linux-gnu.

This might mean either that it is easier than I thought (i.e. that all
the subtleties of the targets could be ignored), but I want to play it
safe and actually take the opportunity to fix the above problem (my
current patch does fix it).

Paolo


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