summaryrefslogtreecommitdiff
path: root/gcc/cselib.h
diff options
context:
space:
mode:
authorEric Botcazou <ebotcazou@adacore.com>2016-05-02 10:08:59 +0000
committerEric Botcazou <ebotcazou@gcc.gnu.org>2016-05-02 10:08:59 +0000
commit08e5cf22522a870f0de5be947f1494b4b63f33ad (patch)
tree7c5d880da603b7acab4627747941d8a33e7441b4 /gcc/cselib.h
parent86d2f05621aed0d34dc97a4d619958aa7e170d1c (diff)
downloadgcc-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.h14
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 */