diff options
author | dberlin <dberlin@138bc75d-0d04-0410-961f-82ee72b054a4> | 2007-06-11 18:02:15 +0000 |
---|---|---|
committer | dberlin <dberlin@138bc75d-0d04-0410-961f-82ee72b054a4> | 2007-06-11 18:02:15 +0000 |
commit | 3072d30e7983a3ca5ad030f1f98a5c39bcc2c07b (patch) | |
tree | fdb9e9f8a0700a2713dc690fed1a2cf20dae8392 /gcc/integrate.c | |
parent | 8ceb1bfd33bc40bf0cbe1fab8903c2c31efd10ee (diff) | |
download | gcc-3072d30e7983a3ca5ad030f1f98a5c39bcc2c07b.tar.gz |
Merge dataflow branch into mainline
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@125624 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/integrate.c')
-rw-r--r-- | gcc/integrate.c | 19 |
1 files changed, 8 insertions, 11 deletions
diff --git a/gcc/integrate.c b/gcc/integrate.c index a6eeede3985..827afb7fe51 100644 --- a/gcc/integrate.c +++ b/gcc/integrate.c @@ -1,6 +1,6 @@ /* Procedure integration for GCC. Copyright (C) 1988, 1991, 1993, 1994, 1995, 1996, 1997, 1998, 1999, - 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. + 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc. Contributed by Michael Tiemann (tiemann@cygnus.com) This file is part of GCC. @@ -46,6 +46,7 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA #include "target.h" #include "langhooks.h" #include "tree-pass.h" +#include "df.h" /* Round to the next highest integer that meets the alignment. */ #define CEIL_ROUND(VALUE,ALIGN) (((VALUE) + (ALIGN) - 1) & ~((ALIGN)- 1)) @@ -318,7 +319,7 @@ struct tree_opt_pass pass_initial_value_sets = /* If the backend knows where to allocate pseudos for hard register initial values, register these allocations now. */ void -allocate_initial_values (rtx *reg_equiv_memory_loc ATTRIBUTE_UNUSED) +allocate_initial_values (rtx *reg_equiv_memory_loc) { if (targetm.allocate_initial_value) { @@ -347,18 +348,14 @@ allocate_initial_values (rtx *reg_equiv_memory_loc ATTRIBUTE_UNUSED) reg_renumber[regno] = new_regno; /* Poke the regno right into regno_reg_rtx so that even fixed regs are accepted. */ - REGNO (ivs->entries[i].pseudo) = new_regno; + SET_REGNO (ivs->entries[i].pseudo, new_regno); /* Update global register liveness information. */ FOR_EACH_BB (bb) { - struct rtl_bb_info *info = bb->il.rtl; - - if (REGNO_REG_SET_P(info->global_live_at_start, regno)) - SET_REGNO_REG_SET (info->global_live_at_start, - new_regno); - if (REGNO_REG_SET_P(info->global_live_at_end, regno)) - SET_REGNO_REG_SET (info->global_live_at_end, - new_regno); + if (REGNO_REG_SET_P(DF_LIVE_IN (bb), regno)) + SET_REGNO_REG_SET (DF_LIVE_IN (bb), new_regno); + if (REGNO_REG_SET_P(DF_LIVE_OUT (bb), regno)) + SET_REGNO_REG_SET (DF_LIVE_OUT (bb), new_regno); } } } |