This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

patch to fix PR79058


The following patch fixes

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79058

The patch was successfully bootstrapped and tested on x86-64.

Committed as rev. 244535.


Index: ChangeLog
===================================================================
--- ChangeLog	(revision 244534)
+++ ChangeLog	(working copy)
@@ -1,3 +1,9 @@
+2017-01-17  Vladimir Makarov  <vmakarov@redhat.com>
+
+	PR target/79058
+	* ira-conflicts.c (ira_build_conflicts): Update total conflict
+	hard regs for inner regno.
+
 2017-01-17  Martin Liska  <mliska@suse.cz>
 
 	PR ipa/71207
Index: ira-conflicts.c
===================================================================
--- ira-conflicts.c	(revision 244500)
+++ ira-conflicts.c	(working copy)
@@ -787,8 +787,12 @@ ira_build_conflicts (void)
 		   if (outer_regno < 0
 		       || !in_hard_reg_set_p (reg_class_contents[aclass],
 					      outer_mode, outer_regno))
-		     SET_HARD_REG_BIT (OBJECT_CONFLICT_HARD_REGS (obj),
-				       inner_regno);
+		     {
+		       SET_HARD_REG_BIT (OBJECT_TOTAL_CONFLICT_HARD_REGS (obj),
+					 inner_regno);
+		       SET_HARD_REG_BIT (OBJECT_CONFLICT_HARD_REGS (obj),
+					 inner_regno);
+		     }
 		}
 	    }
 
Index: testsuite/ChangeLog
===================================================================
--- testsuite/ChangeLog	(revision 244534)
+++ testsuite/ChangeLog	(working copy)
@@ -1,3 +1,8 @@
+2017-01-17  Vladimir Makarov  <vmakarov@redhat.com>
+
+	PR target/79058
+	* gcc.target/arm/pr79058.c: New.
+
 2017-01-17  Jakub Jelinek  <jakub@redhat.com>
 
 	PR tree-optimization/71854
Index: testsuite/gcc.target/arm/pr79058.c
===================================================================
--- testsuite/gcc.target/arm/pr79058.c	(revision 0)
+++ testsuite/gcc.target/arm/pr79058.c	(working copy)
@@ -0,0 +1,12 @@
+/* { dg-do compile } */
+/* { dg-skip-if "do not override -mcpu" { *-*-* } { "-mcpu=*" } { "-mcpu=arm7tdmi" } } */
+/* { dg-options "-Os -mbig-endian -mcpu=arm7tdmi" } */
+
+enum { NILFS_SEGMENT_USAGE_ACTIVE, NILFS_SEGMENT_USAGE_DIRTY } a;
+
+void fn2 (long long);
+
+void fn1() {
+  int b = a & 1 << NILFS_SEGMENT_USAGE_DIRTY;
+  fn2 (b ? (long long) -1 : 0);
+}

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]