rpms/gcc/F-12 gcc44-pr41371.patch, NONE, 1.1 gcc44-pr42608.patch, NONE, 1.1 .cvsignore, 1.319, 1.320 gcc.spec, 1.103, 1.104 sources, 1.326, 1.327 gcc44-max-vartrack-size.patch, 1.1, NONE
Jakub Jelinek
jakub at fedoraproject.org
Tue Jan 12 19:34:21 UTC 2010
Author: jakub
Update of /cvs/pkgs/rpms/gcc/F-12
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv30382
Modified Files:
.cvsignore gcc.spec sources
Added Files:
gcc44-pr41371.patch gcc44-pr42608.patch
Removed Files:
gcc44-max-vartrack-size.patch
Log Message:
4.4.2-24
gcc44-pr41371.patch:
var-tracking.c | 38 ++++++++++++++++++++++++++++++--------
1 file changed, 30 insertions(+), 8 deletions(-)
--- NEW FILE gcc44-pr41371.patch ---
2010-01-12 Jakub Jelinek <jakub at redhat.com>
PR debug/41371
* var-tracking.c (values_to_unmark): New variable.
(find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
values_to_unmark vector. Moved body to...
(find_loc_in_1pdv_1): ... this. Don't clear VALUE_RECRUSED_INTO,
instead queue it into values_to_unmark vector.
(vt_find_locations): Free values_to_unmark vector.
--- gcc/var-tracking.c.jj 2010-01-12 10:37:30.000000000 +0100
+++ gcc/var-tracking.c 2010-01-12 17:41:39.000000000 +0100
@@ -2252,12 +2252,18 @@ dv_changed_p (decl_or_value dv)
: DECL_CHANGED (dv_as_decl (dv)));
}
-/* Return a location list node whose loc is rtx_equal to LOC, in the
+/* Vector of VALUEs that should have VALUE_RECURSED_INTO bit cleared
+ at the end of find_loc_in_1pdv. Not a static variable in find_loc_in_1pdv
+ to avoid constant allocation/freeing of it. */
+static VEC(rtx, heap) *values_to_unmark;
+
+/* Helper function for find_loc_in_1pdv.
+ Return a location list node whose loc is rtx_equal to LOC, in the
location list of a one-part variable or value VAR, or in that of
any values recursively mentioned in the location lists. */
static location_chain
-find_loc_in_1pdv (rtx loc, variable var, htab_t vars)
+find_loc_in_1pdv_1 (rtx loc, variable var, htab_t vars)
{
location_chain node;
@@ -2285,18 +2291,33 @@ find_loc_in_1pdv (rtx loc, variable var,
{
location_chain where;
VALUE_RECURSED_INTO (node->loc) = true;
- if ((where = find_loc_in_1pdv (loc, var, vars)))
- {
- VALUE_RECURSED_INTO (node->loc) = false;
- return where;
- }
- VALUE_RECURSED_INTO (node->loc) = false;
+ VEC_safe_push (rtx, heap, values_to_unmark, node->loc);
+ if ((where = find_loc_in_1pdv_1 (loc, var, vars)))
+ return where;
}
}
return NULL;
}
+/* Return a location list node whose loc is rtx_equal to LOC, in the
+ location list of a one-part variable or value VAR, or in that of
+ any values recursively mentioned in the location lists. */
+
+static location_chain
+find_loc_in_1pdv (rtx loc, variable var, htab_t vars)
+{
+ location_chain ret;
+ unsigned int i;
+ rtx value;
+
+ ret = find_loc_in_1pdv_1 (loc, var, vars);
+ for (i = 0; VEC_iterate (rtx, values_to_unmark, i, value); i++)
+ VALUE_RECURSED_INTO (value) = false;
+ VEC_truncate (rtx, values_to_unmark, 0);
+ return ret;
+}
+
/* Hash table iteration argument passed to variable_merge. */
struct dfset_merge
{
@@ -5648,6 +5669,7 @@ vt_find_locations (void)
FOR_EACH_BB (bb)
gcc_assert (VTI (bb)->flooded);
+ VEC_free (rtx, heap, values_to_unmark);
free (bb_order);
fibheap_delete (worklist);
fibheap_delete (pending);
gcc44-pr42608.patch:
testsuite/g++.dg/template/instantiate11.C | 25 +++++++++++++++++++++++++
varasm.c | 9 +++++++--
2 files changed, 32 insertions(+), 2 deletions(-)
--- NEW FILE gcc44-pr42608.patch ---
2010-01-09 Jakub Jelinek <jakub at redhat.com>
PR c++/42608
* varasm.c (declare_weak): Add weak attribute to decl if it
doesn't have one already.
(assemble_external): Only add decls to weak_decls if they also
have weak attribute.
* g++.dg/template/instantiate11.C: New test.
--- gcc/varasm.c.jj 2009-11-09 16:38:29.000000000 +0100
+++ gcc/varasm.c 2010-01-08 13:30:12.000000000 +0100
@@ -2309,13 +2309,15 @@ assemble_external (tree decl ATTRIBUTE_U
/* We want to output annotation for weak and external symbols at
very last to check if they are references or not. */
- if (SUPPORTS_WEAK && DECL_WEAK (decl)
+ if (SUPPORTS_WEAK
+ && DECL_WEAK (decl)
/* TREE_STATIC is a weird and abused creature which is not
generally the right test for whether an entity has been
locally emitted, inlined or otherwise not-really-extern, but
for declarations that can be weak, it happens to be
match. */
- && !TREE_STATIC (decl))
+ && !TREE_STATIC (decl)
+ && lookup_attribute ("weak", DECL_ATTRIBUTES (decl)))
weak_decls = tree_cons (NULL, decl, weak_decls);
#ifdef ASM_OUTPUT_EXTERNAL
@@ -5008,6 +5010,9 @@ declare_weak (tree decl)
warning (0, "weak declaration of %q+D not supported", decl);
mark_weak (decl);
+ if (!lookup_attribute ("weak", DECL_ATTRIBUTES (decl)))
+ DECL_ATTRIBUTES (decl)
+ = tree_cons (get_identifier ("weak"), NULL, DECL_ATTRIBUTES (decl));
}
static void
--- gcc/testsuite/g++.dg/template/instantiate11.C.jj 2010-01-08 13:48:58.000000000 +0100
+++ gcc/testsuite/g++.dg/template/instantiate11.C 2010-01-08 14:18:44.000000000 +0100
@@ -0,0 +1,25 @@
+// PR c++/42608
+// { dg-do compile }
+
+template <class U, class V>
+struct A;
+
+template <class V>
+struct A<int, V>
+{
+ void f ();
+};
+
+template struct A<int, int>;
+
+int
+main ()
+{
+ A<int, int> a;
+ a.f ();
+ return 0;
+}
+
+// Make sure we get undefined reference error if
+// A<int, int>::f () isn't instantiated elsewhere.
+// { dg-final { scan-assembler-not "weak\[\n\t\]*_ZN1AIiiE1fEv" } }
Index: .cvsignore
===================================================================
RCS file: /cvs/pkgs/rpms/gcc/F-12/.cvsignore,v
retrieving revision 1.319
retrieving revision 1.320
diff -u -p -r1.319 -r1.320
--- .cvsignore 9 Jan 2010 22:06:05 -0000 1.319
+++ .cvsignore 12 Jan 2010 19:34:19 -0000 1.320
@@ -1,2 +1,2 @@
fastjar-0.97.tar.gz
-gcc-4.4.2-20100109.tar.bz2
+gcc-4.4.2-20100112.tar.bz2
Index: gcc.spec
===================================================================
RCS file: /cvs/pkgs/rpms/gcc/F-12/gcc.spec,v
retrieving revision 1.103
retrieving revision 1.104
diff -u -p -r1.103 -r1.104
--- gcc.spec 9 Jan 2010 22:06:06 -0000 1.103
+++ gcc.spec 12 Jan 2010 19:34:20 -0000 1.104
@@ -1,9 +1,9 @@
-%global DATE 20100109
-%global SVNREV 155777
+%global DATE 20100112
+%global SVNREV 155843
%global gcc_version 4.4.2
# Note, gcc_release must be integer, if you want to add suffixes to
# %{release}, append them after %{gcc_release} on Release: line.
-%global gcc_release 23
+%global gcc_release 24
%global _unpackaged_files_terminate_build 0
%global multilib_64_archs sparc64 ppc64 s390x x86_64
%if 0%{?fedora} >= 13
@@ -165,8 +165,9 @@ Patch16: gcc44-unwind-debug-hook.patch
Patch17: gcc44-pr38757.patch
Patch18: gcc44-libstdc++-docs.patch
Patch19: gcc44-ppc64-aixdesc.patch
-Patch20: gcc44-max-vartrack-size.patch
+Patch20: gcc44-pr41371.patch
Patch21: gcc44-pr42657.patch
+Patch22: gcc44-pr42608.patch
Patch1000: fastjar-0.97-segfault.patch
Patch1001: fastjar-0.97-len1.patch
@@ -475,8 +476,9 @@ which are required to compile with the G
%patch18 -p0 -b .libstdc++-docs~
%endif
%patch19 -p0 -b .ppc64-aixdesc~
-%patch20 -p0 -b .max-vartrack-size~
+%patch20 -p0 -b .pr41371~
%patch21 -p0 -b .pr42657~
+%patch22 -p0 -b .pr42608~
# This testcase doesn't compile.
rm libjava/testsuite/libjava.lang/PR35020*
@@ -1866,6 +1868,16 @@ fi
%doc rpm.doc/changelogs/libmudflap/ChangeLog*
%changelog
+* Mon Jan 12 2010 Jakub Jelinek <jakub at redhat.com> 4.4.2-24
+- update from gcc-4_4-branch
+ - PRs debug/42662, libjava/40859
+- speed up var-tracking on various KDE sources (PR debug/41371)
+- revert --param max-vartrack-size=NNNN hack
+- fix up epilogue unwinding with -fsched2-use-superblocks (PR middle-end/41883)
+- fix a -fcompare-debug failure (PR tree-optimization/42645)
+- don't make undef symbols weak just because they are known to have C++ vague
+ linkage (PR c++/42608)
+
* Sat Jan 9 2010 Jakub Jelinek <jakub at redhat.com> 4.4.2-23
- update from gcc-4_4-branch
- PRs target/42511, target/42542, target/42564
Index: sources
===================================================================
RCS file: /cvs/pkgs/rpms/gcc/F-12/sources,v
retrieving revision 1.326
retrieving revision 1.327
diff -u -p -r1.326 -r1.327
--- sources 9 Jan 2010 22:06:06 -0000 1.326
+++ sources 12 Jan 2010 19:34:20 -0000 1.327
@@ -1,2 +1,2 @@
2659f09c2e43ef8b7d4406321753f1b2 fastjar-0.97.tar.gz
-8f96c4b6c1ee1928dd5c30f999bf6d86 gcc-4.4.2-20100109.tar.bz2
+9f5b52cba2b186e3e496531b8855f060 gcc-4.4.2-20100112.tar.bz2
--- gcc44-max-vartrack-size.patch DELETED ---
More information about the scm-commits
mailing list