This is the mail archive of the gcc-bugs@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]

Re: h8300: less optimal (buggy?) compiler output with last build


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

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