[Bug optimization/15230] [3.5 Regression] Building xnmake using a 3.5.0 GNAT results in STORAGE_ERROR

chrisp_42 at bigpond dot com gcc-bugzilla@gcc.gnu.org
Tue May 4 23:10:00 GMT 2004


------- Additional Comments From chrisp_42 at bigpond dot com  2004-05-04 23:10 -------
(In reply to comment #1)
> Looks like a codegen issue of some sort.
> Probably using less aggressive optimization flags would avoid this problem.
> 
> Does the problem still reproduce with current sources btw ?
> 
> Arno

This problem started occurring with the following patch:

date: 2004/04/17 06:53:41;  author: bonzini;  state: Exp;  lines: +19 -0
2004-04-17  Paolo Bonzini  <bonzini@gnu.org>

        * opts.c (decode_options): Do not enable flag_rename_registers
        and flag_web at -O3.
        * toplev.c (flag_rename_registers): Initialize
        flag_rename_registers and flag_web to
        AUTODETECT_FLAG_VAR_TRACKING.
        (default_debug_hooks): New global.
        (process_options): Initialize default_debug_hooks.  Warn if
        -fvar-tracking specified but not supported by the current
        debug format.  Do not run var tracking at -O0 or if not
        supported by the current debug format, even if
        -fvar-tracking was given.  If -fno-rename-registers
        is not specified, always run register renaming if var
        tracking is supported by the default debugging information
        format for the target, and we are at -O1 or higher; similarly
        for -fweb, but only at -O2 or higher.
        * doc/invoke.texi (Optimize Options): Document this.

This patch did not really change the compiler much - it just enabled the
rename-registers and web optimizations at lower optimization levels.  The
rename-registers had other problems and was disabled later with this patch:

date: 2004/04/20 09:27:25;  author: bonzini;  state: Exp;  lines: +10 -0
2004-04-19  Paolo Bonzini  <bonzini@gnu.org>

        Revert part of 2004-04-17 change that moved -frename-registers
        to -O1.  -frename-registers is buggy.

        * toplev.c (flag_rename_registers): Initialize to 0.
        * doc/invoke.texi (Optimize options): Move -frename-registers
        to "Not triggered by any -O level" section.  Adjust commentary
        accordingly.

The boot problem still remains so it is some miscompilation related to -fweb.
I can confirm that if -fweb is disabled, the compiler that is build can also
bootstrap itself.

If gnat-spitbot and gnat-spitbol-patterns are compiled with -fno-web and linked
with xnmake the error trasnforms to a constraint_error.  The result of all this
is that I still do not know if the problem is that the compiler generates bad
code or whether the ada runtime library is miscompiled.  Anyway more information
for someone that knows what -fweb does.

-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=15230



More information about the Gcc-bugs mailing list