summaryrefslogtreecommitdiff
path: root/debian
diff options
context:
space:
mode:
authordoko <doko@6ca36cf4-e1d1-0310-8c6f-e303bb2178ca>2015-04-03 13:57:06 +0000
committerdoko <doko@6ca36cf4-e1d1-0310-8c6f-e303bb2178ca>2015-04-03 13:57:06 +0000
commitbcfe6259606761a34e2a4925e7af93545938601f (patch)
tree16f44e8c8634c23ca79a5947be7624c41d6a4135 /debian
parentd3327883c2de0d8d59251a304a7616986e6881e5 (diff)
downloadgcc-5-bcfe6259606761a34e2a4925e7af93545938601f.tar.gz
* Update to SVN 20150403.
git-svn-id: svn://anonscm.debian.org/gcccvs/branches/sid/gcc-5@7952 6ca36cf4-e1d1-0310-8c6f-e303bb2178ca
Diffstat (limited to 'debian')
-rw-r--r--debian/changelog6
-rw-r--r--debian/patches/svn-updates.diff426
-rw-r--r--debian/rules.patch1
3 files changed, 4 insertions, 429 deletions
diff --git a/debian/changelog b/debian/changelog
index 605ee0a..930b899 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,6 +1,6 @@
-gcc-5 (5-20150401-1) UNRELEASED; urgency=medium
+gcc-5 (5-20150403-1) UNRELEASED; urgency=medium
- * Update to SVN 20150401.
+ * Update to SVN 20150403.
* Don't explicitly configure --with-gxx-include-dir and an absolute path,
so the toolchain remains relocatible. Instead, canonicalize the include
path names at runtime.
@@ -14,7 +14,7 @@ gcc-5 (5-20150401-1) UNRELEASED; urgency=medium
Instead, ignore the one differing file (gcc/ada/a-except.o) for now.
See #781457, PR ada/65618.
- -- Matthias Klose <doko@debian.org> Wed, 01 Apr 2015 11:42:38 +0200
+ -- Matthias Klose <doko@debian.org> Fri, 03 Apr 2015 15:39:41 +0200
gcc-5 (5-20150329-1) experimental; urgency=medium
diff --git a/debian/patches/svn-updates.diff b/debian/patches/svn-updates.diff
index 46b2c1a..9725770 100644
--- a/debian/patches/svn-updates.diff
+++ b/debian/patches/svn-updates.diff
@@ -15,428 +15,4 @@ LANG=C svn diff svn://gcc.gnu.org/svn/gcc/tags/gcc_5_1_0_release svn://gcc.gnu.o
LANG=C svn diff svn://gcc.gnu.org/svn/gcc/trunk@221805 svn://gcc.gnu.org/svn/gcc/trunk \
| sed -r 's,^--- (\S+)\t(\S+)(.*)$,--- a/src/\1\t\2,;s,^\+\+\+ (\S+)\t(\S+)(.*)$,+++ b/src/\1\t\2,' \
| awk '/^Index:.*\.(class|texi)/ {skip=1; next} /^Index:/ { skip=0 } skip==0'
-Index: gcc/cgraph.h
-===================================================================
---- a/src/gcc/cgraph.h (revision
-+++ b/src/gcc/cgraph.h (revision
-@@ -1319,6 +1319,8 @@
- unsigned merged : 1;
- /* True if function was created to be executed in parallel. */
- unsigned parallelized_function : 1;
-+ /* True if function is part split out by ipa-split. */
-+ unsigned split_part : 1;
-
- private:
- /* Worker for call_for_symbol_and_aliases. */
-Index: gcc/ChangeLog
-===================================================================
---- a/src/gcc/ChangeLog (revision
-+++ b/src/gcc/ChangeLog (revision
-@@ -1,3 +1,21 @@
-+2015-04-01 Max Ostapenko <m.ostapenko@partner.samsung.com>
-+
-+ PR target/65624
-+ * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_builtin): Increase
-+ args array size by one to avoid buffer overflow.
-+
-+2015-03-31 Jan Hubicka <hubicka@ucw.cz>
-+
-+ * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
-+ split_part.
-+ * ipa-inline.c (edge_badness): Add wrapper penalty.
-+ (sum_callers): Move up.
-+ (inline_small_functions): Set single_caller.
-+ * ipa-inline.h (inline_summary): Add single_caller.
-+ * ipa-split.c (split_function): Set split_part.
-+ (cgraph_node::create_clone): Do not shadow decl; copy split_part.
-+ * cgraph.h (cgraph_node): Add split_part.
-+
- 2015-03-31 Uros Bizjak <ubizjak@gmail.com>
-
- PR target/58945
-Index: gcc/testsuite/gcc.target/aarch64/pr65624.c
-===================================================================
---- a/src/gcc/testsuite/gcc.target/aarch64/pr65624.c (revision
-+++ b/src/gcc/testsuite/gcc.target/aarch64/pr65624.c (revision
-@@ -0,0 +1,15 @@
-+/* { dg-do compile } */
-+
-+#include <arm_neon.h>
-+
-+int32x4_t
-+foo (void)
-+{
-+ int32x4_t vector_int32x4;
-+ int16x4_t vector3_int16x4;
-+ int16x4_t vector4_int16x4;
-+ static int32_t buffer_int32x4[32];
-+
-+ vector_int32x4 = vld1q_s32(buffer_int32x4);
-+ return vqdmlsl_lane_s16(vector_int32x4, vector3_int16x4, vector4_int16x4, 0);
-+}
-Index: gcc/testsuite/gcc.dg/ipa/inlinehint-4.c
-===================================================================
---- a/src/gcc/testsuite/gcc.dg/ipa/inlinehint-4.c (revision
-+++ b/src/gcc/testsuite/gcc.dg/ipa/inlinehint-4.c (revision
-@@ -0,0 +1,40 @@
-+/* { dg-options "-O3 -fdump-ipa-inline-details -fno-early-inlining --param large-unit-insns=1" } */
-+/* { dg-add-options bind_pic_locally } */
-+int *hashval;
-+int *hash;
-+int hash_size;
-+
-+static int
-+lookup_slow (int val)
-+{
-+ int i = val % hash_size;
-+ while (hashval[i] && hashval[i] != val)
-+ i++;
-+ return hash[i];
-+}
-+
-+static inline int
-+lookup (int val)
-+{
-+ static int cache, cache_val;
-+ if (val == cache_val)
-+ return cache;
-+ else
-+ {
-+ cache_val = val;
-+ cache = lookup_slow (val);
-+ return cache;
-+ }
-+}
-+
-+int
-+test (int i)
-+{
-+ return lookup (i) + lookup (2 * i) + lookup (3 * i) + lookup (4 * i) +
-+ lookup (5 * i) + lookup (6 * i) + lookup (7 * i) + lookup (8 * i) +
-+ lookup (9 * i);
-+}
-+/* { dg-final { scan-ipa-dump "Wrapper penalty" "inline" } } */
-+/* { dg-final { scan-ipa-dump-not "Inlining lookup_slow to lookup" "inline" } } */
-+/* { dg-final { scan-ipa-dump "Inlining lookup to test" "inline" } } */
-+/* { dg-final { cleanup-ipa-dump "inline" } } */
-Index: gcc/testsuite/ChangeLog
-===================================================================
---- a/src/gcc/testsuite/ChangeLog (revision
-+++ b/src/gcc/testsuite/ChangeLog (revision
-@@ -1,3 +1,18 @@
-+2015-04-01 Marek Polacek <polacek@redhat.com>
-+
-+ PR c++/65554
-+ * g++.dg/cpp0x/initlist93.C: New test.
-+ * g++.dg/cpp0x/initlist94.C: New test.
-+
-+2015-04-01 Max Ostapenko <m.ostapenko@partner.samsung.com>
-+
-+ PR target/65624
-+ * gcc.target/aarch64/pr65624.c: New test.
-+
-+2015-03-31 Jan Hubicka <hubicka@ucw.cz>
-+
-+ * gcc.dg/ipa/inlinehint-4.c: New testcase.
-+
- 2015-03-31 Alex Velenko <Alex.Velenko@arm.com>
-
- * gcc.target/arm/pr45701-1.c (history_expand_line_internal): Add an
-Index: gcc/testsuite/g++.dg/cpp0x/initlist94.C
-===================================================================
---- a/src/gcc/testsuite/g++.dg/cpp0x/initlist94.C (revision
-+++ b/src/gcc/testsuite/g++.dg/cpp0x/initlist94.C (revision
-@@ -0,0 +1,13 @@
-+// PR c++/65554
-+// { dg-do compile { target c++11 } }
-+
-+typedef decltype (sizeof (int)) size_type;
-+
-+namespace std
-+{
-+template <class> class initializer_list
-+{
-+ int *_M_array;
-+ size_type _M_len;
-+};
-+}
-Index: gcc/testsuite/g++.dg/cpp0x/initlist93.C
-===================================================================
---- a/src/gcc/testsuite/g++.dg/cpp0x/initlist93.C (revision
-+++ b/src/gcc/testsuite/g++.dg/cpp0x/initlist93.C (revision
-@@ -0,0 +1,13 @@
-+// PR c++/65554
-+// { dg-do compile { target c++11 } }
-+
-+namespace std
-+{
-+template <class> class initializer_list // { dg-error "definition of std::initializer_list does not match" }
-+{
-+ int *_M_array;
-+ int _M_len;
-+};
-+}
-+
-+// { dg-prune-output "compilation terminated" }
-Index: gcc/cp/class.c
-===================================================================
---- a/src/gcc/cp/class.c (revision
-+++ b/src/gcc/cp/class.c (revision
-@@ -6891,7 +6891,7 @@
- if (f && TREE_CODE (TREE_TYPE (f)) == POINTER_TYPE)
- {
- f = next_initializable_field (DECL_CHAIN (f));
-- if (f && TREE_CODE (TREE_TYPE (f)) == INTEGER_TYPE)
-+ if (f && same_type_p (TREE_TYPE (f), size_type_node))
- ok = true;
- }
- }
-Index: gcc/cp/ChangeLog
-===================================================================
---- a/src/gcc/cp/ChangeLog (revision
-+++ b/src/gcc/cp/ChangeLog (revision
-@@ -1,3 +1,9 @@
-+2015-04-01 Marek Polacek <polacek@redhat.com>
-+
-+ PR c++/65554
-+ * class.c (finish_struct): Require that the second field of a
-+ user-defined initializer_list be of size type.
-+
- 2015-03-31 Marek Polacek <polacek@redhat.com>
-
- PR c++/65390
-Index: gcc/lto-cgraph.c
-===================================================================
---- a/src/gcc/lto-cgraph.c (revision
-+++ b/src/gcc/lto-cgraph.c (revision
-@@ -578,6 +578,7 @@
- bp_pack_enum (&bp, ld_plugin_symbol_resolution,
- LDPR_NUM_KNOWN, node->resolution);
- bp_pack_value (&bp, node->instrumentation_clone, 1);
-+ bp_pack_value (&bp, node->split_part, 1);
- streamer_write_bitpack (&bp);
- streamer_write_data_stream (ob->main_stream, section, strlen (section) + 1);
-
-@@ -1214,6 +1215,7 @@
- node->resolution = bp_unpack_enum (bp, ld_plugin_symbol_resolution,
- LDPR_NUM_KNOWN);
- node->instrumentation_clone = bp_unpack_value (bp, 1);
-+ node->split_part = bp_unpack_value (bp, 1);
- gcc_assert (flag_ltrans
- || (!node->in_other_partition
- && !node->used_from_other_partition));
-Index: gcc/ipa-inline.c
-===================================================================
---- a/src/gcc/ipa-inline.c (revision
-+++ b/src/gcc/ipa-inline.c (revision
-@@ -1088,6 +1088,7 @@
- else if (opt_for_fn (caller->decl, flag_guess_branch_prob) || caller->count)
- {
- sreal numerator, denominator;
-+ int overall_growth;
-
- numerator = (compute_uninlined_call_time (callee_info, edge)
- - compute_inlined_call_time (edge, edge_time));
-@@ -1098,9 +1099,75 @@
- else if (opt_for_fn (caller->decl, flag_branch_probabilities))
- numerator = numerator >> 11;
- denominator = growth;
-- if (callee_info->growth > 0)
-- denominator *= callee_info->growth * callee_info->growth;
-
-+ overall_growth = callee_info->growth;
-+
-+ /* Look for inliner wrappers of the form:
-+
-+ inline_caller ()
-+ {
-+ do_fast_job...
-+ if (need_more_work)
-+ noninline_callee ();
-+ }
-+ Withhout panilizing this case, we usually inline noninline_callee
-+ into the inline_caller because overall_growth is small preventing
-+ further inlining of inline_caller.
-+
-+ Penalize only callgraph edges to functions with small overall
-+ growth ...
-+ */
-+ if (growth > overall_growth
-+ /* ... and having only one caller which is not inlined ... */
-+ && callee_info->single_caller
-+ && !edge->caller->global.inlined_to
-+ /* ... and edges executed only conditionally ... */
-+ && edge->frequency < CGRAPH_FREQ_BASE
-+ /* ... consider case where callee is not inline but caller is ... */
-+ && ((!DECL_DECLARED_INLINE_P (edge->callee->decl)
-+ && DECL_DECLARED_INLINE_P (caller->decl))
-+ /* ... or when early optimizers decided to split and edge
-+ frequency still indicates splitting is a win ... */
-+ || (callee->split_part && !caller->split_part
-+ && edge->frequency
-+ < CGRAPH_FREQ_BASE
-+ * PARAM_VALUE
-+ (PARAM_PARTIAL_INLINING_ENTRY_PROBABILITY) / 100
-+ /* ... and do not overwrite user specified hints. */
-+ && (!DECL_DECLARED_INLINE_P (edge->callee->decl)
-+ || DECL_DECLARED_INLINE_P (caller->decl)))))
-+ {
-+ struct inline_summary *caller_info = inline_summaries->get (caller);
-+ int caller_growth = caller_info->growth;
-+
-+ /* Only apply the penalty when caller looks like inline candidate,
-+ and it is not called once and. */
-+ if (!caller_info->single_caller && overall_growth < caller_growth
-+ && caller_info->inlinable
-+ && caller_info->size
-+ < (DECL_DECLARED_INLINE_P (caller->decl)
-+ ? MAX_INLINE_INSNS_SINGLE : MAX_INLINE_INSNS_AUTO))
-+ {
-+ if (dump)
-+ fprintf (dump_file,
-+ " Wrapper penalty. Increasing growth %i to %i\n",
-+ overall_growth, caller_growth);
-+ overall_growth = caller_growth;
-+ }
-+ }
-+ if (overall_growth > 0)
-+ {
-+ /* Strongly preffer functions with few callers that can be inlined
-+ fully. The square root here leads to smaller binaries at average.
-+ Watch however for extreme cases and return to linear function
-+ when growth is large. */
-+ if (overall_growth < 256)
-+ overall_growth *= overall_growth;
-+ else
-+ overall_growth += 256 * 256 - 256;
-+ denominator *= overall_growth;
-+ }
-+
- badness = - numerator / denominator;
-
- if (dump)
-@@ -1109,13 +1176,15 @@
- " %f: guessed profile. frequency %f, count %"PRId64
- " caller count %"PRId64
- " time w/o inlining %f, time w inlining %f"
-- " overall growth %i (current) %i (original)\n",
-- badness.to_double (), (double)edge->frequency / CGRAPH_FREQ_BASE,
-+ " overall growth %i (current) %i (original)"
-+ " %i (compensated)\n",
-+ badness.to_double (),
-+ (double)edge->frequency / CGRAPH_FREQ_BASE,
- edge->count, caller->count,
- compute_uninlined_call_time (callee_info, edge).to_double (),
- compute_inlined_call_time (edge, edge_time).to_double (),
- estimate_growth (callee),
-- callee_info->growth);
-+ callee_info->growth, overall_growth);
- }
- }
- /* When function local profile is not available or it does not give
-@@ -1133,8 +1202,8 @@
- else
- badness = badness << nest;
- if (dump)
-- fprintf (dump_file, " %f: no profile. nest %i\n", badness.to_double (),
-- nest);
-+ fprintf (dump_file, " %f: no profile. nest %i\n",
-+ badness.to_double (), nest);
- }
- gcc_checking_assert (badness != 0);
-
-@@ -1649,6 +1718,20 @@
- && node->frequency != NODE_FREQUENCY_UNLIKELY_EXECUTED);
- }
-
-+/* Count number of callers of NODE and store it into DATA (that
-+ points to int. Worker for cgraph_for_node_and_aliases. */
-+
-+static bool
-+sum_callers (struct cgraph_node *node, void *data)
-+{
-+ struct cgraph_edge *e;
-+ int *num_calls = (int *)data;
-+
-+ for (e = node->callers; e; e = e->next_caller)
-+ (*num_calls)++;
-+ return false;
-+}
-+
- /* We use greedy algorithm for inlining of small functions:
- All inline candidates are put into prioritized heap ordered in
- increasing badness.
-@@ -1693,6 +1776,12 @@
- if (inline_account_function_p (node))
- initial_size += info->size;
- info->growth = estimate_growth (node);
-+
-+ int num_calls = 0;
-+ node->call_for_symbol_and_aliases (sum_callers, &num_calls,
-+ true);
-+ if (num_calls == 1)
-+ info->single_caller = true;
- if (dfs && dfs->next_cycle)
- {
- struct cgraph_node *n2;
-@@ -2085,20 +2174,6 @@
- inline_update_overall_summary (node);
- }
-
--/* Count number of callers of NODE and store it into DATA (that
-- points to int. Worker for cgraph_for_node_and_aliases. */
--
--static bool
--sum_callers (struct cgraph_node *node, void *data)
--{
-- struct cgraph_edge *e;
-- int *num_calls = (int *)data;
--
-- for (e = node->callers; e; e = e->next_caller)
-- (*num_calls)++;
-- return false;
--}
--
- /* Inline NODE to all callers. Worker for cgraph_for_node_and_aliases.
- DATA points to number of calls originally found so we avoid infinite
- recursion. */
-Index: gcc/ipa-inline.h
-===================================================================
---- a/src/gcc/ipa-inline.h (revision
-+++ b/src/gcc/ipa-inline.h (revision
-@@ -129,6 +129,9 @@
- /* True when function contains cilk spawn (and thus we can not inline
- into it). */
- unsigned contains_cilk_spawn : 1;
-+ /* True wen there is only one caller of the function before small function
-+ inlining. */
-+ unsigned int single_caller : 1;
-
- /* Information about function that will result after applying all the
- inline decisions present in the callgraph. Generally kept up to
-Index: gcc/ipa-split.c
-===================================================================
---- a/src/gcc/ipa-split.c (revision
-+++ b/src/gcc/ipa-split.c (revision
-@@ -1402,6 +1402,8 @@
- (vNULL, NULL, args_to_skip, !split_part_return_p, split_point->split_bbs,
- split_point->entry_bb, "part");
-
-+ node->split_part = true;
-+
- /* Let's take a time profile for splitted function. */
- node->tp_first_run = cur_node->tp_first_run + 1;
-
-Index: gcc/config/aarch64/aarch64-builtins.c
-===================================================================
---- a/src/gcc/config/aarch64/aarch64-builtins.c (revision
-+++ b/src/gcc/config/aarch64/aarch64-builtins.c (revision
-@@ -1025,7 +1025,7 @@
- aarch64_simd_builtin_datum *d =
- &aarch64_simd_builtin_data[fcode - AARCH64_SIMD_PATTERN_START];
- enum insn_code icode = d->code;
-- builtin_simd_arg args[SIMD_MAX_BUILTIN_ARGS];
-+ builtin_simd_arg args[SIMD_MAX_BUILTIN_ARGS + 1];
- int num_args = insn_data[d->code].n_operands;
- int is_void = 0;
- int k;
+
diff --git a/debian/rules.patch b/debian/rules.patch
index 4c26166..47c5af1 100644
--- a/debian/rules.patch
+++ b/debian/rules.patch
@@ -13,7 +13,6 @@ series_file ?= $(patchdir)/series
# which patches should be applied?
debian_patches = \
- svn-updates \
$(if $(with_linaro_branch),gcc-linaro) \
$(if $(with_linaro_branch),gcc-linaro-no-macros) \