X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=gcc%2FChangeLog;h=9e9ba7fcf34defb9b8380e159284bd726c7f7b3d;hb=748f7574e85b092b4e33e8e10e87e2f6d6261f9a;hp=5a4c1cdfc998fa3ad2f9fda134429de83fc07706;hpb=e194de64ac17fe46c2b939bf16b2d213dbe79ebc;p=gcc.git diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 5a4c1cdfc99..9e9ba7fcf34 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,836 @@ +2011-05-14 Tobias Burnus + + * doc/invoke.texi (-Ofast): Also enables -fstack-arrays. + +2011-05-13 Martin Jambor + + * ipa-prop.c (ipa_cst_from_jfunc): New function. + * ipa-prop.h (ipa_cst_from_jfunc): Declare. + * ipa-inline-analysis.c (evaluate_conditions_for_edge): Use it. + (evaluate_conditions_for_ipcp_clone): Removed. + (estimate_ipcp_clone_size_and_time): Accept vector of known constants. + * ipa-cp.c (ipcp_estimate_growth): Build vector of known constants. + * ipa-inline.h (estimate_ipcp_clone_size_and_time): Update. + +2011-05-13 Eric Botcazou + + * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Adjust dump message. + * regcprop.c (copyprop_hardreg_forward): Test MAY_HAVE_DEBUG_INSNS in + lieu of MAY_HAVE_DEBUG_STMTS. + * tree-cfgcleanup.c (remove_forwarder_block): Do not attempt to move + debug statements if !MAY_HAVE_DEBUG_STMTS. + +2011-05-13 Martin Thuresson + + PR gcov-profile/47793 + * libgcov.c (gcov_exit): Support relative profile paths. + * doc/invoke.texi (-fprofile-dir): Update for above change. + +2011-05-13 Richard Guenther + + * gimple.c (gimple_canonical_types_compatible_p): Do not use + type-pair caching, do not compare hashes. + +2011-05-13 Nathan Froyd + + PR middle-end/48965 + * tree-cfg.c (edge_to_cases_cleanup): Return true. + (verify_expr) [CASE_LABEL_EXPR]: Add checking. + +2011-05-13 Kai Tietz + + * gimplify.c (gimplify_expr): Make sure operand is boolified. + * tree-cfg.c (verify_gimple_assign_unary): Check for boolean + compatible type for TRUTH_NOT_EXPR. + +2011-05-13 H.J. Lu + + * config/i386/i386.c (ix86_save_reg): Change return type to bool. + (ix86_hard_regno_mode_ok): Change return value to bool. Use + can_create_pseudo_p (). + +2011-05-13 Richard Guenther + + PR lto/48978 + * gimple.c (iterative_hash_gimple_type): Revert change in + pointer target and function result and argument hashing. + +2011-05-13 Uros Bizjak + + * config/i386/i386.md (*movxf_internal): Use !can_create_pseudo (). + (*movxf_internal_nointeger): Ditto. + (*movdf_internal_rex64): Ditto. + (*movdf_internal): Ditto. + (*movdf_internal_nointeger): Ditto. + (*movsf_internal): Ditto. + (sincos splitters): Use can_create_pseudo (). + +2011-05-13 Joseph Myers + + * config/i386/i386-opts.h: New. + * gcc/config/i386/i386.c (stringop_alg, ix86_cmodel, + ix86_asm_dialect, ix86_regparm, ix86_abi, ix86_branch_cost, + ix86_section_threshold): Remove. + (ix86_handle_option): Move MAX_CODE_ALIGN define here. Handle + OPT_malign_loops_, OPT_malign_jumps_, OPT_malign_functions_ and + OPT_mbranch_cost_. + (ix86_option_override_internal): Don't decode strings for options + other than -march=, -mtune= and -mfpmath=. Don't allow for + __attribute__ uses in remaining diagnostics for options with + string arguments. Don't check for integer arguments being negative. + * gcc/config/i386/i386.h (enum stringop_alg, enum calling_abi, + enum tls_dialect, enum cmodel, enum asm_dialect): Move to i386-opts.h. + (ix86_abi, ix86_tls_dialect, ix86_cmodel, ix86_asm_dialect, + ix86_branch_cost, ix86_section_threshold): Remove. + * gcc/config/i386/i386.opt (config/i386/i386-opts.h): New + HeaderInclude. + (malign-functions=, malign-jumps=, malign-loops=): Use UInteger + but not Var. + (masm=): Use Enum and Init. + (asm_dialect): New Enum and EnumValue entries. + (mbranch-cost=): Use UInteger. + (mlarge-data-threshold=): Use UInteger and Init. + (mcmodel=): Use Enum and Init. + (cmodel): New Enum and EnumValue entries. + (mpc): Replace with separate mpc32, mpc64 and mpc80 entries. + (mpreferred-stack-boundary=, mincoming-stack-boundary=, + mregparm=): Use UInteger. + (mstringop-strategy=): Use Enum and Init. + (stringop_alg): New Enum and EnumValue entries. + (mtls-dialect=): Use Enum and Init. + (tls_dialect): New Enum and EnumValue entries. + (mabi=): Use Enum and Init. + (calling_abi): New Enum and EnumValue entries. + (mveclibabi=): Use Enum and Init. + (ix86_veclibabi): New Enum and EnumValue entries. + +2011-05-13 Nick Clifton + + * config/rx/rx.md (mov expander): Fix use of rx_legitimate_constant_p. + * config/rx/rx-protos.h (rx_legitimate_constant_p): Rename prototype. + +2011-05-13 Kai Tietz + + PR middle-end/48984 + * gimplify.c (gimplify_expr): Check for boolean_type_node instead + for BOOLEAN_TYPE for TRUTH-NOT/AND/OR/XOR. + (gimple_boolify): Check for cast for boolean_type_node instead for + BOOLEAN_TYPE. + +2011-05-13 Richard Guenther + + PR tree-optimization/48172 + * tree-vect-loop-manip.c (vect_vfa_segment_size): Avoid + multiplying by number of iterations for equal step. + (vect_create_cond_for_alias_checks): Likewise. + +2011-05-13 Andreas Schwab + + * configure.ac: Use AS_HELP_STRING throughout. + * configure: Regenerate. + +2011-05-12 H.J. Lu + + * config/i386/i386.c (ix86_save_reg): Change maybe_eh_return to bool. + (ix86_emit_restore_regs_using_mov): Likewise. + (ix86_emit_restore_sse_regs_using_mov): Likewise. + +2011-05-12 Anatoly Sokolov + + * config/sparc/sparc.h (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P, + SYMBOLIC_CONST, RTX_OK_FOR_BASE_P, RTX_OK_FOR_INDEX_P): Remove. + (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Move to... + * config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P, + RTX_OK_FOR_OLO10_P): ...here. + (sparc_mode_dependent_address_p): Use symbolic_operand instead of + SYMBOLIC_CONST. + +2011-05-12 Kai Tietz + + * gimplify.c (gimple_boolify): Re-boolify expression + arguments even if expression type is of kind BOOLEAN_TYPE. + (gimplify_boolean_expr): Removed. + (gimplify_expr): Boolify truth opcodes AND, ANDIF, OR, ORIF, + and XOR. Additional take care that we keep expression's type. + * tree-cfg.c (verify_gimple_assign_binary): Adjust check for type + of TRUTH_AND|OR|XOR_EXPR. + +2011-05-12 Jakub Jelinek + + PR tree-optimization/48975 + * tree-if-conv.c (combine_blocks): Call free_bb_predicate + on all bbs here and free and clear ifc_bbs at the end. + +2011-05-12 Richard Guenther + + * gimple.c (gtc_visit): Compare TREE_ADDRESSABLE, handle + NULLPTR_TYPE similar to VOID_TYPE. Defer type-leader lookup + until after simple checks. + (gimple_types_compatible_p): Likewise. + (iterative_hash_gimple_type): Always hash pointer targets + and function return and argument types. + (iterative_hash_canonical_type): Do not hash TYPE_QUALS, + hash TYPE_ALIGN. Do not hash TYPE_MIN/MAX_VALUE. + (gimple_canonical_types_compatible_p): Compare TREE_ADDRESSABLE, + handle NULLPTR_TYPE similar to VOID_TYPE. Handle non-aggregates + completely in the simple compare section. + (gimple_register_canonical_type): Query the cache again after + registering. + +2011-05-12 Richard Guenther + + PR tree-optimization/48172 + * tree-vect-loop-manip.c (vect_vfa_segment_size): Do not exclude + the number of iterations from the segment size calculation. + (vect_create_cond_for_alias_checks): Adjust. + +2011-05-12 Jakub Jelinek + + PR debug/48967 + * var-tracking.c (use_narrower_mode_test) : Return 1 + if validate_subreg fails. + +2011-05-12 Hariharan Sandanagobalane + + * ira.c (clarify_prohibited_class_mode_regs): Prevent the function from + accessing beyond the end of REGNO_REG_CLASS array by stopping the loop + early. + +2011-05-12 DJ Delorie + + * config/rx/rx.c (rx_builtins): New arrays - holds builtin functions. + (ADD_RX_BUILTIN1, ADD_RX_BUILTIN2, ADD_RX_BUILTIN3): Install + created builtin into rx_builtins array. + (rx_builtin_decl): New function. + (TARGET_BUITLIN_DECL): Define. Include gt-rx.h. + +2011-05-12 DJ Delorie + Nick Clifton + + * config/rx/rx.h (HAVE_PRE_DECREMENT): Fix typo. + * config/rx/rx.c (CC_FLAG_FP): Fix comment. + (rx_is_legitimate_address): Add pre-decrement and post-increment + addressing in HImode and QImode. Fix test for out of range + REG+INT addressing. + (rx_legitimate_constant_p): Rename to rx_is_legitimate_constant. + (rx_align_for_label): Test label before extracting its usage count. + (rx_adjust_insn_lengths): Fix selection of insn codes. + (TARGET_LEGITIMATE_CONSTANT_P): Use renamed function. + +2011-05-11 Jason Merrill + + * tree.c (type_hash_canon): Use struct tree_type_non_common. + +2011-05-11 Eric Botcazou + + * cfgrtl.c (commit_one_edge_insertion): Remove always-true test and + reindent the subsequent block. + +2011-05-11 Satoru Takabayashi + Paul Pluzhnikov + + * doc/install.texi (Configuration): Document --with-linker-hash-style. + * gcc.c (init_spec): Handle LINKER_HASH_STYLE. + * config.in: Add LINKER_HASH_STYLE. + * configure.ac: Add --with-linker-hash-style. + * configure: Regenerate. + +2011-05-11 Richard Guenther + + PR middle-end/48964 + * gimple.c (iterative_hash_canonical_type): Fix typo. + +2011-05-11 Uros Bizjak + + * config/i386/i386.c (legitimize_tls_address) + : Call gen_tls_dynamic_gnu2_{32,64} + expanders directly for TARGET_GNU2_TLS. Determine pic and + __tls_get_addr symbol reference here. Update call to + gen_tls_global_dynamic_{32,64} for added arguments. + : Call gen_tls_dynamic_gnu2_{32,64} + expanders directly for TARGET_GNU2_TLS. Determine + __tls_get_addr symbol reference here. Update call to + gen_tls_local_dynamic_base_{32,64} for added arguments. Attach + unique UNSPEC REG_EQUIV to libcall block. + (ix86_tls_get_addr): Declare static. + * config/i386/i386-protos.h (ix86_tls_get_addr): Remove declaration. + * config/i386/i386.md (tls_global_dynamic_32): Add operand 2 and 3. + Do not determine pic and __tls_get_addr symbol reference here. Do not + call gen_tls_dynamic_gnu2_32 for TARGET_GNU2_TLS. + (tls_local_dynamic_base_32): Ditto for operands 1 and 2. + (tls_global_dynamic_64): Add operand 2. Do not determine + __tls_get_addr symbol reference here. Do not call + gen_tls_dynamic_gnu2_64 for TARGET_GNU2_TLS here. + (tls_local_dynamic_base64): Ditto for operand 1. + +2011-05-11 Eric Botcazou + + * function.c (expand_function_start): Initialize stack_check_probe_note + only if the generic stack checking mechanism is used. + +2011-05-11 Richard Guenther + + PR tree-optimization/15256 + * tree-ssa-forwprop.c (simplify_bitwise_binary): Canonicalize + (A & B) | C, combine (A op CST1) op CST2. + (tree_ssa_forward_propagate_single_use_vars): Only bother to + visit assigns that have uses. + +2011-05-11 Nathan Froyd + + * ggc-page.c (extra_order_size_table): Use struct tree_type_non_common. + * lto-streamer-in.c (unpack_ts_type_value_fields): Rename to... + (unpack_ts_type_common_value_fields): ...this. Update comment. + (unpack_value_fields): Adjust for renaming. + (lto_input_ts_type_tree_pointers): Split into... + (lto_input_ts_type_common_tree_pointer): ...this and... + (lto_input_ts_type_non_common_tree_pointers): ...this. + (lto_input_tree_pointers): Adjust for above split. + * lto-streamer-out.c (pack_ts_type_value_fields): Rename to... + (pack_ts_type_common_value_fields): ...this. Update comment. + (lto_output_ts_type_tree_pointers): Split into... + (lto_output_ts_type_common_tree_pointers): ...this and... + (lto_output_ts_type_non_common_tree_pointers): ...this. + (lto_output_tree_pointers): Adjust for above split. + * lto-streamer.c (check_handled_ts_structures): Mark TS_TYPE_COMMON, + TS_TYPE_WITH_LANG_SPECIFIC, and TS_TYPE_NON_COMMON as handled. + * stor-layout.c (vector_type_mode): Adjust location of mode field. + * tree.h (MARK_TS_TYPE_COMMON, MARK_TS_TYPE_WITH_LANG_SPECIFIC): + Define. + (struct tree_type): Split into... + (struct tree_type_common: ...this and... + (struct tree_type_with_lang_specific): ...this and... + (struct tree_type_non_common): ...this. Adjust accessor macros + accordingly. + (TYPE_VALUES_RAW): Define. + (union tree_node): Update for above changes. + * tree.c (tree_node_structure_for_code) [tcc_type]: Return + TS_TYPE_NON_COMMON. + (initialize_tree_contains_struct) [TS_TYPE]: Use TS_TYPE_COMMON. + Add TS_TYPE_WITH_LANG_SPECIFIC and TS_TYPE_NON_COMMON. + (tree_code_size) [tcc_type]: Use struct tree_type_non_common. + * treestructu.def (TS_TYPE): Remove. + (TS_TYPE_COMMON, TS_TYPE_WITH_LANG_SPECIFIC, TS_TYPE_NON_COMMON): + Define. + +2011-05-11 Jakub Jelinek + + PR debug/48159 + * tree-ssa.c (reset_debug_uses): New function. + * tree-flow.h (reset_debug_uses): New prototype. + * tree-data-ref.c (stmts_from_loop): Ignore debug stmts. + * tree-loop-distribution.c (generate_loops_for_partition): Call + reset_debug_uses on the stmts that will be removed. Keep around + all debug stmts, don't count them as bits in partition bitmap. + (generate_builtin): Don't count debug stmts or labels as bits in + partition bitmap. + +2011-05-11 Richard Guenther + + * gimple.c (gimple_type_hash_1): Merge with ... + (gimple_type_hash): ... this. + (gtc_visit): Remove mode parameter and simplify accordingly. + (gimple_types_compatible_p_1): Likewise. + (gimple_types_compatible_p): Likewise. + (iterative_hash_gimple_type): Likewise. + (visit): Likewise. + (gimple_type_eq): Adjust. + +2011-05-11 Revital Eres + + * ddg.c (create_ddg_dep_from_intra_loop_link): If a true dep edge + enters the branch create an anti edge in the opposite direction + to prevent the creation of reg-moves. + * modulo-sched.c: Adjust comment to reflect the fact we are + scheduling closing branch. + (PS_STAGE_COUNT): Rename to CALC_STAGE_COUNT and redefine. + (stage_count): New field in struct partial_schedule. + (calculate_stage_count): New function. + (normalize_sched_times): Rename to reset_sched_times and handle + incrementing the sched time of the nodes by a constant value + passed as parameter. + (duplicate_insns_of_cycles): Skip closing branch. + (sms_schedule_by_order): Schedule closing branch. + (ps_insn_find_column): Handle closing branch. + (sms_schedule): Call reset_sched_times and adjust the code to + support scheduling of the closing branch. + (ps_insert_empty_row): Update calls to normalize_sched_times + and rotate_partial_schedule functions. + +2011-05-11 Richard Guenther + + PR middle-end/48953 + * tree-inline.c (remap_gimple_op_r): Also remap types of MEM_REFs. + +2011-05-11 Joseph Myers + + * opts.c (finish_options): Move warning settings from process_options. + * toplev.c (process_options): Move warning settings to finish_options. + +2011-05-11 Richard Guenther + + PR tree-optimization/18041 + * tree-ssa-forwprop.c (simplify_bitwise_and): Rename to ... + (simplify_bitwise_binary): ... this. Handle operand conversions + by applying them to the result instead. + (tree_ssa_forward_propagate_single_use_vars): Adjust. CSE tree code. + +2011-05-11 Richard Guenther + + * gimple.c (gimple_canonical_types_compatible_p): Split out + from gimple_types_compatible_p and friends. Do not recurse + to pointed-to types. + (gimple_canonical_type_eq): Use it. + (iterative_hash_canonical_type): Split out from + iterative_hash_gimple_type and friends. Do not recurse + to pointed-to types. + (gimple_canonical_type_hash): Use it, allocate the hash here. + +2011-05-11 Revital Eres + + * modulo-sched.c (doloop_register_get): Ignore DEBUG_INSNs while + recognizing doloop. + +2011-05-11 Revital Eres + + * loop-doloop.c (doloop_condition_get): Use prev_nondebug_insn + instead of PREV_INSN. + +2011-05-11 Revital Eres + + * modulo-sched.c (sms_schedule): Support new form of doloop pattern + * loop-doloop.c (doloop_condition_get): Likewise. + * config/arm/thumb2.md (*thumb2_addsi3_compare0): Remove "*". + (doloop_end): New. + * config/arm/arm.md (*addsi3_compare0): Remove "*". + +2011-05-10 Nathan Froyd + + * tree.def (CASE_LABEL_EXPR): Add an operand. + * tree.h (CASE_CHAIN): Use TREE_OPERAND instead of TREE_CHAIN. + +2011-05-10 Joseph Myers + + * c-decl.c (c_override_global_bindings_to_false): Remove. + (global_bindings_p): Don't check + c_override_global_bindings_to_false. + * c-tree.h (c_override_global_bindings_to_false): Remove. + * c-typeck.c (composite_type): Don't set + c_override_global_bindings_to_false. + +2011-05-10 Michael Meissner + + PR target/48857, 48495 + * config/rs6000/rs6000.h (VSX_SCALAR_MODE): Delete. + (VSX_MODE): Ditto. + (VSX_MOVE_MODE): Ditto. + (ALTIVEC_OR_VSX_VECTOR_MODE): New macro, combine all Altivec and + VSX vector types. Add V2DImode. + (HARD_REGNO_CALLER_SAVE_MODE): Use it instead of + ALTIVEC_VECTOR_MODE and VSX_VECTOR_MODE calls. + (MODES_TIEABLE_P): Ditto. + + * config/rs6000/rs6000.c (rs6000_emit_move): Use + ALTIVEC_OR_VSX_MODE instead of ALTIVEC_VECTOR_MODE and + VSX_VECTOR_MODE. + (init_cumulative_args): Ditto. + (rs6000_function_arg_boundary): Ditto. + (rs6000_function_arg_advance_1): Ditto. + (rs6000_function_arg): Ditto. + (rs6000_function_ok_for_sibcall): Ditto. + (emit_frame_save): Ditto. + (rs6000_function_value): Ditto. + (rs6000_libcall_value): Ditto. + +2011-05-10 Joseph Myers + + * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add + i386/darwin-lib.h to $libgcc_tm_file. + * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Remove. + +2011-05-10 Joseph Myers + + * doc/sourcebuild.texi (Back End): Mention contrib/config-list.mk. + +2011-05-10 Joseph Myers + + * config/rs6000/genopt.sh, config/rs6000/rs6000-cpus.def: New files. + * config/rs6000/rs6000-tables.opt: New file (generated). + * config.gcc (powerpc*-*-*, rs6000*-*-*): Add + rs6000/rs6000-tables.opt to extra_options. + * config/rs6000/rs6000-opts.h (RS6000_CPU_OPTION_NATIVE): Define. + * config/rs6000/rs6000.c (rs6000_select): Remove. + (processor_target_table): Move contents to rs6000-cpus.def. + (darwin_rs6000_override_options): Check + global_options_set.x_rs6000_cpu_index instead of + rs6000_select[1].string. + (rs6000_option_override_internal): Likewise. + (rs6000_handle_option): Don't assert that global structures are in + use. Don't handle OPT_mcpu_ and OPT_mtune_ here. + (rs6000_default_cpu): New variable. + (rs6000_file_start): Set it instead of local default_cpu. Check + rs6000_default_cpu, global_options_set.x_rs6000_cpu_index and + global_options_set.x_rs6000_tune_index instead of rs6000_select. + (rs6000_darwin_file_start): Check rs6000_default_cpu and + global_options_set.x_rs6000_cpu_index instead of rs6000_select. + * config/rs6000/rs6000.h (struct rs6000_cpu_select, + rs6000_select): Remove. + * config/rs6000/rs6000.opt (rs6000_cpu_index, rs6000_tune_index): + Remove. + (mcpu=, mtune=): Use Var, Init, Enum and Save. + * config/rs6000/t-rs6000 + ($(srcdir)/config/rs6000/rs6000-tables.opt): New. + * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check + global_options_set.x_rs6000_cpu_index instead of + rs6000_select[1].string. + * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check + global_options_set.x_rs6000_cpu_index instead of + rs6000_select[1].string. + +2011-05-10 Joseph Myers + + * config.gcc (libgcc_tm_file): Define instead of including files + from ../../libgcc/config/ in tm_file. + * configure.ac (libgcc_tm_file_list, libgcc_tm_include_list): Define. + * configure: Regenerate. + * Makefile.in (libgcc_tm_file_list, libgcc_tm_include_list, + libgcc_tm.h, cs-libgcc_tm.h): New. + (TM_H): Include libgcc_tm.h and $(libgcc_tm_file_list). + (clean): Remove libgcc_tm.h. + * config/arm/symbian.h (RENAME_LIBRARY): Remove. + * mkconfig.sh: Include libgcc_tm.h in tm.h if USED_FOR_TARGET. + * system.h (DECLARE_LIBRARY_RENAMES): Poison. + +2011-05-10 Georg-Johann Lay + + PR target/48896 + * config/avr/avr.c (avr_ret_register): Return unsigned int + instead of int. + (avr_function_value): Mark fn_decl_or_type as unused, don't pass + it to avr_libcall_value. + avr_expand_builtin): Use EXPAND_NORMAL as arg 4 in calls to + expand_expr. + (avr_expand_binop_builtin): Ditto. + (avr_expand_unop_builtin): Ditto. + +2011-05-10 DJ Delorie + + * config/rx/rx.h (JUMP_ALIGN, LABEL_ALIGN, LOOP_ALIGN): Define. + (LABEL_ALIGN_AFTER_BARRIER): Pass label to rx_align_for_label + * config/rx/rx.c (rx_align_for_label): Add label and + uses_threshold parameters. Do not align when the label is not + used enough. + * config/rx/rx-protos.h (rx_align_for_label): Update prototype. + +2011-05-10 Richard Guenther + + * tree-ssa-forwprop.c (combine_conversions): Pattern-match + a series of conversions and apply foldings similar to what + fold-const does. + (tree_ssa_forward_propagate_single_use_vars): Call it. + +2011-05-10 Jakub Jelinek + + PR tree-optimization/48611 + PR tree-optimization/48794 + * tree-eh.c (remove_unreachable_handlers): Don't remove regions + referenced from RESX or EH_DISPATCH arguments. + + PR debug/48928 + * dfp.c (decimal_to_decnumber): Handle conversion from + dconst{1,2,m1,half}. + +2011-05-09 Uros Bizjak + + * config/i386/i386.c (ix86_autovectorize_vector_sizes): Return 0 + for !flag_prefer_avx128. + (ix86_preferred_simd_mode): Return word_mode for DFmode without SSE2. + +2011-05-09 Eric Botcazou + + * fold-const.c (fold_range_test): Pass LOC to build_range_check. + (fold_ternary_loc): Use expr_location_or. + +2011-05-09 H.J. Lu + + PR debug/48853 + * dwarf2out.c (mem_loc_descriptor) : If + POINTERS_EXTEND_UNSIGNED is defined, don't give up if mode is + Pmode and mem_mode is not VOIDmode. + +2011-05-09 Ville Voutilainen + + * tree.h (TYPE_UNQUALIFIED, TYPE_QUAL_CONST, TYPE_QUAL_VOLATILE, + TYPE_QUAL_RESTRICT): Convert to enum. + +2011-05-09 Uros Bizjak + + * config/i386/predicates.md (const_pow2_1_to_2_operand): Remove. + (const_pow2_1_to_8_operand): Ditto. + (const_pow2_1_to_128_operand): Ditto. + (const_pow2_1_to_32768_operand): Ditto. + * config/i386/mmx.md (*mmx_pinsrw): Use const_int_operand instead of + const_pow2_1_to_8_operand for operand 3 predicate. Use exact_log2 + in insn constraint to check integer value of operand 3. + * config/i386/sse.md (*vec_setv4sf_sse4_1): Ditto. + + (PINSR_MODE): New mode iterator. + (sse2p4_1): New mode attribute. + (_pinsr): Merge insn from sse4_1_pinsrb, + sse2_pinsrw, sse4_1_pinsrd and sse4_1_pinsrq using PINSR_MODE mode + iterator. Use const_int_operand instead of + const_pow2_1_to_{2,8,128,32768}_operand for operand 3 predicate. Use + exact_log2 in insn constraint to check integer value of operand 3. + +2011-05-09 Uros Bizjak + + * config/i386/sse.md (blendbits): Remove mode attribute. + (_blend): Use const_int_operand + instead of const_0_to__operand for operand 3 predicate. + Check integer value of operand 3 in insn constraint. + +2011-05-09 Richard Guenther + + * lto-symtab.c (lto_cgraph_replace_node): Use types_compatible_p + for diagnostics. + (lto_symtab_merge): Likewise. Do not register types here. + (lto_symtab_merge_decls_2): Likewise. + (lto_symtab_merge_decls_1): Likewise. + * gimple.h (enum gtc_mode, gimple_types_compatible_p): Do not declare. + * gimple.c (enum gtc_mode): Declare. + (gimple_types_compatible_p): Make static. + +2011-05-09 Andreas Krebbel + + * config/s390/s390.md (TD/TF mem to reg move splitter): Make the + temporary register to match Pmode. + +2011-05-09 Uros Bizjak + + * config/i386/sse.md (*vec_concatv4si): Merge from *vec_concatv4si_1 + and *vec_concatv4si_1_avx. + +2011-05-09 Uros Bizjak + + PR rtl-optimization/48927 + * ira-conflicts.c (commutative_constraint_p): Use + recog_data.alternative_enabled_p to disable alternatives where + "enabled" attribute is false. + (get_dup_num): Ditto. + * ira-lives.c (single_reg_class): Ditto. + (ira_implicitly_set_insn_hard_regs): Ditto. + +2011-05-09 Eric Botcazou + + * var-tracking.c (find_mem_expr_in_1pdv): Fix thinko. + (dataflow_set_preserve_mem_locs): Likewise. + +2011-05-09 Philipp Thomas + + * config/mep/mep.c (mep_validate_vliw): Syntax description + should not be translated. + +2011-05-09 Joseph Myers + + * config/mips/genopt.sh, config/mips/mips-cpus.def: New files. + * config/mips/mips-tables.opt: New file (generated). + * config.gcc (mips*-*-*): Add mips/mips-tables.opt to extra_options. + * config/mips/mips-opts.h (MIPS_ARCH_OPTION_FROM_ABI, + MIPS_ARCH_OPTION_NATIVE): Define. + * config/mips/mips.c (mips_cpu_info_table): Move contents to + mips-cpus.def. + (mips_strict_matching_cpu_name_p, mips_matching_cpu_name_p, + mips_parse_cpu): Remove. + (mips_cpu_info_from_opt, mips_default_arch): New. + (mips_handle_option): Don't assert that global structures are in + use. Don't handle OPT_march_, OPT_mtune_ and OPT_mips here. + (mips_option_override): Use new variables and functions to set + state of these options. Use strcmp to check for individual CPU names. + * config/mips/mips.h (MIPS_CPU_STRING_DEFAULT): Remove default + definition. + * config/mips/mips.opt (march=): Use ToLower and Enum. + (mips): Use ToLower, Enum and Var. + (mtune=): Use ToLower and Enum. + * config/mips/t-mips ($(srcdir)/config/mips/mips-tables.opt): New. + +2011-05-08 Jan Hubicka + + * gimple.c (type_pair_hash, type_pair_eq, lookup_type_pair): + Arrange type pairs to be UID ordered. + (gimple_lookup_type_leader): Make inline. + +2011-05-09 Nick Clifton + + PR target/48899 + * config/iq2000/iq2000.opt (iq2000_tune): Initialise to + PROCESSOR_DEFAULT. + + PR target/48897 + * config/mn10300/mn10300.c (extract_bundle): Remove spurious local + variable 's'. + +2011-05-08 Chung-Lin Tang + + * combine.c (simplify_comparison): Abstract out parts into... + (simplify_compare_const): ... new function. + (try_combine): Generalize parallel arithmetic/compare combining + to call simplify_compare_const() and CANONICALIZE_COMPARE(). + +2011-05-08 Jan Hubicka + + * cgraph.c (cgraph_clone_node): Add call_duplication_hook parameter. + (cgraph_create_virtual_clone): Call hooks once virtual clone + is finished. + * cgraph.h (cgraph_clone_node): Update prototype. + * ipa-cp.c (ipcp_estimate_growth): Use + estimate_ipcp_clone_size_and_time. + * ipa-inline-transform.c (clone_inlined_nodes): Update. + * lto-cgraph.c (input_node): Update. + * ipa-inline.c (recursive_inlining): Update. + * ipa-inline.h (estimate_ipcp_clone_size_and_time): New function. + (evaluate_conditions_for_known_args): Break out from ... + (evaluate_conditions_for_edge): ... here. + (evaluate_conditions_for_ipcp_clone): New function. + (inline_node_duplication_hook): Update clone summary based + on parameter map. + (estimate_callee_size_and_time): Rename to ... + (estimate_node_size_and_time): take NODE instead of EDGE; + take POSSIBLE_TRUTHS as argument. + (estimate_callee_size_and_time): Update. + (estimate_ipcp_clone_size_and_time): New function. + (do_estimate_edge_time): Update. + +2011-05-08 Richard Guenther + + PR middle-end/48908 + PR middle-end/48905 + * expmed.c (expand_shift_1): Compute adjusted constant shift + amount manually. + +2011-05-08 Eric Botcazou + + * config/avr/avr.c (print_operand_address): Fix invalid RTL access. + +2011-05-08 Eric Botcazou + + * config/rs6000/rs6000.c (output_profile_hook): Fix thinko. + +2011-05-08 Jonathan Wakely + + * doc/invoke.texi (-fuse-linker-plugin): Improve grammar. + +2011-05-07 Jan Hubicka + + * ipa-inline-transform.c (inline_call): Account when program size + decreases. + * ipa-inline.c (relative_time_benefit): New function. + (edge_badness): Reorganize to be power 2 based; fix thinko when + computing badness for negative growth; update comments to match + reality; better dumps. + +2011-05-07 Eric Botcazou + + * langhooks.h (lang_hooks_for_types): Change global_bindings_p's return + type to bool and adjust comment. + * fold-const.c (fold_range_test): Adjust call to global_bindings_p. + (fold_mathfn_compare): Remove calls to global_bindings_p. + (fold_inf_compare): Likewise. + * stor-layout.c (variable_size): Adjust call to global_bindings_p. + * c-tree.h (global_bindings_p): Adjust prototype. + * c-decl.c (global_bindings_p): Return bool and simplify. + +2011-05-07 Zdenek Dvorak + + PR tree-optimization/48837 + * tree-tailcall.c (tree_optimize_tail_calls_1): Do not mark tailcalls + when accumulator transformation is performed. + +2011-05-06 Jan Hubicka + + * i386.h (ix86_tune_indices): Add + X86_TUNE_SOFTWARE_PREFETCHING_BENEFICIAL. + (TARGET_SOFTWARE_PREFETCHING_BENEFICIAL): New macro. + * i386.c (initial_ix86_tune_features): Add + X86_SOFTARE_PREFETCHING_BENEFICIAL. + (software_prefetching_beneficial_p): Remove predicate. + (ix86_option_override_internal): Use new macro. + +2011-05-06 Jan Hubicka + + * ipa-inline.c (update_callee_keys): Don't reset node growth cache. + +2011-05-06 Jan Hubicka + + * cgraph.c (cgraph_add_thunk): Create real function node instead + of alias node; finalize it and mark needed/reachale; arrange visibility + to be right and add it into the corresponding same comdat group list. + (dump_cgraph_node): Dump thunks. + * cgraph.h (cgraph_first_defined_function, cgraph_next_defined_function, + cgraph_function_with_gimple_body_p, + cgraph_first_function_with_gimple_body, + cgraph_next_function_with_gimple_body): New functions. + (FOR_EACH_FUNCTION_WITH_GIMPLE_BODY, FOR_EACH_DEFINED_FUNCTION): + New macros. + * ipa-cp.c (ipcp_need_redirect_p): Thunks can't be redirected. + (ipcp_generate_summary): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY. + * cgraphunit.c (cgraph_finalize_function): Only look into possible + devirtualization when optimizing. + (verify_cgraph_node): Verify thunks. + (cgraph_analyze_function): Analyze thunks. + (cgraph_mark_functions_to_output): Output thunks only in combination + with function they are assigned to. + (assemble_thunk): Turn thunk into non-thunk; don't try to turn + alias into normal node. + (assemble_thunks): New functoin. + (cgraph_expand_function): Use it. + * lto-cgraph.c (lto_output_node): Stream thunks. + (input_overwrite_node): Stream in thunks. + * ipa-pure-const.c (analyze_function): Thunks do nothing interesting. + * lto-streamer-out.c (lto_output): Do not try to output thunk's body. + * ipa-inline.c (inline_small_functions): Use FOR_EACH_DEFINED_FUNCTION. + * ipa-inline-analysis.c (compute_inline_parameters): "Analyze" thunks. + (inline_analyze_function): Do not care about thunk jump functions. + (inline_generate_summary):Use FOR_EACH_DEFINED_FUNCTION. + * ipa-prop.c (ipa_prop_write_jump_functions): Use + cgraph_function_with_gimple_body_p. + * passes.c (do_per_function_toporder): Use + cgraph_function_with_gimple_body_p. + (execute_one_pass);Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY. + (ipa_write_summaries): Use cgraph_function_with_gimple_body_p. + (function_called_by_processed_nodes_p): Likewise. + +2011-05-06 Joseph Myers + + * config/rs6000/rs6000.opt (rs6000_ieeequad, rs6000_altivec_abi, + rs6000_spe_abi, rs6000_darwin64_abi): Remove TargetVariable + entries. + (mabi=): Replace with separate entries for mabi=altivec, + mabi=no-altivec, mabi=spe, mabi=no-spe, mabi=d64, mabi=d32, + mabi=ieeelongdouble and mabi=ibmlongdouble. + * config/rs6000/rs6000.c (rs6000_option_override_internal): Move + check for -mabi=spe without SPE ABI support here. + (rs6000_handle_option): Replace OPT_mabi_ handling with + OPT_mabi_altivec and OPT_mabi_spe handling. + +2011-05-06 Cary Coutant + + * dwarf2out.c (contains_subprogram_definition): New function. + (should_move_die_to_comdat): Call it. + +2011-05-06 Jeff Law + + * tree-ssa-threadupdate.c (create_block_for_threading): Do not call + remove_ctrl_stmt_and_useless_edges. + (create_duplicates): Call remove_ctrl_stmt_and_useless_edges. + (fixup_template_block, thread_single_edge): Likewise. + (mark_threaded_blocks): Use THREAD_TARGET. + +2011-05-06 Alan Modra + + PR target/48900 + * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use + const0_rtx as the arg to the dummy __tls_get_addr libcall. + 2011-05-06 Uros Bizjak * config/i386/i386.md (*movdf_internal_nointeger): Apply "*" @@ -16,9 +849,9 @@ 2011-05-06 Ramana Radhakrishnan - PR target/47930 - * config/arm/arm.opt (marm): Document it. - (mthumb): Reject negative variant. + PR target/47930 + * config/arm/arm.opt (marm): Document it. + (mthumb): Reject negative variant. 2011-05-06 Uros Bizjak @@ -641,7 +1474,7 @@ * config/bfin/uclinux.h (LINK_GCC_C_SEQUENCE_SPEC): Make sure libbffastfp overrides libgcc when -mfast-fp. -2011-05-03 Stuart Henderson +2011-05-03 Stuart Henderson Originally from Bernd Schmidt * config/bfin/uclinux.h (SUBTARGET_FDPIC_NOT_SUPPORTED): New macro. @@ -3092,7 +3925,7 @@ * haifa-sched.c (prune_ready_list, schedule_block): Use sched_pressure_p rather than flag_sched_pressure. -2011-04-15 Pat Haugen +2011-04-15 Pat Haugen * config/rs6000/rs6000.c (call_ABI_of_interest): Call cgraph_get_node instead of cgraph_get_create_node. @@ -3383,7 +4216,7 @@ 2011-04-14 Anatoly Sokolov Eric Weddington - Georg-Johann Lay + Georg-Johann Lay * config/avr/avr.c ("insn-codes.h", "optabs.h", "langhooks.h"): New Includes @@ -3628,7 +4461,7 @@ (TREE_CHAIN): Check for a TS_COMMON structure. (TREE_TYPE): Check for a TS_TYPED structure. -2011-04-12 Pat Haugen +2011-04-12 Pat Haugen * config/rs6000/rs6000.c (call_ABI_of_interest): Call cgraph_get_create_node instead of cgraph_node. @@ -5414,7 +6247,7 @@ * config/i386/cygming.opt: Make sure trailing empty line is retained. * config/i386/mingw-w64.opt: Likewise. -2011-04-01 Gary Funck +2011-04-01 Gary Funck * c-decl.c (grokdeclarator): Fix formatting.