This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug middle-end/21190] [4.1 Regression] g-spitbo.adb:274: error: unrecognizable insn
- From: "danglin at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 7 May 2005 15:05:30 -0000
- Subject: [Bug middle-end/21190] [4.1 Regression] g-spitbo.adb:274: error: unrecognizable insn
- References: <20050424144352.21190.danglin@gcc.gnu.org>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- 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