X-Git-Url: http://git.sourceforge.jp/view?p=pf3gnuchains%2Fgcc-fork.git;a=blobdiff_plain;f=gcc%2Fdf-problems.c;h=5f908da07ef32d7a2ba2546b10ebdea9c25bd599;hp=25bbba61bb1d05b7f82bb99d0c014c98fa76e5bc;hb=118de414604dd16d0a04c053f7f4a7ce46b17427;hpb=c08d9df8b27412bed35e1523396b65219465b241 diff --git a/gcc/df-problems.c b/gcc/df-problems.c index 25bbba61bb1..5f908da07ef 100644 --- a/gcc/df-problems.c +++ b/gcc/df-problems.c @@ -1,6 +1,6 @@ /* Standard problems for dataflow support routines. Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, - 2008, 2009, 2010 Free Software Foundation, Inc. + 2008, 2009 Free Software Foundation, Inc. Originally contributed by Michael P. Hayes (m.hayes@elec.canterbury.ac.nz, mhayes@redhat.com) Major rewrite contributed by Danny Berlin (dberlin@dberlin.org) @@ -3416,7 +3416,6 @@ struct dead_debug { struct dead_debug_use *head; bitmap used; - bitmap to_rescan; }; /* Initialize DEBUG to an empty list, and clear USED, if given. */ @@ -3425,7 +3424,6 @@ dead_debug_init (struct dead_debug *debug, bitmap used) { debug->head = NULL; debug->used = used; - debug->to_rescan = NULL; if (used) bitmap_clear (used); } @@ -3449,26 +3447,10 @@ dead_debug_finish (struct dead_debug *debug, bitmap used) { INSN_VAR_LOCATION_LOC (insn) = gen_rtx_UNKNOWN_VAR_LOC (); df_insn_rescan_debug_internal (insn); - if (debug->to_rescan) - bitmap_clear_bit (debug->to_rescan, INSN_UID (insn)); } debug->head = head->next; XDELETE (head); } - - if (debug->to_rescan) - { - bitmap_iterator bi; - unsigned int uid; - - EXECUTE_IF_SET_IN_BITMAP (debug->to_rescan, 0, uid, bi) - { - struct df_insn_info *insn_info = DF_INSN_UID_SAFE_GET (uid); - if (insn_info) - df_insn_rescan (insn_info->insn); - } - BITMAP_FREE (debug->to_rescan); - } } /* Add USE to DEBUG. It must be a dead reference to UREGNO in a debug @@ -3519,8 +3501,8 @@ dead_debug_insert_before (struct dead_debug *debug, unsigned int uregno, cur->next = NULL; if (!reg || (GET_MODE_BITSIZE (GET_MODE (reg)) - < GET_MODE_BITSIZE (GET_MODE (*DF_REF_REAL_LOC (cur->use))))) - reg = *DF_REF_REAL_LOC (cur->use); + < GET_MODE_BITSIZE (GET_MODE (DF_REF_REAL_REG (cur->use))))) + reg = DF_REF_REAL_REG (cur->use); } else tailp = &(*tailp)->next; @@ -3542,15 +3524,13 @@ dead_debug_insert_before (struct dead_debug *debug, unsigned int uregno, /* Adjust all uses. */ while ((cur = uses)) { - if (GET_MODE (*DF_REF_REAL_LOC (cur->use)) == GET_MODE (reg)) + if (GET_MODE (DF_REF_REAL_REG (cur->use)) == GET_MODE (reg)) *DF_REF_REAL_LOC (cur->use) = dval; else *DF_REF_REAL_LOC (cur->use) - = gen_lowpart_SUBREG (GET_MODE (*DF_REF_REAL_LOC (cur->use)), dval); + = gen_lowpart_SUBREG (GET_MODE (DF_REF_REAL_REG (cur->use)), dval); /* ??? Should we simplify subreg of subreg? */ - if (debug->to_rescan == NULL) - debug->to_rescan = BITMAP_ALLOC (NULL); - bitmap_set_bit (debug->to_rescan, INSN_UID (DF_REF_INSN (cur->use))); + df_insn_rescan (DF_REF_INSN (cur->use)); uses = cur->next; XDELETE (cur); } @@ -3748,10 +3728,7 @@ df_note_bb_compute (unsigned int bb_index, if (debug_insn) { if (debug_insn > 0) - { - dead_debug_add (&debug, use, uregno); - continue; - } + dead_debug_add (&debug, use, uregno); break; } else