From e3cc64dec20832769406aa38cde83c7dd4194bf4 Mon Sep 17 00:00:00 2001 From: Ben Cheng Date: Tue, 22 Apr 2014 13:33:12 -0700 Subject: [4.9] GCC 4.9.0 official release refresh Change-Id: Ic99a7da8b44b789a48aeec93b33e93944d6e6767 --- gcc-4.9/gcc/ChangeLog | 977 ++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 948 insertions(+), 29 deletions(-) (limited to 'gcc-4.9/gcc/ChangeLog') diff --git a/gcc-4.9/gcc/ChangeLog b/gcc-4.9/gcc/ChangeLog index 3741b54df..c0f56a156 100644 --- a/gcc-4.9/gcc/ChangeLog +++ b/gcc-4.9/gcc/ChangeLog @@ -1,3 +1,926 @@ +2014-04-22 Release Manager + + * GCC 4.9.0 released. + +2014-04-18 Richard Henderson + + * config/aarch64/aarch64.c (aarch64_register_move_cost): Pass a mode + to GET_MODE_SIZE, not a reg_class_t. + +2014-04-17 Jakub Jelinek + + PR target/60847 + Forward port from 4.8 branch + 2013-07-19 Kirill Yukhin + + * config/i386/bmiintrin.h (_blsi_u32): New. + (_blsi_u64): Ditto. + (_blsr_u32): Ditto. + (_blsr_u64): Ditto. + (_blsmsk_u32): Ditto. + (_blsmsk_u64): Ditto. + (_tzcnt_u32): Ditto. + (_tzcnt_u64): Ditto. + +2014-04-15 Bill Schmidt + + PR target/60839 + Revert the following patch + + 2014-04-02 Michael Meissner + + PR target/60735 + * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If we have + software floating point or no floating point registers, do not + allow any type in the FPRs. Eliminate a test for SPE SIMD types + in GPRs that occurs after we tested for GPRs that would never be + true. + + * config/rs6000/rs6000.md (mov_softfloat32, FMOVE64): + Rewrite tests to use TARGET_DOUBLE_FLOAT and TARGET_E500_DOUBLE, + since the FMOVE64 type is DFmode/DDmode. If TARGET_E500_DOUBLE, + specifically allow DDmode, since that does not use the SPE SIMD + instructions. + +2014-04-15 Jakub Jelinek + + PR plugins/59335 + * Makefile.in (PLUGIN_HEADERS): Add various headers that have been + added in 4.9. + +2014-04-14 Yufeng Zhang + + * doc/invoke.texi (free): Document AArch64. + +2013-04-11 Jakub Jelinek + + * DEV-PHASE: Set to prerelease. + +2014-04-11 Tobias Burnus + + PR other/59055 + * doc/bugreport.texi (Bugs): Remove nodes pointing to the + nirvana. + * doc/gcc.texi (Service): Update description in the @menu + * doc/invoke.texi (Option Summary): Remove misplaced and + duplicated @menu. + +2014-04-11 Steve Ellcey + Jakub Jelinek + + PR middle-end/60556 + * expr.c (convert_move): Use emit_store_flag_force instead of + emit_store_flag. Pass lowpart_mode instead of VOIDmode as 5th + argument to it. + +2014-04-11 Richard Biener + + PR middle-end/60797 + * varasm.c (assemble_alias): Avoid endless error reporting + recursion by setting TREE_ASM_WRITTEN. + +2014-04-11 Andreas Krebbel + + * config/s390/s390.md: Add a splitter for NOT rtx. + +2014-04-11 Jakub Jelinek + + PR rtl-optimization/60663 + * cse.c (cse_insn): Set src_volatile on ASM_OPERANDS in + PARALLEL. + +2014-04-10 Jan Hubicka + Jakub Jelinek + + PR lto/60567 + * ipa.c (function_and_variable_visibility): Copy forced_by_abi flag from + decl_node to node. + +2014-04-10 Ramana Radhakrishnan + + PR debug/60655 + * config/arm/arm.c (TARGET_CONST_NOT_OK_FOR_DEBUG_P): Define + (arm_const_not_ok_for_debug_p): Reject MINUS with SYM_REF's + ameliorating the cases where it can be. + +2014-04-09 David Edelsohn + + Revert + 2014-04-08 Pat Haugen + + * config/rs6000/sync.md (AINT mode_iterator): Move definition. + (loadsync_): Change mode. + (load_quadpti, store_quadpti): New. + (atomic_load, atomic_store): Add support for TI mode. + * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ. + * config/rs6000/predicates.md (quad_memory_operand): !TARGET_SYNC_TI. + +2014-04-09 Cong Hou + + PR testsuite/60773 + * doc/sourcebuild.texi (vect_widen_mult_si_to_di_pattern): Add + documentation. + +2014-04-08 Bill Schmidt + + * config/rs6000/rs6000.c (rs6000_expand_vector_set): Use vnand + instead of vnor to exploit possible fusion opportunity in the + future. + (altivec_expand_vec_perm_const_le): Likewise. + +2014-04-08 Pat Haugen + + * config/rs6000/sync.md (AINT mode_iterator): Move definition. + (loadsync_): Change mode. + (load_quadpti, store_quadpti): New. + (atomic_load, atomic_store): Add support for TI mode. + * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_LSQ. + +2014-04-08 Richard Sandiford + + PR target/60763 + * config/rs6000/vsx.md (vsx_xscvdpspn_scalar): Change input to DImode. + * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Update accordingly. + Use gen_rtx_REG rather than simplify_gen_subreg for op0_di. + +2014-04-08 Richard Biener + + PR middle-end/60706 + * tree-pretty-print.c (pp_double_int): For HWI32 hosts with + a 64bit widest int print double-int similar to on HWI64 hosts. + +2014-04-08 Richard Biener + + PR tree-optimization/60785 + * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Treat + default defs properly. + +2014-04-08 Nathan Sidwell + + * doc/invoke (Wnon-virtual-dtor): Update to match implementation. + (Weffc++): Likewise. + +2014-04-07 Jan Hubicka + + * ipa-devirt.c (maybe_record_node): When node is not recorded, + set completep to false rather than true. + +2014-04-07 Douglas B Rupp + + PR target/60504 + * config/arm/arm.h (ASM_PREFERRED_EH_DATA_FORMAT): Expose from + ARM_TARGET2_DWARF_FORMAT. + +2014-04-07 Charles Baylis + + PR target/60609 + * config/arm/arm.h (ASM_OUTPUT_CASE_END): Remove. + (LABEL_ALIGN_AFTER_BARRIER): Align barriers which occur after + ADDR_DIFF_VEC. + +2014-04-07 Richard Biener + + PR tree-optimization/60766 + * tree-ssa-loop-ivopts.c (cand_value_at): Compute in an unsigned type. + (may_eliminate_iv): Convert cand_value_at result to desired type. + +2014-04-07 Jason Merrill + + PR c++/60731 + * common.opt (-fno-gnu-unique): Add. + * config/elfos.h (USE_GNU_UNIQUE_OBJECT): Check it. + +2014-04-07 Kyrylo Tkachov + + * haifa-sched.c: Fix outdated function reference and minor + grammar errors in introductory comment. + +2014-04-07 Richard Biener + + PR middle-end/60750 + * tree-ssa-operands.c (maybe_add_call_vops): Also add VDEFs + for noreturn calls. + * tree-cfgcleanup.c (fixup_noreturn_call): Do not remove VDEFs. + +2014-04-06 John David Anglin + + PR debug/55794 + * config/pa/pa.c (pa_output_function_epilogue): Skip address and code + size accounting for thunks. + (pa_asm_output_mi_thunk): Use final_start_function() and + final_end_function() to output function start and end directives. + +2014-04-05 Pitchumani Sivanupandi + + * config/avr/avr-arch.h (avr_mcu_t): Add dev_attribute field to have device + specific ISA/ feature information. Remove short_sp and errata_skip ds. + Add avr_device_specific_features enum to have device specific info. + * config/avr/avr-c.c (avr_cpu_cpp_builtins): use dev_attribute to check + errata_skip. Add __AVR_ISA_RMW__ builtin macro if RMW ISA available. + * config/avr/avr-devices.c (avr_mcu_types): Update AVR_MCU macro for + updated device specific info. + * config/avr/avr-mcus.def: Merge device specific details to + dev_attribute field. + * config/avr/avr.c (avr_2word_insn_p): use dev_attribute field to check + errata_skip. + * config/avr/avr.h (AVR_HAVE_8BIT_SP): same for short sp info. + * config/avr/driver-avr.c (avr_device_to_as): Pass -mrmw option to + assembler if RMW isa supported by current device. + * config/avr/genmultilib.awk: Update as device info structure changed. + * doc/invoke.texi: Add info for __AVR_ISA_RMW__ builtin macro + +2014-04-04 Cong Hou + + PR tree-optimization/60656 + * tree-vect-stmts.c (supportable_widening_operation): + Fix a bug that elements in a vector with vect_used_by_reduction + property are incorrectly reordered when the operation on it is not + consistant with the one in reduction operation. + +2014-04-04 John David Anglin + + PR rtl-optimization/60155 + * gcse.c (record_set_data): New function. + (single_set_gcse): New function. + (gcse_emit_move_after): Use single_set_gcse instead of single_set. + (hoist_code): Likewise. + (get_pressure_class_and_nregs): Likewise. + +2014-04-04 Eric Botcazou + + * explow.c (probe_stack_range): Emit a final optimization blockage. + +2014-04-04 Anthony Green + + * config/moxie/moxie.md (zero_extendqisi2, zero_extendhisi2): Fix + typos. + +2014-04-04 Jan Hubicka + + PR ipa/59626 + * lto-cgraph.c (input_overwrite_node): Check that partitioning + flags are set only during streaming. + * ipa.c (process_references, walk_polymorphic_call_targets, + symtab_remove_unreachable_nodes): Drop bodies of always inline + after early inlining. + (symtab_remove_unreachable_nodes): Remove always_inline attribute. + +2014-04-04 Jakub Jelinek + Ramana Radhakrishnan + + PR debug/60655 + * dwarf2out.c (const_ok_for_output_1): Reject expressions + containing a NOT. + +2014-04-04 Kyrylo Tkachov + + PR bootstrap/60743 + * config/arm/cortex-a53.md (cortex_a53_fdivs): Reduce reservation + duration. + (cortex_a53_fdivd): Likewise. + +2014-04-04 Martin Jambor + + PR ipa/60640 + * cgraph.h (cgraph_clone_node): New parameter added to declaration. + Adjust all callers. + * cgraph.c (clone_of_p): Also return true if thunks match. + (verify_edge_corresponds_to_fndecl): Removed extraneous call to + cgraph_function_or_thunk_node and an obsolete comment. + * cgraphclones.c (build_function_type_skip_args): Moved upwards in the + file. + (build_function_decl_skip_args): Likewise. + (set_new_clone_decl_and_node_flags): New function. + (duplicate_thunk_for_node): Likewise. + (redirect_edge_duplicating_thunks): Likewise. + (cgraph_clone_node): New parameter args_to_skip, pass it to + redirect_edge_duplicating_thunks which is called instead of + cgraph_redirect_edge_callee. + (cgraph_create_virtual_clone): Pass args_to_skip to cgraph_clone_node, + moved setting of a lot of flags to set_new_clone_decl_and_node_flags. + +2014-04-04 Jeff Law + + PR target/60657 + * config/arm/predicates.md (const_int_I_operand): New predicate. + (const_int_M_operand): Similarly. + * config/arm/arm.md (insv_zero): Use const_int_M_operand instead of + const_int_operand. + (insv_t2, extv_reg, extzv_t2): Likewise. + (load_multiple_with_writeback): Similarly for const_int_I_operand. + (pop_multiple_with_writeback_and_return): Likewise. + (vfp_pop_multiple_with_writeback): Likewise + +2014-04-04 Richard Biener + + PR ipa/60746 + * tree-ssanames.c (make_ssa_name_fn): Fix assert. + * gimple.c (gimple_set_bb): Avoid ICEing for NULL cfun for + non-GIMPLE_LABELs. + * gimplify.h (gimple_add_tmp_var_fn): Declare. + * gimplify.c (gimple_add_tmp_var_fn): New function. + * gimple-expr.h (create_tmp_reg_fn): Declare. + * gimple-expr.c (create_tmp_reg_fn): New function. + * gimple-low.c (record_vars_into): Don't change cfun. + * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Fix + code generation without cfun. + +2014-04-04 Thomas Schwinge + + PR bootstrap/60719 + * Makefile.in (install-driver): Fix shell scripting. + +2014-04-03 Cong Hou + + PR tree-optimization/60505 + * tree-vectorizer.h (struct _stmt_vec_info): Add th field as the + threshold of number of iterations below which no vectorization will be + done. + * tree-vect-loop.c (new_loop_vec_info): + Initialize LOOP_VINFO_COST_MODEL_THRESHOLD. + * tree-vect-loop.c (vect_analyze_loop_operations): + Set LOOP_VINFO_COST_MODEL_THRESHOLD. + * tree-vect-loop.c (vect_transform_loop): + Use LOOP_VINFO_COST_MODEL_THRESHOLD. + * tree-vect-loop.c (vect_analyze_loop_2): Check the maximum number + of iterations of the loop and see if we should build the epilogue. + +2014-04-03 Richard Biener + + * tree-streamer.h (struct streamer_tree_cache_d): Add next_idx + member. + (streamer_tree_cache_create): Adjust. + * tree-streamer.c (streamer_tree_cache_add_to_node_array): Adjust + to allow optional nodes array. + (streamer_tree_cache_insert_1): Use next_idx to assign idx. + (streamer_tree_cache_append): Likewise. + (streamer_tree_cache_create): Create nodes array optionally + as specified by parameter. + * lto-streamer-out.c (create_output_block): Avoid maintaining + the node array in the writer cache. + (DFS_write_tree): Remove assertion. + (produce_asm_for_decls): Free the out decl state hash table + early. + * lto-streamer-in.c (lto_data_in_create): Adjust for + streamer_tree_cache_create prototype change. + +2014-04-03 Richard Biener + + * tree-streamer-out.c (streamer_write_chain): Do not temporarily + set TREE_CHAIN to NULL_TREE. + +2014-04-03 Richard Biener + + PR tree-optimization/60740 + * graphite-scop-detection.c (stmt_simple_for_scop_p): Iterate + over all GIMPLE_COND operands. + +2014-04-03 Nathan Sidwell + + * doc/invoke.texi (Wnon-virtual-dtor): Adjust documentation. + (Weffc++): Remove Scott's numbering, merge lists and reference + Wnon-virtual-dtor. + + c-family/ + + cp/ + * class.c (accessible_nvdtor_p): New. + (check_bases): Don't check base destructor here ... + (check_bases_and_members): ... check them here. Trigger on + Wnon-virtual-dtor flag. + (finish_struct_1): Use accessible_nvdtor_p. + + testsuite/ + * g++.dg/warn/Wnvdtor.C: Add non-polymorphic case. + * g++.dg/warn/Wnvdtor-2.C: New. + * g++.dg/warn/Wnvdtor-3.C: New. + * g++.dg/warn/Wnvdtor-4.C: New. + * g++.dg/warn/Weff1.C: Delete. + * g++.old-deja/g++.benjamin/15309-1.C: Delete. + * g++.old-deja/g++.benjamin/15309-2.C: Delete. + +2014-04-03 Nick Clifton + + * config/rl78/rl78-expand.md (movqi): Handle (SUBREG (SYMBOL_REF)) + properly. + +2014-04-03 Martin Jambor + + * ipa-cp.c (ipcp_verify_propagated_values): Also dump symtab and + mention gcc_unreachable before failing. + * ipa.c (symtab_remove_unreachable_nodes): Also print order of + removed symbols. + +2014-04-02 Jan Hubicka + + PR ipa/60659 + * ipa-devirt.c (get_polymorphic_call_info): Do not ICE on type inconsistent + code and instead mark the context inconsistent. + (possible_polymorphic_call_targets): For inconsistent contexts + return empty complete list. + +2014-04-02 Anthony Green + + * config/moxie/moxie.md (zero_extendqisi2, zero_extendhisi2) + (extendqisi2, extendhisi2): Define. + * config/moxie/moxie.h (DEFAULT_SIGNED_CHAR): Change to 0. + (WCHAR_TYPE): Change to unsigned int. + +2014-04-02 Bill Schmidt + + PR tree-optimization/60733 + * gimple-ssa-strength-reduction.c (ncd_with_phi): Change required + insertion point for PHI candidates to be the end of the feeding + block for the PHI argument. + +2014-04-02 Vladimir Makarov + + PR rtl-optimization/60650 + * lra-constraints.c (process_alt_operands): Decrease reject for + earlyclobber matching. + +2014-04-02 Andreas Krebbel + + * config/s390/s390.c (s390_expand_insv): Use GET_MODE_BITSIZE. + +2014-04-02 Ulrich Weigand + + * config/spu/spu.c (pad_bb): Do not crash when the last + insn is CODE_FOR_blockage. + +2014-04-02 Ulrich Weigand + + * config/spu/spu.md ("insv"): Fail if bitoffset+bitsize + lies outside the target mode. + +2014-04-02 Michael Meissner + + PR target/60735 + * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If we have + software floating point or no floating point registers, do not + allow any type in the FPRs. Eliminate a test for SPE SIMD types + in GPRs that occurs after we tested for GPRs that would never be + true. + + * config/rs6000/rs6000.md (mov_softfloat32, FMOVE64): + Rewrite tests to use TARGET_DOUBLE_FLOAT and TARGET_E500_DOUBLE, + since the FMOVE64 type is DFmode/DDmode. If TARGET_E500_DOUBLE, + specifically allow DDmode, since that does not use the SPE SIMD + instructions. + +2014-04-02 Richard Biener + + PR middle-end/60729 + * optabs.c (expand_abs_nojump): Honor flag_trapv only for + MODE_INTs. Properly use negv_optab. + (expand_abs): Likewise. + +2014-04-02 Richard Biener + + PR bootstrap/60719 + * Makefile.in (install-driver): Guard extra installs with special + names properly. + +2014-04-01 Michael Meissner + + * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions): + Document vec_vgbbd. + +2014-04-01 Richard Henderson + + PR target/60704 + * config/i386/i386.md (*float2_sse): Leave the second + alternative enabled before register allocation. + +2014-04-01 Chung-Lin Tang + + * config/nios2/nios2.md (unspec): Remove UNSPEC_TLS, UNSPEC_TLS_LDM. + * config/nios2/nios2.c (nios2_function_profiler): Fix addi operand + typo. + (nios2_large_got_address): Remove unneeded 'sym' parameter. + (nios2_got_address): Update nios2_large_got_address call site. + (nios2_delegitimize_address): New function. + (TARGET_DELEGITIMIZE_ADDRESS): Define to nios2_delegitimize_address. + * config/nios2/linux.h (GLIBC_DYNAMIC_LINKER): Define. + (LINK_SPEC): Specify dynamic linker using GNU_USER_DYNAMIC_LINKER. + +2014-04-01 Martin Husemann + + * config/mips/netbsd.h (TARGET_OS_CPP_BUILTINS): Define __mips_o32 + for -mabi=32. + +2014-04-01 Richard Sandiford + + PR rtl-optimization/60604 + * recog.c (general_operand): Incorporate REG_CANNOT_CHANGE_MODE_P + check from register_operand. + (register_operand): Redefine in terms of general_operand. + (nonmemory_operand): Use register_operand for the non-constant cases. + +2014-04-01 Richard Biener + + * gimple.h (struct gimple_statement_base): Align subcode to + 16 bits. + +2014-04-01 Sebastian Huber + + * doc/invoke.texi (mapp-regs): Clarify. + +2014-03-31 Ulrich Drepper + + * config/i386/avx512fintrin.h (__v32hi): Define type. + (__v64qi): Likewise. + (_mm512_set1_epi8): Define. + (_mm512_set1_epi16): Define. + (_mm512_set4_epi32): Define. + (_mm512_set4_epi64): Define. + (_mm512_set4_pd): Define. + (_mm512_set4_ps): Define. + (_mm512_setr4_epi64): Define. + (_mm512_setr4_epi32): Define. + (_mm512_setr4_pd): Define. + (_mm512_setr4_ps): Define. + (_mm512_setzero_epi32): Define. + +2014-03-31 Martin Jambor + + PR middle-end/60647 + * tree-sra.c (callsite_has_enough_arguments_p): Renamed to + callsite_arguments_match_p. Updated all callers. Also check types of + corresponding formal parameters and actual arguments. + (not_all_callers_have_enough_arguments_p) Renamed to + some_callers_have_mismatched_arguments_p. + +2014-03-31 Yuri Rumyantsev + + * tree-inline.c (copy_loops): Add missed copy of 'safelen'. + +2014-03-31 Kugan Vivekanandarajah + + PR target/60034 + * aarch64/aarch64.c (aarch64_classify_address): Fix alignment for + section anchor. + +2014-03-30 Uros Bizjak + + * config/i386/sse.md (FMAMODE_NOVF512): New mode iterator. + (fma_fmadd_): + Split out + fma_fmadd_. + Use FMAMODE_NOVF512 mode iterator. + (fma_fmsub_): Ditto. + (fma_fnmadd_): Ditto. + (fma_fnmsub_): Ditto. + (fma_fmaddsub_): + Split out + fma_fmaddsub_. + Use VF_128_256 mode iterator. + (fma_fmsubadd_): + Ditto. + +2014-03-28 Jan Hubicka + + * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Clear + static chain if needed. + +2014-03-28 Vladimir Makarov + + PR target/60697 + * lra-constraints.c (index_part_to_reg): New. + (process_address): Use it. + +2014-03-27 Jeff Law + Jakub Jelinek + + PR target/60648 + * expr.c (do_tablejump): Use simplify_gen_binary rather than + gen_rtx_{PLUS,MULT} to build up the address expression. + + * i386/i386.c (ix86_legitimize_address): Use copy_addr_to_reg to avoid + creating non-canonical RTL. + +2014-03-28 Jan Hubicka + + PR ipa/60243 + * ipa-inline.c (want_inline_small_function_p): Short circuit large + functions; reorganize to make cheap checks first. + (inline_small_functions): Do not estimate growth when dumping; + it is expensive. + * ipa-inline.h (inline_summary): Add min_size. + (growth_likely_positive): New function. + * ipa-inline-analysis.c (dump_inline_summary): Add min_size. + (set_cond_stmt_execution_predicate): Cleanup. + (estimate_edge_size_and_time): Compute min_size. + (estimate_calls_size_and_time): Likewise. + (estimate_node_size_and_time): Likewise. + (inline_update_overall_summary): Update min_size. + (do_estimate_edge_time): Likewise. + (do_estimate_edge_size): Update. + (do_estimate_edge_hints): Update. + (growth_likely_positive): New function. + +2014-03-28 Jakub Jelinek + + PR target/60693 + * config/i386/i386.c (ix86_copy_addr_to_reg): Call copy_addr_to_reg + also if addr has VOIDmode. + +2014-03-28 Kyrylo Tkachov + + * config/arm/aarch-common.c (aarch_crypto_can_dual_issue): New. + * config/arm/aarch-common-protos.h (aarch_crypto_can_dual_issue): + Declare extern. + * config/arm/cortex-a53.md: Add reservations and bypass for crypto + instructions as well as AdvancedSIMD loads. + +2014-03-28 Kyrylo Tkachov + + * config/aarch64/aarch64-simd.md (aarch64_crypto_aesv16qi): + Use crypto_aese type. + (aarch64_crypto_aesv16qi): Use crypto_aesmc type. + * config/arm/arm.md (is_neon_type): Replace crypto_aes with + crypto_aese, crypto_aesmc. Move to types.md. + * config/arm/types.md (crypto_aes): Split into crypto_aese, + crypto_aesmc. + * config/arm/iterators.md (crypto_type): Likewise. + +2014-03-28 Jan Hubicka + + * cgraph.c: Include expr.h and tree-dfa.h. + (cgraph_redirect_edge_call_stmt_to_callee): If call in noreturn; + remove LHS. + +2014-03-28 Vladimir Makarov + + PR target/60675 + * lra-assigns.c (find_hard_regno_for): Remove unavailable hard + regs from checking multi-reg pseudos. + +2014-03-28 Ramana Radhakrishnan + + * config/arm/t-aprofile (MULTILIB_MATCHES): Correct A12 rule. + +2014-03-28 Ulrich Weigand + + * config/rs6000/rs6000.c (fusion_gpr_load_p): Refuse optimization + if it would clobber the stack pointer, even temporarily. + +2014-03-28 Eric Botcazou + + * mode-switching.c: Make small adjustments to the top comment. + +2014-03-27 Michael Meissner + + * config/rs6000/constraints.md (wD constraint): New constraint to + match the constant integer to get the top DImode/DFmode out of a + vector in a VSX register. + + * config/rs6000/predicates.md (vsx_scalar_64bit): New predicate to + match the constant integer to get the top DImode/DFmode out of a + vector in a VSX register. + + * config/rs6000/rs6000-builtins.def (VBPERMQ): Add vbpermq builtin + for ISA 2.07. + + * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add + vbpermq builtins. + + * config/rs6000/rs6000.c (rs6000_debug_reg_global): If + -mdebug=reg, print value of VECTOR_ELEMENT_SCALAR_64BIT. + + * config/rs6000/vsx.md (vsx_extract_, V2DI/V2DF modes): + Optimize vec_extract of 64-bit values, where the value being + extracted is in the top word, where we can use scalar + instructions. Add direct move and store support. Combine the big + endian/little endian vector select load support into a single insn. + (vsx_extract__internal1): Likewise. + (vsx_extract__internal2): Likewise. + (vsx_extract__load): Likewise. + (vsx_extract__store): Likewise. + (vsx_extract__zero): Delete, big and little endian insns are + combined into vsx_extract__load. + (vsx_extract__one_le): Likewise. + + * config/rs6000/rs6000.h (VECTOR_ELEMENT_SCALAR_64BIT): Macro to + define the top 64-bit vector element. + + * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wD + constraint. + + * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions): + Document vec_vbpermq builtin. + + PR target/60672 + * config/rs6000/altivec.h (vec_xxsldwi): Add missing define to + enable use of xxsldwi and xxpermdi builtin functions. + (vec_xxpermdi): Likewise. + + * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions): + Document use of vec_xxsldwi and vec_xxpermdi builtins. + +2014-03-27 Vladimir Makarov + + PR rtl-optimization/60650 + * lra-assign.c (find_hard_regno_for, spill_for): Add parameter + first_p. Use it. + (find_spills_for): New. + (assign_by_spills): Pass the new parameter to find_hard_regno_for. + Spill all pseudos on the second iteration. + +2014-03-27 Marek Polacek + + PR c/50347 + * doc/extend.texi (ffs Builtins): Change unsigned types to signed + types. + +2014-03-27 Andreas Krebbel + + * config/s390/s390.c (s390_can_use_return_insn): Check for + call-saved FPRs on 31 bit. + +2014-03-27 Jakub Jelinek + + PR middle-end/60682 + * omp-low.c (lower_omp_1): For gimple_clobber_p stmts, + if they need regimplification, just drop them instead of + calling gimple_regimplify_operands on them. + +2014-03-27 Marcus Shawcroft + + PR target/60580 + * config/aarch64/aarch64.c (faked_omit_frame_pointer): Remove. + (aarch64_frame_pointer_required): Adjust logic. + (aarch64_can_eliminate): Adjust logic. + (aarch64_override_options_after_change): Adjust logic. + +2014-03-27 Dehao Chen + + * ipa-inline.c (early_inliner): Update node's inline info. + +2014-03-26 Dehao Chen + + * dojump.c (do_compare_rtx_and_jump): Sets correct probability for + compiler inserted conditional jumps for NAN float check. + +2014-03-26 Jakub Jelinek + + * ubsan.h (ubsan_create_data): Change second argument's type + to const location_t *. + * ubsan.c (ubsan_source_location): If xloc.file is NULL, set it to + _(""). + (ubsan_create_data): Change second argument to const location_t *PLOC. + Create Loc field whenever PLOC is non-NULL. + (ubsan_instrument_unreachable, ubsan_expand_null_ifn, + ubsan_build_overflow_builtin, instrument_bool_enum_load): Adjust + callers. + + PR other/59545 + * real.c (real_to_integer2): Change type of low to UHWI. + +2014-03-26 Tobias Burnus + + * gcc.c (LINK_COMMAND_SPEC): Use libcilkrts.spec for -fcilkplus. + (CILK_SELF_SPECS): New define. + (driver_self_specs): Use it. + +2014-03-26 Richard Biener + + * tree-pretty-print.c (percent_K_format): Implement special + case for LTO and its stripped down BLOCK tree. + +2014-03-26 Jakub Jelinek + + PR sanitizer/60636 + * ubsan.c (instrument_si_overflow): Instrument ABS_EXPR. + + * tree-vrp.c (simplify_internal_call_using_ranges): If only + one range is range_int_cst_p, but not both, at least optimize + addition/subtraction of 0 and multiplication by 0 or 1. + * gimple-fold.c (gimple_fold_call): Fold + IFN_UBSAN_CHECK_{ADD,SUB,MUL}. + (gimple_fold_stmt_to_constant_1): If both op0 and op1 aren't + INTEGER_CSTs, try to fold at least x * 0 and y - y. + +2014-03-26 Eric Botcazou + + PR rtl-optimization/60452 + * rtlanal.c (rtx_addr_can_trap_p_1): Fix head comment. + : Return 1 for invalid offsets from the frame pointer. + +2014-03-26 Marek Polacek + + PR c/37428 + * doc/extend.texi (C Extensions): Mention variable-length arrays in + a structure/union. + +2014-03-26 Marek Polacek + + PR c/39525 + * doc/extend.texi (Designated Inits): Describe what happens to omitted + field members. + +2014-03-26 Marek Polacek + + PR other/59545 + * ira-color.c (update_conflict_hard_regno_costs): Perform the + multiplication in unsigned type. + +2014-03-26 Chung-Ju Wu + + * doc/install.texi: Document nds32le-*-elf and nds32be-*-elf. + +2014-03-26 Chung-Ju Wu + + * doc/contrib.texi: Add myself as Andes nds32 port contributor. + +2014-03-25 Jan Hubicka + + PR ipa/60315 + * cif-code.def (UNREACHABLE) New code. + * ipa-inline.c (inline_small_functions): Skip edges to + __builtlin_unreachable. + (estimate_edge_growth): Allow edges to __builtlin_unreachable. + * ipa-inline-analysis.c (edge_set_predicate): Redirect edges with false + predicate to __bulitin_unreachable. + (set_cond_stmt_execution_predicate): Fix issue when + invert_tree_comparison returns ERROR_MARK. + * ipa-pure-const.c (propagate_pure_const, propagate_nothrow): Do not + propagate to inline clones. + * cgraph.c (verify_edge_corresponds_to_fndecl): Allow redirection + to unreachable. + * ipa-cp.c (create_specialized_node): Be ready for new node to appear. + * cgraphclones.c (cgraph_clone_node): If call destination is already + ureachable, do not redirect it back. + * tree-inline.c (fold_marked_statements): Hanlde calls becoming + unreachable. + +2014-03-25 Jan Hubicka + + * ipa-pure-const.c (propagate_pure_const, propagate_nothrow): + Do not modify inline clones. + +2014-03-25 Jakub Jelinek + + * config/i386/i386.md (general_sext_operand): New mode attr. + (addv4, subv4, mulv4): If operands[2] is CONST_INT, + don't generate (sign_extend (const_int)). + (*addv4, *subv4, *mulv4): Disallow CONST_INT_P + operands[2]. Use We constraint instead of and + predicate instead of . + (*addv4_1, *subv4_1, *mulv4_1): New insns. + * config/i386/constraints.md (We): New constraint. + * config/i386/predicates.md (x86_64_sext_operand, + sext_operand): New predicates. + +2014-03-25 Martin Jambor + + PR ipa/60600 + * ipa-cp.c (ipa_get_indirect_edge_target_1): Redirect type + inconsistent devirtualizations to __builtin_unreachable. + +2014-03-25 Marek Polacek + + PR c/35449 + * doc/extend.texi (Example of asm with clobbered asm reg): Fix typo. + +2014-03-25 Alan Lawrence + + * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Reverse + order of elements for big-endian. + +2014-03-25 Richard Biener + + PR middle-end/60635 + * gimplify-me.c (gimple_regimplify_operands): Update the + re-gimplifed stmt. + +2014-03-25 Martin Jambor + + PR ipa/59176 + * lto-cgraph.c (lto_output_node): Stream body_removed flag. + (lto_output_varpool_node): Likewise. + (input_overwrite_node): Likewise. + (input_varpool_node): Likewise. + +2014-03-25 Richard Biener + + * lto-wrapper.c (merge_and_complain): Handle OPT_fPIE like OPT_fpie. + (run_gcc): Likewise. + +2014-03-25 Jakub Jelinek + + * combine.c (simplify_compare_const): Add MODE argument. + Handle mode_width 0 as very large mode_width. + (try_combine, simplify_comparison): Adjust callers. + + * cselib.c (cselib_hash_rtx): Perform addition in unsigned + type to avoid signed integer overflow. + * explow.c (plus_constant): Likewise. + +2014-03-25 Dominik Vogt + + * doc/generic.texi: Correct typos. + 2014-03-24 Tobias Burnus * doc/invoke.texi (-flto): Expand section about @@ -206,15 +1129,12 @@ 2014-03-18 Basile Starynkevitch - * plugin.def: Improve comment for PLUGIN_INCLUDE_FILE. - * doc/plugins.texi (Plugin callbacks): Mention - PLUGIN_INCLUDE_FILE. - Italicize plugin event names in description. Explain that - PLUGIN_PRAGMAS has no sense for lto1. Explain - PLUGIN_INCLUDE_FILE. - Remind that no GCC functions should be called after - PLUGIN_FINISH. - Explain what pragmas with expansion are. + * plugin.def: Improve comment for PLUGIN_INCLUDE_FILE. + * doc/plugins.texi (Plugin callbacks): Mention PLUGIN_INCLUDE_FILE. + Italicize plugin event names in description. Explain that + PLUGIN_PRAGMAS has no sense for lto1. Explain PLUGIN_INCLUDE_FILE. + Remind that no GCC functions should be called after PLUGIN_FINISH. + Explain what pragmas with expansion are. 2014-03-18 Martin Liska @@ -450,7 +1370,7 @@ (splitters for the fop_* register patterns): Remove. (fscalexf4_i387): Rename from *fscalexf4_i387. (ldexpxf3): Use gen_floatsixf2 and gen_fscalexf4_i387. - + 2014-03-13 Jakub Jelinek PR tree-optimization/59779 @@ -471,8 +1391,7 @@ 2014-03-13 Cesar Philippidis - * lto-wrapper.c (maybe_unlink_file): Suppress diagnostic - messages. + * lto-wrapper.c (maybe_unlink_file): Suppress diagnostic messages. 2014-03-13 Jakub Jelinek @@ -870,11 +1789,11 @@ optimization levels. (run_gcc): And pass it through to the link options. -2014-03-06 Alexandre Oliva +2014-03-06 Alexandre Oliva PR debug/60381 Revert: - 2014-02-28 Alexandre Oliva + 2014-02-28 Alexandre Oliva PR debug/59992 * cselib.c (remove_useless_values): Skip to avoid quadratic behavior if the condition moved from... @@ -1084,7 +2003,7 @@ and latches. Also honor LOOPS_MAY_HAVE_MULTIPLE_LATCHES. (remove_forwarder_block): Properly update the latch of a loop. -2014-02-28 Alexandre Oliva +2014-02-28 Alexandre Oliva PR debug/59992 * cselib.c (cselib_hasher::equal): Special-case VALUE lookup. @@ -1095,14 +2014,14 @@ (cselib_finish): Release it. (dump_cselib_table): Dump it. -2014-02-28 Alexandre Oliva +2014-02-28 Alexandre Oliva PR debug/59992 * cselib.c (remove_useless_values): Skip to avoid quadratic behavior if the condition moved from... (cselib_process_insn): ... here holds. -2014-02-28 Alexandre Oliva +2014-02-28 Alexandre Oliva PR debug/57232 * var-tracking.c (vt_initialize): Apply the same condition to @@ -1377,22 +2296,22 @@ (sched_rgn_init): ... here. (schedule_region): Check for SCHED_PRESSURE_NONE earlier. -2014-02-23 David Holsgrove +2014-02-23 David Holsgrove * config/microblaze/microblaze.md: Correct ashrsi_reg / lshrsi_reg names. -2014-02-23 Edgar E. Iglesias +2014-02-23 Edgar E. Iglesias * config/microblaze/microblaze.h: Remove SECONDARY_MEMORY_NEEDED definition. -2014-02-23 David Holsgrove +2014-02-23 David Holsgrove * /config/microblaze/microblaze.c: Add microblaze_asm_output_mi_thunk, define TARGET_ASM_OUTPUT_MI_THUNK and TARGET_ASM_CAN_OUTPUT_MI_THUNK. -2014-02-23 David Holsgrove +2014-02-23 David Holsgrove * config/microblaze/predicates.md: Add cmp_op predicate. * config/microblaze/microblaze.md: Add branch_compare instruction @@ -2105,16 +3024,16 @@ * config.gcc (i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*, *-*-solaris2.9*): Use it. -2014-02-10 Nagaraju Mekala +2014-02-10 Nagaraju Mekala * config/microblaze/microblaze.md: Add movsi4_rev insn pattern. * config/microblaze/predicates.md: Add reg_or_mem_operand predicate. -2014-02-10 Nagaraju Mekala +2014-02-10 Nagaraju Mekala * config/microblaze/microblaze.c: Extend mcpu version format -2014-02-10 David Holsgrove +2014-02-10 David Holsgrove * config/microblaze/microblaze.h: Define SIZE_TYPE and PTRDIFF_TYPE. @@ -3137,7 +4056,7 @@ * README.Portability: Fix typo. -2014-01-30 David Holsgrove +2014-01-30 David Holsgrove * config/microblaze/microblaze.md(cstoresf4, cbranchsf4): Replace comparison_operator with ordered_comparison_operator. @@ -3887,7 +4806,7 @@ * config/aarch64/aarch64.md (UNSPEC_LD1): New unspec definition. (UNSPEC_ST1): Likewise. -2014-01-23 David Holsgrove +2014-01-23 David Holsgrove * config/microblaze/microblaze.md: Add trap insn and attribute @@ -3943,7 +4862,7 @@ * config/mips/mips.c (mips_reorg_process_insns): Check which asm operands have been referenced when recording LO_SUM references. -2014-01-22 David Holsgrove +2014-01-22 David Holsgrove * config/microblaze/microblaze.md: Correct bswaphi2 insn. @@ -4217,7 +5136,7 @@ (ipcp_edge_removal_hook): New function. (ipcp_driver): Register ipcp_edge_removal_hook. -2014-01-17 Andrew Pinski +2014-01-17 Andrew Pinski Steve Ellcey PR target/59462 @@ -5092,7 +6011,7 @@ one successor with a block with no successors, remove any BARRIER after the second block. -2014-01-07 Dan Xio Qiang +2014-01-07 Dan Xio Qiang * hw-doloop.c (reorg_loops): Release the bitmap obstack. -- cgit v1.2.3