X-Git-Url: http://git.sourceforge.jp/view?p=pf3gnuchains%2Fgcc-fork.git;a=blobdiff_plain;f=gcc%2FChangeLog;h=374615b45463609bfd52650a85b947898a2e9742;hp=1940d2a4d2cb5fac5803f32df81a75044b759d3d;hb=b38ff3d741f226aafc966c195ea64770f121b30f;hpb=d14c123b3464bf5fa9b7e97647d97a7fc67f917a diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 1940d2a4d2c..374615b4546 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,6 +1,974 @@ +2008-04-25 Jan Hubicka + + PR testsuite/35843 + * cfgexpand.c (pass_expand): Turn into RTL pass. + * passes.c (execute_one_pass): Do pass typechecking after execution. + * tree-pass.h (pass_expand): Turn into RTL pass. + + * function.h (struct rtl_data): Move here fields + accesses_prior_frames, calls_eh_return, saves_all_registers, + has_nonlocal_goto, has_asm_statement, is_thunk, + all_throwers_are_sibcalls, limit_stack, profile, uses_const_pool, + uses_pic_offset_table, uses_eh_lsda, tail_call_emit, + arg_pointer_save_area_init from struct function; turn into bool. + (struct function): Move + calls_eh_return, saves_all_registers, has_nonlocal_goto, + has_asm_statement, is_thunk, all_throwers_are_sibcalls, limit_stack, + profile, uses_const_pool, uses_pic_offset_table, uses_eh_lsda, + tail_call_emit, arg_pointer_save_area_init + into struct rtl_data. Remove recursive_call_emit and gimplified flags. + (current_function_returns_struct, current_function_returns_pcc_struct, + current_function_calls_setjmp, current_function_calls_alloca, + current_function_accesses_prior_frames, + current_function_calls_eh_return, current_function_is_thunk, + current_function_stdarg, current_function_profile, + current_function_limit_stack, current_function_uses_pic_offset_table, + current_function_uses_const_pool, current_function_has_nonlocal_label, + current_function_saves_all_registers, + current_function_has_nonlocal_goto, + current_function_has_asm_statement): Remove accesor macros. + * ra-conflict.c (global_conflicts): Update. + * tree-tailcall.c (suitable_for_tail_opt_p): Update. + (suitable_for_tail_call_opt_p): Update. + * builtins.c (expand_builtin_return_addr): Update. + (expand_builtin_setjmp_setup): Update. + (expand_builtin_nonlocal_goto): Update. + * final.c (final_start_function): Update. + (profile_function): Update. + (leaf_function_p): Update. + (only_leaf_regs_used): Update. + * df-scan.c (df_get_exit_block_use_set): Update. + * dojump.c (clear_pending_stack_adjust): Update. + * tree-stdarg.c (gate_optimize_stdarg): Update. + * gimple-low.c (lower_function_body): Update. + * global.c (compute_regsets): Update. + (global_alloc): Update. + * dwarf2out.c (dwarf2out_begin_prologue): Update. + * expr.c (expand_assignment): Update. + * dse.c (dse_step0): Update. + (dse_step1): Update. + * c-decl.c (store_parm_decls): Update. + * local-alloc.c (combine_regs): Update. + (find_free_reg): Update. + * function.c (assign_parms_augmented_arg_list): Update. + (assign_parm_find_data_types): Update. + (assign_parms): Update. + (allocate_struct_function): Update. + (expand_function_start): Update. + (expand_function_end): Update. + (get_arg_pointer_save_area): Update. + (thread_prologue_and_epilogue_insns): Update. + (rest_of_match_asm_constraints): Update. + * stor-layout.c (variable_size): Update. + * gcse.c (gcse_main): Update. + (bypass_jumps): Update. + * gimplify.c (gimplify_function_tree): Update. + * calls.c (emit_call_1): Update. + (expand_call): Update. + * bt-load.c (compute_defs_uses_and_gen): Update. + * except.c (sjlj_assign_call_site_values): Update. + (sjlj_emit_function_enter): Update. + (can_throw_external): Update. + (set_nothrow_function_flags): Update. + (expand_builtin_unwind_init): Update. + (expand_eh_return): Update. + (convert_to_eh_region_ranges): Update. + (output_function_exception_table): Update. + * emit-rtl.c (gen_tmp_stack_mem): Update. + * cfgexpand.c (expand_used_vars): Update. + (tree_expand_cfg): Update. + * cfgcleanup.c (rest_of_handle_jump): Update. + * explow.c (allocate_dynamic_stack_space): Update. + * varasm.c (assemble_start_function): Update. + (force_const_mem): Update. + (mark_constant_pool): Update. + * tree-optimize.c (tree_rest_of_compilation): Update. + * stack-ptr-mod.c (notice_stack_pointer_modification): Update. + * tree-cfg.c (notice_special_calls): Update. + (is_ctrl_altering_stmt): Update. + (tree_can_make_abnormal_goto): Update. + (tree_purge_dead_abnormal_call_edges): Update. + * config/alpha/predicates.md: Update. + * config/alpha/alpha.c (alpha_sa_mask): Update. + (alpha_sa_size): Update. + (alpha_does_function_need_gp): Update. + (alpha_expand_prologue): Update. + (alpha_start_function): Update. + (alpha_output_function_end_prologue): Update. + (alpha_expand_epilogue): Update. + * config/frv/frv.c (frv_stack_info): Update. + (frv_expand_epilogue): Update. + * config/s390/s390.c (s390_regs_ever_clobbered): Update. + (s390_register_info): Update. + (s390_frame_info): Update. + (s390_init_frame_layout): Update. + (s390_can_eliminate): Update. + (save_gprs): Update. + * config/spu/spu.c (spu_split_immediate): Update. + (need_to_save_reg): Update. + (spu_expand_prologue): Update. + (spu_expand_epilogue): Update. + * config/sparc/sparc.md: Update. + * config/sparc/sparc.c (eligible_for_return_delay): Update. + (sparc_tls_got): Update. + (legitimize_pic_address): Update. + (sparc_emit_call_insn): Update. + (sparc_expand_prologue): Update. + (output_return): Update. + (print_operand): Update. + (sparc_function_ok_for_sibcall): Update. + * config/sparc/sparc.h (EXIT_IGNORE_STACK): Update. + * config/m32r/m32r.md: Update. + * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Update. + (m32r_compute_frame_size): Update. + (m32r_expand_prologue): Update. + (m32r_expand_epilogue): Update. + (m32r_legitimize_pic_address): Update. + * config/m32r/m32r.h (FRAME_POINTER_REQUIRED): Update. + * config/i386/linux.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update. + * config/i386/i386.c (ix86_frame_pointer_required): Update. + (gen_push): Update. + (ix86_save_reg): Update. + (ix86_compute_frame_layout): Update. + (ix86_expand_prologue): Update. + (ix86_expand_epilogue): Update. + * config/sh/sh.c (output_stack_adjust): Update. + (calc_live_regs): Update. + (sh5_schedule_saves): Update. + (sh_expand_prologue): Update. + (sh_expand_epilogue): Update. + (sh_setup_incoming_varargs): Update. + (sh_allocate_initial_value): Update. + (sh_get_pr_initial_val): Update. + * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): Update. + * config/sh/sh.md (label:): Update. + * config/avr/avr.c (out_movhi_mr_r): Update. + * config/crx/crx.h (enum): Update. + * config/xtensa/xtensa.h (along): Update. + * config/stormy16/stormy16.c Update. + (xstormy16_compute_stack_layout): Update. + * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Update. + (fr30_expand_prologue): Update. + * config/cris/cris.c (cris_conditional_register_usage): Update. + (cris_reg_saved_in_regsave_area): Update. + (cris_initial_frame_pointer_offset): Update. + (cris_simple_epilogue): Update. + (cris_expand_prologue): Update. + (cris_expand_epilogue): Update. + (cris_expand_pic_call_address): Update. + (cris_asm_output_symbol_ref): Update. + (cris_asm_output_label_ref): Update. + * config/cris/cris.md Update. + * config/iq2000/iq2000.c (compute_frame_size): Update. + (iq2000_expand_epilogue): Update. + * config/mt/mt.h (save_direction): Update. + * config/mn10300/mn10300.c (mn10300_function_value): Update. + * config/ia64/ia64.c (ia64_compute_frame_size): Update. + (ia64_secondary_reload_class): Update. + * config/m68k/m68k.c (m68k_save_reg): Update. + (m68k_expand_prologue): Update. + (m68k_expand_epilogue): Update. + (legitimize_pic_address): Update. + * config/rs6000/rs6000.c (rs6000_got_register): Update. + (first_reg_to_save): Update. + (first_altivec_reg_to_save): Update. + (compute_vrsave_mask): Update. + (compute_save_world_info): Update. + (rs6000_stack_info): Update. + (spe_func_has_64bit_regs_p): Update. + (rs6000_ra_ever_killed): Update. + (rs6000_emit_eh_reg_restore): Update. + (rs6000_emit_allocate_stack): Update. + (rs6000_emit_prologue): Update. + (rs6000_emit_epilogue): Update. + (rs6000_output_function_epilogue): Update. + (output_profile_hook): Update. + (rs6000_elf_declare_function_name): Update. + * config/rs6000/rs6000.h (rs6000_args): Update. + * config/rs6000/rs6000.md: Update. + * config/mcore/mcore.c (mcore_expand_prolog): Update. + * config/arc/arc.c (arc_output_function_epilogue): Update. + * config/arc/arc.h (FRAME_POINTER_REQUIRED): Update. + * config/darwin.c (machopic_function_base_name): Update. + * config/score/score3.c (score3_compute_frame_size): Update. + (rpush): Update. + (rpop): Update. + (score3_epilogue): Update. + * config/score/score7.c (score7_compute_frame_size): Update. + (score7_prologue): Update. + (score7_epilogue): Update. + * config/score/score.h (FRAME_POINTER_REQUIRED): Update. + * config/arm/linux-elf.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update. + * config/arm/arm.c (use_return_insn): Update. + (require_pic_register): Update. + (arm_load_pic_register): Update. + (arm_compute_save_reg0_reg12_mask): Update. + (arm_compute_save_reg_mask): Update. + (thumb1_compute_save_reg_mask): Update. + (output_return_instruction): Update. + (arm_output_function_prologue): Update. + (arm_output_epilogue): Update. + (arm_get_frame_offsets): Update. + (arm_expand_prologue): Update. + (thumb_pushpop): Update. + (thumb_exit): Update. + (thumb1_expand_prologue): Update. + (thumb1_expand_epilogue): Update. + (arm_unwind_emit): Update. + (arm_output_fn_unwind): Update. + * config/arm/arm.h (FRAME_POINTER_REQUIRED): Update. + * config/arm/arm.md: Update. + * config/pa/pa.md: Update. + * config/pa/pa.c (legitimize_pic_address): Update. + (compute_frame_size): Update. + (hppa_expand_prologue): Update. + (hppa_expand_epilogue): Update. + (borx_reg_operand): Update. + * config/pa/pa.h (FRAME_POINTER_REQUIRED): Update. + (HARD_REGNO_RENAME_OK): Update. + * config/mips/mips.c (mips_global_pointer): Update. + (mips_save_reg_p): Update. + (mips_compute_frame_info): Update. + (mips_frame_pointer_required): Update. + (mips_expand_prologue): Update. + (mips_expand_epilogue): Update. + (mips_can_use_return_insn): Update. + (mips_reorg_process_insns): Update. + * config/v850/v850.c (compute_register_save_size): Update. + * config/mmix/mmix.h (FRAME_POINTER_REQUIRED): Update. + * config/mmix/mmix.c (along): Update. + (mmix_expand_epilogue): Update. + * config/bfin/bfin.c (legitimize_pic_address): Update. + (must_save_p): Update. + (stack_frame_needed_p): Update. + (add_to_reg): Update. + (bfin_expand_prologue): Update. + * stmt.c (expand_asm_operands): Update. + * reload1.c (reload): Update. + (init_elim_table): Update. + +2008-04-25 Bob Wilson + + * optabs.c (expand_float): Fix REG_EQUAL for UNSIGNED_FLOAT libcall. + +2008-04-25 H.J. Lu + + * config/i386/sse.md (mov): Replace SSEMODEI with + SSEMODE. + (*mov_internal): Likewise. Support V4SF and V2DF. + (mov): Removed. + (*movv4sf_internal): Likewise. + (*movv2df_internal): Likewise. + +2008-04-25 Pompapathi V Gadad + + * config.gcc (crx-*-elf): Remove deprecation. + +2008-04-25 Danny Smith + + * config/i386/cygming-crtend.c (register_frame_ctor): Register + __gcc_deregister_frame with atexit. + (deregister_frame_dtor): Remove. + +2008-04-24 Nathan Froyd + Nathan Sidwell + + * config/rs6000/rs6000.opt (mspe): Remove Var property. + (misel): Likewise. + * config/rs6000/rs6000.h (rs6000_spe): Declare. + (rs6000_isel): Likewise. + * config/rs6000/rs6000.c (rs6000_spe): New variable. + (rs6000_isel): New variable. + (rs6000_handle_option): Handle OPT_mspe and OPT_misel. + +2008-04-24 Jakub Jelinek + + PR c++/35758 + * c-common.c (handle_vector_size_attribute): Call + lang_hooks.types.reconstruct_complex_type instead of + reconstruct_complex_type. + * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Likewise. + * config/spu/spu.c (spu_handle_vector_attribute): Likewise. + * langhooks.h (struct lang_hooks_for_types): Add + reconstruct_complex_type hook. + * langhooks-def.h (LANG_HOOKS_RECONSTRUCT_COMPLEX_TYPE): Define. + (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it. + +2008-04-24 Richard Guenther + + * c-common.h (check_builtin_function_arguments): Declare. + * c-common.c (validate_nargs): New function. + (check_builtin_function_arguments): Likewise. + * c-typeck.c (build_function_call): Call + check_builtin_function_arguments. + * builtins.c (fold_builtin_classify): Remove error reporting code. + (fold_builtin_unordered_cmp): Likewise. + (fold_builtin_1): Likewise. + (fold_builtin_n): Likewise. + +2008-04-24 Jakub Jelinek + + PR tree-optimization/36008 + * fold-const.c (try_move_mult_to_index): If s == NULL, divide + the original op1, rather than delta by step. + +2008-04-22 Antoniu Pop + Sebastian Pop + + * tree-parloops.c (take_address_of, eliminate_local_variables_1, + eliminate_local_variables_stmt, eliminate_local_variables, + separate_decls_in_loop_name, separate_decls_in_loop_stmt, + separate_decls_in_loop, gen_parallel_loop): Make them work on a region + of code delimited by two edges in the CFG. + (separate_decls_in_loop_name): Renamed separate_decls_in_region_name. + (separate_decls_in_loop_stmt): Renamed separate_decls_in_region_stmt. + (separate_decls_in_loop): Renamed separate_decls_in_region. Isolate + the case of parallelisation of reductions. + (expr_invariant_in_region_p): New. + + * tree-flow.h (gather_blocks_in_sese_region): Declared. + * tree-cfg.c (gather_blocks_in_sese_region): Extern. + +2008-04-24 Ira Rosen + Richard Guenther + + PR tree-optimization/36034 + * tree-vect-analyze.c (vect_analyze_group_access): SLP is + incapable of dealing with loads with gaps. + +2008-04-24 Rafael Espindola + + * tree-flow.h (vrp_evaluate_conditional): Change signature. + * tree-ssa-propagate.c (fold_predicate_in): Update call to + vrp_evaluate_conditional. + * tree-vrp.c (vrp_evaluate_conditional_warnv): Remove. + (vrp_evaluate_conditional): Split the cond argument. + (vrp_visit_cond_stmt): Use vrp_evaluate_conditional_warnv_with_ops. + (simplify_stmt_for_jump_threading): Update call to + vrp_evaluate_conditional. + +2008-04-24 Ira Rosen + + PR tree-optimization/35982 + * tree-vect-analyze.c (vect_check_interleaving): Check that the + interleaved data-refs are of the same type. + +2008-04-24 Danny Smith + + * c-format.c (check_format_info_main): Use strncmp rather than a + magic prefix to handle multichar length specs. + * config/i386/msformat-c.c (format_length_info ms_printf_length_specs): + Don't prefix "I64" and "I32" with '\0'. + +2008-04-24 Jakub Jelinek + + PR target/36015 + * config/i386/i386.c (init_cumulative_args): Don't pass anything + in registers for -m32 only if stdarg_p (fntype). + +2008-04-24 Uros Bizjak + + PR rtl-optimization/36006 + * expmed.c (store_fixed_bit_field): Copy op0 rtx before moving + temp to op0 in order to avoid invalid rtx sharing. + +2008-04-23 Paolo Bonzini + + * tree-cfg.c (verify_expr): Check with is_gimple_address. Don't + check TREE_INVARIANT. + * tree-gimple.c (is_gimple_address): New. + (is_gimple_invariant_address): Simplify using decl_address_invariant_p. + * tree-gimple.h (is_gimple_address): New. + * tree.h (decl_address_invariant_p): New. + * tree.c (make_node_stat): Don't set TREE_INVARIANT. + (build_string): Likewise. + (decl_address_invariant_p): New, from is_gimple_invariant_address. + (tree_invariant_p_1): Likewise. + (save_expr): Use it. + (tree_invariant_p): New. + (skip_simple_arithmetic): Use it. + (stabilize_reference_1): Use it. + (recompute_tree_invariant_for_addr_expr): Don't update TREE_INVARIANT, + simplify. + (build1_stat): Drop code to compute TREE_INVARIANT. + (build2_stat): Drop code to compute TREE_INVARIANT. + (build3_stat): Drop code to compute TREE_INVARIANT. + (build4_stat): Drop code to compute TREE_INVARIANT. + (build5_stat): Drop code to compute TREE_INVARIANT. + (build7_stat): Drop code to compute TREE_INVARIANT. + (merge_dllimport_decl_attributes): Don't mention TREE_INVARIANT. + * tree.h (struct tree_base): Remove invariant_flag. + (TREE_INVARIANT): Remove. + * builtins.c (build_string_literal): Don't set TREE_INVARIANT. + (fold_builtin_expect): Check TREE_CONSTANT. + * tree-ssa-ccp.c (fold_stmt_r): Adjust comment. + * c-tree.h (c_expr_to_decl): Drop third parameter. + * c-typeck.c (build_external_ref): Don't set TREE_INVARIANT. + (build_c_cast): Don't set TREE_INVARIANT. + (pop_init_level): Don't set TREE_INVARIANT. + (c_objc_common_truthvalue_conversion): Don't set TREE_INVARIANT. + * gimplify.c (gimplify_init_ctor_preeval): Add assertion, test + TREE_CONSTANT. + (gimplify_init_constructor): Don't set TREE_INVARIANT. + (gimplify_addr_expr): Adjust comment. + * tree-mudflap.c (mf_build_string): + * print-tree.c (print_node): Don't print TREE_INVARIANT. + * tree-nested.c (convert_nonlocal_reference): Adjust comment. + * c-common.c (fix_string_type): Don't set TREE_INVARIANT. + * langhooks-def.h (lhd_expr_to_decl): Drop third parameter. + * langhooks.c (lhd_expr_to_decl): Drop third parameter. + * langhooks.h (struct lang_hooks): Drop third parameter from + expr_to_decl. + +2008-04-23 Richard Guenther + + PR tree-optimization/27799 + PR tree-optimization/32921 + PR tree-optimization/32624 + * tree-ssa-structalias.c (merge_smts_into): Only merge the + SMTs aliases and the tag itself into the solution. + * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Do not + merge the points-to solution back into the SMT aliases. + (may_alias_p): Use alias_set_subset_of instead of + aliases_conflict_p. A pointer which points to + memory with alias set zero may access any variable. + +2008-04-23 Richard Guenther + + * alias.c (alias_set_subset_of): Correctly handle asking + if zero is a subset of an alias set with zero child. + * tree-ssa-alias.c (have_common_aliases_p): Simplify logic. + (compute_flow_insensitive_aliasing): Correctly walk all + pointers. Do not unnecessarily union sets. + +2008-04-23 Richard Guenther + + PR middle-end/36021 + * c-common.c (handle_alloc_size_attribute): Use type_num_arguments. + +2008-04-22 Tomas Bily + + * tree-cfg.c (verify_expr): Check for NON_LVALUE_EXPR as + unreachable case. + * tree-vrp.c (extract_range_from_unary_expr): Removed unused + NON_LVALUE_EXPR. + * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise. + * tree-ssa-structalias.c (get_constraint_for): Likewise. + * tree-inline.c (estimate_num_insns_1): Likewise. + * varasm.c (const_hash_1, compare_constant, copy_constant) + (compute_reloc_for_constant, output_addressed_constants): Likewise. + * emit-rtl.c (component_ref_for_mem_expr) + (set_mem_attributes_minus_bitpos): Likewise. + * expr.c (highest_pow2_factor, expand_expr_real_1, ) + (is_aligning_offset): Likewise. + * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info): Likewise. + * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise. + * dojump.c (do_jump): Likewise. + * builtins.c (get_pointer_alignment, get_memory_rtx) + (integer_valued_real_p, fold_builtin_next_arg): Likewise. + * tree-scalar-evolution.c (instantiate_parameters_1): Likewise. + +2008-04-23 Jakub Jelinek + + PR rtl-optimization/36017 + * builtins.c (expand_errno_check): Clear CALL_EXPR_TAILCALL before + expanding the library call. + +2008-04-22 Ian Lance Taylor + + * fold-const.c (pointer_may_wrap_p): Call int_size_in_bytes rather + than size_in_bytes. + +2008-04-22 Pat Haugen + + * config/rs6000/rs6000.c (rs6000_register_move_cost): Increase cost + of LR/CTR moves for Power6. + +2008-04-22 Kenneth Zadeck + + PR middle-end/36003 + * passes.c (init_optimization_passes): Remove + pass_fast_rtl_byte_dce. + +2008-04-22 Uros Bizjak + + PR target/29096 + * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Rearrange calls to + builtin functions to generate faster code. + (_mm_cvtpu16_ps): Ditto. + (_mm_cvtpi32x2_ps): Ditto. + +2008-04-22 Nick Clifton + + * common.opt (ftree-loop-distribution): Add Optimization + attribute. + + * config/frv/frv.c (frv_stack_info): Use crtl instead of cfun. + (frv_expand_builtin_va_start): Likewise. + + * config/arm/arm.c (thumb_find_work_register): Fix location of + argument register count. + +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 + reference can throw. + +2008-04-15 Jakub Jelinek + + PR c/35751 + * c-decl.c (finish_decl): If extern or static var has variable + size, set TREE_TYPE (decl) to error_mark_node. + 2008-04-15 Rafael Espindola - * gcc/tree-const.c (tree_call_nonnegative_warnv_p): Remove local + * fold-const.c (tree_call_nonnegative_warnv_p): Remove local variable arg1. 2008-04-15 Richard Guenther @@ -140,7 +1108,7 @@ 2008-04-10 Rafael Espindola - * gcc/tree-vrp.c (extract_range_from_binary_expr): Don't handle + * tree-vrp.c (extract_range_from_binary_expr): Don't handle TRUTH_ANDIF_EXPR or TRUTH_ORIF_EXPR. (extract_range_from_expr): The same. @@ -1057,9 +2025,9 @@ 2008-04-02 Kai Tietz * config.gcc: Add for x86_64-*-mingw* the t-crtfm to tbuild. - * gcc/config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add 8 byte + * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add 8 byte offsets for 64-bit mingw. - * gcc/config/i386/i386.c (ix86_pass_by_reference): Correct calling + * config/i386/i386.c (ix86_pass_by_reference): Correct calling abi for x86_64-pc-mingw. 2008-04-02 Richard Guenther @@ -1500,6 +2468,7 @@ 2008-03-28 Nick Clifton + PR target/31110 * config/mn10300/mn10300.c (mn10300_secondary_reload_class): Return GENERAL_REGS for stack adjustment reloads. @@ -2449,7 +3418,7 @@ 2008-03-15 Bjoern Haase Anatoly Sokolov - * gcc/gcc/config/avr/avr.c (avr_arch_types): Add avr6 entry. + * config/avr/avr.c (avr_arch_types): Add avr6 entry. (avr_arch): Add ARCH_AVR6. (avr_mcu_types): Add 'atmega2560' and 'atmega2561' entry. (initial_elimination_offset): Initialize and use 'avr_pc_size' @@ -2458,7 +3427,7 @@ (avr_assemble_integer): (Ditto.). (avr_output_addr_vec_elt): (Ditto.). (print_operand): Handle "!" code. - * gcc/gcc/config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Add + * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Add __AVR_3_BYTE_PC__, __AVR_2_BYTE_PC__ and __AVR_HAVE_JMP_CALL__. (AVR_HAVE_EIJMP_EICALL): Define. (AVR_3_BYTE_PC): Redefine. @@ -2467,7 +3436,7 @@ (LINK_SPEC): Add atmega2560 and atmega2561. (CRT_BINUTILS_SPEC): Add atmega2560 (crtm2560.o) and atmega2561 (crtm2561.o). - * gcc/gcc/config/avr/avr.md (call_insn): Use eicall instead of icall + * config/avr/avr.md (call_insn): Use eicall instead of icall for 3 byte PC devices. (call_value_insn): (Ditto.). (*tablejump_enh): Use eijmp instead of ijmp for 3 byte PC devices. @@ -2475,10 +3444,10 @@ (*tablejump): (Ditto.). (*indirect_jump_avr6): Add insn. (*tablejump_rjmp): Don't use for 3 byte PC devices. - * gcc/gcc/config/avr/libgcc.S (__prologue_saves__): Use eijmp + * config/avr/libgcc.S (__prologue_saves__): Use eijmp instead of ijmp for 3 byte PC devices. (__tablejump2__): (Ditto.). - * gcc/gcc/config/avr/t-avr (MULITLIB_OPTIONS): Add avr6 architecture. + * config/avr/t-avr (MULITLIB_OPTIONS): Add avr6 architecture. (MULITLIB_DIRNAMES): (Ditto.). (MULTILIB_MATCHES): Add atmega2560 and atmega2561 to list.