X-Git-Url: http://git.sourceforge.jp/view?a=blobdiff_plain;f=gcc%2Fcselib.h;h=b529060dcd601070333d16d95e2e7bda888ffec0;hb=191fb66c29dccd9ee850b90037478eca1b63b566;hp=8cb2e6b41e31cefd0b6dce2db1a6e572bd8b2b53;hpb=1f3233d13f58417984cb2239d328b65e8d172744;p=pf3gnuchains%2Fgcc-fork.git diff --git a/gcc/cselib.h b/gcc/cselib.h index 8cb2e6b41e3..b529060dcd6 100644 --- a/gcc/cselib.h +++ b/gcc/cselib.h @@ -1,6 +1,6 @@ /* Common subexpression elimination for GNU compiler. Copyright (C) 1987, 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998, - 1999 Free Software Foundation, Inc. + 1999, 2003, 2004 Free Software Foundation, Inc. This file is part of GCC. @@ -29,7 +29,7 @@ typedef struct cselib_val_struct GTY(()) /* A VALUE rtx that points back to this structure. */ rtx GTY ((tag ("1"))) val_rtx; /* Used to keep a list of free cselib_val structures. */ - struct cselib_val_struct * GTY ((skip (""))) next_free; + struct cselib_val_struct * GTY ((skip)) next_free; } GTY ((desc ("1"))) u; /* All rtl expressions that hold this value at the current time during a @@ -38,6 +38,8 @@ typedef struct cselib_val_struct GTY(()) /* If this value is used as an address, points to a list of values that use it as an address in a MEM. */ struct elt_list *addr_list; + + struct cselib_val_struct *next_containing_mem; } cselib_val; /* A list of rtl expressions that hold the same value. */ @@ -49,6 +51,8 @@ struct elt_loc_list GTY(()) rtx loc; /* The insn that made the equivalence. */ rtx setting_insn; + /* True when setting insn is inside libcall. */ + bool in_libcall; }; /* A list of cselib_val structures. */ @@ -58,11 +62,11 @@ struct elt_list GTY(()) cselib_val *elt; }; -extern cselib_val *cselib_lookup PARAMS ((rtx, enum machine_mode, int)); -extern void cselib_update_varray_sizes PARAMS ((void)); -extern void cselib_init PARAMS ((void)); -extern void cselib_finish PARAMS ((void)); -extern void cselib_process_insn PARAMS ((rtx)); -extern int rtx_equal_for_cselib_p PARAMS ((rtx, rtx)); -extern int references_value_p PARAMS ((rtx, int)); -extern rtx cselib_subst_to_values PARAMS ((rtx)); +extern cselib_val *cselib_lookup (rtx, enum machine_mode, int); +extern void cselib_init (bool record_memory); +extern void cselib_finish (void); +extern void cselib_process_insn (rtx); +extern enum machine_mode cselib_reg_set_mode (rtx); +extern int rtx_equal_for_cselib_p (rtx, rtx); +extern int references_value_p (rtx, int); +extern rtx cselib_subst_to_values (rtx);