Mercurial > hg > CbC > CbC_gcc
diff gcc/df-core.c @ 63:b7f97abdc517 gcc-4.6-20100522
update gcc from gcc-4.5.0 to gcc-4.6
author | ryoma <e075725@ie.u-ryukyu.ac.jp> |
---|---|
date | Mon, 24 May 2010 12:47:05 +0900 |
parents | 77e2b8dfacca |
children | f6334be47118 |
line wrap: on
line diff
--- a/gcc/df-core.c Fri Feb 12 23:41:23 2010 +0900 +++ b/gcc/df-core.c Mon May 24 12:47:05 2010 +0900 @@ -1,6 +1,6 @@ /* Allocation for dataflow support routines. Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, - 2008, 2009 Free Software Foundation, Inc. + 2008, 2009, 2010 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) @@ -636,7 +636,7 @@ int removed = 0; #ifdef ENABLE_DF_CHECKING - enum df_changeable_flags saved_flags; + int saved_flags; #endif if (!df) @@ -1354,6 +1354,30 @@ } +/* Mark BB as needing it's transfer functions as being out of + date, except for LR problem. Used when analyzing DEBUG_INSNs, + as LR problem can trigger DCE, and DEBUG_INSNs shouldn't ever + shorten or enlarge lifetime of regs. */ + +void +df_set_bb_dirty_nonlr (basic_block bb) +{ + if (df) + { + int p; + for (p = 1; p < df->num_problems_defined; p++) + { + struct dataflow *dflow = df->problems_in_order[p]; + if (dflow == df_lr) + continue; + if (dflow->out_of_date_transfer_functions) + bitmap_set_bit (dflow->out_of_date_transfer_functions, bb->index); + dflow->solutions_dirty = true; + } + } +} + + /* Clear the dirty bits. This is called from places that delete blocks. */ static void @@ -2113,7 +2137,7 @@ fprintf (file, "%c%d ", DF_REF_REG_DEF_P (ref) ? 'd' : 'u', DF_REF_ID (ref)); - fprintf (file, "reg %d bb %d insn %d flag 0x%x type 0x%x ", + fprintf (file, "reg %d bb %d insn %d flag %#x type %#x ", DF_REF_REGNO (ref), DF_REF_BBNO (ref), DF_REF_IS_ARTIFICIAL (ref) ? -1 : DF_REF_INSN_UID (ref),