[gcc-6] 112/401: Apply proposed patch for PR target/68273 (Wrong code on mips/mipsel due to (invalid?) peeking at alignments in function_arg) on mips and mipsel.

Ximin Luo infinity0 at debian.org
Wed Apr 5 15:48:09 UTC 2017


This is an automated email from the git hooks/post-receive script.

infinity0 pushed a commit to branch pu/reproducible_builds
in repository gcc-6.

commit 0d2e7bbeb30c03c2bac0d6727644f7e366f209da
Author: aurel32 <aurel32 at 6ca36cf4-e1d1-0310-8c6f-e303bb2178ca>
Date:   Sun Apr 24 12:34:12 2016 +0000

    Apply proposed patch for PR target/68273 (Wrong code on mips/mipsel due to
    (invalid?) peeking at alignments in function_arg) on mips and mipsel.
    
    git-svn-id: svn://anonscm.debian.org/gcccvs/branches/sid/gcc-6@8778 6ca36cf4-e1d1-0310-8c6f-e303bb2178ca
---
 debian/changelog                     |  4 ++-
 debian/patches/pr68273-proposed.diff | 52 ++++++++++++++++++++++++++++++++++++
 debian/rules.patch                   |  7 +++++
 3 files changed, 62 insertions(+), 1 deletion(-)

diff --git a/debian/changelog b/debian/changelog
index 71f852f..a06aeeb 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,6 +1,8 @@
 gcc-6 (6.0.1-3) UNRELEASED; urgency=medium
 
-  * 
+  [ Aurelien Jarno ]
+  * Apply proposed patch for PR target/68273 (Wrong code on mips/mipsel due to
+    (invalid?) peeking at alignments in function_arg) on mips and mipsel.
 
  -- Matthias Klose <doko at debian.org>  Sat, 23 Apr 2016 22:38:01 +0200
 
diff --git a/debian/patches/pr68273-proposed.diff b/debian/patches/pr68273-proposed.diff
new file mode 100644
index 0000000..3b68a0a
--- /dev/null
+++ b/debian/patches/pr68273-proposed.diff
@@ -0,0 +1,52 @@
+Richard Biener 2016-02-15 10:05:13 UTC
+
+eipa_sra introduces the remaining SSA name with non-default alignment via
+
+#0  make_ssa_name_fn (fn=0x7ffff68bb5e8, 
+    var=<parm_decl 0x7ffff69bc700 ISRA.81>, stmt=<gimple_nop 0x7ffff68bcf50>)
+    at /space/rguenther/src/svn/trunk3/gcc/tree-ssanames.c:311
+#1  0x0000000000e203d1 in get_or_create_ssa_default_def (fn=0x7ffff68bb5e8, 
+    var=<parm_decl 0x7ffff69bc700 ISRA.81>)
+    at /space/rguenther/src/svn/trunk3/gcc/tree-dfa.c:360
+#2  0x0000000000e6638e in get_reaching_def (
+    var=<parm_decl 0x7ffff69bc700 ISRA.81>)
+    at /space/rguenther/src/svn/trunk3/gcc/tree-into-ssa.c:1168
+#3  0x0000000000e67855 in maybe_replace_use (use_p=0x7ffff6a17810)
+    at /space/rguenther/src/svn/trunk3/gcc/tree-into-ssa.c:1753
+#4  0x0000000000e67eb9 in rewrite_update_stmt (
+    stmt=<gimple_assign 0x7ffff6966f50>, gsi=...)
+    at /space/rguenther/src/svn/trunk3/gcc/tree-into-ssa.c:1950
+#5  0x0000000000e685f4 in rewrite_update_dom_walker::before_dom_children (
+    this=0x7fffffffd580, bb=<basic_block 0x7ffff6491f08 (2)>)
+    at /space/rguenther/src/svn/trunk3/gcc/tree-into-ssa.c:2130
+#6  0x00000000013e0993 in dom_walker::walk (this=0x7fffffffd580, 
+    bb=<basic_block 0x7ffff6491f08 (2)>)
+    at /space/rguenther/src/svn/trunk3/gcc/domwalk.c:265
+
+thus SSA rewrite.  ISRA.81 is a PARM_DECL built in ipa_modify_formal_parameters
+from an access present in the IL created by early SRA.
+
+---
+ src/gcc/tree-sra.c |    4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+--- a/src/gcc/tree-sra.c
++++ b/src/gcc/tree-sra.c
+@@ -933,7 +933,7 @@
+ 
+   access = create_access_1 (base, offset, size);
+   access->expr = expr;
+-  access->type = TREE_TYPE (expr);
++  access->type = TYPE_MAIN_VARIANT (TREE_TYPE (expr));
+   access->write = write;
+   access->grp_unscalarizable_region = unscalarizable_region;
+   access->stmt = stmt;
+@@ -1108,7 +1108,7 @@
+ 
+   access = create_access_1 (var, 0, size);
+   access->expr = var;
+-  access->type = TREE_TYPE (var);
++  access->type = TYPE_MAIN_VARIANT (TREE_TYPE (var));
+   access->grp_total_scalarization = 1;
+ }
+ 
diff --git a/debian/rules.patch b/debian/rules.patch
index c148eee..6dd4c57 100644
--- a/debian/rules.patch
+++ b/debian/rules.patch
@@ -86,6 +86,13 @@ ifneq (,$(filter $(DEB_TARGET_ARCH),powerpc))
   debian_patches += pr65913-workaround
 endif
 
+# this is needed on mips 32-bit to fix GCC generating wrong function calls.
+# people do not agree yet where that should be fixed, so only apply the
+# proposed patch on mips and mipsel.
+ifneq (,$(filter $(DEB_TARGET_ARCH),mips mipsel))
+  debian_patches += pr68273-proposed
+endif
+
 ifeq ($(libstdcxx_abi),new)
   debian_patches += libstdc++-functexcept
 endif

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/reproducible/gcc-6.git



More information about the Reproducible-commits mailing list