aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJosef Zlomek <zlomekj@suse.cz>2004-04-20 08:01:03 +0200
committerJosef Zlomek <zlomek@gcc.gnu.org>2004-04-20 06:01:03 +0000
commit6f615a287e82d3110d140a7036ebbf298137158a (patch)
tree4d3207c456b6de88364629116f687d87542d5326
parenta1bac22c43e4b71d5e770ca9b43aaf9fbee45022 (diff)
downloadgcc-6f615a287e82d3110d140a7036ebbf298137158a.zip
gcc-6f615a287e82d3110d140a7036ebbf298137158a.tar.gz
gcc-6f615a287e82d3110d140a7036ebbf298137158a.tar.bz2
var-tracking.c (variable_part_different_p): Variable parts differ when the most recent locations differ.
* var-tracking.c (variable_part_different_p): Variable parts differ when the most recent locations differ. From-SVN: r80880
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/var-tracking.c6
2 files changed, 11 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 2d7b398..e57ce57 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2004-04-20 Josef Zlomek <zlomekj@suse.cz>
+
+ * var-tracking.c (variable_part_different_p): Variable parts differ
+ when the most recent locations differ.
+
2004-04-19 James E Wilson <wilson@specifixinc.com>
* rtl.h (reg_set_last): Delete declaration.
diff --git a/gcc/var-tracking.c b/gcc/var-tracking.c
index d26893b..62c696b 100644
--- a/gcc/var-tracking.c
+++ b/gcc/var-tracking.c
@@ -1242,6 +1242,12 @@ variable_part_different_p (variable_part *vp1, variable_part *vp2)
{
location_chain lc1, lc2;
+ if (!((GET_CODE (vp1->cur_loc) == REG
+ && GET_CODE (vp2->cur_loc) == REG
+ && REGNO (vp1->cur_loc) == REGNO (vp2->cur_loc))
+ || rtx_equal_p (vp1->cur_loc, vp2->cur_loc)))
+ return true;
+
for (lc1 = vp1->loc_chain; lc1; lc1 = lc1->next)
{
for (lc2 = vp2->loc_chain; lc2; lc2 = lc2->next)