aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAldy Hernandez <aldyh@redhat.com>2001-02-21 15:59:30 +0000
committerAldy Hernandez <aldyh@gcc.gnu.org>2001-02-21 15:59:30 +0000
commit7e6d8ba1842561ee144669cc97fad0fcbda65ae6 (patch)
treec13f517ce7e3c81b8a1647b4eba413a69430cae5
parent5daf7c0a17267dbbff0fea793a3c60f9bbd37e45 (diff)
downloadgcc-7e6d8ba1842561ee144669cc97fad0fcbda65ae6.zip
gcc-7e6d8ba1842561ee144669cc97fad0fcbda65ae6.tar.gz
gcc-7e6d8ba1842561ee144669cc97fad0fcbda65ae6.tar.bz2
new macro REVERSE_CONDEXEC_PREDICATES_P
From-SVN: r39947
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/flow.c8
-rw-r--r--gcc/tm.texi11
3 files changed, 25 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 57d50323..b4bd206 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2001-02-20 Aldy Hernandez <aldyh@redhat.com>
+
+ * tm.texi (REVERSE_CONDEXEC_PREDICATES_P): New macro documentation.
+
+ * flow.c (ior_reg_cond): Use REVERSE_CONDEXEC_PREDICATES_P macro.
+ (REVERSE_CONDEXEC_PREDICATES_P): Define macro.
+
2001-02-21 Jason Merrill <jason@redhat.com>
* tree.h (DECL_UNINLINABLE): Move from C++ frontend.
diff --git a/gcc/flow.c b/gcc/flow.c
index 9137db51..65c8a287 100644
--- a/gcc/flow.c
+++ b/gcc/flow.c
@@ -168,6 +168,12 @@ Boston, MA 02111-1307, USA. */
#define EPILOGUE_USES(REGNO) 0
#endif
+#ifdef HAVE_conditional_execution
+#ifndef REVERSE_CONDEXEC_PREDICATES_P
+#define REVERSE_CONDEXEC_PREDICATES_P(x, y) ((x) == reverse_condition (y))
+#endif
+#endif
+
/* The obstack on which the flow graph components are allocated. */
struct obstack flow_obstack;
@@ -5137,7 +5143,7 @@ ior_reg_cond (old, x, add)
if (GET_RTX_CLASS (GET_CODE (old)) == '<')
{
if (GET_RTX_CLASS (GET_CODE (x)) == '<'
- && GET_CODE (x) == reverse_condition (GET_CODE (old))
+ && REVERSE_CONDEXEC_PREDICATES_P (GET_CODE (x), GET_CODE (old))
&& REGNO (XEXP (x, 0)) == REGNO (XEXP (old, 0)))
return const1_rtx;
if (GET_CODE (x) == GET_CODE (old)
diff --git a/gcc/tm.texi b/gcc/tm.texi
index d6557b8..7676b19 100644
--- a/gcc/tm.texi
+++ b/gcc/tm.texi
@@ -4880,6 +4880,17 @@ like:
: reverse_condition_maybe_unordered (CODE))
@end smallexample
+@findex REVERSE_CONDEXEC_PREDICATES_P
+@item REVERSE_CONDEXEC_PREDICATES_P (@var{code1}, @var{code2})
+A C expression that returns true if the conditional execution predicate
+@var{code1} is the inverse of @var{code2} and vice versa. Define this to
+return 0 if the target has conditional execution predicates that cannot be
+reversed safely. If none is specified, this macro expands to:
+
+@smallexample
+#define REVERSE_CONDEXEC_PREDICATES_P (x, y) ((x) == reverse_condition (y))
+@end smallexample
+
@end table
@node Costs