From: pinskia Date: Tue, 12 Dec 2006 22:45:25 +0000 (+0000) Subject: 2006-12-12 Andrew Pinski X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=76af66a672f65a028130f3eec695ba1f88e7c4ac;p=thirdparty%2Fgcc.git 2006-12-12 Andrew Pinski PR tree-opt/28624 * tree-ssa-dom.c (eliminate_degenerate_phis): Use a temporary bitmap for EXECUTE_IF_SET_IN_BITMAP. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@119802 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 531a1f90889d..0e5e595601df 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2006-12-12 Andrew Pinski + + PR tree-opt/28624 + * tree-ssa-dom.c (eliminate_degenerate_phis): Use a temporary + bitmap for EXECUTE_IF_SET_IN_BITMAP. + 2006-12-12 Andrew Pinski PR tree-opt/28436 diff --git a/gcc/tree-ssa-dom.c b/gcc/tree-ssa-dom.c index 7bae33ff43de..73ddc0a9dbac 100644 --- a/gcc/tree-ssa-dom.c +++ b/gcc/tree-ssa-dom.c @@ -2466,6 +2466,7 @@ static unsigned int eliminate_degenerate_phis (void) { bitmap interesting_names; + bitmap interesting_names1; /* Bitmap of blocks which need EH information updated. We can not update it on-the-fly as doing so invalidates the dominator tree. */ @@ -2482,6 +2483,7 @@ eliminate_degenerate_phis (void) Experiments have show we generally get better compilation time behavior with bitmaps rather than sbitmaps. */ interesting_names = BITMAP_ALLOC (NULL); + interesting_names1 = BITMAP_ALLOC (NULL); /* First phase. Eliminate degenerate PHIs via a dominator walk of the CFG. @@ -2503,7 +2505,12 @@ eliminate_degenerate_phis (void) unsigned int i; bitmap_iterator bi; - EXECUTE_IF_SET_IN_BITMAP (interesting_names, 0, i, bi) + /* EXECUTE_IF_SET_IN_BITMAP does not like its bitmap + changed during the loop. Copy it to another bitmap and + use that. */ + bitmap_copy (interesting_names1, interesting_names); + + EXECUTE_IF_SET_IN_BITMAP (interesting_names1, 0, i, bi) { tree name = ssa_name (i); @@ -2524,6 +2531,7 @@ eliminate_degenerate_phis (void) } BITMAP_FREE (interesting_names); + BITMAP_FREE (interesting_names1); if (cfg_altered) free_dominance_info (CDI_DOMINATORS); return 0;