aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Hubicka <jh@suse.cz>2001-05-15 13:55:42 +0200
committerJan Hubicka <hubicka@gcc.gnu.org>2001-05-15 11:55:42 +0000
commit66aa2d308b06ea39d5686f26cc109b86cc249a65 (patch)
tree24e8969fc927638d83c75f74033649152e20c937
parent5be598f65e965b63d1e7b209ba77965b848c61a6 (diff)
downloadgcc-66aa2d308b06ea39d5686f26cc109b86cc249a65.zip
gcc-66aa2d308b06ea39d5686f26cc109b86cc249a65.tar.gz
gcc-66aa2d308b06ea39d5686f26cc109b86cc249a65.tar.bz2
* recog.c (apply_change_group): Avoid unneeded validating.
From-SVN: r42106
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/recog.c7
2 files changed, 10 insertions, 1 deletions
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 <jh@suse.cz>
+
+ * recog.c (apply_change_group): Avoid unneeded validating.
+
2001-05-14 David Edelsohn <edelsohn@gnu.org>
* 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)