This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
Re: h8300: less optimal (buggy?) compiler output with last build
- To: law at cygnus dot com
- Subject: Re: h8300: less optimal (buggy?) compiler output with last build
- From: Graham Stott <grahams at cygnus dot co dot uk>
- Date: Wed, 23 Aug 2000 11:28:03 +0100
- CC: gcc-bugs at gcc dot gnu dot org
- References: <13119.966984099@upchuck>
Jeff
Jeffrey A Law wrote:
>
>[snip]
>
> After a wander through the old dusty GCC code from the early/mid 90s I
> found the code was added by the following change:
>
> Sat Feb 26 07:14:04 1994 Richard Kenner (kenner@vlsi1.ultra.nyu.edu)
>
> * expr.c (store_expr): In promoted TARGET case, if EXP is a
> volatile MEM and WANT_VALUE is nonzero, only reference the MEM once.
> Return TARGET if it is a hard register; clean up return code.
>
> Obviously the whole point of this patch was to avoid multiple references
> to MEM.
>
> The way it did this was it detected that temp was a volatile MEM and
> arranged to copy it into a register earlier in the code. That way
> target would be a register by the time we got to the return code.
>
> Presumably we can do something similar for whatever path we're taking
> through store_expr for this case.
>
> It might help the analysis some if you showed the tree node for exp,
> incoming value of target and want_value.
>
> jeff
> jeff
I tried bootstrapping with this change but it broke the bootstrap :(
The stage2 compiler couldn't find header files when building libgcc.
I dig up some more info when I'm not busy.
Graham