X-Git-Url: http://git.sourceforge.jp/view?a=blobdiff_plain;f=gcc%2FChangeLog;h=e5d09425ec9c803ee06242f55e5b85846221c740;hb=70a8f5acc1afd8522b94f2baad01b7baef8d10c5;hp=d360ebec8c386dc0e09d4a84441e80954112b5b9;hpb=6fc76bb02fac69d05787ea749a9cf8230b59afed;p=pf3gnuchains%2Fgcc-fork.git diff --git a/gcc/ChangeLog b/gcc/ChangeLog index d360ebec8c3..e5d09425ec9 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,360 @@ +2010-05-16 Jan Hubicka + + * ipa-cp.c (ipcp_versionable_function_p): Walk cgraph edges instead of + function body; do not check stdarg field of struct function. + +2010-05-16 Jan Hubicka + + * cgraph.c (dump_cgraph_node): Dump versionable flag. + * cgraph.h (cgraph_local_info): Add versionable flag. + * ipa-cp.c (ipcp_analyze_node): Set versionable flag. + (ipcp_versionable_function_p): Use it. + * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream + versionable flag. + +2010-05-16 Jan Hubicka + + * cgraph.c (cgraph_clone_node): Take decl argument and insert + clone into hash when it is different from orig. + (cgraph_create_virtual_clone): Update use of cgraph_clone_node. + * cgraph.h (cgraph_clone_node): Update prototype. + * lto-cgrpah.c (lto_cgraph_encoder_new): Create body map. + (lto_cgraph_encoder_delete): Delete body map. + (lto_cgraph_encoder_size): Move to header. + (lto_cgraph_encoder_encode_body_p, + lto_set_cgraph_encoder_encode_body): New. + (lto_output_node): Do not take written_decls argument; output clone_of + pointer. + (add_node_to): Add include_body_argument; call + lto_set_cgraph_encoder_encode_body on master of the clone. + (add_references): Update use of add_node_to. + (compute_ltrans_boundary): Likewise. + (output_cgraph): Do not create written_decls bitmap. + (input_node): Take nodes argument; stream in clone_of correctly. + (input_cgraph_1): Update use of input_node. + * lto-streamer-out.c (lto_output): Use encoder info to decide + what bodies to output. + * ipa-inline.c (cgraph_clone_inlined_nodes, + cgraph_decide_recursive_inlining): Update call of cgraph_clone_node. + * lto-streamer.h (lto_cgraph_encoder_d): Add body. + (lto_cgraph_encoder_size): Define here. + (lto_cgraph_encoder_encode_body_p, lto_varpool_encoder_encode_body_p): + Declare. + +2010-05-16 Richard Guenther + + * doc/invoke.texi (-fipa-struct-reorg): Do not mention + -fipa-type-escape. + * ipa-type-escape.c (gate_type_escape_vars): Run when + -fipa-struct-reorg runs. + * opts.c (decode_options): Do not unset flag_ipa_type_escape. + * common.opt (fipa-type-escape): Remove. + +2010-05-16 Eric Botcazou + + * opts.c (handle_option): Call into LTO streamer only if ENABLE_LTO. + (decode_options): Likewise. + * Makefile.in (opts.o): Add dependency on LTO_STREAMER_H. + +2010-05-16 Jan Hubicka + + * ipa.c (function_and_variable_visibility): Also bring local all + aliases. + +2010-05-16 Richard Guenther + + * alias.c (nonoverlapping_memrefs_p): Remove use of + IPA type-escape information. + +2010-05-16 Joseph Myers + + * c-common.c (c_common_reswords): Add _Static_assert for C. + * c-parser.c (c_token_starts_declaration, + c_parser_next_token_starts_declaration, + c_parser_static_assert_declaration_no_semi, + c_parser_static_assert_declaration): New. + (c_parser_declaration_or_fndef): Add parameter static_assert_ok. + Handle static assertions if static_assert_ok. + (c_parser_external_declaration, c_parser_declaration_or_fndef, + c_parser_compound_statement_nostart, c_parser_label, + c_parser_for_statement, c_parser_objc_methodprotolist, + c_parser_omp_for_loop): All callers of + c_parser_declaration_or_fndef changed. + (c_parser_struct_declaration): Handle static assertions. + (c_parser_compound_statement_nostart): Use + c_parser_next_token_starts_declaration and + c_token_starts_declaration to detect start of declarations. + (c_parser_label, c_parser_for_statement, c_parser_omp_for_loop): + Likewise. + +2010-05-16 Anatoly Sokolov + + * config/mmix/mmix.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE, + LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros. + * config/mmix/mmix.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE, + TARGET_FUNCTION_VALUE_REGNO_P): Define. + (mmix_function_outgoing_value): Rename to... + (mmix_function_value): ...this. Make static. Add 'outgoing' argument. + (mmix_function_value_regno_p): Make static. + (mmix_libcall_value): New function. + * config/mmix/mmix-protos.h (mmix_function_outgoing_value, + mmix_function_value_regno_p): Remove declaration. + +2010-05-16 Eric Botcazou + + * tree.c (build_common_builtin_nodes): Always clear TREE_NOTHROW on + BUILT_IN_ALLOCA if stack checking is enabled. + +2010-05-16 Richard Guenther + + * var-tracking.c (vars_copy_1): Inline ... + (vars_copy): ... here. Use FOR_EACH_HTAB_ELEMENT. + (variable_union): Use FOR_EACH_HTAB_ELEMENT. Merge asserts. + (variable_merge_over_cur): Adjust. Merge asserts. + (variable_merge_over_src): Likewise. + (dataflow_set_merge): Use FOR_EACH_HTAB_ELEMENT. + (variable_post_merge_new_vals): Merge asserts. + (variable_post_merge_perm_vals): Likewise. + (find_mem_expr_in_1pdv): Likewise. + (dataflow_set_different_value): Remove. + (onepart_variable_different_p): Merge asserts. + (variable_different_p): Likewise. + (dataflow_set_different_1): Inline ... + (dataflow_set_different): ... here. Use FOR_EACH_HTAB_ELEMENT. + (emit_notes_for_differences_1): Merge asserts. + +2010-05-16 Richard Guenther + + * lto-symtab.c (lto_symtab_entry_hash): Use IDENTIFIER_HASH_VALUE. + * optabs.c (libfunc_decl_hash): Likewise. + * varasm.c (emutls_decl): Likewise. + +2010-05-16 Steven Bosscher + + * c-decl.c: Don't include gimple.h. + (merge_decls): Do not copy gimple_body. + +2010-05-15 Jason Merrill + + * c.opt: Add -fnothrow-opt. + +2010-05-15 Jan Hubicka + + * ipa-prop.c (ipa_prop_read_section): Add sanity check that node is + analyzed. + * passes.c (ipa_write_summaries): Write all analyzed nodes. + +2010-05-15 Steven Bosscher + + * vecir.h: New file with VEC primitives for tree, gimple, and rtl. + * Makefile.in: Add it. + Fix all other Makefile dependencies for changes below. + * tree.h: Include it instead of defining VEC primitives here. + * gimple.h: Likewise. + * rtl.h: Likewise. + * tree-inline.h: Inlclude vecir.h instead of gimple.h. + * except.h: Include vecir.h, break dependence on tree.h. + + * gimplify.c (append_to_statement_list_1, append_to_statement_list): + Move from here... + * tree-iterator.c: ...to here. + * tree-iterator.h: Fix file introduction comment. Add extern markers. + + * c-lex.c: Include fixed-value.h instead of rtl.h. Do not include + tm_p.h. + * c-cppbuiltin.c: Explain why debug.h and tm_p.h are included. + * c-objc-common.h: Do not include tm.h, rtl.h, insn-config.h, + integrate.h, function.h, toplev.h, tree-inline.h, ggc.h, + tree-mudflap.h, and target.h. + * c-semantics.c: Do not include except.h, ggc.h, rtl.h, timevar.h, + predict.h, tree-inline.h, gimple.h, and langhooks.h. + * c-decl.c: Do not include expr.h, ggc.h, libfuncs.h, except.h. + Add FIXME for why gimple.h is still included (should be unnecessary + since GCC 4.5 gimplification unit-at-a-time). + * c-typeck.c: Do not include rtl.h, tm_p.h, ggc.h, and gimple.h. + * c-pragma.c: Add FIXME for why function.h needs to be included just + for cfun, at front-end level. + Add note that REGISTER_TARGET_PRAGMAS should probably be a target hook. + Do not include ggc.h, but include vecprim.h for VEC(char). + * c-opts.c: Do not include tm.h, tree-inline.h, and tm_p.h. + Explain why target.h is included. + * c-omp.h: Do not include tm.h, function.h, and bitmap.h. + Explain why gimple.h is included. + * c-ppoutput.c: Do not include tm.h. + * c-common.c: Do not include gimple.h. Explain why expr.h is included. + * c-parses.c: Explain why rtl.h is included, and that this (and only + this) is also why tm.h must be included. + Do not include except.h. + * c-lang.c: Do not include ggc.h. + +2010-05-15 Uros Bizjak + + * targhooks.c (GO_IF_MODE_DEPENDENT_ADDRESS): Use CONST_CAST_RTX. + +2010-05-15 Joseph Myers + + * c-decl.c (grokfield): Allow typedefs for anonymous structs and + unions by default if those structs and unions have no tags. Do + not condition anonymous struct and unions handling on flag_iso. + Allow anonymous structs and unions for C1X. + (finish_struct): Do not diagnose lack of named fields when + anonymous structs and unions present for C1X. Accept flexible + array members in structure with anonymous structs or unions but no + directly named fields. + * doc/extend.texi (Unnamed Fields): Update. + +2010-05-15 Eric Botcazou + + * gimple.h (compare_field_offset): Rename into... + (gimple_compare_field_offset): ...this. + * gimple.c (compare_field_offset): Rename into... + (gimple_compare_field_offset): ...this. Compare the full access if + the offset is self-referential. + (gimple_types_compatible_p): Adjust for above renaming. + * lto-streamer-in.c (input_gimple_stmt): Likewise. Also compare the + DECL_NONADDRESSABLE_P flag of fields before merging them. + +2010-05-15 Nathan Froyd + + * tree.h (ctor_to_list): Delete. + * tree.c (ctor_to_list): Delete. + +2010-05-15 Jan Hubicka + + * ipa-reference.c: Include toplev.h + (is_proper_for_analysis): Only add to all_module_statics + if it is allocated. + (write_node_summary_p, stream_out_bitmap, + ipa_reference_write_optimization_summary, + ipa_reference_read_optimization_summary): New. + (struct ipa_opt_pass_d pass_ipa_reference): Add + optimization summary streaming. + * lto-cgraph.c (referenced_from_this_partition_p, + reachable_from_this_partition_p): New functions. + * tree-ssa-alias.c (ref_maybe_used_by_call_p_1, + call_may_clobber_ref_p_1): Ask ipa-reference even for public vars. + * opts.c (decode_options): Enable ipa_reference. + * Makefile.in (ipa-reference.o): Add toplev.h dependency. + * lto-streamer.h (referenced_from_this_partition_p, + reachable_from_this_partition_p): Declare. + +2010-05-15 Richard Guenther + + PR tree-optimization/44038 + * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Avoid + taking the address of a V_C_E of a constant. + +2010-05-14 Jan Hubicka + + * tree.h (memory_identifier_string): Remove. + * ipa-reference.c: Update comment; do not include gt-ipa-reference.h + (ipa_reference_global_vars_info_d): Remove statics_not_read and + statics_not_written. + (ipa_reference_optimization_summary_d): New structure. + (ipa_reference_optimization_summary_t): New type and vector. + (ipa_reference_vars_info_d): Embedd structures instead of using + pointers. + (reference_vars_to_consider): Remove out of GGC space. + (module_statics_escape): Remove. + (global_info_obstack): Rename to ... + (optimization_summary_obstack): ... this one. + (initialization_status_t): Remove. + (memory_identifier_string): Remove. + (get_reference_vars_info): Fix indenting. + (set_reference_vars_info): Likewise. + (get_reference_optimization_summary): New. + (set_reference_optimization_summary): New. + (get_global_reference_vars_info): Remove. + (ipa_reference_get_read_global): Remove. + (ipa_reference_get_written_global): Remove. + (ipa_reference_get_not_read_global): Update. + (ipa_reference_get_not_written_global): Update. + (is_proper_for_analysis): Outlaw addressable. + (propagate_bits): Update for new datastructures. + (analyze_variable): Remove. + (init_function_info): Update for new datastructures. + (clean_function_local_data): Remove. + (clean_function): Remove. + (copy_global_bitmap): Use optimizations_summary_obstack. + (duplicate_node_data): Duplicate optimization summary only. + (remove_node_data): Remove optimization summary only. + (generate_summary): Do not analyze variables; do not compute + module_statics_escape; do not prune solutions by it. + (read_write_all_from_decl): Fix typos in comments. + (propagate): Doscover readonly and nonaddressable first; + update for new datastructures; share global bitmaps. + * ipa-reference.h (ipa_reference_get_read_global, + ipa_reference_get_written_global): Remove. + * ipa-pure-const.c (check_stmt): Do not use memory_identifier_string. + * Makefile.in: Remove ipa-refereference from GT files. + +2010-05-14 Jakub Jelinek + + PR debug/44112 + * dwarf2out.c (resolve_one_addr): Check TREE_ASM_WRITTEN + for all SYMBOL_REF_DECLs. + +2010-05-14 Jan Hubicka + + * cgraph.h (ipa_discover_readonly_nonaddressable_vars): Declare. + (varpool_all_refs_explicit_p): New inline function. + * ipa-reference.c: Update comment. + (module_statics_written): Remove. + (get_static_decl): Remove. + (ipa_init): Do not initialize module_statics_written. + (analyze_function): Likewise. + (generate_summary): Likewise; do not compute module_statics_readonly + and do not update variable flags. + (propagate): Call ipa_discover_readonly_nonaddressable_vars. + * ipa.c: Inlucde flags.h + (cgraph_local_node_p): New. + (cgraph_remove_unreachable_nodes): Return early when not optimizing; + promote functions to local. + (ipa_discover_readonly_nonaddressable_vars): New function. + (function_and_variable_visibility): Use cgraph_local_node_p. + * varpool.c (varpool_finalize_decl): Set force_output for + DECL_PRESERVE_P vars. + +2010-05-14 Jan Hubicka + + * ipa.c (cgraph_remove_unreachable_nodes): Revert accidental commit. + +2010-05-14 Richard Guenther + + PR tree-optimization/44119 + * tree-ssa-pre.c (eliminate): Properly mark replacement of + a PHI node necessary. + +2010-05-14 Eric Botcazou + + * tree.h (TREE_ADDRESSABLE): Remove bogus usage for FIELD_DECL. + +2010-05-14 Jason Merrill + + PR c++/44127 + * gimple.h (enum gf_mask): Add GF_CALL_NOTHROW. + (gimple_call_set_nothrow): New. + * gimple.c (gimple_build_call_from_tree): Call it. + (gimple_call_flags): Set ECF_NOTHROW from GF_CALL_NOTHROW. + + PR c++/44127 + * gimplify.c (gimplify_seq_add_stmt): No longer static. + * gimple.h: Declare it. + * gimple.c (gimple_build_eh_filter): No ops. + +2010-05-14 Jan Hubicka + + * ipa.c (enqueue_cgraph_node): Update comment; do not re-enqueue + nodes already in queue. + (cgraph_remove_unreachable_nodes): Cleanup; fix problem with + re-enqueueing node. + +2010-05-14 Jakub Jelinek + + PR debug/44136 + * cfgexpand.c (expand_debug_expr): If non-memory op0 + has BLKmode, return NULL. + 2010-05-14 Harsha Jagasia * config.gcc: Add support for --with-cpu option for bdver1. @@ -17,39 +374,41 @@ Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed xor instead of packed double/packed integer xor for SSE and AVX when moving a zero value. - * config/i386/sse.md: Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL - to emit movaps instead of movapd/movdqa for SSE and AVX. - Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed single - logical operations i.e and, or and xor instead of packed double logical - operations for SSE and AVX. - * config/i386/i386-c.c: - (ix86_target_macros_internal): Add PROCESSOR_BDVER1. + * config/i386/sse.md: Add check for + TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movaps instead of + movapd/movdqa for SSE and AVX. + Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed + single logical operations i.e and, or and xor instead of packed double + logical operations for SSE and AVX. + * config/i386/i386-c.c (ix86_target_macros_internal): + Add PROCESSOR_BDVER1. * config/i386/driver-i386.c: Turn on -mtune=native for BDVER1. (has_fma4, has_xop): New. * config/i386/i386.c (bdver1_cost): New variable. (m_BDVER1): New macro. (m_AMD_MULTIPLE): Add m_BDVER1. (x86_tune_use_leave, x86_tune_push_memory, x86_tune_unroll_strlen, - x86_tune_deep_branch_prediction, x86_tune_use_sahf, x86_tune_movx, - x86_tune_use_simode_fiop, x86_tune_promote_qimode, - x86_tune_add_esp_8, x86_tune_tune_sub_esp_4, x86_tune_sub_esp_8, - x86_tune_integer_dfmode_moves, x86_tune_partial_reg_dependency, - x86_tune_sse_partial_reg_dependency, x86_tune_sse_unaligned_load_optimal, - x86_tune_sse_unaligned_store_optimal, x86_tune_sse_typeless_stores, - x86_tune_memory_mismatch_stall, x86_tune_use_ffreep, - x86_tune_inter_unit_moves, x86_tune_inter_unit_conversions, - x86_tune_use_bt, x86_tune_pad_returns, x86_tune_slow_imul_imm32_mem, - x86_tune_slow_imul_imm8, x86_tune_fuse_cmp_and_branch): + x86_tune_deep_branch_prediction, x86_tune_use_sahf, x86_tune_movx, + x86_tune_use_simode_fiop, x86_tune_promote_qimode, + x86_tune_add_esp_8, x86_tune_tune_sub_esp_4, x86_tune_sub_esp_8, + x86_tune_integer_dfmode_moves, x86_tune_partial_reg_dependency, + x86_tune_sse_partial_reg_dependency, + x86_tune_sse_unaligned_load_optimal, + x86_tune_sse_unaligned_store_optimal, x86_tune_sse_typeless_stores, + x86_tune_memory_mismatch_stall, x86_tune_use_ffreep, + x86_tune_inter_unit_moves, x86_tune_inter_unit_conversions, + x86_tune_use_bt, x86_tune_pad_returns, x86_tune_slow_imul_imm32_mem, + x86_tune_slow_imul_imm8, x86_tune_fuse_cmp_and_branch): Enable/disable for bdver1. (processor_target_table): Add bdver1_cost. (cpu_names): Add bdver1. (override_options): Set up PROCESSOR_BDVER1 for bdver1 entry in processor_alias_table. - (ix86_expand_vector_move_misalign): Change - TARGET_SSE_UNALIGNED_MOVE_OPTIMAL to TARGET_SSE_UNALIGNED_LOAD_OPTIMAL. - Check for TARGET_SSE_UNALIGNED_STORE_OPTIMAL. - Check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movups instead - of movupd/movdqu for SSE and AVX. + (ix86_expand_vector_move_misalign): Change. + TARGET_SSE_UNALIGNED_MOVE_OPTIMAL to TARGET_SSE_UNALIGNED_LOAD_OPTIMAL. + Check for TARGET_SSE_UNALIGNED_STORE_OPTIMAL. + Check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movups instead + of movupd/movdqu for SSE and AVX. (ix86_tune_issue_rate): Add PROCESSOR_BDVER1. (ix86_tune_adjust_cost): Add code for bdver1. (standard_sse_constant_opcode): Add check for @@ -123,7 +482,7 @@ t-mingw-w64 or t-mingw-w32 for multilib configuration. * config/i386/t-mingw-w32: New. * config/i386/t-mingw-w64 (MULTILIB_OSDIRNAMES): Change lib64 to lib. - + 2010-05-13 Martin Jambor * gimple.c (gimple_fold_obj_type_ref): Removed (a replacement moved to @@ -152,8 +511,7 @@ by SRA. * Makefile.in (dwarf2out.o): Depend on $(TREE_FLOW_H). * tree-sra.c (create_access_replacement): Call unshare_expr before - passing expr to SET_DECL_DEBUG_EXPR, and remove any SSA_NAMEs from - it. + passing expr to SET_DECL_DEBUG_EXPR, and remove any SSA_NAMEs from it. * dwarf2out.c: Include tree-flow.h. (struct var_loc_node): Rename var_loc_note field to loc, add comment. (size_of_loc_descr, output_loc_operands, output_loc_operands_raw):