Merge lp:~rsandifo/gcc-linaro/lp721531-4.5 into lp:gcc-linaro/4.5

Proposed by Richard Sandiford
Status: Superseded
Proposed branch: lp:~rsandifo/gcc-linaro/lp721531-4.5
Merge into: lp:gcc-linaro/4.5
Diff against target: 121 lines (+82/-2) (has conflicts)
3 files modified
ChangeLog.linaro (+44/-0)
gcc/builtins.c (+23/-2)
gcc/testsuite/gcc.dg/torture/pr49169.c (+15/-0)
Text conflict in ChangeLog.linaro
To merge this branch: bzr merge lp:~rsandifo/gcc-linaro/lp721531-4.5
Reviewer Review Type Date Requested Status
Linaro Toolchain Developers Pending
Review via email: mp+65963@code.launchpad.net

This proposal has been superseded by a proposal from 2011-06-29.

To post a comment you must log in.
Revision history for this message
Linaro Toolchain Builder (cbuild) wrote :

cbuild has taken a snapshot of this branch at r99486 and queued it for build.

The snapshot is available at:
 http://ex.seabright.co.nz/snapshots/gcc-linaro-4.5+bzr99486~rsandifo~lp721531-4.5.tar.xdelta3.xz

and will be built on the following builders:
 a9-builder armv5-builder i686 x86_64

You can track the build queue at:
 http://ex.seabright.co.nz/helpers/scheduler

cbuild-snapshot: gcc-linaro-4.5+bzr99486~rsandifo~lp721531-4.5
cbuild-ancestor: lp:gcc-linaro+bzr99485
cbuild-state: check

Revision history for this message
Linaro Toolchain Builder (cbuild) wrote :

cbuild successfully built this on i686-lucid-cbuild137-scorpius-i686r1.

The build results are available at:
 http://ex.seabright.co.nz/build/gcc-linaro-4.5+bzr99486~rsandifo~lp721531-4.5/logs/i686-lucid-cbuild137-scorpius-i686r1

The test suite results changed compared to the branch point lp:gcc-linaro+bzr99485:
 +PASS: gcc.dg/torture/pr49169.c -O0 (test for excess errors)
 +PASS: gcc.dg/torture/pr49169.c -O1 (test for excess errors)
 +PASS: gcc.dg/torture/pr49169.c -O2 -flto (test for excess errors)
 +PASS: gcc.dg/torture/pr49169.c -O2 -fwhopr (test for excess errors)
 +PASS: gcc.dg/torture/pr49169.c -O2 (test for excess errors)
 +PASS: gcc.dg/torture/pr49169.c -O3 -fomit-frame-pointer (test for excess errors)
 +PASS: gcc.dg/torture/pr49169.c -O3 -g (test for excess errors)
 +PASS: gcc.dg/torture/pr49169.c -Os (test for excess errors)
 +PASS: gcc.dg/torture/pr49169.c scan-assembler abort
 +PASS: gcc.dg/torture/pr49169.c scan-assembler abort
 +PASS: gcc.dg/torture/pr49169.c scan-assembler abort
 +PASS: gcc.dg/torture/pr49169.c scan-assembler abort
 +PASS: gcc.dg/torture/pr49169.c scan-assembler abort
 +PASS: gcc.dg/torture/pr49169.c scan-assembler abort
 +PASS: gcc.dg/torture/pr49169.c scan-assembler abort
 +PASS: gcc.dg/torture/pr49169.c scan-assembler abort
 -PASS: g++.dg/tree-ssa/fwprop-align.C scan-tree-dump-times forwprop2 "& 1" 0
 +FAIL: g++.dg/tree-ssa/fwprop-align.C scan-tree-dump-times forwprop2 "& 1" 0

The full testsuite results are at:
 http://ex.seabright.co.nz/build/gcc-linaro-4.5+bzr99486~rsandifo~lp721531-4.5/logs/i686-lucid-cbuild137-scorpius-i686r1/gcc-testsuite.txt

