Wei Mi [Wed, 21 Jan 2015 21:56:14 +0000 (21:56 +0000)]
backport: re PR ipa/63970 (gcc-4_9 inlines less funcs than gcc-4_8 because of used_as_abstract_origin flag)
Backported from trunk.
2014-11-22 Jan Hubicka <hubicka@ucw.cz>
PR ipa/63970
* ipa.c (symbol_table::remove_unreachable_nodes): Mark all inline clones
as having abstract origin used.
* ipa-inline-transform.c (can_remove_node_now_p_1): Drop abstract origin check.
(clone_inlined_nodes): Copy abstract originflag.
* lto-cgraph.c (compute_ltrans_boundary): Use get_create to get abstract origin node.
Backport from mainline
gcc/
* config/nios2/nios2.c (nios2_asm_file_end): Implement
TARGET_ASM_FILE_END hook for adding .note.GNU-stack section when
needed.
(TARGET_ASM_FILE_END): Define.
Backport from mainline
libgcc/
* config/nios2/linux-unwind.h (nios2_fallback_frame_state):
Update rt_sigframe format and address for current Nios II
Linux conventions.
Tim Shen [Mon, 19 Jan 2015 23:12:37 +0000 (23:12 +0000)]
re PR libstdc++/64649 (regex_traits::lookup_classname() only works with random access iterators)
PR libstdc++/64649
Backported from mainline
2015-01-19 Tim Shen <timshen@google.com>
* include/bits/regex.tcc (regex_traits<>::lookup_collatename,
regex_traits<>::lookup_classname): Support forward iterators.
* testsuite/28_regex/traits/char/lookup_classname.cc: New testcases.
* testsuite/28_regex/traits/char/lookup_collatename.cc: New testcase.
Tim Shen [Mon, 19 Jan 2015 23:09:07 +0000 (23:09 +0000)]
re PR libstdc++/64584 (basic_regex::assign breaks *this if it throws regex_error)
PR libstdc++/64584
PR libstdc++/64585
* include/bits/regex.h (basic_regex<>::basic_regex,
basic_regex<>::assign, basic_regex<>::imbue,
basic_regex<>::swap, basic_regex<>::mark_count): Drop NFA after
imbuing basic_regex; Make assign() transactional against exception.
* testsuite/28_regex/basic_regex/assign/char/string.cc: New testcase.
* testsuite/28_regex/basic_regex/imbue/string.cc: New testcase.
Jonathan Wakely [Sun, 18 Jan 2015 16:29:57 +0000 (16:29 +0000)]
re PR libstdc++/64646 (New overloads of std::is_permutation dereference past-the-end iterator)
PR libstdc++/64646
* include/bits/stl_algo.h (__is_permutation): Also test for reaching
end of the second range.
* testsuite/25_algorithms/is_permutation/64646.cc: New.
Jakub Jelinek [Wed, 14 Jan 2015 20:24:05 +0000 (21:24 +0100)]
backport: re PR rtl-optimization/64286 (Redundant extend removal ignores vector element type)
Backported from mainline
2015-01-13 Jakub Jelinek <jakub@redhat.com>
PR rtl-optimization/64286
* ree.c (combine_reaching_defs): Move part of comment earlier,
remove !SCALAR_INT_MODE_P check.
(add_removable_extension): Don't add vector mode
extensions if all uses of the source register aren't the same
vector extensions.
Pat Haugen [Tue, 13 Jan 2015 19:17:42 +0000 (19:17 +0000)]
backport: re PR target/64358 (Wrong code for __int128 operations in powerpc64le)
Backport from mainline
2014-12-20 Segher Boessenkool <segher@kernel.crashing.org>
PR target/64358
* config/rs6000/rs6000.c (rs6000_split_logical_inner): Swap the
input operands if only the second is inverted.
* config/rs6000/rs6000.md (*boolc<mode>3_internal1 for BOOL_128):
Swap BOOL_REGS_OP1 and BOOL_REGS_OP2. Correct arguments to
rs6000_split_logical.
(*boolc<mode>3_internal2 for TI2): Swap operands[1] and operands[2].
Sebastian Huber [Fri, 9 Jan 2015 14:19:47 +0000 (14:19 +0000)]
RTEMS: Add e6500 multilibs for PowerPC
Use 32-bit instructions only since currently there is no demand for a
larger address space. Provide one multilib with FPU and AltiVec support
and one without.
Sebastian Huber [Fri, 9 Jan 2015 14:18:35 +0000 (14:18 +0000)]
RTEMS: Fix MPC8540 multilibs for PowerPC
GCC generates SPE instructions even if -msoft-float is specified.
Explicitly add -mno-spe to prevent generation of SPE instructions. This
multilib variant must not lead to a usage of the SPE.
gcc/ChangeLog
* config/rs6000/t-rtems: Add -mno-spe to soft-float multilib for
MPC8540.
Thomas Koenig [Wed, 7 Jan 2015 22:31:54 +0000 (22:31 +0000)]
backport: re PR fortran/56867 (Missing temporary with string array assignment)
2015-01-08 Thomas Koenig <tkoenig@gcc.gnu.org>
Backport from trunk
PR fortran/56867
* trans-array.c (gfc_conv_resolve_dependencies): Also check
dependencies when there may be substrings of character arrays.
2014-01-08 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/56867
* gfortran.dg/dependency_45.f90: New test.
Jason Merrill [Wed, 7 Jan 2015 15:18:05 +0000 (10:18 -0500)]
re PR c++/63657 (-Wunused-variable: warning supressed by virtual dtor)
PR c++/63657
PR c++/38958
* call.c (set_up_extended_ref_temp): Set TREE_USED on the reference
if the temporary has a non-trivial destructor.
* decl.c (poplevel): Don't look through references.
Jason Merrill [Wed, 7 Jan 2015 15:17:59 +0000 (10:17 -0500)]
re PR c++/63658 (Using class reference as template parameter causes compilation to fail)
PR c++/63658
* pt.c (convert_nontype_argument): Call convert_from_reference.
(check_instantiated_arg): Don't be confused by reference refs.
(unify): Look through reference refs on the arg, too.
* mangle.c (write_template_arg): Look through reference refs.
pa.md (decrement_and_branch_until_zero): Use `Q' constraint instead of `m' constraint.
* config/pa/pa.md (decrement_and_branch_until_zero): Use `Q' constraint
instead of `m' constraint. Likewise for unnamed movb comparison
patterns using reg_before_reload_operand predicate.
* config/pa/predicates.md (reg_before_reload_operand): Tighten
predicate to reject register index and LO_SUM DLT memory forms
after reload.
Uros Bizjak [Sat, 27 Dec 2014 15:43:59 +0000 (16:43 +0100)]
mmx.md (*vec_extractv2sf_1): Do not emit unpckhps.
* config/i386/mmx.md (*vec_extractv2sf_1): Do not emit unpckhps.
Emit movshdup for SSE3 and shufps otherwise.
(*vec_extractv2si_1): Do not emit punpckhdq and unpckhps.
Emit pshufd for SSE2 and shufps otherwise.
Janus Weil [Tue, 23 Dec 2014 10:51:32 +0000 (11:51 +0100)]
backport: re PR fortran/64244 (ICE at class.c:236 when using non_overridable)
2014-12-23 Janus Weil <janus@gcc.gnu.org>
Backport from mainline
PR fortran/64244
* resolve.c (resolve_typebound_call): New argument to pass out the
non-overridable attribute of the specific procedure.
(resolve_typebound_subroutine): Get overridable flag from
resolve_typebound_call.
2014-12-23 Janus Weil <janus@gcc.gnu.org>
Backport from mainline
PR fortran/64244
* gfortran.dg/typebound_call_26.f90: New.
Backport from mainline
2014-12-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
PR rtl-optimization/64010
* reload.c (push_reload): Before reusing a register contained
in an operand as input reload register, ensure that it is not
used in CALL_INSN_FUNCTION_USAGE.
Jakub Jelinek [Mon, 15 Dec 2014 09:46:21 +0000 (10:46 +0100)]
re PR sanitizer/64265 (r217669 broke tsan)
PR sanitizer/64265
* tsan.c (instrument_func_entry): Insert __tsan_func_entry
call on edge from entry block to single succ instead
of after labels of single succ of entry block.