X-Git-Url: http://git.sourceforge.jp/view?a=blobdiff_plain;f=gcc%2FChangeLog;h=f702110c332189b6b81303b60fd93affdad76f51;hb=0ca212b8bd0fdb1d7d94c440a9b3c4ca66b242d5;hp=e46891f60bec4b2bb19270f303ad1fe7d2419c6e;hpb=1ce992299e746ac58500cbf606f0c35743d2ded7;p=pf3gnuchains%2Fgcc-fork.git diff --git a/gcc/ChangeLog b/gcc/ChangeLog index e46891f60be..19f96be2bf4 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,1272 @@ +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. + (sra_modify_assign): Delete stmts loading dead data even if racc has no + children. Call replace_uses_with_default_def_ssa_name to handle + SSA_NAES on lhs. + +2010-04-13 Michael Matz + + PR middle-end/43730 + * builtins.c (expand_builtin_interclass_mathfn): Also create + a register if the predicate doesn't match. + +2010-04-13 Diego Novillo + + * 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. + * ggc-common.c: Include timevar.h. + (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. + (TV_PCH_PTR_SORT): Define. + (TV_PCH_RESTORE): Define. + (TV_PCH_CPP_RESTORE): Define. + +2010-04-13 Michael Matz + + * tree-ssa-reassoc.c (repropagate_negates): Merge negates also + into MINUS_EXPRs. + (can_reassociate_p): New function. + (break_up_subtract_bb, reassociate_bb): Use it. + +2010-04-13 Richard Guenther + + PR bootstrap/43737 + * builtins.c (c_readstr): Fix assert. + +2010-04-13 Uros Bizjak + + * config/i386/i386.md (extendsidi2 splitter): Also check for DX_REG + when generating cltd insn. + + (*ashl3_1): Remove special handling for register operand 2. + (*ashlsi3_1_zext): Ditto. + (*ashlhi3_1): Ditto. + (*ashlhi3_1_lea): Ditto. + (*ashlqi3_1): Ditto. + (*ashlqi3_1_lea): Ditto. + (*3_1): Ditto. + (*si3_1_zext): Ditto. + (*qi3_1_slp): Ditto. + (*3_1): Ditto. + (*si3_1_zext): Ditto. + (*qi3_1_slp): Ditto. + +2010-04-13 Richard Guenther + + * tree-ssa-structalias.c (callused_id): Remove. + (call_stmt_vars): New. + (get_call_vi): Likewise. + (lookup_call_use_vi): Likewise. + (lookup_call_clobber_vi): Likewise. + (get_call_use_vi): Likewise. + (get_call_clobber_vi): Likewise. + (make_transitive_closure_constraints): Likewise. + (handle_const_call): Adjust to do per-call call-used handling. + (handle_pure_call): Likewise. + (find_what_var_points_to): Remove general callused handling. + (init_base_vars): Likewise. + (init_alias_vars): Initialize call_stmt_vars. + (compute_points_to_sets): Process call-used and call-clobbered + vars for call statements. + (delete_points_to_sets): Free call_stmt_vars. + +2010-04-13 Richard Guenther + + * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): + Only add RW dependence for dependence distance zero. + Adjust maximal vectorization factor according to dependences. + Move alignment handling ... + (vect_find_same_alignment_drs): ... here. New function. + (vect_analyze_data_ref_dependences): Adjust. + (vect_analyze_data_refs_alignment): Call vect_find_same_alignment_drs. + (vect_analyze_data_refs): Adjust minimal vectorization factor + according to data references. + * tree-vect-loop.c (vect_analyze_loop): Analyze data-ref + dependences before determining the vectorization factor. + Analyze alignment after determining the vectorization factor. + * tree-vect-slp.c ((vect_slp_analyze_bb): Analyze data-ref + dependences before alignment. + * tree-vectorizer.h (vect_analyze_data_ref_dependences): + Adjust prototype. + (vect_analyze_data_refs): Likewise. + (MAX_VECTORIZATION_FACTOR): New define. + +2010-04-13 Duncan Sands + + * except.h (lang_eh_type_covers): Remove. + * except.c (lang_eh_type_covers): Likewise. + +2010-04-13 Andreas Krebbel + 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. + (s390_return_addr_rtx): Likewise. + (s390_back_chain_rtx): Likewise. + (s390_frame_area): Likewise. + (s390_frame_info): Likewise. + (s390_initial_elimination_offset): Likewise. + (save_gprs): Likewise. + (s390_emit_prologue): Likewise. + (s390_emit_epilogue): Likewise. + (s390_function_arg_advance): Likewise. + (s390_function_arg): Likewise. + (s390_va_start): Likewise. + (s390_gimplify_va_arg): Likewise. + (s390_function_profiler): Likewise. + (s390_optimize_prologue): Likewise. + (s390_rtx_costs): Likewise. + (s390_secondary_reload): Likewise. + (s390_promote_function_mode): Likewise. + (s390_hard_regno_mode_ok): Replace TARGET_64BIT with TARGET_ZARCH. + (s390_scalar_mode_supported_p): Disallow TImode if no 64 bit + registers available. + (s390_unwind_word_mode): New function. + (s390_function_value): Split 64 bit values into register pair if + used as return value. + (s390_call_saved_register_used): Don't use HARD_REGNO_NREGS for + function call parameters. Handle parallels. + (TARGET_SCALAR_MODE_SUPPORTED_P): New macro. + (HARD_REGNO_CALL_PART_CLOBBERED): New macro. + (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. + * 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. + * libjava/include/s390-signal.h: Define extended ucontext + structure containing the upper halfs of the 64 bit registers. + +2010-04-13 Simon Baldwin + + * cfgexpand.c (gimple_expand_cfg): Clarify warning message text. + +2010-04-13 Eric Botcazou + + * gimple.c (walk_gimple_op) : Do not request a pure + rvalue on the RHS if the LHS is of a non-renamable type. + * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Fold result. + +2010-04-13 Matthias Klose + + * gcc.c (cc1_options): Handle -iplugindir before processing + the cc1 spec. Only add -iplugindir once. + (cpp_unique_options): Add -iplugindir option if -fplugin* options + found. + * common.opt (iplugindir): Remove `Separate' property, initialize. + * plugin.c (default_plugin_dir_name): Error with missing -iplugindir + option. + * Makefile.in (check-%, check-parallel-%): Create plugin dir. + (distclean): Remove plugin dir. + * doc/invoke.texi: Document -iplugindir. + +2010-04-13 Basile Starynkevitch + + * doc/plugins.texi (Loading Plugins): Document short + -fplugin=foo option. + (Plugin API): Mention default_plugin_dir_name function. + + * gcc.c (find_file_spec_function): Add new declaration. + (static_spec_func): Use it for "find-file". + (find_file_spec_function): Add new function. + (cc1_options): Add -iplugindir option if -fplugin* options found. + + * gcc-plugin.h (default_plugin_dir_name): Added new declaration. + + * plugin.c (add_new_plugin): Updated comment, and handle short + plugin name. + (default_plugin_dir_name): Added new function. + + * common.opt (iplugindir): New option to set the plugin directory. + +2010-04-12 Uros Bizjak + + * config/i386/i386.md (any_rotate): New code iterator. + (rotate_insn): New code attribute. + (rotate): Ditto. + (SWIM124): New mode iterator. + (ti3): New expander. + (di3): Macroize expander from {rotl,rotr}di3 using + any_rotate code iterator. + (3) Macroize expander from {rotl,rotr}{qi,hi,si}3 + using any_rotate code iterator and SWIM124 mode iterator. + (ix86_rotlti3): New insn_and_split pattern. + (ix86_rotrti3): Ditto. + (ix86_rotl3_doubleword): Macroize insn_and_split pattern from + ix86_rotl{di,ti}3 patterns. + (ix86_rotr3_doubleword): Ditto from ix86_rotr{di,ti}3 patterns. + (*3_1): Merge with *{rotl,rotr}{qi,hi,si}3_1_one_bit + and *{rotl,rotr}di3_1_one_bit_rex64. Macroize insn from + *{rotl,rotr}{qi,hi,si}3_1 and *{rotl,rotr}di3_1_rex64 using any_rotate + code iterator and SWI mode iterator. + (*si3_1_zext): Merge with *{rotl,rotr}si3_1_one_bit_zext. + Macroize insn from {rotl,rotr}si3_1_zext using any_rotate + code iterator. + (*qi3_1_slp): Merge with *{rotl,rotr}qi3_1_one_bit_slp. + Macroize insn from {rotl,rotr}qi3_1_slp using any_rotate code iterator. + (bswap rotatert splitter): Add splitter. + (bswap splitter): Macroize splitter using any_rotate code iterator. + Add insn predicate to split only for TARGET_USE_XCHGB or when + optimizing function for size. + +2010-04-12 Steve Ellcey + + * config/pa/pa.c (emit_move_sequence): Remove use of + deleted variable flag_argument_noalias. + +2010-04-12 Rainer Orth + + * config.gcc: Removed *-*-solaris2.7* from list of obsolete + configurations. + Add to unsupported targets list. + * configure.ac (gcc_cv_as_tls): Removed i[34567]86-*-solaris2.[567]*, + sparc*-sun-solaris2.[567]* from target lists. + * configure: Regenerate. + * doc/install.texi (Specific, *-*-solaris2*): Document Solaris 7 + removal. + Remove Solaris 7 patch references. + (Specific, sparc-sun-solaris2.7): Removed. + (sparc-sun-solaris2*): Update Solaris 7 example. + (sparc64-*-solaris2*): Likewise. + +2010-04-12 Rainer Orth + + * config.build (alpha*-dec-osf4*): Remove. + * config.gcc: Remove alpha*-dec-osf4*, alpha-dec-osf5.0* from list + of obsolete configurations. + (alpha*-dec-osf[45]*): Remove alpha*-dec-osf4*, alpha-dec-osf5.0* + support. + * config/alpha/t-osf4: Renamed to ... + * config/alpha/t-osf5: ... this. + * config/alpha/osf.h: Renamed to ... + * config/alpha/osf5.h: ... this. + Merged old osf5.h contents. + Update comments. + (ASM_SPEC): Use ASM_OLDAS_SPEC directly. + (EXTRA_SPECS): Removed. + * doc/install.texi (Specific, alpha*-dec-osf5.1): Renamed to + reflect removal of Tru64 UNIX V4.0/V5.0 support. + Document that. + +2010-04-12 Rainer Orth + + * doc/contrib.texi (Contributors, Rainer Orth): Update. + +2010-04-12 Kai Tietz + + PR/43702 + * config/i386/i386.c (x86_this_parameter): Handle aggregate for + __thiscall convention. + 2010-04-12 Steve Ellcey * config/pa/pa.c (hppa_legitimize_address): Remove unused variable @@ -46,8 +1315,7 @@ * ipa.c (cgraph_postorder): Adjust postorder to guarantee single-iteration always-inline inlining. * ipa-inline.c (cgraph_mark_inline): Do not return anything. - (cgraph_decide_inlining): Do not handle always-inline - specially. + (cgraph_decide_inlining): Do not handle always-inline specially. (try_inline): Remove always-inline cycle detection special case. Do not recurse on always-inlines. (cgraph_early_inlining): Do not iterate if not optimizing. @@ -102,25 +1370,20 @@ * config/i386/i386.md (any_shiftrt): New code iterator. (shiftrt_insn): New code attribute. (shiftrt): Ditto. - (3): Macroize expander from ashr3 and - lshr3 using any_shiftrt code iterator. + (3): Macroize expander from {ashr,lshr}3 + using any_shiftrt code iterator. (*3_doubleword): Macroize insn_and_split from - *ashr3_doubleword and *lshr3_doubleword using - any_shiftrt code iterator. + *{ashr,lshr}3_doubleword using any_shiftrt code iterator. (*3_doubleword peephole2): Macroize peephole2 pattern from corresponding peephole2 patterns. - (*3_1): Macroize insn from *ashr3_1 - and *lshr3_1 using any_shiftrt code iterator. - (*si3_1_zext): Ditto from *ashrsi3_1_zext - and *lshrsi3_1_zext. - (*qi3_1_slp): Ditto from *ashrqi3_1_slp - and *lshrqi3_1_slp. - (*3_cmp): Ditto from *ashr3_cmp - and *lshr3_cmp. - (*3_cmp_zext): Ditto from *ashr3_cmp_zext - and *lshr3_cmp_zext. - (*3_cconly): Ditto from *ashr3_cconly - and *lshr3_cconly. + (*3_1): Macroize insn from *{ashr,lshr}3_1 + using any_shiftrt code iterator. + (*si3_1_zext): Ditto from *{ashr,lshr}si3_1_zext. + (*qi3_1_slp): Ditto from *{ashr,lshr}qi3_1_slp. + (*3_cmp): Ditto from *{ashr,lshr}3_cmp. + (*3_cmp_zext): Ditto from + *{ashr,lshr}3_cmp_zext. + (*3_cconly): Ditto from *{ashr,lshr}3_cconly. 2010-04-11 Uros Bizjak @@ -138,8 +1401,8 @@ (*lshr3_doubleword peephole2): Macroize peephole2 pattern from corresponding peephole2 patterns. (*lshr3_1): Merge with *lshr{qi,hi,si}3_1_one_bit and - *lshrdi3_1_one_bit_rex64. Macroize insn from *lshr{qi,hi,si}3_cmp - and *lshrdi3_cmp_rex64 using SWI mode iterator. + *lshrdi3_1_one_bit_rex64. Macroize insn from *lshr{qi,hi,si}3_1 + and *lshrdi3_1_rex64 using SWI mode iterator. (*lshrsi3_1_zext): Merge with *lshrsi3_1_one_bit_zext. (*lshrqi3_1_slp): Merge with *lshrqi3_1_one_bit_slp. (*lshr3_cmp): Merge with *lshr{qi,hi,si}3_one_bit_cmp and @@ -166,8 +1429,8 @@ (x86_shift_adj_3): Macroize expander from x86_shift_adj_3 and x86_64_shift_adj_3 using SWI48 mode iterator. (*ashr3_1): Merge with *ashr{qi,hi,si}3_1_one_bit and - *ashrdi3_1_one_bit_rex64. Macroize insn from *ashr{qi,hi,si}3_cmp - and *ashrdi3_cmp_rex64 using SWI mode iterator. + *ashrdi3_1_one_bit_rex64. Macroize insn from *ashr{qi,hi,si}3_1 + and *ashrdi3_1_rex64 using SWI mode iterator. (*ashrsi3_1_zext): Merge with *ashrsi3_1_one_bit_zext. (*ashrqi3_1_slp): Merge with *ashrqi3_1_one_bit_slp. (*ashr3_cmp): Merge with *ashr{qi,hi,si}3_one_bit_cmp and @@ -191,7 +1454,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. @@ -221,7 +1484,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. @@ -1755,7 +3018,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