cbuild-checked: i686-lucid-cbuild137-scorpius-i686r1

Revision history for this message
Linaro Toolchain Builder (cbuild) wrote :

cbuild successfully built this on x86_64-natty-cbuild136-crucis-x86_64r1.

The build results are available at:
 http://ex.seabright.co.nz/build/gcc-linaro-4.5+bzr99486~rsandifo~lp721531-4.5/logs/x86_64-natty-cbuild136-crucis-x86_64r1

The test suite results changed compared to the branch point lp:gcc-linaro+bzr99485:
 +PASS: gcc.dg/torture/pr49169.c -O0 (test for excess errors)
 +PASS: gcc.dg/torture/pr49169.c -O1 (test for excess errors)
 +PASS: gcc.dg/torture/pr49169.c -O2 -flto (test for excess errors)
 +PASS: gcc.dg/torture/pr49169.c -O2 -fwhopr (test for excess errors)
 +PASS: gcc.dg/torture/pr49169.c -O2 (test for excess errors)
 +PASS: gcc.dg/torture/pr49169.c -O3 -fomit-frame-pointer (test for excess errors)
 +PASS: gcc.dg/torture/pr49169.c -O3 -g (test for excess errors)
 +PASS: gcc.dg/torture/pr49169.c -Os (test for excess errors)
 +PASS: gcc.dg/torture/pr49169.c scan-assembler abort
 +PASS: gcc.dg/torture/pr49169.c scan-assembler abort
 +PASS: gcc.dg/torture/pr49169.c scan-assembler abort
 +PASS: gcc.dg/torture/pr49169.c scan-assembler abort
 +PASS: gcc.dg/torture/pr49169.c scan-assembler abort
 +PASS: gcc.dg/torture/pr49169.c scan-assembler abort
 +PASS: gcc.dg/torture/pr49169.c scan-assembler abort
 +PASS: gcc.dg/torture/pr49169.c scan-assembler abort
 -PASS: g++.dg/tree-ssa/fwprop-align.C scan-tree-dump-times forwprop2 "& 1" 0
 +FAIL: g++.dg/tree-ssa/fwprop-align.C scan-tree-dump-times forwprop2 "& 1" 0

The full testsuite results are at:
 http://ex.seabright.co.nz/build/gcc-linaro-4.5+bzr99486~rsandifo~lp721531-4.5/logs/x86_64-natty-cbuild136-crucis-x86_64r1/gcc-testsuite.txt

