diff options
author | Eric Botcazou <ebotcazou@adacore.com> | 2016-05-02 10:08:59 +0000 |
---|---|---|
committer | Eric Botcazou <ebotcazou@gcc.gnu.org> | 2016-05-02 10:08:59 +0000 |
commit | 08e5cf22522a870f0de5be947f1494b4b63f33ad (patch) | |
tree | 7c5d880da603b7acab4627747941d8a33e7441b4 /gcc/cselib.h | |
parent | 86d2f05621aed0d34dc97a4d619958aa7e170d1c (diff) | |
download | gcc-08e5cf22522a870f0de5be947f1494b4b63f33ad.tar.gz |
re PR rtl-optimization/70886 (-frename-registers causes boostrap comparison failures on ia64)
PR rtl-optimization/70886
* sched-deps.c (estimate_dep_weak): Canonicalize cselib values.
* cselib.h (rtx_equal_for_cselib_1): Declare.
(rtx_equal_for_cselib_p: New inline function.
* cselib.c (rtx_equal_for_cselib_p): Delete.
(rtx_equal_for_cselib_1): Make public.
From-SVN: r235735
Diffstat (limited to 'gcc/cselib.h')
-rw-r--r-- | gcc/cselib.h | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/gcc/cselib.h b/gcc/cselib.h index bb03f83653d..940fe99f648 100644 --- a/gcc/cselib.h +++ b/gcc/cselib.h @@ -82,7 +82,7 @@ extern void cselib_finish (void); extern void cselib_process_insn (rtx_insn *); extern bool fp_setter_insn (rtx_insn *); extern machine_mode cselib_reg_set_mode (const_rtx); -extern int rtx_equal_for_cselib_p (rtx, rtx); +extern int rtx_equal_for_cselib_1 (rtx, rtx, machine_mode); extern int references_value_p (const_rtx, int); extern rtx cselib_expand_value_rtx (rtx, bitmap, int); typedef rtx (*cselib_expand_callback)(rtx, bitmap, int, void *); @@ -125,4 +125,16 @@ canonical_cselib_val (cselib_val *val) return canon; } +/* Return nonzero if we can prove that X and Y contain the same value, taking + our gathered information into account. */ + +static inline int +rtx_equal_for_cselib_p (rtx x, rtx y) +{ + if (x == y) + return 1; + + return rtx_equal_for_cselib_1 (x, y, VOIDmode); +} + #endif /* GCC_CSELIB_H */ |