X-Git-Url: http://git.sourceforge.jp/view?p=pf3gnuchains%2Fgcc-fork.git;a=blobdiff_plain;f=gcc%2FChangeLog;h=a7fb9ea48a644dff2893457ff9faccfe81dd7b0c;hp=d2cdaa9b64ad4403b25af868a153d5ceae486920;hb=3c4ca362de0b35eb611eb18f5ed82342a67899a7;hpb=e111cfac4aadf6558f91072b0f6c2e66353a6579 diff --git a/gcc/ChangeLog b/gcc/ChangeLog index d2cdaa9b64a..a7fb9ea48a6 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,386 @@ +2011-11-16 Alan Modra + + PR rtl-optimization/51051 + PR bootstrap/51086 + * function.c (thread_prologue_and_epilogue_insns): Guard + emitting return with single_succ_p test. + +2011-11-15 Joern Rennecke + + * config/epiphany/epiphany.md (movcc): Fix code to + get mode from CMP_OP1 if CMP_OP0 is VOIDmode. + +2011-11-15 Uros Bizjak + + * config/i386/sse.md (vec_pack_trunc_v2df): Optimize sequence for AVX. + (vec_pack_sfix_trunc_v2df): Ditto. + (vec_pack_sfix_v2df): Ditto. + (vec_pack_sfix_trunc_v4df): Generate fix_truncv4dfv4si2 and + avx_vec_concatv8si patterns. + (vec_pack_sfix_v4df): Generate avx_cvtpd2dq256 and + avx_vec_concatv8si patterns. + +2011-11-15 Torvald Riegel + + * c-parser.c (c_parser_transaction_expression): Require parentheses + when parsing transaction expressions. + +2011-11-15 Tristan Gingold + + * incpath.c (get_added_cpp_dirs): New function. + * incpath.h (get_added_cpp_dirs): Declare. + * config/vms/vms-c.c (vms_c_register_includes): New function. + (vms_std_modules): New variable. + * config/vms/vms.h (TARGET_EXTRA_INCLUDES): Define. + (vms_c_register_includes): Declare. + +2011-11-15 Tristan Gingold + + * c-family/c-pragma.h (pragma_extern_prefix): Declare. + * c-family/c-pragma.c (pragma_extern_prefix): Make it public. + * config/vms/vms-c.c (saved_extern_prefix): New variable. + (vms_pragma_extern_prefix): New function. + (vms_c_register_pragma): Register vms_pragma_extern_prefix. + +2011-11-15 Georg-Johann Lay + + PR target/49868 + * config/avr/avr.h (ADDR_SPACE_PGM): New address spaces. + (REGISTER_TARGET_PRAGMAS): New define. + * config/avr/avr-protos.h (avr_mem_pgm_p): New. + (avr_load_libgcc_p): New. + (avr_register_target_pragmas): New. + (asm_output_external_libcall): Remove. + (avr_log_t): Add field "progmem". Order alphabetically. + * config/avr/avr-log.c (avr_log_set_avr_log): Set avr_log.progmem. + * config/avr/avr-c.c (langhooks.h): New include. + (avr_register_target_pragmas): New function. Register address + space __pgm. + (avr_cpu_cpp_builtins): Add built-in define __PGM. + + * config/avr/avr.c: Include "c-family/c-common.h". + (TARGET_LEGITIMATE_ADDRESS_P): Remove define. + (TARGET_LEGITIMIZE_ADDRESS): Remove define. + (TARGET_ADDR_SPACE_SUBSET_P): Define to... + (avr_addr_space_subset_p): ...this new static function. + (TARGET_ADDR_SPACE_CONVERT): Define to... + (avr_addr_space_convert): ...this new static function. + (TARGET_ADDR_SPACE_ADDRESS_MODE): Define to... + (avr_addr_space_address_mode): ...this new static function. + (TARGET_ADDR_SPACE_POINTER_MODE): Define to... + (avr_addr_space_pointer_mode): ...this new static function. + (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Define to... + (avr_addr_space_legitimate_address_p): ...this new static function. + (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Define to... + (avr_addr_space_legitimize_address): ...this new static function. + (avr_mode_code_base_reg_class): Handle address spaces. + (avr_regno_mode_code_ok_for_base_p): Ditto. + (lpm_addr_reg_rtx, lpm_reg_rtx, all_regs_rtx): New static variables. + (avr_option_override): Initialize them. + (output_reload_in_const): Use all_regs_rtx. Fix signedness of loop + variables. + (avr_pgm_segment): New static function. + (avr_decl_pgm_p, avr_mem_pgm_p): New static functions. + (avr_out_lpm, avr_out_lpm_no_lpmx): New static functions. + (output_movqi, output_movhi, output_movsisf, avr_out_movpsi): Call + avr_out_lpm to handle loads from progmem. + (avr_load_libgcc_p): New static function. + (avr_progmem_p): Test if decl is in flash. + (avr_pgm_pointer_const_p): New static function. + (avr_nonconst_pointer_addrspace): New static function. + (avr_pgm_check_var_decl): New static function. + (avr_insert_attributes): Use it. Change error message to report + cause (progmem or address space) when code wants to write to flash. + (avr_section_type_flags): Unset section flag SECTION_BSS for + data in progmem. + + * config/avr/predicates.md (nop_general_operand): New predicate. + (nox_general_operand): New predicate. + * config/avr/avr.md (LPM_REGNO): New define_constant. + (load_libgcc): New expander. + (*load..libgcc): New insn. + (mov): Handle loads from non-generic AS. + (movmemhi): Ditto. Propagate address space information to newly + created MEM. + (movqi_insn, *movhi, *movpsi, *movsi, *movsf): Change predicate #1 + to nox_general_operand. + (ashrqi3, ashrhi3, ashrsi3): Change predicate #1 to + nop_general_operand. + (ashlqi3, *ashlqi3, ashlhi3, ashlsi3): Ditto. + (lshrqi3, *lshrqi3, lshrhi3, lshrsi3): Ditto. + (split-lpmx): New split. + (*ashlhi3_const, *ashlsi3_const, *ashrhi3_const, *ashrsi3_const, + *lshrhi3_const, *lshrsi3_const): Indent, unquote C. + +2011-11-15 Maxim Kuvyrkov + + * ipa-cp.c (ipa_value_from_jfunc): Make global. + (ipa_cst_from_jfunc): Remove, use ipa_value_from_jfunc instead. + (get_indirect_edge_target): Rename, make global. + (devirtualization_time_bonus, estimate_local_effects,) + (ipcp_discover_new_direct_edges): Update. + * ipa-inline-analysis.c (evaluate_conditions_for_edge): + Generalize to also handle types. Rename to ... + (evaluate_properties_for_edge): Use instead of + evaluate_conditions_for_edge. + (estimate_edge_devirt_benefit): New function. + (estimate_calls_size_and_time): Use it. + (estimate_node_size_and_time, estimate_ipcp_clone_size_and_time,) + (inline_merge_summary): Update. + (do_estimate_edge_time, do_estimate_edge_growth): Update. Calculate + parameter information at the call site and pass it on to subroutines. + * tree-inline.c (estimate_num_insns): Distinguish between direct and + indirect calls. + (init_inline_once): Set size and time costs or indirect calls. + * tree-inline.h (eni_weights): Add indirect_call_cost. + +2011-11-15 Tom de Vries + + PR tree-optimization/51005 + * tree-ssa-tail-merge.c (delete_basic_block_same_succ): Rename to + mark_basic_block_deleted. + (update_worklist): Inline purge_bbs. + (purge_bbs, unlink_virtual_phi, update_vuses, vop_at_entry) + (delete_block_update_dominator_info): Remove. + (replace_block_by): Remove update_vops parameter. Partially evaluate + for update_vops == false. + (apply_clusters): Remove update_vops parameter. Remove update_vops + argument in replace_block_by call. + (update_debug_stmts): Remove MAY_HAVE_DEBUG_STMTS test. + (tail_merge_optimize): Remove update_vops argument to apply_clusters. + Remove call to purge_bbs. Add calls to calculate_dominance_info and + free_dominance_info. Add MAY_HAVE_DEBUG_STMTS before calling + update_debug_stmts. Mark vop var for renaming, if necessary. + +2011-11-15 Bernd Schmidt + + PR rtl-optimization/51051 + * cfgrtl.c (cfg_layout_can_merge_blocks_p): Return FALSE if the + move would cause fallthrough into the exit block. + +2011-11-14 Richard Henderson + + * config/rs6000/rs6000.c (emit_load_locked): Assert the mode is + handled. + (emit_store_conditional): Likewise. + (rs6000_pre_atomic_barrier, rs6000_post_atomic_barrier): New. + (rs6000_adjust_atomic_subword): New. + (rs6000_mask_atomic_subword, rs6000_finish_atomic_subword): New. + (rs6000_expand_atomic_op): Rename from rs6000_emit_sync; rewrite + for pre-reload expansion. + (rs6000_split_compare_and_swap, rs6000_split_compare_and_swapqhi, + rs6000_expand_compare_and_swapqhi): Merge into ... + (rs6000_expand_atomic_compare_and_swap): ... here. New function. + rs6000_split_lock_test_and_set; expand immediately. Handle + QImode and HImode. + * config/rs6000/rs6000.md (UNSPEC_LWSYNC): Move and rename + from UNSPECV_LWSYNC. + * config/rs6000/sync.md (fetchopsi_constr, fetchopdi_constr): Remove. + (mem_thread_fence): New. + (hwsync): Rename from memory_barrier. + (*hwsync): Rename from *sync_internal. + (lwsync, *lwsync): Mirror hwsync implementation. + (isync): Don't reference memory. + (loadsync): New. + (atomic_load, atomic_store): New. + (ATOMIC): New mode iterator. + (load_locked): Rename from load_locked_. + (store_conditional): Rename from store_conditional_. + (sync_compare_and_swap): Remove. + (sync_compare_and_swaphi, sync_compare_and_swapqi): Remove. + (sync_compare_and_swapqhi_internal): Remove. + (sync_lock_test_and_set): Remove. + (sync_): Remove. + (*sync_si_internal, *sync_di_internal): Remove. + (sync_nand, *sync_nand_internal): Remove. + (sync_old_): Remove. + (*sync_old_si_internal): Remove. + (*sync_old_di_internal): Remove. + (sync_old_nand): Remove. + (*sync_old_nand_internal): Remove. + (sync_new_): Remove. + (*sync_new_si_internal): Remove. + (*sync_new_di_internal): Remove. + (sync_new_nand): Remove. + (*sync_new_nand_internal): Remove. + (*atomic_andsi, *atomic_anddi): Remove. + (*sync_addshort_internal, *sync_subshort_internal): Remove. + (*sync_andsi_internal, *sync_boolsi_internal): Remove. + (*sync_boolcshort_internal): Remove. + (sync_lock_release): Remove. + (atomic_compare_and_swap): New. + (atomic_exchange): New. + (atomic_, atomic_nand): New. + (atomic_fetch_, atomic_fetch_nand): New. + (atomic__fetch, atomic_nand_fetch): New. + +2011-11-14 Uros Bizjak + + * config/i386/sse.md (round2): Use register_operand for + operand 1 predicate. + (round2_sfix): Ditto. + (round2_vec_pack_sfix): Ditto for operand 1 and operand 2. + +2011-11-14 Nathan Sidwell + + * gcov.c (canonicalize_name): Protect use of S_ISLNK. + +2011-11-14 Jan Hubicka + + PR target/51126 + * config/i386/i386.c (core cost model): Correct pasto. + +2011-11-14 Uros Bizjak + + * config/i386/sse.md (round2_sfix): New expander. + (round2_vec_pack_sfix): Ditto. + (_round_sfix): Ditto. + (_round_vec_pack_sfix): Ditto. + * config/i386/builtin-types.def (V4SI_FTYPE_V4SF_ROUND, + V8SI_FTYPE_V8SF_ROUND, V4SI_FTYPE_V2DF_V2DF_ROUND, + V8SI_FTYPE_V4DF_V4DF_ROUND): New builtin types. + * config/i386/i386.c (ix86_builtins): Add + IX86_BUILTIN_{FLOORPD,CEILPD,ROUNDPD_AZ}_VEC_PACK_SFIX{,256} and + IX86_BUILTIN_{FLOORPS,CEILPS,ROUNDPS_AZ}_SFIX{,256} defines. + (bdesc_args): Add __builtin_ia32_{floorpd,ceilpd}_vec_pack_sfix{,256}, + __builtin_ia32_roundpd_az_vec_pack_sfix{,256}, + __builtin_ia32_{floorps,ceilps}_sfix{,256}and + __builtin_ia32_roundps_az_sfix{,256} descriptions. + (ix86_expand_sse_round_vec_pack_sfix): New. + (ix86_expand_args_builtin): Handle V4SI_FTYPE_V4SF_ROUND, + V8SI_FTYPE_V8SF_ROUND, V4SI_FTYPE_V2DF_V2DF_ROUND and + V8SI_FTYPE_V4DF_V4DF_ROUND types. Check last argument of + CODE_FOR_sse4_1_roundpd_vec_pack_sfix, CODE_FOR_sse4_1_roundps_sfix, + CODE_FOR_avx_roundpd_vec_pack_sfix256 and CODE_FOR_avx_roundps_sfix256. + (ix86_builtin_vectorized_function): Handle + BUILT_IN_{I,L,LL}FLOOR{,F}, BUILT_IN_{I,L,LL}CEIL{,F} and + BUILT_IN_{I,L,LL}ROUND{,F} + +2011-11-14 Jan Hubicka + + PR middle-end/50598 + * cgraph.h (varpool_externally_visible_p): Declare. + (varpool_add_new_variable): Declare. + * tree-emultls.c (get_emutls_init_templ_addr, + new_emutls_decl): Use varpool_add_new_variable. + * ipa.c (varpool_externally_visible_p): Export. + * varpool.c (varpool_add_new_variable): New function. + +2011-11-14 Zolotukhin Michael + Jan Hubicka + + * config/i386/i386.h (processor_costs): Add second dimension to + stringop_algs array. + * config/i386/i386.c (cost models): Initialize second dimension of + stringop_algs arrays. + (core_cost): New costs based on generic64 costs with updated stringop + values. + (promote_duplicated_reg): Add support for vector modes, add + declaration. + (promote_duplicated_reg_to_size): Likewise. + (processor_target): Set core costs for core variants. + (expand_set_or_movmem_via_loop_with_iter): New function. + (expand_set_or_movmem_via_loop): Enable reuse of the same iters in + different loops, produced by this function. + (emit_strset): New function. + (expand_movmem_epilogue): Add epilogue generation for bigger sizes, + use SSE-moves where possible. + (expand_setmem_epilogue): Likewise. + (expand_movmem_prologue): Likewise for prologue. + (expand_setmem_prologue): Likewise. + (expand_constant_movmem_prologue): Likewise. + (expand_constant_setmem_prologue): Likewise. + (decide_alg): Add new argument align_unknown. Fix algorithm of + strategy selection if TARGET_INLINE_ALL_STRINGOPS is set; Skip sse_loop + (decide_alignment): Update desired alignment according to chosen move + mode. + (ix86_expand_movmem): Change unrolled_loop strategy to use SSE-moves. + (ix86_expand_setmem): Likewise. + (ix86_slow_unaligned_access): Implementation of new hook + slow_unaligned_access. + * config/i386/i386.md (strset): Enable half-SSE moves. + * config/i386/sse.md (vec_dupv4si): Add expand for vec_dupv4si. + (vec_dupv2di): Add expand for vec_dupv2di. + +2011-11-14 Dimitrios Apostolou + + PR bootstrap/51094 + PR middle-end/51116 + * config/elfos.h (TARGET_ASM_INTERNAL_LABEL): Remove. + * varasm.c (default_elf_internal_label): Remove. + +2011-11-14 Kai Tietz + + * gcov.c (generate_results): Add missing semicolon and correct indent. + +2011-11-14 Ira Rosen + + PR bootstrap/51112 + * tree-vect-stmts.c (vectorizable_condition): Initialize comp_vectype. + +2011-11-14 Mingjie Xing + + * doc/invoke.texi (Wunused-result): Change @pxref{Variable Attributes} + to @pxref{Function Attributes}. + +2011-11-13 Oleg Endo + + PR target/50694 + * config/sh/sh.h (IS_LITTLE_ENDIAN_OPTION, UNSUPPORTED_SH2A): + New macros. + (DRIVER_SELF_SPECS): Use new macros to filter out unsupported options + taking the default configuration into account. + +2011-11-13 Jonathan Wakely + + * doc/install.texi (Specific): Fix anchor for + x86_64-*-solaris2.1[0-9]*. + +2011-11-13 Nathan Sidwell + + * gcov.c (source_prefix, source_length): New globals. + (flag_relative_only): Likewise. + (print_usage, options, process_args): Update. + (generate_results): Use coverage.name, check + flag_relative_only. Adjust messages. + (find_source): Check source_prefix. + (output_lines): Use coverage.name, adjust messages. + * doc/gcov.texi (Invoking Gcov): Document new options. + +2011-11-12 Jason Merrill + + PR c++/51060 + * gimplify.c (gimplify_target_expr): Add a clobber to the cleanup. + (gimplify_modify_expr): Don't try to simplify it. + +2011-11-12 Dimitrios Apostolou + + PR bootstrap/51094 + * config/elfos.h (STRING_ASM_OP): Define. + * varasm.c (default_elf_asm_output_limited_string): Use it. + + PR bootstrap/51094 + * gcc/configure.ac: Check for stpcpy declaration. + * system.h: Declare it if not. + * config.in, configure: Regenerate. + +2011-11-12 Richard Henderson + + * config/rs6000/rs6000.md (fix_truncsi2_stfiwx): Use + nonimmediate_operand for the destination. + (fixuns_truncsi2_stfiwx): Likewise. + + * builtins.c (expand_builtin_compare_and_swap): If target is const0, + don't pass the target to expand_atomic_compare_and_swap. + (expand_builtin_atomic_compare_exchange): Likewise. + + * config/sh/linux.h (TARGET_INIT_LIBFUNCS): New. + * config/sh/sh.c (sh_init_sync_libfuncs): New. + + * config/pa/pa-linux.h (TARGET_SYNC_LIBCALL): New. + * config/pa/pa.h (TARGET_SYNC_LIBCALL): New default. + * config/pa/pa.c (pa_init_libfuncs): Use init_sync_libfuncs. + 2011-11-12 Iain Sandoe PR target/45233