cbuild-checked: x86_64-natty-cbuild136-crucis-x86_64r1

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'ChangeLog.linaro'
2--- ChangeLog.linaro 2011-06-14 10:36:23 +0000
3+++ ChangeLog.linaro 2011-06-29 10:05:19 +0000
4@@ -1,3 +1,4 @@
5+<<<<<<< TREE
6 2011-06-14 Andrew Stubbs <ams@codesourcery.com>
7
8 gcc/
9@@ -516,6 +517,49 @@
10 * function.c (prepare_shrink_wrap): New function.
11 (thread_prologue_and_epilogue_insns): Call it.
12
13+=======
14+2011-06-29 Richard Sandiford <rdsandiford@googlemail.com>
15+
16+ gcc/
17+ Backport from mainline:
18+
19+ 2011-06-29 Richard Sandiford <richard.sandiford@linaro.org>
20+
21+ PR tree-optimization/49545
22+ * builtins.c (get_object_alignment_1): Update function comment.
23+ Do not use DECL_ALIGN for functions, but test
24+ TARGET_PTRMEMFUNC_VBIT_LOCATION instead.
25+ * fold-const.c (get_pointer_modulus_and_residue): Don't check
26+ for functions here.
27+
28+ gcc/testsuite/
29+ Backport from mainline:
30+
31+ 2011-06-29 Richard Sandiford <richard.sandiford@linaro.org>
32+
33+ * gcc.dg/torture/pr49169.c: Restrict to ARM and MIPS targets.
34+
35+2011-06-27 Richard Sandiford <richard.sandiford@linaro.org>
36+
37+ gcc/
38+ Backport from mainline:
39+
40+ 2011-07-27 Richard Guenther <rguenther@suse.de>
41+
42+ PR tree-optimization/49169
43+ * fold-const.c (get_pointer_modulus_and_residue): Don't rely on
44+ the alignment of function decls.
45+
46+ gcc/testsuite/
47+ Backport from mainline:
48+
49+ 2011-07-27 Michael Hope <michael.hope@linaro.org>
50+ Richard Sandiford <richard.sandiford@linaro.org>
51+
52+ PR tree-optimization/49169
53+ * gcc.dg/torture/pr49169.c: New test.
54+
55+>>>>>>> MERGE-SOURCE
56 2011-03-03 Andrew Stubbs <ams@codesourcery.com>
57
58 gcc/
59
60=== modified file 'gcc/builtins.c'
61--- gcc/builtins.c 2011-01-06 11:02:44 +0000
62+++ gcc/builtins.c 2011-06-29 10:05:19 +0000
63@@ -263,7 +263,14 @@
64
65 /* Return the alignment in bits of EXP, an object.
66 Don't return more than MAX_ALIGN no matter what, ALIGN is the inital
67- guessed alignment e.g. from type alignment. */
68+ guessed alignment e.g. from type alignment.
69+
70+ Note that the address (and thus the alignment) computed here is based
71+ on the address to which a symbol resolves, whereas DECL_ALIGN is based
72+ on the address at which an object is actually located. These two
73+ addresses are not always the same. For example, on ARM targets,
74+ the address &foo of a Thumb function foo() has the lowest bit set,
75+ whereas foo() itself starts on an even address. */
76
77 int
78 get_object_alignment (tree exp, unsigned int align, unsigned int max_align)
79@@ -327,7 +334,21 @@
80 exp = DECL_INITIAL (exp);
81 if (DECL_P (exp)
82 && TREE_CODE (exp) != LABEL_DECL)
83- align = MIN (inner, DECL_ALIGN (exp));
84+ {
85+ if (TREE_CODE (exp) == FUNCTION_DECL)
86+ {
87+ /* Function addresses can encode extra information besides their
88+ alignment. However, if TARGET_PTRMEMFUNC_VBIT_LOCATION
89+ allows the low bit to be used as a virtual bit, we know
90+ that the address itself must be 2-byte aligned. */
91+ if (TARGET_PTRMEMFUNC_VBIT_LOCATION == ptrmemfunc_vbit_in_pfn)
92+ align = 2 * BITS_PER_UNIT;
93+ else
94+ align = BITS_PER_UNIT;
95+ }
96+ else
97+ align = MIN (inner, DECL_ALIGN (exp));
98+ }
99 #ifdef CONSTANT_ALIGNMENT
100 else if (CONSTANT_CLASS_P (exp))
101 align = MIN (inner, (unsigned)CONSTANT_ALIGNMENT (exp, align));
102
103=== added file 'gcc/testsuite/gcc.dg/torture/pr49169.c'
104--- gcc/testsuite/gcc.dg/torture/pr49169.c 1970-01-01 00:00:00 +0000
105+++ gcc/testsuite/gcc.dg/torture/pr49169.c 2011-06-29 10:05:19 +0000
106@@ -0,0 +1,15 @@
107+/* { dg-do compile { target { arm*-*-* || mips*-*-* } } } */
108+
109+#include <stdlib.h>
110+#include <stdint.h>
111+
112+int
113+main (void)
114+{
115+ void *p = main;
116+ if ((intptr_t) p & 1)
117+ abort ();
118+ return 0;
119+}
120+
121+/* { dg-final { scan-assembler "abort" } } */

Subscribers

People subscribed via source and target branches