This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
patch to fix PR79058
- From: Vladimir Makarov <vmakarov at redhat dot com>
- To: gcc-patches <gcc-patches at gcc dot gnu dot org>
- Date: Tue, 17 Jan 2017 11:14:21 -0500
- Subject: patch to fix PR79058
- Authentication-results: sourceware.org; auth=none
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);
+}