------- Additional Comments From pinskia at gcc dot gnu dot org 2005-04-15 20:46 ------- Applying the following patch causes the ICE to be seen earlier: Index: tree-ssa-loop-im.c =============================================================== ==== RCS file: /cvs/gcc/gcc/gcc/tree-ssa-loop-im.c,v retrieving revision 2.36 diff -u -p -r2.36 tree-ssa-loop-im.c --- tree-ssa-loop-im.c 11 Apr 2005 20:17:38 -0000 2.36 +++ tree-ssa-loop-im.c 15 Apr 2005 20:45:58 -0000 @@ -38,6 +38,7 @@ Software Foundation, 59 Temple Place - S #include "tree-pass.h" #include "flags.h" #include "real.h" +#include "ggc.h" /* TODO: Support for predicated code motion. I.e. @@ -622,9 +623,10 @@ determine_invariantness_stmt (struct dom The multiply stmt is not invariant, so update iterator and avoid rescanning. */ bsi_replace (&bsi, stmt1, true); - get_stmt_operands (stmt1); /* Should not be necessary. */ bsi_insert_after (&bsi, stmt2, BSI_NEW_STMT); SSA_NAME_DEF_STMT (lhs) = stmt2; + ggc_collect (); + verify_ssa (true); /* Continue processing with invariant reciprocal statment. */ stmt = stmt1;
I think we are missing an update use. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21048