Hello community,
here is the log from the commit of package gcc43 for openSUSE:Factory
checked in at Thu May 21 00:07:32 CEST 2009.
--------
--- gcc43/gcc43.changes 2009-05-08 14:13:33.000000000 +0200
+++ gcc43/gcc43.changes 2009-05-20 13:48:59.000000000 +0200
@@ -1,0 +2,12 @@
+Wed May 20 12:54:37 CEST 2009 - rguenther@suse.de
+
+- Update to gcc-4_3-branch head (r147732).
+
+-------------------------------------------------------------------
+Fri May 15 13:39:05 CEST 2009 - rguenther@suse.de
+
+- Split PR27799 patch.
+- Add patch for PR40141.
+- Fix testcase for PR36745.
+
+-------------------------------------------------------------------
libgcj43.changes: same change
calling whatdependson for head-i586
Old:
----
gcc-4.3.3-20090508.tar.bz2
pr27799.diff
New:
----
gcc-4.3.3-20090520.tar.bz2
pr27799-1.diff
pr27799-2.diff
pr27799-3.diff
pr40141.diff
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ gcc43.spec ++++++
--- /var/tmp/diff_new_pack.Sf3667/_old 2009-05-20 23:58:14.000000000 +0200
+++ /var/tmp/diff_new_pack.Sf3667/_new 2009-05-20 23:58:14.000000000 +0200
@@ -1,5 +1,5 @@
#
-# spec file for package gcc43 (Version 4.3.3_20090508)
+# spec file for package gcc43 (Version 4.3.3_20090520)
#
# Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
@@ -115,7 +115,7 @@
%define biarch_targets x86_64 s390x powerpc64 powerpc
Url: http://gcc.gnu.org/
License: GPL v3 or later
-Version: 4.3.3_20090508
+Version: 4.3.3_20090520
Release: 1
%define gcc_version %(echo %version | sed 's/_.*//')
%define gcc_dir_version %(echo %gcc_version | cut -d '.' -f 1-2)
@@ -162,8 +162,11 @@
Patch24: tls-no-direct.diff
Patch25: pr27880.diff
Patch28: pr33763.diff
+Patch29: pr40141.diff
Patch30: Wunprototyped-calls.diff
-Patch31: pr27799.diff
+Patch31: pr27799-1.diff
+Patch32: pr27799-2.diff
+Patch33: pr27799-3.diff
Patch41: fpreserve-function-arguments43.patch
Patch42: pr27975.diff
Patch43: build-id.diff
@@ -1444,8 +1447,11 @@
%patch24
%patch25
%patch28
+%patch29
%patch30
%patch31
+%patch32
+%patch33
%patch41
%patch42
%if 0%{suse_version} > 1100
@@ -2646,6 +2652,12 @@
%endif
%changelog
+* Wed May 20 2009 rguenther@suse.de
+- Update to gcc-4_3-branch head (r147732).
+* Fri May 15 2009 rguenther@suse.de
+- Split PR27799 patch.
+- Add patch for PR40141.
+- Fix testcase for PR36745.
* Fri May 08 2009 rguenther@suse.de
- Update to gcc-4_3-branch head (r147281).
- Disable cross compiler spec file generation.
++++++ libgcj43.spec ++++++
--- /var/tmp/diff_new_pack.Sf3667/_old 2009-05-20 23:58:14.000000000 +0200
+++ /var/tmp/diff_new_pack.Sf3667/_new 2009-05-20 23:58:14.000000000 +0200
@@ -1,5 +1,5 @@
#
-# spec file for package libgcj43 (Version 4.3.3_20090508)
+# spec file for package libgcj43 (Version 4.3.3_20090520)
#
# Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
@@ -126,7 +126,7 @@
%define biarch_targets x86_64 s390x powerpc64 powerpc
Url: http://gcc.gnu.org/
License: GPL v2 or later; LGPL v2.1 or later
-Version: 4.3.3_20090508
+Version: 4.3.3_20090520
Release: 1
%define gcc_version %(echo %version | sed 's/_.*//')
%define gcc_dir_version %(echo %gcc_version | cut -d '.' -f 1-2)
@@ -173,8 +173,11 @@
Patch24: tls-no-direct.diff
Patch25: pr27880.diff
Patch28: pr33763.diff
+Patch29: pr40141.diff
Patch30: Wunprototyped-calls.diff
-Patch31: pr27799.diff
+Patch31: pr27799-1.diff
+Patch32: pr27799-2.diff
+Patch33: pr27799-3.diff
Patch41: fpreserve-function-arguments43.patch
Patch42: pr27975.diff
Patch43: build-id.diff
@@ -642,8 +645,11 @@
%patch24
%patch25
%patch28
+%patch29
%patch30
%patch31
+%patch32
+%patch33
%patch41
%patch42
%if 0%{suse_version} > 1100
@@ -1359,6 +1365,12 @@
%endif
%changelog
+* Wed May 20 2009 rguenther@suse.de
+- Update to gcc-4_3-branch head (r147732).
+* Fri May 15 2009 rguenther@suse.de
+- Split PR27799 patch.
+- Add patch for PR40141.
+- Fix testcase for PR36745.
* Fri May 08 2009 rguenther@suse.de
- Update to gcc-4_3-branch head (r147281).
- Disable cross compiler spec file generation.
++++++ gcc-4.3.3-20090508.tar.bz2 -> gcc-4.3.3-20090520.tar.bz2 ++++++
gcc43/gcc-4.3.3-20090508.tar.bz2 gcc43/gcc-4.3.3-20090520.tar.bz2 differ: byte 11, line 1
++++++ gcc.spec.in ++++++
--- /var/tmp/diff_new_pack.Sf3667/_old 2009-05-20 23:58:15.000000000 +0200
+++ /var/tmp/diff_new_pack.Sf3667/_new 2009-05-20 23:58:15.000000000 +0200
@@ -123,7 +123,7 @@
URL: http://gcc.gnu.org/
License: GPL
-Version: 4.3.3_20090508
+Version: 4.3.3_20090520
Release: 1
%define gcc_version %(echo %version | sed 's/_.*//')
%define gcc_dir_version %(echo %gcc_version | cut -d '.' -f 1-2)
@@ -172,8 +172,11 @@
Patch24: tls-no-direct.diff
Patch25: pr27880.diff
Patch28: pr33763.diff
+Patch29: pr40141.diff
Patch30: Wunprototyped-calls.diff
-Patch31: pr27799.diff
+Patch31: pr27799-1.diff
+Patch32: pr27799-2.diff
+Patch33: pr27799-3.diff
Patch41: fpreserve-function-arguments43.patch
Patch42: pr27975.diff
Patch43: build-id.diff
@@ -915,8 +918,11 @@
%patch24
%patch25
%patch28
+%patch29
%patch30
%patch31
+%patch32
+%patch33
%patch41
%patch42
%if 0%{suse_version} > 1100
++++++ pr27799-1.diff ++++++
2008-04-17 Richard Guenther
* alias.c (alias_set_subset_of): Correctly handle asking
if zero is a subset of an alias set with zero child.
* tree-ssa-alias.c (have_common_aliases_p): Simplify logic.
(compute_flow_insensitive_aliasing): Correctly walk all
pointers. Do not unnecessarily union sets.
Index: gcc/alias.c
===================================================================
*** gcc/alias.c.orig 2009-01-31 21:54:41.000000000 +0100
--- gcc/alias.c 2009-05-15 13:32:24.000000000 +0200
*************** alias_set_subset_of (alias_set_type set1
*** 305,312 ****
/* Otherwise, check if set1 is a subset of set2. */
ase = get_alias_set_entry (set2);
if (ase != 0
! && (splay_tree_lookup (ase->children,
! (splay_tree_key) set1)))
return true;
return false;
}
--- 305,313 ----
/* Otherwise, check if set1 is a subset of set2. */
ase = get_alias_set_entry (set2);
if (ase != 0
! && ((ase->has_zero_child && set1 == 0)
! || splay_tree_lookup (ase->children,
! (splay_tree_key) set1)))
return true;
return false;
}
Index: gcc/tree-ssa-alias.c
===================================================================
*** gcc/tree-ssa-alias.c.orig 2009-05-15 13:32:18.000000000 +0200
--- gcc/tree-ssa-alias.c 2009-05-15 13:33:12.000000000 +0200
*************** have_common_aliases_p (bitmap tag1aliase
*** 2473,2481 ****
/* This is the old behavior of have_common_aliases_p, which is to
return false if both sets are empty, or one set is and the other
isn't. */
! if ((tag1aliases == NULL && tag2aliases != NULL)
! || (tag2aliases == NULL && tag1aliases != NULL)
! || (tag1aliases == NULL && tag2aliases == NULL))
return false;
return bitmap_intersect_p (tag1aliases, tag2aliases);
--- 2473,2479 ----
/* This is the old behavior of have_common_aliases_p, which is to
return false if both sets are empty, or one set is and the other
isn't. */
! if (tag1aliases == NULL || tag2aliases == NULL)
return false;
return bitmap_intersect_p (tag1aliases, tag2aliases);
*************** compute_flow_insensitive_aliasing (struc
*** 2563,2574 ****
tree tag1 = symbol_mem_tag (p_map1->var);
bitmap may_aliases1 = MTAG_ALIASES (tag1);
! for (j = i + 1; j < ai->num_pointers; j++)
{
struct alias_map_d *p_map2 = ai->pointers[j];
tree tag2 = symbol_mem_tag (p_map2->var);
bitmap may_aliases2 = may_aliases (tag2);
/* If the pointers may not point to each other, do nothing. */
if (!may_alias_p (p_map1->var, p_map1->set, tag2, p_map2->set, true))
continue;
--- 2561,2576 ----
tree tag1 = symbol_mem_tag (p_map1->var);
bitmap may_aliases1 = MTAG_ALIASES (tag1);
! for (j = 0; j < ai->num_pointers; j++)
{
struct alias_map_d *p_map2 = ai->pointers[j];
tree tag2 = symbol_mem_tag (p_map2->var);
bitmap may_aliases2 = may_aliases (tag2);
+ /* By convention tags don't alias themselves. */
+ if (tag1 == tag2)
+ continue;
+
/* If the pointers may not point to each other, do nothing. */
if (!may_alias_p (p_map1->var, p_map1->set, tag2, p_map2->set, true))
continue;
*************** compute_flow_insensitive_aliasing (struc
*** 2578,2595 ****
if (have_common_aliases_p (may_aliases1, may_aliases2))
continue;
! if (may_aliases2 && !bitmap_empty_p (may_aliases2))
! {
! union_alias_set_into (tag1, may_aliases2);
! }
! else
! {
! /* Since TAG2 does not have any aliases of its own, add
! TAG2 itself to the alias set of TAG1. */
! add_may_alias (tag1, tag2);
! }
}
-
}
/* We have to add all HEAP variables to all SMTs aliases bitmaps.
--- 2580,2587 ----
if (have_common_aliases_p (may_aliases1, may_aliases2))
continue;
! add_may_alias (tag1, tag2);
}
}
/* We have to add all HEAP variables to all SMTs aliases bitmaps.
++++++ pr27799-2.diff ++++++
2008-04-23 Richard Guenther
PR tree-optimization/27799
PR tree-optimization/32921
PR tree-optimization/32624
* tree-ssa-structalias.c (merge_smts_into): Only merge the
SMTs aliases and the tag itself into the solution.
* tree-ssa-alias.c (compute_flow_sensitive_aliasing): Do not
merge the points-to solution back into the SMT aliases.
(may_alias_p): Use alias_set_subset_of instead of
aliases_conflict_p. A pointer which points to
memory with alias set zero may access any variable.
* gcc.dg/tree-ssa/pr27799.c: New testcase.
* gcc.dg/tree-ssa/20030807-7.c: Remove xfail, scan vrp dump.
Index: gcc/tree-ssa-structalias.c
===================================================================
*** gcc/tree-ssa-structalias.c.orig 2009-05-15 13:32:18.000000000 +0200
--- gcc/tree-ssa-structalias.c 2009-05-15 13:33:34.000000000 +0200
*************** set_used_smts (void)
*** 4876,4883 ****
static void
merge_smts_into (tree p, bitmap solution)
{
- unsigned int i;
- bitmap_iterator bi;
tree smt;
bitmap aliases;
tree var = p;
--- 4876,4881 ----
*************** merge_smts_into (tree p, bitmap solution
*** 4888,4907 ****
smt = var_ann (var)->symbol_mem_tag;
if (smt)
{
! alias_set_type smtset = get_alias_set (TREE_TYPE (smt));
!
! /* Need to set the SMT subsets first before this
! will work properly. */
bitmap_set_bit (solution, DECL_UID (smt));
- EXECUTE_IF_SET_IN_BITMAP (used_smts, 0, i, bi)
- {
- tree newsmt = referenced_var (i);
- tree newsmttype = TREE_TYPE (newsmt);
-
- if (alias_set_subset_of (get_alias_set (newsmttype),
- smtset))
- bitmap_set_bit (solution, i);
- }
aliases = MTAG_ALIASES (smt);
if (aliases)
--- 4886,4893 ----
smt = var_ann (var)->symbol_mem_tag;
if (smt)
{
! /* The smt itself isn't included in its aliases. */
bitmap_set_bit (solution, DECL_UID (smt));
aliases = MTAG_ALIASES (smt);
if (aliases)
Index: gcc/tree-ssa-alias.c
===================================================================
*** gcc/tree-ssa-alias.c.orig 2009-05-15 13:33:12.000000000 +0200
--- gcc/tree-ssa-alias.c 2009-05-15 13:34:18.000000000 +0200
*************** compute_flow_sensitive_aliasing (struct
*** 2437,2443 ****
for (i = 0; VEC_iterate (tree, ai->processed_ptrs, i, ptr); i++)
{
struct ptr_info_def *pi = SSA_NAME_PTR_INFO (ptr);
- tree tag = symbol_mem_tag (SSA_NAME_VAR (ptr));
/* Set up aliasing information for PTR's name memory tag (if it has
one). Note that only pointers that have been dereferenced will
--- 2437,2442 ----
*************** compute_flow_sensitive_aliasing (struct
*** 2445,2462 ****
if (pi->name_mem_tag && pi->pt_vars)
{
if (!bitmap_empty_p (pi->pt_vars))
! {
! union_alias_set_into (pi->name_mem_tag, pi->pt_vars);
! union_alias_set_into (tag, pi->pt_vars);
! bitmap_clear_bit (MTAG_ALIASES (tag), DECL_UID (tag));
!
! /* It may be the case that this the tag uid was the only
! bit we had set in the aliases list, and in this case,
! we don't want to keep an empty bitmap, as this
! asserts in tree-ssa-operands.c . */
! if (bitmap_empty_p (MTAG_ALIASES (tag)))
! BITMAP_FREE (MTAG_ALIASES (tag));
! }
}
}
timevar_pop (TV_FLOW_SENSITIVE);
--- 2444,2450 ----
if (pi->name_mem_tag && pi->pt_vars)
{
if (!bitmap_empty_p (pi->pt_vars))
! union_alias_set_into (pi->name_mem_tag, pi->pt_vars);
}
}
timevar_pop (TV_FLOW_SENSITIVE);
*************** may_alias_p (tree ptr, alias_set_type me
*** 2901,2907 ****
alias_stats.tbaa_queries++;
/* If the alias sets don't conflict then MEM cannot alias VAR. */
! if (!alias_sets_conflict_p (mem_alias_set, var_alias_set))
{
alias_stats.alias_noalias++;
alias_stats.tbaa_resolved++;
--- 2889,2896 ----
alias_stats.tbaa_queries++;
/* If the alias sets don't conflict then MEM cannot alias VAR. */
! if (mem_alias_set != var_alias_set
! && !alias_set_subset_of (mem_alias_set, var_alias_set))
{
alias_stats.alias_noalias++;
alias_stats.tbaa_resolved++;
Index: gcc/testsuite/gcc.dg/tree-ssa/20030807-7.c
===================================================================
*** gcc/testsuite/gcc.dg/tree-ssa/20030807-7.c.orig 2008-08-26 09:17:01.000000000 +0200
--- gcc/testsuite/gcc.dg/tree-ssa/20030807-7.c 2009-05-15 13:33:35.000000000 +0200
***************
*** 1,5 ****
/* { dg-do compile } */
! /* { dg-options "-O2 -fdump-tree-dom3" } */
extern void abort (void);
--- 1,5 ----
/* { dg-do compile } */
! /* { dg-options "-O2 -fdump-tree-vrp1" } */
extern void abort (void);
*************** simplify_condition (cond_p)
*** 32,38 ****
c_simplify_stmt (&decl);
}
! /* There should be exactly one IF conditional. TBAA is not able to
! determine that 'decl' and 'cond' can't alias. */
! /* { dg-final { scan-tree-dump-times "if " 1 "dom3" { xfail *-*-* } } } */
! /* { dg-final { cleanup-tree-dump "dom3" } } */
--- 32,37 ----
c_simplify_stmt (&decl);
}
! /* There should be exactly one IF conditional. */
! /* { dg-final { scan-tree-dump-times "if " 1 "vrp1" } } */
! /* { dg-final { cleanup-tree-dump "vrp1" } } */
Index: gcc/testsuite/gcc.dg/tree-ssa/pr27799.c
===================================================================
*** /dev/null 1970-01-01 00:00:00.000000000 +0000
--- gcc/testsuite/gcc.dg/tree-ssa/pr27799.c 2009-05-15 13:33:35.000000000 +0200
***************
*** 0 ****
--- 1,26 ----
+ /* { dg-do link } */
+ /* { dg-options "-O2" } */
+
+ struct X { double m; int x; };
+ struct Y { int y; short d; };
+ struct YY { int y; short d; char c; };
+
+ extern void link_error (void);
+
+ int foo(struct X *x, struct Y *y)
+ {
+ x->x = 0;
+ y->y = 1;
+ if (x->x != 0)
+ link_error ();
+ }
+
+ int foo_no(struct X *x, struct YY *y)
+ {
+ x->x = 0;
+ y->y = 1;
+ if (x->x != 0)
+ link_error ();
+ }
+
+ int main() {}
++++++ pr27799-3.diff ++++++
Fix wrong alias info with missing SFT aliases for SMTs. bnc#419260
Index: gcc/tree-ssa-alias.c
===================================================================
*** gcc/tree-ssa-alias.c.orig 2009-05-15 13:34:18.000000000 +0200
--- gcc/tree-ssa-alias.c 2009-05-15 13:37:40.000000000 +0200
*************** compute_flow_insensitive_aliasing (struc
*** 2497,2502 ****
--- 2497,2503 ----
{
struct alias_map_d *v_map;
var_ann_t v_ann;
+ tree alias_var;
v_map = ai->addressable_vars[j];
var = v_map->var;
*************** compute_flow_insensitive_aliasing (struc
*** 2509,2515 ****
So, for correctness we need to include any aliased
variable here. */
! if (may_alias_p (p_map->var, p_map->set, var, v_map->set, false))
{
/* We should never have a var with subvars here, because
they shouldn't get into the set of addressable vars */
--- 2510,2520 ----
So, for correctness we need to include any aliased
variable here. */
! /* For the may_alias_p query we have to use the parent variable. */
! alias_var = (TREE_CODE (var) == STRUCT_FIELD_TAG
! ? SFT_PARENT_VAR (var) : var);
! if (may_alias_p (p_map->var, p_map->set,
! alias_var, get_alias_set (alias_var), false))
{
/* We should never have a var with subvars here, because
they shouldn't get into the set of addressable vars */
Index: gcc/testsuite/gcc.c-torture/execute/nov419260.c
===================================================================
*** /dev/null 1970-01-01 00:00:00.000000000 +0000
--- gcc/testsuite/gcc.c-torture/execute/nov419260.c 2009-05-15 13:34:27.000000000 +0200
***************
*** 0 ****
--- 1,27 ----
+ struct seq_elem {
+ struct seq_elem *next;
+ struct seq_elem *prev;
+ };
+
+ static struct seq_elem b;
+ void
+ __attribute__((noinline))
+ init (struct seq_elem *a)
+ {
+ b.prev = a;
+ b.next = 0;
+ a->prev = 0;
+ a->next = &b;
+ }
+
+ extern void abort (void);
+ int main(void)
+ {
+ struct seq_elem a;
+ init (&a);
+ struct seq_elem *ttt = a.next;
+ ttt->prev->next = ttt->next;
+ if (ttt == a.next)
+ abort ();
+ return 0;
+ }
++++++ pr36745.diff ++++++
--- /var/tmp/diff_new_pack.Sf3667/_old 2009-05-20 23:58:16.000000000 +0200
+++ /var/tmp/diff_new_pack.Sf3667/_new 2009-05-20 23:58:16.000000000 +0200
@@ -17,7 +17,7 @@
+/* { dg-do compile } */
+/* { dg-options "-O2 -fPIC" } */
+/* { dg-require-effective-target fpic } */
-+typedef long unsigned int size_t;
++typedef __SIZE_TYPE__ size_t;
+class QBasicAtomicInt
+{
+public:
++++++ pr27799.diff -> pr40141.diff ++++++
++++ 1210 lines (skipped)
++++ between gcc43/pr27799.diff
++++ and gcc43/pr40141.diff
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org
For additional commands, e-mail: opensuse-commit+help@opensuse.org