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]
Other format: [Raw text]

[Bug middle-end/21190] [4.1 Regression] g-spitbo.adb:274: error: unrecognizable insn


------- Additional Comments From danglin at gcc dot gnu dot org  2005-05-07 15:05 -------
Here's the story on this problem.  Ada bootstrap was broken on this
target by this change:

2005-04-08  Diego Novillo  <dnovillo@redhat.com>

        Merge from tree-cleanup-branch: VRP, store CCP, store
            copy-prop, incremental SSA updating of FUD chains and
            newly exposed symbols.

        * Makefile.in (tree-ssa-copy.o): Depend on tree-ssa-propagate.h.
	  ...

The resulting PR was fixed by Kazu with this change:

2005-04-15  Kazu Hirata  <kazu@cs.umass.edu>

        PR tree-optimization/20936.
        * tree-ssa-ccp.c (visit_assignment): Fix a typo.

However, this didn't fix all the problems introduced by the original
change.  With Kazu's patch, gnat1 went into an infinite loop in stage3
compiling ada.ads:

stage2/xgcc -Bstage2/ -B/home/dave/opt/gnu/gcc/gcc-4.1.0/hppa-linux/bin/ -c -g -
O2      -gnatpg -gnata -I- -I. -Iada -I../../gcc/gcc/ada ../../gcc/gcc/ada/ada.a
ds -o ada/ada.o
make[2]: *** [ada/ada.o] Interrupt

The above problem was fixed by this change:

2005-04-22  Jeff Law  <law@redhat.com>

        * tree-ssa-dom.c (block_defs_stack): Remove, no longer needed.
        (restore_currdefs_to_original_value): Likewise.
        (register_definitions_for_stmt): Likewise.
        (tree_ssa_dominator_optimize): No longer initialize CURRENT_DEF
        for each variable.  Do not allocate/free block_defs_stack either.
        Do not iterate if we just thread jumps.  Only iterate if the
        tree_cleanup_cfg does useful work (temporary).
        (dom_opt_initialize_block): No longer push a marker on
        BLOCK_DEFS_STACK.
        (dom_opt_finalize_block): Removal call to restore currdefs.
        Relax restrictions for recording edge equivalences.
        (record_equivalences_from_phis): No longer need to track
        CURRENT_DEF.
        (optimize_stmt): Similarly.
        (thread_across_edge): Simplify by removing the requirement that
        statements in the block we are threading through must be nops.
        (initialize_hash_element): Handle GOTO_EXPR.

Jeff's change exposed the current problem.


-- 


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


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