X-Git-Url: http://git.sourceforge.jp/view?a=blobdiff_plain;ds=sidebyside;f=gcc%2FChangeLog;h=68664b15ab65159fcd009daaf166942e3ffa95d3;hb=17e442f427328380ed6baa3a73c55191989caa42;hp=3f0d60b1a48ad787bac094092933e055d7c537df;hpb=e76792b0c26761b4266e4943b92cacf2097b5de0;p=pf3gnuchains%2Fgcc-fork.git diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 3f0d60b1a48..6f10522efc2 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,1314 @@ +2010-04-26 Bernd Schmidt + + * df-problems.c (df_simulate_initialize_forwards): Set, don't clear, + bits for artificial defs at the top of the block. + * fwprop.c (single_def_use_enter_block): Don't call it. + +2010-04-26 Jack Howarth + + PR 43715 + * gcc/configure.ac: Use "$gcc_cv_nm -g" on darwin + instead of "$gcc_cv_objdump -T". + Use "-undefined dynamic_lookup" on darwin. + * gcc/configure: Regenerate. + +2010-04-26 Jakub Jelinek + + PR c/43893 + * c-omp.c (c_finish_omp_for): Handle also EQ_EXPR. + +2010-04-26 Nathan Froyd + + * c-parser.c (struct c_token): Move location field up. + * c-tree.h (struct c_typespec): Move expr_const_operands field up. + (struct c_declspecs): Convert typespec_word, storage_class, and + default_int_p into bitfields. + (struct c_declarator): Move loc field up. + +2010-04-26 Nathan Froyd + + * cfgloop.h (struct loop): Move can_be_parallel field up. + * ipa-prop.h (struct ip_node_params): Move bitfields up. + * tree-ssa-loop-ivopts.c (struct version_info): Move inv_id field + down. + (struct iv_cand): Convert pos field into a bitfield. + * tree-vectorizer.h (struct _loop_vec_info): Move loop_line_number + field up. + (struct _stmt_vec_info): Shuffle fields for better packing. + +2010-04-26 Eric Botcazou + + * varasm.c (IN_NAMED_SECTION): Remove guard. + * config/arm/unknown-elf.h (IN_NAMED_SECTION): Rename to... + (IN_NAMED_SECTION_P): ...this. + (ASM_OUTPUT_ALIGNED_BSS): Adjust for above renaming. + (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise. + +2010-04-26 Eric Botcazou + + * gimplify.c (gimplify_cond_expr): Use THEN_ and ELSE_ local variables. + Use VOID_TYPE_P for all void type tests. Adjust TYPE variable instead + of shadowing it. Fix comments. + +2010-04-26 Jan Hubicka + + * cgraph.c (cgraph_create_node): Set node frequency to normal. + (cgraph_clone_node): Copy function frequency. + * cgraph.h (node_frequency): New enum + (struct cgraph_node): Add. + * final.c (rest_of_clean_state): Update. + * lto-cgraph.c (lto_output_node): Output node frequency. + (input_overwrite_node): Input node frequency. + * tre-ssa-loop-ivopts (computation_cost): Update. + * lto-streamer-out.c (output_function): Do not output function + frequency. + * predict.c (maybe_hot_frequency_p): Update and handle functions + executed once. + (cgraph_maybe_hot_edge_p): Likewise; use cgraph frequency instead of + attribute lookup. + (probably_never_executed_bb_p, optimize_function_for_size_p): Update. + (compute_function_frequency): Set noreturn functions to be executed + once. + (choose_function_section): Update. + * lto-streamer-in.c (input_function): Do not input function frequency. + * function.c (allocate_struct_function): Do not initialize function + frequency. + * function.h (function_frequency): Remove. + (struct function): Remove function frequency. + * ipa-profile.c (CGRAPH_NODE_FREQUENCY): Remove. + (try_update): Update. + * tree-inline.c (initialize_cfun): Do not update function frequency. + * passes.c (pass_init_dump_file): Update. + * i386.c (ix86_compute_frame_layout): Update. + (ix86_pad_returns): Update. + +2010-04-26 Jie Zhang + + PR tree-optimization/43833 + * tree-vrp.c (range_int_cst_p): New. + (range_int_cst_singleton_p): New. + (extract_range_from_binary_expr): Optimize BIT_AND_EXPR case + when both operands are constants. Use range_int_cst_p in + BIT_IOR_EXPR case. + +2010-04-26 Jan Hubicka + + * cgraphunit.c (cgraph_copy_node_for_versioning): Fix profile updating. + +2010-04-26 Richard Guenther + + PR lto/43080 + * gimple.c (gimple_decl_printable_name): Deal gracefully + with a NULL DECL_NAME. + +2010-04-26 Richard Guenther + + PR lto/42425 + * tree.c (free_lang_data_in_type): Do not free TYPE_CONTEXT + if emitting debug information and it is either a function + or a namespace decl. + +2010-04-26 Ira Rosen + + * tree-vectorizer.h (struct _stmt_vec_info): Add new field to + determine if the statement is vectorizable, and a macro to + access it. + * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): + Skip statements that can't be vectorized. If the analysis + fails, mark the statement as unvectorizable if vectorizing + basic block. + (vect_compute_data_refs_alignment): Likewise. + (vect_verify_datarefs_alignment): Skip statements marked as + unvectorizable. Add print. + (vect_analyze_group_access): Skip statements that can't be + vectorized. If the analysis fails, mark the statement as + unvectorizable if vectorizing basic block. + (vect_analyze_data_ref_accesses, vect_analyze_data_refs): + Likewise. + * tree-vect-stmts.c (vectorizable_store): Fix the number of + generated stmts for SLP. + (new_stmt_vec_info): Initialize the new field. + * tree-vect-slp.c (vect_build_slp_tree): Fail to vectorize + statements marked as unvectorizable. + +2010-04-25 Joseph Myers + + * c-common.c (flag_isoc1x): New. + (flag_isoc99): Update comment. + * c-common.h (flag_isoc1x): New. + (flag_isoc99): Update comment. + * c-cppbuiltin.c (builtin_define_float_constants): Also define + ___DECIMAL_DIG__. + * c-opts.c (set_std_c1x): New. + (c_common_handle_option): Handle -std=c1x and -std=gnu1x. + (set_std_c89, set_std_c99): Also set flag_isoc1x to 0. + * c.opt (-std=c1x, -std=gnu1x): New options. + * doc/cpp.texi: Mention -std=c1x. + * doc/cppopts.texi (-std=c1x, -std=gnu1x): Document. + * doc/extend.texi: Mention -std=c1x and -std=gnu1x. + * doc/invoke.texi (-std=c1x, -std=gnu1x): Document. + * doc/standards.texi: Mention C1X. + * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG, + LDBL_DECIMAL_DIG, FLT_HAS_SUBNORM, DBL_HAS_SUBNORM, + LDBL_HAS_SUBNORM, FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN): + Define for C1X. + +2010-04-25 Uros Bizjak + + * config/i386/gmon-sol2.c (_mcleanup): Change format string + placeholder from 0x%x to %#x. + * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto. + * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto. + * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto. + * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto. + * config/i386/i386.c (ix86_target_string): Ditto. + (output_pic_addr_const): Ditto. + (print_operand): Ditto. + +2010-04-25 Paolo Bonzini + + * combine.c (find_split_point): Add third argument. Use it + to find nested multiply-accumulate instructions. Adjust calls. + (try_combine): Adjust call to find_split_point. + +2010-04-24 Gerald Pfeifer + + * doc/contrib.texi (Contributors): Add Dodji Seketeli. + +2010-04-24 Bernd Schmidt + + PR tree-optimization/41442 + * fold-const.c (merge_truthop_with_opposite_arm): New function. + (fold_binary_loc): Call it. + +2010-04-23 Manuel López-Ibáñez + + * toplev.c (general_init): Set default for fdiagnostics-show-option. + * opts.c (common_handle_option): Allow disabling it. + * common.opt (fdiagnostics-show-option): Add Var. Enabled by default. + +2010-04-23 Eric Botcazou + + * expr.c (expand_expr_real_1) : Only use conversion + between modes if both types are integral. + +2010-04-23 Richard Guenther + + PR tree-optimization/43572 + * tree-tailcall.c (find_tail_calls): Allow PARM_DECL uses. + +2010-04-23 Richard Guenther + + PR lto/43455 + * tree-inline.c (tree_can_inline_p): Also check compatibility + of return types. + +2010-04-23 Martin Jambor + + PR tree-optimization/43846 + * tree-sra.c (struct access): New flag grp_assignment_read. + (build_accesses_from_assign): Set grp_assignment_read. + (sort_and_splice_var_accesses): Propagate grp_assignment_read. + (enum mark_read_status): New type. + (analyze_access_subtree): Propagate grp_assignment_read, create + accesses also if both direct_read and root->grp_assignment_read. + +2010-04-23 Martin Jambor + + PR middle-end/43835 + * tree-sra.c (ipa_sra_preliminary_function_checks): Check that the + function does not have type attributes. + +2010-04-23 Richard Guenther + + PR lto/42653 + * tree.c (free_lang_data_in_decl): Do not reset DECL_CONTEXT + of FUNCTION_DECLs. + +2010-04-22 Laurynas Biveinis + + * sese.h (create_if_region_on_edge): Remove. + + * sese.c (create_if_region_on_edge): Make static. + + * tree-inline.c: Do not include ggc.h. + + * expr.c: Do not include ggc.h. + + * Makefile.in (tree-inline.o, expr.o): Remove $(GGC_H) from + dependencies. + +2010-04-22 Kaz Kojima + + PR target/43744 + * config/sh/sh.c (find_barrier): Don't emit a constant pool + in the middle of insns for casesi_worker_2. + +2010-04-22 David Edelsohn + + * config/rs6000/x-aix: Override LDFLAGS for all COMPILERS. + +2010-04-22 Ira Rosen + + PR tree-optimization/43842 + * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle + loop unrolling in update of exit phis. Fix comment. + * tree-vect-slp.c (vect_analyze_slp): Check that there are at + least two reduction statements in the loop before starting SLP + analysis. + +2010-04-22 Nick Clifton + + * config/stormy16/stormy16-lib2.c (__ucmpsi2): Fix thinko. + +2010-04-22 Alexander Monakov + + * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Handle BIT_NOT_EXPR + to simplify a + ~a. + +2010-04-22 Laurynas Biveinis + + * tree-parloops.c (loop_parallel_p): New argument + parloop_obstack. Pass it down. + (parallelize_loops): New variable parloop_obstack. Initialize it, + pass it down, free it. + + * tree-loop-linear.c (linear_transform_loops): Pass down + lambda_obstack. + + * tree-data-ref.h (lambda_compute_access_matrices): New argument + of type struct obstack *. + + * tree-data-ref.c (analyze_subscript_affine_affine): New variable + scratch_obstack. Initialize it, pass down, free it. + + * lambda.h (lambda_loop_new): Remove. + (lambda_matrix_new, lambda_matrix_inverse) + (lambda_trans_matrix_new, lambda_trans_matrix_inverse): New + argument of type struct obstack *. + + * lambda-trans.c (lambda_trans_matrix_new): New argument + lambda_obstack. Pass it down, use obstack allocation for ret. + (lambda_trans_matrix_inverse): New argument lambda_obstack. Pass + it down. + + * lambda-mat.c (lambda_matrix_get_column) + (lambda_matrix_project_to_null): Remove. + (lambda_matrix_new): New argument lambda_obstack. Use obstack + allocation for mat. + (lambda_matrix_inverse_hard, lambda_matrix_inverse): New argument + lambda_obstack. + + * lambda-code.c (lambda_loop_new): New function. + (lambda_lattice_new, compute_nest_using_fourier_motzkin) + (lambda_compute_auxillary_space, lambda_compute_target_space) + (lambda_loopnest_transform, gcc_loop_to_lambda_loop) + (lambda_loopnest_to_gcc_loopnest): Pass down lambda_obstack. + (build_access_matrix): New argument lambda_obstack. Use obstack + allocation for am. + (lambda_compute_step_signs, lambda_compute_access_matrices): New + argument lambda_obstack. Pass it down. + +2010-04-22 Bernd Schmidt + + * optabs.h (expand_widening_mult): Declare. + +2010-04-22 Richard Guenther + + PR tree-optimization/43845 + * tree-ssa-pre.c (create_component_ref_by_pieces_1): Properly + lookup the CALL_EXPR function and arguments. + +2010-04-22 Nick Clifton + + * config/stormy16/stormy16.c + (xstormy16_asm_output_aligned_common): Handle a NULL decl parameter. + * config/stormy16/stormy16.h: Tidy up formatting. + (DONT_USE_BUILTIN_SETJMP): Remove definition. + * config/stormy16/stormy16.c (cbranchsi4): Delete pattern. + (ineqbranchsi): Delete pattern. + * config/stormy16/stormy16-lib2-ucmpsi2.c: New file. + * config/stormy16/stormy16-lib2.c (__ucmpsi2): New function. + * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add + stormy16-lib2-ucmpsi2.c. + +2010-04-22 Bernd Schmidt + + * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs and + df_simulate_find_noclobber_defs as appropriate. Keep track of an + extra set merge_set_noclobber, and use it to relax the final test + slightly. + * df.h (df_simulate_find_noclobber_defs): Declare. + * df-problems.c (df_simulate_find_defs): Don't ignore partial or + conditional defs. + (df_simulate_find_noclobber_defs): New function. + +2010-04-22 Uros Bizjak + + * config/i386/i386.md: Use {} around multi-line preparation statements. + +2010-04-22 Laurynas Biveinis + + * c-tree.h (push_init_level, pop_init_level, set_init_index) + (process_init_element): New argument of type struct obstack *. + + * c-typeck.c (push_init_level, pop_init_level, set_designator) + (set_init_index, set_init_label, set_nonincremental_init) + (set_nonincremental_init_from_string, find_init_member) + (output_init_element, output_pending_init_elements) + (process_init_element): New argument braced_init_obstack. Pass it + down. + (push_range_stack, add_pending_init): New argument + braced_init_obstack. Use obstack allocation. + + * c-parser.c (c_parser_initelt, c_parser_initval): New argument + braced_init_obstack. Pass it down. + (c_parser_braced_init): New variables ret, braced_init_obstack. + Initialize obstack, pass it down and finally free it. + +2010-04-22 Bernd Schmidt + + PR middle-end/29274 + * tree-pass.h (pass_optimize_widening_mul): Declare. + * tree-ssa-math-opts.c (execute_optimize_widening_mul, + gate_optimize_widening_mul): New static functions. + (pass_optimize_widening_mul): New. + * expr.c (expand_expr_real_2) : New case. + : Remove support for widening multiplies. + * tree.def (WIDEN_MULT_EXPR): Tweak comment. + * cfgexpand.c (expand_debug_expr) : Use + simplify_gen_unary rather than directly building extensions. + * tree-cfg.c (verify_gimple_assign_binary): Add tests for + WIDEN_MULT_EXPR. + * expmed.c (expand_widening_mult): New function. + * passes.c (init_optimization_passes): Add pass_optimize_widening_mul. + +2010-04-21 Jan Hubicka + + * timevar.def (TV_WHOPR_WPA_FIXUP): Remove. + * lto-section-in.c (lto_section_name): Remove wpa_fixup. + * lto-wpa-fixup.c: Remove. + * Makefile.in (lto-wpa-fixup.o): Remove. + * passes.c (init_optimization_passes): Remove pass_ipa_lto_wpa_fixup. + (execute_all_ipa_transforms): Set cgraph_state to CGRAPH_STATE_IPA_SSA. + * lto-streamer.c (lto_get_section_name): Remove wpa_fixup section. + +2010-04-21 Jan Hubicka + + * tree-pass.h (ipa_opt_pass_d): Rename function_read_summary; + add write_optimization_summary, read_optimization_summary. + (ipa_write_summaries_of_cgraph_node_set): Remove. + (ipa_write_optimization_summaries): Declare. + (ipa_read_optimization_summaries): Declare. + * ipa-cp.c (pass_ipa_cp): Update. + * ipa-reference.c (pass_ipa_reference): Update. + * ipa-pure-const.c (pass_ipa_pure_const): Update. + * lto-streamer-out.c (pass_ipa_lto_gimple, pass_ipa_lto_finish): + Update. + * ipa-inline.c (pass_ipa_inline): Update. + * ipa.c (pass_ipa_whole_program): Update. + * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Update. + * passes.c (ipa_write_summaries_1): Do not test wpa. + (ipa_write_optimization_summaries_1): New. + (ipa_write_optimization_summaries): New. + (ipa_read_summaries): Do not test ltrans. + (ipa_read_optimization_summaries_1): New. + (ipa_read_optimization_summaries): New. + +2010-04-21 Jan Hubicka + + * lto-cgraph.c (lto_output_node): Do not output comdat groups + for boundary nodes. + (output_cgraph): Do not arrange comdat groups for boundary nodes. + +2010-04-21 Jakub Jelinek + + PR debug/40040 + * dwarf2out.c (add_name_and_src_coords_attributes): Add + DW_AT_{,MIPS_}linkage_name even for Fortran decls. + +2010-04-21 Jan Hubicka + + * ipa-prop.c (ipa_edge_removal_hook): Check for bounds. + +2010-04-21 Jan Hubicka + + * varpool.c (decide_is_variable_needed): Variable is always needed + during ltrans. + +2010-04-21 Jan Hubicka + + * opts.c (decode_options): Enable pure-const pass for whopr. + +2010-04-21 Jan Hubicka + + * cgraph.c (dump_cgraph_node): Dump also assembler name. + * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Do not ice + at WPA dumping. + (cgraph_decide_inlining): Do not expect callee to be removed in all + cases. + +2010-04-21 Eric B. Weddington + + * config/avr/avr-devices.c (avr_mcu_types): Add missing comma. + +2010-04-21 Uros Bizjak + + * config/i386/i386.md (x86_shrd): Add athlon_decode and + amdfam10_decode attributes. + +2010-04-21 Jakub Jelinek + + PR middle-end/43570 + * omp-low.c (scan_sharing_clauses): Don't scan_omp_op + OMP_CLAUSE_DECL for OMP_CLAUSE_COPYPRIVATE. + (lower_copyprivate_clauses): Use private var in outer + context instead of original var. Make sure the types + are correct for VLAs. + +2010-04-21 Richard Guenther + + * tree-ssa-structalias.c (do_ds_constraint): Avoid escaping + to non-pointer objects. + +2010-04-21 Jakub Jelinek + + * dwarf2out.c (add_var_loc_to_decl): Add LABEL argument. Drop + last chain entry if it starts with the still current label. + (add_location_or_const_value_attribute): Check that + loc_list->first->next is NULL instead of comparing ->first with ->last. + (dwarf2out_var_location): Pass last_label resp. last_postcall_label + to add_var_loc_to_decl. + + * dwarf2out.c (output_call_frame_info): For dw_cie_version + >= 4 add also address size and segment size fields into CIE header. + + * unwind-dw2.c (extract_cie_info): Handle CIE version 4, as + long as address size is the same as sizeof (void *) and + segment size is 0. + * unwind-dw2-fde.c (get_cie_encoding): Likewise. If + address size or segment size is unexpected, return DW_EH_PE_omit. + (classify_object_over_fdes): If get_cie_encoding returned + DW_EH_PE_omit, return -1. + (init_object): If classify_object_over_fdes returned -1, + pretend there were no FDEs at all. + +2010-04-21 Uros Bizjak + + * config/i386/i386.md (bswap2): Macroize expander from + bswap{si,di}2 using SWI48 mode iterator. + (*bswap2_movbe): Macroize insn from *bswap{si,di}_movbe using + SWI48 mode iterator. Set type attribute of bswap insn to bitmanip, + set modrm attribute of bswap insn to 0 and remove length attribute. + (*bswap2_1): Macroize insn from *bswap{si,di}_1 using SWI48 mode + iterator. Set type attribute to bitmanip, set modrm attribute to 0, + set mode attribute to and remove length attribute. + +2010-04-20 James E. Wilson + + PR rtl-optimization/43520 + * ira-lives.c (ira_implicitly_set_insn_hard_regs): Exclude classes with + zero available registers. + +2010-04-20 Kaveh R. Ghazi + + * builtins.c (fold_builtin_cproj): Fold more cases. + +2010-04-20 Kaveh R. Ghazi + + * builtins.c (build_complex_cproj, fold_builtin_cproj): New. + (fold_builtin_1): Fold builtin cproj. + * builtins.def (BUILT_IN_CPROJ, BUILT_IN_CPROJF, BUILT_IN_CPROJL): + Use ATTR_CONST_NOTHROW_LIST. + +2010-04-20 Uros Bizjak + + * config/i386/i386.md (ffs2): Macroize expander from ffs_cmove + and ffsdi2 using SWI48 mode iterator. Expand SImode insn through + ffsi2_no_cmove for !TARGET_CMOVE. + (ffssi2_no_cmove): Rename from *ffs_no_cmove. Make public. + (ffssi2): Remove expander. + (*ffs_1): Macroize insn from *ffs{si,di} using SWI48 + mode iterator. + (ctz2): Ditto from ctz{si,di}2. + (clz2): Macroize expander from ctz{hi,si,di}2 using SWI248 + mode iterator. + (clz2_abm): Macroize insn from clz{hi,si,di}2_abm using SWI248 + mode iterator. + +2010-04-20 Jakub Jelinek + + * dwarf2out.c (AT_linkage_name): Define. + (clone_as_declaration): Handle DW_AT_linkage_name. + (add_name_and_src_coords_attributes): Use AT_linkage_name instead + of DW_AT_MIPS_linkage_name. + (move_linkage_attr): Likewise. + (dwarf2out_finish): Likewise. + +2010-04-20 Xinliang David Li + + PR middle-end/41952 + * fold-const.c (fold_comparison): New folding rule. + +2010-04-20 Anatoly Sokolov + + * double-int.h (double_int_setbit): Declare. + * double-int.c (double_int_setbit): New function. + * rtl.h (immed_double_int_const): Declare. + * emit-rtl.c (immed_double_int_const): New function. + * builtins.c (expand_builtin_signbit): Clean up, use double_int_* + and immed_double_int_const functions. + * optabs.c (expand_absneg_bit, expand_copysign_absneg, + expand_copysign_bit): (Ditto.). + * simplify-rtx.c (simplify_binary_operation_1): (Ditto.). + * tree-ssa-address.c (addr_for_mem_ref): (Ditto.). + * dojump.c (prefer_and_bit_test): (Ditto.). + * expr.c (convert_modes, reduce_to_bit_field_precision, + const_vector_from_tree): (Ditto.). + * expmed.c (mask_rtx, lshift_value): (Ditto.). + +2010-04-20 Jan Hubicka + + * cgraph.c (cgraph_remove_node): Kill bodies in other partitoin. + (dump_cgraph_node): Dump new flags. + * cgraph.h (struct cgraph_node): Add flags + reachable_from_other_partition and in_other_partition. + (cgraph_can_remove_if_no_direct_calls_p): Functions used by + other partition can not be removed. + * cgraphunit.c (cgraph_mark_functions_to_output): Functions used by + the other partition must be output; silence sanity checking on + leaking functions bodies from other paritition. + * lto-cgraph.c (reachable_from_other_partition_p): New function. + (lto_output_node): Output new flags; do not sanity check that inline + clones are output; drop lto_forced_extern_inline_p code; do not mock + visibility flags at partition boundaries. + (add_node_to): New function. + (output_cgraph): Use it to sort functions so masters appear before + clones. + (input_overwrite_node): Input new flags. + * passes.c (ipa_write_summaries): Do not call + lto_new_extern_inline_states. + * lto-section-out.c (forced_extern_inline, lto_new_extern_inline_states, + lto_delete_extern_inline_states, lto_force_functions_extern_inline, + lto_forced_extern_inline_p): Kill. + * lto-streamer.h (lto_new_extern_inline_states, + * lto_delete_extern_inline_states, lto_force_functions_extern_inline, + lto_forced_extern_inline_p): Kill. + +2010-04-20 Richard Guenther + + * tree-ssa-structalias.c (do_sd_constraint): Add edges only + from vars that can have pointers. + (process_constraint): Dump useless constraints. + +2010-04-20 Richard Guenther + + * tree-ssa-structalias.c (do_structure_copy): Properly handle DEREF. + (dump_sa_points_to_info): Remove asserts. + (init_base_vars): nothing_id isn't an escape point nor does it + have pointers. + +2010-04-20 Jakub Jelinek + + * tree.h (TYPE_REF_IS_RVALUE): Define. + * dwarf2out.c (attr_checksum_ordered, is_type_die, is_comdat_die, + should_move_die_to_comdat, prune_unused_types_walk): Handle + DW_TAG_rvalue_reference_type like DW_TAG_reference_type. + (modified_type_die, gen_reference_type_die): Emit + DW_TAG_rvalue_reference_type instead of DW_TAG_reference_type + if TYPE_REF_IS_RVALUE and -gdwarf-4. + +2010-04-20 Andreas Krebbel + + PR target/43635 + * config/s390/s390.c (s390_emit_call): Turn direct into indirect + calls for -fpic -m31 if they have been sibcall optimized. + +2010-04-19 James E. Wilson + + * config/ia64/ia64.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Make + ar.lc fixed and call-used. + + * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Define. + +2010-04-19 Jan Hubicka + + * opts.c (decode_options): Disable whpr incompatible passes. + * lto/lto.c (lto_1_to_1_map): Skip clones. + (read_cgraph_and_symbols): Do not mark everything as needed. + (do_whole_program_analysis): Do map only after optimizing; + set proper cgraph_state; use passmanager. + +2010-04-19 DJ Delorie + + * cfgexpand.c (expand_debug_expr): Check for mismatched modes in + POINTER_PLUS_EXPR and fix them. + +2010-04-19 Eric B. Weddington + + * config/avr/avr-devices.c (avr_mcu_types): Add support for new + devices atmega644pa, attiny2313a, attiny24a, attiny261a, attiny4313, + attiny44a, attiny861a, atmega16a, atmega168a, atmega164a, atmega165a, + atmega169a, atmega169pa, atmega16hva2, atmega324a, atmega324pa, + atmega325a, atmega3250a, atmega328, atmega329a, atmega329pa, + atmega3290a, atmega48a, atmega644a, atmega645a, atmega645p, + atmega6450a, atmega6450p, atmega649a, atmega649p, atmega6490a, + atmega6490p, atmega64hve, atmega88a, atmega88pa, attiny461a, attiny84a, + m3000. Remove support for devices atmega8m1, atmega8c1, atmega16c1, + atmega4hvd, atmega8hvd, attiny327, m3000f, m3000s, m3001b. + * config/avr/t-avr.c (MULTILIB_MATCHES): Same. + +2010-04-19 Eric Botcazou + + * ifcvt.c (noce_try_cmove_arith): Fix long lines. + (check_cond_move_block): Likewise. + (cond_move_process_if_block): Likewise. + (noce_find_if_block): Improve formatting. + (find_if_header): Pass 0 to memset and tweak conditions. + (cond_exec_find_if_block): Fix long lines and tweak conditions. + +2010-04-19 Jakub Jelinek + + * dwarf2out.c (lower_bound_default): For DW_LANG_Python return 0 + for -gdwarf-4. + + PR middle-end/43337 + * tree-nested.c (convert_nonlocal_omp_clauses): OMP_CLAUSE_PRIVATE + with non-local decl doesn't need chain. + +2010-04-19 Vladimir Makarov + + * ira-color.c (allocno_reload_assign): Avoid accumulating + reload registers in ALLOCNO_TOTAL_CONFLICT_HARD_REGS. + +2010-04-19 Martin Jambor + + * gimple.h (create_tmp_reg): Declare. + * gimplify.c (create_tmp_reg): New function. + (gimplify_return_expr): Use create_tmp_reg. + (gimplify_omp_atomic): Likewise. + (gimple_regimplify_operands): Likewise. + * tree-dfa.c (make_rename_temp): Likewise. + * tree-predcom.c (predcom_tmp_var): Likewise. + (reassociate_to_the_same_stmt): Likewise. + * tree-sra.c (replace_uses_with_default_def_ssa_name): Likewise. + (get_replaced_param_substitute): Likewise. + * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise. + * tree-ssa-phiopt.c (cond_store_replacement): Likewise. + * tree-ssa-pre.c (get_representative_for): Likewise. + (create_expression_by_pieces): Likewise. + * tree-tailcall.c (adjust_return_value_with_ops): Likewise. + (create_tailcall_accumulator): Likewise. + +2010-04-19 Martin Jambor + + * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update + new_stmt. + (cgraph_materialize_all_clones): Assert !need_ssa_update_p. + +2010-04-19 Richard Guenther + + PR tree-optimization/43796 + * tree-vrp.c (adjust_range_with_scev): Lookup init and step + from SCEV in the lattice. + (vrp_visit_phi_node): Dump change. + +2010-04-19 Richard Guenther + + * configure.ac: Fix quoting around elf_getshstrndx ABI check. + * configure: Re-generated. + +2010-04-19 Richard Guenther + + PR tree-optimization/43783 + * tree-ssa-pre.c (create_component_ref_by_pieces_1): Drop + constant ARRAY_REF operands two and three if possible. + +2010-04-19 Uros Bizjak + + PR target/43766 + * config/i386/i386.c (ix86_decompose_address): Handle ASHIFT addends. + +2010-04-19 Jie Zhang + + PR target/43662 + * reginfo.c (reinit_regs): Set caller_save_initialized_p to false. + +2010-04-19 Ira Rosen + + PR tree-optimization/37027 + * tree-vectorizer.h (struct _loop_vec_info): Add new field reductions + and macro to access it. + (vectorizable_reduction): Add argument. + (vect_get_slp_defs): Likewise. + * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Collect reduction + statements for possible use in SLP. + (new_loop_vec_info): Initialize LOOP_VINFO_REDUCTIONS. + (destroy_loop_vec_info): Free LOOP_VINFO_REDUCTIONS. + (vect_create_epilog_for_reduction): Handle SLP. Modify documentation, + add new argument. + (vectorizable_reduction): Likewise. + * tree-vect-stmts.c (vect_get_vec_defs): Update call to + vect_get_slp_defs. + (vectorizable_type_demotion, vectorizable_type_promotion, + vectorizable_store): Likewise. + (vect_analyze_stmt): Update call to vectorizable_reduction. + (vect_transform_stmt): Likewise. + * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle reduction. + (vect_build_slp_tree): Fix indentation. Check that there are no loads + from different interleaving chains in same node. + (vect_slp_rearrange_stmts): New function. + (vect_supported_load_permutation_p): Allow load permutations for + reductions. Call vect_slp_rearrange_stmts() to rearrange statements + inside SLP nodes if necessary. + (vect_analyze_slp_instance): Handle reductions. + (vect_analyze_slp): Try to build SLP instances originating from groups + of reductions. + (vect_detect_hybrid_slp_stmts): Skip reduction statements. + (vect_get_constant_vectors): Create initial vectors for reductions + according to reduction code. Add new argument. + (vect_get_slp_defs): Add new argument, pass it to + vect_get_constant_vectors. + (vect_schedule_slp_instance): Remove SLP tree root statements. + +2010-04-19 Jakub Jelinek + + * tree.h (ENUM_IS_SCOPED): Define. + * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_enum_class + for ENUM_IS_SCOPED enums. + +2010-04-18 Eric Botcazou + + * fold-const.c (fold_comparison): Use ssizetype. + * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise. + * ipa-prop.c (ipa_modify_call_arguments): Use sizetype. + * tree-loop-distribution.c (build_size_arg_loc): Likewise. + * tree-object-size.c (compute_object_sizes): Use size_type_node. + + * tree.h (initialize_sizetypes): Remove parameter. + (build_common_tree_nodes): Remove second parameter. + * stor-layout.c (initialize_sizetypes): Remove parameter. + Always create an unsigned type. + (set_sizetype): Assert that the passed type is unsigned and simplify. + * tree.c (build_common_tree_nodes): Remove second parameter. + Adjust call to initialize_sizetypes. + * c-decl.c (c_init_decl_processing): Remove second argument in call to + build_common_tree_nodes. + +2010-04-18 Matthias Klose + + * gcc.c (main): Search for liblto_plugin.so with mode R_OK. + +2010-04-18 Ira Rosen + + PR tree-optimization/43771 + * tree-vect-slp.c (vect_supported_load_permutation_p): Check that + load permutation doesn't have gaps. + +2010-04-18 Jan Hubicka + + * i386.md (UNSPEC_SSE_PROLOGUE_SAVE_LOW): New. + (sse_prologue_save_insn expander): Use new pattern. + (sse_prologue_save_insn1): New pattern and splitter. + (sse_prologue_save_insn): Update to deal also with 64bit aligned + blocks. + * i386.c (setup_incoming_varargs_64): Do not compute jump + destination here. + (ix86_gimplify_va_arg): Update alignment needed. + (ix86_local_alignment): Do not align all local arrays to 128bit. + +2010-04-17 Jan Hubicka + + * ipa-inline.c (cgraph_early_inlining): Handle flattening too. + +2010-04-17 Richard Earnshaw + + * arm.md (negdi2): Remove redundant code to force values into a + register. + +2010-04-17 Richard Earnshaw + + * arm/bpabi.S: Add EABI alignment attributes to objects. + * arm/bpabi-v6m.S: Likewise. + * arm/crti.asm: Likewise. + * arm/crtn.asm: Likewise. + * arm/lib1funcs.asm: Likewise. + * arm/libunwind.S: Likewise. + +2010-04-17 Richard Earnshaw + + * arm-protos.h (tune_params): New structure. + * arm.c (current_tune): New variable. + (arm_constant_limit): Delete. + (struct processors): Add pointer to the tune parameters. + (arm_slowmul_tune): New tuning option. + (arm_fastmul_tune, arm_xscale_tune, arm_9e_tune): Likewise. + (all_cores): Adjust to pick up the tuning model. + (arm_constant_limit): New function. + (arm_override_options): Select the appropriate tuning model. Delete + initialization of arm_const_limit. + (arm_split_constant): Use the new constant-limit model. + (arm_rtx_costs): Pick up the current tuning model. + * arm.md (is_strongarm, is_xscale): Delete. + * arm-generic.md (load_ldsched_x, load_ldsched): Test explicitly + for Xscale variant architectures. + (mult_ldsched_strongarm, mult_ldsched): Similarly for StrongARM. + +2010-04-17 Ramana Radhakrishnan + + * config/arm/arm.c (arm_gen_constant): Remove unused variable + can_shift. + (arm_rtx_costs_1): Remove unused variable extra_cost. + (arm_unwind_emit_set): Use variable offset. + (thumb1_output_casesi): Remove unused variable flags. + +2010-04-16 Jeff Law + + * ira-color.c (ira_reassign_pseudos): Collect and sort all the pseudos + needing assignment rather than doing a two-phase assignment. Remove + unused variable 'm'. + +2010-04-16 Jakub Jelinek + + PR bootstrap/43767 + * alias.c (memrefs_conflict_p): Don't crash if CSELIB_VAL_PTR is NULL. + +2010-04-16 Doug Kwan + + * tree-ssa-reassoc.c (struct operand_entry): Add new field ID. + (next_operand_entry_id): New static variable. + (sort_by_operand_rank): Stabilize qsort comparator by using unique IDs. + (add_to_ops_vec): Assigned unique ID to operand entry. + (struct oecount_s): New field ID. + (oecount_cmp): Stabilize qsort comparotor by using unique IDs. + (undistribute_ops_list): Assign unique IDs to oecounts. + (init_reassoc): reset next_operand_entry_id. + +2010-04-16 Doug Kwan + + * config/i386/i386.md (*jcc_bt): Fix build breakage by adding + missing left parenthesis. + +2010-04-16 Uros Bizjak + + * config/i386/i386.md (*bt): Macroize insn from *btsi and + *btdi_rex64 using SWI48 mode iterator. + (*jcc_bt): Ditto from *jcc_btsi and *jcc_btdi_rex64. + (*jcc_bt_mask): Ditto from *jcc_btsi_mask and + *jcc_btdi_mask_rex64. + +2010-04-16 Anatoly Sokolov + + * double-int.h (tree_to_double_int): Convert to macro. + * double-int.c (tree_to_double_int): Remove. + +2010-04-16 Jakub Jelinek + + PR debug/43762 + * dwarf2out.c (add_bound_info): Always call loc_list_from_tree + with want_address 2 and in case a single element list might be + possible, call it again with want_address 0. + +2010-04-12 Kaushik Phatak + + * config/h8300/h8300.c (print_operand) : Modify case 'V' and + case 'W' print operands for HI mode. + * config/h8300/h8300.h (Y0, Y2) : New constraints. + * config/h8300/h8300.md (bclrqi_msx, bclrhi_msx): New patterns + (bsetqi_msx, bsethi_msx, bnotqi_msx, bnothi_msx): Likewise. + * config/h8300/predicate.md (bit_register_indirect_operand): New. + + * config/h8300/h8300.h (OK_FOR_U): Support 'U' constraint for H8300SX. + + * config/h8300/h8300.md (movqi_h8sx, movhi_h8sx, movsi_h8sx, + cmphi_h8300hs_znvc, cmpsi, addhi3_h8sx) : Emit instructions in + #xx:3 and #xx:4 mode. + + * config/h8300/h8300.md (inverted load with HImode dest): Add + support for H8300SX. + + * config/h8300/predicate.md (bit_operand): Allow immediate values that + satisfy 'U' constraint. + +2010-04-16 Rainer Orth + + * configure.ac: Check for elf_getshdrstrndx or elf_getshstrndx flavor. + * configure: Regenerate. + * config.in: Regenerate. + * doc/install.texi (Prerequisites): Document that Solaris 2 libelf + works. + +2010-04-16 Richard Guenther + + * tree.h (struct tree_decl_minimal): Move pt_uid ... + (struct tree_decl_common): ... here. + (DECL_PT_UID): Adjust. + (SET_DECL_PT_UID): Likewise. + (DECL_PT_UID_SET_P): Likewise. + +2010-04-16 Richard Guenther + + PR tree-optimization/43572 + * tree-ssa-alias.h (call_may_clobber_ref_p): Declare. + * tree-ssa-alias.c (call_may_clobber_ref_p): Export. + * tree-flow.h (is_call_clobbered): Remove. + * tree-flow-inline.h (is_call_clobbered): Likewise. + * tree-dfa.c (dump_variable): Do not dump call clobber state. + * tree-nrv.c (dest_safe_for_nrv_p): Use the alias oracle. + (execute_return_slot_opt): Adjust. + * tree-tailcall.c (suitable_for_tail_opt_p): Remove + check for call clobbered vars here. + (find_tail_calls): Move tailcall verification to the + proper place. + +2010-04-16 Diego Novillo + + * doc/invoke.texi: Explain how are unrecognized -Wno- warnings handled. + +2010-04-16 Bernd Schmidt + + PR target/40603 + * config/arm/arm.md (cbranchqi4): New pattern. + * config/arm/predicates.md (const0_operand, + cbranchqi4_comparison_operator): New predicates. + +2010-04-16 Richard Guenther + + * gimple-pretty-print.c (dump_gimple_phi): Dump alias info. + (dump_gimple_stmt): Likewise. + +2010-04-16 Bernd Schmidt + + * recog.h (struct recog_data): New field is_operator. + (struct insn_operand_data): New field is_operator. + * recog.c (extract_insn): Set recog_data.is_operator. + * genoutput.c (output_operand_data): Emit code to set the + is_operator field. + * reload.c (find_reloads): Use it rather than testing for an + empty constraint string. + + PR target/41514 + * config/arm/arm.md (cbranchsi4_insn): Renamed from "*cbranchsi4_insn". + If the previous insn is a cbranchsi4_insn with the same arguments, + omit the compare instruction. + + * config/arm/arm.md (addsi3_cbranch): If destination is a high + register, inputs must be low registers and we need a low register + scratch. Handle alternative 2 like alternative 3. + +2010-04-16 Jakub Jelinek + + * alias.c (memrefs_conflict_p): If x and y are the same VALUE, + don't call get_addr on both. If one expression is a VALUE and + the other a REG, check VALUE's locs if the REG isn't among them. + +2010-04-16 Christian Bruel + + * config/sh/sh.h (sh_frame_pointer_required): New function. + * config/sh/sh.h (TARGET_FRAME_POINTER_REQUIRED): New macro. + (flag_omit_frame_pointer) Set. + (MASK_ACCUMULATE_OUTGOING_ARGS) Define and Set. + (rounded_frame_size): Adjust size with outgoing_args_size. + (sh_set_return_address): Must return from stack pointer. + * gcc/config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Define. + (SUBTARGET_FRAME_POINTER_REQUIRED): Define. + (ACCUMULATE_OUTGOING_ARGS): Define. + * doc/invoke.texi (maccumulate-outgoing-args): Document for SH. + * gcc/config/sh/sh.opt: (maccumulate-outgoing-args): New option. + +2010-04-15 Kaz Kojima + + PR target/43471 + * config/sh/sh.c (sh_legitimize_reload_address): Use + MAYBE_BASE_REGISTER_RTX_P instead of BASE_REGISTER_RTX_P. + Remove a unneeded check for offset_base. + +2010-04-15 H.J. Lu + + * configure: Regenerated. + +2010-04-15 Andreas Krebbel + + * config/s390/s390.c (s390_call_save_register_used): Switch back + to HARD_REGNO_NREGS. + +2010-04-15 Richard Guenther + + * alias.c (alias_set_subset_of): Handle alias-set zero + child properly. + +2010-04-15 Mark Shinwell + Julian Brown + + * config/arm/thumb2.md (thumb2_movsi_insn): Split ldr and str + alternatives according to use of high and low regs. + * config/arm/vfp.md (thumb2_movsi_vfp): Likewise. + * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Use high regs when + optimizing for size on Thumb-2. + +2010-04-15 Thomas Schwinge + + * config.gcc : Handle softfp as for Linux. + +2010-04-15 Richard Guenther + + * tree-ssa-structalias.c (struct variable_info): Add + is_fn_info flag. + (new_var_info): Initialize it. + (dump_constraints): Support printing last added constraints. + (debug_constraints): Adjust. + (dump_constraint_graph): Likewise. + (make_heapvar_for): Check for NULL cfun. + (get_function_part_constraint): New function. + (get_fi_for_callee): Likewise. + (find_func_aliases): Properly implement IPA PTA constraints. + (process_ipa_clobber): New function. + (find_func_clobbers): Likewise. + (insert_into_field_list_sorted): Remove. + (create_function_info_for): Properly allocate vars for IPA mode. + Do not use insert_into_field_list_sorted. + (create_variable_info_for): Properly generate constraints for + global vars in IPA mode. + (dump_solution_for_var): Always dump the solution. + (set_uids_in_ptset): Initialize DECL_PT_UID if in ipa-mode. + (find_what_var_points_to): Adjust. + (pt_solution_set): Change. + (pt_solution_ior_into): New function. + (pt_solution_empty_p): Export. + (pt_solution_includes_global): Adjust. + (pt_solution_includes_1): Likewise. + (pt_solutions_intersect_1): Likewise. + (dump_sa_points_to_info): Check some invariants. + (solve_constraints): Move constraint dumping ... + (compute_points_to_sets): ... here. + (ipa_pta_execute): ... and here. + (compute_may_aliases): Do not re-compute points-to info + locally if IPA info is available. + (ipa_escaped_pt): New global var. + (ipa_pta_execute): Properly implement IPA PTA. + * tree-into-ssa.c (dump_decl_set): Support dumping + decls not in referenced-vars. + * tree-flow.h (struct gimple_df): Add ipa_pta flag. + * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Adjust. + (dump_points_to_solution): Likewise. + * tree-dfa.c (dump_variable): Also dump DECL_PT_UID. + * tree-inline.c (remap_ssa_name): Copy IPA points-to solution. + (remap_gimple_stmt): Reset call clobber/use information if necessary. + (copy_decl_to_var): Copy DECL_PT_UID. + (copy_result_decl_to_var): Likewise. + * tree.c (make_node_stat): Initialize DECL_PT_UID. + (copy_node_stat): Copy it. + * tree.h (DECL_PT_UID): New macro. + (SET_DECL_PT_UID): Likewise. + (DECL_PT_UID_SET_P): Likewise. + (struct tree_decl_minimal): Add pt_uid member. + * tree-ssa-alias.h (struct pt_solution): Add ipa_escaped flag. + (pt_solution_empty_p): Declare. + (pt_solution_set): Adjust. + (ipa_escaped_pt): Declare. + * cfgexpand.c (update_alias_info_with_stack_vars): Adjust. + * gimple-pretty-print.c (pp_points_to_solution): New function. + (dump_gimple_call): Dump call clobber/use information. + * tree-dump.c (dump_option_value_in): Add TDF_ALIAS entry. + * tree-pass.h (TDF_ALIAS): New dump option. + * tree-pretty-print.c (dump_decl_name): Dump DECL_PT_UID if asked to. + * doc/invoke.texi (-fipa-pta): Update documentation. + +2010-04-15 Richard Guenther + + * Makefile.in (OBJS-common): Add gimple-fold.o. + (gimple-fold.o): New rule. + * tree.h (maybe_fold_offset_to_reference, + maybe_fold_offset_to_address, maybe_fold_stmt_addition): Move + prototypes ... + * gimple.h: ... here. + * tree-flow.h (fold_stmt, fold_stmt_inplace, get_symbol_constant_value, + may_propagate_address_into_dereference): Move prototypes ... + * gimple.h: ... here. + * tree-ssa-ccp.c (get_symbol_constant_value, + may_propagate_address_into_dereference, maybe_fold_offset_to_array_ref, + maybe_fold_offset_to_component_ref, maybe_fold_offset_to_reference, + maybe_fold_offset_to_address, maybe_fold_stmt_indirect, + maybe_fold_stmt_addition, maybe_fold_reference, get_maxval_strlen, + ccp_fold_builtin, fold_gimple_assign, fold_gimple_cond, + fold_gimple_call, fold_stmt_1, fold_stmt, fold_stmt_inplace, + gimplify_and_update_call_from_tree): Move ... + * gimple-fold.c: ... here. New file. + (ccp_fold_builtin): Rename to ... + (gimple_fold_builtin): ... this. + * tree-ssa-ccp.c (execute_fold_all_builtins): Adjust. + +2010-04-15 Richard Guenther + + * fold-const.c (LOWPART, HIGHPART, BASE, encode, decode, + fit_double_type, force_fit_type_double, add_double_with_sign, + neg_double, mul_double_with_sign, lshift_double, rshift_double, + lrotate_double, rrotate_double, div_and_round_double): Move ... + * double-int.c: ... here. + * tree.h (force_fit_type_double, fit_double_type, add_double_with_sign, + add_double, neg_double, mul_double_with_sign, mul_double, + lshift_double, rshift_double, lrotate_double, rrotate_double, + div_and_round_double): Move prototypes ... + * double-int.h: ... here. + +2010-04-15 Bernd Schmidt + + PR target/43742 + * config/sh/sh.md (doloop_end_split, dect): Undo previous patch. Use + matching constraints to ensure inputs match the output. + +2010-04-15 Kaz Kojima + + PR target/43742 + * config/sh/sh.md (doloop_end_split): Remove "+r" constraint + in an input-only operand. + +2010-04-15 Anatoly Sokolov + + * double-int.h (HOST_BITS_PER_DOUBLE_INT): Define. + (double_int_not, double_int_lshift, double_int_rshift): Declare. + (double_int_negative_p): Convert to static inline function. + * double-int.c (double_int_lshift, double_int_lshift): Add new function. + (double_int_negative_p): Remove. + * tree.h (lshift_double, rshift_double): + * tree.c (build_low_bits_mask): Clean up, use double_int_* functions. + * fold-const.c (fold_convert_const_int_from_real, + fold_convert_const_int_from_fixed, div_if_zero_remainder): (Ditto.). + (lshift_double): Change type of arith argument to bool. + (rshift_double): Change type of arith argument to bool. Correct + comment. + * expmed.c (mask_rtx, lshift_value): (Ditto.). + +2010-04-14 Bernd Schmidt + + PR target/21803 + * ifcvt.c (cond_exec_process_if_block): Look for identical sequences + at the start and end of the then/else blocks, and omit them from the + conversion. + * cfgcleanup.c (flow_find_cross_jump): No longer static. Remove MODE + argument; all callers changed. Pass zero to old_insns_match_p instead. + (flow_find_head_matching_sequence): New function. + (old_insns_match_p): Check REG_EH_REGION notes for calls. + * basic-block.h (flow_find_cross_jump, + flow_find_head_matching_sequence): Declare functions. + +2010-04-14 Jason Merrill + + PR c++/36625 + * c-common.c (attribute_takes_identifier_p): New fn. + * c-common.h: Declare it. + +2010-04-14 Uros Bizjak + + * config/i386/i386.md (*divmod4): Remove stray "&&" from + splitter condition. + (*udivmod4): Ditto. + +2010-04-14 Uros Bizjak + + * config/i386/i386.md (maxmin_int): Rename code attribute from + maxminiprefix and update all users. + (maxmin_float): Ditto from maxminfprefix. + (logic): Ditto from logicprefix. + (absneg_mnemonic): Ditto from absnegprefix. + * config/i386/mmx.md: Update all users of maxminiprefix, + maxminfprefix and logicprefix for rename. + * config/i386/sse.md: Ditto. + * config/i386/sync.md (sync_): Update for + logicprefix rename. + +2010-04-14 Manuel López-Ibáñez + + PR 42966 + * diagnostics.c (diagnostic_report_diagnostic): Mark specially + warnings converted to errors. + +2010-04-14 Uros Bizjak + + * config/alpha/alpha.c (alpha_adjust_cost): Remove set but not + used insn_type variable. + (function_value): Add ATTRIBUTE_UNUSED to dummy variable declaration + to avoid set-but-not-used warning. + +2010-04-14 Uros Bizjak + + * df-core.c (df_ref_debug): Change format string placeholder + from 0x%x to %#x. + * dwarf2asm.c (dw2_asm_output_data_raw, + dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_uleb128, + dw2_asm_output_data_sleb128_raw, dw2_asm_output_data_sleb128): Ditto. + * dwarf2out.c (output_cfi, output_cfi_directive, + dwarf2out_do_cfi_startproc, output_loc_sequence_raw, + output_cfa_loc_raw, output_die, output_ranges, output_file_names): + Ditto. + * genattrtab.c (write_test_expr, write_attr_valueq): Ditto. + * print-rtl.c (print_rtx): Ditto. + +2010-04-14 Michael Meissner + + PR middle-end/42694 + * builtins.c (expand_builtin_pow_root): New function to expand pow + calls with exponents 0.25, 0.50, 0.75, 1./3., and 1./6. into a + series of sqrt and cbrt calls under -ffast-math. + (expand_builtin_pow): Call it. + +2010-04-14 Michael Matz + + PR tree-optimization/42963 + * tree-cfg.c (touched_switch_bbs): New static variable. + (group_case_labels_stmt): New function broken out from ... + (group_case_labels): ... here, use the above. + (start_recording_case_labels): Allocate touched_switch_bbs. + (end_recording_case_labels): Deallocate it, call + group_case_labels_stmt. + (gimple_redirect_edge_and_branch): Remember index of affected BB. + +2010-04-14 Uros Bizjak + + * config/i386/i386.md (*popcountsi2_cmp_zext): Remove mode attribute + from insn template. + +2010-04-14 Uros Bizjak + + * config/i386/i386.md (*ashlqi3_1_slp): New insn pattern. + +2010-04-13 Jan Hubicka + + * ipa-inline.c (cgraph_mark_inline_edge): Avoid double accounting + of optimized out static functions. + (cgraph_edge_badness): Add DUMP parameter and dump reasons for the + cost computation. Also sanity check for overflows. + (update_caller_keys): Update cgraph_edge_badness call; properly + update fibheap and sanity check that it is up to date. + (add_new_edges_to_heap): Update cgraph_edge_badness. + (cgraph_decide_inlining_of_small_function): Likewise; + add sanity checking that badness in heap is up to date; + improve dumping of reason; Update badness of calls to the + offline copy of function currently inlined; dump badness + of functions not inlined because of unit growth limits. + +2010-04-13 Eric Botcazou + + PR middle-end/32628 + * c-common.c (pointer_int_sum): Disregard overflow that occured only + because of sign-extension change when converting to sizetype here... + * fold-const.c (fold_convert_const_int_from_int): ...and not here. + + * fold-const.c (fold_binary_op_with_conditional_arg): Do not restrict + the folding to constants. Remove redundant final conversion. + (fold_binary) : Do not associate if the re-association of + constants alone overflows. + (fold_binary) : Move transformation into BIT_AND_EXPR + to the end of the list. + (multiple_of_p) : New case. + +2010-04-13 Manuel López-Ibáñez + + * opt-functions.awk (opt_sanitized_name): New. + (opt_enum): New. + * optc-gen.awk: Use it + * opth-gen.awk: Use it. + 2010-04-13 Martin Jambor * tree-sra.c (replace_uses_with_default_def_ssa_name): New function. @@ -16,11 +1327,9 @@ * Makefile.in (c-pch.o, ggc-common.o): Depend on timevar.h. * c-pch.c: Include timevar.h. (c_common_write_pch): Use TV_PCH_SAVE and TV_PCH_CPP_SAVE timers. - (c_common_read_pch): Use TV_PCH_RESTORE and TV_PCH_CPP_RESTORE - timers. + (c_common_read_pch): Use TV_PCH_RESTORE and TV_PCH_CPP_RESTORE timers. * ggc-common.c: Include timevar.h. - (gt_pch_save): Use TV_PCH_PTR_REALLOC and TV_PCH_PTR_SORT - timers. + (gt_pch_save): Use TV_PCH_PTR_REALLOC and TV_PCH_PTR_SORT timers. * timevar.def (TV_PCH_SAVE): Define. (TV_PCH_CPP_SAVE): Define. (TV_PCH_PTR_REALLOC): Define. @@ -104,11 +1413,11 @@ * except.c (lang_eh_type_covers): Likewise. 2010-04-13 Andreas Krebbel - Ulrich Weigand - + Ulrich Weigand + * gcc/config/s390/s390.md: Replace TARGET_64BIT with TARGET_ZARCH. * gcc/config/s390/s390.c: Replace UNTIS_PER_WORD with - UNITS_PER_LONG where it is ABI relevant. + UNITS_PER_LONG where it is ABI relevant. (s390_return_addr_rtx): Likewise. (s390_back_chain_rtx): Likewise. (s390_frame_area): Likewise. @@ -139,7 +1448,7 @@ (DWARF_CIE_DATA_ALIGNMENT): New macro. (s390_expand_setmem): Remove unused variable src_addr. * gcc/longlong.h: Make smul_ppmm and sdiv_qrnnd inline asms to - deal with 64 bit registers. + deal with 64 bit registers. * gcc/config/s390/s390.h: Define __zarch__ predefined macro. Replace UNITS_PER_WORD with UNITS_PER_LONG where it is ABI relevant. (UNITS_PER_LONG): New macro. @@ -454,7 +1763,7 @@ (arm_output_addr_const_extra): Output expression for new pattern. * config/arm/arm.md (UNSPEC_SYMBOL_OFFSET): New unspec symbol. -2010-04-10 Bernd Schmidt +2010-04-10 Bernd Schmidt * ira-costs.c (record_reg_classes): Ignore alternatives that are not enabled. @@ -484,7 +1793,7 @@ * ipa-prop.c (ipa_print_node_jump_functions): Likewise. 2010-04-09 Eric Botcazou - Bernd Schmidt + Bernd Schmidt * loop-invariant.c (replace_uses): New static function. (move_invariant_reg): Use it to ensure we can replace the uses. @@ -2018,7 +3327,7 @@ * c-decl.c (grokparms): Set arg_types to NULL_TREE if there was an error. -2010-03-19 Bernd Schmidt +2010-03-19 Bernd Schmidt PR rtl-optimization/42258 * ira-lives.c (check_and_make_def_conflict): Ignore conflict for a