X-Git-Url: http://git.sourceforge.jp/view?a=blobdiff_plain;f=gcc%2Fdf.h;h=aec97883ee5f778ef0a25c32f2d7aeb64929df79;hb=190437a65276c9433a1ad61b5343655c665c9ddc;hp=e52cc0e734e5c73b3dd316f0f5e75f4a1b9614d9;hpb=a81d7200fe395b9208f758c99a38929e5957ce0c;p=pf3gnuchains%2Fgcc-fork.git diff --git a/gcc/df.h b/gcc/df.h index e52cc0e734e..aec97883ee5 100644 --- a/gcc/df.h +++ b/gcc/df.h @@ -1,7 +1,7 @@ /* Form lists of pseudo register references for autoinc optimization for GNU compiler. This is part of flow optimization. Copyright (C) 1999, 2000, 2001, 2003, 2004, 2005, 2006, 2007, 2008, - 2009, 2010 Free Software Foundation, Inc. + 2009, 2010, 2011, 2012 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) @@ -53,7 +53,7 @@ union df_ref_d; #define DF_RD 3 /* Reaching Defs. */ #define DF_CHAIN 4 /* Def-Use and/or Use-Def Chains. */ #define DF_WORD_LR 5 /* Subreg tracking lr. */ -#define DF_NOTE 6 /* REG_DEF and REG_UNUSED notes. */ +#define DF_NOTE 6 /* REG_DEAD and REG_UNUSED notes. */ #define DF_MD 7 /* Multiple Definitions. */ #define DF_LAST_PROBLEM_PLUS1 (DF_MD + 1) @@ -574,7 +574,7 @@ struct df_d uses and defs as well as refs in eq notes are ignored. If the ref is a def, it cannot be a MAY_CLOBBER def. If the ref is a use, it cannot be the emim_reg_set or be the frame or arg pointer - register. + register. Uses in debug insns are ignored. IT IS NOT ACCEPTABLE TO MANUALLY CHANGE THIS ARRAY. This array always reflects the actual number of refs in the insn stream that @@ -897,7 +897,6 @@ extern void df_simple_dataflow (enum df_flow_dir, df_init_function, extern void df_mark_solutions_dirty (void); extern bool df_get_bb_dirty (basic_block); extern void df_set_bb_dirty (basic_block); -extern void df_set_bb_dirty_nonlr (basic_block); extern void df_compact_blocks (void); extern void df_bb_replace (int, basic_block); extern void df_bb_delete (int); @@ -971,7 +970,9 @@ extern void df_simulate_one_insn_backwards (basic_block, rtx, bitmap); extern void df_simulate_finalize_backwards (basic_block, bitmap); extern void df_simulate_initialize_forwards (basic_block, bitmap); extern void df_simulate_one_insn_forwards (basic_block, rtx, bitmap); - +extern void simulate_backwards_to_point (basic_block, regset, rtx); +extern bool can_move_insns_across (rtx, rtx, rtx, rtx, basic_block, regset, + regset, rtx *); /* Functions defined in df-scan.c. */ extern void df_scan_alloc (bitmap); @@ -981,6 +982,7 @@ extern void df_grow_insn_info (void); extern void df_scan_blocks (void); extern df_ref df_ref_create (rtx, rtx *, rtx,basic_block, enum df_ref_type, int ref_flags); +extern void df_uses_create (rtx *, rtx, int); extern void df_ref_remove (df_ref); extern struct df_insn_info * df_insn_create_insn_record (rtx); extern void df_insn_delete (basic_block, unsigned int);