From 7533544070c29d561a1b570c08f126123264e150 Mon Sep 17 00:00:00 2001 From: Kazu Hirata Date: Wed, 26 Jan 2005 12:44:58 +0000 Subject: [PATCH] * cse.c (fold_rtx): Call equiv_constant only when necessary. From-SVN: r94260 --- gcc/ChangeLog | 4 ++++ gcc/cse.c | 5 +++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index a418bfc6ac5..202edce6dc1 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2005-01-26 Kazu Hirata + + * cse.c (fold_rtx): Call equiv_constant only when necessary. + 2005-01-26 Bernd Schmidt * function.c (expand_function_end): If current_function_calls_alloca, diff --git a/gcc/cse.c b/gcc/cse.c index 98854c9ba92..febf243f932 100644 --- a/gcc/cse.c +++ b/gcc/cse.c @@ -3877,8 +3877,6 @@ fold_rtx (rtx x, rtx insn) code = find_comparison_args (code, &folded_arg0, &folded_arg1, &mode_arg0, &mode_arg1); - const_arg0 = equiv_constant (folded_arg0); - const_arg1 = equiv_constant (folded_arg1); /* If the mode is VOIDmode or a MODE_CC mode, we don't know what kinds of things are being compared, so we can't do @@ -3887,6 +3885,9 @@ fold_rtx (rtx x, rtx insn) if (mode_arg0 == VOIDmode || GET_MODE_CLASS (mode_arg0) == MODE_CC) break; + const_arg0 = equiv_constant (folded_arg0); + const_arg1 = equiv_constant (folded_arg1); + /* If we do not now have two constants being compared, see if we can nevertheless deduce some things about the comparison. */ -- 2.30.2