X-Git-Url: http://git.sourceforge.jp/view?p=pf3gnuchains%2Fgcc-fork.git;a=blobdiff_plain;f=gcc%2FChangeLog;h=3a1566b9d3e76539b3eb6ee34037a7ad55a93065;hp=bb298373de89e33978ec334284772199b34ff9fc;hb=2ccdedfd0da7f3ea4b1b5d2f3ded07addcd69a4d;hpb=154edec0f6ff783a81070be2e4c26340bc4464ff diff --git a/gcc/ChangeLog b/gcc/ChangeLog index bb298373de8..3a1566b9d3e 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,449 @@ +2008-04-22 Maxim Kuvyrkov + + Support scheduling for ColdFire V1 and V3 microarchitecture. + Improve scheduling of multiplication instructions. + + * config/m68k/m68k.md (cpu): Add cfv1 and cfv3. Rename cf_v2 to cfv1. + (mac): New instruction attribute. + * config/m68k/m68k.c (override_options): Handle cfv1, cfv3 and mac. + (m68k_sched_mac): New variable. + (m68k_sched_attr_type2, m68k_sched_md_init_global): Update. + Handle cfv1 and cfv3. + (max_insn_size): New static variable. + (struct _sched_ib): New type. + (sched_ib): New static variable. + (sched_ib_size, sched_ib_filled, sched_ib_insn): Convert variables + to fields of 'struct _sched_ib sched_ib'. Update all uses. + (m68k_sched_variable_issue): Add modeling of cfv3 instruction buffer. + Update. + (m68k_sched_md_init_global, m68k_sched_md_finish_global, + m68k_sched_md_init, m68k_sched_md_finish): Handle cfv1 and cfv3. Init + new variables. Update. + (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle): + Add modeling of cfv3 instruction buffer. Update. + * config/m68k/m68k-protos.h (m68k_sched_mac): Declare. + * config/m68k/m68k.h (TUNE_CFV3): New macro. + * config/m68k/cf.md: Change substrings 'cf_v2' to 'cfv12' or 'cfv123'. + (cf_* reservations): Rename to cfv12 or cfv123 to indicate cores + a particular reservation applies to. + (type2): Reorganize attribute values. Rename alu to alu_reg, + alu_l to alu, move_l to omove. Join move to alu. Split mul + to mul_l and mul_w. + (cf_ib_*): Simplify description of instruction buffer. + (cf_ib_w0, cf_ib_w4, cf_ib_w5, cf_ib_w6): Remove. + (cf_mem): Split into cf_mem1 and cf_mem2. + (cf_v2_move_??): Rename to cfv12_alu_??. + (cf_v2_move_l_??): Rename to cfv12_omove_??. + (cf_v2_mul_??): Remove reservations. + (cfv12_mul_l_??, cfv12_mul_w_??, cfv12_mac_w_??, cfv12_mac_l_??, + cfv12_emac_??, cfv12_emac_w_i0): New reservations. + (cfv12_rts, cfv12_call, cfv12_bcc, cfv12_bra, cfv12_jmp): Move to + appropriate place. + (cfv3_alu_10, cfv3_omove_10, cfv3_alu_i0, cfv3_omove_i0, cfv3_alu_01, + cfv3_alu_0i, cfv3_alu_11, cfv3_omove_11, cfv3_alu_i1, cfv3_omove_i1, + cfv3_alu_1i, cfv3_omove_1i, cfv3_pea_11, cfv3_pea_i1, cfv3_mul_w_10, + cfv3_mul_l_10, cfv3_mul_w_i0, cfv3_mac_w_10, cfv3_mac_l_10, + cfv3_mac_w_i0, cfv3_emac_10, cfv3_emac_w_i0, cfv3_rts, cfv3_call, + cfv3_bcc, cfv3_bra, cfv3_jmp): New reservations. + (cfv3_*_1, cfv3_*_2, cfv3_*_3): New instruction reservations that are + expansions of the above reservations for instructions of sizes + 1, 2 and 3 words. + +2008-04-22 Maxim Kuvyrkov + + * rtl-factoring.c (collect_patterns_seqs): Handle CC0 targets. + +2008-04-21 Adam Nemet + + * coverage.c: Include tree-pass.h. + (coverage_counter_alloc): Print da_file_name to the dump file. + +2008-04-21 Kenneth Zadeck + + * sbitmap.c (sbitmap_range_empty_p): New function. + * sbitmap.h (sbitmap_range_empty_p): New function. + * bitmap.h: Now includes obstack.h. + +2008-04-21 Richard Sandiford + Kenneth Zadeck + + * dbgcnt.def (ra_byte_scan): Added. + * dbgcnt.c (dbg_cnt): Added code to print message to dump_file + when the last hit happens for a counter. + * timevar.def (TV_DF_BYTE_LR): New variable. + * tree-pass.h (pass_fast_rtl_byte_dce): New pass. + * passes.c (pass_fast_rtl_byte_dce): New pass. + * fwprop.c (update_df): Added mode to call df_ref_create. + Renamed DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and + DF_REF_EXTRACT_OFFSET. + * df.h (DF_BYTE_LR, DF_BYTE_LR_BB_INFO, DF_BYTE_LR_IN, + DF_BYTE_LR_OUT, df_byte_lr): New macro. + (df_mm): New enum. + (df_ref_extract): Added mode field. + (DF_REF_WIDTH, DF_REF_OFFSET) Renamed to DF_REF_EXTRACT_WIDTH and + DF_REF_EXTRACT_OFFSET. + (DF_REF_EXTRACT_MODE): New macro. + (df_byte_lr_bb_info): New structure. + (df_print_byte_regset, df_compute_accessed_bytes, + df_byte_lr_add_problem, df_byte_lr_get_regno_start, + df_byte_lr_get_regno_len, df_byte_lr_simulate_defs, + df_byte_lr_simulate_uses, + df_byte_lr_simulate_artificial_refs_at_top, + df_byte_lr_simulate_artificial_refs_at_end, + df_compute_accessed_bytes): New function. + (df_ref_create): Add parameter. + (df_byte_lr_get_bb_info): New inline function. + * df-scan.c (df_ref_record, df_uses_record, + df_ref_create_structure): Added mode parameter. + (df_ref_create, df_notes_rescan, df_ref_record, df_def_record_1, + df_defs_record, df_uses_record, df_get_conditional_uses, + df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect, + df_entry_block_defs_collect, df_exit_block_uses_collect): + Added mode parameter to calls to df_ref_record, df_uses_record, + df_ref_create_structure. + (df_ref_equal_p, df_ref_compare): Added test for modes. + (df_ref_create_structure): Added code to set mode. Renamed + DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and + DF_REF_EXTRACT_OFFSET. + * df-core.c (df_print_byte_regset): New function. + * df-byte-scan.c: New file. + * df-problems.c (df_rd_transfer_function): Removed unnecessary + calls to BITMAP_FREE. + (df_byte_lr_problem_data, df_problem problem_BYTE_LR): New structure. + (df_byte_lr_get_regno_start, df_byte_lr_get_regno_len, + df_byte_lr_set_bb_info, df_byte_lr_free_bb_info, + df_byte_lr_check_regs, df_byte_lr_expand_bitmap, + df_byte_lr_alloc, df_byte_lr_reset, df_byte_lr_bb_local_compute, + df_byte_lr_local_compute, df_byte_lr_init, + df_byte_lr_confluence_0, df_byte_lr_confluence_n, + df_byte_lr_transfer_function, df_byte_lr_free, + df_byte_lr_top_dump, df_byte_lr_bottom_dump, + df_byte_lr_add_problem, df_byte_lr_simulate_defs, + df_byte_lr_simulate_uses, + df_byte_lr_simulate_artificial_refs_at_top, + df_byte_lr_simulate_artificial_refs_at_end): New function. + * dce.c (byte_dce_process_block): New function. + (dce_process_block): au is now passed in rather than computed + locally. Changed loops that look at artificial defs to not look + for conditional or partial ones, because there never are any. + (fast_dce): Now is able to drive byte_dce_process_block or + dce_process_block depending on the kind of dce being done. + (rest_of_handle_fast_dce): Add parameter to fast_dce. + (rest_of_handle_fast_byte_dce): New function. + (rtl_opt_pass pass_fast_rtl_byte_dce): New pass. + * Makefile.in (df-byte-scan.o, debugcnt.o): Added dependencies. + +2008-04-21 Daniel Franke + + PR fortran/35019 + * gcc.h: Added fortran options that take arguments to + DEFAULT_SWITCH_TAKES_ARG and DEFAULT_WORD_SWITCH_TAKES_ARG + macros. + +2008-04-20 Eric Botcazou + + * tree-sra.c (sra_walk_expr) : Disable + scalarization if on the LHS and not a full access. + +2008-04-20 Ralf Wildenhues + + * Makefile.in (s-gtyp-input): Remove tmp-gi.list before writing it. + +2008-04-18 Rafael Espindola + + * tree-vrp.c (find_case_label_index): Fix the binary search. + (find_case_label_range): New. + (vrp_visit_switch_stmt): Use find_case_label_range. + (simplify_switch_using_ranges): Use find_case_label_range. + +2008-04-18 Eric Botcazou + + * gimplify.c (gimplify_modify_expr_rhs) : Gimplify the LHS + using the is_gimple_lvalue predicate instead of is_gimple_min_lval. + +2008-04-18 Tom Tromey + + PR libcpp/15500: + * doc/cpp.texi (Implementation-defined behavior): Mention + -finput-charset. + +2008-04-18 Ian Lance Taylor + + * fold-const.c (pointer_may_wrap_p): New static function. + (fold_comparison): Add another test for pointer overflow. Use + pointer_may_wrap_p to disable some false positives. + +2008-04-18 Kris Van Hees + + * c-common.c (CHAR16_TYPE, CHAR32_TYPE): New macros. + (fname_as_string): Match updated cpp_interpret_string prototype. + (fix_string_type): Support char16_t* and char32_t*. + (c_common_nodes_and_builtins): Add char16_t and char32_t (and + derivative) nodes. Register as builtin if C++0x. + (c_parse_error): Support CPP_CHAR{16,32}. + * c-common.h (RID_CHAR16, RID_CHAR32): New elements. + (enum c_tree_index) : New elements. + (char16_type_node, signed_char16_type_node, unsigned_char16_type_node, + char32_type_node, signed_char32_type_node, char16_array_type_node, + char32_array_type_node): New defines. + * c-lex.c (cb_ident): Match updated cpp_interpret_string prototype. + (c_lex_with_flags): Support CPP_CHAR{16,32} and CPP_STRING{16,32}. + (lex_string): Support CPP_STRING{16,32}, match updated + cpp_interpret_string and cpp_interpret_string_notranslate prototypes. + (lex_charconst): Support CPP_CHAR{16,32}. + * c-parser.c (c_parser_postfix_expression): Support CPP_CHAR{16,32} + and CPP_STRING{16,32}. + +2008-04-18 Paolo Bonzini + + PR bootstrap/35457 + * aclocal.m4: Regenerate. + * configure: Regenerate. + +2008-04-18 Jan Hubicka + + * except.c (dw2_size_of_call_site_table, + sjlj_size_of_call_site_table): Use vector API for call_site_record. + + * cgraphbuild.c (build_cgraph_edges): Update. + * tree-pass.h: Update comment. + * final.c (leaf_function_p): Update. + (leaf_renumber_regs): Update. + (rest_of_clean_state): Update. + * omp-low.c (expand_omp_parallel): Update. + * ipa-reference.c (analyze_function): Update. + * reorg.c (find_end_label): Update. + (optimize_skip): Update. + (fill_simple_delay_slots): Update. + (fill_simple_delay_slots): Update. + (make_return_insns): Update. + (dbr_schedule): Update. + * gimple-low.c (record_vars_into): Update. + * cfgbuild.c (make_edges): Update. + * function.c (assign_stack_local): Update. + (assign_parm_adjust_stack_rtl): Update. + (locate_and_pad_parm): Update. + (allocate_struct_function): Do not initialize stack_alignment_needed + and preferred_stack_boundary here. + (stack_protect_prologue): Update. + (stack_protect_epilogue): Update. + (expand_function_start): Initialize stack_alignment_needed, + preferred_stack_boundary and max_jumptable_ents. + (expand_function_end): Update. + (free_after_compilation): Do not NULLify epilogue_delay_list. + * function.h (struct rtl_data): Add stack_protect_guard, + stack_alignment_needed, + preferred_stack_boundary, epilogue_delay_list. + (struct function): Remove value_histograms, stack_alignment_needed, + preferred_stack_boundary, epilogue_delay_list, max_jumptable_ents, + last_label_uid, + unexpanded_var_list, stack_protect_guard. + (current_function_epilogue_delay_list): Remove. + * ipa-type-escape.c (analyze_function): Update. + * gimplify.c (pop_gimplify_context): Update comment. + * calls.c (expand_call): Update. + (emit_library_call_value_1): Update. + * except.c (set_nothrow_function_flags): Update. + * cfgexpand.c (get_decl_align_unit): Update. + (create_stack_guard): Update. + (estimated_stack_frame_size): Update. + (expand_used_vars): Update. + (tree_expand_cfg): Free histogram earliers, init expansion variables. + * explow.c (allocate_dynamic_stack_space): Update. + * tree-ssa-live.c (remove_unused_locals): Update. + * varasm.c (mark_constant_pool): Update. + * tree-inline.c (remap_decls): Update. + (initialize_cfun): Update. + (declare_return_variable): Update. + (inline_forbidden_p): Update. + (expand_call_inline): Update. + (declare_inline_vars): Update. + (tree_function_versioning): Update. + * tree-flow.h (value_histograms): New. + (VALUE_HISTOGRAMS): New macro. + * basic-block.h (control_flow_graph): Add max_jumptable_ents, + last_label_uid. + * tree-cfg.c (set_bb_for_stmt): Update. + (replace_by_duplicate_decl): Update. + (move_block_to_fn): Update. + (new_label_mapper): Update. + (dump_function_to_file): Update. + * ipa-struct-reorg.c (build_data_structure): Update. + * cfgrtl.c (print_rtl_with_bb): Update. + * reload1.c (reload): Update. + (reload): Update. + * config/i386/i386.c (setup_incoming_varargs_64, + ix86_compute_frame_layout): Update. + * config/arc/arc.c (arc_output_function_epilogue): Update. + +2008-04-18 Marius Strobl + + * gthr-posix.h (__gthread_active_p): Use the Solaris implementation + for FreeBSD as well. + * gthr-posix95.h: Likewise. + +2008-04-17 Richard Sandiford + + PR rtl-optimization/35838 + * dse.c (find_shift_sequence): Use subreg_lowpart_offset to work + out the byte offset of the first subreg. + +2008-04-17 Uros Bizjak + + * config/i386/i386.md (addti3 splitter): Pass arrays of 3 operands + to split_ti instead of three separate calls with single member arrays. + (subti3 splitter): Ditto. + (adddi3 splitter): Ditto with split_di. + (subdi3 splitter): Ditto. + (negti2 splitter): Pass arrays of 2 operands to split_ti instead of + two separate calls with single member arrays. Swap match_dup + operands 1 and 2 to better fit into the array. + (negdi2 splitter): Ditto with split_di. + (movdfcc splitter): Pass arrays of 2 operands to split_di instead of + two separate calls with single member arrays. Swap match_dup operands + 6 and 7 to better fit into the array. + +2008-04-17 H.J. Lu + + * config/i386/i386.c (sse_builtin_type): New. + (bdesc_sse_args): Likewise. + (bdesc_sse_3arg): Removed. + (bdesc_2arg): Remove IX86_BUILTIN_AESKEYGENASSIST128. + (bdesc_1arg): Remove IX86_BUILTIN_ROUNDPD and + IX86_BUILTIN_ROUNDPS. + (ix86_init_mmx_sse_builtins): Handle bdesc_sse_args. Remove + bdesc_sse_3arg. Remove IX86_BUILTIN_ROUNDPD and + IX86_BUILTIN_ROUNDPS. + (ix86_expand_sse_4_operands_builtin): Removed. + (ix86_expand_sse_operands_builtin): New. + (ix86_expand_unop_builtin): Remove CODE_FOR_sse4_1_roundpd + and CODE_FOR_sse4_1_roundps. + (ix86_expand_builtin): Remove IX86_BUILTIN_AESKEYGENASSIST128. + Handle bdesc_sse_args. Remove bdesc_sse_3arg. + +2008-04-17 Alan Modra + + PR target/35907 + * config/rs6000/rs6000.c (rs6000_emit_epilogue): Restore vr and vrsave + regs before frame pop when needed. If use_backchain_to_restore_sp + then load backchain into a temp reg to restore vr and vrsave. Add + code to restore vr after frame pop if possible. + +2008-04-17 Richard Guenther + + * tree-vn.c (expressions_equal_p): Do not check type + equality or compatibility before calling operand_equal_p. + * fold-const.c (operand_equal_p): Check equivalence of + integer constants before bailing out due to signedness or + precision differences. + * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ignore + spurious differences in type qualification. Ignore types + for COMPONENT_REFs at all. + +2008-04-17 Christian Bruel + + * config/sh/sh.c (expand_cbranchdi4): Use original operands for + msw_skip comparison. + +2008-04-16 Jakub Jelinek + + PR c/35739 + * tree-nrv.c (tree_nrv): Don't optimize if result_type is GIMPLE + reg type. + + PR tree-optimization/35899 + * tree-inline.c (expand_call_inline): Use GIMPLE_STMT_OPERAND + rather than TREE_OPERAND. + +2008-04-16 Uros Bizjak + + PR target/35944 + * config/i386/i386.md (fmodxf3): Copy operand 1 and operand 2 into + temporary registers. Change operand predicate to general_operand. + (remainderxf3): Ditto. + +2008-04-16 Richard Guenther + + * Makefile.in (tree-affine.o): Add $(FLAGS_H) dependency. + * tree-affine.c (aff_combination_expand): Look through some + conversions. + +2008-04-15 Doug Kwan + + * dwarf2asm.c (dw2_assemble_integer): Cast to unsigned HOST_WIDE_INT + for hex printing. + * tree-pretty-print.c (dump_generic_node): Ditto. + * final.c (output_addr_const): Ditto. + * dwarf2out.c (output_cfi): Ditto. + * c-pretty-print.c (pp_c_integer_constant): Ditto. + * print-rtl.c (print_rtx): Ditto. + * print-tree.c (print_node_brief, print_node): Ditto. + * c-common.c (match_case_to_enum_1): Ditto. + * sched-vis.c (print_value): Ditto. + * config/i386/i386.c (print_operand): Cast to long unsigned int + for hex printing. + +2008-04-15 Danny Smith + * libgcc2.c [L_trampoline]: Remove unnecessary prototype for + MS Windows VirtualProtect function. + +2008-04-15 Jan Hubicka + + * gengtype.c (write_root): Param_is argument is OK. + * expr.c (expand_expr_real_1): Update call of get_exception_*. + * function.h: Include varray.h + (rtl_eh): New stucture based on except.c one. + (call_site_record): New forward declaration and vector type. + * calls.c (emit_call_1): Do not call + note_current_region_may_contain_throw. + * except.c (eh_status): Remove cur_region, try_region since they are + unused. + Move filter, exc_ptr, ttype_data, ehspec_data, action_record_data and + exception_handler_label_map, ehr_stackadj, ehr_handler, ehr_label, + sjlj_fc, sjlj_exit_after to rth_eh in function.h. + Remove call_site_data_used, call_site_data_size. + Turn call_site_record into vector in function.h. + (note_current_region_may_contain_throw): Remove. + (get_exception_pointer, get_exception_filter): Do not take struct + function argument; update. + (add_ehl_entry, find_exception_handler_labels, ehspec_filter_hash, + add_ttypes_entry, add_ehspec_entry, assign_filter_values, + build_post_landing_pads, dw2_build_landing_pads, + sjlj_assign_call_site_values, sjlj_mark_call_sites, + sjlj_emit_function_enter, sjlj_emit_function_enter, + sjlj_emit_function_exit, sjlj_emit_dispatch_table, + sjlj_build_landing_pads, finish_eh_generation, + remove_exception_handler_label, remove_eh_handler, + maybe_remove_eh_handler, add_reachable_handler, + reachable_handlers, expand_builtin_eh_return, expand_eh_return, + add_action_record, collect_one_action_chain, add_call_site, + convert_to_eh_region_ranges, sjlj_size_of_call_site_table, + sjlj_output_call_site_table, output_function_exception_table, + * except.h (note_current_region_may_contain_throw): Remove + (get_exception_pointer, get_exception_filter): Do not take struct + function argument. + * Makefile.in (GTFILES): Put varargs before struct function. + +2008-04-15 Eric Botcazou + + * tree-ssa-structalias.c (get_constraint_for_component_ref): Do not + punt for STRING_CST. + (get_constraint_for): Deal with STRING_CST here instead. + +2008-04-15 Richard Guenther + + * tree-ssa-propagate.c (substitute_and_fold): Substitute + statements in a basic-block with a backward walk. Do not + substitute into dead statements but instead remove those. + +2008-04-15 Richard Guenther + + * params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Set default + to zero, thus disable creation of SFTs. + 2008-04-15 Eric Botcazou * tree-predcom.c (suitable_reference_p): Return false if the