OSDN Git Service

* var-tracking.c (variable_part_different_p): Variable parts differ
authorzlomek <zlomek@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 20 Apr 2004 06:01:03 +0000 (06:01 +0000)
committerzlomek <zlomek@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 20 Apr 2004 06:01:03 +0000 (06:01 +0000)
when the most recent locations differ.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@80880 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/var-tracking.c

index 2d7b398..e57ce57 100644 (file)
@@ -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.
index d26893b..62c696b 100644 (file)
@@ -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)