From 3ea97a322ccdeefeb4e011cae3417fb2745e47a1 Mon Sep 17 00:00:00 2001 From: hubicka Date: Tue, 15 May 2001 11:55:42 +0000 Subject: [PATCH] * recog.c (apply_change_group): Avoid unneeded validating. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@42106 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ChangeLog | 4 ++++ gcc/recog.c | 7 ++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index d7ada73..a1a72ac 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +Tue May 15 13:51:32 CEST 2001 Jan Hubicka + + * recog.c (apply_change_group): Avoid unneeded validating. + 2001-05-14 David Edelsohn * rs6000.c (num_insns_constant_wide): Constants are sign-extended. diff --git a/gcc/recog.c b/gcc/recog.c index 8648316..86209fe 100644 --- a/gcc/recog.c +++ b/gcc/recog.c @@ -314,6 +314,7 @@ int apply_change_group () { int i; + rtx last_validated = NULL_RTX; /* The changes have been applied and all INSN_CODEs have been reset to force rerecognition. @@ -328,7 +329,9 @@ apply_change_group () { rtx object = changes[i].object; - if (object == 0) + /* if there is no object to test or if it is the same as the one we + already tested, ignore it. */ + if (object == 0 || object == last_validated) continue; if (GET_CODE (object) == MEM) @@ -374,6 +377,7 @@ apply_change_group () but this shouldn't occur. */ validate_change (object, &PATTERN (object), newpat, 1); + continue; } else if (GET_CODE (pat) == USE || GET_CODE (pat) == CLOBBER) /* If this insn is a CLOBBER or USE, it is always valid, but is @@ -382,6 +386,7 @@ apply_change_group () else break; } + last_validated = object; } if (i == num_changes) -- 2.7.4