Uros Bizjak [Sun, 22 Feb 2015 15:29:16 +0000 (16:29 +0100)]
backport: re PR target/64113 (Gcc on Alpha: Error: No lda !gpdisp!282 was found)
Backport from mainline
2014-12-02 Uros Bizjak <ubizjak@gmail.com>
PR target/64113
* config/alpha/alpha.md (call_value_osf_tlsgd): Do not split insn
using post-reload splitter. Use peephole2 pass instead.
(call_value_osf_tlsldm): Ditto.
(TLS_CALL): New int iterator.
(tls): New int attribute.
(call_value_osf_<tls>): Merge insn pattern from call_value_osf_tlsgd
and call_value_tlsldm using TLS_CALL int iterator.
Backport from mainline
2014-10-20 Uros Bizjak <ubizjak@gmail.com>
* varasm.c (const_alias_set): Remove.
(init_varasm_once): Remove initialization of const_alias_set.
(build_constant_desc): Do not set alias set to const_alias_set.
Backport from mainline
2014-10-14 Uros Bizjak <ubizjak@gmail.com>
PR rtl-optimization/63475
* alias.c (true_dependence_1): Always use get_addr to extract
true address operands from x_addr and mem_addr. Use extracted
address operands to check for references with alignment ANDs.
Use extracted address operands with find_base_term and
base_alias_check. For noncanonicalized operands call canon_rtx with
extracted address operand.
(write_dependence_1): Ditto.
(may_alias_p): Ditto. Remove unused calls to canon_rtx.
Backport from mainline
2014-10-10 Uros Bizjak <ubizjak@gmail.com>
PR rtl-optimization/63483
* alias.c (true_dependence_1): Do not exit early for MEM_READONLY_P
references when alignment ANDs are involved.
(write_dependence_p): Ditto.
(may_alias_p): Ditto.
Backport from mainline
2013-03-26 Richard Biener <rguenther@suse.de>
* alias.c (find_base_term): Avoid redundant and not used recursion.
(base_alias_check): Get the initial base term from the caller.
(true_dependence_1): Compute and pass base terms to base_alias_check.
(write_dependence_p): Likewise.
(may_alias_p): Likewise.
Georg-Johann Lay [Fri, 20 Feb 2015 11:15:56 +0000 (11:15 +0000)]
backport: re PR target/64452 (ICE in avr-gcc when passing struct member to varargs function)
gcc/
Backport from 2015-02-20 trunk r220847.
PR target/64452
* config/avr/avr.md (pushhi_insn): New insn.
(push<mode>1): Push virtual regs in one chunk using pushhi1_insn.
gcc/testsuite/
Backport from 2015-02-20 trunk r220847.
PR target/64452
* gcc.target/avr/torture/pr64452.c: New test.
Uros Bizjak [Fri, 20 Feb 2015 07:07:00 +0000 (08:07 +0100)]
backport: ira.c (update_equiv_regs): Only call set_paradoxical_subreg for non-debug insns.
Backport from mainline
2013-09-08 Richard Sandiford <rdsandiford@googlemail.com>
* ira.c (update_equiv_regs): Only call set_paradoxical_subreg
for non-debug insns.
* lra.c (new_insn_reg): Take the containing insn as a parameter.
Only modify lra_reg_info[].biggest_mode if it's non-debug insn.
(collect_non_operand_hard_regs, add_regs_to_insn_regno_info): Update
accordingly.
testsuite/ChangeLog:
Backport from mainline
2013-09-08 Richard Sandiford <rdsandiford@googlemail.com>
libgcc/
Backported from mainline
2015-02-17 Sandra Loosemore <sandra@codesourcery.com>
* config/arm/bpabi.S (test_div_by_zero): Make label names
consistent between thumb2 and arm mode cases. Separate the
signed comparison on the high word of the numerator from the
unsigned comparison on the low word.
* config/arm/bpabi-v6m.S (test_div_by_zero): Similarly separate
signed comparison.
gcc/testsuite/
Backported from mainline
2015-02-17 Sandra Loosemore <sandra@codesourcery.com>
Mikael Morin [Fri, 13 Feb 2015 19:33:27 +0000 (19:33 +0000)]
Use the local name instead of the original name in the check for name conflicts...
Use the local name instead of the original name in the check for name conflicts
between a hosting program unit and use-associated symbols
in that program unit.
fortran/
PR fortran/63744
* module.c (check_for_ambiguous): Change argument type
from gfc_symbol to gfc_symtree. Check local (symtree) name
instead of original (symbol) name.
(read_module): Update caller.
re PR target/64580 (very high rs6000_stack_info() usage during LTO Firefox build on ppc64)
PR target/64580
Backport from mainline
* config.rs6000/rs6000.c (compute_vrsave_mask): Reverse loop order.
(rs6000_stack_info): Add assert.
(rs6000_output_savres_externs): New function, split off from...
(rs6000_output_function_prologue): ... here. Do not call it for
thunks.
Jakub Jelinek [Sun, 1 Feb 2015 21:56:03 +0000 (22:56 +0100)]
backport: re PR rtl-optimization/61058 (ICE: RTL check: expected elt 3 type 'B', have '0' (rtx barrier) in distance_agu_use_in_bb, at config/i386/i386.c:16740 with __builtin_unreachable())
Backported from mainline
2015-01-27 Jakub Jelinek <jakub@redhat.com>
PR rtl-optimization/61058
* jump.c (cleanup_barriers): Update basic block boundaries
if BLOCK_FOR_INSN is non-NULL on PREV.
* gcc.dg/pr61058.c: New test.
2013-04-16 Steven Bosscher <steven@gcc.gnu.org>
PR middle-end/43631
* jump.c (cleanup_barriers): Use reorder_insns_nobb to avoid making
the moved barrier the tail of the basic block it follows.
Thomas Koenig [Sat, 24 Jan 2015 15:20:56 +0000 (15:20 +0000)]
backport: re PR fortran/57023 (Not packing arrays with changing variable used for size)
2015-01-24 Thomas Koenig <tkoenig@netcologne.de>
Backport from trunk
PR fortran/57023
* dependency.c (callback_dummy_intent_not_int): New function.
(dummy_intent_not_in): New function.
(gfc_full_array_ref_p): Use dummy_intent_not_in.
2015-01-24 Thomas Koenig <tkoenig@netcologne.de>
Backport from trunk
PR fortran/57023
* gfortran.dg/internal_pack_15.f90: New test.
Pat Haugen [Tue, 13 Jan 2015 19:08:49 +0000 (19:08 +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].