From f1aea409a439f8f5fb12b7cde75b44d7e44b054a Mon Sep 17 00:00:00 2001 From: Mike Stump Date: Mon, 1 Jan 2007 19:54:50 +0000 Subject: Rotate ChangeLog file. From-SVN: r120313 --- gcc/ChangeLog | 23810 --------------------------------------------------- gcc/ChangeLog-2006 | 23810 +++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 23810 insertions(+), 23810 deletions(-) create mode 100644 gcc/ChangeLog-2006 (limited to 'gcc') diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 168c195..e69de29 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,23810 +0,0 @@ -2006-12-31 Richard Guenther - - PR middle-end/30137 - * fold-const.c (fold_comparison): Fold comparison of addresses - of components. - -2006-12-31 Roger Sayle - - PR middle-end/30322 - * fold-const.c (fold_binary): Fold X + ~X and ~X + X into -1 when - we don't care about trapping overflow. Only convert -A - 1 into ~A - when we don't care about trapping overflow. - -2006-12-31 Richard Guenther - - PR middle-end/30338 - * fold-const.c (fold_binary): Fix type-mismatch in folding - of -1 - A to ~A. - -2006-12-30 Kazu Hirata - - * tree-inline.c: Fix a comment typo. - -2006-12-30 Jan Hubicka - - * ipa-pure-const.c (check_operand): SSA_NAME is safe. - * ipa-type-escape.c (scan_for_refs): Look into SSA_NAMEs. - -2006-12-30 Jan Hubicka - - * tree.h (DECL_CALL_CLOBBERED): Remove. - (tree_decl_common): Remove call_clobbered flag. - * tree-flow.h (struct var_ann_d): Add call_clobbered flag. - * tree-ssa-alias.c (mark_non_addressable, reset_cc_flags): Update. - * tree-flow-inline.h (is_call_clobbered, mark_call_clobbered, - clear_call_clobbered): Update. - * tree-ssa.c (verify_call_clobbering): Update. - -2006-12-30 Jan Hubicka - - * tree-ssa-alias.c (create_structure_vars): When in SSA, update operand - caches. - * tree-ssa-operands.c (build_ssa_operands): Recompute addresses_taken - bitmap. - -2006-12-30 Jan Hubicka - Vladimir Yanovsky - - * emit-rt.c (emit_copy_of_insn_after): Fix bug causing exponential - amount of copies of INSN_NOTEs list. - -2006-12-29 Jan Hubicka - - * cgraph.c (cgraph_exapnd_queue): Rename to... - (cgraph_new_nodes): ... this one. - (cgraph_state): New global variable. - (cgraph_add_new_function): Work in more cases. - * cgraph.h (cgraph_expand_queue): Rename to ... - (cgraph_new_nodes): ... this one. - (cgraph_state): New enum and static variable. - (cgraph_add_new_function): Update prototype. - (cgraph_process_new_functions): New. - * omp-low.c (expand_omp_parallel): Update. - * cgraphunit.c (initialize_inline_failed): Declare early. - (cgraph_process_new_functions): New function. - (cgraph_assemble_pending_functions): Use it. - (cgraph_expand_all_functions): Use it. - (cgraph_optimize): Use it; set cgraph_state. - * passes.c (execute_one_pass, execute_ipa_pass_list): Process new - functions - -2006-12-29 Kazu Hirata - - * tree-cfg.c (last_stmt_ptr): Remove. - * tree-flow.h: Remove the prototype for last_stmt_ptr. - - * config/i386/i386.h (NON_QI_REG_P): Remove. - * config/i386/predicates.md (non_q_regs_operand): Remove. - -2006-12-29 Ian Lance Taylor - - * c-common.c (c_define_builtins): New static function broken out - of c_common_nodes_and_builtins. - (c_common_nodes_and_builtins): Call c_define_builtins unless only - doing preprocessing. - -2006-12-29 Jan Hubicka - - * tree-inline.c (remap_ssa_name): New function. - (remap_decl): Update SSA datastructures for DECLs. - (copy_body_r): Deal with SSA_NAMEs; add referenced global vars. - (copy_bb): Set SSA_NAME def stmts. - (update_ssa_acorss_eh_edges): New function. - (copy_edge_for_bb): Call it; mark new vars for renaming. - (copy_phis_for_bb): New function. - (initialize_cfun): Break out from ... - (copy_cfg_body): ... here; maintain AUX map for both directions; - call SSA updating workers; do not produce copy of cfun to be copied. - (setup_one_parameter): Do propagation across SSA form. - (declare_return_variable): Work on SSA; use return_slot instead of - address of return slot of argument to avoid folding back and forth. - (expand_call_inline): Update SSA from on return values. - (optimize_inline_calls): Do sanity checking, dead blocks removal, - update SSA form. - (tree_function_verioning): Update initialize_cfun. - -2006-12-29 Marcin Dalecki - - * doc/invoke.texi: Replace no longer supported -fno-strength-reduce - with -fmerge-constants in sample code. - -2006-12-28 Kazu Hirata - - * Makefile.in (OBJS-common): Remove conflict.o - (conflict.o): Remove. - * basic-block.h: Remove the prototypes for conflict.c. - * conflict.c: Remove. - -2006-12-27 Daniel Berlin - - * sbitmap.c (BITMAP_DEBUGGING): New macro. - (do_popcount): Ditto. - (sbitmap_verify_popcount): New function. - (sbitmap_alloc): Set popcount to NULL, remove set of bytes - member. - (sbitmap_alloc_with_popcount): New function. - (sbitmap_resize): Remove uses of bytes member and update - popcount. - (sbitmap_realloc): Remove uses of bytes member. - (sbitmap_copy): Copy popcount. - (sbitmap_copy_n): New function. - (sbitmap_zero): Update popcount cache. - (sbitmap_ones): Ditto. - (sbitmap_a_and_b): Ditto. - (sbitmap_a_or_b): Ditto. - (sbitmap_a_xor_b): Ditto. - (sbitmap_union_of_diff_cg): Assert non-existence of popcount - cache. - (sbitmap_union_of_diff): Ditto. - (sbitmap_not): Ditto. - (sbitmap_difference): Ditto. - (sbitmap_a_and_b_cg): Ditto. - (sbitmap_a_xor_b_cg): Ditto. - (sbitmap_a_or_b_cg): Ditto. - (sbitmap_a_or_b_and_c_cg): Ditto. - (sbitmap_a_and_b_or_c_cg): Ditto. - (sbitmap_intersection_of_succs): Ditto. - (sbitmap_intersection_of_preds): Ditto. - (sbitmap_union_of_succs): Ditto. - (sbitmap_union_of_preds): Ditto. - (popcount_table): New. - (sbitmap_elt_popcount): New function. - (sbitmap_popcount): Ditto. - - * sbitmap.h (sbitmap): Remove bytes member. - Add popcount member. - (SET_BIT): Macro turned into function. - (RESET_BIT): Ditto. - (SBITMAP_SIZE_BYTES): New macro. - (sbitmap_free): Free popcount too. - (sbitmap_alloc_with_popcount): New prototype. - (sbitmap_copy_n): Ditto. - (sbitmap_verify_popcount): Ditto. - -2006-12-27 Ian Lance Taylor - - PR debug/26964 - * dwarf2out.c (gen_type_die): Don't write out a DIE for - ENUMERAL_TYPE if it was already written out. - -2006-12-26 Kaveh R. Ghazi - - PR middle-end/29335 - * builtins.c (do_mpfr_arg1, do_mpfr_arg2, do_mpfr_arg3, - do_mpfr_sincos): Ensure target base equals two. - -2006-12-26 Kazu Hirata - - * tree-ssa-operands.c: Fix a comment typo. - -2006-12-25 Kazu Hirata - - * tree-vectorizer.h (VECT_SMODULO): Remove. - -2006-12-24 Andreas Tobler - - * config/pa/pa.c: Remove heap vector type defines. - -2006-12-24 Jan Hubicka - - * tree-ssa-operands.h (struct ssa_operand_memory_d): - add ssa_operand_mem_size. - * tree-ssa-operands.c (operands_bitmap_obstack): New. - (ssa_operand_mem_size): Remove. - (init_ssa_operands): Initialize obstack; use it. - (fini_ssa_operands): Release obstack. - (ssa_operand_alloc): Update. - (finalize_ssa_vdefs, finalize_ssa_vuse_ops, copy_virtual_operands, - get_mpt_for): Use obstack. - * tree-ssa.c (delete_tree_ssa): Call fini_ssa_operands. - * tree-outof-ssa.c: (remove_ssa_form): Don't call it here. - -2006-12-24 Jan Hubicka - - * tree-mudflap.c (ml_decl_cache_locals, md_build_check_statement_for): - add newly referenced vars. - -2006-12-24 Kazu Hirata - - * basic-block.h: Remove the prototype for - expected_value_to_br_prob. - * rtl.h: Remove the prototypes for expand_builtin_expect_jump - and purge_line_number_notes. - -2006-12-23 Zdenek Dvorak - - * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne, - assert_no_overflow_lt, assert_loop_rolls_lt, - number_of_iterations_lt, number_of_iterations_le, - number_of_iterations_cond, number_of_iterations_exit): - Use integer_zerop/integer_nonzerop instead of - null_or_integer_zerop/nonnull_and_integer_nonzerop. - * tree.h (null_or_integer_zerop, nonnull_and_integer_nonzerop): - Removed. - * tree-scalar-evolution.c (simple_iv): Return zero for step of - an invariant. - * tree-ssa-loop-ivopts.c (alloc_iv): Do not set step of invariants - to zero. - (get_iv): Return NULL for non-scalar types. Use zero as a step - of an invariant. - (determine_biv_step, find_interesting_uses_op, - find_interesting_uses_cond, find_interesting_uses_stmt, - add_old_ivs_candidates, determine_use_iv_cost_condition, - rewrite_use_compare, remove_unused_ivs): - Use integer_zerop instead of null_or_integer_zerop. - (struct ifs_ivopts_data): Replace step_p field with step field. - (idx_find_step): Use zero as a step of an invariant. Modify - step instead of *step_p. - (find_interesting_uses_address): Use zero as a step of an invariant. - Use integer_zerop instead of null_or_integer_zerop. - (find_interesting_uses_outside): Call find_interesting_uses_op only - for phi nodes for real operands. - (add_candidate_1): Expect step to be non-NULL. - * tree-ssa-loop-prefetch.c (idx_analyze_ref): Expect step to be - non-NULL. - -2006-12-23 Andrew Pinski - - * vec.c: Don't include tree.h. - * Makefile.in (vec.o): Update dependencies. - (build/vec.o): Likewise. - -2006-12-23 Kazu Hirata - - * common.opt (flag_force_mem): Remove. - * doc/invoke.texi (-fforce-mem): Remove. - * opts.c (common_handle_option): Don't handle OPT_fforce_mem. - - * Makefile.in (final.o): Depend on vecprim.h. - * final.c: Include vecprim.h. - (insn_addresses_): Change the type to VEC(int,heap)*. - * insn-addr.h (INSN_ADDRESSES_DEFN): Remove. - (INSN_ADDRESSES, INSN_ADDRESSES_ALLOC, INSN_ADDRESSES_SIZE, - INSN_ADDRESSES_NEW): Use VEC instead of VARRAY. - -2006-12-23 Marcin Dalecki - - * cgraphunit.c (cgraph_optimize): Fixed obvious thinko in memory - consumption reporting. - -2006-12-23 Manuel Lopez-Ibanez - - PR middle-end/7651 - * c.opt (Wmissing-parameter-type): New. - * doc/invoke.texi (Wmissing-parameter-type): Document it. - (Wextra): Enabled by -Wextra. - * c-opts.c (c_common_post_options): Enabled by -Wextra. - * c-decl.c (store_parm_decls_oldstyle): Replace Wextra with - Wmissing-parameter-type. - -2006-12-23 Eric Botcazou - - * dwarf2out.c (dbx_reg_number): Do leaf register remapping - only if the function is leaf. - (multiple_reg_loc_descriptor): Likewise. - -2006-12-23 Kazu Hirata - - * rtl.h (NOTE_EXPECTED_VALUE): Remove. - -2006-12-23 Jan Hubicka - - * toplev.c (dump_memory_report): Break out from... - (finalize): Here. - * toplev.h (dump_memory_report): Declare. - (cmp_statistic): Rename to ... - (final_cmp_statistic): ... this one - (cmp_statistic): New. - (dump_ggc_loc_staitsitcs): New FINAL parpameter. - * common.opt (-fpre-ipa-mem-report, -fpost-ipa-mem-report): Declare. - * varray.c (dump_varray_staitiscs): Do not segfault when no varray was - allocated so far. - * cgraphunit.c (cgraph_optimize): Dump the memory reports. - -2006-12-22 Mike Stump - - * config/rs6000/t-darwin (DARWIN_EXTRA_CRT_BUILD_CFLAGS): Add - -mmacosx-version-min=10.4. - (crt2.o): Add $(DARWIN_EXTRA_CRT_BUILD_CFLAGS). - -2006-12-23 Jan Hubicka - - * tree-flow-inline.h (var_ann): External variable annotations are - unshared too. - (tree_common_ann): Handle correctly unshared variables annotations. - * tree-dfa.c (create_var_ann): External variable annotations are - unshared too. - -2006-12-22 Kazu Hirata - - * basic-block.h: Remove the prototype for - commit_edge_insertions_watch_calls. - * cfgrtl.c (commit_edge_insertion): Drop the last argument. - Simplify. - (commit_edge_insertions_watch_calls): Remove. - (commit_edge_insertions): Adjust the call to - commit_one_edge_insertion. - -2006-12-22 Zdenek Dvorak - - * tree-ssa-loop-niter.c (zero_p, nonzero_p): Removed. - (number_of_iterations_ne, number_of_iterations_lt_to_ne, - assert_no_overflow_lt, assert_loop_rolls_lt, - number_of_iterations_lt, number_of_iterations_le, - number_of_iterations_cond, tree_simplify_using_condition_1, - number_of_iterations_exit, find_loop_niter, loop_niter_by_eval, - implies_nonnegative_p, implies_ge_p, record_nonwrapping_iv, - idx_infer_loop_bounds, n_of_executions_at_most, scev_probably_wraps_p): - Do not use zero_p/nonzero_p. - * tree-ssa-loop-manip.c (determine_exit_conditions): Ditto. - * tree-ssa-loop-ivopts.c (niter_for_exit, determine_biv_step, - find_interesting_uses_op, find_interesting_uses_cond, - find_interesting_uses_address, find_interesting_uses_stmt, - strip_offset_1, add_candidate_1, add_old_ivs_candidates, - difference_cost, determine_use_iv_cost_condition, - rewrite_use_compare, remove_unused_ivs): Ditto. - * tree-ssa-address.c (tree_mem_ref_addr, create_mem_ref_raw): Ditto. - * tree-ssa-loop-prefetch.c (idx_analyze_ref): Ditto. - * tree-cfg.c (find_taken_edge_cond_expr): Ditto. - * tree.h (zero_p): Declaration removed. - (null_or_integer_zerop, nonnull_and_integer_nonzerop): New. - -2006-12-22 Manuel Lopez-Ibanez - - PR middle-end/7651 - * c.opt (Wclobbered): New. - * doc/invoke.texi (Wclobbered): Document it. - (Wextra): Enabled by -Wextra. - * c-opts.c (c_common_post_options): Enabled by -Wextra. - * flow.c (rest_of_handle_life): Replace Wextra with Wclobbered. - * function.c (setjmp_vars_warning): Only warn for Wclobbered. - (setjmp_args_warning): Likewise. - -2006-12-22 Kazu Hirata - - * config/elfos.h, config/spu/spu.c, tree-ssa-operands.h, - tree-ssa-ter.c: Fix comment typos. - -2006-12-22 Paolo Bonzini - - PR rtl-optimization/29840 - - * fwprop.c (forward_propagate_into): Reject artificial uses/defs. - (fwprop_init): Add DF_HARD_REGS to df_init call. - -2006-12-21 Andrew Pinski - - * tree-nested.c (create_tmp_var_for): Check for vector type - when setting DECL_GIMPLE_REG_P. - -2006-12-21 Roger Sayle - - * tree-pretty-print.c (dump_generic_node): Avoid outputing "(void) 0;" - as the else branch of a COND_EXPR. - -2006-12-22 Kazu Hirata - - * cgraphunit.c, config/i386/i386.c, config/ia64/ia64.c, cse.c, - output.h, toplev.c, tree-affine.h, tree-flow.h, - tree-ssa-alias.c, tree-ssa-coalesce.c, tree-ssa-live.c, - tree-ssa-live.h, tree-ssa-operands.c, tree-ssa-ter.c, - tree-vrp.c, varpool.c: Fix comment typos. - - * cgraphunit.c, varpool.c: Fix comment typos. - -2006-12-22 Ulrich Weigand - - * config/spu/spu.h (ARG_POINTER_CFA_OFFSET): Define. - * config/spu/spu.c (spu_expand_prologue): Set RTX_FRAME_RELATED_P - for insn setting up the frame pointer. Do not set it for insns - setting up scratch registers or storing the backchain. - -2006-12-21 Eric Botcazou - - PR other/29639 - * configure.ac (HAVE_LD_EH_GC_SECTIONS): Check that exception tables - are kept for .gnu.linkonce.t sections if COMDAT groups are disabled. - * configure: Regenerate. - -2006-12-21 Joseph Myers - - * rtlanal.c (subreg_get_info): Do not make register size - computations for mode sizes not divisible by the number of - registers. - -2006-12-21 Daniel Berlin - - * tree-ssa-structalias.c (build_constraint_graph): Insert complex - offsetted constraints into rhsvar, not lhsvar. - -2006-12-21 Jakub Jelinek - - PR middle-end/30262 - PR middle-end/30263 - * tree-nested.c (walk_asm_expr): New function. - (walk_stmts): Use it for ASM_EXPR. - - PR target/30230 - * config/ia64/ia64.c (ia64_add_bundle_selector_before): New function. - (bundling): Use it. - -2006-12-21 Nathan Sidwell - - PR target/28966 - PR target/29248 - * reload1.c (reload): Realign stack after it changes size. - -2006-12-20 Roger Sayle - - * simplify-rtx.c (simplify_subreg): Use the correct mode when - determining whether a SUBREG of a CONCAT refers to the first or - second component. - -2006-12-21 Ben Elliston - - * config/spu/spu.c (spu_builtin_mul_widen_even): Remove unused - local variable `d'. - -2006-12-20 Jan Hubicka - - * tree-dfa.c (add_referenced_var): Walk initializers of - non-constant/readonly static vars. - -2006-12-20 Jan Hubicka - - * tree-flow-inline.h (gimple_var_anns): New function. - (var_ann): Use hashtable for static functions. - * tree-dfa.c (create_var_ann): Likewise. - * tree-ssa.c (var_ann_eq, var_ann_hash): New functions. - (init_tree_ssa): Initialize var anns. - (delete_tree_ssa): Delete var anns; also clear out gimple_df. - * tree-flow.h (struct static_var_ann_d): New structure. - (gimple_df): Add var_anns. - -2006-12-20 Carlos O'Donell - - PR bootstrap/30242 - * gcc/c-incpath.c (add_standard_paths): Only relocate paths that - begin with the configured prefix. - -2006-12-20 Jan Hubicka - - PR target/30213 - * i386.c (expand_setmem_epilogue): Fix formating. - (dsmalest_pow2_greater_than): New function. - (ix86_expand_movmem): Improve comments; avoid re-computing of - epilogue size. - (promote_duplicated_reg_to_size): Break out from ... - (expand_setmem): ... this one; reorganize promotion code; - improve comments; avoid recomputation of epilogue size. - -2006-12-20 Andrew Pinski - - PR middle-end/30143 - * omp-low.c (init_tmp_var): New function. - (save_tmp_var): New function. - (lower_omp_1): Use them for VAR_DECL. - -2006-12-20 Andrew Pinski - - * tree-gimple.c (is_gimple_min_invariant): Treat constant vector - CONSTRUCTORs as min invariants. - -2006-12-20 Joseph Myers - - * rtlanal.c (struct subreg_info, subreg_get_info, subreg_nregs): - New. - (subreg_regno_offset, subreg_offset_representable_p): Change to - wrappers about subreg_get_info. - (refers_to_regno_p, reg_overlap_mentioned_p): Use subreg_nregs. - * rtl.h (subreg_nregs): Declare. - * doc/tm.texi (HARD_REGNO_NREGS_HAS_PADDING): Update to refer to - subreg_get_info. - * caller-save.c (mark_set_regs, add_stored_regs): Use - subreg_nregs. - * df-scan.c (df_ref_record): Use subreg_nregs. - * flow.c (mark_set_1): Use subreg_nregs. - * postreload.c (move2add_note_store): Use subreg_nregs. - * reload.c (decompose, refers_to_regno_for_reload_p, - reg_overlap_mentioned_for_reload_p): Use subreg_nregs. - * resource.c (update_live_status, mark_referenced_resources, - mark_set_resources): Use subreg_nregs. - -2006-12-20 Zdenek Dvorak - - * loop-unswitch.c (unswitch_loop): Update arguments of - duplicate_loop_to_header_edge call. - * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Ditto. - * loop-unroll.c (peel_loop_completely, unroll_loop_constant_iterations, - unroll_loop_runtime_iterations, peel_loop_simple, unroll_loop_stupid): - Ditto. - * cfgloopmanip.c (loop_version): Ditto. - (duplicate_loop_to_header_edge): Change - type of to_remove to VEC(edge), remove n_to_remove argument. - * tree-ssa-loop-manip.c (tree_duplicate_loop_to_header_edge): - Change type of to_remove to VEC(edge), remove n_to_remove argument. - (tree_unroll_loop): Update arguments of - tree_duplicate_loop_to_header_edge call. - * cfghooks.c (cfg_hook_duplicate_loop_to_header_edge): - Change type of to_remove to VEC(edge), remove n_to_remove argument. - * cfghooks.h (struct cfg_hooks): Type of - cfg_hook_duplicate_loop_to_header_edge changed. - (cfg_hook_duplicate_loop_to_header_edge): Declaration changed. - * cfgloop.h (duplicate_loop_to_header_edge): Ditto. - * tree-flow.h (tree_duplicate_loop_to_header_edge): Ditto. - -2006-12-20 Dorit Nuzman - - * config/spu/spu.md (vec_widen_umult_hi_v8hi): New. - (vec_widen_umult_lo_v8hi, vec_widen_smult_hi_v8hi): New. - (vec_widen_smult_lo_v8hi): New. - * config/spu/spu.c (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_EVEN): Defined. - (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_ODD): Defined. - (spu_builtin_mul_widen_even, spu_builtin_mul_widen_odd): New. - -2006-12-20 Jan Hubicka - - * cgraph.c: Update overall comment; fix vertical spacing. - * ipa-inline.c (cgraph_decide_inlining): Remove now redundant check. - -2006-12-20 Jan Hubicka - - * cgraph.h (FOR_EACH_STATIC_VARIABLE, FOR_EACH_STATIC_INITIALIZER): New - macros. - (varpool_first_static_initializer, varpol_next_static_initializer): New - inline functions. - * ipa-reference.c (analyze_variable): Simplify. - (static_execute): Use FOR_EACH_STATIC_INITIALIZER. - * ipa-type-escape.c (type_escape_execute): Use FOR_EACH_STATIC_VARIABLE. - -2006-12-19 Andrew Pinski - - PR tree-opt/30045 - * tree-vrp.c (nonnull_arg_p): Treat the static decl as always - non null. - -2006-12-20 Ben Elliston - - * doc/invoke.texi (Optimize Options): Typo fix. - -2006-12-19 Eric Christopher - - * config/darwin.c (machopic_select_section): Rewrite. - (darwin_text_section): New. - (darwin_rodata_section): Ditto. - (darwin_mergeable_string_section): Ditto. - (darwin_mergeable_constant_section): Ditto. - * config/darwin-sections.def: Add SECTION_STRINGS for cstring_section. - -2006-12-19 Steve Ellcey - - * config/pa/pa64-hpux.h (ASM_OUTPUT_EXTERNAL): Add undef. - -2006-12-19 Paolo Bonzini - - PR bootstrap/29544 - * gcc/Makefile.in (STAGE1_CHECKING): Rename to... - (STAGE1_CHECKING_CFLAGS): ... this. - -2006-12-18 Andrew Pinski - - PR target/29779 - * config/rs6000/rs6000.c (altivec_init_builtins): Change to set - READONLY on __builtin_altivec_mask_for_load instead of adding - the attribute. - -2006-12-18 Roger Sayle - Eric Christopher - - PR target/29302 - * real.c (real_maxval): Correctly handle IBM extended double format. - -2006-12-19 Jan Hubicka - - * expmed.c (expand_mult_const): Force operand to constant. - * rs6000.c (rs6000_emit_set_const, rs6000_emit_set_long_const): Add - copy_rtx to arguments. - -2006-12-19 Ben Elliston - - * config/spu/spu.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define. - -2006-12-19 Ben Elliston - - * cse.c (cse_insn): Fix formatting. - -2006-12-18 Geoffrey Keating - - * doc/invoke.texi (Debugging Options): Document -g0. - * config/darwin.h (LINK_COMMAND_SPEC): Replace -gnone with -g0. - * config/darwin9.h (LINK_COMMAND_SPEC): Likewise. - -2006-12-18 Ian Lance Taylor - - * c.opt (Wmissing-declarations): Add C++ and ObjC++. - * doc/invoke.texi (Warning Options): -Wmissing-declarations now - works for C++. - -2006-12-18 Andrew MacLeod - - * tree-ssa-operands.h (struct vdef_optype_d): Rename to voptype_d. - (struct vuse_optype_d): Delete. - (SSA_OPERAND_MEMORY_SIZE): Delete. - (struct ssa_operand_memory_d): Change mem array to size one. - (NUM_VOP_FREE_BUCKETS): Define. - (free_vuses, free_vdefs): Replace with vop_free_buckets array. - (vdef_ops, vuse_ops, struct ssa_operand_iterator_d): Use voptype_d type. - * tree-pretty-print.c (dump_vops): Use voptype_d type. - * tree-ssa-operands.c (vop_free_bucket_size): New. Number of operands - which fit into a chunk of memory from a specific bucket. - (vop_free_bucket_index): New. Find correct size memory bucket. - (init_vop_buckets): New. Initialize VOP free memory buckets. - (add_vop_to_freelist): New. Add a VOP to the correct free list. - (ssa_operand_mem_size): New. Current size of an operand memory chunk. - (init_ssa_operands): Initialize operand memory and free lists. - (fini_ssa_operands): Remove references to free_vuses and free_vdefs. - (ssa_operand_alloc): Use graduated size memory allocation. - (APPEND_OP_AFTER, MOVE_HEAD_AFTER, MOVE_HEAD_TO_FREELIST, - INITIALIZE_USE): Remove. - (alloc_vop): New. Allocate a virtual operand. - (alloc_vdef, alloc_vuse): Delete. - (add_def_op, add_use_op): Directly setup pointers. - (add_vop): New. Add a virtual operand. - (add_vuse_op, add_vdef_op): Call add_vop. - (realloc_vop): New. Reallocate a virtual operand. - (realloc_vdef, realloc_vuse): Call realloc_vop. - (finalize_ssa_def_ops): Delete. Move content to finalize_ssa_defs. - (finalize_ssa_defs): Optimize for common case, remove code based on - sorted pointers which was a waste of time. - (finalize_ssa_use_ops): Delete. Move content to finalize_ssa_uses. - (finalize_ssa_uses): Update last pointer. - (finalize_ssa_vdef_ops): Delete. Move content to finalize_ssa_vdefs. - (finalize_ssa_vdefs, finalize_ssa_vuse_ops): Use voptype_d and - directly manipulate pointers. - (copy_virtual_operands): Use voptype_d, and no need to update pointers. - -2006-12-18 Nathan Sidwell - - * config/rs6000/rs6000.md (*movdf_hardfloat32): Use %X format to - determine if memory operand is an indexed address or not. - -2006-12-17 Steven Bosscher - - * cselib.c (struct cselib_val_struct): Make val_rtx its - own field, remove the union that contained it. - * cselib.c: Update accordingly where necessary. - -2006-12-17 Steven Bosscher - - * cse.c (have_eh_succ_edges): New function. - (cse_insn): Don't remove dead EH edges here - (cse_extended_basic_block): Do it here. - (rest_of_handle_cse, rest_of_handle_cse2): Don't assert - that we have removed all dead edges. - -2006-12-17 Matthias Klose - - PR libstdc++/11953 - * gcc/config/mips/linux.h (SUBTARGET_CPP_SPEC): Extend. - -2006-12-17 Steven Bosscher - - * cse.c (cse_find_path): Don't wrap a gcc_assert in ENABLE_CHECKING. - (cse_extended_basic_block): When truncating a path while processing - it, make sure to clear the visited bit on the basic blocks in the - truncated part of the path. - (cse_main): Use reverse completion order, not DFS order, to walk - the CFG. - (gate_handle_cse): Revert erroneous commit of a counter. - -2006-12-17 Steven Bosscher - - * cse.c (this_insn_cc0, this_insn_cc0_mode): New global - variables, moved out from cse_insn. - (prev_insn): Remove this global variable). - (new_basic_block): Don't set it. - (cse_insn): Idem. Also, move code to delete unused CC0-setter - insns and code to set prev_insn_cc0 and prev_insn_cc0_mode - from here... - (cse_extended_basic_block): ...to here. Do not clear - prev_insn_cc0 until after recording equivalences from jumps. - -2006-12-16 Jan Hubicka - - * cgraphunit.c (ipa_passes): Clear current_function_decl. - -2006-12-16 Andreas Tobler - - * passes.c (verify_curr_properties): Define only for ENABLE_CHECKING. - -2006-12-16 Jan Hubicka - - * omp-low.c (expand_omp_parallel): Set function properties. - * function.h (struct function): Add curr_properties and last_verified. - * passes.c (register_dump_files): Do not set TODO_set_props for the - first pass - (init_optimization_passes): Set it here; reorder initialization so the - dump files appear in more logical order. - (last_verified, curr_properties): Kill. - (do_per_function): New function. - (execute_function_todo): Break out from ... - (execute_todo): ... here; handle per-function flags. - (clear_last_verified, verify_curr_properties, - update_properties_after_pass): New functions. - (execute_one_pass): Handle per-function properties. - (execute_ipa_pass_list): Use do_per_function; sanity check that cfun - and current_function_decls are cleared out. - * ipa-cp.c (constant_val_insert): Clear cfun/current_function_decl - after use. - -2006-12-16 Manuel Lopez-Ibanez - - PR middle-end/7651 - * c.opt (Wempty-body): New. - * doc/invoke.texi (Wempty-body): Document it. - (Wextra): Enabled by -Wextra. - * c-opts.c (c_common_post_options): Enabled by -Wextra. - * c-common.c (empty_body_warning): Replace Wextra with Wempty-body. - * c-parser.c (c_parser_c99_block_statement): Likewise. - -2006-12-15 Jakub Jelinek - - PR target/30185 - * config/rs6000/rs6000.md (div3): Use correct mode in - force_reg call. - -2006-12-15 Andrew Pinski - - PR tree-opt/30140 - * tree-inline.c (setup_one_parameter): Gimplify the statement if - the variable is not a gimple register variable. - -2006-12-15 Uros Bizjak - - * invoke.texi (mstringop-strategy): Add missing "byte_loop" value. - -2006-12-14 Jan Hubicka - - * tree-flow.h (struct stmt_ann_d): Move bitfield references_memory - to proper place. - -2006-12-14 Richard Guenther - - PR tree-optimization/30197 - * builtins.c (fold_builtin_cexp): New function to fold cexp - to cexpi and exp parts. - * tree-ssa-pre.c (try_combine_conversion): Also handle - REALPART_EXPR and IMAGPART_EXPR. - -2006-12-14 Richard Guenther - - PR middle-end/30172 - * fold-const.c (fold_binary): Fold __complex__ ( x, 0 ) - + __complex__ ( 0, y ) to __complex__ ( x, y ). - Fold __complex__ (x, y) * +-I to __complex__ (-+y, +-x). - -2006-12-14 Richard Guenther - - PR tree-optimization/30198 - * fold-const.c (fold_unary): Fold REALPART_EXPR of cexpi to cos. - Fold IMAGPART_EXPR of cexpi to sin. - -2006-12-14 Dorit Nuzman - Trevor Smigiel - - * spu.c (TARGET_VECTORIZE_BUILTIN_MASK_FOR_LOAD): Defined. - (spu_init_builtins): Mark the SPU_MASK_FOR_LOAD builtin decl as read - only. - (spu_expand_builtin_1): Handle the SPU_MASK_FOR_LOAD builtin. - (spu_builtin_mask_for_load): New. - * spu-builtins.def (SPU_MASK_FOR_LOAD): Define new builtin. - * spu.md (UNSPEC_SPU_REALIGN_LOAD, UNSPEC_SPU_MASK_FOR_LOAD):New. - (vec_realign_load_, spu_lvsr): New. - -2006-12-13 Ian Lance Taylor - - PR c++/19564 - PR c++/19756 - * c-typeck.c (parser_build_binary_op): Move parentheses warnings - to warn_about_parentheses in c-common.c. - * c-common.c (warn_about_parentheses): New function. - * c-common.h (warn_about_parentheses): Declare. - * doc/invoke.texi (Warning Options): Update -Wparentheses - description. - -2006-12-13 Zdenek Dvorak - - * tree-ssa-loop-ivopts.c: Include tree-affine.h. - (divide): Removed. - (constant_multiple_of): Fix order of operators for division. - (aff_combination_const, aff_combination_elt, aff_combination_scale, - aff_combination_add_elt, aff_combination_add, aff_combination_convert, - tree_to_aff_combination, add_elt_to_tree, unshare_aff_combination, - aff_combination_to_tree): Moved to tree-affine.c and made to work with - double_int coefficients. - (get_computation_aff, get_computation_at): Work with double_int - coefficients. - (get_computation_cost_at): Do not use divide. - (rewrite_use_nonlinear_expr, rewrite_use_address, rewrite_use_compare): - Assert that expressing the computation did not fail. - * tree-ssa-address.c: Include tree-affine.h. - (add_to_parts, most_expensive_mult_to_index, addr_to_parts, - create_mem_ref): Work with double_int coefficients. - * tree-affine.c: New file. - * tree-affine.h: New file. - * tree-flow.h (struct affine_tree_combination): Removed. - * Makefile.in (tree-affine.o): Add. - (tree-ssa-address.o, tree-ssa-loop-ivopts.o): Add tree-affine.h - dependency. - -2006-12-13 Peter Bergner - - PR middle-end/30191 - Revert: - * reload1.c (eliminate_regs_in_insn): Merge the plus_src "else" and - the offset == 0 "then" clauses. - * config/rs6000/predicates.md (gpc_reg_operand): Check for - reload_in_progress. - -2006-12-13 Uros Bizjak - - * config/i386/i386.h (FIRST_PSEUDO_REGISTER): Define to 53. - (FIXED_REGISTERS, CALL_USED_REGISTERS): Remove dir register. - (REG_ALLOC_ORDER): Remove one element due to removal of dir register. - (FRAME_POINTER_REGNUM): Update register number to 20. - (REG_CLASS_CONTENTS): Update contents due to removed dir register. - (HI_REGISTER_NAMES): Remove "dirflag". - - * config/i386/i386.c (regclass_map): Remove dirflag entry. - (dbx_register_map, dbx64_register_map, svr4_dbx_register_map): - Remove "dir" entry. - (ix86_md_asm_clobbers): Remove "dirflag" default asm clobber. - - * config/i386/i386.md (R10_REG, R11_REG): Renumber. - (sse_prologue_save, *sse_prologue_save_insn): Renumber - hardcoded SSE register numbers. - - * config/i386/mmx.md (mmx_emms, mmx_femms): Renumber - hardcoded MMX register numbers. - - -2006-12-13 Mark Shinwell - - * config/arm/arm.c (arm_output_fldmx): Output FLDMD instead of - FLDMX. Rename function to... - (vfp_output_fldmd): ...this. - (vfp_output_fstmx): Output FSTMD instead of FSTMX. Rename - function to... - (vfp_output_fstmd): ...this. - (vfp_emit_fstmx): Don't leave space in the frame layout for the - FSTMX format word. Rename function to... - (vfp_emit_fstmd): ...this. - (arm_get_vfp_saved_size): Don't add in space for the FSTMX format - word. - (arm_output_epilogue): Adjust comment to reflect use of FSTMD. - (arm_unwind_emit_sequence): Don't compensate for the FSTMX format - word. Also emit "vsave" assembler directives in such cases rather - than "save". - * config/arm/libunwind.S (gnu_Unwind_Restore_VFP, - gnu_Unwind_Save_VFP): Adjust comments. - (gnu_Unwind_Restore_VFP_D, gnu_Unwind_Save_VFP_D): New functions - for saving and restoring using FSTMD and FLDMD rather than - FSTMX and FLDMX. - (gnu_Unwind_Restore_VFP_D_16_to_31, gnu_Unwind_Restore_VFP_D_16_to_31): - New functions for saving and restoring the VFPv3 registers 16 .. 31. - * config/arm/pr-support.c (gnu_unwind_execute): Add conditional - compilation case to correctly handle unwind opcode 0xc8 when using - VFP. - * config/arm/unwind-arm.c (struct vfpv3_regs): New. - (DEMAND_SAVE_VFP_D, DEMAND_SAVE_VFP_V3): New flags. - (__gnu_Unwind_Save_VFP_D, __gnu_Unwind_Restore_VFP_D, - __gnu_Unwind_Save_VFP_D_16_to_31, __gnu_Unwind_Restore_VFP_D_16_to_31): - Declare. - (restore_non_core_regs): Restore registers using FLDMD rather than - FLDMX if required. Also handle restoration of VFPv3 registers. - (_Unwind_VRS_Pop): Handle saving and restoring of registers using - FSTMD and FLDMD if required; also handle VFPv3 registers 16 .. 31, - including cases where the caller specifies a range of registers - that overlaps the d15/d16 boundary. - -2006-12-13 Diego Novillo - - PR 30089 - * tree-ssa-operands.h (SSA_OPERAND_MEMORY_SIZE): Add space to - accomodate 511 operands. - -2006-12-13 Richard Guenther - - * builtins.c (expand_builtin_cexpi): Fix typo. - -2006-12-13 Jan Hubicka - - * Makefile.in: Add dependencies. - * tree-pretty-print.c: Include value-prof.h - (dump_generic_bb_buff): Dump histograms - * value-prof.c: Include pointer-set.h - (gimple_alloc_histogram_value, histogram_hash, histogram_eq, - set_histogram_value, gimple_histogram_value, - gimple_add_histogram_value, gimple_remove_histogram_value, - gimple_histogram_value_of_type, dump_histogram_value, - dump_histograms_for_stmt, gimple_remove_stmt_histograms, - gimple_duplicate_stmt_histograms, visit_hist, - verify_histograms): New functions. - (tree_value_profile_transformations): Update for new histogram API. - (tree_divmod_fixed_value): Update for new histogram API. - (tree_divmod_fixed_value_transform): Update for new histogram API. - (tree_mod_pow2): Update for new histogram API. - (tree_mod_pow2_value_transform): Update for new histogram API. - (tree_mod_subtract): Update for new histogram API. - (tree_mod_subtract_transform): Update for new histogram API. - (tree_stringops_transform): Update for new histogram API. - (tree_divmod_values_to_profile): Update for new histogram API. - (tree_stringops_values_to_profile): Update for new histogram API. - (tree_find_values_to_profile): Update for new histogram API. - * value-prof.h (gimple_histogram_value): Declare. - (gimple_histogram_value_of_type): Declare. - (gimple_add_histogram_value): Declare. - (gimple_remove_histogram_value): Declare. - (dump_histograms_for_stmt): Declare. - (gimple_remove_histogram_value): Declare. - (gimple_remove_stmt_histograms): Declare. - (gimple_duplicate_stmt_histograms): Declare. - (verify_histograms): Declare. - * function.h - (struct funrction): Add value_histograms hash. - (VALUE_HISTOGRAMS): New macro. - * profile.c (compute_value_histograms): update for new API. - * tree-inline.c: Include value-prof.h - (copy_bb): Update histograms. - * tree-flow.h (struct stmt_ann_d): Do not contain pointer to histograms; - reorder to get smaller memory layout. - * tree-cfg.c: Include value-prof.h - (bsi_remove): Update histograms. - (bsi_replace): Update histograms. - (verify_stmts): Call histogram verifier. - (tree_duplicate_bb): Update histograms. - (move_block_to_fn): Update histograms. - -2006-12-13 Richard Guenther - - * ipa-inline.c (cgraph_flatten_node): Replace leafify with - flatten. - (cgraph_decide_inlining): Likewise. - -2006-12-13 Richard Guenther - - PR tree-optimization/17687 - * builtins.def (BUILT_IN_CEXPI, BUILT_IN_CEXPIF, BUILT_IN_CEXPIL): - New builtins for imaginary argument cexp. - * builtin-types.def (BT_FN_COMPLEX_FLOAT_FLOAT, - BT_FN_COMPLEX_DOUBLE_DOUBLE, BT_FN_COMPLEX_LONGDOUBLE_LONGDOUBLE): - New required builtin types. - * builtins.c (expand_builtin_cexpi): Declare. - (mathfn_built_in): Handle BUILT_IN_CEXPI. - (expand_builtin_cexpi): New static helper. - (expand_builtin): Call it. - (do_mpfr_sincos): Adjust for CEXPI evaluation. - (fold_builtin_sincos): New function to fold sincos to cepxi. - -2006-12-13 Richard Guenther - - * ipa-reference.c (scan_for_static_refs): Also scan - tcc_comparison class trees. - -2006-12-12 David Daney - - * config/mips/mips.h (ASM_OUTPUT_EXTERNAL): Undefine it before - define. - -2006-12-12 Andrew Pinski - - * tree-vect-transform.c (vect_permute_load_chain): - Set DECL_GIMPLE_REG_P to true for the vect_perm_* - temp variables. - -2006-12-13 Sa Liu - Ben Elliston - - * config/spu/spu.h (C_COMMON_OVERRIDE_OPTIONS): Define. - (REGISTER_TARGET_PRAGMAS): Don't zero warn_main flag. - * config/spu/spu-protos.h (spu_c_common_override_options): - Declare. - * config/spu/spu-c.c (spu_c_common_override_options): New. - * config/spu/spu.c (spu_override_options): Whitespace fix. - -2006-12-12 Trevor Smigiel - - * config/spu/spu.c (cpat_info): Fix an incorrectly identified case. - -2006-12-12 Geoffrey Keating - - * mips-tdump.c: Replace CROSS_COMPILE with - CROSS_DIRECTORY_STRUCTURE. - * mips-tfile.c: Likewise. - * gcc.c: Likewise. - * configure.ac: Likewise. - * cppdefault.c: Likewise. - * Makefile.in: Likewise. - * config/alpha/osf.h: Likewise. - * config/i386/cygwin.h: Likewise. - * config/i386/beos-elf.h: Likewise. - * config/i386/nto.h: Likewise. - * config/fr30/fr30.h: Likewise. - * config/svr4.h: Likewise. - * config/rs6000/aix.h: Likewise. - * config/rs6000/sysv4.h: Likewise. - * config/pa/pa64-hpux.h: Likewise. - * config/pa/pa-hpux10.h: Likewise. - * config/pa/pa-hpux11.h: Likewise. - * collect2.c: Likewise. - * configure: Regenerate. - - * doc/tm.texi (Alignment Output): Document that ASM_OUTPUT_SKIP - actually takes an unsigned HOST_WIDE_INT for its second parameter. - -2006-12-13 Ulrich Weigand - - * config/spu/spu.c (TARGET_ENCODE_SECTION_INFO): Define. - (spu_encode_section_info): New. - * config/spu/spu.h (ALIGNED_SYMBOL_REF_P): Adjust. - (SYMBOL_FLAG_ALIGN1): New. - -2006-12-12 Andrew Pinski - - PR tree-opt/28624 - * tree-ssa-dom.c (eliminate_degenerate_phis): Use a temporary - bitmap for EXECUTE_IF_SET_IN_BITMAP. - -2006-12-12 Andrew Pinski - - PR tree-opt/28436 - * tree.h (DECL_COMPLEX_GIMPLE_REG_P): Rename to ... - (DECL_GIMPLE_REG_P): This. - * fold-const.c (fold_indirect_ref_1): Fold *(foo *)&vectorfoo into - using BIT_FIELD_REF. - * omp-low.c (omp_copy_decl_2): Use the renamed DECL_GIMPLE_REG_P. - * tree-gimple.c (is_gimple_reg): Use the renamed DECL_GIMPLE_REG_P - and check for VECTOR_TYPE. - * expr.c (get_inner_reference): Set the mode for BIT_FIELD_REF with - vector types. - * tree-flow-inline.h (var_can_have_subvars): Use the renamed - DECL_GIMPLE_REG_P. - * gimplify.c (internal_get_tmp_var): Use the renamed DECL_GIMPLE_REG_P - and check for VECTOR_TYPE. - (gimplify_bind_expr): Likewise. - (gimplify_function_tree): Likewise. - * expmed.c: Include target.h. - (extract_bit_field): For vector mode, try find a better mode first. - If that fails use gen_lowpart (for vectors only). - * tree-dfa.c (make_rename_temp): Use the renamed DECL_GIMPLE_REG_P - and check for VECTOR_TYPE. - * tree-ssa-pre.c (create_expressions_by_pieces): Likewise. - (insert_into_preds_of_block): Likewise. - (insert_fake_stores): Create gimple register store_tmps for - vector types. - * tree-sra.c (sra_elt): New field, is_vector_lhs. - (sra_walk_expr ): For vector types that - are the left hand side, set the element's is_vector_lhs to true. - (instantiate_element): For vector types which were on the left - hand size, set DECL_GIMPLE_REG_P to false. - * tree-nested.c (create_tmp_var_for): Use the renamed - DECL_GIMPLE_REG_P. - * tree-inline.c (declare_return_variable): Use the renamed - DECL_GIMPLE_REG_P and check for VECTOR_TYPE. - (copy_decl_to_var): Use the renamed DECL_GIMPLE_REG_P. - (copy_result_decl_to_var): Likewise. - * tree-vect-transform.c (vect_get_new_vect_var): For vector types, - create a gimple register variable. - (vect_permute_store_chain): Set DECL_GIMPLE_REG_P to true for the - vect_inter_* temp variables. - * Makefile.in (expmed.o): Update dependencies. - -2006-12-12 Peter Bergner - - * reload1.c (eliminate_regs_in_insn): Merge the plus_src "else" and - the offset == 0 "then" clauses. - * config/rs6000/predicates.md (gpc_reg_operand): Check for - reload_in_progress. - -2006-12-12 Marcin Dalecki - - * doc/passes.texi: remove docs about "redundant PHI removal". - * tree-pass.h: remove orphaned declaration of pass_redundant_phi, - remove redundant pass_partition_blocks declaration. - -2006-12-12 Andrew Macleod - - PR tree-optimization/30159 - * tree-ssa-coalesce.c (coalesce_ssa_name): Process single ssa_name - functions in case a default_def coalesce is required. - -2006-12-12 Jakub Jelinek - - PR libstdc++/11953 - * gthr-posix.h (_REENTRANT): Only define if __osf__ is defined. - - * config/ia64/linux.h (CPP_SPEC): Define. - * config/s390/linux.h (CPP_SPEC): Define. - -2006-12-12 Jim Wilson - Jakub Jelinek - - PR rtl-optimization/27761 - * combine.c (try_combine): Don't create a useless garbage SET - if PATTERN (i2) is a PARALLEL. If added_sets_1, save - PATTERN (i1) resp. SET from i1src to i1dest in i1pat - and use it to prevent accidental modification of i1src. - -2006-12-12 Ira Rosen - - * tree-vect-analyze.c (vect_analyze_data_ref_access): Add another check - for stores with gaps. - * tree-vect-transform.c (vect_permute_store_chain): Create - interleave_high or interleave_low according to the endianess. - -2006-12-12 Richard Guenther - - PR middle-end/30147 - * fold-const.c (fold_read_from_constant_string): Only fold read - from constant string if the result type is integer. - -2006-12-12 Olivier Hainque - - * config/rs6000/t-vxworks: Remove assignment to LIB2FUNCS_EXTRA. - -2006-12-12 Olivier Hainque - - * config/vxlib.c: Extract tls related routines into ... - * config/vxlib-tls.c: New file. - * config/t-vxworks: Add vxlib-tls.c to LIB2FUNCS_EXTRA. - -2006-12-12 Sa Liu - Ben Elliston - - * config/spu/spu.opt (mfixed-range): New option. - * config/spu/spu.h (spu_fixed_range_string): Declare. - * config/spu/spu.c (spu_override_options): Handle -mfixed-range. - (fix_range): New function. - * doc/invoke.texi (SPU Options): Document -mfixed-range. - * testsuite/gcc.target/spu/fixed-range.c: New. - * testsuite/gcc.target/spu/fixed-range-bad.c: Ditto. - -2006-12-11 H.J. Lu - - PR middle-end/17982 - PR middle-end/20218 - * cgraphunit.c (cgraph_optimize): Remove call to - process_pending_assemble_externals. - - * config/elfos.h (ASM_OUTPUT_EXTERNAL): New. - - * config/ia64/hpux.h (TARGET_ASM_FILE_END): Removed. - - * config/ia64/ia64.c (ia64_asm_output_external): Rewritten. - (ia64_hpux_add_extern_decl): Removed. - (ia64_hpux_file_end): Likewise. - (extern_func_list): Likewise. - (extern_func_head): Likewise. - - * output.h (assemble_external): Update comments. - (default_elf_asm_output_external): New. - (maybe_assemble_visibility): New. - - * toplev.c (compile_file): Update comment. - - * varasm.c (assemble_external): Always put it on - pending_assemble_externals. - (maybe_assemble_visibility): Make it extern and return int. - (default_elf_asm_output_external): New. - -2006-12-11 Daniel Berlin - - * tree-ssa-structalias.c (handle_ptr_arith): Return false when we - can't handle the pointer arithmetic. - -2006-12-11 Diego Novillo - - * doc/tree-ssa.texi: Update documentation for virtual operands - and the use of push_stmt_changes/pop_stmt_changes. - * doc/invoke.texi: Remove documentation for params - global-var-threshold. - Update documentation on max-aliased-vops. - - * tree-into-ssa.c: Cleanup comments, variables and - spacing in various functions. - (regs_to_rename): Declare. - (mem_syms_to_rename): Declare. - (dump_update_ssa): Declare. - (debug_update_ssa): Declare. - (dump_names_replaced_by): Declare. - (debug_names_replaced_by): Declare. - (dump_def_blocks): Declare. - (debug_def_blocks): Declare. - (dump_defs_stack): Declare. - (debug_defs_stack): Declare. - (dump_currdefs): Declare. - (debug_currdefs): Declare. - (mark_def_sites): Do not handle virtual operands. - (compute_idf): Rename from find_idf. Update users. - (register_new_def): Make local. Convert second argument - to 'tree'. - Use BLOCK_DEFS_STACK directly. - If pushing a non-register, also push the underlying - symbol. - (rewrite_stmt): Do not handle virtual operands. - (dump_tree_ssa): Call dump_def_blocks, dump_defs_stack, - dump_currdefs and dump_tree_ssa_stats. - (dump_tree_ssa_stats): Also dump REPL_TBL. - (replace_use): Remove. Update all users to call SET_USE - instead. - (rewrite_blocks): Move code to free memory to - fini_ssa_renamer. - (mark_def_site_blocks): Move initialization code to - init_ssa_renamer. - (init_ssa_renamer): New. - (fini_ssa_renamer): New. - (rewrite_into_ssa): Call them. - (prepare_block_for_update): Process SSA_OP_ALL_USES first - and SSA_OP_ALL_DEFS later. Do not process virtual - operands separately. - (dump_update_ssa): Call dump_decl_set. - (init_update_ssa): Initialize regs_to_rename and - mem_syms_to_rename. - Call init_ssa_renamer. - (delete_update_ssa): Call fini_ssa_renamer. - Free blocks_with_phis_to_rewrite. - (mark_sym_for_renaming): If the variable has - sub-variables, also mark them. - If the variable belongs to a partition, also mark it. - (mark_set_for_renaming): Call mark_sym_for_renaming on - every symbol in the set. - (switch_virtuals_to_full_rewrite): Call - mark_set_for_renaming. - (update_ssa): Separate syms_to_rename into regs_to_rename - and mem_syms_to_rename. - - * tree-dump.c (dump_options): Add TDF_MEMSYMS. - * tree-pretty-print.c (debug_generic_expr): Add TDF_MEMSYMS. - (debug_generic_stmt): Likewise. - (debug_tree_chain): Likewise. - (dump_symbols): New. - (dump_generic_node): Check for TDF_MEMSYMS. - Handle MEMORY_PARTITION_TAG. - If the statement references memory and TDF_MEMSYMS is - given, call dump_symbols. - Indicate default names with (D). - (dump_vops): Update for new virtual operator format. - - * tree.c (init_ttree): Add MEMORY_PARTITION_TAG to - tree_contains_struct. - (tree_code_size): Handle MEMORY_PARTITION_TAG. - (tree_node_structure): Likewise. - (needs_to_live_in_memory): Handle SSA names. - * tree.h (MTAG_P): Likewise. - (struct tree_memory_partition_tag): Declare. - (MPT_SYMBOLS): Define. - (union tree_node): Add field 'mpt'. - * treestruct.def (TS_MEMORY_PARTITION_TAG): Define. - * tree.def (MEMORY_PARTITION_TAG): Define. - - * tree-pass.h (TDF_MEMSYMS): Define. - - * params.h (GLOBAL_VAR_THRESHOLD): Remove. - - * tree-ssa-alias.c: Include pointer-set.h - (struct alias_map_d): Remove fields total_alias_vops, - grouped_p and may_aliases. Update all users. - (struct mp_info_def): Declare. - (mp_info_t): New type. - (get_smt_for): Rename from get_tmt_for. Update all - users. - (add_may_alias): Add argument ALREADY_ADDED. If given, - use it to avoid adding duplicate entries to alias sets. - (replace_may_alias): Remove. Update all users. - (total_alias_vops_cmp): Remove. Update all users. - (group_aliases_into): Remove. Update all users. - (tree_pointer_compare): Remove. Update all users. - (compact_name_tags): Remove. Update all users. - (group_aliases): Remove. Update all users. - (mark_non_addressable): Move from tree-flow-inline.h. - Remove the symbol from the partition holding it, if - needed. - (dump_mp_info): New. - (debug_mp_info): New. - (sort_mp_info): New. - (create_partition_for): New. - (rewrite_alias_set_for): New. - (compute_memory_partitions): New. - (compute_may_aliases): Call it. - (init_alias_info): If computing aliases for the first - time, mark every memory symbol for renaming. - (have_common_aliases_p): New. - (compute_flow_insensitive_aliasing): Call it. - (setup_pointers_and_addressables): Do not cache - num_referenced_vars. - For register promoted symbols, mark their former - partition for renaming. - (maybe_create_global_var): Only create .GLOBAL_VAR if - there are no call-clobbered variables and a mix of pure - and non-pure functions were found. - (may_alias_p): Tidy comments. - (create_tag_raw): Remove unused variable new_type. - (dump_alias_info): call dump_memory_partitions. - (dump_points_to_info_for): Call dump_decl_set. - (may_be_aliased): Tidy comments and formatting. - - * timevar.def (TV_MEMORY_PARTITIONING): Define. - * tree-vectorizer.c (vect_memsyms_to_rename): Rename from - vect_vnames_to_rename. Set DECL_UIDs instead of SSA name - versions in it. - (slpeel_update_phi_nodes_for_guard1): Ignore memory PHIs. - * tree-vect-transform.c (vect_transform_loop): Call - mark_set_for_renaming with vect_memsyms_to_rename. - * tree-flow-inline.h (zero_imm_uses_p): New. - (memory_partition): New. - (set_memory_partition): New. - (factoring_name_p): New. - (symbol_mem_tag): New. Update every function that used - to access the annotation directly. - (set_symbol_mem_tag): Likewise. - - * tree-ssa-copy.c (may_propagate_copy): Allow copies - between a partition and a symbol as long as the symbol - belongs to the partition. - (merge_alias_info): Ignore merge requests when memory - partitions are involved. - - * tree-ssa.c (verify_ssa_name): Check that default - definitions have empty defining statements. - (verify_use): Remove argument IS_VIRTUAL. - Don't call verify_ssa_name. - (verify_phi_args): Call verify_ssa_name. - (verify_flow_insensitive_alias_info): Handle MPTs. - (verify_flow_sensitive_alias_info): Likewise. - (verify_name_tags): Likewise. - (verify_call_clobbering): Likewise. - (verify_ssa): Check for VOPs only after aliasing - information is available. - Check virtuals and real operands separately. - Call verify_ssa_name on every operand. - (stmt_references_memory_p): Move to tree-ssa-operands.c. - (walk_use_def_chains_1): Guard against NULL PHI - arguments. - - * tree-ssa-operands.c (stmt_references_memory_p): Move from - tree-ssa.c. - (get_mpt_for): New. - (dump_memory_partitions): New. - (debug_memory_partitions): New. - - * tree-flow.h (struct var_ann_d): Add field mpt. - (struct stmt_ann_d): Add bitfield references_memory. - * Makefile.in (tree-ssa-structalias.o): Include - pointer-set.h - (tree-ssa-alias.o): Likewise. - * tree-ssa-structalias.c: (update_alias_info): Use - STORED_SYMS to determine which variables are being - written to by the store operation. - * tree-ssa-structalias.h (struct alias_info) - : Remove. Update all users. - : Change to a pointer set. Update all - users. - : Likewise. - : Likewise. - (NUM_REFERENCES): Remove. Update all users. - (NUM_REFERENCES_CLEAR): Remove. Update all users. - (NUM_REFERENCES_INC): Remove. Update all users. - (NUM_REFERENCES_SET): Remove. Update all users. - - * params.def (PARAM_GLOBAL_VAR_THRESHOLD): Remove. - Update all users. - (PARAM_MAX_ALIASED_VOPS): Set to 10. - * tree-ssanames.c (make_ssa_name): Initialize - SSA_NAME_IS_DEFAULT_DEF to 0. - -2006-12-11 Aldy Hernandez - - * tree-ssa-dse.c (aggregate_vardecl_d): New. - (dse_global_data): Add aggregate_vardecl field. - (dse_possible_dead_store_p): New. - Add prev_defvar variable. - Allow immediate uses and previous immediate uses to differ - if they are setting different parts of the whole. - (get_aggregate_vardecl): New. - (dse_record_partial_aggregate_store): New. - (dse_whole_aggregate_clobbered_p): New. - (dse_partial_kill_p): New. - (dse_optimize_stmt): Abstract code checking a possible dead store - into new function dse_possible_dead_store_p(). - Call dse_maybe_record_aggregate_store(). - When checking whether a STMT and its USE_STMT refer to the - same memory address, check also for partial kills that clobber - the whole. - Move some variable definitions to the block where they are used. - (aggregate_vardecl_hash): New. - (aggregate_vardecl_eq): New. - (aggregate_vardecl_free): New. - (aggregate_whole_store_p): New. - (tree_ssa_dse): Initialize and free aggregate_vardecl. - Mark which aggregate stores we care about. - -2006-12-11 Andrew Macleod - - * tree-ssa-operands.h (struct vuse_element_d): Declare. - (vuse_element_t): Declare. - (struct vuse_vec_d): Declare. - (vuse_vec_p): Declare. - (VUSE_VECT_NUM_ELEM): Define. - (VUSE_VECT_ELEMENT_NC): Define. - (VUSE_ELEMENT_PTR_NC): Define. - (VUSE_ELEMENT_VAR_NC): Define. - (VUSE_VECT_ELEMENT): Define. - (VUSE_ELEMENT_PTR): Define. - (VUSE_ELEMENT_VAR): Define. - (struct maydef_optype_d) : Remove. - : Remove. - : Add. - (struct vuse_optype_d) : Remove. - : Remove. - : Add. - (struct mustdef_optype_d) : Remove. - : Remove. - : Add. - (VUSE_OP_PTR): Add argument. Use VUSE_ELEMENT_PTR. - (VUSE_OP): Add argument. Use VUSE_ELEMENT_PTR. - (VUSE_NUM): Define. - (VUSE_VECT): Define. - (MAYDEF_OP_PTR): Add argument. Use VUSE_OP_PTR. - (MAYDEF_OP): Add argument. Use VUSE_OP. - (MAYDEF_NUM): Define. - (MAYDEF_VECT): Define. - (MUSTDEF_KILL_PTR): Use VUSE_OP_PTR. - (MUSTDEF_KILL): Use VUSE_OP. - (MUSTDEF_NUM): Define. - (MUSTDEF_VECT): Define. - (realloc_maydef): Declare. - (realloc_vuse): Declare. - (struct ssa_operand_iterator_d) : Add. - : Add. - (LOADED_SYMS): Define. - (STORED_SYMS): Define. - (FOR_EACH_SSA_MUSTDEF_OPERAND): Call op_iter_next_mustdef. - * tree-into-ssa.c: Adapt for multi-operand V_MAY_DEF and VUSE - operators. - * tree-pretty-print.c: Likewise. - * tree-ssa-dse.c: Likewise. - * tree-flow-inline.h: Likewise. - (op_iter_next_mustdef): New. - * tree-ssa-operands.c: Likewise. - (ALLOC_OPTYPE): Remove. - Update all users. - (alloc_def): New. - (alloc_use): New. - (alloc_maydef): New. - (alloc_vuse): New. - (alloc_mustdef): New. - (realloc_maydef): New. - (realloc_vuse): New. - -2006-12-11 Aldy Hernandez - - * tree-ssa-operands.c: Remove build_v_must_defs. - (init_ssa_operands): Delete build_v_must_defs. - (finalize_ssa_v_must_def_ops): Remove. - (finalize_ssa_v_must_defs): Remove. - (finalize_ssa_stmt_operands): Do not call - finalize_ssa_v_must_defs. - (start_ssa_stmt_operands): Do not check build_v_must_defs. - (append_v_must_def): Delete. - (copy_virtual_operands): Do not copy V_MUST_DEFs. - (get_modify_expr_operands): Remove reference to V_MUST_DEF from - comment. Remove opf_kill_def. - (build_ssa_operands): Remove references to v_must_defs. - (copy_virtual_operands): Same. - (copy_virtual_operands): Same. - (fini_ssa_operands): Same. - (free_ssa_operands): Same. - (add_mustdef_op): Remove. - Remove mustdef_optype_p. - (alloc_mustdef): Remove. - Remove references to V_MUST_DEFs in comment at top of file. - (get_expr_operands): Remove opf_kill_def. - (opf_kill_def): Remove. - (add_virtual_operand): Remove opf_kill_def. - (get_indirect_ref_operands): Same. - (get_tmr_operands): Same. - - * tree-vectorizer.c (rename_variables_in_bb): Remove - SSA_OP_ALL_KILLS. - - * tree-ssa-loop-manip.c (find_uses_to_rename_stmt): Remove - SSA_OP_ALL_KILLS. - (check_loop_closed_ssa_stmt): Same. - - * tree-ssa.c (verify_def): Remove V_MUST_DEF from comment. - (verify_use): Same. - (verify_ssa): Remove V_MUST_DEFs traces. - (verify_ssa): Remove SSA_OP_ALL_KILLS. - - * tree-into-ssa.c (mark_def_sites): Change SSA_OP_VMUSTDEF to - SSA_OP_VMAYDEF. - (rewrite_update_stmt): Remove SSA_OP_VIRTUAL_KILLS. - (rewrite_stmt): Remove SSA_OP_ALL_KILLS. - - * tree-ssa-operands.h (struct stmt_operands_d): Remove V_MUST_DEF - references. - (MUSTDEF_OPS): Remove. - (SSA_OP_VMUSTDEF): Remove. - (FOR_EACH_SSA_MUSTDEF_OPERAND): Remove. - (struct mustdef_optype_d): Remove. - Remove mustdef_optype_p. - (struct stmt_operands_d): Remove mustdef_ops. - (ssa_operand_iterator_d): Remove mustdefs and mustkills. - (SSA_OP_VIRTUAL_DEFS): Remove SSA_OP_VMUSTDEF. - (MUSTDEF_RESULT_PTR): Remove. - (MUSTDEF_RESULT): Remove. - (MUSTDEF_KILL_PTR): Remove. - (MUSTDEF_KILL): Remove. - (MUSTDEF_NUM): Remove. - (MUSTDEF_VECT): Remove. - (SSA_OP_VIRTUAL_KILLS): Remove. - (SSA_OP_ALL_VIRTUALS): Remove SSA_OP_VIRTUAL_KILLS. - (SSA_OP_VMUSTKILL): Remove. - (SSA_OP_ALL_KILLS): Remove. - (SSA_OP_ALL_OPERANDS): Remove SSA_OP_ALL_KILLS. - - * tree-flow-inline.h (op_iter_init_def): Remove - SSA_OP_VIRTUAL_KILLS. - (delink_stmt_imm_use): Remove SSA_OP_ALL_KILLS. - - * tree-ssa-pre.c (compute_rvuse_and_antic_safe): Remove - SSA_OP_VIRTUAL_KILLS. - - * tree-ssa-loop-im.c (determine_max_movement): Remove - SSA_OP_VIRTUAL_KILLS. - (gather_mem_refs_stmt): Same. - (gather_mem_refs_stmt): Same. - - * tree-ssa-dce.c (mark_really_necessary_kill_operand_phis): Delete. - (perform_tree_ssa_dce): Remove call to - mark_really_necessary_kill_operand_phis. - - * tree-flow-inline.h (op_iter_init): Remove setting of mustdefs - and mustkills. - (op_iter_next_use): Do not check mustkills. - (op_iter_next_def): Do not check mustdefs. - (op_iter_next_tree): Do not check mustkills or mustdefs. - (clear_and_done_ssa_iter): Do not set mustdefs or mustkills. - (op_iter_next_maymustdef): Do not check mustkills. - (op_iter_init_must_and_may_def): Remove SSA_OP_VMUSTKILL. - (op_iter_init_mustdef): Remove. - - * tree-ssa-live.c (create_ssa_var_map): Change SSA_OP_VMUSTDEF to - SSA_OP_VMAYDEF. - - * tree-ssa-dse.c (dse_optimize_stmt): Remove SSA_OP_VMUSTDEF. - - * tree-ssa-ccp.c: Remove V_MUST_DEF traces from comments. - (visit_assignment): Same. - - * tree-ssa-copy.c (copy_prop_visit_assignment): Same. - - * tree-sra.c (mark_all_v_defs_1): Remove V_MUST_DEF from comment. - - * tree-outof-ssa.c (check_replaceable): Remove SSA_OP_VMUSTDEF. - - * tree-pretty-print.c (dump_vops): Remove printing of V_MUST_DEF. - Remove kill_p variable. - - * tree-dfa.c (struct dfa_stats_d): Remove num_v_must_defs. - (dump_dfa_stats): Remove code related to V_MUST_DEFs. - (collect_dfa_stats_r): Do not set num_v_must_defs. - (mark_new_vars_to_rename): Remove v_must_defs_{before,after} - code. - - * tree-into-ssa.c (mark_def_sites): Change SSA_OP_VMUSTKILL to - SSA_OP_VMAYUSE. - - * tree-ssa-pre.c (compute_rvuse_and_antic_safe): Remove - SSA_OP_VMUSTDEF and SSA_OP_VMUSTKILL. - - * tree-ssa-propagate.c (stmt_makes_single_store): Remove - SSA_OP_VMUSTDEF. - -2006-12-11 Zdenek Dvorak - - PR rtl-optimization/30113 - * loop-iv.c (implies_p): Require the mode of the operands to be - scalar. - -2006-12-11 Diego Novillo - - * tree-ssa-operands.h (create_ssa_artificial_load_stmt): - Rename from create_ssa_artficial_load_stmt. Update all users. - * tree-into-ssa.c (register_new_def): Make static. - * tree.c (is_global_var): Handle SSA_NAMEs. - * tree.h (SSA_NAME_IS_DEFAULT_DEF): Define. Update all users - that used to call gimple_default_def. - * tree-ssa-operands.c (push_stmt_changes): New. - (pop_stmt_changes): New. Update every pass that modifies - statements to bracket modifications with - push_stmt_changes/pop_stmt_changes. - (discard_stmt_changes): New. - * tree-ssa-dom.c (stmts_to_rescan): Change to stack of - 'tree *' instead of 'tree'. Update all users. - * tree-flow-inline.h (zero_imm_uses_p): New. - (symbol_mem_tag): New. Update every function that used - to access the annotation directly. - (set_symbol_mem_tag): Likewise. - * tree-dfa.c (dump_variable): Always show the escape mask. - (mark_symbols_for_renaming): Rename from - mark_new_vars_to_rename. Update all users. - Only mark to rename naked symbols in real and virtual - operands. - -2006-12-11 Andreas Schwab - - * varasm.c (elf_record_gcc_switches): Cast second argument of - ASM_OUTPUT_SKIP to unsigned HOST_WIDE_INT. - -2006-12-11 Diego Novillo - - * tree-scalar-evolution.c (scev_const_prop): - * tree-phinodes.c (remove_phi_node): Add argument - RELEASE_LHS_P. If given, release the SSA name on the LHS of - the PHI node. - Update all users. - * tree-ssa-dce.c: Remove forward declarations for static - functions. Re-arrange functions bodies as needed. - (find_obviously_necessary_stmts): Never mark PHI nodes as - obviously necessary. - -2006-12-11 Carlos O'Donell - - * config/arm/elf.h (MAX_OFILE_ALIGNMENT): Remove definition. - -2006-12-11 Jan Hubicka - - * value-prof.c (tree_stringops_transform): New. - (tree_value_profile_transformations): Require count to be non-zero; - call stringop transform; reset stmt BSI after BB changed. - (tree_divmod_fixed_value, tree_mod_pow2): Don't emit unnecesary label. - (interesting_stringop_to_profile_p, tree_stringop_fixed_value): New. - (tree_stringops_values_to_profile): New. - (tree_values_to_profile): Call tree_stringops_values_to_profile. - * tree.h (build_string_literal): Tidy prototype. - (validate_arglist, builtin_memset_read_str, get_pointer_alignment): - Declare. - * builtins.c (validate_arglist, builtin_memset_read_str, - get_pointer_alignment): Export. - -2006-12-11 Uros Bizjak - - PR target/30120 - Revert: - 2006-11-15 Uros Bizjak - - * config/i386/i386.opt: New target option -mx87regparm. - - * config/i386/i386.h (struct ix86_args): Add x87_nregs, x87_regno, - float_in_x87: Add new variables. mmx_words, sse_words: Remove. - (X87_REGPARM_MAX): Define. - - * config/i386/i386.c (override_options): Error out for - -mx87regparm but no 80387 support. - (ix86_attribute_table): Add x87regparm. - (ix86_handle_cconv_attribute): Update comments for x87regparm. - (ix86_comp_type_attributes): Check for mismatched x87regparm types. - (ix86_function_x87regparm): New function. - (ix86_function_arg_regno_p): Add X87_REGPARM_MAX 80387 floating - point registers. - (init_cumulative_args): Initialize x87_nregs and float_in_x87 - variables. - (function_arg_advance): Process x87_nregs and x87_regno when - floating point argument is to be passed in 80387 register. - (function_arg): Pass XFmode arguments in 80387 registers for local - functions. Pass SFmode and DFmode arguments to local functions - in 80387 registers when flag_unsafe_math_optimizations is set. - - * reg-stack.c (convert_regs_entry): Disable NaN load for - stack registers that are used for argument passing. - - * doc/extend.texi: Document x87regparm function attribute. - * doc/invoke.texi: Document -mx87regparm. - -2006-12-11 Jan Hubicka - - Move all varpool routines out of cgraph/cgraphunit to varpool.c - * cgraph.c: Update comments. - (cgraph_varpool_hash, - cgraph_varpool_nodes, cgraph_varpool_last_needed_node - cgraph_varpool_node_name, cgraph_varpool_node, - cgraph_varpol_mode_for_asm, cgraph_varpool_mark_needed_node, - cgraph_variable_initializer_availability): Move to - varpool.c and drop cgraph_ prefixes. - (cgraph_varpool_enqueue_needed_node, cgraph_varpool_reset_queue, - cgraph_varpool_first_unanalyzed_node, cgraph_varpool_finalize_decl): - move to varpool.c; drop cgraph_ prefix; make static. - (dump_cgraph_varpool_node): Move to varpool.c under name - dump_varpool_node. - (dump_varpool, hash_varpool_node, eq_varpool_node, - decide_is_variable_needed): Move to varpool.c - (decl_assembler_name_equal): Move to tree.c. - (availability_names): Rename to ... - (cgraph_availability_names): ... this one. - (dump_cgraph_node): Update. - * cgraph.h: Reorder declarations now in varpool.c - (cgraph_vailablity_names): Declare. - (struct cgraph_varpool_node): Rename to ... - (struct varpool_node): ... this one. - (cgraph_varpool_first_unanalyzed_node, cgraph_varpool_nodes_queue, - cgraph_varpool_first_unanalyzed_node, cgraph_varpool_node, - cgraph_varpool_node_for_asm, cgraph_varpool_mark_needed_node, - cgraph_varpool_finalize_decl, cgraph_varpool_enqueue_needed_node, - cgraph_varpool_reset_queue, cgraph_varpool_assemble_pending_decls, - cgraph_variable_initializer_availability): Rename to ... - (varpool_first_unanalyzed_node, varpool_nodes_queue, - varpool_first_unanalyzed_node, varpool_node, - varpool_node_for_asm, varpool_mark_needed_node, - varpool_finalize_decl, varpool_enqueue_needed_node, - varpool_assemble_pending_decls, variable_initializer_availability): - Rename to ... - * tree.c (decl_assembler_name_equal): Move here from cgraph.c. - * tree.h (decl_assembler_name_equal): Declare. - * omp-low.c (lower_omp_critical): Update. - * ipa-reference (analyze_variable, static_execute): Likewise. - * toplev.c (wrapup_global_declaration_2, compile_file): Update. - * cgraphunit.c: Update comments. - (cgraph_varpool_assembled_nodes_queue): Move to varpool.c under name - varpool_assembled_nodes_queue. - (cgraph_varpool_analyze_pending_decls): Move to varpool.c under name - varpool_analyze_pending_decls. - (cgraph_varpool_remove_unreferenced_decls): Move to varpool.c under name - varpool_remove_unreferenced_decls. - (record_reference): Update. - (cgraph_create_edges): Update. - (record_referneces_in_initializer): New function. - (cgraph_varpool_assemble_decl): Move to varpool.c under name - varpool_assemble_decl; make global. - (cgraph_varpool_assemble_pending_decls): Move to varpool.c under name - varpool_assemble_pending_decls. - (process_function_and_variable_attributes, cgraph_finalize_compilation_unit, - struct cgraph_order_sort, cgraph_output_in_order, - cgraph_function_and_variable_invisibility, cgraph_optimize, - cgraph_increase_alignment): Update. - * dwarf2out.c (decls_for_scope): Likewise. - * ipa-type-escape.c (analyze_variable, type_escape_execute): Likewise. - * except.c (output_ttype): Likewise. - * varasm.c (mark_decl_referenced): Likewise. - (find_decl_and_mark_referenced, assemble_alias): update. - * Makefile.in: Add varpool.c, gt-varpool.c and remove gt-cgraphunit.c - * passes.c (rest_of_decl_compilation): Update. - -2006-12-11 Ira Rosen - - * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Use - GIMPLE_STMT_OPERAND. - * tree-vect-transform.c (vect_permute_store_chain): Likewise. - (vect_setup_realignment): Likewise. - -2006-12-11 Sa Liu - Ben Elliston - - * config/spu/spu-elf.h (STARTFILE_SPEC): Update. - (ENDFILE_SPEC): Likewise. - * config/spu/spu.opt (mstdmain): New option. - * config/spu/crti.asm: Remove. - * config/spu/crtn.asm: Likewise. - * config/spu/crt0.c: Likewise. - * config/spu/crtend.c: Likewise. - * config/spu/t-spu-elf (EXTRA_MULTILIB_PARTS): Remove crt0 files - listed above. - ($(T)crti.o, $(T)crtn.o, $(T)crt1.o, $(T)crtend1.o): Remove. - * doc/invoke.texi (SPU Options): Document -mstdmain. - -2006-12-10 Zdenek Dvorak - - * doc/loop.texi: Document number_of_latch_executions and - number_of_cond_exit_executions. - * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop, - chrec_is_positive, number_of_iterations_for_all_loops, - scev_const_prop): Use number_of_latch_executions. - (set_nb_iterations_in_loop): Do not increase the value of the - number of iterations. - (number_of_iterations_in_loop): Renamed to ... - (number_of_latch_executions): ... this. - (number_of_exit_cond_executions): New function. - * tree-scalar-evolution.h (number_of_iterations_in_loop): Declaration - removed. - (number_of_latch_executions, number_of_exit_cond_executions): Declare. - * tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variables): Use - number_of_latch_executions. - * tree-data-ref.c (get_number_of_iters_for_loop): Use - number_of_exit_cond_executions. - * tree-vect-analyze.c (vect_get_loop_niters): Ditto. - * cfgloop.h (struct loop): Improve description of the nb_iterations - field. - -2006-12-10 Daniel Berlin - - * tree-ssa-alias.c (compact_name_tags): Use sort_tags_by_id. - (tree_pointer_compare): Remove. - -2006-12-10 Zdenek Dvorak - - * tree-vrp.c (adjust_range_with_scev): Use get_chrec_loop. - * loop-unswitch.c (unswitch_loops): Use FOR_EACH_LOOP. - * tree-loop-linear.c (linear_transform_loops): Ditto. - * tree-ssa-loop-im.c (determine_lsm): Ditto. - * tree-ssa-loop-niter.c (estimate_numbers_of_iterations, - free_numbers_of_iterations_estimates): Ditto. - * tree_ssa_unswitch_loops (tree_ssa_unswitch_loops): Ditto. - * tree-ssa-loop-ch.c (copy_loop_headers): Ditto. - * tree-ssa-loop-ivopts.c (tree_ssa_iv_optimize): Ditto. - * modulo-sched.c (sms_schedule): Ditto. - * tree-ssa-loop-ivcanon.c (canonicalize_induction_variables, - tree_unroll_loops_completely): Ditto. - * predict.c (predict_loops): Ditto. - * tree-if-conv.c (main_tree_if_conversion): Ditto. - * loop-unroll.c (unroll_and_peel_loops, peel_loops_completely, - decide_unrolling_and_peeling): Ditto. - * cfgloopmanip.c (unloop): Use delete_loop. - (place_new_loop): Access larray vector instead of parray. - (create_preheaders, force_single_succ_latches, - fix_loop_structure): Use FOR_EACH_LOOP and delete_loop.. - * loop-doloop.c (doloop_optimize_loops): Ditto. - * loop-invariant.c (move_loop_invariants): Ditto. - * tree-cfg.c (replace_uses_by): Ditto. - * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Ditto. - * tree-chrec.h (CHREC_VAR, CHREC_LEFT, CHREC_RIGHT, CHREC_VARIABLE): - Moved to ... - * tree.h (CHREC_VAR, CHREC_LEFT, CHREC_RIGHT, CHREC_VARIABLE): - ... here. - * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop, - compute_overall_effect_of_inner_loop, chrec_is_positive): Use - get_loop and get_chrec_loop. - (number_of_iterations_for_all_loops): Use number_of_loops. - (scev_initialize, scev_reset, scev_const_prop): Use FOR_EACH_LOOP. - * tree-scalar-evolution.h (get_chrec_loop): New inline function. - * cfgloopanal.c (mark_irreducible_loops): Use number_of_loops, - and FOR_EACH_LOOP. - * tree-chrec.c (evolution_function_is_invariant_rec_p, - chrec_convert_1): Use get_loop and get_chrec_loop. - * loop-init.c (loop_optimizer_init): Use number_of_loops. - (loop_optimizer_init): Use FOR_EACH_LOOP. - * tree-vectorizer.c (vect_loops_num): Removed. - (vectorize_loops): Store number of loops locally. Use - FOR_EACH_LOOP and get_loop. - * tree-vectorizer.h (vect_loops_num): Removed. - * tree-data-ref.c (get_number_of_iters_for_loop): Use get_loop. - (find_data_references_in_loop): Do not set parallel_p. - * tree-data-ref.h: Do not declare VEC(loop_p). - * cfgloop.c (flow_loops_dump, mark_single_exit_loops, - verify_loop_structure): Use FOR_EACH_LOOP. - (flow_loops_free): Use FOR_EACH_LOOP, free larray vector. - (initialize_loops_parallel_p): Removed. - (flow_loops_find): Push the loops into a vector. - (delete_loop): New function. - (cancel_loop): Use delete_loop. - * cfgloop.h: Declare VEC(loop_p). - (struct loop): Remove parallel_p field. - (struct loops): Replace num and parray field by larray vector. - Remove shared_headers field. - (delete_loop): Declare. - (get_loop, get_loops, number_of_loops, fel_next, fel_init, - FOR_EACH_LOOP): New. - * doc/loop.tex: Document new accessor functions. - -2006-12-10 Andrew MacLeod - - * common.opt (-ftree-lrs): Remove live range splitting option. - * makefile.in: Add tree-ssa-coalesce.o and reduce header dependancies. - * opts.c (decode_options): Remove flag_tree_live_range_split. - * tree-flow.h (struct var_ann_d): Rename fields from root_ to base_. - * tree-flow-inline.h (single_imm_use_p): New. Check for single use. - * tree-outof-ssa.c: Remove header files which aren't needed. - (SSANORM_*): Remove flags. - (print_exprs_edge, coalesce_abnormal_edges, coalesce_phi_operands, - coalesce_result_decls_and_copies, coalesce_asm_operands): Remove. - (coalesce_ssa_name): Move to tree-ssa-coalesce.c. - (assign_vars): Use Basevar instead of root_var structure. - (replace_def_variable): Dont do anything if def is replaceable. - (remove_ssa_form): Integrate functional changes. - (rewrite_out_of_ssa): Remove live-range_split option. - * tree-ssa-coalesce.c: New File for ssa-name coalescing. - (coalesce_cost): Calculate the cost of a coalesce. - (coalesce_cost_bb): Calculate the coalesce cost within a BB. - (coalesce_cost_edge): Calculate the coalesce cost on an edge. - (pop_cost_one_pair): Remove the best coalesce with cost 1 from the list. - (pop_best_coalesce): Remove the best coalesce from the list. - (coalesce_pair_map_hash): Calculate coalesce pair hash. - (coalesce_pair_map_eq): Compare 2 coalesce pairs for hash function. - (create_coalesce_list): Create a coalesce list object. - (delete_coalesce_list): Free a coalesce list object. - (find_coalesce_pair): Find matching pair in the coalesce list. - (add_cost_one_coalesce): Add a coalesce to the "cost one" list. - (add_coalesce): Add a coalesce to the coalesce list. - (compare_pairs): Comparision function to determine pair sorted order. - (num_coalesce_pairs): Number of coalesced pairs. - (first_coalesce_pair, end_coalesce_pair_p, next_coalesce_pair): - Coalesce pair iterator functions. - (sort_coalesce_list): Sort coalesce pairs in order of expense. - (dump_coalesce_list): Show coalesce list. - (ssa_conflicts_new): Create an SSA conflict graph. - (ssa_conflicts_delete): Delete an SSA conflict graph. - (ssa_conflicts_test_p): Test for conflicts. - (ssa_conflicts_add_one): Add a single conflict. - (ssa_conflicts_add): Add a conflict pair. - (ssa_conflicts_merge): Merge conflicts. - (struct live_track_d): Struct for tracking live partitions. - (new_live_track): Create new live_track object. - (delete_live_track): Delete a live_track object. - (live_track_remove_partition): Remove a partition from the live list. - (live_track_add_partition): Add a partition from the live list. - (live_track_clear_var): Take VAR from the live list. - (live_track_live_p): Is var live? - (live_track_process_use): Make var come alive. - (live_track_process_def): Make var go dead, add conflicts. - (live_track_init): Initialize to a live on exit set. - (live_track_clear_base_vars): Clear live partitions. - (build_ssa_conflict_graph): Build a conflict graph. - (print_exprs): Common debug output routine. - (abnormal_corrupt): Output info about a failed coalesce across an - abnormal edge. - (fail_abnormal_edge_coalesce): Output info about a failed MUST_COALESCE. - (create_outofssa_var_map): Create a var map and coalesce list. - (attempt_coalesce): Coalesce a pair. - (coalesce_partitions): Coalesce all pairs in a coalesce list. - (coalesce_ssa_name): Entry point. Determine what ssa_names to coalesce. - * tree-ssa-live.c: Remove header files which aren't needed. - (var_map_base_init): New. Initialize a basevar list. - (var_map_base_fini): New. Finish a basevar list. - (init_var_map): Initialize new fields. - (delete_var_map): Free new fields. - (var_union): Use renamed fields. - (compact_var_map): Remove. - (partition_to_view_init): Use renamed fields, change order of an if. - (partition_view_fini): Use renamed fields. - (partition_view_normal): Create basevar list if requested. - (partition_view_bitmap): Create a view based on a bitmap of partitions. - (change_partition_var): Use renamed fields. - (create_ssa_var_map): Remove. - (tpa_init, tpa_remove_partition, tpa_delete, tpa_compact, - root_var_init): Remove. - (partition_pair_map_hash, partition_pair_map_eq, create_coalesce_list, - delete_coalesce_list, find_partition_pair, coalesce_cost, add_coalesce, - compare_pairs, num_coalesce_pairs, first_partition_pair, - end_partition_pair_p, next_partition_pair, sort_coalesce_list, - pop_best_coalesce, add_conflicts_if_valid, set_if_valid, - build_tree_conflict_graph, coalesce_tpa_members, dump_coalesce_list, - tpa_dump): Moved to tree-ssa-coalesce.c and/or renamed there. - (dump_var_map): Use renamed fields. - * tree-ssa-live.h (struct _var_map): Modify fields. - (partition_to_var, version_to_var, var_to_partition): Use renamed - fields. - (basevar_index): New. Index of the base variable of a partition. - (num_basevars): New. Number of unique base variables in partition map. - (register_ssa_partition): Use renamed fields. - (struct tree_partition_associator_d): Remove. - (tpa_num_trees, tpa_tree, tpa_first_partition, tpa_next_partition, - tpa_find_tree, tpa_decompact, root_var_init, root_var_num, - root_var, root_var_first_partition, root_var_next_partition, - root_var_dump, root_var_delete, root_var_remove_partition, - root_var_find, root_var_compact, root_var_decompact): Remove. - (struct partition_pair, struct coalesce_list_d): Moved to - tree-ssa-coalesce.c - * tree-ssa-ter.c: Remove header files which aren't needed. - -2006-12-10 Steven Bosscher - - * cse.c: (struct cse_basic_block_data): Remove LAST field. - (struct branch_path): Remove BRANCH and TAKEN fields. Add new - BB field. - (cse_visited_basic_blocks): New static bitmap. - (cse_end_of_basic_block, cse_basic_block): Remove. - (cse_find_path, cse_dump_path, cse_prescan_path, - cse_extended_basic_block): New static functions. - (cse_insn): Don't CSE over setjmp calls. Use the CFG to find - basic block boundaries. Don't record jump equivalences here. - Update the CFG after doing in-place replacement of the SET_SRC. - (cse_main): Rewrite. Look for extended basic block headers - and call cse_extended_basic_block on them until all paths that - start at this header are exhausted. - (rest_of_handle_cse): Verify that the CFG is incrementally updated - and correct after cse_main. - Don't call delete_trivially_dead_insns, let cfgcleanup do that. - (rest_of_handle_cse2): Verify the CFG here, too, after cse_main. - (pass_cse): Add TODO_verify_flow. - (pass_cse2): Likewise. - -2006-12-10 Rask Ingemann Lambertsen - - * reload1.c (choose_reload_regs): Don't set byte offset when - resolving subregs of hard regs. - -2006-12-09 Zack Weinberg - - * c-opts.c (c_common_parse_file): Unconditionally give a warning, - suitable for the language, if set_yydebug is true. - * c-pragma.h: Define enum pragma_omp_clause here. Don't define - YYDEBUG or declare yydebug. - * c-parser.c (yydebug, enum pragma_omp_clause): Delete. - -2006-12-09 Jan Hubicka - - * cgraph.c: Update copyright. - * cgraph.h: Likewise - (cgraph_update_pending_function): Remove prototype. - * cgraphunit.c: Update copyright; update overall comment. - (cgraph_assemble_pending_functions): Make local. - -2006-12-09 Maxim Kuvyrkov - - * haifa-sched.c (schedule_block): Remove excessive sanity check. - -2006-12-08 Trevor Smigiel - - * config/spu/spu-protos.h (spu_split_immediate): Renamed from - spu_split_address. - (cpat_const_p, gen_cpat_const): Add. - * config/spu/spu.c (immediate_class): New enum. - (cpat_info, classify_immediate): New. - (print_operand): Use S, D, T instead of F, G, H. Use - classify_immediate. Handle cpat cases. - (spu_split_immediate): Renamed from spu_split_address. Split all - immediates that can be split. - (immediate_load_p): Use classify_immediate. - (spu_legitimate_constant_p): Accept everything except some cases of - CONST_VECTOR. - (spu_expand_move): Use spu_split_immedate. - (fsmbi_const_p): Use classify_immediate. - (cpat_const_p): New. - (gen_cpat_const: New. - * config/spu/constraints.md (j,k,l): New constraints for cpat - instructions. - * config/spu/spu.md (unnamed splitter): Change address splitter to - handle all immediates. - (_mov, _movdi, _movti): Handle i, j, k constraints for cpat - instructions. - (cpat, _cpat, splitter): Generate a TImode constant for cpat patterns - when possible. - -2006-12-08 John David Anglin - - PR target/30039 - * pa.md (high:DI and lo_sum:DI): Handle 64-bit CONST_INTs in 32-bit - patterns. Correct length of high:DI instruction sequence. - -2006-12-08 Mike Stump - - * config/rs6000/t-darwin (TARGET_LIBGCC2_CFLAGS): Build - libgcc with -mmacosx-version-min=10.4. - * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Default to - G4 for 10.5+ unless doing kernel builds. - -2006-12-08 Uros Bizjak - - PR target/30120 - * reg-stack.c (convert_regs_entry): Mark current argument passing - registers as live. - - * config/i386/i386.h (X87_REGPARM_MAX): Set to 0 to disable passing - of float arguments in x87 registers. - -2006-12-08 John David Anglin - - * pa.h (LEGITIMATE_CONSTANT_P): Simplify. - -2006-12-08 Mark Shinwell - - * recog.c (mode_dependent_address_p): Identify pre-increment, - pre-decrement, post-increment and post-decrement addressing as always - being mode-dependent. - * config/m32c/m32c.c (m32c_mode_dependent_address): Delete. - * config/m32c/m32c.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op. - * config/m32c/m32c-protos.h (m32c_mode_dependent_address): Delete. - * config/m32r/m32r.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete PRE_DEC, - PRE_INC and POST_INC checks. - * config/i386/i386.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op. - * config/sh/sh.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op. - * config/pdp11/pdp11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op. - * config/avr/avr.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op. - * config/c4x/c4x.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete PRE_DEC, - PRE_INC, POST_DEC and POST_INC cases. - * config/stormy16/stormy16.c (xstormy16_mode_dependent_address_p): - Delete POST_INC and PRE_DEC cases. - * config/m68hc11/m68hc11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to - no-op. - * config/cris/cris.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op. - * config/mn10300/mn10300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to - no-op. - * config/ia64/ia64.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op. - * config/m68k/m68k.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op. - * config/rs6000/rs6000.c (rs6000_mode_dependent_address): Delete - PRE_INC and PRE_DEC cases. - * config/arc/arc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op. - * config/mcore/mcore.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op. - * config/arm/arm.h (ARM_GO_IF_MODE_DEPENDENT_ADDRESS): Delete. - (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op. - * config/pa/pa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op. - * config/vax/vax.c (vax_mode_dependent_address_p): Delete - auto-increment cases. - * config/h8300/h8300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete - auto-increment cases. - * config/bfin/bfin.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op. - -2006-12-08 Andrew MacLeod - - * Makefile.in: Add new file tree-ssa-ter.c. - * tree-outof-ssa.c (struct temp_expr_table_d, new_temp_expr_table, - free_temp_expr_table, add_value_to_version_list, - add_value_to_partition_list, remove_value_from_partition_list, - add_dependence, check_replaceable, finish_expr, mark_replaceable, - kill_expr, kill_virtual_exprs, find_replaceable_in_bb, - find_replaceable_exprs, dump_replaceable_exprs): Move to tree-ssa-ter.c. - * tree-ssa-live.h (find_replaceable_exprs, dump_replaceable_exprs): Add - prototypes. - * tree-ssa-ter.c: New file using code moved from tree-outof-ssa.c. - (struct value_expr_d): Remove. - (struct temp_expr_table_d): Rename fields, add explicit vector of - replaceable expressions instead of sharing. Change value_expr_p's to - bitmap. Delete free_list. - (new_temp_expr_table): Rename fields, count number of ssa_names in - each partition. - (free_temp_expr_table): Rename field, free new fields. - (new_value_expr, free_value_expr, find_value_in_list, add_value_to_list, - add_info_to_list, remove_value_from_list): Delete. - (version_to_be_replaced_p): New. Is an ssa-name replaceable? - (make_dependent_on_partition): New. Set bit in version list, allocating - a bitmap if need be. - (add_to_partition_kill_list): New. Set bit in the partition list, - allocating a bitmap if need be. - (remove_from_partition_kill_list): New. Remove a bit from the - partition list, free the bitmap if it is empty. - (add_dependence): Use renamed field, cleanup. Don't add a dependence - on partitions with only one member. - (is_replaceable_p): New. Split out replaceability check from - check_replaceable. - (process_replaceable): New. Code split from check_replaceable. - (check_replaceable): Removed. - (finished_with_expr): Renamed from finish_expr. - (kill_expr): Use renamed fields and less parameters. - (kill_virtual_exprs): Less parameters. - (mark_replaceable): Use renamed fields. - (find_replaceable_in_bb): Use renamed fields, cleanup. - (find_replaceable_exprs): Use renamed routines, cleanup. - (dump_replaceable_exprs): Don't go past end of ssa_names list. - (debug_ter): New. Debug routine to dump state. - -2006-12-08 Bernd Schmidt - - * config/bfin/bfin.c (effective_address_32bit_p): Return true for - anything involving the GOT. - (bfin_adjust_cost): Don't take the REGNO of a MEM. - (trapping_loads_p): Look inside the pattern of an insn to find the - SET. - * config/bfin/bfin.md (attr "type"): Add movcc. - (insn_reservation "alu"): Likewise. - (movsicc_insn1, movsicc_insn2): Change type to movcc. - -2006-12-07 Andrew Pinski - - * config/spu/spu-c.c (spu_build_overload_builtin): Delete. - (spu_resolve_overloaded_builtin): Check for non scalar instead - of vector type and check the function call argument type also for - non scalar. - Call build_function_call instead of spu_build_overload_builtin. - -2006-12-07 Trevor Smigiel - - * config/spu/spu.c (array_to_constant): Correct the order of arguments - to the calls of hwint_to_const_double. - -2006-12-07 Nick Clifton - - * config/elfos.h (TARGET_ASM_RECORD_GCC_SWITCHES): Set to - elf_record_gcc_switches. - -2006-12-07 Andrew Macleod - - * expr.c (string_constant): Account for non-zero lower bound arrays. - -2006-12-07 Richard Guenther - - * builtins.c (expand_builtin_pow): Adjust predicates for - pow to cbrt expansion to unsafe math and !HONOR_NANS for - negative base. - -2006-12-07 Jan Hubicka - - * i386.c (nocona_cost, pentium4_cost): Update preffered memcpy/memset - codegen. - -2006-12-07 Jan Hubicka - - * tree-vrp.c (compare_values): Short circuit INTEGER_CST; - use fold_constant_to_binary; tolerate wrong type constants. - (value_intersect_p): Do just two tests. - -2006-12-07 Bernd Schmidt - - * config/bfin/bfin.c (print_operand): New modifier 'N' for constants. - * config/bfin/bfin.md (ssashiftv2hi3, ssashifthi3, lshiftv2hi3, - lshifthi3): Use it, and fix the order of alternatives. - -2006-12-07 Nick Clifton - - * common.opt (record-gcc-switches): New command line switch. - * target.h (print_switch_type): New enum. - (print_switch_fn_type): New typedef for a function pointer. - (struct gcc_target): Add record_gcc_switches and - record_gcc_switches_section fields. - * target-def.h (TARGET_ASM_RECORD_GCC_SWITCHES): Provide a - default definition. - (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Provide a default - definition. - * toplev.c (print_single_switch): Simplify by providing a - pointer to function that will format and output the switch - appropriately. - (print_switch_values): Likewise. - (print_to_asm_out_file): New function. - (print_to_stderr): New function. - (init_asm_output): If flag_record_gcc_switches is set then if - the target supports recording the switches then emit them into - the assembler output file, otherwise tell the user that the - switch is not supported. - * varasm.c (eld_record_gcc_switches): New function. Example - handler for the record_gcc_switches target hook. - * doc/tm.texi (TARGET_ASM_RECORD_GCC_SWITCHES): Document the new - target hook. - (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Likewise. - * doc/invoke.texi (-frecord-gcc-switches): Document. - -2006-12-07 Maxim Kuvyrkov - - PR target/29794 - * sched-rgn.c (add_block1): Use correct initializer. - -2006-12-07 Richard Guenther - - * tree-vect-transform.c (vectorizable_call): Fix leftover of - TREE_OPERAND to GIMPLE_STMT_OPERAND conversion. - -2006-12-06 Aldy Hernandez - - PR/30079 - * config/pa/pa.c (hppa_gimplify_va_arg_expr): Build MODIFY_EXPR - not GIMPLE_MODIFY_STMT. - -2006-12-06 Jan Hubicka - - * tree-vrp.c (operand_less_p): New. - (compare_values, value_inside_range): Rewrite in terms of - operand_less_p. - -2006-12-06 Uros Bizjak - - * config/i386/i386.md (DIRFLAG_REG): Remove constant. - (type): Remove cld. - (length_immediate): Do not depend on cld type attribute. - (length_address): Ditto. - (modrm): Ditto. - (memory): Ditto. - (cld): Remove insn pattern. - (strmov_singleop): Do not use DIRFLAG_REG. - (*strmovdi_rex_1): Ditto. - (*strmovsi_1): Ditto. - (*strmovsi_rex_1): Ditto. - (*strmovhi_1): Ditto. - (*strmovhi_rex_1): Ditto. - (*strmovqi_1): Ditto. - (*strmovqi_rex_1): Ditto. - (rep_mov): Ditto. - (*rep_movdi_rex64): Ditto. - (*rep_movsi): Ditto. - (*rep_movsi_rex64): Ditto. - (*rep_movqi): Ditto. - (*rep_movqi_rex64): Ditto. - (strset_singleop): Ditto. - (*strsetdi_rex_1): Ditto. - (*strsetsi_1): Ditto. - (*strsetsi_rex_1): Ditto. - (*strsethi_1): Ditto. - (*strsethi_rex_1): Ditto. - (*strsetqi_1): Ditto. - (*strsetqi_rex_1): Ditto. - (rep_stos): Ditto. - (*rep_stosdi_rex64): Ditto. - (*rep_stossi): Ditto. - (*rep_stossi_rex64): Ditto. - (*rep_stosqi): Ditto. - (*rep_stosqi_rex64): Ditto. - (cmpstrnsi): Do not generate cld insn. - (cmpstrnqi_nz_1): Do not use DIRFLAG_REG. - (*cmpstrnqi_nz_1): Ditto. - (*cmpstrnqi_nz_rex_1): Ditto. - (cmpstrnqi_1): Ditto. - (*cmpstrnqi_1): Ditto. - (*cmpstrnqi_rex_1): Ditto. - (strlenqi_1): Ditto. - (*strlenqi_1): Ditto. - (*strlenqi_rex_1): Ditto. - - * config/i386/geode.md (shift): Do not depend on cld type attribute. - * config/i386/pentium.md (pent_cld): Remove insn reservation. - * config/i386/athlon.md (athlon_decode): Do not depend on cld - type attribute. - * config/i386/ppro.md (ppro_cld): Remove insn reservation. - * config/i386/k6.md (k6_alux_only): Do not depend on cld type - attribute. - (k6_alux_only_load): Ditto. - (k6_alux_only_store): Ditto. - - * config/i386/i386.c (ix86_expand_movmem): Remove cld_done boolean. - Do not emit cld instruction. - (ix86_expand_setmem): Ditto. - (ix86_expand_strlen): Do not emit cld instruction. - -2006-12-06 Bernd Schmidt - - * config/bfin/bfin.c (bfin_rtx_costs): Add a number of new cases, tweak - old ones. - -2006-12-06 Diego Novillo - - * gdbinit.in: Set complaints to 0. - -2006-12-06 Jan Hubicka - - * statistics.h (ALONE_PASS_MEM_STAT, ALONE_MEM_STAT_INFO, - ALONE_MEM_STAT_DECL): New macros. - * bitmap.h: Include statistics.h - (struct bitmap_head_def): Add variant with pointer to bitmap descriptor. - (bitmap_initialize_stat): Rename from bitmap_initialize; add statistics. - (bitmap_obstack_alloc_stat, bitmap_gc_alloc_stat): Declare. - * bitmap.c: Include hashtab.h - (bitmap_descriptor): New. - (bitmap_hash): New static variable - (hash_descriptor, eq_descriptor, bitmap_descriptor, register_overhead): - New static functions. - (bitmap_register): New. - (bitmap_element_free, bitmap_element_allocate, bitmap_elt_clear_from, - bitmap_obstack_release): Do accounting. - (bitmap_obstack_alloc_stat): Rename from bitmap_obstack_alloc ; do - accounting. - (bitmap_gc_alloc_stat): Likewise. - (bitmap_obstack_free, bitmap_find_bit): Do statictics. - (print_statistics, dump_bitmap_statistics): New functions. - * toplev.c (finalize): Dump bitmap statistics. - -2006-12-06 Bernd Schmidt - - * reload1.c (delete_output_reload): Count occurrences in - CALL_INSN_FUNCTION_USAGE. - * rtlanal.c (count_occurrences): Handle EXPR_LIST nodes without - crashing at the end of the list. - -2006-12-05 Daniel Berlin - - * tree-ssa-structalias.c (set_used_smts): Re-fix pr29156. - Optimize to avoid marking more SMT's as used when they aren't. - -2006-12-05 Eric Christopher - - * config/i386/i386.c (x86_output_aligned_bss): Move out - of COMMON_ASM_OP ifdef. - -2006-12-05 Eric Christopher - - * config/darwin.h (DARWIN_EXTRA_SPECS): New. - (STARTFILE_SPEC): Use. - (DARWIN_DYLIB1_SPEC): New. - (DARWIN_CRT1_SPEC): New. - * config/i386/darwin64.h (SUBTARGET_EXTRA_SPECS): Use - DARWIN_EXTRA_SPECS. - * config/i386/darwin.h: Ditto. - * config/rs6000/darwin.h: Ditto. - -2006-12-05 Daniel Berlin - - * tree-vrp.c (pass_vrp): Remove PROP_smt_usage. - * tree-complex.c (pass_lower_complex): Ditto. - * tree-ssa-ccp.c (pass_ccp): Ditto. - (pass_store_ccp): Ditto. - * tree-ssa-dom.c (pass_dominator): Ditto. - (pass_phi_only_cprop): Ditto. - * tree-sra.c (pass_sra): Ditto. - * tree-ssa-forwprop.c (pass_forwprop): Ditto. - * tree-flow.h (updating_used_alone): Remove. - (updating_used_alone): Ditto. - * tree-ssa-alias.c (updating_used_alone): Remove variable. - (lhs_may_store_to): Remove function. - (recalculate_used_alone): Ditto. - (compute_may_aliases): Remove used_alone calculation. - * tree.h (struct tree_memory_tag): Remove is_used_alone and - old_used_alone. Remove SMT_USED_ALONE and SMT_OLD_USED_ALONE. - * tree-pass.h (PROP_smt_usage): Remove. - * passes.c (execute_todo): Remove used alone recalculation. - (execute_one_pass): Ditto. - * tree-ssa-operands.c (add_virtual_operand): Remove used_alone - stuff. - -2006-12-05 Brooks Moses - - * doc/include/texinfo.tex: Update to version 2006-11-08.17. - -2006-12-05 Zdenek Dvorak - - PR tree-optimization/14784 - * tree-ssa-operands.c (access_can_touch_variable): Unrevert the fix. - -2006-12-05 Aldy Hernandez - - Merge from gimple-tuples-branch. - - 2006-12-04 Aldy Hernandez - - * config/s390/s390.c (s390_va_start): Replace MODIFY_EXPR with - GIMPLE_MODIFY_STMT. - (s390_gimplify_va_arg): Same. - * config/sparc/sparc.c (sparc_gimplify_va_arg): Same. - * config/sh/sh.c (sh_va_start): Same. - (sh_gimplify_va_arg_expr): Same. - * config/xtensa/xtensa.c (xtensa_va_start): Same. - (xtensa_gimplify_va_arg_expr): Same. - * config/ia64/ia64.c (ia64_gimplify_va_arg): Same. - * config/pa/pa.c (hppa_gimplify_va_arg_expr): Same. - * config/mips/mips.c (mips_va_start): Same. - (mips_gimplify_va_arg_expr): Same. - - 2006-12-04 Aldy Hernandez - - * Merge from mainline at revision 119445. - - 2006-12-04 Aldy Hernandez - - * config/spu/spu.c (spu_va_start): Change MODIFY_EXPR to - GIMPLE_MODIFY_STMT. - (spu_gimplify_va_arg_expr): Same. - - 2006-12-04 Aldy Hernandez - - * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start): - Change uses of MODIFY_EXPR to GIMPLE_MODIFY_STMT. - (xstormy16_expand_builtin_va_arg): Same. - - 2006-12-04 Aldy Hernandez - - * config/frv/frv.c (frv_expand_builtin_va_start): Change MODIFY_EXPR - to GIMPLE_MODIFY_STMT. - - 2006-12-04 Aldy Hernandez - - * config/alpha/alpha.c (va_list_skip_additions): Change all - occurrences of MODIFY_EXPR to GIMPLE_MODIFY_STMT. - (alpha_va_start): Same. - (alpha_gimplify_va_arg_1): Same. - (alpha_gimplify_va_arg): Same. - - 2006-12-01 Aldy Hernandez - - * gimplify.c (gimplify_modify_expr): Remove FIXME comment. - - 2006-12-01 Aldy Hernandez - - * tree-ssa-loop-im.c: Rename all PROTECTED_TREE_OPERAND to - GENERIC_TREE_OPERAND, and all PROTECTED_TREE_TYPE to - GENERIC_TREE_TYPE. - * tree-complex.c: Same. - * tree-pretty-print.c: Same. - * tree.c: Same. - * tree.h: Same. - * builtins.c: Same. - * fold-const.c: Same. - * tree-ssa-dom.c: Same. - * tree-ssa-propagate.c: Same. - * tree-ssa-alias.c: Same. - * gimple-low.c: Same. - * dwarf2out.c: Same. - * c-pretty-print.c: Same. - * gimplify.c: Same. - * tree-inline.c: Same. - * tree-outof-ssa.c: Same. - * tree-ssa-structalias.c: Same. - * tree-ssa-reassoc.c: Same. - * stmt.c: Same. - - 2006-11-16 Aldy Hernandez - - * tree.c (build2_stat): Fix comment. - - 2006-11-13 Aldy Hernandez - - * tree-ssa-propagate.c (get_rhs): Use GIMPLE_MODIFY_STMT and - TREE_OPERAND when appropriate. - - 2006-11-04 Aldy Hernandez - - * java/java-tree.h (lang_tree_node): Handle gimple tuples. - (EXPR_WFL_EMIT_LINE_NOTE): Look inside base. - (EXPR_WFL_LINECOL): Use EXPR_LOCUS macro instead of exp.locus. - * java/java-gimplify.c (java_gimplify_expr): Comment on why we do - not handle GIMPLE_MODIFY_STMT in the switch statement. - (java_gimplify_modify_expr): Call build2 with GIMPLE_MODIFY_STMT. - (java_gimplify_new_array_init): Same. - - 2006-11-03 Aldy Hernandez - - * gimplify.c (gimplify_omp_for): Allow gimple statements. - * tree-outof-ssa.c (check_replaceable): Use PROTECTED_TREE_OPERAND. - * fold-const.c (fold_binary): Allow gimple statements. - (fold): Same. - * fortran/trans-array.c (gfc_conv_descriptor_data_set_internal): - Rename from gfc_conv_descriptor_data_set. - Call gfc_add_modify instead of gfc_add_modify_expr. - * fortran/trans-array.h (gfc_conv_descriptor_data_set_internal): - Rename from gfc_conv_descriptor_data_set. - (gfc_conv_descriptor_data_set): New macro. - (gfc_conv_descriptor_data_set_tuples): New macros. - * fortran/trans-openmp.c (gfc_omp_clause_default_ctor): Call - gfc_conv_descriptor_data_set_tuples. - * fortran/trans.c (gfc_add_modify): Rename from gfc_add_modify_expr. - Generate GIMPLE_MODIFY_STMT when appropriate. - * fortran/trans.h (gfc_add_modify): Rename from gfc_add_modify_expr. - (gfc_add_modify_expr): New macro. - (gfc_add_modify_stmt): New macro. - * fortran/f95-lang.c (lang_tree_node): Handle gimple statements. - - 2006-11-01 Aldy Hernandez - - * Merge from mainline at revision 118200. - - 2006-10-09 Aldy Hernandez - - * tree-inline.c (copy_bb): Check for GIMPLE_MODIFY_STMT, and adjust - accordingly. - - 2006-10-09 Aldy Hernandez - - * tree.h (TREE_CHAIN, TREE_TYPE): Add versions for non GCC or not - enable checking. - Also, add __extension__ to GCC versions. - * tree-mudflap.c (mf_xform_derefs_1): Add parentheses around TREE_TYPE. - * tree-inline.c (copy_tree_r): Initialize chain to assuage the warning - patrol. - - 2006-10-05 Aldy Hernandez - - * tree-complex.c (expand_complex_libcall): Adjust for - GIMPLE_MODIFY_STMT. - (expand_complex_comparison): Same. - * tree-pretty-print.c (dump_generic_node): Is_expr should include - GIMPLE_STMT_P statements. - * value-prof.c (tree_divmod_fixed_value_transform): Adjust for - GIMPLE_MODIFY_STMT. - (tree_mod_pow2_value_transform): Same. - (tree_mod_subtract_transform): Same. - * tree.c (build2_stat): Check for gimplified function in cfun. - * tree.h (DECL_GIMPLIFIED): Delete. - (struct tree_function_decl): Remove gimplified_flag. - * omp-low.c (lower_omp_for): Adjust for GIMPLE_MODIFY_STMT. - * cp/cp-gimplify.c (cp_gimplify_expr): Adjust for GIMPLE_MODIFY_STMT. - (cxx_omp_clause_apply_fn): Adjust for GIMPLE_MODIFY_STMT. - (cxx_omp_clause_copy_ctor): Same. - (cxx_omp_clause_assign_op): Same. - * c-pretty-print.c (pp_c_conditional_expression): Same. - (pp_c_expression): Same. - * langhooks.c (lhd_omp_predetermined_sharing): Same. - * function.h (struct function): Add gimplified field. - * tree-if-conv.c (add_to_dst_predicate_list): Adjust for - GIMPLE_MODIFY_STMT. - (find_phi_replacement_condition): Same. - * gimplify.c (gimplify_modify_expr_to_memcpy): Same. - (gimplify_modify_expr_to_memset): Same. - (gimplify_init_ctor_eval_range): Same. - (gimplify_modify_expr_complex_part): Same. - (tree_to_gimple_tuple): Same. - (gimplify_modify_expr): Same. - (gimple_push_cleanup): Same. - (gimplify_omp_for): Same. - (gimplify_omp_atomic_pipeline): Same. - (gimplify_omp_atomic_mutex): Same. - (gimplify_expr): Same. - (gimplify_one_sizepos): Same. - (gimplify_function_tree): Same. - * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Same. - (vect_recog_widen_sum_pattern): Same. - * tree-vect-transform.c (get_initial_def_for_reduction): Same. - (vect_create_epilog_for_reduction): Same. - (vectorizable_reduction): Same. - - 2006-09-28 Aldy Hernandez - - * tree-ssa-math-opts.c (replace_reciprocal): Use GIMPLE_STMT_OPERAND. - * tree-if-conv.c (if_convertible_gimple_modify_stmt_p): Same. - (ifc_temp_var): Same. - * tree-vect-analyze.c (vect_determine_vectorization_factor): Check - for gimple statements. - (vect_analyze_operations): Same. - (exist_non_indexing_operands_for_use_p): Use GIMPLE_STMT_OPERAND. - * gimplify.c (gimplify_return_expr): Handle gimple statements. - * lambda-code.c (can_put_in_inner_loop): Same. - (can_put_after_inner_loop): Same. - * tree-vect-transform.c (vect_create_addr_base_for_vector_ref): Same. - (vect_create_data_ref_ptr): Same. - (vect_init_vector): Same. - (vect_get_vec_def_for_operand): Same. - (vect_create_epilog_for_reduction): Same. - (vectorizable_reduction): Same. - (vectorizable_assignment): Same. - (vectorizable_operation): Same. - (vectorizable_load): Same. - (vectorizable_condition): Same. - * config/rs6000/rs6000.c (rs6000_va_start): Do not create MODIFY_EXPRs. - (rs6000_gimplify_va_arg): Same. - - 2006-09-25 Aldy Hernandez - - * tree-vrp.c (simplify_div_or_mod_using_ranges): Use - GIMPLE_STMT_OPERAND. - (simplify_abs_using_ranges): Same. - * tree-complex.c (expand_complex_operations_1): Use - PROTECTED_TREE_OPERAND. - * tree-ssa-loop-niter.c (simplify_replace_tree): Check for gimple - stmt. - (get_val_for): Use GIMPLE_STMT_OPERAND. - * tree-tailcall.c (adjust_accumulator_values): Same. - (adjust_return_value): Same. - * tree.c (walk_tree): Use IS_GIMPLE_STMT_CODE_CLASS on default - case. Remove special case for tcc_gimple_stmt. - * tree.h (CAN_HAVE_LOCATION_P): New. - * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Check for - GIMPLE_STMT_P. - * tree-stdarg.c (va_list_counter_bump): Use GIMPLE_STMT_OPERAND. - * tree-ssa-dom.c (propagate_rhs_into_lhs): Same. - * tree-nrv.c (execute_return_slot_opt): Same. - * tree-ssa-alias.c (count_uses_and_derefs): Check for GIMPLE_STMT_P. - * tree-vn.c (set_value_handle): Same. - (get_value_handle): Same. - * c-decl.c (add_stmt): Use CAN_HAVE_LOCATION_P. - * tree-vectorizer.c (find_loop_location): Same. - * c-typeck.c (c_process_expr_stmt): Same. - (c_finish_stmt_expr): Same. - * gimplify.c (should_carry_locus_p): Same. - (tree_to_gimple_tuple): Delete definition and use of unecessary - variable save_tree_block. - * tree-ssa-pre.c (phi_translate): Check for GIMPLE_STMT_P. - (create_expression_by_pieces): Use GIMPLE_STMT_OPERAND. - (realify_fake_stores): Same. - * tree-ssa-forwprop.c (forward_propagate_addr_into_variable_arr): - Use TREE_OPERAND. - * tree-inline.c (copy_body_r): Check for EXPR_P and GIMPLE_STMT_P. - (copy_tree_r): Check for IS_GIMPLE_STMT_CODE_CLASS. - * tree-cfg.c (move_stmt_r): Use EXPR_P. Check for GIMPLE_STMT_P. - * c-parser.c (c_parser_typeof_specifier): Use CAN_HAVE_LOCATION_P. - (c_parser_statement_after_labels): Same. - (c_parser_paren_condition): Same. - (c_parser_for_statement): Same. - (c_parser_omp_for_loop): Same. - * tree-ssa-reassoc.c (linearize_expr): Use GIMPLE_STMT_OPERAND. - (linearize_expr_tree): Same. - * dwarf2out.c (reference_to_unused): Check for GIMPLE_STMT_P. - * function.c (instantiate_expr): Same. - - 2006-09-22 Aldy Hernandez - - * tree.c (expr_location): Use GIMPLE_STMT_LOCUS. - (set_expr_location): Same. - (expr_locus): Same. - (set_expr_locus): Same. - (expr_filename): Same. - (expr_lineno): Same. - (tree_block): Use GIMPLE_STMT_BLOCK. - (protected_tree_operand): Use GIMPLE_STMT_OPERAND. - * tree.h (struct gimple_stmt): Remove prev and next. - (GIMPLE_STMT_OPERAND_CHECK): New. - (TREE_TO_GIMPLE_STMT): Delete. - (GIMPLE_STMT_TO_TREE): Delete. - (GIMPLE_STMT_OPERAND): Use union, not cast. - (GIMPLE_STMT_LOCUS): New. - (GIMPLE_STMT_BLOCK): New. - * gimplify.c (tree_to_gimple_tuple): Use union. Do not cast - to tree_base. - * tree-cfg.c (verify_gimple_tuples_1): Call gcc_unreachable. - - 2006-09-21 Aldy Hernandez - - * tree-into-ssa.c (REGISTER_DEFS_IN_STMT): Change common.base - to base. - * tree-tailcall.c (adjust_return_value): Same. - * tree.c (tree_code_size): Remove GIMPLE_STATEMENT_LIST case. - (copy_node_stat): Change common.base to base. - (tree_node_structure): Return TS_GIMPLE_STATEMENT for tcc_gimple_stmt. - Remove GIMPLE_STATEMENT_LIST case. - * tree.h (struct gimple_stmt): Make operands of type tree. - (TREE_CODE, TREE_SET_CODE, TREE_ADDRESSABLE, CALL_EXPR_TAILCALL, - CASE_LOW_SEEN, TREE_STATIC, CLEANUP_EH_ONLY, CASE_HIGH_SEEN, - TREE_NO_WARNING, TREE_CONSTANT_OVERFLOW, TREE_SYMBOL_REFERENCED, - TYPE_REF_CAN_ALIAS_ALL, TREE_OVERFLOW, TREE_PUBLIC, - TYPE_CACHED_VALUES_P, TREE_SIDE_EFFECTS, FORCED_LABEL, - TREE_THIS_VOLATILE, TREE_THIS_NOTRAP, TREE_READONLY, - TREE_CONSTANT, TYPE_SIZES_GIMPLIFIED, DECL_UNSIGNED, - BIT_FIELD_REF_UNSIGNED, TYPE_UNSIGNED, TREE_ASM_WRITTEN, TREE_USED, - TREE_NOTHROW, CALL_EXPR_RETURN_SLOT_OPT, DECL_BY_REFERENCE, - CALL_FROM_THUNK_P, TYPE_ALIGN_OK, TREE_PRIVATE, TREE_PROTECTED, - TREE_DEPRECATED, IDENTIFIER_TRANSPARENT_ALIAS, TREE_INVARIANT, - TREE_LANG_FLAG_*, SSA_NAME_OCCURS_IN_ABNORMAL_PHI, - SSA_NAME_IN_FREE_LIST, TYPE_VOLATILE, TYPE_READONLY, BINFO_VIRTUAL_P): - Change common.base to base. - (GIMPLE_STATEMENT_LIST*): Remove. - (union tree_node): Add base. Remove gimple_statement_list. - Remove pointer from gstmt. - * tree-ssa-propagate.c (set_rhs): Change common.base to base. - * treestruct.def: Add TS_BASE. Remove TS_GIMPLE_STATEMENT_LIST. - * tree-vn.c (vn_compute): Change common.base to base. - * tree-eh.c (verify_eh_throw_stmt_node): Same. - * tree-flow-inline.h (var_ann): Same. - (function_ann): Same. - (stmt_ann): Same. - (mark_non_addressable): Same. - * gimplify.c (tree_to_gimple_tuple): Same. - * tree.def (DEFTREECODE): Remove GIMPLE_STATEMENT_LIST. - * tree-dfa.c (create_var_ann): Change common.base to base. - (create_function_ann): Same. - (create_stmt_ann): Same. - (create_tree_ann): Same. - (collect_dfa_stats_r): Same. - * tree-ssa-pre.c (NECESSARY): Change common.base to base. - * tree-ssa-dce.c (NECESSARY): Same. - * tree-ssa.c (delete_tree_ssa): Same. - * tree-optimize.c (execute_free_cfg_annotations): Same. - * tree-flow.h: Same. - - 2006-09-19 Aldy Hernandez - - * tree.c (tree_code_size): Handle GIMPLE_STATEMENT_LIST. - (tree_node_structure): Handle GIMPLE_STATEMENT_LIST and - GIMPLE_MODIFY_STMT. - * tree.h (struct gimple_stmt): Add prev and next fields. - (GIMPLE_STMT_TO_TREE): Cast, do not call GIMPLE_STMT_CHECK. - (GIMPLE_STATEMENT_LIST_HEAD): New. - (GIMPLE_STATEMENT_LIST_TAIL): New. - (struct gimple_statement_list): New. - (union tree_node): Add gimple_stmt_list and gstmt. - * treestruct.def: Add TS_GIMPLE_STATEMENT_LIST, TS_GIMPLE_STATEMENT. - * tree.def: Add GIMPLE_STATEMENT_LIST. - - 2006-09-06 Aldy Hernandez - - * tree-dump.c (dequeue_and_dump): Handle GIMPLE_MODIFY_STMT. - * tree-vrp.c (build_assert_expr_for): Change uses of - MODIFY_EXPR to GIMPLE_MODIFY_STMT and adjust accordingly. - (find_assert_locations): Same. - (remove_range_assertions): Same. - (stmt_interesting_for_vrp): Same. - (vrp_visit_assignment): Same. - (vrp_visit_stmt): Same. - (simplify_cond_using_ranges): Same. - * tree-into-ssa.c (REGISTER_DEFS_IN_THIS_STMT): Adjust for new - tree structure. - * tree-ssa-loop-im.c (movement_possibility): Change uses of - MODIFY_EXPR to GIMPLE_MODIFY_STMT and adjust accordingly. - (stmt_cost): Same. - (determine_invariantness_stmt): Same. - (schedule_sm): Same. - (gather_mem_refs_stmt): Same. - * tree-complex.c (init_dont_simulate_again): Same. - (complex_visit_stmt): Same. - (set_component_ssa_name): Same. - (expand_complex_move): Same. - (expand_complex_div_wide): Same. - (expand_complex_comparison): Same. - (expand_complex_operations_1): Same. - * tree-ssa-loop-niter.c (expand_simple_operations): Same. - (chain_of_csts_start): Same. - (infer_loop_bounds_from_undefined): Same. - * tree-pretty-print.c (dump_generic_node): Same. - (op_prio): Same. - (op_symbol_1): Same. - * tree-ssa-loop-manip.c (create_iv): Same. - * value-prof.c (tree_divmod_fixed_value): Same. - (tree_divmod_fixed_value_transform): Same. - (tree_mod_pow2): Same. - (tree_mod_pow2_value_transform): Same. - (tree_mod_subtract): Same. - (tree_mod_subtract_transform): Same. - (tree_divmod_values_to_profile): Same. - * tree-tailcall.c (process_assignment): Same. - (find_tail_calls): Same. - (adjust_accumulator_values): Same. - (adjust_return_value): Same. - (eliminate_tail_call): Same. - * tree.c (tree_code_size): Handle tcc_gimple_stmt. - (make_node_stat): Same. - (copy_node_stat): Handle gimple tuples. - (expr_align): Handle GIMPLE_MODIFY_STMT. Abort on MODIFY_EXPR. - (tree_node_structure): Handle tcc_gimple_stmt. - (build2_stat): Abort on MODIFY_EXPR after gimplification. Handle - tcc_gimple_stmt. - (build2_gimple_stat): New. - (expr_location): New. - (set_expr_location): New. - (expr_has_location): New. - (expr_locus): New. - (set_expr_locus): New. - (expr_filename): New. - (expr_lineno): New. - (walk_tree): Handle tcc_gimple_stmt. - (tree_block): New. - (protected_tree_operand): New. - (protected_tree_type): New. - (tree_code_kind): Add gimple statements. - * tree.h (tree_code_class): Add tcc_gimple_stmt. - (IS_GIMPLE_STMT_CODE_CLASS): New. - (struct tree_base): New. - (struct tree_common): Shrink. - (struct gimple_stmt): New. - (struct gimple_expr): New. - (TREE_SET_CODE, TREE_ADDRESSABLE, CALL_EXPR_TAILCALL, - CASE_LOW_SEEN, TREE_STATIC, CLEANUP_EH_ONLY, CASE_HIGH_SEEN, - TREE_NO_WARNING, TREE_CONSTANT_OVERFLOW, TREE_SYMBOL_REFERENCED, - TYPE_REF_CAN_ALIAS_ALL, TREE_OVERFLOW, TREE_PUBLIC, - TYPE_CACHED_VALUES_P, SAVE_EXPR_RESOLVED_P, TREE_SIDE_EFFECTS, - FORCED_LABEL, TREE_THIS_VOLATILE, TREE_THIS_NOTRAP, TREE_READONLY, - TREE_CONSTANT, TYPE_SIZES_GIMPLIFIED, DECL_UNSIGNED, - BIT_FIELD_REF_UNSIGNED, TYPE_UNSIGNED, TREE_ASM_WRITTEN, - TREE_USED, TREE_NOTHROW, CALL_EXPR_RETURN_SLOT_OPT, - DECL_BY_REFERENCE, CALL_FROM_THUNK_P, TYPE_ALIGN_OK, - TREE_PRIVATE, TREE_PROTECTED, TREE_DEPRECATED, - IDENTIFIER_TRANSPARENT_ALIAS, TREE_INVARIANT, - TREE_LANG_FLAG_[0-6], SSA_NAME_CHECK, SSA_NAME_IN_FREE_LIST, - TYPE_VOLATILE, TYPE_READONLY, TREE_VISITED, BINFO_VIRTUAL_P): - Adjust for new `common' layout. - (struct tree_function_decl): Add gimplified_flag. - (DECL_GIMPLIFIED): NEW. - (EXPR_LOCATION, SET_EXPR_LOCUS, EXPR_FILENAME, EXPR_LOCUS, - SET_EXPR_LOCUS, SET_EXPR_LOCATION, EXPR_LINENO, - EXPR_HAS_LOCATION): Call corresponding function. - (GIMPLE_STMT_CHECK): New. - (TREE_OPERAND_CHECK, TREE_TYPE, TREE_CHAIN): Abort on gimple tuples. - (TREE_BLOCK): Call tree_block. - (GIMPLE_STMT_P): New. - (GIMPLE_TUPLE_P): New. - (TREE_TO_GIMPLE_STMT): New. - (GIMPLE_STMT_TO_TREE): New. - (GIMPLE_STMT_OPERAND): New. - (GIMPLE_TUPLE_HAS_LOCUS_P): New. - (PROTECTED_TREE_OPERAND): New. - (PROTECTED_TREE_TYPE): New. - (build2_gimple_stat): Protoize. - (build2_gimple): New. - (expr_location): Protoize. - (set_expr_location): Protoize. - (expr_has_location): Protoize. - (expr_locus): Protoize. - (set_expr_locus): Protoize. - (expr_filename): Protoize. - (expr_lineno): Protoize. - (tree_block): Protoize. - (protected_tree_operand): Protoize. - (protected_tree_type): Protoize. - (enum tree_node_kind): Add gimple_stmt_kind. - * c-decl.c (union lang_tree_node): Tuples do not have a - TREE_CHAIN. - * ipa-cp.c (constant_val_insert): Change uses of MODIFY_EXPR to - GIMPLE_MODIFY_STMT and adjust accordingly. - * tree-scalar-evolution.c (follow_ssa_edge): Same. - (interpret_condition_phi): Same. - (pointer_used_p): Same. - (analyze_scalar_evolution_1): Same. - (scev_const_prop): Same. - (interpret_rhs_modify_stmt): Rename from - interpret_rhs_modify_expr. - * builtins.c (std_expand_builtin_va_start): Change uses of - MODIFY_EXPR to GIMPLE_MODIFY_STMT and adjust accordingly. - (std_gimplify_va_arg_expr): Same. - (expand_builtin_va_copy): Same. - (integer_valued_real_p): Same. - * fold-const.c (maybe_lvalue_p): Same. - (fold_unary): Same. - (tree_expr_nonnegative_p): Same. - (tree_expr_nonzero_p): Same. - * omp-low.c (extract_omp_for_data): Same. - (lower_rec_input_clauses): Same. - (lower_reduction_clauses): Same. - (lower_copyprivate_clauses): Same. - (lower_send_clauses): Same. - (lower_send_shared_vars): Same. - (expand_parallel_call): Same. - (expand_omp_parallel): Same. - (expand_omp_for_generic): Same. - (expand_omp_for_static_nochunk): Same. - (expand_omp_for_static_chunk): Same. - (expand_omp_sections): Same. - (lower_omp_single_copy): Same. - (lower_omp_parallel): Same. - * tree-ssa-dse.c (memory_address_same): Same. - (dse_optimize_stmt): Same. - * ipa-reference.c (scan_for_static_refs): Same. - * tree-gimple.c (is_gimple_reg_rhs): Same. - (get_call_expr_in): Same. - (recalculate_side_effects): Same. - * cgraphunit.c (cgraph_create_edges): Same. - * tree-ssa-copyrename.c (rename_ssa_copies): Same. - * tree-ssa-ccp.c (get_default_value): Same. - (likely_value): Same. - (visit_assignment): Same. - (ccp_visit_stmt): Same. - (get_maxval_strlen): Same. - (ccp_fold_builtin): Same. - * tree-ssa-loop-ivopts.c (find_givs_in_stmt_scev): Same. - (find_givs_in_stmt): Same. - (find_interesting_uses_op): Same. - (find_interesting_uses_stmt): Same. - (rewrite_use_nonlinear_expr): Same. - * ipa-pure-const.c (scan_function): Same. - * tree-stdarg.c (va_list_counter_bump): Same. - (check_all_va_list_escapes): Same. - (execute_optimize_stdarg): Same. - * tree-ssa-math-opts.c (compute_merit): Same. - (insert_reciprocals): Same. - (execute_cse_reciprocals): Same. - * tree-ssa-dom.c (initialize_hash_element): Same. - (simple_iv_increment_p): Same. - (record_equivalences_from_stmt): Same. - (optimize_stmt): Same. - (remove_stmt_or_phi): Same. - (get_rhs_or_phi_arg): Same. - (get_lhs_or_phi_result): Same. - (propagate_rhs_into_lhs): Same. - * tree-nrv.c (tree_nrv): Same. - (execute_return_slot_opt): Same. - * tree-ssa-propagate.c (get_rhs): Same. - (set_rhs): Same. - (stmt_makes_single_load): Same. - (stmt_makes_single_store): Same. - (replace_vuses_in): Same. - (fold_predicate_in): Same. - (substitute_and_fold): Same. - * tree-ssa-alias.c (compute_call_clobbered): Same. - (recalculate_used_alone): Same. - (count_uses_and_derefs): Same. - (is_escape_site): Same. - (find_used_portions): Same. - * gimple-low.c (lower_stmt): Same. - (block_may_fallthru): Same. - (lower_return_expr): Same. - * tree-ssa-sink.c (is_hidden_global_store): Same. - (statement_sink_location): Same. - * dwarf2out.c (loc_descriptor_from_tree_1): Same. - * expr.c (safe_from_p): Same. - (expand_expr_real): Same. - (expand_expr_real_1): Same. - * tree-ssa-loop-ivcanon.c (empty_loop_p): Same. - * predict.c (expr_expected_value): Same. - (strip_builtin_expect): Same. - (apply_return_prediction): Same. - (tree_bb_level_predictions): Same. - (tree_estimate_probability): Same. - * tree-vn.c (vn_compute): Same. - * tree-eh.c (add_stmt_to_eh_region_fn): Same. - (remove_stmt_from_eh_region_fn): Same. - (do_return_redirection): Same. - (honor_protect_cleanup_actions): Same. - (lower_try_finally_switch): Same. - (lower_eh_constructs_1): Same. - (tree_could_throw_p): Same. - (verify_eh_throw_stmt_node): Same. - * function.c (gimplify_parameters): Same. - * tree-vectorizer.c (vect_is_simple_use): Same. - (vect_is_simple_reduction): Same. - * ipa-type-escape.c (scan_for_refs): Same. - * tree-if-conv.c (tree_if_conversion): Same. - (tree_if_convert_stmt): Same. - (if_convertible_gimplify_modify_stmt_p): Rename from - if_convertible_modify_expr_p. - (if_convertible_stmt_p): Adjust for GIMPLE_MODIFY_STMT. - (ifc_temp_var): Same. - (replace_phi_with_cond_modify_stmt): Rename from - replace_phi_with_cond_modify_expr. - (process_phi_nodes): Call replace_phi_with_cond_modify_stmt. - * tree.def (DEFTREECODE): Add GIMPLE_MODIFY_STMT. - * tree-data-ref.c (find_data_references_in_loop): Adjust for - GIMPLE_MODIFY_STMT. - * tree-flow-inline.h (var_ann): Same. - (function_ann): Same. - (stmt_ann): Same. - (mark_non_addressable): Same. - * tree-vect-analyze.c (vect_determine_vectorization_factor): Same. - * gimplify.c (tree_to_gimple_tuple): New. - (build_stack_save_restore): Adjust for GIMPLE_MODIFY_STMT. - (gimplify_return_expr): Same. - (gimplify_decl_expr): Same. - (gimplify_self_mod_expr): Same. - (gimplify_cond_expr): Same. - (gimplify_init_constructor): Same. - (gimplify_modify_expr): Same. - (gimplify_expr): Same. - (gimplify_function_tree): Same. - (force_gimple_operand): Same. - * tree-ssa-phiopt.c (conditional_replacement): Same. - (minmax_replacement): Same. - (abs_replacement): Same. - * tree-dfa.c (create_var_ann): Same. - (create_function_ann): Same. - (create_stmt_ann): Same. - (create_tree_ann): Same. - (collect_dfa_stats_r): Same. - * tree-ssa-pre.c (find_or_generate_expression): Same. - (create_expression_by_pieces): Same. - (try_look_through_load): Same. - (insert_fake_stores): Same. - (realify_fake_stores): Same. - (compute_avail): Same. - (eliminate): Same. - (init_pre): Same. - (poolify_modify_stmt): Rename from poolify_modify_stmt. - Adjust for GIMPLE_MODIFY_STMT. - (NECESSARY): Adjust for new `common' layout. - * tree-ssa-live.c (build_tree_conflict_graph): Adjust for - GIMPLE_MODIFY_STMT. - * tree-sra.c (sra_walk_modify_stmt): Rename from - sra_walk_modify_expr. - (sra_walk_function): Adjust for GIMPLE_MODIFY_STMT. - (generate_copy_inout): Same. - (generate_element_copy): Same. - (generate_element_zero): Same. - (scalarize_copy): Same. - * tree-mudflap.c (mf_decl_cache_locals): Same. - (mf_build_check_statement_for): Same. - (mf_xform_derefs): Same. - * ipa-prop.c (ipa_method_modify_stmt): Same. - * print-tree.c (print_node): Handle gimple tuples. - Add case for tcc_gimple_stmt. - * tree-ssa-copy.c (stmt_may_generate_copy): Adjust for - GIMPLE_MODIFY_STMT. - (copy_prop_visit_assignment): Same. - (copy_prop_visit_stmt): Same. - (init_copy_prop): Same. - * tree-ssa-forwprop.c (ssa_name_defined_by_comparison_p): Same. - (forward_propagate_into_cond_1): Same. - (find_equivalent_equality_comparison): Same. - (tidy_after_forward_propagate_addr): Same. - (forward_propagate_addr_expr_1): Same. - (simplify_not_neg_expr): Same. - (simplify_switch_expr): Same. - * tree-ssa-dce.c (find_pdom): Same. - (mark_stmt_if_obviously_necessary): Same. - (NECESSARY): Adjust for new `common' layout. - * tree-flow.h: Same. - * tree-vect-patterns.c (widened_name_p): Adjust for - GIMPLE_MODIFY_STMT. - (vect_recog_dot_prod_pattern): Same. - (vect_recog_widen_sum_pattern): Same. - (vect_pattern_recog_1): Same. - * tree-nested.c (init_tmp_var): Same. - (save_tmp_var): Same. - (walk_stmts): Same. - (convert_call_expr): Same. - (finalize_nesting_tree_1): Same. - * tree-ssa.c (verify_ssa): Same. - (delete_tree_ssa): Same. - * lambda-code.c (lbv_to_gcc_expression): Same. - (lle_to_gcc_expression): Same. - (lambda_loopnest_to_gcc_loopnest): Same. - (can_put_in_inner_loop): Same. - (can_convert_to_perfect_nest): Same. - (perfect_nestify): Same. - * tree-ssa-loop-prefetch.c (gather_memory_references): Same. - * tree-inline.c (copy_body_r): Same. - (setup_one_parameter): Same. - (initialize_inlined_parameters): Same. - (estimate_num_insns_1): Same. - (expand_call_inline): Same. - (gimple_expand_calls_inline): Same. - (copy_tree_r): Same. - * tree-optimize.c (execute_free_cfg_annotations): Same. - * tree-vect-transform.c (vect_create_addr_base_for_vector_ref): Same. - (vect_align_data_ref): Same. - (vect_create_data_ref_ptr): Same. - (vect_init_vector): Same. - (vect_create_epilog_for_reduction): Same. - (vectorizable_reduction): Same. - (vectorizable_assignment): Same. - (vectorizable_operation): Same. - (vectorizable_store): Same. - (vectorizable_load): Same. - (vectorizable_live_operation): Same. - (vectorizable_condition): Same. - (vect_generate_tmps_on_preheader): Same. - (vect_create_cond_for_align_checks): Same. - * tree-object-size.c (collect_object_sizes_for): Same. - (check_for_plus_in_loops_1): Same. - (check_for_plus_in_loops): Same. - * tree-outof-ssa.c (insert_copy_on_edge): Same. - (replace_use_variable): Same. - (check_replaceable): Same. - (rewrite_trees): Same. - (identical_copies_p): Same. - (insert_backedge_copies): Same. - * tree-profile.c (tree_gen_edge_profiler): Same. - * tree-vect-generic.c (expand_vector_operations_1): Same. - * tree-ssa-structalias.c (update_alias_info): Same. - (find_func_aliases): Same. - * tree-cfg.c (factor_computed_gotos): Same. - (make_edges): Same. - (make_goto_expr_edges): Same. - (tree_merge_blocks): Same. - (remove_useless_stmts_cond): Same. - (remove_useless_stmts_1): Same. - (tree_find_edge_insert_loc): Same. - (verify_expr): Same. - (gimplify_val): Same. - (verify_gimple_tuples_1): New. - (verify_gimple_tuples): New. - (verify_stmts): Call verify_gimple_tuples. - * tree-ssa-reassoc.c (get_rank): Adjust for GIMPLE_MODIFY_STMT. - (get_unary_op): Same. - (linearize_expr): Same. - (get_single_immediate_use): Same. - (negate_value): Same. - (should_break_up_subtract): Same. - (break_up_subtract): Same. - (repropagate_negates): Same. - (break_up_subtract_bb): Same. - (reassociate_bb): Same. - * config/i386/i386.c (ix86_va_start): Same. - (ix86_gimplify_va_arg): Same. - * stmt.c (expand_expr_stmt): Same. - (warn_if_unused_value): Same. - (expand_return): Same. - * tree-ssanames.c (make_ssa_name): Same. - * tree-ssa-threadedge.c (lhs_of_dominating_assert): Same. - * tree-ssa-operands.c (finalize_ssa_defs): Same. - (add_virtual_operand): Same. - (get_expr_operands): Same. - (parse_ssa_operands): Same. - (get_modify_stmt_operands): Rename from get_modify_expr_operands. - -2006-12-05 H.J. Lu - - * config.host: Remove extra blank line. - -2006-12-05 Bernd Schmidt - - * config.host (i[34567]86-*-*, x86-64-*-*): Use driver-i386.o only if - target is also an x86 variant. - -2006-12-05 Richard Guenther - - * config/i386/i386.c (ix86_builtin_vectorized_function): Declare. - (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Define. - (ix86_builtin_vectorized_function): New function to vectorize - sqrt. - -2006-12-05 Bernd Schmidt - - * config/bfin/bfin.c (output_file_start): Fix comment which referred to - ia64_override_options. - -2006-12-04 Jan Hubicka - - * cfgexpand.c (expand_one_var): Guard expand_one_stack_var by - really_expand. - -2006-12-04 Bernd Schmidt - - * rtlanal.c (note_uses): Deal with SEQUENCEs. - * config/bfin/bfin.c: Include "timevar.h". - (bfin_flag_schedule_insns2, splitting_for_sched, - bfin_flag_var_tracking): New variables. - (print_operand): Handle '%!'. - (override_options): Disable normal sched2 pass, instead set - bfin_flag_schedule_insns2 for reorg to handle it. - (output_file_start): Likewise for var-tracking. - (bfin_optimize_loop): Take some care not to stumble over SEQUENCEs. - (gen_one_bundle, bfin_gen_bundles, type_for_anomaly, trapping_loads_p): - New functions. - (bfin_reorg): Do second scheduling pass here, and call - bfin_gen_bundles. Use type_for_anomaly and trapping_loads_p instead - of examining insns directly. If bfin_flag_var_tracking, call - var-tracking pass when done with everything else. - * config/bfin/bfin.h (PRINT_OPERAND_PUNCT_VALID_P): '!' is valid. - * config/bfin/bfin.md (UNSPEC_32BIT): New constant. - (movsi_insn32): New pattern, with two new splits to create it - before the final scheduling pass. - (neghi2): Not a dsp32 insn, rather alu0. - (movbi, pushsi_insn, popsi_insn, movsi_insn, movv2hi_insn, movhi_insn, - movqi_insn, movsf_insn, movsi_insv, extendhisi2, zero_extendhisi2, - extendqihi2, extendqisi2, zero_extendqihi2, zero_extendqisi2, - mulhisi3, umulhisi3, ssadsi3, sssubsi3, smaxsi3, sminsi3, abssi2, - ssnegsi2, signbitssi2, smaxhi3, sminhi3, abshi2, ssneghi2, signbitshi2, - movhi_low2high, movhi_high2high, movhi_low2low, movhi_high2low, - movhiv2hi_low, movhiv2hi_high, composev2hi, packv2hi, movv2hi_hi, - ssaddhi3, sssubhi3, addv2hi3, ssaddv2hi3, subv2hi3, sssubv2hi3, - addsubv2hi3, subaddv2hi3, ssaddsubv2hi3, sssubaddv2hi3, sublohiv2hi3, - subhilov2hi3, sssublohiv2hi3, sssubhilov2hi3, addlohiv2hi3, - addhilov2hi3, ssaddlohiv2hi3, ssaddhilov2hi3, sminv2hi3, smaxv2hi3, - flag_mulhi, flag_mulhisi, flag_mulhisi_parts, flag_machi, - flag_machi_acconly, flag_macinithi, flag_macinit1hi, mulv2hi3, - flag_mulv2hi, flag_mulv2hi_parts, flag_macv2hi_parts, - flag_macv2hi_parts_acconly, flag_macinitv2hi_parts, - flag_macinit1v2hi_parts, mulhisi_ll, mulhisi_lh, mulhisi_hl, - mulhisi_hh, ssnegv2hi2, absv2hi2, ssashiftv2hi3, ssashifthi3, - lshiftv2hi3, lshifthi3): Use '%!' to terminate all dsp32/load/store - variants instead of ';'. - (ror_one, rol_one): Likewise. Make them dsp32 insns. - (ashlsi3_insn, ashrsi3, lshrsi3): Add dsp32 variants. - (align8, align16, align24): Now named patterns; also using '%!'. - (mnop): New insn. - -2006-12-05 Kazu Hirata - - * config/i386/darwin.h, config/spu/spu.c, tree-ssa-live.c, - tree-vect-generic.c, tree-vect-transform.c: Fix comment typos. - -2006-12-04 Trevor Smigiel - - * config/spu/spu-protos.c (spu_split_address): Add. - * config/spu/spu.c (spu_split_address): Add. - (print_operand): Handle HIGH. - (spu_legitimate_address): Don't test for aligned CONST. - (spu_expand_mov): Don't split addresses here. - * config/spu/constraints.md (A): Don't test legitimate_const. - * config/spu/spu.md: Add split of movsi patterns for PIC mode. - (ceq_di): Use correct predicates. - -2006-12-04 Eric Christopher - - * config/darwin.h: Update copyright notice. - * config/i386/darwin.h: Ditto. - -2006-12-04 Jan Hubicka - - * builtins.c (fold_builtin_memory_op): Check that expr_size match. - * explow.c (expr_size, int_expr_size): Assert that size is non_NULL. - -2006-12-04 Daniel Berlin - - * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Call - set_used_smts. - * tree-ssa-structalias.c (set_used_smts): Export. - (find_what_p_points_to): Don't call set_used_smts here. - * tree-ssa-structalias.h (set_used_smts): Add prototype. - -2006-12-04 Daniel Berlin - - * tree-ssa-alias.c (compute_may_aliases): - Compute flow sensitive before flow insensitive. - (compute_flow_sensitive_aliasing): Don't try to add - a symbol memory tag to itself. - - * alias.h (alias_set_subset_of): New prototype. - - * alias.c (alias_set_subset_of): New function. - - * tree-ssa-structalias.c: Update comments. - (struct variable_info): Add finished_solution. - (new_varinfo): Set finished solution to NULL. - (var_escaped_vars): Remove. - (escaped_vars_tree): Remove. - (escaped_vars_id): Remove. - (nonlocal_vars_id): Remove. - (constraint_expr_type): Add INCLUDES. - (graph_size): Removed. - (dump_constraint): Support INCLUDES. - (build_constraint_graph): Ditto. - (collapse_nodes): Add merge_solutions argument. - Don't merge attributes. - (process_unification_queue): Just use collapse_nodes. - (perform_var_substitution): Update call to collapse_nodes. - (get_constraint_exp_from_ssa_var): Use INCLUDES. - (process_constraint): Fix non-field sensitive handling - Handle includes. - (get_constraint_for): Use INCLUDES. - (make_constraint_from_anything): Renamed from - make_constraint_from_escaped. - (make_constraint_to_escaped): Removed. - (find_global_initializers): Removed. - (create_variable_info_for): Do not make constraints to escaped - vars anymore. - (dump_solution_for_var): Don't print out the equivalent points-to - sets, just use the name of the variable it shares it with. - (intra_create_variable_infos): Use INCLUDES. - Change nonlocal variable sets to anything sets. - (init_base_vars): Remove escaped_vars and nonlocal_var - initialization. - (find_escape_constraints): Removed. - (delete_points_to_sets): Remove dead code. - (used_smt_calculated): New variable. - (set_used_smts): New function. - (merge_smts_into): New function. - (find_what_p_points_to): Modify to use SMTs. - (create_nonlocal_var): Remove. - - * tree-ssa-operands.c (access_can_touch_variable): Remove - reference to nonlocal_all. - - * tree-ssa.c (verify_name_tags): Remove. - -2006-12-04 Carlos O'Donell - - * config/arm/unwind-arm.c: Adjust __cxa_type_match declaration. - (__gnu_unwind_pr_common): Pass is_reference to __cxa_type_match. - -2006-12-04 Andrew MacLeod - - * tree-outof-ssa.c (coalesce_ssa_name): Use calculate_live_ranges. - * tree-ssa-live.c (new_tree_live_info, delete_tree_live_info): Update. - (add_livein_if_notdef): Delete. - (loe_visit_block): New. Propogate live on entry info for a block into - each predecessor. If it changes, make sure it is visited again. - (live_worklist): Visit every block and update the live on entry info - for preds. Iterate over any that changed. - (set_var_live_on_entry): Populate the live on entry blocks with bits - based on the immediate uses of a var. - (calculate_live_on_entry): Remove. - (calculate_live_on_exit): Calculate live on exit based on the newly - oriented live on entry bits. - (calculate_live_ranges): Build live on entry and exit vectors. - (dump_live_info): Use new orientation of live on entry bitmaps. - (verify_live_on_entry): New. Split out verification code from old - calculate_live_on_entry routine. - * tree-ssa-live.h (struct tree_live_info_d): Add Working stack. - (live_entry_blocks): Rename to live_on_entry and return bitmap for a - basic_block instead of for a partition. - (live_merge_and_clear): Add asserts. - (make_live_on_entry): Set partition bit in basic block vector. - -2006-12-04 Jakub Jelinek - - PR libgomp/29947 - * omp-low.c (expand_omp_for_static_nochunk, - expand_omp_for_static_chunk): Do all arithmetics in signed rather than - unsigned type. - - PR middle-end/29965 - * omp-low.c (determine_parallel_type): Don't try to optimize combined - parallels if region->exit or region->inner->exit is NULL. - (expand_omp_parallel): Handle NULL region->exit even if cfg is already - built. - (expand_omp_for_generic): Handle NULL region->cond and region->exit. - (expand_omp_for): Use expand_omp_for_generic if either region->cond - or region->exit is NULL. - (expand_omp_sections): Handle NULL region->cond or region->exit. - (expand_omp_synch): - -2006-12-04 Eric Botcazou - - * config/sparc/sp64-elf.h (JUMP_TABLES_IN_TEXT_SECTION): Delete. - * config/sparc/sysv4.h (JUMP_TABLES_IN_TEXT_SECTION): Likewise. - -2006-12-04 Eric Botcazou - - * tree.c (walk_type_fields): Do not handle TYPE_MIN_VALUE and - TYPE_MAX_VALUE for scalar types here but... - (walk_tree): ...there instead. Return NULL_TREE if the TYPE_DECL - is attached an error mark, and the return value of the callback - if it is not NULL_TREE. - -2006-12-04 Ben Elliston - - * config/spu/spu.md (_mulv4si3): Remove unused local variables. - -2006-12-03 Eric Christopher - - PR target/24598 - * config/t-slibgcc-darwin: Pass -install_name. - * config/darwin.h (LINK_COMMAND_SPEC): Remove use of - libtool. Only pass through options that the linker recognizes. - (LINK_SPEC): Update comment. Translate options. - (STARTFILE_SPEC): Add dylib1.o for shared libraries. - * config/darwin9.h (LINK_COMMAND_SPEC): Ditto above. - -2006-12-03 Dorit Nuzman - - * config/spu/spu.md (smaxv4sf3, sminv4sf3): New. - -2006-12-03 Uros Bizjak - - PR target/30041 - * config/i386/sse.md ("*sse3_movddup"): Use operands[0] and - operands[1] in insn constraint. Correct type attribute to sselog1. - -2006-12-02 H.J. Lu - - PR target/30040 - * config/i386/driver-i386.c: Include "coretypes.h" and "tm.h". - (bit_SSSE3): New. - (host_detect_local_cpu): Check -mtune= vs. -march=. Rewrite - processor detection. - - * config/i386/i386.h (CC1_CPU_SPEC): Add -mtune=native for - -march=native if there is no -mtune=*. - - * config/i386/x-i386 (driver-i386.o): Also depend on $(TM_H) - coretypes.h. - -2006-12-02 Kaveh R. Ghazi - - * doc/install.texi: Update recommended MPFR version. Remove - obsolete reference to cumulative patch. - -2006-12-02 Lee Millward - - PR c/27953 - * c-decl.c (store_parm_decls_oldstyle): Robustify. - -2006-11-30 Jan Hubicka - Uros Bizjak - - * config/i386/i386.c (pentium4_cost, nocona_cost): Update - 32bit memcpy/memset decriptors. - (decide_alg): With -minline-all-stringops and sizes that are best - to be copied via libcall still work hard enough to pick non-libcall - strategy. - -2006-12-02 Kazu Hirata - - * doc/extend.texi, doc/invoke.texi, doc/md.texi: Fix typos. - - * builtins.c, cfgloop.h, cgraph.h, config/arm/arm.c, - config/i386/i386.c, config/i386/i386.h, config/mips/mips.h, - config/rs6000/cell.md, config/rs6000/rs6000.c, config/sh/sh.c, - config/sh/sh4-300.md, config/spu/spu-builtins.def, - config/spu/spu-c.c, config/spu/spu-modes.def, - config/spu/spu.c, config/spu/spu.md, - config/spu/spu_internals.h, config/spu/vmx2spu.h, - fold-const.c, fwprop.c, predict.c, tree-data-ref.h, - tree-flow.h, tree-ssa-loop-manip.c, tree-ssa-loop-niter.c, - tree-ssa-pre.c, tree-vect-analyze.c, tree-vect-transform.c, - tree-vectorizer.c, tree-vrp.c: Fix comment typos. Follow - spelling conventions. - - * config/i386/i386.c: Fix a comment typo. - -2006-12-01 Trevor Smigiel - - * config/spu/spu.c (spu_immediate): Remove trailing comma. - (reloc_diagnostic): Call warning when -mwarn-reloc is specified. - * config/spu/spu.md: (zero_extendhisi2): Expand instead of split for - better optimization. - (floatv4siv4sf2): New. - (fix_truncv4sfv4si2): New. - (floatunsv4siv4sf2): New. - (fixuns_truncv4sfv4si2): New. - (addv16qi3): New. - (subv16qi3): New. - (negv16qi2): New. - (mulv8hi3): New. - (mulsi3): Remove. - (mul3): New. - (_mulv4si3): New. - (cmp): Don't accept constant arguments for DI, TI and SF. - * config/spu/spu_internals.h: Handle overloaded intrinsics in C++ with - spu_resolve_overloaded_builtin instead of static inline functions. - -2006-12-01 Eric Botcazou - - * fold-const.c (fold_binary) : Use the precision of the - type instead of the size of its mode to compute the highest and - lowest possible values. Still check the size of the mode before - flipping the signedness of the comparison. - -2006-12-01 Trevor Smigiel - - * config/spu/predicates.md (spu_mov_operand): Add. - * config/spu/spu.c (spu_expand_extv): Remove unused code. - (print_operand_address, print_operand): Handle addresses containing AND. - (spu_split_load, spu_split_store): Use updated movti pattern. - * config/spu/spu.md: (_mov, _movdi, _movti): Handle loads and - stores in mov patterns for correct operation of reload. - (lq, lq_, stq, stq_): Remove. - -2006-12-01 Volker Reichelt - - PR c++/30021 - * c-common.c (check_main_parameter_types): Check for error_mark_node. - -2006-12-01 Andrew MacLeod - - * common.opt (ftree-combine-temps): Remove. - * tree-outof-ssa.c (SSANORM_COMBINE_TEMPS): Remove. - (coalesce_ssa_name): Don't check for combine-temps. - (coalesce_vars): Remove. - (check_replaceable): Use num_imm_uses. - (remove_ssa_form, insert_backedge_copies, rewrite_out_of_ssa): Don't - check for combine-temps. - (rewrite_out_of_ssa): Never create a ref_count in the var_map. - * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Change parms - to register_ssa_partition calls. - * tree-ssa-live.c (register_ssa_partition): Remove prototype. - (init_var_map, delete_var_map): remove refernces to ref_count. - (create_ssa_var_map): Never calculate a ref count. - (type_var_init): Remove. - * tree-ssa-live.h (typedef struct _var_map): Remove ref_count. - (SSA_VAR_MAP_REF_COUNT): Delete. - (create_ssa_var_map): Change Prototype to have no parameters. - (version_ref_count): Delete. - (register_ssa_partition): Remove 'is_use' paramater and don't set the - ref_count vector. - (type_var_num, type_var, type_var_first_partition, - type_var_next_partition, type_var_dump, type_var_delete, - type_var_remove_partition, type_var_find, type_var_compact, - type_var_decompact): Remove. - -2006-12-01 Bernd Schmidt - - * config/bfin/bfin.md (pushsi_insn, popsi_insn): Set correct addrtype - attribute. - -2006-12-01 Richard Guenther - - PR c++/29433 - * dwarf2out.c (struct pubname_struct): Make name const. - (add_pubtype): Do not xstrdup identifiers. - -2006-12-01 Bernd Schmidt - - * config/bfin/bfin.c (bfin_valid_add): Fix the logic that ensures - multiword accesses are in range. - -2006-12-01 Zdenek Dvorak - - PR tree-optimization/29921 - * tree-ssa-ccp.c (canonicalize_float_value): New function. - (set_lattice_value): Use canonicalize_float_value. - -2006-11-30 Andrew Pinski - - * config/spu/spu.c (spu_builtin_range): Move from spu-c.c - (TARGET_RESOLVE_OVERLOADED_BUILTIN): Delete. - (spu_cpu_cpp_builtins): Remove. - (spu_override_options): Don't set warn_main. - (spu_force_reg): Move from spu-c.c. - (spu_check_builtin_parm): Likewise. - (expand_builtin_args): Likewise. - (spu_expand_builtin_1): Likewise. - (spu_expand_builtin): Likewise. - * config/spu/spu.h (REGISTER_TARGET_PRAGMAS): Define, set - warn_main and targetm.resolve_overloaded_builtin. - * config/spu/spu-c.c (spu_builtin_range): Remove. - (spu_check_builtin_parm): Remove. - (expand_builtin_args): Remove. - (spu_expand_builtin_1): Remove. - (spu_expand_builtin): Remove. - (spu_cpu_cpp_builtins): Moved from spu.c - (spu_force_reg): Remove. - -2006-12-01 Joseph Myers - David Edelsohn - - PR target/24036 - * doc/tm.texi (HARD_REGNO_NREGS_HAS_PADDING, - HARD_REGNO_NREGS_WITH_PADDING): Document new target macros. - * defaults.h (HARD_REGNO_NREGS_HAS_PADDING, - HARD_REGNO_NREGS_WITH_PADDING): Define. - * config/i386/i386.h (HARD_REGNO_NREGS_HAS_PADDING, - HARD_REGNO_NREGS_WITH_PADDING): Define. - * rtlanal.c (subreg_regno_offset, subreg_offset_representable_p): - Use new macros to detect modes with holes; do not look at integer - units. - (subreg_offset_representable_p): Check for and disallow cases - where the modes use different numbers of bits from registers. - * config/rs6000/rs6000.c (rs6000_emit_move): Handle TFmode - constant for soft-float. - (rs6000_hard_regno_nregs): Use UNITS_PER_FP_WORD for e500 GPRs - containing doubles. - (rs6000_split_multireg_move): Use DFmode reg_mode for TFmode moves - in E500 double case. - * config/rs6000/rs6000.md (movtf): Allow soft-float. - (movtf_softfloat): New. - -2006-11-30 Richard Sandiford - - * simplify-rtx.c (simplify_rtx): Use simplify_subreg rather than - simplify_gen_subreg. - -2006-11-30 Andrew Macleod - - * tree-ssa-live.c (create_coalesce_list): Create a hash table. - (COALESCE_HASH_FN): New. Define hash function. - (partition_pair_map_hash): New. Hash value for a partition pair. - (partition_pair_map_eq): New. Equality for hash pairs. - (create_coalesce_list): Create hash table. - (delete_coalesce_list): Free hash table. - (find_partition_pair): Find/create pairs in hash table. - (compare_pairs): Sort pairs in ascending order now. - (num_coalesce_pairs): New. Number of pairs in hash table. - (struct partition_pair_iterator): Iterator struct for pair table. - (first_partition_pair): Iterator function for first pair. - (end_partition_pair_p): Iterator function for end of iteration. - (next_partition_pair): Iterator function for next pair. - (FOR_EACH_PARTITION_PAIR): Macro for iterating over pairs. - (sort_coalesce_list): Sort pairs from hash table into an array. - (pop_best_coalesce): Take pairs from the array. - (dump_coalesce_list): Update to use hash table or sorted array. - * tree-ssa-live.h (struct partition_pair_d): Remove next field. - (struct coalesce_list_d): Add hash table related fields. - -2006-11-30 Jan Hubicka - - PR middle-end/30028 - * builtins.c (fold_builtin_memory_op): Fix typo in the check for - memmove/bcopy->memcpy conversion. - -2006-11-30 Carlos O'Donell - - * doc/tm.texi (MAX_OFILE_ALIGNMENT): Document default. - * config/elfos.h [!MAX_OFILE_ALIGNMENT] (MAX_OFILE_ALIGNMENT): - Default is the largest alignment supported for 32-bit ELF and - representable on a 32-bit host. - -2006-11-30 Janis Johnson - - * config/dfp-bit.c (DFP_TO_INT): Use wider precision. - -2006-11-30 Jan Hubicka - - * tree-ssa-operands.h (struct ssa_operands): New. - * tree-flow-inline.h (gimple_ssa_operands): New function. - * tree-flow.h: (struct gimple_df): Add ssa_operands. - * Makefile.in: Remove gt-tree-ssa-operands.h - * tree-ssa-operands.c: Do not include gt-tree-ssa-operands.h - (free_defs, free_uses, free_vuses, free_maydefs, free_mustdefs, - operand_memory, operand_memory_index, ops_active): Remove statics. - (ALLOC_OPTYPE): Update. - (operand_build_sort_virtual): Update. - (ssa_operands_active): Update. - (init_ssa_operands): Update. - (fini_ssa_operands): Update. - (ssa_operand_alloc): Update. - (INITIALIZE_USE): Update. - (finalize_ssa_use_ops): Update. - (finalize_ssa_v_may_def_ops): Update. - (finalize_ssa_vuse_ops): Update. - (finalize_ssa_v_must_def_ops): Update. - -2006-11-30 Richard Guenther - - * tree-vectorizer.h (vectorizable_function): Export. - * tree-vect-transform.c (vectorizable_function): Likewise. - * tree-vect-patterns.c (vect_recog_pow_pattern): Set - type_in to scalar type in recognition of squaring. - Make sure the target can vectorize sqrt in recognition - of sqrt, set type_in to vector type in this case. - -2006-11-30 Uros Bizjak - - * config/i386/i386.md (R10_REG): New constant. - * config/i386/i386.c (pro_epilogue_adjust_stack): Use R11_REG. - (ix86_emit_restore_regs_using_mov): Ditto. - (ix86_expand_call): Ditto. - (x86_output_mi_thunk): Ditto. Also use R10_REG. - -2006-11-30 Steven Bosscher - - * cselib.c (cselib_init): Use special MEM rtx form for callmem. - * alias.c (canon_true_dependence): Update comment. - -2006-11-30 Steven Bosscher - - * cgraphunit.c (cgraph_finalize_compilation_unit): Add a newline - at the end of a diagnostics message. - - * alloc-pool.c (pool_free): Postpone clearing the pool entry - until after asserting that it was allocated in the right pool. - - * cfgrtl.c (print_rtl_with_bb): Print predecessor and - successor edge information as well. Make output of live regs - on exit consistent with live regs on entry. - -2006-11-30 Uros Bizjak - - PR target/29852 - * config/i386/i386.md (*truncxfsf2_mixed, *truncxfdf2_mixed): Enable - insn patterns for TARGET_80387. - (*truncxfsf2_i387, *truncxfdf2_i387): Remove. - (*truncxfsf2_i387_1): Rename to *truncxfsf2_i387. - (*truncxfdf2_i387_1): Rename to *truncxfdf2_i387. - (fmod3, remainder3): Enable expaders for SSE math. - Generate truncxf2 insn patterns for strict SSE math. - -2006-11-30 Uros Bizjak - - * config/i386/i386.md (movsf_1): Enable pattern for standard - 80387 constants before reload when optimizing for size. - (*movdf_nointeger, *movdf_integer): Ditto. - (*movxf_nointeger, *movxf_integer): Disable patterns for standard - 80387 constants before reload when not optimizing for size. - - (*fop_xf_4_i387, *fop_xf_5_i387, *fop_xf_6_i387): Avoid float - extension of XFmode input operands. - -2006-11-29 Andrew Pinski - - * config/spu/crt0.c (__dso_handle): Define. - -2006-11-30 Kaz Kojima - - * emit-rtl.c (verify_rtl_sharing): Handle SEQUENCE specially - when clearing the used flags. - -2006-11-29 Andrew Pinski - - * config/spu/spu.md (extend_compare): Fix whitespace formatting. - -2006-11-29 Andrew Pinski - - PR target/29945 - * config/spu/spu.md (extend_compare): New pattern. - (extend_compare): Change to expand and use the above pattern. - -2006-11-29 Janis Johnson - - * config/dfp-bit.c (DFP_TO_INT): Fix rounding mode. - - * config/dfp-bit.h (CONTEXT_ROUND): Delete. - (DFP_INIT_ROUNDMODE): Define. - * config/dfp-bit.c: Replace CONTEXT_ROUND with DFP_INIT_ROUNDMODE. - * mklibgcc.in: Fix dependencies for dfp-bit.c. - -2006-11-29 Tehila Meyzels - - * haifa-sched.c: Remove define LINE_NOTE(INSN). Remove line_note_head. - Update documentation. - (associate_line_notes_with_blocks): Kill. - (extend_bb): Remove basic block argument, put void instead. - Remove line number handling for each bb. - (save_line_notes): Kill. - (restore_line_notes): Kill. - (sched_init): Remove line_note_head initialization. - Change extend_bb call. - (sched_finish): Remove free of line_note_head. - (add_block): Change extend_bb call. - * sched-ebb.c (schedule_ebb): Remove save_line_notes, - rm_line_notes and restore_line_notes calls. - (schedule_ebbs): Remove rm_redundant_line_notes. - * sched-int.h (struct haifa_insn_data): Remove line_note. - (save_line_notes): Remove declaration. - (restore_line_notes): Remove declaration. - * modulo-sched.c (loop_canon_p): Update debug info printing - by using insn locators instead of line note. - (sms_schedule): Update debug info printing, by using insn - locators instead of line note. - * sched-rgn.c (debug_dependencies): Remove handling of case - n>0 (line number), since it's a dead code. - (schedule_region): Remove save_line_notes and - restore_line_notes calls. - -2006-11-29 Joseph Myers - - * config/rs6000/predicates.md (gpc_reg_operand): Check - invalid_e500_subreg. - * config/rs6000/rs6000.c (invalid_e500_subreg): Don't allow any - SImode subregs of SPE vectors. - * config/rs6000/rs6000.md (insv): Fail for invalid E500 subregs. - * jump.c (true_regnum): Require subregs to satisfy - subreg_offset_representable_p. - -2006-11-29 Daniel Berlin - Steven Bosscher - - * Makefile.in (tree-ssanames.o): Remove gt-tree-ssanames.h, - since it no longer exists. - -2006-11-29 Duncan Sands - - PR tree-optimization/23744 - * tree-vrp.c (vrp_meet): do not require ranges to intersect. - -2006-11-29 Duncan Sands - - PR tree-optimization/23744 - * testsuite/gcc.dg/tree-ssa/pr23744.c: new test. - -2006-11-29 Duncan Sands - - PR tree-optimization/23744 - * testsuite/gcc.dg/tree-ssa/update-threading.c: xfail. - -2006-11-29 Jie Zhang - - * doc/tm.texi (NO_PROFILE_COUNTERS): Document more accurately. - -2006-11-29 J"orn Rennecke - - * sh.opt (minline-ic_invalidate): New option. - (musermode): Adjust comment. - * sh.c (sh_initialize_trampoline): Emit library call unless - is set; if it is set, don't emit library call if we can use icbi - instead. - * sh.md (ic_invalidate_line, ic_invalidate_line_sh4a): Also use - icbi for TARGET_SH4_300. - * t-sh (LIB1ASMFUNCS_CACHE): Set. - * doc/invoke.texi: Document -minline-ic_invalidate; Update - -musermode documentation. - -2006-11-29 Jim Tison - - * gthr-tpf.h (__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION, - __gthread_recursive_mutex_init): Define. - -2006-11-29 Joseph Myers - - * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): If - STRICT_ALIGNMENT and the type is more aligned than the saved - registers, copy via a temporary. - -2006-11-28 Andrew Pinski - - PR tree-opt/29984 - * tree-ssa-reassoc.c (eliminate_duplicate_pair): Handle MAX_EXPR - and MIN_EXRP. - -2006-11-28 Bob Wilson - - * config/xtensa/lib1funcs.asm (__umulsidi3): Restore a12-a15 on exit. - -2006-11-28 Jan Hubicka - - Privatize SSA variables into gimple_df. - * tree-flow-inline.h - (gimple_in_ssa_p, gimple_aliases_computed_p, gimple_addressable_vars, - gimple_call_clobbered_vars, gimple_referenced_vars, gimple_global_var, - gimple_nonlocal_all): New accessors. - (first_referenced_var): Update. - (mark_stmt_modified): Update. - (is_call_clobbered): Update. - (mark_call_clobbered): Update. - (clear_call_clobbered): Update. - (mark_non_addressable): Update. - * tree-vrp.c (get_value_range): Update. - * tree-into-ssa.c (in_ssa_p): Kill. - (get_default_def_for): Update. - (rewrite_into_ssa): Update. - * tree-complex.c (init_parameter_lattice_values): Update. - (update_complex_assignment): Update. - (update_parameter_components): Update. - (expand_complex_libcall): Update. - (expand_complex_operations_1): Update. - * tree-tailcall.c (arg_needs_copy_p): Update. - (add_virtual_phis): Update. - (tree_optimize_tail_calls_1): Update. - * tree-ssa-dse.c (memory_ssa_name_same): Update. - * tree-ssa-copyrename.c - (copy_rename_partition_coalesce): Update. - * tree-ssa-math-opts.c (execute_cse_reciprocals): Update. - * tree-ssa-propagate.c (set_rhs): Update. - * tree-ssa-alias.c (aliases_computed_p, call_clobbered_vars, - addressable_vars, global_var):Kill. - (set_initial_properties): Update. - (init_alias_info): Update. - (finalize_ref_all_pointers): Update. - (setup_pointers_and_addressables): Update. - (maybe_create_global_var): Update. - (create_global_var): Update. - (dump_points_to_info): Update. - * function.h (struct gimple_df): Forward declare. - (struct function): Add GIMPLE_DF field. - * gimplify.c (force_gimple_operand): Update. - * tree-dfa.c (referenced_vars, default_defs): KIll. - (make_rename_temp): Update. - (dump_variable): Update. - (referenced_var_lookup): Update. - (referenced_var_check_and_insert): Update. - (default_def): Rename to ... - (gimple_default_def): ... this one; accept cfun argument. - (set_default_def): Update. - * tree-cfgcleanup.c (modified_noreturn_calls): Kill. - (cleanup_control_flow): Update. - * tree-ssa-pre.c (compute_avail): Update - * tree-ssa-live.c (calculate_live_on_entry): Update. - * tree-ssa.c (verify_use): Update. - (verify_call_clobbering): Update. - (verify_call_clobbering): Update. - (init_tree_ssa): Update. - (delete_tree_ssa): Update. - * tree-outof-ssa.c (coalesce_ssa_name): Update. - (rewrite_out_of_ssa): Update. - * tree-flow.h (gimple_df): New structure collecting dataflow variables. - (FREE_SSANAMES, SSANAMES, MODIFIED_NORETURN_CALLS, DEFAULT_DEFS): New - private accessors. - (in_ssa_p, modified_noreturn_calls, referenced_vars, default_defs, - ssa_names, global_var, nonlocal_all, call_clobbered_vars, - addressable_vars, aliases_computed_p): Kill. - (default_def): Rename to... - (gimple_default_def): ... this one. - (defaule_def_fn): Kill. - (num_referenced_vars, ssa_names, num_ssa_names): Update. - * tree-ssa-structalias.c (nonlocal_all): Kill. - (get_constraint_exp_from_ssa_var): Update. - (create_nonlocal_var): Update. - (get_constraint_for): Update. - (update_alias_info): Update. - (find_global_initializers): Update. - (intra_create_variable_infos): Update. - (intra_create_variable_infos): - (find_what_p_points_to): Update. - (init_alias_heapvars): Update. - * tree-cfg.c (remove_bb): Update. - (gimplify_val): Update. - * tree-ssa-reassoc.c (get_rank): Update. - (init_reassoc): Update. - * tree-ssanames.c: Do not include gt-tree-ssanames.h - (ssa_names, free_ssanames): Kill. - (init_ssanames): Update. - (make_ssa_name): Update. - (release_ssa_name): Update. - (release_defs): Update. - (replace_ssa_name_symbol): Update. - * tree-ssa-operands.c (access_can_touch_variable): Update. - (add_virtual_operand): Update. - (add_call_clobber_ops): Update. - (add_call_read_ops): Update. - (get_call_expr_operands): Update. - (get_asm_expr_operands): Update. - -2006-11-28 Jan Hubicka - - * builtins.c: Include tree-flow.h. - (fold_builtin_memory_op): Be more aggressive on converting memcpy to - assignment; convert memmove to memcpy for sizes greater than 1 where - alignment of operands prohibit the partial overlap. - -2006-11-28 Jan Hubicka - - * invoke.texi (large-stack-frame, large-stack-frame-growth): New params. - * cgraph.c (dump_cgraph_node): Dump stack usage. - * cgraph.h (cgraph_local_info): Add estimated_self_stack_size. - (cgraph_global_info): Add estimated_stack_size and stack_frame_offset. - * cgraphunit.c (cgraph_analyze_function): Analyze stack sizes. - * ipa-inline.c (cgraph_clone_inlined_nodes): Propagate stack usage. - (cgraph_check_inline_limits): Limit stack growth. - * cfgexpand.c: Include tree-inline.h. - (account_stack_vars): New function. - (expand_one_var): New param to just account the stack; return estimated - size. - (expand_used_vars_for_block): Update call of expand_one_var. - (account_used_vars_for_block): New function. - (estimated_stack_frame_size): Likewise. - (init_vars_expansion, fini_vars_expansion): Break out from.. - (expand_used_vars): ... here. - * tree-inline.h (estimated_stack_frame_size): Declare. - * params.def (PARAM_LARGE_STACK_FRAME, PARAM_STACK_FRAME_GROWTH): New. - -2006-11-28 Richard Guenther - - * ggc-page.c (ggc_print_statistics): Use %ul and a cast to - unsigned long for printing OBJECT_SIZE. - -2006-11-27 Steven Bosscher - - * alias.c (init_alias_analysis): Remove simplification loop - after propagating pointers. - -2006-11-27 Uros Bizjak - - * config/i386/i386.c (x86_ext_80387_constants): Add m_K8, m_CORE2 - and m_GENERIC64. - -2006-11-27 Bob Wilson - - * config/xtensa/xtensa.h (XCHAL_HAVE_MUL32_HIGH): Provide default. - -2006-11-27 Roger Sayle - Manuel Lopez-Ibanez - - * c-common.c (constant_fits_type_p): Delete. - (unsigned_conversion_warning): Delete. - (conversion_warning): Integrate Wconversion warning from - unsigned_conversion_warning. - (convert_and_check): Integrate Woverflow warning from - unsigned_conversion_warning. Reorganize and simplify to avoid - dependence upon the middle-end setting TREE_OVERFLOW on integral - conversions, by using int_fits_type_p directly. - -2006-11-27 Tobias Burnus - - * doc/invoke.texi: Fixed typo. - -2006-11-27 Michael Matz - Andreas Krebbel - - PR target/29319 - * config/s390/predicates.md (larl_operand): Check addend of larl - operand to be in range of -/+2GB. - * config/s390/s390.c (legitimize_pic_address): Likewise. - Changed type of variable even to HOST_WIDE_INT. - -2006-11-27 Jan Hubicka - - * expr.c (emit_block_move_via_libcall): Export. - (clear_storage_via_libcall): Rename to ... - (set_storage_via_libcall): ... this one; handle arbitrary value to set. - (clear_storage): Update to set_storage_via_libcall. - * expr.h (emit_block_move_via_libcall): Declare - * config/i386/i386.h (stringop_alg): New enum. - (MAX_STRINGOP_ALGS): New constant. - (stringop_algs): New struct. - (processor_costs): Add memcpy/memset descriptors. - (TARGET_REP_MOVEL_OPTIMAL): Remove. - * config/i386/i386.md (movsi_insv_1_rex64): New pattern. - (strmovsi, strmovdi, strsetsi, strsetdi): Update; accept all operands - for memset. - * config/i386/i386.opt (minline-stringops-dynamically, - mstringop-strategy): New - parameters. - * config/i386/i386-prostos.h (ix86_expand_movmem): Update prototype. - (ix86_expand-clrmem): Rename to ... - (ix86_expand_setmem): ... this one; update prototype. - * config/i386/i386.c (DUMMY_STRINGOP_ALGS): New constant. - (size_cost, i386_cost, i486_cost, pentium_cost, pentiumpro_cost, - geode_cost, k6_cost, athlon_cost, k8_cost, pentium4_cost, - nocona_cost, core2_cost, generic_cost, generic64_cost, - generic32_cost): Add memcpy/memset descriptors. - (x86_rep_movl_optimal): Remove. - (stringop_alg): New static variable. - (ix86_expand_aligntest): Handle predictions. - (override_options): Add strgop_alg handling. - (predict_jump): New function. - (scale_counter): New function. - (expand_set_or_movmem_via_loop): New function. - (expand_movmem_via_rep_mov): New function. - (expand_setmem_via_rep_stots): New function. - (emit_strmov): New function. - (expand_movmem_epilogue): New function. - (expand_setmem_epilogue_via_loop): New function. - (expand_setmem_epilogue): New function. - (expand_movmem_prologue): New function. - (expand_setmem_prologue): New function. - (decide_alg): New function. - (decide_alignment): New function. - (ix86_exand_movmem): Rewrite. - (promote_duplicated_reg): New function. - (ix86_expand_clrmem): Rename to ... - (ix86_expand_setmem): ... this one. Rewrite. - - * invoke.texi (minline-stringops-dynamically): New command line option. - (mstringop-strategy): Likewise. - -2006-11-27 Jan Hubicka - - * cfgexpand.c (construct_exit_block): Don't disturb end of last BB. - * rtl.texi (NOTE_INSN_FUNCTION_END): Remove. - * final.c (final_scan_insn): Don't scan NOTE_INSN_FUNCTION_END. - * insn-notes.def (FUNCTION_END): Remove. - * jump.c (delete_related_insns): Don't worry about FUNCTION_END. - (redicect_jump_2): Don't accept -1 parameter to remove FUNCTION_END - note. - * ifcvt.c (dead_or_predictable): Update call of redirect_jump_2. - * function.c (expand_function_end): Don't emit NOTE_INSN_FUNCTION_END - * cfglayout.c (duplicate_insn_chain): Don't worry about - NOTE_FUNCTION_END. - -2006-11-27 Richard Guenther - Zdenek Dvorak - - * target.h (struct gcc_target): Add builtin_vectorized_function - target hook. - * target-def.h (TARGET_VECTORIZE): Likewise. - * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): - Document new target hook. - * targhooks.h (default_builtin_vectorized_function): Declare. - * targhooks.c (default_builtin_vectorized_function): Define. - * tree-vectorizer.h (stmt_vec_info_type): Add call_vec_info_type. - (vectorizable_call): Declare. - * tree-vect-analyze.c (vect_analyze_operations): Call - vectorizable_call. - * tree-vect-transform.c (vectorizable_function): New static function. - (build_vectorized_function_call): Likewise. - (vectorizable_call): New function. - (vect_transform_stmt): Handle vectorizable calls. - -2006-11-27 Richard Guenther - - PR middle-end/25620 - * builtins.c (expand_builtin_pow): Optimize non integer valued - constant exponents using sqrt or cbrt if possible. Always fall back - to expanding via optabs. - -2006-11-27 Ira Rosen - - PR tree-optimization/22372 - * tree-vect-transform.c (vect_create_addr_base_for_vector_ref): Convert - the type of the base address. - (vect_create_data_ref_ptr): Add an argument, type of the data-ref. Use - it in the data-ref pointer creation. - (vect_init_vector): Add an argument, type of the init vector. Use it in - the stmt creation. - (vect_get_vec_def_for_operand): Fix calls to vect_init_vector. - (get_initial_def_for_reduction): Likewise. - (vect_create_epilog_for_reduction): Change type of MODIFY_EXPR to - void_type_node. - (vectorizable_assignment, vect_permute_store_chain): Likewise. - (vectorizable_store): Fix call to vect_create_data_ref_ptr. Use the - correct type in stmt creation. - (vect_setup_realignment): Use the correct type in stmt creation. - (vect_permute_load_chain): Change type of MODIFY_EXPR to - void_type_node. - (vectorizable_load): Fix calls to vect_create_data_ref_ptr. Change type - of MODIFY_EXPR to void_type_node. - (vectorizable_condition): Change type of MODIFY_EXPR to - void_type_node. - (vect_update_ivs_after_vectorizer): Use the correct type in stmt - creation. - -2006-11-27 Uros Bizjak - - Revert: - 2006-05-08 Uros Bizjak - * config/i386/i386.c (ix86_rtx_costs) [FLOAT_EXTEND]: For - standard 80387 constants, raise the cost to prevent - compress_float_constant() to generate load from memory. - - * config/i386/i386.md: Add new splitter pattern to split - float_extended load of constant from constant pool into - pure constant load. - -2006-11-26 Kaveh R. Ghazi - - * doc/install.texi: Move GMP/MPFR configure options from Fortran - section to general section. Remove documentation for - --with-mpfr-dir and --with-gmp-dir, add documentation for - --with-mpfr-include, --with-mpfr-lib, --with-gmp-include and - --with-gmp-lib. - - * builtins.c (fold_builtin_fmin_fmax): Handle NaN arguments. - -2006-11-26 Razya Ladklesky - - * testsuite/gcc.dg/ipa/ipa-6.c: New. - -2006-11-26 Razya Ladklesky - - PR tree-optimization/29122 - * tree-inline.c (tree_function_versioning): Update DECL_ASSEMBLER_NAME - for the new version. Assign NULL to DECL_RTL of the new version. - -2006-11-25 Uros Bizjak - - * reg-stack.c (get_true_reg): Fix UNSPEC_TRUNC_NOOP handling. - -2006-11-25 Steven Bosscher - - * cse.c (cse_altered): Remove. - (record_jump_equiv): Make true/false argument a bool instead - of an int. - (cse_insn): Don't set cse_altered. Use delete_insn_and_edges - where appropriate. Emit a new jump before the existing one - instead of after so that delete_insn_and_edges removes the - dead edges properly. Check any_condjump_p before calling - record_jump_equiv. - (cse_basic_block): Check any_condjump_p before calling - record_jump_equiv. - (cse_main): Don't set/check cse_altered. Remove USE_C_ALLOCA. - -2006-11-25 Brooks Moses - - * c.opt: Remove -ffixed-form, -ffixed-line-length-none, and - -ffixed-line-length-* options. - -2006-11-25 Uros Bizjak - - * config/i386/i386.md (fpremxf4): Rename to fpremxf4_i387. - (fprem1xf4): Rename to fprem1xf4_i387. - - (fmodsf3, fmoddf3): Macroize patterns using X87MODEF12 mode macro. - Rename patterns to fmod3. Use general_operand operand - constraint for operands 1 and 2. Use SSE_FLOAT_MODE_P to disable - patterns for SSE math. - (remaindersf3, remainderdf3): Ditto. - -2006-11-25 Joseph Myers - - * function.c (instantiate_virtual_regs_in_insn): Call force_reg - inside start_sequence / end_sequence pair. - -2006-11-25 Steven Bosscher - - * jump.c (mark_all_labels): Work in cfglayout mode. - * cfgcleanup.c (cleanup_cfg): Do not call delete_dead_jumptables - when in cfglayout mode, because there are no dead jumptables - visible. - * cfgrtl.c (commit_one_edge_insertion): Don't set bb->aux when - in cfglayout mode. - (commit_edge_insertions): Do not allow insertion of instructions - with control flow insns when in cfglayout mode. - -2006-11-25 Zdenek Dvorak - - * tree-vrp.c (execute_vrp): Do not pass loops structure through - arguments. - * loop-unswitch.c (unswitch_loops, unswitch_single_loop, - unswitch_loop): Ditto. - * tree-loop-linear.c (linear_transform_loops): Ditto. - * tree-ssa-loop-im.c (determine_lsm, tree_ssa_lim_initialize, - tree_ssa_lim): Ditto. - * tree-ssa-loop-niter.c (estimate_numbers_of_iterations, - free_numbers_of_iterations_estimates): Ditto. - * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops, - tree_unswitch_single_loop, tree_unswitch_loop): Ditto. - * cfgloopmanip.c (fix_bb_placement, fix_bb_placements, - remove_path, add_loop, loopify, unloop, fix_loop_placements, - place_new_loop, duplicate_loop, duplicate_subloops, - update_single_exit_for_duplicated_loops, copy_loops_to, - duplicate_loop_to_header_edge, create_preheaders, - force_single_succ_latches, loop_version, fix_loop_structure): - Ditto. - * tree-ssa-loop-manip.c (tree_duplicate_loop_to_header_edge, - tree_unroll_loop): Ditto. - * tree-ssa-loop-ch.c (copy_loop_headers): Ditto. - * tree-scalar-evolution.c (select_loops_exit_conditions, - scev_initialize, scev_analysis): Ditto. - * tree-scalar-evolution.h (scev_initialize): Ditto. - * cfghooks.c (cfg_hook_duplicate_loop_to_header_edge): Ditto. - * cfgloopanal.c (mark_irreducible_loops, mark_loop_exit_edges): Ditto. - * tree-ssa-loop-ivopts.c (tree_ssa_iv_optimize): Ditto. - * modulo-sched.c (sms_schedule): Ditto. - * tree-ssa-dom.c (tree_ssa_dominator_optimize): Ditto. - * loop-init.c (loop_optimizer_init, rtl_move_loop_invariants, - rtl_unswitch, rtl_unroll_and_peel_loops, rtl_doloop): Ditto. - * ifcvt.c (if_convert): Ditto. - * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely, - canonicalize_loop_induction_variables, - canonicalize_induction_variables, - tree_unroll_loops_completely, remove_empty_loops): Ditto. - * tree-ssa-loop.c (tree_ssa_loop_init, tree_ssa_loop_im, - tree_ssa_loop_unswitch, tree_vectorize, tree_linear_transform, - tree_ssa_loop_ivcanon, tree_ssa_empty_loop, tree_ssa_loop_bounds, - tree_complete_unroll, tree_ssa_loop_prefetch, tree_ssa_loop_ivopts, - tree_ssa_loop_done): Ditto. - * predict.c (predict_loops, tree_estimate_probability, estimate_loops, - estimate_bb_frequencies): Ditto. - * tree-vectorizer.c (slpeel_tree_duplicate_loop_to_edge_cfg, - slpeel_tree_peel_loop_to_edge, vectorize_loops): Ditto. - * loop-unroll.c (unroll_and_peel_loops, peel_loops_completely, - decide_unrolling_and_peeling, peel_loop_completely, - unroll_loop_constant_iterations, unroll_loop_runtime_iterations, - peel_loop_simple, unroll_loop_stupid): Ditto. - * loop-doloop.c (doloop_optimize_loops): Ditto. - * tree-cfgcleanup.c (cleanup_tree_cfg_loop): Ditto. - * loop-invariant.c (move_loop_invariants): Ditto. - * tree-ssa-dce.c (tree_ssa_dce_loop): Ditto. - * tree-ssa-loop-prefetch.c (loop_prefetch_arrays, - tree_ssa_prefetch_arrays): Ditto. - * lambda-code.c (gcc_loopnest_to_lambda_loopnest, perfect_nestify): - Ditto. - * tree-vect-transform.c (vect_do_peeling_for_loop_bound, - vect_do_peeling_for_alignment, vect_transform_loop): Ditto. - * cfgloop.c (flow_loops_cfg_dump, flow_loops_dump, - mark_single_exit_loops, cancel_loop, cancel_loop_tree, - verify_loop_structure): Ditto. - * tree-flow.h (vectorize_loops, tree_ssa_lim, tree_ssa_unswitch_loops, - canonicalize_induction_variables, tree_unroll_loops_completely, - tree_ssa_prefetch_arrays, remove_empty_loops, tree_ssa_iv_optimize, - estimate_numbers_of_iterations, free_numbers_of_iterations_estimates, - tree_duplicate_loop_to_header_edge, tree_ssa_loop_version, - tree_unroll_loop, linear_transform_loops): Declaration changed. - * basic-block.h: Remove declaration of struct loops. - * cfghooks.h (struct cfg_hooks): Change type of - cfg_hook_duplicate_loop_to_header_edge. - (cfg_hook_duplicate_loop_to_header_edge): Declaration changed. - * tree-vectorizer.h (slpeel_tree_peel_loop_to_edge, - vect_transform_loop): Declaration changed. - * lambda.h (gcc_loopnest_to_lambda_loopnest): Declaration changed. - * cfgloop.h (flow_loops_dump, fix_loop_structure, - mark_irreducible_loops, mark_single_exit_loops, mark_loop_exit_edges, - cancel_loop_tree, create_preheaders, force_single_succ_latches, - verify_loop_structure, duplicate_loop, duplicate_loop_to_header_edge, - loopify, loop_version, remove_path, unswitch_loops, - unroll_and_peel_loops, doloop_optimize_loops, move_loop_invariants): - Declaration changed. - -2006-11-24 Uros Bizjak - - * config/i386/i386.md (UNSPEC_TRUNC_NOOP): New unspec definition. - (X87MODEF): New mode macro. - (ssemodefsuffix): New mode attribute. - (truncxf2_i387_noop_unspec): New insn pattern. - (sqrt_extendxf2_i387): New insn pattern. - (sqrt2): For non-SSE sqrt, emit sqrt_extendxf2_i387 - insn and truncate result back to original mode using - UNSPEC_TRUNC_NOOP truncation. - (*sqrt2_sse): Implement using SSEMODEF mode macro and - ssemodefsuffix mode attribute. - (*sqrtsf2_mixed, *sqrtsf2_i387, *sqrtdf2_mixed, *sqrtdf2_i387) - (*sqrtextendsfdf2_i387, *sqrtextendsfxf2_i387) - (*sqrtextenddfxf2_i387): Remove insn patterns. - - (fmodsf3, fmoddf3, remaindersf3, remainderdf3): Use noop - truncation patterns. - - * reg-stack.c (get_true_reg): Handle UNSPEC_TRUNC_NOOP. - -2006-11-24 Jakub Jelinek - - PR c/29955 - * c-tree.h (c_maybe_initialize_eh): New prototype. - * c-decl.c (finish_decl): Move EH initialization... - (c_maybe_initialize_eh): ... here. New function. - * c-parser.c (c_parser_omp_construct): Call c_maybe_initialize_eh - if not #pragma omp atomic. - - PR c/29736 - * c-common.c (handle_vector_size_attribute): Disallow VECTOR_TYPE - or UNION_TYPE inner types. - -2006-11-24 Andrew Pinski - - PR tree-opt/29964 - * ipa-pure-const.c (check_tree): If the original tree - is volatile return early and say the function is not pure - nor const. Remove the volatile check for writes. - (analyze_function): Print out the result of the local - analysis pass. - -2006-11-24 Joseph Myers - - * config/rs6000/eabispe.h (TARGET_DEFAULT): Include - MASK_STRICT_ALIGN. - * config/rs6000/linuxspe.h (TARGET_DEFAULT): Likewise. - * config/rs6000/rs6000.c (rs6000_override_options): Use - MASK_STRICT_ALIGN for 8540 and 8548. Add MASK_STRICT_ALIGN to - POWERPC_MASKS. - -2006-11-24 Andreas Krebbel - - * config/s390.c (s390_emit_compare_and_swap): New function. - (s390_expand_cs_hqi, s390_expand_atomic): Call - s390_emit_compare_and_swap. - -2006-11-23 John David Anglin - - * pa.c (return_addr_rtx): Change 0xe0400002 to -532676606. - -2006-11-24 Manuel Lopez-Ibanez - - PR c/2707 - PR c++/26167 - * c-common.c (conversion_warning): New. - (convert_and_check): Call conversion_warning unless there is an - overflow warning. - * doc/invoke.texi (-Wconversion): Update description. - -2006-11-23 Daniel Berlin - - * tree-ssa-alias.c (tree_pointer_compare): New function. - (compact_name_tags): New function. - (group_aliases): Call compact_name_tags. - -2006-11-23 Manuel Lopez-Ibanez - - * real.h (real_isinteger): Declare. - * real.c (real_isinteger): Define. - * builtins.c (integer_valued_real_p): Use it. - -2006-11-23 Manuel Lopez-Ibanez - - PR c/9072 - * c.opt (Wtraditional-conversion): New. - (Wconversion): Update description. - * c-typeck.c (convert_arguments): Warnings for prototypes causing - type conversions different from what would happen in the absence - of prototype are now handled by Wtraditional-conversion. - * doc/invoke.texi (Wtraditional-conversion): New. - (Wconversion): Update description. - * doc/trouble.texi (Wconversion): Replace Wconversion by - Wtraditional-conversion. - -2006-11-23 Andrew Pinski - - * predict.c (tree_estimate_probability): Check to make - sure current_loops is non null before calling flow_loops_dump. - -2006-11-23 Bernd Schmidt - - * var-tracking.c (emit_note_insn_var_location): Revert previous patch. - -2006-11-23 David Ung - - * config/mips/mips.h (ISA_HAS_FP4): Add MIPS32R2 + 64bit fpu - combination. - (ISA_HAS_MXHC1): True if ISA supports mfhc1 and mthc1 opcodes. - (ASM_SPEC): Pass along -mfp32 and -mfp64. - * config/mips/mips.c (mips_split_64bit_move): Use gen_mthc1 to set - high part of FP register when in 64-bit FP register mode. Similarly - use gen_mfhc1 to load high part of FP register. - (override_options): Allow -mgp32 and -mfp64 combination if - ISA_HAS_MXHC1 (currently for O32 only). - (mips_cannot_change_mode_class): If floating-point registers are - bigger than word size. disallow conversion of float register from a - large integer mode to a float mode smaller than the float register - size. - (mips_class_max_nregs): Handle float registers case seperately. - * config/mips/mips.md (define_constants): Add UNSPEC_MFHC1, - UNSPEC_MTHC1. - (movdi_32bit): Use !TARGET_FLOAT64 in condition pattern. - (movdf_hardfloat_32bit): Similarly. - (movdi_gp32_fp64): New DImode pattern for MIPS32R2 which optionally - support a full 64-bit fpu. - (mthc1): New pattern to generate MTHC1 instruction. - (mfhc1): New pattern to generate MFHC1 instruction. - * doc/invoke.texi (MIPS Options): Document the -mgp32 -mfp64 - option for the MIPS32R2 and mention its use under O32 ABI. - -2006-11-23 Bernd Schmidt - - * var-tracking.c (emit_note_insn_var_location): Take care not to - cause verify_flow_info failures. - -2006-11-22 Daniel Berlin - - * tree-ssa-structalias.c: Remove edge weights in favor of just - processing them as complex constraints. - (struct constraint_graph): Remove weighted succs and preds. Rename - nonweighted succs and preds. - (constraint_edge): Removed. - (constraint_edge_t): Ditto. - (constraint_edge_pool): Ditto. - (new_constraint_edge): Ditto. - (constraint_edge_equal): Ditto. - (constraint_edge_less): Ditto. - (constraint_edge_vec_find): Ditto. - (erase_self_graph_edge): Ditto. - (add_graph_edge): Removed. - (get_graph_weights): Ditto. - (allocate_graph_weights): Ditto. - (valid_weighted_graph_edge): Ditto - (bitmap_other_than_zero_bit_set): Ditto. - (int_add_graph_edge): Renamed to add_graph_edge. - (clear_edges_for_node): Remove support for weighted edges. - (merge_graph_nodes): Ditto. - (valid_graph_edge): Ditto. - (build_constraint_graph): Ditto. - (scc_visit): Ditto. - (collapse_nodes): Ditto. - (process_unification_queue): Ditto. - (topo_visit): Ditto. - (do_ds_constraint): Ditto. - (perform_var_subsitution): Ditto. - (solve_graph): Ditto. - (init_alias_vars): Ditto. - (delete_points_to_sets): Ditto. - (do_complex_constraint): Support offsetted copies here. - -2006-11-23 Ulrich Weigand - - * config/spu/spu_intrinsics.h (SPU_RdEventStatMask): Rename to - SPU_RdEventMask. - * config/spu/spu_mfcio.h (spu_read_event_mask): Update. - - * config/spu/spu_mfcio.h (struct mfc_list_element): Change width - of size bitfield. - -2006-11-23 Ben Elliston - - * config/spu/spu-elf.h (LIB_SPEC): Do not link with -lc_p. - -2006-11-23 Zdenek Dvorak - - PR tree-optimization/29921 - * fold-const.c (operand_equal_p): Without HONOR_SIGNED_ZEROS, consider - signed and unsigned zero equal. - -2006-11-22 Peter Bergner - - * config/rs6000/rs6000.c (get_store_dest): New. - (adjacent_mem_locations): Use get_store_dest() to get - the rtl of the store destination. - -2006-11-22 Joseph Myers - - * config/rs6000/spe.md (SPE64): New mode macro. - (mov_sidf_e500_subreg0): Change to mov_si_e500_subreg0. Add - memory load. - (mov_si_e500_subreg0_2): New. - (mov_sidf_e500_subreg4): Change to mov_si_e500_subreg4. Add - memory load. - (mov_si_e500_subreg4_2): New. - * config/rs6000/predicates.md (input_operand): Do not allow - invalid E500 subregs. - (rs6000_nonimmediate_operand): Check for invalid E500 subregs also - if TARGET_SPE. - * config/rs6000/rs6000.c (invalid_e500_subreg): Check for subregs - involving DFmode if TARGET_E500_DOUBLE. Check for subregs - involving vector modes if TARGET_SPE. - -2006-11-22 Kaz Kojima - - Revert - 2006-11-12 Kaz Kojima - * reorg.c (emit_delay_sequence): Copy the delay slot insn. - -2006-11-22 Bernd Schmidt - - * config/bfin/predicates.md (d_register_operand, mem_p_address_operand, - mem_i_address_operand): New predicates. - * config/bfin/bfin.c (bfin_issue_rate): New function. - (TARGET_SCHED_ISSUE_RATE): New macro. - * config/bfin/bfin.md (addrtype): New attribute. - (slot0, slot1, slot2, store, pregs): New cpu_units. - (core): Now a define_reservation. - (alu): Remove some insn types from this reservation. - (dsp32, load32, loadp, loadi, store32, storep, storei, multi): New - insn reservations. - (dummy reservation): Don't trigger for mcld insns. - (absence_sets): Two new absence sets to enforce slot ordering. - (popsi_insn): Set addrtype. - -2006-11-22 Ira Rosen - - * doc/c-tree.texi: Document new tree codes. - * doc/md.texi: Document new optabs. - * tree-pretty-print.c (dump_generic_node): Handle print of new tree - codes. - * optabs.c (optab_for_tree_code, init_optabs): Handle new optabs. - * optabs.h (optab_index): Add new. - (vec_extract_even_optab, vec_extract_odd_optab, - vec_interleave_high_optab, vec_interleave_low_optab): New optabs. - * genopinit.c (vec_extract_even_optab, vec_extract_odd_optab, - vec_interleave_high_optab, vec_interleave_low_optab): Initialize - new optabs. - * expr.c (expand_expr_real_1): Add implementation for new tree codes. - * tree-vectorizer.c (new_stmt_vec_info): Initialize new fields. - * tree-vectorizer.h (stmt_vec_info): Add new fields for interleaving - along with macros for their access. - * tree-data-ref.h (first_location_in_loop, data_reference): Update - comment. - * tree-vect-analyze.c (toplev.h): Include. - (vect_determine_vectorization_factor): Fix indentation. - (vect_insert_into_interleaving_chain, - vect_update_interleaving_chain, vect_equal_offsets): New functions. - (vect_analyze_data_ref_dependence): Add argument for interleaving - check. Check for interleaving if it's true. - (vect_check_dependences): New function. - (vect_analyze_data_ref_dependences): Call vect_check_dependences for - every ddr. Call vect_analyze_data_ref_dependence with new argument. - (vect_update_misalignment_for_peel): Update for interleaving. - (vect_verify_datarefs_alignment): Check only first data-ref for - interleaving. - (vect_enhance_data_refs_alignment): Update for interleaving. Check - only first data-ref for interleaving. - (vect_analyze_data_ref_access): Check interleaving, update - interleaving data. - (vect_analyze_data_refs): Call compute_data_dependences_for_loop - with different parameters. - * tree.def (VEC_EXTRACT_EVEN_EXPR, VEC_EXTRACT_ODD_EXPR, - VEC_INTERLEAVE_HIGH_EXPR, VEC_INTERLEAVE_LOW_EXPR): New tree codes. - * tree-inline.c (estimate_num_insns_1): Add cases for new codes. - * tree-vect-transform.c (vect_create_addr_base_for_vector_ref): - Update step in case of interleaving. - (vect_strided_store_supported, vect_permute_store_chain): New - functions. - (vectorizable_store): Handle strided stores. - (vect_strided_load_supported, vect_permute_load_chain, - vect_transform_strided_load): New functions. - (vectorizable_load): Handle strided loads. - (vect_transform_stmt): Add argument. Handle strided stores. Check - that vectorized stmt exists for patterns. - (vect_gen_niters_for_prolog_loop): Update calculation for - interleaving. - (vect_transform_loop): Remove stmt_vec_info for strided stores after - whole chain vectorization. - * config/rs6000/altivec.md (UNSPEC_EXTEVEN, UNSPEC_EXTODD, - UNSPEC_INTERHI, UNSPEC_INTERLO): New constants. - (vpkuhum_nomode, vpkuwum_nomode, vec_extract_even, - vec_extract_odd, altivec_vmrghsf, altivec_vmrglsf, - vec_interleave_high, vec_interleave_low): Implement. - -2006-11-22 Steven Bosscher - - * cse.c (enum taken): Remove PATH_AROUND. - (addr_affects_sp_p, invalidate_skipped_set, - invalidate_skipped_block): Remove. - (cse_end_of_basic_block): Remove skip_blocks and related code. - (cse_main): Don't test for flag_cse_skip_blocks. - Update cse_end_of_basic_block call. - (cse_basic_block): Likewise. Remove PATH_AROUND case. Remove - code to lengthen the path if a jump was simplified. - -2006-11-22 Zdenek Dvorak - - PR rtl-optimization/29924 - * loop-unroll.c (split_edge_and_insert): Handle the case insns is NULL. - (unroll_loop_runtime_iterations): Assert that the argument passed to - split_edge_and_insert is not NULL. - * loop-doloop.c (add_test): Ditto. - -2006-11-22 Zdenek Dvorak - - * tree-loop-linear.c (linear_transform_loops): Use single_exit accessor - functions. - * tree-ssa-loop-niter.c (loop_only_exit_p): Ditto. - * cfgloopmanip.c (update_single_exits_after_duplication, - update_single_exit_for_duplicated_loop, loop_version): Ditto. - * tree-scalar-evolution.c (get_loop_exit_condition, - get_exit_conditions_rec, loop_closed_phi_def, - number_of_iterations_in_loop, scev_const_prop): Ditto. - * tree-ssa-loop-ivopts.c (single_dom_exit): Ditto. - * modulo-sched.c (generate_prolog_epilog, loop_canon_p, sms_schedule): - Ditto. - * tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variables): - Ditto. - * tree-vectorizer.c (slpeel_update_phis_for_duplicate_loop, - slpeel_update_phi_nodes_for_guard1, slpeel_update_phi_nodes_for_guard2, - slpeel_make_loop_iterate_ntimes, - slpeel_tree_duplicate_loop_to_edge_cfg, slpeel_can_duplicate_loop_p, - slpeel_verify_cfg_after_peeling, slpeel_tree_peel_loop_to_edge): - Ditto. - * tree-if-conv.c (if_convertible_loop_p): Ditto. - * tree-vect-analyze.c (vect_analyze_operations, vect_stmt_relevant_p, - vect_analyze_loop_form): Ditto. - * lambda-code.c (lambda_loopnest_to_gcc_loopnest, exit_phi_for_loop_p, - can_convert_to_perfect_nest, perfect_nestify): Ditto. - * tree-vect-transform.c (vect_create_epilog_for_reduction, - vect_update_ivs_after_vectorizer, vect_do_peeling_for_loop_bound, - vect_transform_loop): Ditto. - * cfgloop.c (mark_single_exit_loops, verify_loop_structure): Ditto. - (single_exit, set_single_exit): New functions. - * cfgloop.h (struct loop): Rename single_exit field to single_exit_. - (single_exit, set_single_exit): Declare. - * doc/loop.texi: Undocument single_exit field. Document single_exit - accessor function. - -2006-11-22 Zdenek Dvorak - - PR tree-optimization/29902 - * tree-ssa-loop-manip.c (can_unroll_loop_p): Return false if - any involved ssa name appears in abnormal phi node. - -2006-11-21 Bob Wilson - - * config/xtensa/xtensa.c (xtensa_char_to_class): Delete. - (xtensa_const_ok_for_letter_p): Delete. - (xtensa_extra_constraint): Delete. - (override_options): Delete xtensa_char_to_class initialization. - * config/xtensa/xtensa.h (REG_CLASS_FROM_LETTER): Delete. - (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete. - (EXTRA_CONSTRAINT): Delete. - * config/xtensa/xtensa.md: Include constraints.md. - (call_internal): Combine alternatives. - (call_value_internal): Likewise, and remove invalid constraints. - * config/xtensa/constraints.md: New file. - * config/xtensa/xtensa-protos.h (xtensa_const_ok_for_letter_p): Delete. - (xtensa_extra_constraint): Delete. - * doc/md.texi (Machine Constraints): Refer to constraints.md for - Xtensa constraints. - -2006-11-21 Janis Johnson - - * config/dfp-bits.c (DFP_TO_INT): Remove code to saturate result - of conversion that doesn't fit. - - * config/dfp-bit.h (CONTEXT_TRAPS, CONTEXT_ERRORS, DFP_RAISE): Delete. - * config/dfp-bit.c (dfp_unary_op, dfp_binary_op, dfp_compare_op, - DFP_TO_DFP, INT_TO_DFP, BFP_TO_DFP): Remove calls to DFP_RAISE. - - * config/dfp-bit.c (dfp_binary_func): Fix typedef. - -2006-11-21 Douglas Gregor - - * c-common.h (enum rid): Add RID_STATIC_ASSERT. - -2006-11-21 Richard Guenther - - * tree-vectorizer.h (NUM_PATTERNS): Increase. - * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Add - vect_recog_pow_pattern. - (vect_recog_pow_pattern): New function. - -2006-11-21 Bernd Schmidt - - * config/bfin/bfin.opt (mstack-check-l1): New. - * doc/invoke.texi (Blackfin Options): Document it. - * config/bfin/bfin.c (bfin_expand_prologue): Generate code to use - stack bounds in L1 memory if the new option is enabled. - (override_options): Don't allow combinations of -fstack-limit and - -mstack-check-l1. - (add_to_reg): Renamed from add_to_sp. All callers changed. Lose some - dead code. - - * config/bfin/bfin.c (hard_regno_mode_ok): Only allow first 31 - regs for DImode. - (bfin_register_move_cost): Bump costs if trying to move plain - integer values through accumulators. - -2006-11-21 Ben Elliston - - * config/spu/spu.c (spu_expand_vector_init): Initialise x. - -2006-11-20 Trevor Smigiel - Russell Olsen - Dmitri Makarov - Yukishige Shibata - Nobuhisa Fujinami - Takeaki Fukuoka - Andrew Pinski - - * config.gcc: Add target for SPU. - * config/spu/constraints.md: New file. - * config/spu/crt0.c: New file. - * config/spu/crtend.c: New file. - * config/spu/crti.asm: New file. - * config/spu/crtn.asm: New file. - * config/spu/float_unsdidf.c: New file. - * config/spu/float_unssidf.c: New file. - * config/spu/predicates.md: New file. - * config/spu/spu-builtins.def: New file. - * config/spu/spu-builtins.h: New file. - * config/spu/spu-builtins.md: New file. - * config/spu/spu-c.c: New file. - * config/spu/spu-elf.h: New file. - * config/spu/spu-modes.def: New file. - * config/spu/spu-protos.h: New file. - * config/spu/spu.c: New file. - * config/spu/spu.h: New file. - * config/spu/spu.md: New file. - * config/spu/spu.opt: New file. - * config/spu/spu_internals.h: New file. - * config/spu/spu_intrinsics.h: New file. - * config/spu/spu_mfcio.h: New file. - * config/spu/t-spu-elf: New file. - * config/spu/vec_types.h: New file. - * config/spu/vmx2spu.h: New file. - * doc/contrib.texi: Document SPU contributor. - * doc/extend.texi: Document SPU extensions. - * doc/invoke.texi: Document SPU options. - * doc/md.texi: Document SPU constraints. - -2006-11-21 Zdenek Dvorak - - * cfgloopmanip.c (add_loop, duplicate_loop): Do not set level - of the loop. - * cfgloop.c (flow_loop_level_compute, flow_loops_level_compute): - Removed. - (flow_loop_dump): Do not dump loop level. - (flow_loops_find): Do not call flow_loops_level_compute. - * cfgloop.h (struct loop): Remove level field. - -2006-11-21 Zdenek Dvorak - - * tree-ssa-loop-im.c (schedule_sm, determine_lsm_ref, - hoist_memory_references, loop_suitable_for_sm, determine_lsm_loop): - Use vector of edges instead of array. - * tree-ssa-loop-niter.c (find_loop_niter, find_loop_niter_by_eval, - estimate_numbers_of_iterations_loop): Ditto. - * predict.c (predict_loops): Ditto. - * loop-unroll.c (analyze_insns_in_loop): Ditto. - * tree-ssa-threadupdate.c: Remove declaration of heap allocation for - edge vectors. - * basic-block.h: Declare heap allocation for edge vectors. - * tree-outof-ssa.c: Ditto. - * cfgloop.c (get_loop_exit_edges): Return vector of edges. - * cfgloop.h (get_loop_exit_edges): Declaration changed. - -2006-11-20 Zack Weinberg - - * gengtype.c (process_gc_options): Remove unnecessary forward decl. - Add another out parameter, "skip". - (set_gc_used_type): Adjust calls to process_gc_options. If a field - is tagged "skip", do not mark its type used. - -2006-11-20 Andrew Pinski - - PR tree-opt/25500 - * tree-sra.c (single_scalar_field_in_record_p): New function. - (decide_block_copy): Use it. - -2006-11-20 David Daney - - * config/mips/linux-unwind.h (mips_fallback_frame_state): Adjust - PC to point to following instruction. - -2006-11-20 Anatoly Sokolov - - PR target/18553 - PR target/29449 - * config/avr/avr.h (OBJECT_FORMAT_ELF): Define. - - * config/avr/avr.h (DWARF2_DEBUGGING_INFO): Define. - -2006-11-20 J"orn Rennecke - - * config.gcc (sh*-superh-elf): Add t-superh to tmake_file. - Add sh/superh.h to tm_file. - -2006-11-20 Carlos O'Donell - Mark Mitchell - - * cppdefault.c: Define cpp_PREFIX, cpp_PREFIX_len, and - gcc_exec_prefix. - (cpp_relocated): New function. - * cppdefault.h: Declare cpp_PREFIX, cpp_PREFIX_len, gcc_exec_prefix - and cpp_relocated. - * Makefile.in (PREPROCESSOR_DEFINES): Add -DPREFIX option. - * c-incpath.c (add_standard_paths): Call cpp_relocated. If relocated, - replace configured prefix with gcc_exec_prefix. - -2006-11-20 Bernd Schmidt - - * config/bfin/bfin.h (LEGITIMATE_CONSTANT_P): Call - bfin_legitimate_constant_p. - * config/bfin/bfin.md (movsi expander): Check return value of - expand_mvoe. - * config/bfin/bfin-protos.h (bfin_legitimate_constant_p): Declare. - (expand_move): Adjust prototype. - * config/bfin/bfin.c (expand_move): Now returns bool. Handle - invalid constants specially. - (bfin_cannot_force_const_mem, bfin_legitimate_constant_p): New - functions. - (TARGET_CANNOT_FORCE_CONST_MEM): New macro. - - * config/bfin/bfin.md (call_symbol, call_value_symbol, sibcall_symbol, - sibcall_value_symbol): Allow these patterns if - TARGET_LEAF_ID_SHARED_LIBRARY. - * config/bfin/bfin.c (bfin_expand_call): Allow them here as well. - (override_options): Turn on id shared library flags if -msep-data, - but disallow the combination of these options on the command line. - * config/bfin/bfin.h (TARGET_LEAF_ID_SHARED_LIBRARY, MASK_SEP_DATA - MASK_LEAF_ID_SHARED_LIBRARY, TARGET_SEP_DATA): New macros. - (DRIVER_SELF_SPECS): -mleaf-id-shared-library implies - -mid-shared-library. - (TARGET_SWITCHES): Add -mleaf-id-shared-library and -msep-data. - * doc/invoke.texi (Blackfin Options): Document new switches. - - * config/bfin/bfin.c (bfin_function_ok_for_sibcall): Handle some - edge cases with local functions and TARGET_ID_SHARED_LIBRARY. - - * tree-ssa-loop-ivopts.c (get_address_cost): Do not artificially - inflate costs for addresses with an out-of-bounds address. - -2006-11-19 Andrew Pinski - - PR rtl-opt/29879 - * fwprop.c (loops): Remove. - (forward_propagate_into): Use current_loops instead of - loops. - (fwprop_init): Call loop_optimizer_init instead of - flow_loops_find. - (fwprop_done): Call loop_optimizer_finalize instead of - flow_loops_free. - (fwprop): Use current_loops instead of loops. - -2006-11-19 Gabriel Dos Reis - - PR c++/8586 - * c-opts.c (c_common_handle_option): Enable -Wwrite-strings if -Wall. - -2006-11-19 John David Anglin - - PR target/29114 - * pa.c (emit_move_sequence): Don't split constants with PLUS for modes - larger than BITS_PER_WORD. - -2006-11-18 John David Anglin - - PR fortran/27885 - PR middle-end/28176 - * stor-layout.c (set_sizetype): Limit precision of *bitsizetypes types - to MAX_FIXED_MODE_SIZE. - -2006-11-18 Kaveh R. Ghazi - - * builtins.c (integer_valued_real_p): Handle fmin/fmax. - (fold_builtin_fmin_fmax): New. - (fold_builtin_1): Use it. - - * fold-const.c (fold_strip_sign_ops): Handle copysign. - -2006-11-18 Richard Guenther - - * config/i386/i386.c (ix86_builtins): New array for ix86 - builtin function decls. - (def_builtin): New function. - (def_builtin_const): Likewise. - (ix86_init_mmx_sse_builtins): Mark sqrt and cvt builtins const. - -2006-11-18 Vladimir Makarov - - * doc/invoke.texi (core2): Add item. - - * config/i386/i386.h (TARGET_CORE2, TARGET_CPU_DEFAULT_core2): New - macros. - (TARGET_CPU_CPP_BUILTINS): Add code for core2. - (TARGET_CPU_DEFAULT_generic): Change value. - (TARGET_CPU_DEFAULT_NAMES): Add core2. - (processor_type): Add new constant PROCESSOR_CORE2. - - * config/i386/i386.md (cpu): Add core2. - - * config/i386/i386.c (core2_cost): New initialized variable. - (m_CORE2): New macro. - (x86_use_leave, x86_push_memory, x86_movx, x86_unroll_strlen, - x86_deep_branch, x86_partial_reg_stall, x86_use_simode_fiop, - x86_use_cltd, x86_promote_QImode, x86_sub_esp_4, x86_sub_esp_8, - x86_add_esp_4, x86_add_esp_8, x86_integer_DFmode_moves, - x86_partial_reg_dependency, x86_memory_mismatch_stall, - x86_accumulate_outgoing_args, x86_prologue_using_move, - x86_epilogue_using_move, x86_arch_always_fancy_math_387, - x86_sse_partial_reg_dependency, x86_rep_movl_optimal, - x86_use_incdec, x86_four_jump_limit, x86_schedule, - x86_pad_returns): Add m_CORE2. - (override_options): Add entries for Core2. - (ix86_issue_rate): Add case for Core2. - -2006-11-18 Aldy Hernandez - - * doc/invoke.texi: Fix mno-isel typo. - -2006-11-18 Joseph Myers - - * config/rs6000/spe.md (movv4hi_internal): Add alternative for - easy vector constant loads. - -2006-11-18 Joseph Myers - - * config/rs6000/rs6000.h (TARGET_NO_LWSYNC): Define. - * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define - __NO_LWSYNC__ if TARGET_NO_LWSYNC. - * config/rs6000/sync.md (lwsync): Emit plain sync if - TARGET_NO_LWSYNC. - -2006-11-17 DJ Delorie - - * reload1.c (reloads_unique_chain): New. - (reloads_conflict): Call it. - -2006-11-17 Bob Wilson - - * config/xtensa/predicates.md (addsubx_operand): New. - * config/xtensa/xtensa.c (xtensa_emit_branch): New. - (xtensa_emit_bit_branch): New. - (xtensa_emit_movcc): New. - * config/xtensa/xtensa.md (any_minmax): New code macro. - (minmax): New code attribute. - (any_cond, any_scc, any_scc_sf): New code macros. - (*addx2, *addx4, *addx8): Delete. - (*addx): New. - (*subx2, *subx4, *subx8): Delete. - (*subx): New. - (sminsi3, uminsi3, smaxsi3, umaxsi3): Use any_minmax macro. - (beq, bne, bgt, bge, blt, ble, bgtu, bgeu, bltu, bleu): Use any_cond. - (*btrue, *bfalse, *ubtrue, *ubfalse): Use xtensa_emit_branch. - (*bittrue, *bitfalse): Use xtensa_emit_bit_branch. - (seq, sne, sgt, sge, slt, sle): Use any_scc macro. - (movsicc_internal0, movsicc_internal1): Use xtensa_emit_movcc. - (movsfcc_internal0, movsfcc_internal1): Likewise. - (seq_sf, slt_sf, sle_sf): Use any_scc_sf macro. - * config/xtensa/xtensa-protos.h: (xtensa_emit_branch): New. - (xtensa_emit_bit_branch): New. - (xtensa_emit_movcc): New. - (function_arg_boundary): Add missing prototype. - -2006-11-17 Bob Wilson - - * config/xtensa/xtensa.md (tstsi): Delete - -2006-11-17 Bob Wilson - - * config/xtensa/xtensa.md (entry): Do not emit .frame directive. - -2006-11-17 Bob Wilson - - * config/xtensa/elf.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define. - -2006-11-17 Bob Wilson - - * config/xtensa/lib1funcs.asm (__umulsidi3): Restore a0 on exit. - -2006-11-17 Zdenek Dvorak - - * tree-vrp.c (execute_vrp): Do not update current_loops. - * loop-unswitch.c (unswitch_loop): Do not use loop_split_edge_with. - * doc/loop.texi: Remove documentation for cancelled functions. - * tree-ssa-loop-im.c (loop_commit_inserts): Removed. - (move_computations, determine_lsm): Use bsi_commit_edge_inserts - instead. - * cfgloopmanip.c (remove_bbs): Do not update loops explicitly. - (remove_path): Ensure that in delete_basic_blocks, the loops - are still allocated. - (add_loop): Work on valid loop structures. - (loopify): Modify call of add_loop. - (mfb_update_loops): Removed. - (create_preheader): Do not update loops explicitly. - (force_single_succ_latches, loop_version): Do not use - loop_split_edge_with. - (loop_split_edge_with): Removed. - * tree-ssa-loop-manip.c (create_iv, determine_exit_conditions): - Do not use bsi_insert_on_edge_immediate_loop. - (split_loop_exit_edge, tree_unroll_loop): Do not use - loop_split_edge_with. - (bsi_insert_on_edge_immediate_loop): Removed. - * tree-ssa-loop-ch.c (copy_loop_headers): Use current_loops. Do not - use loop_split_edge_with. - * cfghooks.c: Include cfgloop.h. - (verify_flow_info): Verify that loop_father is filled iff current_loops - are available. - (redirect_edge_and_branch_force, split_block, delete_basic_block, - split_edge, merge_blocks, make_forwarder_block, duplicate_block): - Update cfg. - * cfgloopanal.c (mark_irreducible_loops): Work if the function contains - no loops. - * modulo-sched.c (generate_prolog_epilog, canon_loop): Do not use - loop_split_edge_with. - (sms_schedule): Use current_loops. - * tree-ssa-dom.c (tree_ssa_dominator_optimize): Use current_loops. - * loop-init.c (loop_optimizer_init, loop_optimizer_finalize): Set - current_loops. - (rtl_loop_init, rtl_loop_done): Do not set current_loops. - * tree-ssa-sink.c (execute_sink_code): Use current_loops. - * ifcvt.c (if_convert): Ditto. - * predict.c (predict_loops): Do not clear current_loops. - (tree_estimate_probability): Use current_loops. - (propagate_freq): Receive head of the region to propagate instead of - loop. - (estimate_loops_at_level): Do not use shared to_visit bitmap. - (estimate_loops): New function. Handle case current_loops == NULL. - (estimate_bb_frequencies): Do not allocate tovisit. Use - estimate_loops. - * tree-ssa-loop.c (current_loops): Removed. - (tree_loop_optimizer_init): Do not return loops. - (tree_ssa_loop_init, tree_ssa_loop_done): Do not set current_loops. - * tree-vectorizer.c (slpeel_update_phi_nodes_for_guard1, - slpeel_update_phi_nodes_for_guard2, slpeel_tree_peel_loop_to_edge): - Do not update loops explicitly. - * function.h (struct function): Add x_current_loops field. - (current_loops): New macro. - * tree-if-conv.c (combine_blocks): Do not update loops explicitly. - * loop-unroll.c (split_edge_and_insert): New function. - (unroll_loop_runtime_iterations, analyze_insns_in_loop): Do not - use loop_split_edge_with. - * loop-doloop.c (add_test, doloop_modify): Ditto. - * tree-ssa-pre.c (init_pre, fini_pre): Do not set current_loops. - * cfglayout.c (copy_bbs): Do not update loops explicitly. - * lambda-code.c (perfect_nestify): Do not use loop_split_edge_with. - * tree-vect-transform.c (vect_transform_loop): Do not update loops - explicitly. - * cfgloop.c (flow_loops_cfg_dump): Do not dump dfs_order and rc_order. - (flow_loops_free): Do not free dfs_order and rc_order. - (flow_loops_find): Do not set dfs_order and rc_order in loops - structure. Do not call loops and flow info verification. - (add_bb_to_loop, remove_bb_from_loops): Check whether the block - already belongs to some loop. - * cfgloop.h (struct loops): Remove struct cfg. - (current_loops, loop_split_edge_with): Declaration removed. - (loop_optimizer_init, loop_optimizer_finalize): Declaration changed. - * tree-flow.h (loop_commit_inserts, bsi_insert_on_edge_immediate_loop): - Declaration removed. - * Makefile.in (cfghooks.o): Add CFGLOOP_H dependency. - * basic-block.h (split_edge_and_insert): Declare. - * tree-cfg.c (remove_bb): Do not update loops explicitly. - -2006-11-17 Zdenek Dvorak - - PR tree-optimization/29801 - * tree-ssa-ccp.c (get_symbol_constant_value): New function. - (get_default_value): Use get_symbol_constant_value. - (set_lattice_value): ICE when the value of the constant is - changed. - (visit_assignment): Ignore VDEFs of read-only variables. - -2006-11-17 Zdenek Dvorak - - * tree-vect-transform.c (vect_create_epilog_for_reduction): Fix - formating. - (vect_generate_tmps_on_preheader, vect_update_ivs_after_vectorizer, - vect_gen_niters_for_prolog_loop): Fold the emited expressions. - -2006-11-17 Zdenek Dvorak - - * tree-ssa-alias.c (new_type_alias): Do not use offset of expr to - select subvars of var. - -2006-11-17 Jakub Jelinek - - PR middle-end/29584 - * tree-ssa-forwprop.c (simplify_switch_expr): Don't - optimize if DEF doesn't have integral type. - -2006-11-16 Mike Stump - - * config/darwin.h (LINK_COMMAND_SPEC): Don't do dwarf stuff on - pre-darwin9 system, unless the user asks for it directly. - (PREFERRED_DEBUGGING_TYPE): Likewise. - * config/i386/darwin.h (PREFERRED_DEBUGGING_TYPE): Likewise. - * config.gcc: Add suppport for darwin9.h. - * config/darwin9.h: Add. - * doc/install.texi (Specific): Clarify darwin documentation. - -2006-11-16 Richard Earnshaw - - * arm.h (CONSTANT_ALIGNMENT): Don't over-align strings when - optimizing for size. - -2006-11-16 Mike Stump - - * Makefile.in (targhooks.o): Add $(OPTABS_H). - -2006-11-16 Dirk Mueller - - * tree-vrp.c (get_value_range): Use XCNEW instead - of XNEW and memset. - (insert_range_assertions): Use XCNEWVEC instead - of XNEWVEC and memset. - (vrp_initialize): Same. - (vrp_finalize): Same. - * tree-ssa-ccp.c (ccp_initialize): Same. - * predict.c (tree_bb_level_predictions): Same. - * calls.c (expand_call): Same. - * tree-ssa-copy.c (init_copy_prop): Same. - (fini_copy_prop): Same. - * tree-ssa-alias.c (get_ptr_info): Use GGC_CNEW instead - of GGC_NEW and memset. - -2006-11-16 Eric Botcazou - - PR middle-end/26306 - * gimplify.c (gimplify_expr): Only force a load for references to - non-BLKmode volatile values. - * doc/implement-c.texi (Qualifiers implementation): Document the - interpretation of what a volatile access is. - * doc/extend.texi (C++ Extensions): Rework same documentation. - -2006-11-16 Joseph Myers - - * config/rs6000/spe.md (frob_di_df_2): Handle non-offsettable - memory operand. - -2006-11-16 Richard Earnshaw - - * arm.md (abssi2): Allow Thumb as well. Use an SImode scratch for - Thumb. - (arm_neg_abssi2): Renamed from neg_abssi2. - (thumb_abssi2, thumb_neg_abssi2): New patterns with splitters. - -2006-11-16 Uros Bizjak - - * config/i386/i386.c (ix86_function_sseregparm): Fix comment: - number of arguments passed to local functions in SSE registers is 3. - - * doc/invoke.texi (Function Attributes) [sseregparm]: Correct - number of arguments passed in SSE registers to 3. - -2006-11-16 Maxim Kuvyrkov - - PR target/29201 - * cfgrtl.c (rtl_delete_block): Move the code for getting last insn of - bb to ... - (get_last_bb_insn): ... new global function. - (basic_block.h): Declare it. - * haifa-sched.c (create_recovery_block): Use it. - -2006-11-15 H.J. Lu - - PR middle-end/29862 - * real.c (mpfr_from_real): Call mpfr_set_str before gcc_assert. - -2006-11-15 Paul Brook - - * config/arm/unwind-arm.c (_Unwind_GetDataRelBase, - _Unwind_GetTextRelBase): Move from here ... - * config/arm/pr-support.c (_Unwind_GetDataRelBase, - _Unwind_GetTextRelBase): ... To here. - -2006-11-15 Bernd Schmidt - - * tree-ssa-loop-ivopts.c (get_address_cost): Make sure memory - addresses we generate for testing are aligned. - -2006-11-15 Andrew Pinski - - PR tree-opt/29788 - * fold-const.c (fold_indirect_ref_1): Fold *&CONST_DECL down - to what is the const decl is a place holder for. - -2006-11-15 Uros Bizjak - - * config/i386/i386.opt: New target option -mx87regparm. - - * config/i386/i386.h (struct ix86_args): Add x87_nregs, x87_regno - and float_in_x87 variables. mmx_words, sse_words: Remove. - (X87_REGPARM_MAX): Define. - - * config/i386/i386.c (override_options): Error out for - -mx87regparm but no 80387 support. - (ix86_attribute_table): Add x87regparm. - (ix86_handle_cconv_attribute): Update comments for x87regparm. - (ix86_comp_type_attributes): Check for mismatched x87regparm types. - (ix86_function_x87regparm): New function. - (ix86_function_arg_regno_p): Add X87_REGPARM_MAX 80387 floating - point registers. - (init_cumulative_args): Initialize x87_nregs and float_in_x87 - variables. - (function_arg_advance): Process x87_nregs and x87_regno when - floating point argument is to be passed in 80387 register. - (function_arg): Pass XFmode arguments in 80387 registers for local - functions. Pass SFmode and DFmode arguments to local functions - in 80387 registers when flag_unsafe_math_optimizations is set. - - * reg-stack.c (convert_regs_entry): Disable NaN load for - stack registers that are used for argument passing. - - * doc/extend.texi: Document x87regparm function attribute. - * doc/invoke.texi: Document -mx87regparm. - -2006-11-15 Bernd Schmidt - - * tree-flow.h (multiplier_allowed_in_address_p): Adjust prototype. - * tree-ssa-loop-ivopts.c (multiplier_allowed_in_address_p): New - arg MODE; all callers changed. Use it to determine validity per - machine mode instead of using Pmode for all memory references. - (get_address_cost): Likewise add and use new arg MEM_MODE. - -2006-11-15 Rask Ingemann Lambertsen - J"orn Rennecke - - * combine.c (likely_spilled_retval_1): Fix masking operation. - (likely_spilled_retval_p): Use proper pattern for call to - likely_spilled_retval_1. - -2006-11-15 Bernd Schmidt - - * tree-ssa-loop-ivopts.c (determine_iv_costs): Fix formatting. - - * config/bfin/bfin.c (legitimize_pic_address): Lose dead code - that tests for CONSTANT_POOL_ADDRESS_P. - -2006-11-15 Jakub Jelinek - - PR tree-optimization/29581 - * lambda-code.c (replace_uses_equiv_to_x_with_y): Add YINIT, - REPLACEMENTS, FIRSTBSI arguments. If initial condition or - type is different between Y and USE, create a temporary - variable, initialize it at the beginning of the body bb - and use it as replacement instead of Y. - -2006-11-15 Paolo Bonzini - - PR middle-end/29753 - * gimplify.c (fold_indirect_ref_rhs): Use - STRIP_USELESS_TYPE_CONVERSION rather than STRIP_NOPS. - -2006-11-14 Richard Earnshaw - - * expmed.c (emit_store_flag_1): New function. - (emit_store_flag): Call it. If we can't find a suitable scc insn, - try a cstore insn. - * expr.c (do_store_flag): If we can't find a scc insn, try cstore. - Use do_compare_rtx_and_jump. - * arm.h (BRANCH_COST): Increase to 2 on Thumb. - * arm.md (cstoresi4): New define_expand. - (cstoresi_eq0_thumb, cstoresi_ne0_thumb): Likewise. - (cstoresi_eq0_thumb_insn, cstore_ne0_thumb_insn): New patterns. - (cstoresi_nltu_thumb, thumb_addsi3_addgeu): New patterns. - -2006-11-14 Caroline Tice - - * dwarf2out.c (debug_pubtypes_section): New static global variable. - (pubname_entry): Add DEF_VEC_O and DEF_VEC_ALLOC_O statements for - this type. - (pubname_table): Redefine as a vector. - (pubtype_table): New static global variable, defined as a vector. - (pubname_table_allocated): Remove static global variable. - (pubname_table_in_use): Remove static global variable. - (PUBNAME_TABLE_INCREMENT): Remove constant. - (size_of_pubnames): Add parameter to deal with either pubnames or - pubtypes, and change code to deal with table being a vector. - (add_pubname): Change to deal with table being a vector. - (add_pubtype): New function. - (output_pubnames): Add parameter to deal with either pubnames or - pubtypes, and change code to deal with table being a vector. - (gen_array_type_die): Add call to add_pubtype. - (gen_enumeration_type_die): Add call to add_pubtype. - (gen_struct_or_union_type_die): Add call to add_pubtype. - (gen_subroutine_type_die): Add call to add_pubtype. - (gen_typedef_die): Add call to add_pubtype. - (dwarf2out_init): Add code to initialize pubname_table and - pubtype_table vectors; also initialize debug_pubtypes_section. - (prune_unused_types): Change to deal with pubnames being a vector. - (dwarf2out_finish): Change to deal with pubnames being a vector; add - pubnames table to call to output_pubnames; Add code to output pubtypes - table if DEBUG_PUBTYPES_SECTION is defined. - * config/darwin.c (darwin_file_start): Add DEBUG_PUBTYPES_SECTION to - debugnames. - * config/darwin.h (DEBUG_PUBTYPES_SECTION): Define new global variable. - -2006-11-14 Joseph Myers - - * config/arm/arm.h (FUNCTION_ARG_ADVANCE): Only adjust - iwmmxt_nregs if TARGET_IWMMXT_ABI. - * config/arm/iwmmxt.md (movv8qi_internal, movv4hi_internal, - movv2si_internal): Support moves between core registers. - -2006-11-14 Eric Christopher - - * configure: Regenerate with autoconf 2.59. - -2006-11-14 Daniel Berlin - - Fix PR tree-optimization/27755 - - * tree-ssa-pre.c: Update comments. - (bb_bitmap_sets): Add pa_in and deferred member. - (BB_DEFERRED): New macro. - (maximal_set): New variable. - (pre_stats): Add pa_insert member. - (bitmap_set_and): Short circuit orig == dest. - (bitmap_set_subtract_values): New function. - (bitmap_set_contains_expr): Ditto. - (translate_vuses_through_block): Add phiblock argument. - (dependent_clean): New function. - (compute_antic_aux): Update for maximal_set changes. - (compute_partial_antic_aux): New function. - (compute_antic): Handle partial anticipation. - (do_partial_partial_insertion): New function. - (insert_aux): Handle partial anticipation. - (add_to_sets): Add to maximal set. - (compute_avail): Ditto. - (init_pre): Initialize maximal_set. - (execute_pre): Do partial anticipation if -O3+. - -2006-11-14 Paolo Bonzini - - PR rtl-optimization/29798 - - * fwprop.c (use_killed_between): Check that DEF_INSN dominates - TARGET_INSN before any other check. - (fwprop_init): Always calculate dominators. - (fwprop_done): Always free them. - -2006-11-14 Kaveh R. Ghazi - - * fold-const.c (fold_strip_sign_ops): Handle COMPOUND_EXPR and - COND_EXPR. - -2006-11-13 DJ Delorie - - * config/m32c/m32c.c (m32c_prepare_shift): Use a separate - temporary for intermediates. - -2006-11-13 Kaz Kojima - - * config/sh/sh.c (expand_cbranchdi4): Initialize skip_label. - (sh_optimize_target_register_callee_saved): #if 0 the code - using NOTE_INSN_LOOP_{BEG,END}. - -2006-11-13 Roger Sayle - - * fold-const.c (optimize_bit_field_compare): Recursively call - fold when simplifying non-constant comparisons between bit-fields. - -2006-11-13 Jakub Jelinek - - * configure.ac: Add changequote around __LONG_DOUBLE_MATH_OPTIONAL - test. - * configure: Rebuilt. - -2006-11-13 Andrew Pinski - - * config/rs6000/cell.md: New file. - * config/rs6000/rs6000.c (rs6000_cell_dont_microcode): New - variable. - (ppccell_cost): New cost matrix. - (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD): Define. - (rs6000_override_options): Set rs6000_always_hint to false - for cell. Also align functions/lables/loops to 8byte - for the Cell. Use PROCESSOR_CELL. - (rs6000_emit_epilogue): Rename using_mfcr_multiple to - using_mtcr_multiple. - (rs6000_variable_issue): If the insn is a nonpipelined instruction - on the Cell, return 0. - (rs6000_adjust_cost): Add Cell cost adjustments. - (is_microcoded_insn): Return true for Cell microcoded - instructions. - (is_nonpipeline_insn): New function. - (rs6000_issue_rate): Add PROCESSOR_CELL. - (rs6000_use_sched_lookahead): If Cell, then we should look ahead 8 - instructions. - (rs6000_use_sched_lookahead_guard): New function. - (rs6000_sched_reorder): Reorder the ready list, if the second - to last ready insn is a nonepipeline insn on the Cell. - * config/rs6000/rs6000.h (processor_type): Add PROCESSOR_CELL. - (ASM_CPU_SPEC): Add Cell. - * config/rs6000/rs6000.md (cpu): Add Cell. - (cell_micro): New Attr. - Include cell.md - -2006-11-13 Jakub Jelinek - - * configure.ac (ld_vers): Parse GNU ld version 2.17.50.0.3-6 20060715 - style versions. - * configure: Rebuilt. - -2006-11-13 Richard Guenther - - * config/i386/i386.c (ix86_expand_lround): Handle expand_simple_binop - return value. - (ix86_expand_lfloorceil): Likewise. - (ix86_expand_rint): Likewise. - (ix86_expand_floorceildf_32): Likewise. - (ix86_expand_floorceil): Likewise. - (ix86_expand_rounddf_32): Likewise. - (ix86_expand_truncdf_32): Likewise. - (ix86_expand_round): Likewise. - -2006-11-13 Carlos O'Donell - Mark Mitchell - - * gcc.c: Organize search path variables into $prefix relative, - and well-known native. Add comments. - (add_sysrooted_prefix): Add comment. - (process_command): If !gcc_exec_prefix add $prefix based paths. - If *cross_compile == '0', add native well-known paths. - Assert tooldir_base_prefix is always relative. - (main): If print_search_dirs, and if gcc_exec_prefix is set, - use this value for 'install:' path. - * Makefile.in: Add GCC_EXEC_PREFIX to generated site.exp. - -2006-11-13 H.J. Lu - - * config/i386/i386.c: Fix a typo in comment. - -2006-11-13 Michael Matz - - * genemit.c (gen_expand): Allocate enough memory. - -2006-11-13 Joseph Myers - - * config/arm/bpapi.h (TARGET_BPABI_CPP_BUILTINS): Define - __GXX_TYPEINFO_EQUALITY_INLINE but not - __GXX_MERGED_TYPEINFO_NAMES. - * config/arm/symbian.h (TARGET_OS_CPP_BUILTINS): Define - __GXX_MERGED_TYPEINFO_NAMES. - * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Define - __GXX_TYPEINFO_EQUALITY_INLINE. - -2006-11-13 H.J. Lu - Zdenek Dvorak - - PR tree-optimization/29680 - * tree-ssa-operands.c (access_can_touch_variable): Revert fix for - PR 14784. - -2006-11-12 Jason Merrill - Andrew Pinski - - PR middle-end/28915 - * gimplify.c (gimplify_init_constructor): Don't reduce TREE_CONSTANT - vector ctors. - * tree-cfg.c (verify_expr): Don't look into TREE_CONSTANT - vector ctors. - * expmed.c (make_tree): Handle CONST, SYMBOL_REF. - * tree.c (build_vector): Handle non-_CST elements. - -2006-11-12 Kaz Kojima - - * genemit.c (gen_insn): Call gen_exp with a non-null used - when handling multiple insns. - (gen_expand): Likewise. - * reorg.c (emit_delay_sequence): Copy the delay slot insn. - * config/sh/sh.md (ashrsi2_31+1): Copy operands[0]. - (movsi_const_16bit+1): Copy operands[1]. - (call_pcrel): Copy the call_site pattern. - (call_value_pcrel, sibcall_pcrel, GOTaddr2picreg): Likewise. - -2006-11-12 Roger Sayle - - * fold-const.c (negate_expr_p) : Correct/refine - condition for transformations. Use !HONOR_SIGN_DEPENDENT_ROUNDING - && !HONOR_SIGNED_ZEROS instead of flag_unsafe_math_optimizations. - (fold_negate_expr) : Likewise. - -2006-11-12 Daniel Berlin - - Fix PR tree-optimization/29587 - * tree-ssa-structalias.c (process_constraint): Don't - mark address taken due only to escaped vars constraint. - -2006-11-12 Michael Matz - Roger Sayle - - PR rtl-optimization/29797 - * ifcvt.c (noce_try_bitop): Correct calculation of bitnum on - BITS_BIG_ENDIAN targets. - -2006-11-12 Kaveh R. Ghazi - - * builtins.c (fold_builtin_cosh): New. - (fold_builtin_1): Use it. - * fold-const.c (negate_mathfn_p): Add llround, lround, round, - trunc to the list of "odd" functions. Also add llrint, lrint, - rint and nearbyint when flag_rounding_math is false. - -2006-11-12 Zdenek Dvorak - - * tree-flow.h (name_mappings_registered_p): Declare. - * tree-into-ssa.c (name_mappings_registered_p): New function. - * tree-cfg.c (tree_can_merge_blocks_p): Check - name_mappings_registered_p instead of need_ssa_update_p. - -2006-11-12 Zdenek Dvorak - - * tree-ssa-loop.c (tree_vectorize): Return the result of - vectorize_loops. - * tree-vectorizer.c (vectorize_loops): Return TODO_cleanup_cfg - if anything changed. - * tree-vectorizer.h (vectorize_loops): Declaration removed. - * tree-flow.h (vectorize_loops): Declaration changed. - -2006-11-12 Zdenek Dvorak - - * tree-ssa-loop-prefetch.c (schedule_prefetches): Cleanup and improve - comments. - (issue_prefetch_ref): Move assignment to write_p out of loop. - (determine_unroll_factor): Do not take PARAM_MAX_UNROLL_TIMES and - SIMULTANEOUS_PREFETCHES into account. - (loop_prefetch_arrays): Do not pass ahead to determine_unroll_factor. - * lambda-code.c (lcm): Renamed to ... - (least_common_multiple): ... and exported. - * tree-flow.h (least_common_multiple): Declare. - -2006-11-12 Zdenek Dvorak - - * Makefile.in (tree-data-ref.o): Add langhooks.h dependency. - * tree-ssa-loop-niter.c (derive_constant_upper_bound): Follow - ud-chains. Handle AND_EXPR. - (record_estimate): Record whether the estimate is realistic - and whether it is derived from a loop exit. - (record_nonwrapping_iv, idx_infer_loop_bounds, infer_loop_bounds_from_ref, - infer_loop_bounds_from_array, infer_loop_bounds_from_signedness): New - functions. - (compute_estimated_nb_iterations): Take only realistic bounds into - account. Set estimate_state. Use double_ints. - (infer_loop_bounds_from_undefined): Call infer_loop_bounds_from_array - and infer_loop_bounds_from_signedness. Do not consider basic blocks - that do not have to be always executed. - (estimate_numbers_of_iterations_loop): Set estimate_state, and use it - to determine whether to call infer_loop_bounds_from_undefined - and compute_estimated_nb_iterations. - (n_of_executions_at_most): Use double_ints. - (free_numbers_of_iterations_estimates_loop): Set estimate_state. - (substitute_in_loop_info): Do not replace in estimated_nb_iterations. - * double-int.c (double_int_to_tree): Improve comment. - (double_int_fits_to_tree_p): New function. - * double-int.h (double_int_fits_to_tree_p): Declare. - * tree-data-ref.c: Include langhooks.h. - (estimate_niter_from_size_of_data, estimate_iters_using_array): Removed. - (analyze_array_indexes): Do not call estimate_niter_from_size_of_data. - (analyze_array): Do not pass estimate_only argument to - analyze_array_indexes. - (get_number_of_iters_for_loop): Build tree from the stored double_int - value. - (get_references_in_stmt, find_data_references_in_stmt): New functions. - (find_data_references_in_loop): Use find_data_references_in_stmt. - * tree-data-ref.h (struct data_ref_loc_d): New. - (get_references_in_stmt): Declare. - (estimate_iters_using_array): Declaration removed. - * cfgloop.h (struct nb_iter_bound): Change type of bound to - double_int. Improve comments. Add is_exit and realistic - fields. - (struct loop): Changed type of estimated_nb_iterations to double_int. - Added estimate_state field. - (record_estimate): Declaration removed. - -2006-11-12 Zdenek Dvorak - - * params.c (set_param_value): Initialize the "set" field. - * params.h (struct param_info): Add "set" field. - (PARAM_SET_P): New macro. - (PREFETCH_LATENCY, SIMULTANEOUS_PREFETCHES, L1_CACHE_SIZE, - L1_CACHE_LINE_SIZE): New macros. - * toplev.c (DEFPARAM): Initialize the "set" field. - * tree-ssa-loop-prefetch.c (PREFETCH_LATENCY, - SIMULTANEOUS_PREFETCHES): Removed. - (PREFETCH_BLOCK): Use L1_CACHE_LINE_SIZE. - (tree_ssa_prefetch_arrays): Dump the values of the parameters. - * config/sparc/sparc.c: Include params.h. - (sparc_override_options): Set SIMULTANEOUS_PREFETCHES and - L1_CACHE_LINE_SIZE parameters. - * config/sparc/sparc.h (PREFETCH_BLOCK, SIMULTANEOUS_PREFETCHES): - Removed. - * config/i386/i386.h (PREFETCH_BLOCK, SIMULTANEOUS_PREFETCHES): - Removed. - * config/i386/i386.c: Include params.h. - (k8_cost): Change default value for SIMULTANEOUS_PREFETCHES. - (override_options): Set SIMULTANEOUS_PREFETCHES and - L1_CACHE_LINE_SIZE parameters. - * config/sh/sh.h (SIMULTANEOUS_PREFETCHES): Removed. - (OPTIMIZATION_OPTIONS): Set SIMULTANEOUS_PREFETCHES and - L1_CACHE_LINE_SIZE parameters. - * config/ia64/ia64.c (ia64_optimization_options): Set - SIMULTANEOUS_PREFETCHES and L1_CACHE_LINE_SIZE parameters. - * config/ia64/ia64.h (SIMULTANEOUS_PREFETCHES, PREFETCH_BLOCK): - Removed. - * params.def (PARAM_PREFETCH_LATENCY, PARAM_SIMULTANEOUS_PREFETCHES, - PARAM_L1_CACHE_SIZE, PARAM_L1_CACHE_LINE_SIZE): New params. - * doc/invoke.texi: Document new params. - -2006-11-12 Roger Sayle - - PR tree-optimization/13827 - * fold-const.c (fold_binary) : Fold (X&C) op (Y&C) - as ((X^Y)&C) op 0. - -2006-11-12 Zdenek Dvorak - - * cfgloopmanip.c (update_single_exit_for_duplicated_loop, - update_single_exit_for_duplicated_loops): New functions. - (duplicate_loop_to_header_edge): Use - update_single_exit_for_duplicated_loops. - * tree-ssa-loop-manip.c (tree_unroll_loop): Call verification - functions only with ENABLE_CHECKING. - -2006-11-12 Andreas Schwab - - * except.c (sjlj_emit_function_enter): Remove unused variable. - -2006-11-11 Roger Sayle - - * fold-const.c (int_binop_types_match_p): New function. - (size_binop): Relax constraint that both arguments must both have - exactly the same sizetype type. Instead use int_binop_types_match_p. - (size_diffop): Likewise. - - (make_range): Use build_int_cst instead of fold_convert. - (fold_cond_expr_with_comparison): Use build_int_cst to construct - integer constants of the correct type. - (fold_div_compare): Likewise. - (fold_single_bit_test): Likewise. - (fold_binary): Likewise. - * stor-layout.c (layout_type) : Ensure that TYPE_SIZE - has type bitsizetype and TYPE_SIZE_UNIT has type sizetype. - -2006-11-11 Andrew Pinski - - PR rtl-opt/28812 - * alias.c (fixed_scalar_and_varying_struct_p): Don't return a - non null value if the struct memory access is in the 0th - aliasing set. - -2006-11-12 Jie Zhang - - Revert - 2006-11-11 Jie Zhang - * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define __bfin__ - and __BFIN__. - - * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Use builtin_define_std - instead of builtin_define for bfin and BFIN. - -2006-11-11 Jie Zhang - - * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define __bfin__ - and __BFIN__. - -2006-11-11 Jan Hubicka - - * extend.texi (__builtin_expect): We no longer require second argument - to be constant. - * gengtype.c (adjust_field_rtx_def): Drop NOTE_INSN_EXPECTED_VALUE. - * builtins.c (expand_builtin_expect): Simplify. - (expand_builtin_expect_jump): Kill. - * final.c (final_scan_insn): Do not skip the removed notes. - * insn-notes.def (LOOP_BEG, LOOP_END, REPEATED_LINE_NUMBER, - EXPECTED_VALUE): Remove. - * dojump.c (do_jump): Do not care about __builtin_expect. - * predict.c (expected_value_to_br_prob): Kill. - * function.c (expand_function_end): Do not expand - NOTE_INSN_REPEATED_LINE_NUMBER. - * print-rtl.c (print_rtx): Do not pretty print the removed notes. - * expect.c (sjlj_emit_function_enter): Emit directly branch probability. - * cfgexpand.c (add_reg_br_prob_note): Export. - * cfgcleanup.c (rest_of_handle_jump2): Do not call - expected_value_to_br_prob. - * cfglayout.c (duplicate_insn_chain): Do not deal with removed notes. - * rtl.h (add_reg_br_prob_note): Declare. - -2006-11-11 Kaveh R. Ghazi - - * tree-pretty-print.c (dump_generic_node): Print sign of Inf. - -2006-11-11 Jan Hubicka - - * predict.c (predict_loops): Kill RTL variant. - -2006-11-11 Jan Hubicka - - * tree-pass.h (pass_purge_lineno_notes): Remove declaration. - * modulo-sched.c (find_line_note): Remove. - (loop_canon_p): Do not worry about line number notes. - (sms_schedule): Likewise. - * cse.c (cse_main): Likewise. - * regmove.c (fixup_match_1): Likewise - * function.c (emit_return_info_block): Likewise. - (expand_function_end): Likewise. - (thread_prologue_an_epilogue_insns): Likewise. - * cfgrtl.c (try_redirect_by_replacing_jump, rtl_tidy_fallthru_edge): - Likewise. - * emit-rtl.c (find_line_note, emit_insn_after_with_line_notes, - emit_note_copy_after): Kill. - (emit_note_copy): Do not worry about line numbers. - * jump.c (purge_line_number_notes): Kill. - (pass_purge_lineno_notes): Kill. - * cfgcleanup.c (rest_of_handle_jump2): Kill purge_line_number_notes - call. - * rtl.h (emit_note_copy_after, emit_insn_after_with_line_notes): Kill. - * passes.c (init_optimization_passes): Don't purge_lineno_notes. - * sched-ebb.c (schedule_ebbs): Don't do rm_redundant_line_notes. - * tree-pass.h (pass_purge_lineno_notes): Kill. - * sched-ebb.c (schedule_ebb): Don't rm_line_notes, - rm_redundant_line_notes. - * sched-rgb.c (schedule_region): Don't rm_line_notes, - rm_redundant_line_notes. - * sched-int.h (rm_line_notes, rm_redundant_line_notes): Kill. - * haifa-sched.c: Update comment about handling notes. - (unlink_line_notes): Kill. - (rm_line_notes): Kill. - (save_line_notes): Simplify. - (rm_redundant_line_notes): Kill. - -2006-11-11 Richard Guenther - - * tree.def (FIX_CEIL_EXPR, FIX_FLOOR_EXPR, FIX_ROUND_EXPR): - Remove unused tree codes. - * tree-vrp.c (extract_range_from_unary_expr): Remove handling - of FIX_CEIL_EXPR, FIX_FLOOR_EXPR and FIX_ROUND_EXPR. - * tree-pretty-print.c (dump_generic_node, op_prio): Likewise. - * tree.c (stabilize_reference): Likewise. - * fold-const.c (fold_convert_const_int_from_real, operand_equal_p, - fold_unary): Likewise. - * tree-gimple.c (is_gimple_cast): Likewise. - * dwarf2out.c (loc_descriptor_from_tree_1): Likewise. - * expr.c (expand_expr_real_1): Likewise. - * tree-eh.c (tree_could_trap_p): Likewise. - * gimplify.c (gimplify_expr): Likewise. - * tree-inline.c (estimate_num_insns_1): Likewise. - * tree-cfg.c (verify_expr): Likewise. - -2006-11-11 Zdenek Dvorak - - * tree-ssa-loop.c (pass_loop_prefetch): Change name to aprefetch. - * tree-ssa-loop-prefetch.c (dump_mem_ref): Fix target file. - (tree_ssa_prefetch_arrays): Do not dump for removed loops. - -2006-11-11 Richard Sandiford - - PR middle-end/27528 - * stmt.c (expand_asm_operands): Use EXPAND_INITIALIZER if the - constraints accept neither registers or memories. - -2006-11-11 Jie Zhang - - * config/bfin/bfin.h (FUNCTION_PROFILER): Don't use LABELNO. - (NO_PROFILE_COUNTERS): Define as 1. - -2006-11-10 Roger Sayle - - * fold-const.c (operand_equal_p) : - Don't check for TREE_CONSTANT_OVERFLOW when comparing constants. - -2006-11-10 Peter Bergner - - * rtl.h (MEM_COPY_ATTRIBUTES): Copy MEM_POINTER. - -2006-11-10 Kaveh R. Ghazi - - * builtins.c (fold_builtin_cos): Use fold_strip_sign_ops(). - (fold_builtin_hypot): Likewise. - * fold-const.c (fold_strip_sign_ops): Handle "odd" builtins. - - * fold-const.c (negate_mathfn_p): Add BUILT_IN_ERF. - -2006-11-10 Roger Sayle - - * tree.c (build_int_cst_wide): Add an assertion (gcc_unreachable) - when attempting to build INTEGER_CSTs of non-integral types. - * expmed.c (make_tree): Use the correct type, i.e. the inner - type, when constructing the individual elements of a CONST_VECTOR. - -2006-11-10 Jan Hubicka - - * cse.c (cse_process_notes): Copy the propagated value. - * local-alloc.c (update_equiv_regs): Copy the memory RTX to be used - in REG_EQUIV notes. - * gcse.c (try_replace_reg): Copy the replacement. - * i386.c (emit_i387_cw_initialization): Copy stored_mode. - (assign_386_stack_local): Always return copied memory expression - * function.c (instantiate_virtual_regs_in_insn): Copy the operand - duplicates. - -2006-11-10 Jan Hubicka - - * final.c (final): Walk from first instruction. - * cfglayout.c (insn_locators_initialize): Remove line number notes. - -2006-11-10 Uros Bizjak - - PR target/29777 - * config/i386/sse.md (smulv8hi3_highpart): Change from define_insn - to define_expand. - (umulv8hi3_highpart): Ditto. - (vec_widen_smult_hi_v8hi): New expander. - (vec_widen_smult_lo_v8hi): Ditto. - -2006-11-09 Kaveh R. Ghazi - - PR middle-end/29335 - * builtins.c (do_mpfr_arg3): New. - (fold_builtin_1): Handle builtins fma, fmin and fmax. - -2006-11-09 Eric Christopher - - PR bootstrap/26892 - PR bootstrap/27814 - PR other/28994 - * configure.ac: Match powerpc*-*-darwin* for powerpc darwin checks. - * config.gcc (powerpc64-*-darwin*): New target. - * config.host: Ditto. - * config/rs6000/darwin64.h: New file. - * config/rs6000/x-darwin64: Ditto. - * config/rs6000/host-ppc64-darwin.c: Ditto. - -2006-11-09 Steve Ellcey - - * config/ia64/ia64.c (ia64_hpux_init_libfuncs): Use HP-UX millicode - routines for integer division. - -2006-11-09 Daniel Jacobowitz - - * config/arm/t-linux (LIBGCC2_DEBUG_CFLAGS): Delete. - -2006-11-09 Serge Belyshev - - PR middle-end/29726 - * fold-const.c (fold_binary) : Fix typo in variable name. - -2006-11-09 Andreas Krebbel - - * simplify-rtx.c (avoid_constant_pool_reference): Avoid calling - simplify_subreg with BLKmode outer mode. - -2006-11-08 Brooks Moses - - * doc/invoke.texi: Minor formatting fixes in option lists. - -2006-11-08 Zdenek Dvorak - - PR tree-optimization/29738 - * tree-ssa-ccp.c: Remove UNKNOWN_VAL from comments. - (ccp_lattice_t): Remove UNKNOWN_VAL. - (dump_lattice_value, ccp_lattice_meet, ccp_visit_phi_node): - Do not handle UNKNOWN_VAL. - (get_default_value): Set initial value of virtual operands to - VARYING. - (get_value): Always use get_default_value on uninitialized - operands. - (set_value_varying, surely_varying_stmt_p): New functions. - (set_lattice_value): Do not pass argument to get_value. - Do not handle UNKNOWN_VAL. - (likely_value): Follow the semantics described in the comment. - (ccp_initialize): Use surely_varying_stmt_p. Do not mark - phi nodes DONT_SIMULATE_AGAIN. - (ccp_fold): Do not pass argument to get_value. - (fold_const_aggregate_ref, visit_assignment): Ditto. Do not - handle UNKNOWN_VAL. - -2006-11-08 Andrew Pinski - - * tree-pretty-print.c (dump_generic_node) : Use - HOST_WIDE_INT_PRINT_DOUBLE_HEX instead of format buffer. - -2006-11-08 Roger Sayle - - * tree-ssa-propagate.c (set_rhs): Restructure validity tests as a - test for inclusion rather than as a test for exclusion. - * tree-ssa-ccp.c (fold_stmt_r) : Use set_rhs to modify - the condition after calling fold_binary. - * fold-const.c (fold_inf_compare): Remove in_gimple_form check. - (fold_binary) : Likewise. - * builtins.c (fold_builtin_isascii): Likewise. - (fold_builtin_isdigit): Likewise. - -2006-11-08 Carlos O'Donell - - * configure.ac: Do not set PREFIX_INCLUDE_DIR if $prefix is NONE. - * configure: Regenerate. - -2006-11-08 Dorit Nuzman - - * tree-vect-analyze.c (vect_mark_relevant, vect_stmt_relevant_p): Take - enum argument instead of bool. - (vect_analyze_operations): Call vectorizable_type_promotion. - * tree-vectorizer.h (type_promotion_vec_info_type): New enum - stmt_vec_info_type value. - (supportable_widening_operation, vectorizable_type_promotion): New - function declarations. - * tree-vect-transform.c (vect_gen_widened_results_half): New function. - (vectorizable_type_promotion): New function. - (vect_transform_stmt): Call vectorizable_type_promotion. - * tree-vect-analyze.c (supportable_widening_operation): New function. - * tree-vect-patterns.c (vect_recog_dot_prod_pattern): - Add implementation. - * tree-vect-generic.c (expand_vector_operations_1): Consider correct - mode. - - * tree.def (VEC_WIDEN_MULT_HI_EXPR, VEC_WIDEN_MULT_LO_EXPR): - (VEC_UNPACK_HI_EXPR, VEC_UNPACK_LO_EXPR): New tree-codes. - * tree-inline.c (estimate_num_insns_1): Add cases for above new - tree-codes. - * tree-pretty-print.c (dump_generic_node, op_prio): Likewise. - * expr.c (expand_expr_real_1): Likewise. - * optabs.c (optab_for_tree_code): Likewise. - (init_optabs): Initialize new optabs. - * genopinit.c (vec_widen_umult_hi_optab, vec_widen_smult_hi_optab, - vec_widen_smult_hi_optab, vec_widen_smult_lo_optab, - vec_unpacks_hi_optab, vec_unpacks_lo_optab, vec_unpacku_hi_optab, - vec_unpacku_lo_optab): Initialize new optabs. - * optabs.h (OTI_vec_widen_umult_hi, OTI_vec_widen_umult_lo): - (OTI_vec_widen_smult_h, OTI_vec_widen_smult_lo, OTI_vec_unpacks_hi, - OTI_vec_unpacks_lo, OTI_vec_unpacku_hi, OTI_vec_unpacku_lo): New - optab indices. - (vec_widen_umult_hi_optab, vec_widen_umult_lo_optab): - (vec_widen_smult_hi_optab, vec_widen_smult_lo_optab): - (vec_unpacks_hi_optab, vec_unpacku_hi_optab, vec_unpacks_lo_optab): - (vec_unpacku_lo_optab): New optabs. - * doc/md.texi (vec_unpacks_hi, vec_unpacks_lo, vec_unpacku_hi): - (vec_unpacku_lo, vec_widen_umult_hi, vec_widen_umult_lo): - (vec_widen_smult_hi, vec_widen_smult_lo): New. - * doc/c-tree.texi (VEC_LSHIFT_EXPR, VEC_RSHIFT_EXPR): - (VEC_WIDEN_MULT_HI_EXPR, VEC_WIDEN_MULT_LO_EXPR, VEC_UNPACK_HI_EXPR): - (VEC_UNPACK_LO_EXPR, VEC_PACK_MOD_EXPR, VEC_PACK_SAT_EXPR): New. - - * config/rs6000/altivec.md (UNSPEC_VMULWHUB, UNSPEC_VMULWLUB): - (UNSPEC_VMULWHSB, UNSPEC_VMULWLSB, UNSPEC_VMULWHUH, UNSPEC_VMULWLUH): - (UNSPEC_VMULWHSH, UNSPEC_VMULWLSH): New. - (UNSPEC_VPERMSI, UNSPEC_VPERMHI): New. - (vec_vperm_v8hiv4si, vec_vperm_v16qiv8hi): New patterns used to - implement the unsigned unpacking patterns. - (vec_unpacks_hi_v16qi, vec_unpacks_hi_v8hi, vec_unpacks_lo_v16qi): - (vec_unpacks_lo_v8hi): New signed unpacking patterns. - (vec_unpacku_hi_v16qi, vec_unpacku_hi_v8hi, vec_unpacku_lo_v16qi): - (vec_unpacku_lo_v8hi): New unsigned unpacking patterns. - (vec_widen_umult_hi_v16qi, vec_widen_umult_lo_v16qi): - (vec_widen_smult_hi_v16qi, vec_widen_smult_lo_v16qi): - (vec_widen_umult_hi_v8hi, vec_widen_umult_lo_v8hi): - (vec_widen_smult_hi_v8hi, vec_widen_smult_lo_v8hi): New widening - multiplication patterns. - - * target.h (builtin_mul_widen_even, builtin_mul_widen_odd): New. - * target-def.h (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_EVEN): - (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_ODD): New. - * config/rs6000/rs6000.c (rs6000_builtin_mul_widen_even): New. - (rs6000_builtin_mul_widen_odd): New. - (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_EVEN): Defined. - (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_ODD): Defined. - * tree-vectorizer.h (enum vect_relevant): New enum type. - (_stmt_vec_info): Field relevant chaned from bool to enum - vect_relevant. - (STMT_VINFO_RELEVANT_P): Updated. - (STMT_VINFO_RELEVANT): New. - * tree-vectorizer.c (new_stmt_vec_info): Use STMT_VINFO_RELEVANT - instead of STMT_VINFO_RELEVANT_P. - * tree-vect-analyze.c (vect_mark_relevant, vect_stmt_relevant_p): - Replace calls to STMT_VINFO_RELEVANT_P with STMT_VINFO_RELEVANT, - and boolean variable with enum vect_relevant. - (vect_mark_stmts_to_be_vectorized): Likewise + update documentation. - * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_EVEN): New. - (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_ODD): New. - - 2006-11-08 Richard Henderson - - * config/i386/sse.md (vec_widen_umult_hi_v8hi, - vec_widen_umult_lo_v8hi): New. - (vec_widen_smult_hi_v4si, vec_widen_smult_lo_v4si, - vec_widen_umult_hi_v4si, vec_widen_umult_lo_v4si): New. - - * config/i386/i386.c (ix86_expand_sse_unpack): New. - * config/i386/i386-protos.h (ix86_expand_sse_unpack): New. - * config/i386/sse.md (vec_unpacku_hi_v16qi, vec_unpacks_hi_v16qi, - vec_unpacku_lo_v16qi, vec_unpacks_lo_v16qi, vec_unpacku_hi_v8hi, - vec_unpacks_hi_v8hi, vec_unpacku_lo_v8hi, vec_unpacks_lo_v8hi, - vec_unpacku_hi_v4si, vec_unpacks_hi_v4si, vec_unpacku_lo_v4si, - vec_unpacks_lo_v4si): New. - - 2006-11-08 Dorit Nuzman - - * tree-vect-transform.c (vectorizable_type_demotion): New function. - (vect_transform_stmt): Add case for type_demotion_vec_info_type. - (vect_analyze_operations): Call vectorizable_type_demotion. - * tree-vectorizer.h (type_demotion_vec_info_type): New enum - stmt_vec_info_type value. - (vectorizable_type_demotion): New function declaration. - * tree-vect-generic.c (expand_vector_operations_1): Consider correct - mode. - - * tree.def (VEC_PACK_MOD_EXPR, VEC_PACK_SAT_EXPR): New tree-codes. - * expr.c (expand_expr_real_1): Add case for VEC_PACK_MOD_EXPR and - VEC_PACK_SAT_EXPR. - * tree-iniline.c (estimate_num_insns_1): Likewise. - * tree-pretty-print.c (dump_generic_node, op_prio): Likewise. - * optabs.c (optab_for_tree_code): Likewise. - - * optabs.c (expand_binop): In case of vec_pack_*_optabs the mode - compared against the predicate of the result is not 'mode' (the input - to the function) but a mode with half the size of 'mode'. - (init_optab): Initialize new optabs. - * optabs.h (OTI_vec_pack_mod, OTI_vec_pack_ssat, OTI_vec_pack_usat): - New optab indices. - (vec_pack_mod_optab, vec_pack_ssat_optab, vec_pack_usat_optab): New - optabs. - * genopinit.c (vec_pack_mod_optab, vec_pack_ssat_optab): - (vec_pack_usat_optab): Initialize new optabs. - * doc/md.texi (vec_pack_mod, vec_pack_ssat, vec_pack_usat): New. - * config/rs6000/altivec.md (vec_pack_mod_v8hi, vec_pack_mod_v4si): New. - - 2006-11-08 Richard Henderson - - * config/i386/sse.md (vec_pack_mod_v8hi, vec_pack_mod_v4si): - (vec_pack_mod_v2di, vec_interleave_highv16qi, vec_interleave_lowv16qi): - (vec_interleave_highv8hi, vec_interleave_lowv8hi): - (vec_interleave_highv4si, vec_interleave_lowv4si): - (vec_interleave_highv2di, vec_interleave_lowv2di): New. - - 2006-11-08 Dorit Nuzman - - * tree-vect-transform.c (vectorizable_reduction): Support multiple - datatypes. - (vect_transform_stmt): Removed redundant code. - - 2006-11-08 Dorit Nuzman - - * tree-vect-transform.c (vectorizable_operation): Support multiple - datatypes. - - 2006-11-08 Dorit Nuzman - - * tree-vect-transform.c (vect_align_data_ref): Removed. - (vect_create_data_ref_ptr): Added additional argument - ptr_incr. - Updated function documentation. Return the increment stmt in ptr_incr. - (bump_vector_ptr): New function. - (vect_get_vec_def_for_stmt_copy): New function. - (vect_finish_stmt_generation): Create a stmt_info to newly created - vector stmts. - (vect_setup_realignment): Call vect_create_data_ref_ptr with additional - argument. - (vectorizable_reduction, vectorizable_assignment): Not supported yet if - VF is greater than the number of elements that can fit in one vector - word. - (vectorizable_operation, vectorizable_condition): Likewise. - (vectorizable_store, vectorizable_load): Support the case that the VF - is greater than the number of elements that can fit in one vector word. - (vect_transform_loop): Don't fail in case of multiple data-types. - * tree-vect-analyze.c (vect_determine_vectorization_factor): Don't fail - in case of multiple data-types; the smallest type determines the VF. - (vect_analyze_data_ref_dependence): Don't record datarefs as same_align - if they are of different sizes. - (vect_update_misalignment_for_peel): Compare misalignments in terms of - number of elements rather than number of bytes. - (vect_enhance_data_refs_alignment): Fix/Add dump printouts. - (vect_can_advance_ivs_p): Fix a dump printout - -2006-11-07 Eric Christopher - - * libgcc2.c (__bswapdi2): Rename from bswapDI2. - (__bswapsi2): Ditto. - * libgcc2.h: Remove transformation of bswap routines. - * config/i386/i386.md (bswapsi2): New. - (bswapdi2): Ditto. - -2006-11-07 Jakub Jelinek - - * c-common.c (c_common_attributes): Add gnu_inline attribyte. - (handle_gnu_inline_attribute): New function. - * c-decl.c (diagnose_mismatched_decls): Handle gnu_inline attribute. - (merge_decls, start_decl, start_function): Likewise. - * doc/extend.texi: Document gnu_inline attribute. - -2006-11-07 Steve Ellcey - - PR other/25028 - * config/ia64/t-hpux (LIB1ASMFUNCS): Filter out _fixtfdi, - _fixunstfdi, and _floatditf - -2006-11-06 Anatoly Sokolov - - * config/avr/avr-protos.h (mask_one_bit_p, const_int_pow2_p): Remove - prototype. - * config/avr/avr.c (mask_one_bit_p, const_int_pow2_p): Remove. - (output_movhi, ashlhi3_out, ashlsi3_out, ashrhi3_out, ashrsi3_out, - lshrhi3_out, lshrsi3_out): Remove unnecessary code for handling value - which start in an odd register. - -2006-11-07 Richard Sandiford - - * config/mips/mips.h (ISA_HAS_PREFETCHX): Fix typo. - -2006-11-07 Josh Conner - - * doc/invoke.texi (fstrict-aliasing): Move implementation - details... - * doc/tree-ssa.texi (Alias analysis): ...here. - -2006-11-07 Richard Guenther - - PR tree-optimization/29610 - * tree-cfgcleanup.c (cleanup_control_flow): Honor return value - of tree_purge_dead_eh_edges as it may free dominators. - - * g++.dg/other/pr29610.C: New testcase. - -2006-11-07 David Ung - - * config/mips/mips.c (mips_rtx_cost_optimize_size): New table of - costs when optimizing for size. - (override_options): Use mips_rtx_cost_optimize_size table for cost - calculations. - -2006-11-07 Jie Zhang - - * gcc.c (process_command): Treat -b as normal switch if its argument - has no dash. - -2006-11-07 David Ung - - * config/mips/mips.h (ISA_HAS_PREFETCHX): Add ISA_MIPS32R2 to the - list. - -2006-11-06 Eric Christopher - - * config.gcc: Add x86_64-darwin host support. - * config.host: Ditto. - * config/i386/darwin64.h: New file. - * config/i386/t-darwin64: Ditto. - -2006-11-06 Janis Johnson - - * gcc/doc/sourcebuild.texi (Test Directives): Add output-exists - and output-exists-not. - -2006-11-06 Andrew Pinski - - PR tree-opt/29439 - * tree-vrp.c (vrp_int_const_binop): Use the correct tree when - checking for overflow. - -2006-11-06 Jan van Dijk - - * configure.ac: Fixed typo in case statement: :: changed to ;; - -2006-11-06 Bob Wilson - - * longlong.h (__xtensa__): Add definitions for umul_ppmm, __umulsidi3, - count_leading_zeros, and count_trailing_zeros. - * config/xtensa/xtensa.c (TARGET_INIT_BUILTINS): Define. - (TARGET_FOLD_BUILTIN): Define. - (TARGET_EXPAND_BUILTIN): Define. - (xtensa_init_builtins): New. - (xtensa_fold_builtin): New. - (xtensa_expand_builtin): New. - (xtensa_rtx_costs): Add CTZ and CLZ. Adjust costs for MULT. - * config/xtensa/xtensa.h (TARGET_MUL32_HIGH): Define. - (CLZ_DEFINED_VALUE_AT_ZERO): Define. - (CTZ_DEFINED_VALUE_AT_ZERO): Define. - * config/xtensa/xtensa.md (UNSPEC_NSAU): Remove. - (any_extend): New code macro. - (u, su): New code attributes. - (mulsidi3, mulsi3_highpart, clzsi2, ctzsi2): New. - (nsau): Remove; replaced by clzsi2. - (ffssi2): Use clzsi2. - * config/xtensa/t-xtensa (LIB1ASMFUNCS): Add _umulsidi3, - _clzsi2, _ctzsi2, and _ffssi2. Rename _nsau to _clz. - * config/xtensa/lib1funcs.asm (__mulsi3): Support Mul32 option. - (__umulsidi3, __clzsi2, __ctzsi2, __ffssi2): New. - (__nsau_data): Guard with ifdef L_clz instead of L_nsau. - -2006-11-06 Vladimir Prus - - * config/arm/t-strongarm-pe: (TARGET_LIBGCC2_CFLAGS): Do no - set inhibit_libc. - * config/arm/t-strongarm-elf: Likewise. - * config/arm/t-pe: Likewise. - * config/arm/t-arm-elf: Likewise. - * config/arm/t-xscale-elf: Likewise. - * config/arm/t-arm-coff: Likewise. - * config/arm/t-xscale-coff: Likewise. - * config/arm/t-wince-pe: Likewise. - -2006-11-05 Kaz Kojima - - * config/sh/lib1funcs-4-300.asm: Guard entire file with - #if !__SHMEDIA__ . - -2006-11-05 Jakub Jelinek - - PR middle-end/29695 - * fold-const.c (fold_ternary): Fix A < 0 ? : 0 - simplification. - -2006-11-04 Uros Bizjak - - PR target/26915 - * config/i386/i386.c (standard_80387_constant_p): Treat -0.0 and -1.0 - as a valid 80387 constant. - (standard_80387_constant_opcode): Return "#" for -0.0 and -1.0. - * config/i386/i386.md (unnamed splitter): Split the load of - constant -0.0 or -1.0 into the load of 0.0 or 1.0, followed - by negation. - -2006-11-04 Richard Earnshaw - - * arm.c (thumb_legitimate_addres_p): Allow any constant offset - from the soft-frame, argument and virtual registers. - -2006-11-04 Uros Bizjak - - * config/i386/i386.md (*movxf_nointeger, *movxf_integer): Enable - patterns for standard 80387 constants. - -2006-11-03 Paolo Bonzini - Steven Bosscher - - * fwprop.c: New file. - * Makefile.in: Add fwprop.o. - * tree-pass.h (pass_rtl_fwprop, pass_rtl_fwprop_with_addr): New. - * passes.c (init_optimization_passes): Schedule forward propagation. - * rtlanal.c (loc_mentioned_in_p): Support NULL value of the second - parameter. - * timevar.def (TV_FWPROP): New. - * common.opt (-fforward-propagate): New. - * opts.c (decode_options): Enable forward propagation at -O2. - * gcse.c (one_cprop_pass): Do not run local cprop unless touching jumps. - * cse.c (fold_rtx_subreg, fold_rtx_mem, fold_rtx_mem_1, find_best_addr, - canon_for_address, table_size): Remove. - (new_basic_block, insert, remove_from_table): Remove references to - table_size. - (fold_rtx): Process SUBREGs and MEMs with equiv_constant, make - simplification loop more straightforward by not calling fold_rtx - recursively. - (equiv_constant): Move here a small part of fold_rtx_subreg, - do not call fold_rtx. Call avoid_constant_pool_reference - to process MEMs. - * recog.h (canonicalize_change_group): New. - - * doc/invoke.texi (Optimization Options): Document fwprop. - * doc/passes.texi (RTL passes): Document fwprop. - -2006-11-03 Geoffrey Keating - - * c-decl.c (WANT_C99_INLINE_SEMANTICS): New, set to 1. - (merge_decls): Implement WANT_C99_INLINE_SEMANTICS. - (grokdeclarator): Likewise. - -2006-11-03 Steven Bosscher - - * tree-dump.c (dump_enable_all): Rename local variable - ir_type to avoid name conflicts. - * cfgloopmanip.c (lv_adjust_loop_entry_edge): Check for IR_GIMPLE - instead of using ir_type(). - * profile.c (tree_register_profile_hooks): Likewise. - * value-prof.c (tree_register_value_prof_hooks): Likewise. - * basic-block.h (struct edge_def): Likewise. - * config/arm/arm.c (legitimize_pic_address): Likewise. - * coretypes.h (ir_type): New enum of all intermediate languages - used in GCC. - * cfghooks.c (ir_type): Rename to... - (current_ir_type): ...this. Distinguish between cfgrtl and - cfglayout mode when the current IR is RTL. Return enum ir_type. - * cfghooks.h (ir_type): Replace with current_ir_type prototype. - -2006-11-03 Paul Brook - - * config/arm/arm.c (arm_file_start): New function. - (TARGET_ASM_FILE_START): Define. - (arm_default_cpu): New variable. - (arm_override_options): Set arm_default_cpu. - -2006-11-03 David Ung - - * config/mips/mips.h (processor_type): Removed PROCESSOR_24K, add - PROCESSOR_24KC and PROCESSOR_24KF. - * config/mips/mips.c (mips_cpu_info_table): Add processor names - and aliases for 4kec/4kem/4kep/24kec/24kef/24kex/34kc/34kf/34kx. - (mips_rtx_cost_data): Add costs for the 24kc. - * config/mips/mips.md ("cpu"): Remove 24k, add 24kc and 24kf. - * config/mips/24k.md: Remove references to 24k and replace with - uses of 24kc/24kf in the appropriate reservations. - * doc/invoke.texi (MIPS Options): Updated. - -2006-11-03 J"orn Rennecke - - * config/sh/crt1.asm: Fix #ifdef indent. - -2006-11-03 J"orn Rennecke - Merged from STMicroelectronics sources: - 2006-10-06 Andrew Stubbs - * config/sh/crt1.asm (vbr_600): Add missing #if. - 2006-08-03 J"orn Rennecke - * sh.opt (mfused-madd): New option. - * sh.md (mac_media, macsf3): Make conditional on TARGET_FMAC. - 2006-07-04 Andrew Stubbs - * config/sh/crt1.asm (vbr_start): Move to new section .test.vbr. - Remove pointless handler at VBR+0. - (vbr_200, vbr_300, vbr_500): Remove pointless handler. - (vbr_600): Save and restore mach and macl, fpul and fpscr and fr0 to - fr7. Make sure the timer handler is called with the correct FPU - precision setting, according to the ABI. - 2006-06-14 J"orn Rennecke - * config/sh/sh.opt (m2a-single, m2a-single-only): Fix Condition. - * config/sh/sh.h (SUPPORT_SH2A_NOFPU): Fix condition. - (SUPPORT_SH2A_SINGLE_ONLY, SUPPORT_SH2A_SINGLE_ONLY): Likewise. - 2006-06-09 J"orn Rennecke - * sh.md (cmpgeusi_t): Change into define_insn_and_split. Accept - zero as second operand. - 2006-04-28 J"orn Rennecke - * config/sh/divtab-sh4-300.c, config/sh/lib1funcs-4-300.asm: - Fixed some bugs related to negative values, in particular -0 - and overflow at -0x80000000. - * config/sh/divcost-analysis: Added sh4-300 figures. - 2006-04-27 J"orn Rennecke - * config/sh/t-sh (MULTILIB_MATCHES): Add -m4-300* / -m4-340 options. - 2006-04-26 J"orn Rennecke - * config/sh/t-sh (OPT_EXTRA_PARTS): Add libgcc-4-300.a. - ($(T)div_table-4-300.o, $(T)libgcc-4-300.a): New rules. - * config/sh/divtab-sh4-300.c, config/sh/lib1funcs-4-300.asm: - New files. - * config/sh/embed-elf.h (LIBGCC_SPEC): Use -lgcc-4-300 for -m4-300* / - -m4-340. - 2006-04-24 J"orn Rennecke - SH4-300 scheduling description & fixes to SH4-[12]00 description: - * sh.md: New instruction types: fstore, movi8, fpscr_toggle, gp_mac, - mac_mem, mem_mac, dfp_mul, fp_cmp. - (insn_class, dfp_comp, any_fp_comp): Update. - (push_fpul, movsf_ie, fpu_switch, toggle_sz, toggle_pr): Update type. - (cmpgtsf_t, "cmpeqsf_t, cmpgtsf_t_i4, cmpeqsf_t_i4): Likewise. - (muldf3_i): Likewise. - (movsi_i): Split rI08 alternative into two separate alternatives. - Update type. - (movsi_ie, movsi_i_lowpart): Likewise. - (movqi_i): Split ri alternative into two separate alternatives. - Update type. - * sh1.md (sh1_load_store, sh1_fp): Update. - * sh4.md (sh4_store, sh4_mac_gp, fp_arith, fp_double_arith): Update. - (mac_mem, sh4_fpscr_toggle): New insn_reservations. - * sh4a.md (sh4a_mov, sh4a_load, sh4a_store, sh4a_fp_arith): Update. - (sh4a_fp_double_arith): Likewise. - * sh4-300.md: New file. - * sh.c (sh_handle_option): Handle m4-300* options. - (sh_adjust_cost): Fix latency of auto-increments. - Handle SH4-300 differently than other SH4s. Check for new insn types. - * sh.h (OVERRIDE_OPTIONS): Initilize sh_branch_cost if it has not - been set by an option. - * sh.opt (m4-300, m4-100-nofpu, m4-200-nofpu): New options. - (m4-300-nofpu, -m4-340, m4-300-single, m4-300-single-only): Likewise. - (mbranch-cost=): Likewise. - * superh.h (STARTFILE_SPEC): Take -m4-340 into account. - - * sh.md (mulsf3): Remove special expansion code. - (mulsf3_ie): Now a define_insn_and_split. - (macsf3): Allow for TARGET_SH4. - - * sh.md (cbranchsi4, cbranchdi4, cbranchdi4_i): New patterns. - * sh.c (prepare_cbranch_operands, expand_cbranchsi4): New functions. - (expand_cbranchdi4): Likewise. - (sh_rtx_costs): Give lower cost for certain CONST_INT values and for - CONST_DOUBLE if the outer code is COMPARE. - * sh.h (OPTIMIZATION_OPTIONS): If not optimizing for size, set - TARGET_CBRANCHDI4 and TARGET_EXPAND_CBRANCHDI4. - (OVERRIDE_OPTIONS): For TARGET_SHMEDIA, clear TARGET_CBRANCHDI4. - (LEGITIMATE_CONSTANT_P): Also allow DImode and VOIDmode CONST_DOUBLEs. - Remove redundant fp_{zero,one}_operand checks. - * sh.opt (mcbranchdi, mexpand-cbranchdi, mcmpeqdi): New options. - * sh-protos.h (prepare_cbranch_operands, expand_cbranchsi4): Declare. - (expand_cbranchdi4): Likewise. - 2006-04-20 J"orn Rennecke - * sh.h (LOCAL_ALIGNMENT): Use DATA_ALIGNMENT. - -2006-11-02 Andrew Pinski - - * doc/md.texi (RS6000 constraints): Document H, Z, a, t, and W - constraints. - -2006-11-02 Brooks Moses - - * doc/invoke.texi: Fix mfp-trap-mode typo. - -2006-11-02 Carlos O'Donell - - * config/arm/linux-elf.h (NEED_INDICATE_EXEC_STACK): Define as 1. - * arm.c (arm_file_end): If NEED_INDICATE_EXEC_STACK call - file_end_indicate_exec_stack. - * arm.h [!NEED_INDICATE_EXEC_STACK] (NEED_INIDCATE_EXEC_STACK): - Define as 0. - * lib1funcs.asm [__ELF__ && __linux__]: Emit .note.GNU-stack section - for a non-executable stack. - * crti.asm: Likewise. - * crtn.asm: Likewise. - * libunwind.S: Likewise. - -2006-11-02 Ben Elliston - - * tree-ssa.c (warn_uninit): Use expand_location variables for - locus and declaration locus. - -2006-11-02 Kaz Kojima - - PR target/27405 - * config/sh/sh.md (cmp{eq,gt,gtu}{si,di}_media): Remove. - (cmpsi{eq,gt,gtu}{si,di}_media): Rename to - cmp{eq,gt,gtu}{si,di}_media. - (*cmpne0si_media): Remove. - (*movsicc_umin): Adjust gen_cmp*_media call. - (unordered): Change the mode of unordered and operands[1] to - SImode. - (seq): Adjust gen_cmp*_media calls. Make the mode of - a temporary result of compare SImode if needed. If the mode - of operands[0] is DImode, extend the temporary result to DImode. - (slt, sle, sgt, sge, sgtu, sltu, sleu, sgue, sne): Likewise. - (sunorderd): Change the mode of match_operand and unorderd to - SImode. - (cmpeq{sf,df}_media): Remove. - (cmpsieq{sf,df}_media): Rename to cmpeq{sf,df}_media. - (cmp{gt,ge,un}{sf,df}_media): Change the mode of match_operand - and compare operation to SImode. - -2006-11-02 Eric Botcazou - - * doc/install.texi (sparc-sun-solaris2*): Update GMP/MPFR build - instructions. - (sparc64-sun-solaris2*): Likewise. - -2006-11-02 Paul Brook - - * config/arm/arm.c (arm_elf_asm_constructor): Remove ATTRIBUTE_UNUSED - from priority argument. Use different section for non-default - priority. - * config/arm/elf.h: Remove definition of SUPPORTS_INIT_PRIORITY. - -2006-11-02 Eric Botcazou - - PR other/29639 - * except.c (switch_to_exception_section): Do not cache the section - if named sections are supported and HAVE_LD_EH_GC_SECTIONS is defined - and flag_function_sections is set. - -2006-11-01 Kaveh R. Ghazi - - PR middle-end/29335 - * builtins.c (do_mpfr_sincos): New. - (fold_builtin_1): Use it to fold builtin sincos. - -2006-11-01 Roger Sayle - - * config/darwin.h (CPP_SPEC): Handle -pthread, transforming - it into -D_REENTRANT. - -2006-11-01 Roger Sayle - - * configure.ac (HAVE_AS_IX86_DIFF_SECT_DELTA): New test to determine - whether the assembler supports taking the difference of symbols in - different sections. On x86/Solaris, GAS does but Solaris as doesn't. - * configure: Regenerate. - * config.in: Regenerate. - * config/i386/sol2-10.h (JUMP_TABLES_IN_TEXT_SECTION): Define if - the assembler doesn't support taking the difference of symbols in - different sections, i.e. we're using the native solaris assembler. - -2006-11-01 Pete Steinmetz - Peter Bergner - - * doc/invoke.texi: Add cpu_type power6x - (RS/6000 and PowerPC Options): Add -mmfpgpr. - * config.gcc: Add cpu_type power6x. - * configure.ac: Add test for mf{t,f}gpr instructions. - (HAVE_AS_MFPGPR): New. - * config.in: Regenerate. - * configure: Regenerate. - * config/rs6000/aix52.h (ASM_CPU_SPEC): Add power6x. - * config/rs6000/rs6000.md (define_attr "type"): Add insert_dword, - shift,trap,var_shift_rotate,cntlz,exts, var_delayed_compare, mffgpr - and mftgpr attributes. - (define_attr "cpu"): Add power6. - Change instruction sequences to use new attributes. - (floatsidf2,fix_truncdfsi2): use TARGET_MFPGPR. - (fix_truncdfsi2_mfpgpr): New. - (floatsidf_ppc64_mfpgpr): New. - (floatsidf_ppc64): Added !TARGET_MFPGPR condition. - (movdf_hardfloat64_mfpgpr,movdi_mfpgpr): New. - (movdf_hardfloat64): Added !TARGET_MFPGPR condition. - (movdi_internal64): Added !TARGET_MFPGPR and related conditions. - (fix_truncdfsi2): Use gpc_reg_operand constraint. - * config/rs6000/{6xx.md,power4.md,8540.md,603.md,mpc.md, - 7xx.md,rios2.md,7450.md,440.md,rios1.md,rs64.md,power5.md,40x.md}: - Add descriptions for insert_dword, shift,trap,var_shift_rotate, - cntlz,exts and var_delayed_compare. - * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define - _ARCH_PWR6X, if features enabled. - * config/rs6000/rs6000.opt (mmfpgpr): New. - * config/rs6000/rs6000.c (rs6000_align_branch_targets): New variable. - (cached_can_issue_more): New variable. - (processor_costs): Add power6_cost. - (rs6000_sched_init): New function. - (is_dispatch_slot_restricted): Deleted. - (set_to_load_agen): New function. - (is_load_insn,is_store_insn): New functions. - (adjacent_mem_locations): New function. - (insn_must_be_first_in_group): New function. - (insn_must_be_last_in_group): New function. - (rs6000_sched_reorder): New function. - (rs6000_sched_reorder2): New function. - (TARGET_SCHED_INIT,TARGET_SCHED_REORDER, - TARGET_SCHED_REORDER2): Define. - (processor_target_table): Use PROCESSOR_POWER6 for power6. - Add power6x. Add MASK_MFPGPR for power6x. - (POWERPC_MASKS): Add MASK_MFPGPR. - (rs6000_override_options): Set rs6000_always_hint to false - for power6. Set rs6000_align_branch_targets. Replace - rs6000_sched_groups check with rs6000_align_branch_targets. - Use PROCESSOR_POWER6. - (last_scheduled_insn): New variable. - (load_store_pendulum): New variable. - (rs6000_variable_issue): Set last_scheduled_insn and - cached_can_issue_more. - (rs6000_adjust_cost): Add power6 cost adjustments. - (rs6000_adjust_priority): Replace is_dispatch_slot_restricted - with insn_must_be_first_in_group. Add power6 priority adjustments. - (rs6000_issue_rate): Add CPU_POWER6. - (insn_terminates_group_p): Use insn_must_be_{first,last}_in_group. - * config/rs6000/rs6000.h (processor_type): Add PROCESSOR_POWER6. - (TARGET_MFPGPR): New. - (SECONDARY_MEMORY_NEEDED): Use TARGET_MFPGPR. - (ASM_CPU_SPEC): Add power6x. - (SECONDARY_MEMORY_NEEDED): Added mode!=DFmode and mode!=DImode - conditions. - * config/rs6000/power6.md: New file. - -2006-11-01 Adam Nemet - - * tree-pretty-print.c (dump_generic_node) : Use - HOST_WIDE_INT_PRINT to print high and low parts. Use - HOST_BITS_PER_WIDE_INT for the width of HOST_WIDE_INT. When - printing a hexadecimal number prefix it with 0x. - -2006-11-01 Chris Johns - - PR bootstrap/28400 - * Makefile.in (install-driver): Use exeext when installing - $target-gcc-$version. - -2006-11-01 Douglas Gregor - - * c-common.c (flag_cpp0x): New. - * c-common.h (flag_cpp0x): New. - * c-cppbuiltin.c (c_cpp_builtins): If C++0x extensions are - supported, define __GXX_EXPERIMENTAL_CPP0X__. - * c-opts.c (set_std_cxx0x): New. - (c_common_handle_option): Handle -std=c++0x, -std=gnu++0x. - * c.opt (std=c++0x): Document. - (std=gnu++0x): Ditto. - * doc/cpp.texi: Document __GXX_EXPERIMENTAL_CPP0X__. - * doc/invoke.texi: Document -std=c++0x, -std=gnu++0x. - -2006-11-01 Richard Guenther - - * config/i386/i386.c (ix86_expand_rint): Fix issues with - signed zeros. - (ix86_expand_floorceildf_32): Likewise. - (ix86_expand_floorceil): Likewise. - (ix86_expand_trunc): Likewise. - -2006-10-31 Andrew Pinski - - * doc/invoke.texi (-fkeep-inline-functions): Change "GNU C" - to "GNU C89". - -2006-11-01 Danny Smith - - * target.h (targetm.cxx.use_atexit_for_cxa_atexit): New target - hook. - * target-def.h: (TARGET_CXX_USE_ATEXIT_FOR_CXA_ATEXIT): Define - default. - * config/i386/mingw32.h (TARGET_CXX_USE_ATEXIT_FOR_CXA_ATEXIT): - Override default. - * doc/tm.texi (TARGET_CXX_USE_ATEXIT_FOR_CXA_ATEXIT): Document. - * configure.ac (use_cxa_atexit): As a special case, don't test - for libc definition of __cxa_atexit on mingw32 - * configure: Regenerate. - * config.gcc (i[34567]86-pc-mingw32): Default to - enable__cxa_atexit=yes. - -2006-11-01 Kaveh R. Ghazi - - * builtins.def (gamma, lgamma): Use ATTR_MATHFN_FPROUNDING_STORE. - -2006-10-31 Geoffrey Keating - - PR 23067 - * c-decl.c (start_struct): Don't create self-containing - structures. - * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align): - New. - * config/rs6000/rs6000-protos.h - (darwin_rs6000_special_round_type_align): New. - * config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Rewrite. - (ROUND_TYPE_ALIGN): Use darwin_rs6000_special_round_type_align. - -2006-10-31 Geoffrey Keating - - * toplev.c (compile_file): Call final_write_globals - even if there have been errors. - -2006-10-31 Eric Christopher - Falk Hueffner - - * doc/extend.texi (__builtin_bswap32): Document. - (__builtin_bswap64): Ditto. - * doc/libgcc.texi (bswapsi2): Document. - (bswapdi2): Ditto. - * doc/rtl.texi (bswap): Document. - * optabs.c (expand_unop): Don't widen a bswap. - (init_optabs): Init bswap. Set libfuncs explicitly - for bswapsi2 and bswapdi2. - * optabs.h (OTI_bswap): New. - (bswap_optab): Ditto. - * genopinit.c (optabs): Handle bswap_optab. - * tree.h (tree_index): Add TI_UINT32_TYPE and - TI_UINT64_TYPE. - (uint32_type_node): New. - (uint64_type_node): Ditto. - * tree.c (build_common_tree_nodes_2): Initialize - uint32_type_node and uint64_type_node. - * builtins.c (expand_builtin_bswap): New. - (expand_builtin): Call. - (fold_builtin_bswap): New. - (fold_builtin_1): Call. - * fold-const.c (tree_expr_nonnegative_p): Return true - for bswap. - * builtin-types.def (BT_UINT32): New. - (BT_UINT64): Ditto. - (BT_FN_UINT32_UINT32): Ditto. - (BT_FN_UINT64_UINT64): Ditto. - * builtins.def (BUILT_IN_BSWAP32): New. - (BUILT_IN_BSWAP64): Ditto. - * rtl.def (BSWAP): New. - * genattrtab.c (check_attr_value): New. - * libgcc2.c (__bswapSI2): New. - (__bswapDI2): Ditto. - * libgcc2.h (__bswapSI2): Declare. - (__bswapDI2): Ditto. - * mklibgcc.in (lib2funcs): Add _bswapsi2 and _bswapdi2. - * simplify-rtx.c (simplify_const_unary_operation): Return - 0 for BSWAP. - * libgcc-std.ver (__bwapsi2): Add. - (__bswapdi2): Ditto. - * reload1.c (eliminate_regs_1): Add bswap. - (elimination_effects): Ditto. - * config/i386/i386.h (x86_bswap): New. - (TARGET_BSWAP): Use. - * config/i386/i386.c (x86_bswap): Set. - -2006-10-31 Geoffrey Keating - - * coverage.c (coverage_checksum_string): Update comment. - * dwarf2out.c (switch_to_eh_frame_section): Update for removal - of get_file_function_name. - * cgraphunit.c (cgraph_build_static_cdtor): Update for rename - of get_file_function_name_long. - * tree.c (get_file_function_name): Rename from - get_file_function_name_long; improve comment; handle 'I' and 'D' - specially when the target has ctor/dtor support; remove special - handling for 'F'. - (get_file_function_name): Remove. - * tree.h (get_file_function_name): Rename from - get_file_function_name_long. - (get_file_function_name): Remove prototype. - -2006-10-31 Geoffrey Keating - - * config/i386/darwin.h (PREFERRED_DEBUGGING_TYPE): Remove. - * config/darwin.h (PREFERRED_DEBUGGING_TYPE): Set to DWARF2_DEBUG. - - * config/darwin.h (LINK_COMMAND_SPEC): Don't do weird things with -@. - Call dsymutil when compiling and linking one or more source files - in one step. - -2006-10-31 Geoffrey Keating - - PR 15834 - * config/darwin.h (NO_IMPLICIT_EXTERN_C): Define. - -2006-10-31 Geoffrey Keating - - * c-decl.c (grokdeclarator): Don't set DECL_EXTERNAL on - inline static functions in c99 mode. - - PR 16622 - * doc/extend.texi (Inline): Update. - * c-tree.h (struct language_function): Remove field 'extern_inline'. - * c-decl.c (current_extern_inline): Delete. - (pop_scope): Adjust test for an undefined nested function. - Add warning about undeclared inline function. - (diagnose_mismatched_decls): Update comments. Disallow overriding - of inline functions in a translation unit in C99. Allow inline - declarations in C99 at any time. - (merge_decls): Boolize variables. Handle C99 'extern inline' - semantics. - (grokdeclarator): Set DECL_EXTERNAL here for functions. Handle - C99 inline semantics. - (start_function): Don't clear current_extern_inline. Don't set - DECL_EXTERNAL. - (c_push_function_context): Don't push current_extern_inline. - (c_pop_function_context): Don't restore current_extern_inline. - - PR 11377 - * c-typeck.c (build_external_ref): Warn about static variables - used in extern inline functions. - * c-decl.c (start_decl): Warn about static variables declared - in extern inline functions. - -2006-10-31 Roger Sayle - - PR middle-end/23470 - * tree.h (tree_expr_nonnegative_p): Return "bool" instead of "int". - * fold-const.c (tree_expr_nonnegative_p): Likewise. Consider - pow(x,y) and powi(x,y) to be nonnegative if either x is nonnegative - or y is an even integer. - -2006-10-31 Eric Botcazou - - PR target/24071 - * gthr-posix.h (__gthread_active_p): New implementation on Solaris. - * gthr-posix95.h (__gthread_active_p): Likewise. - -2006-10-31 Richard Guenther - - * config/i386/i386.md (asindf2, asinsf2, asinxf2, acosdf2, - acossf2, acosxf2, log1psf2, log1pdf2, log1pxf2, ilogbsi2, - expsf2, expdf2, expxf2, exp10sf2, exp10df2, exp10xf2, - exp2sf2, exp2df2, exp2xf2, expm1df2, expm1sf2, expm1xf2, - ldexpdf3, ldexpsf3, ldexpxf3, rintxf2, rintdf2, rintsf2, - lrounddi2, lroundsi2, floorxf2, floordf2, floorsf2, - lfloordi2, lfloorsi2, ceilxf2, ceildf2, ceilsf2, - btruncxf2, btruncdf2, btruncsf2): Conditionalize expansion on - !optimize_size. - -2006-10-31 Steven Bosscher - - * opts.c (decode_options): Disable CSE skip blocks. - -2006-10-30 Dirk Mueller - - * c-common.h (strict_aliasing_warning): Fix whitespace. - * c-decl (start_function): Move code for main decl warning .. - * c-common.c (check_main_parameter_types): .. here. - * c-common.h (check_main_parameter_types): Declare. - -2006-10-30 Kaveh R. Ghazi - - PR middle-end/29335 - * builtins.c (fold_builtin_1): Evaluate tgamma using MPFR. - -2006-10-30 Pete Steinmetz - - * recog.c (store_data_bypass_p): Add support to allow IN_INSN to - be a PARALLEL containing sets. Return false when out_pat is not - a PARALLEL insn. - -2006-10-30 Richard Sandiford - - * config/mips/mips.md (mul3): Split into... - (mulsi3, muldi3): ...these separate patterns. - -2006-10-30 Richard Sandiford - - * config/mips/linux64.h (DRIVER_SELF_SPECS): Use a single spec, - but with each set of options separated by spaces. - -2006-10-30 J"orn Rennecke - - * unwind-dw2.c (uw_init_context_1): Fix test that checks if - dwarf_reg_size_table has been initialized. - -2006-10-30 Roger Sayle - - * builtins.c (expand_builtin_mathfn_3): Correct coding style. - * ddg.c (print_ddg_edge): Likewise. - * dwarf2out.c (prune_unused_types_walk): Likewise. - * ifcvt.c (noce_try_cmove_arith): Likewise. - * langhooks.c (add_builtin_function): Likewise. - * reg-stack.c (subst_stack_regs_pat): Likewise. - * tree.c (expanded_location): Likewise. - * tree-dump.c (dequeue_and_dump): Likewise. - -2006-10-30 David Daney - - * config/mips/linux.h (NO_SHARED_SPECS): Correct syntax error. - -2006-10-30 Jakub Jelinek - - PR tree-optimization/29637 - * tree.c (make_vector_type): Don't recurse if TYPE_MAIN_VARIANT - of the innertype is the innertype itself. - -2006-10-30 Danny Smith - - * dwarf2out.c (file_name_acquire): Correct typo. - -2006-10-29 Daniel Berlin - - * tree.h (tree_value_handle): Remove struct value_set declaration. - Change value_set to bitmap_set. - * tree-pretty-print.c (dump_generic_node): Use has_stmt_ann. - * tree-vn.c (get_value_handle): Made inline and moved to - tree-flow-inline.h. - * tree-flow-inline.h: (has_stmt_ann): New function. - * tree-ssa-pre.c (expressions): New variable. - (next_expression_id): Ditto. - (alloc_expression_id): New function. - (struct value_set): Remove. - (get_expression_id): New function. - (get_or_alloc_expression_id): Ditto. - (expression_for_id): Ditto. - (clear_expression_ids): Ditto. - (FOR_EACH_EXPR_ID_IN_SET): New macro. - (bb_value_sets): Renamed to bb_bitmap_sets. - All value sets replaced with bitmap_sets. - Add visited member. - (BB_VISITED): New macro. - (postorder): New variable. - (add_to_value): Removed. - (value_exists_in_set_bitmap): Ditto. - (value_insert_into_set_bitmap): Ditto. - (set_new): Ditto. - (set_copy): Ditto. - (set_remove): Ditto. - (set_contains_value): Ditto. - (insert_into_set): Ditto. - (set_equal): Ditto. - (find_leader): Ditto. - (bitmap_set_subtract_from_value_set): Ditto. - (value_insert_into_set): Ditto. - (print_value_set): Ditto. - (debug_value_set): Ditto. - (constant_expr_p): New function. - (bitmap_remove_from_set): Ditto. - (bitmap_insert_into_set): Ditto. - (bitmap_set_free): Ditto. - (vh_compare): Ditto. - (sorted_array_from_bitmap_set): Ditto. - (bitmap_set_subtract): Ditto. - (bitmap_set_equal): Ditto. - (debug_bitmap_set): Ditto. - (find_leader_in_sets): Ditto. - (bitmap_set_replace_value): Modify for bitmapped sets. - (phi_translate): Ditto. - (phi_translate_set): Ditto. - (bitmap_find_leader): Ditto. - (valid_in_sets): Ditto. - (union_contains_value): Ditto. - (clean): Ditto. - (compute_antic_aux): Ditto. Mark changed blocks. - (compute_antic): Ditto. Iterate in postorder and only over - changing blocks. - (compute_rvuse_and_antic_safe): Reuse postorder. - (create_component_ref_by_pieces): Modify for bitmapped sets. - (find_or_generate_expression): Ditto. - (create_expression_by_pieces): Ditto. - (insert_into_preds_of_block): Ditto. - (changed_blocks): New variable. - (do_regular_insertion): Broken out from insert_aux. - (insert_aux): Modified for bitmapped sets. - (find_existing_value_expr): New function. - (create_value_expr_from): Use it. - (insert_extra_phis): Removed. - (print_bitmap_set): Renamed from bitmap_print_value_set. - (compute_avail): Handle RETURN_EXPR. - (init_pre): Modify for bitmapped sets. - * tree-flow.h (has_stmt_ann): New function. - -2006-10-29 Roger Sayle - - * builtins.c (fold_builtin_floor): Check for the availability of - the C99 trunc function before transforming floor into trunc. - -2006-10-29 Kaveh R. Ghazi - - * builtins.c (fold_builtin_hypot): Rearrange recursive - transformation before others, and also do ABS_EXPR. When - necessary, check flag_unsafe_math_optimizations. When necessary, - add fabs. - -2006-10-29 Roger Sayle - - * fold-const.c (fold_comparison): Fold ~X op ~Y as Y op X. - Fold ~X op C as X op' ~C, where op' is the swapped comparison. - (fold_binary): ~X eq/ne C is now handled in fold_comparison. - Fold -X eq/ne -Y as X eq/ne Y. - -2006-10-29 Richard Sandiford - - * config/mips/mips.md (mul3): Check ISA_HAS_MUL3 rather than - GENERATE_MULT3_. Restrict the test to SImode. Use ISA_HAS_MUL3 - rather than GENERATE_MULT3_SI in the various define_peephole2s. - (mulsi3_mult3): Depend on ISA_HAS_MUL3 rather than GENERATE_MULT3_SI. - Use an inclusive test for "mult" rather than "mul". - (rotr3): Depend on ISA_HAS_ROR. - * config/mips/mips.h (GENERATE_MULT3_SI): Delete in favor of - ISA_HAS_MUL3. - (GENERATE_MULT3_DI): Delete. - (ISA_HAS_64BIT_REGS): Use consistent formatting. - (ISA_HAS_MUL3): New macro. - (ISA_HAS_CONDMOVE, ISA_HAS_8CC): Use consistent formatting. - (ISA_HAS_FP4, ISA_HAS_MADD_MSUB, ISA_HAS_NMADD_NMSUB): Likewise. - (ISA_HAS_CLZ_CLO): Likewise. - (ISA_HAS_DCLZ_DCLO): Delete. - (ISA_HAS_MULHI, ISA_HAS_MULS, ISA_HAS_MSAC): Require !TARGET_MIPS16. - (ISA_HAS_MACC): Require !TARGET_MIPS16 for all ISAs, not just - the VR4120 and VR4130. - (ISA_HAS_MACCHI): Use consistent formatting. - (ISA_HAS_ROTR_SI, ISA_HAS_ROTR_DI): Delete in favor of... - (ISA_HAS_ROR): ...this new macro. - (ISA_HAS_PREFETCH, ISA_HAS_PREFETCHX): Use consistent formatting. - (ISA_HAS_SEB_SEH, ISA_HAS_EXT_INS): Likewise. - (ISA_HAS_LOAD_DELAY): Use ISA_MIPS1. - -2006-10-29 Roger Sayle - - PR tree-optimization/15458 - * fold-const.c (fold_binary): Optimize ~X ^ C as X ^ ~C, where C - is a constant. - -2006-10-29 Richard Guenther - - * config/i386/i386-protos.h (ix86_expand_trunc): Declare. - (ix86_expand_truncdf_32): Likewise. - * config/i386/i386.c (ix86_expand_trunc): New function expanding - trunc inline for SSE math and -fno-trapping-math and if not - optimizing for size. - (ix86_expand_truncdf_32): Same for DFmode on 32bit archs. - * config/i386/i386.md (btruncsf2, btruncdf2): Adjust expanders - for expanding btrunc inline for SSE math. - -2006-10-29 Joseph Myers - - * config.gcc (i[34567]86-*-linux*): Handle --enable-targets=all. - Handle tuning for bi-arch i[34567]86-*-linux* like that for - i[34567]86-*-solaris2.1[0-9]*. - * config/i386/linux64.h (TARGET_VERSION, MULTILIB_DEFAULTS): - Define conditionally depending on TARGET_64BIT_DEFAULT. - (SPEC_32, SPEC_64): Define. - (LINK_SPEC): Use them. - * doc/install.texi (--enable-targets=all): Document for x86-linux. - -2006-10-29 Richard Guenther - - * config/i386/i386-protos.h (ix86_expand_round): Declare. - (ix86_expand_rounddf_32): Likewise. - * config/i386/i386.c (ix86_expand_round): New function expanding - round inline for SSE math and -fno-trapping-math and if not - optimizing for size. - (ix86_expand_rounddf_32): Same for DFmode on 32bit archs. - * config/i386/i386.md (rounddf2, roundsf2): New pattern expanding - round via ix86_expand_round. - -2006-10-29 Richard Guenther - - * config/i386/i386-protos.h (ix86_expand_floorceil): Declare. - (ix86_expand_floorceildf_32): Likewise. - * config/i386/i386.c (ix86_expand_sse_compare_mask): New - static helper function. - (ix86_expand_floorceil): Expander for floor and ceil to SSE - math. - (ix86_expand_floorceildf_32): Same for DFmode on 32bit archs. - * config/i386/i386.md (floordf2): Adjust to enable floor - expansion via ix86_expand_floorceil if TARGET_SSE_MATH and - -fno-trapping-math is enabled and if not optimizing for size. - (floorsf2, ceildf2, ceilsf2): Likewise. - * config/i386/sse.md (sse_maskcmpsf3): New insn. - (sse2_maskcmpdf3): Likewise. - -2006-10-29 Richard Guenther - - * builtins.c (expand_builtin_mathfn): Expand nearbyint as - rint in case -fno-trapping-math is enabled. - * config/i386/i386-protos.h (ix86_expand_rint): Declare. - * config/i386/i386.c (ix86_gen_TWO52): New static helper function. - (ix86_expand_sse_fabs): Likewise. - (ix86_expand_rint): New function expanding rint to x87 or SSE math. - * config/i386/i386.md (rintdf2): Enable for SSE math if - -fno-trapping-math is enabled, use ix86_expand_rint for expansion. - (rintsf2): Likewise. - -2006-10-29 Richard Guenther - - * genopinit.c (optabs): Change lfloor_optab and lceil_optab - to conversion optabs. - * optabs.c (init_optabs): Initialize lfloor_optab and lceil_optab - as conversion optab. - * optabs.h (enum optab_index): Remove OTI_lfloor and OTI_lceil. - (enum convert_optab_index): Add COI_lfloor and COI_lceil. - (lfloor_optab, lceil_optab): Adjust defines. - * builtins.c (expand_builtin_int_roundingfn): Adjust for - lfloor and lceil optabs now being conversion optabs. - * config/i386/i386-protos.h (ix86_expand_lfloorceil): Declare. - * config/i386/i386.c (ix86_expand_sse_compare_and_jump): - New static helper function. - (ix86_expand_lfloorceil): New function to expand lfloor and - lceil inline. - * config/i386/i386.md (lfloor2): Split into ... - (lfloorxf2): ... x87 variant - (lfloordi2, lfloorsi2): ... and SSE variants - using ix86_expand_lfloorceil. - (lceil2, lceilxf2, lceildi2, lceilsi2): - Likewise. - * doc/md.texi (lfloorMN, lceilMN): Document. - -2006-10-29 Richard Sandiford - - * configure.ac (HAVE_AS_NO_SHARED): New AC_DEFINE. Test for the - -mno-shared assembler option on mips targets. - * configure, config.in: Regenerate. - * config/mips/linux.h (NO_SHARED_SPECS): New macro. - (DRIVER_SELF_SPECS): Define to NO_SHARED_SPECS if non-empty. - * config/mips/linux64.h (DRIVER_SELF_SPECS): Include NO_SHARED_SPECS. - -2006-10-29 Richard Sandiford - - * config/mips/mips.c (mips_classify_symbol): Test DECL_WEAK as well - as TREE_PUBLIC when deciding whether to return SYMBOL_GOT_GLOBAL. - -2006-10-29 Kazu Hirata - - * config/darwin.c, config/darwin.opt, config/ia64/itanium1.md, - config/ia64/itanium2.md, real.c, tree-ssa-structalias.c: Fix - comment typos. - -2006-10-28 Kaveh R. Ghazi - - PR middle-end/29335 - * builtins.c (do_mpfr_arg2, fold_builtin_hypot): New. - (fold_builtin_pow): Evaluate constant arguments at compile-time - using MPFR. - (fold_builtin_1): Handle BUILT_IN_ATAN2 and BUILT_IN_HYPOT. - (do_mpfr_ckconv): New helper function. - (do_mpfr_arg1): Use do_mpfr_ckconv. - (do_mpfr_arg2): New. - -2006-10-28 Andrew Pinski - - PR tree-opt/29271 - * doc/invoke.texi (-fdump-rtl-sched2) Fix file extension number. - (-fdump-rtl-sched): Rename to .. - (-fdump-rtl-sched1): here. Also fix file extension number. - -2006-10-28 Richard Guenther - - * fold-const.c (maybe_canonicalize_comparison): Fix code - to match comment. - -2006-10-28 Uros Bizjak - - * config/i386/i386.h (GENERAL_REGNO_P): Use STACK_POINTER_REGNUM. - (NON_QI_REG_P): Use IN_RANGE. - (REX_INT_REGNO_P): Use IN_RANGE. - (FP_REGNO_P): Use IN_RANGE. - (SSE_REGNO_P): Use IN_RANGE. - (REX_SSE_REGNO_P): Use IN_RANGE. - (MMX_REGNO_P): Use IN_RANGE. - (STACK_REGNO_P): New macro. - (STACK_REG_P): Use STACK_REGNO_P. - (NON_STACK_REG_P): Use STACK_REGNO_P. - (REGNO_OK_FOR_INDEX_P): Use REX_INT_REGNO_P. - (REGNO_OK_FOR_BASE_P): Use GENERAL_REGNO_P. - (REG_OK_FOR_INDEX_NONSTRICT_P): Use REX_INT_REGNO_P. - (REG_OK_FOR_BASE_NONSTRICT_P): Use GENERAL_REGNO_P. - (HARD_REGNO_RENAME_OK): Use !IN_RANGE. - -2006-10-28 Eric Botcazou - - * except.h (output_function_exception_table): Add 'const char*' param. - * except.c (switch_to_exception_section): Add 'const char*' param. - If named sections are supported and HAVE_LD_EH_GC_SECTIONS is defined - and flag_function_sections is set, use a function-specific section. - (output_function_exception_table): Add 'const char*' param. - Adjust call to switch_to_exception_section. - * final.c (rest_of_handle_final): Adjust calls to - output_function_exception_table. - * configure.ac (HAVE_LD_EH_GC_SECTIONS): New check. - * config.in: Regenerate. - * configure: Likewise. - -2006-10-28 Richard Guenther - - PR middle-end/26899 - * fold-const.c (maybe_canonicalize_comparison_1): Helper - for maybe_canonicalize_comparison. - (maybe_canonicalize_comparison): New function for canonicalizing - comparison trees. - (fold_comparison): Call it to canonicalize comparisons with - constants involved. - -2006-10-28 Richard Guenther - - PR target/28806 - * builtins.c (expand_builtin_int_roundingfn_2): Expand - BUILT_IN_LROUND and BUILT_IN_LLROUND from here. - (expand_builtin): Adjust likewise. - * genopinit.c (optabs[]): Add lround optab. - * optabs.c (init_optabs): Initialize lround_optab. - * optabs.h (enum convert_optab_index): Add COI_lround. - (lround_optab): Define. - * config/i386/i386-protos.h (ix86_expand_lround): Declare. - * config/i386/i386.c (ix86_sse_copysign_to_positive): New - static function. - (ix86_expand_lround): New function. - * config/i386/i386.md (lrounddi2, lroundsi2): - New expanders. - * doc/md.texi (lroundMN2): Document. - -2006-10-28 Uros Bizjak - - PR target/29377 - * config/h8300/h8300.c (h8300_emit_stack_adjustment): Change "size" - argument to HOST_WIDE_INT. Update function prototype. - (round_frame_size): Change return type to HOST_WIDE_INT. Change - "size" argument to HOST_WIDE_INT. Update function prototype. - -2006-10-28 Uros Bizjak - - * config/i386/i386.c (output_387_ffreep): Create output from a - template string for !HAVE_AS_IX86_FFREEP. - -2006-10-27 Eric Christopher - - * config/darwin.c: Fix formatting and grammar. - -2006-10-27 Jan Hubicka - - * builtins.c (fold_builtin): Don't generate NOP_EXPR that is going - to be thrown away soon when IGNORE is set. - * tree-ssa-ccp.c (convert_to_gimple_builtin): Add IGNORE argument - indicating when return value shall not be computed. - * gimplify.c (internal_get_tmp_var): Avoid random tree sharing. - -2006-10-27 Vladimir Makarov - - * config/i386/i386.h (TARGET_GEODE): - (TARGET_CPU_CPP_BUILTINS): Add code for geode. - (TARGET_CPU_DEFAULT_geode): New macro. - (TARGET_CPU_DEFAULT_k6, TARGET_CPU_DEFAULT_k6_2, - TARGET_CPU_DEFAULT_k6_3, TARGET_CPU_DEFAULT_athlon, - TARGET_CPU_DEFAULT_athlon_sse, TARGET_CPU_DEFAULT_k8, - TARGET_CPU_DEFAULT_pentium_m, TARGET_CPU_DEFAULT_prescott, - TARGET_CPU_DEFAULT_nocona, TARGET_CPU_DEFAULT_generic): Increase - the macro values. - (TARGET_CPU_DEFAULT_NAMES): Add geode. - (processor_type): Add PROCESSOR_GEODE. - - * config/i386/i386.md: Include geode.md. - (cpu): Add geode. - - * config/i386/i386.c (geode_cost): New initialized global - variable. - (m_GEODE, m_K6_GEODE): New macros. - (x86_use_leave, x86_push_memory, x86_deep_branch, x86_use_sahf, - x86_use_himode_fiop, x86_promote_QImode, x86_add_esp_4, - x86_add_esp_8, x86_rep_movl_optimal, x86_ext_80387_constants, - x86_schedule): Use m_K6_GEODE instead of m_K6. - (x86_movx, x86_cmove): Set up m_GEODE. - (x86_integer_DFmode_moves): Clear m_GEODE. - (processor_target_table): Add entry for geode. - (processor_alias_table): Ditto. - - * config/i386/geode.md: New file. - - * doc/invoke.texi: Add entry about geode processor. - -2006-10-27 Mike Stump - - * config/darwin-c.c (darwin_cpp_builtins): Move __STATIC__ and - __DYNAMIC__ from here back to ... - * config/darwin.h (CPP_SPEC): ... here. - -2006-10-26 Nathan Froyd - Nathan Sidwell - - * ggc-common.c (ggc_min_heapsize_heuristic): Be more conservative - when choosing the minimum heapsize. - -2006-10-26 Nathan Froyd - - * gcc/unwind-dw2.h: Move cfa-related variables into - struct frame_state_reg_info to ensure that the CFA is properly - handled when executing DW_CFA_{remember,restore}_state. - * gcc/unwind-dw2.c, gcc/config/alpha/linux-unwind.h, - gcc/config/alpha/vms-unwind.h, gcc/config/s390/tpf-unwind.h - gcc/config/s390/linux-unwind.h, gcc/config/sparc/linux-unwind.h - gcc/config/i386/linux-unwind.h, gcc/config/sh/linux-unwind.h - gcc/config/rs6000/linux-unwind.h, - gcc/config/rs6000/darwin-fallback.c, gcc/config/pa/linux-unwind.h, - gcc/config/pa/hpux-unwind.h, gcc/config/mips/linux-unwind.h: - Modify to use new cfa_* fields. - -2006-10-26 Andreas Krebbel - - * config/s390/s390.c (s390_init_frame_layout): Check positive - frame_size. - -2006-10-26 Ben Elliston - - * gimplify.c (get_name): Remove extraneous break. - (gimplify_omp_for): Initialise ret with GS_OK. - -2006-10-25 Steve Ellcey - - * config/ia64/hpux.h: Define _INCLUDE__STDC_A1_SOURCE in C++. - Add unix98.o to link line. - -2006-10-25 Kaveh R. Ghazi - - PR middle-end/29335 - * builtins.c (fold_builtin_cbrt, fold_builtin_logarithm): - Calculate compile-time constants using MPFR. - (fold_builtin_1): Likewise handle BUILT_IN_ERF, BUILT_IN_ERFC, - BUILT_IN_EXPM1 and BUILT_IN_LOG1P. - -2006-10-25 Bob Wilson - - * config/xtensa/lib2funcs.S: Use C-style comments. - -2006-10-24 Nathan Froyd - - * dwarf2out.c (gen_compile_unit_die): Use IS_ABSOLUTE_PATH. - (file_table_relative_p): Likewise. - (dwarf2out_finish): Likewise. - (file_name_acquire): Use DIR_SEPARATOR and DIR_SEPARATOR_2. - -2006-10-25 Daniel Berlin - - * tree-ssa-structalias.c (intra_create_variable_infos): - Don't recreate nonlocal_all if it already exists. - -2006-10-25 Richard Guenther - - PR target/28803 - * optabs.h (enum optab_index): Remove OTI_lrint. - (enum convert_optab_index): Add COI_lrint. - (lrint_optab): Adjust. - (expand_sfix_optab): Declare. - * optabs.c (expand_sfix_optab): New function. - (init_optabs): Init lrint_optab as conversion optab. - * genopinit.c (lrint_optab): Change to a conversion optab. - * builtins.c (expand_builtin_int_roundingfn_2): Adjust to - expansion via conversion optab. - * config/i386/i386.md (*fistdi2_1): Remove - flag_unsafe_math_optimizations guard. - (fistdi2, fistdi2_with_temp, *fist2_1, fist2, - fist2_with_temp): Likewise. - (lrint2): Split into... - (lrintxf2): ... x87 part - (lrintdi2, lrintsi2): ... and SSE parts. - * config/i386/sse.md (sse_cvtss2si_2, sse_cvtss2_siq_2, - sse2_cvtsd2si_2, sse2_cvtsd2siq_2): New insns for - UNSPEC_FIX_NOTRUNC matching non-vector float modes. - * doc/md.texi (lrintMN2): Document. - -2006-10-25 Uros Bizjak - - PR target/28909 - * config/i386/sync.md ("sync_add", "sync_sub"): - Use inc and dec instructions for TARGET_USE_INCDEC. - ("*sync_compare_and_swap"): Fix -masm=intel template. - ("sync_double_compare_and_swap"): Likewise. - ("*sync_double_compare_and_swapdi_pic"): Likewise. - ("*sync_compare_and_swap_cc"): Likewise. - ("sync_double_compare_and_swap_cc"): Likewise. - ("*sync_double_compare_and_swap_ccdi_pic"): Likewise. - ("sync_old_add"): Likewise. - ("sync_lock_test_and_set"): Likewise. - ("sync_lock_test_and_set"): Likewise. - ("sync_add"): Likewise. - ("sync_sub"): Likewise. - ("sync_ior"): Likewise. - ("sync_and"): Likewise. - ("sync_xor"): Likewise. - -2006-10-25 Uros Bizjak - - * optabs.h (enum optab_index): Rename OTI_drem to OTI_remainder. - (remainder_optab): Define corresponding macro. - (drem_optab): Remove. - * optabs.c (init_optabs): Initialize remainder_optab. Remove - drem_optab initialization. - * genopinit.c (optabs): Implement remainder_optab using - remainder?f3 patterns. Remove drem_optab. - * builtins.c (expand_builtin_mathfn_2): Handle - BUILT_IN_REMAINDER{,F,L} using remainder_optab. - (expand_builtin): Expand BUILT_IN_REMAINDER{,F,L} using - expand_builtin_mathfn_2. - - (expand_builtin) [BUILT_IN_FMOD, BUILT_IN_DREM]: Do not - depend on flag_unsafe_math_optimizations. - - * config/i386/i386.md ("remaindersf3", "remainderdf3") - ("remainderxf3"): Renamed from "drem{s,d,x}f3" expanders. - Do not depend on flag_unsafe_math_optimizations. Use - truncxf?f expander instead of truncxf?f_i387_noop. - - ("fpremxf4", "fprem1xf4"): Do not depend on - flag_unsafe_math_optimizations. - ("fmodsf3", "fmoddf3", "fmodxf3"): Do not depend on - flag_unsafe_math_optimizations. Use truncxf?f expander - instead of truncxf?f_i387_noop. - - * doc/md.texi (fmod, remainder): Document standard named pattern. - -2006-10-24 Richard Sandiford - David Daney - - PR middle-end/29519 - * rtlanal.c (nonzero_address_p): Remove check for values wrapping. - -2006-10-25 Ben Elliston - - * doc/extend.texi (Variable Attributes): Typo fix. - -2006-10-24 Uros Bizjak - - * config/i386/i386.h (FIRST_PSEUDO_REGISTER): Define to 54. - (FIXED_REGISTERS, CALL_USED_REGISTERS): Add fpcr register. - (REG_ALLOC_ORDER): Add one element to allocate fpcr register. - (FRAME_POINTER_REGNUM): Update register number to 21. - (REG_CLASS_CONTENTS): Update contents for added fpcr register. - (HI_REGISTER_NAMES): Add "fpcr" for fpcr register. - - * config/i386/i386.c (regclass_map): Add fpcr entry. - (dbx_register_map, dbx64_register_map, svr4_dbx_register_map): - Add fpcr entry. - (print_reg): Assert REGNO (x) != FPCR_REG. - - * config/i386/i386.md (FPCR_REG, R11_REG): New constants. - (DIRFLAG_REG): Renumber. - (x86_fnstcw_1, x86_fldcw_1): Use FPCR_REG instead of FPSR_REG. - (*sibcall_1_rex64_v, *sibcall_value_1_rex64_v): Use R11_REG. - (sse_prologue_save, *sse_prologue_save_insn): Renumber - hardcoded SSE register numbers. - - * config/i386/mmx.md (mmx_emms, mmx_femms): Renumber - hardcoded MMX register numbers. - -2006-10-24 Kaveh R. Ghazi - - PR middle-end/29335 - * builtins.c (fold_builtin_sin, fold_builtin_atan): Remove. - (do_mpfr_arg1): Add `min', `max' and `inclusive' arguments. - Update all callers. - (BUILT_IN_SIN, BUILT_IN_ATAN): Handle in main switch. - (BUILT_IN_ASIN, BUILT_IN_ACOS, BUILT_IN_ATAN, BUILT_IN_ASINH, - BUILT_IN_ACOSH, BUILT_IN_ATANH, BUILT_IN_SINH, BUILT_IN_COSH, - BUILT_IN_TANH): Calculate compile-time arguments using MPFR. - -2006-10-24 Richard Guenther - - PR middle-end/28796 - * builtins.c (fold_builtin_classify): Use HONOR_INFINITIES - and HONOR_NANS instead of MODE_HAS_INFINITIES and MODE_HAS_NANS - for deciding optimizations in consistency with fold-const.c - (fold_builtin_unordered_cmp): Likewise. - -2006-10-24 Richard Guenther - - * builtins.c (fold_builtin_floor): Fold floor (x) where - x is nonnegative to trunc (x). - (fold_builtin_int_roundingfn): Fold lfloor (x) where x is - nonnegative to FIX_TRUNC_EXPR. - -2006-10-24 Richard Guenther - - PR tree-optimization/29567 - * tree-vrp.c (register_edge_assert_for_1): Fix wrong logic - for TRUTH_NOT_EXPR. Clarify comments. - -2006-10-24 Kaveh R. Ghazi - - PR middle-end/29335 - * builtins.c (fold_builtin_exponent): Evaluate constant arguments - at compile-time using MPFR. Change parameter VALUE to FUNC, - update all callers. - (do_mpfr_arg1): Rename `exact' to `inexact'. Carefully check - for overflow and underflow at all times and avoid folding in - those cases. - -2006-10-24 Ben Elliston - - * reload1.c: Formatting fixes. - -2006-10-23 Zdenek Dvorak - - PR tree-optimization/14784 - * tree-flow.h (struct var_ann_d): Add is_heapvar bit. - * tree-ssa-structalias.c (get_constraint_for, - intra_create_variable_infos): Set is_heapvar. - * tree-ssa-operands.c (access_can_touch_variable): Do not handle - non-heapvar pointer variables specially. - -2006-10-23 Kaveh R. Ghazi - - PR middle-end/29335 - * builtins.c (fold_builtin_sin, fold_builtin_cos, - fold_builtin_tan): Fold all constant arguments. Take a "type" - argument as necessary. - (do_mpfr_arg1): New. - * real.c, real.h (real_from_mpfr, mpfr_from_real): New. - -2006-10-23 Bob Wilson - - * config/xtensa/lib1funcs.asm: Use C-style comments. - -2006-10-23 Rafael Avila de Espindola - - * tree.c (local_define_builtin): Replace calls to - lang_hooks.builtin_function with add_builtin_function. - * c-objc-common.h (LANG_HOOKS_BUILTIN_FUNCTION): Define as - c_builtin_function. - * c-tree.h (builtin_function): Rename to c_builtin_function. Change - the signature. - * c-decl.c (builtin_function): Rename to c_builtin_function. Move - common code to add_builtin_function. - * langhooks.c (add_builtin_function): New function. - (lhd_builtin_function): New function. - * langhooks.h (struct lang_hooks): Change the signature of - builtin_function. - (add_builtin_function): New function. - * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Replace - calls to lang_hooks.builtin_function with add_builtin_function. - * c-common.c (decl_builtin_1): Replace calls to - lang_hooks.builtin_function with add_builtin_function. - * config/alpha/alpha.c (alpha_init_builtins): Replace calls to - lang_hooks.builtin_function with add_builtin_function. - * config/frv/frv.c (def_builtin): Replace calls to - lang_hooks.builtin_function with add_builtin_function. - * config/s390/s390.c (s390_init_builtins): Replace calls to - lang_hooks.builtin_function with add_builtin_function. - * config/sparc/sparc.c (def_builtin): Replace calls to - lang_hooks.builtin_function with add_builtin_function. - * config/i386/i386.c (def_builtin): Replace calls to - lang_hooks.builtin_function with add_builtin_function. - * config/sh/sh.c (sh_media_init_builtins): Replace calls to - lang_hooks.builtin_function with add_builtin_function. - * config/c4x/c4x.c (c4x_init_builtins): Replace calls to - lang_hooks.builtin_function with add_builtin_function. - * config/stormy16/stormy16.c (xstormy16_init_builtins): - Replace calls to lang_hooks.builtin_function with - add_builtin_function. - * config/iq2000/iq2000.c (def_builtin): - Replace calls to lang_hooks.builtin_function with - add_builtin_function. - * config/ia64/ia64.c (def_builtin): Replace calls to - lang_hooks.builtin_function with add_builtin_function. - * config/rs6000/rs6000.c (def_builtin): Replace calls to - lang_hooks.builtin_function with add_builtin_function. - (altivec_init_builtins): Replace calls to - lang_hooks.builtin_function with add_builtin_function. - * config/arm/arm.c (def_mbuiltin): Replace calls to - lang_hooks.builtin_function with add_builtin_function. - (arm_init_tls_builtins): Replace calls to - lang_hooks.builtin_function with add_builtin_function. - * config/mips/mips.c (mips_init_builtins): Replace calls to - lang_hooks.builtin_function with add_builtin_function. - * config/bfin/bfin.c (def_builtin): Replace calls to - lang_hooks.builtin_function with add_builtin_function. - * langhooks-def.h (lhd_builtin_function): New function. - (LANG_HOOKS_BUILTIN_FUNCTION): Define as lhd_builtin_function. - -2006-10-23 Jakub Jelinek - - * builtins.c (expand_builtin, maybe_emit_chk_warning): Handle - BUILT_IN_STRNCAT_CHK. - -2006-10-23 Jan Hubicka - - * builtins.c (expand_builtin_memmove): Remove ORIG_EXP argument; - don't do conversion from memmove to memcpy here. - (expand_builtin_bcopy, expand_builtin): Update call of - expand_builtin_memmove. - (fold_builtin_memory_op): Do folding of memmove to memcpy here. - -2006-10-23 Paul Brook - - * stor-layout.c (start_record_layout): maximum_field_alignment - overrides STRUCTURE_SIZE_BOUNDARY. - -2006-10-23 Ulrich Weigand - - * config/s390/predicates.md ("bras_sym_operand"): Do not accept - nonlocal function symbols if flag_pic. - -2006-10-23 Richard Guenther - - PR middle-end/27132 - PR middle-end/23295 - * builtins.c (fold_binary): Remove checks for flag_wrapv - and flag_trapv where negate_expr_p covers these cases. - -2006-10-23 Richard Guenther - - PR middle-end/29548 - * fold-const.c (fold_plusminus_mult_expr): Check exact power - of two on the absolute value. - (fold_binary): Fold x * -C to -x * C if x is easily negatable - and negating -C does not overflow. - -2006-10-23 Richard Guenther - - PR middle-end/21032 - * convert.c (convert_to_real): Fold (float)-x to -(float)x - only if not flag_rounding_math. - -2006-10-22 Richard Sandiford - Kaz Kojima - - PR target/28232 - * config/sh/sh.c (expand_block_move): Use a BLKmode rather than - SImode memory reference for the source of a movua. - * config/sh/sh.md (UNSPEC_MOVUA): New macro. - (movua): Use an unspec instead of sign_extract. Expect the source - to have mode BLKmode. - (extv, insv): Use a BLKmode rather than SImode memory reference - for the source of a movua. - -2006-10-22 Jeff Law - Richard Guenther - - PR tree-optimization/15911 - * tree-vrp.c (extract_code_and_val_from_cond): New function. - (register_edge_assert_for_1): Likewise. - (register_edge_assert_for): Handle &&/&/||/| in conditionals. - (find_conditional_asserts): Adjust for new function signature. - (find_assert_locations): Likewise. - -2006-10-22 H.J. Lu - - * config/i386/tmmintrin.h: Remove the duplicated content. - -2006-10-22 H.J. Lu - - * config.gcc (i[34567]86-*-*): Add tmmintrin.h to extra_headers. - (x86_64-*-*): Likewise. - - * config/i386/i386.c (pta_flags): Add PTA_SSSE3. - (override_options): Check SSSE3. - (ix86_builtins): Add IX86_BUILTIN_PHADDW, IX86_BUILTIN_PHADDD, - IX86_BUILTIN_PHADDSW, IX86_BUILTIN_PHSUBW, IX86_BUILTIN_PHSUBD, - IX86_BUILTIN_PHSUBSW, IX86_BUILTIN_PMADDUBSW, - IX86_BUILTIN_PMULHRSW, IX86_BUILTIN_PSHUFB, - IX86_BUILTIN_PSIGNB, IX86_BUILTIN_PSIGNW, IX86_BUILTIN_PSIGND, - IX86_BUILTIN_PALIGNR, IX86_BUILTIN_PABSB, IX86_BUILTIN_PABSW, - IX86_BUILTIN_PABSD, IX86_BUILTIN_PHADDW128, - IX86_BUILTIN_PHADDD128, IX86_BUILTIN_PHADDSW128, - IX86_BUILTIN_PHSUBW128, IX86_BUILTIN_PHSUBD128, - IX86_BUILTIN_PHSUBSW128, IX86_BUILTIN_PMADDUBSW128, - IX86_BUILTIN_PMULHRSW128, IX86_BUILTIN_PSHUFB128, - IX86_BUILTIN_PSIGNB128, IX86_BUILTIN_PSIGNW128, - IX86_BUILTIN_PSIGND128, IX86_BUILTIN_PALIGNR128, - IX86_BUILTIN_PABSB128, IX86_BUILTIN_PABSW128 and - IX86_BUILTIN_PABSD128. - (bdesc_2arg): Add SSSE3. - (bdesc_1arg): Likewise. - (ix86_init_mmx_sse_builtins): Support SSSE3. - (ix86_expand_builtin): Likewise. - * config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): Likewise. - - * config/i386/i386.md (UNSPEC_PSHUFB): New. - (UNSPEC_PSIGN): Likewise. - (UNSPEC_PALIGNR): Likewise. - Include mmx.md before sse.md. - - * config/i386/i386.opt: Add -mssse3. - - * config/i386/sse.md (ssse3_phaddwv8hi3): New pattern for SSSE3. - (ssse3_phaddwv4hi3): Likewise. - (ssse3_phadddv4si3): Likewise. - (ssse3_phadddv2si3): Likewise. - (ssse3_phaddswv8hi3): Likewise. - (ssse3_phaddswv4hi3): Likewise. - (ssse3_phsubwv8hi3): Likewise. - (ssse3_phsubwv4hi3): Likewise. - (ssse3_phsubdv4si3): Likewise. - (ssse3_phsubdv2si3): Likewise. - (ssse3_phsubswv8hi3): Likewise. - (ssse3_phsubswv4hi3): Likewise. - (ssse3_pmaddubswv8hi3): Likewise. - (ssse3_pmaddubswv4hi3): Likewise. - (ssse3_pmulhrswv8hi3): Likewise. - (ssse3_pmulhrswv4hi3): Likewise. - (ssse3_pshufbv16qi3): Likewise. - (ssse3_pshufbv8qi3): Likewise. - (ssse3_psign3): Likewise. - (ssse3_psign3): Likewise. - (ssse3_palignrti): Likewise. - (ssse3_palignrdi): Likewise. - (abs2): Likewise. - (abs2): Likewise. - - * config/i386/tmmintrin.h: New file. - - * doc/extend.texi: Document SSSE3 built-in functions. - - * doc/invoke.texi: Document -mssse3/-mno-ssse3 switches. - -2006-10-22 Ira Rosen - - * tree-vect-transform.c (vectorizable_load): Use the type of the - return value of the mask_for_load builtin to create realign_load - stmt. - -2006-10-22 Richard Sandiford - - * config/mips/mips.c (mips_split_const): Don't accept bare PLUS - expressions. - -2006-10-21 H.J. Lu - - * config/i386/i386.md (UNSPEC_LDQQU): Renamed to ... - (UNSPEC_LDDQU): This. - * config/i386/sse.md (sse3_lddqu): Updated. - -2006-10-21 Richard Guenther - - * builtins.c (expand_builtin_int_roundingfn_2): New function. - (expand_builtin): Use it to expand lrint instead of - expand_builtin_mathfn. - -2006-10-21 Uros Bizjak - - PR middle-end/28252 - * builtins.c (fold_builtin): Fold pow(x,1.0/3.0) as cbrt(x) if - flag_unsafe_math_optimizations is set. - -2006-10-21 Uros Bizjak - - PR target/19398 - * config/i386/i386.md (fix_trunc?f?i_sse): Add peephole2 - patterns to use memory input operand in x87->mem->XMM - reload sequences. Skip transformation for TARGET_K8. - -2006-10-21 Uros Bizjak - - * config/i386/i386.md (extendsfdf2, extendsfxf2, extenddfxf2): Do not - force operand1 to register if both operands are memory operands. - (*extendsfdf2_mixed, *extendsfdf2_sse, *extendsfdf2_i387) - (*extendsfxf2_i387, *extenddfxf2_i387): Do not disable pattern - if both operands are memory operands. - (truncdfsf2): Do not force operand1 to register if both operands - are memory operands. - -2006-10-21 Kaveh R. Ghazi - - * Makefile.in (LIBS): Add $(GMPLIBS). - * doc/install.texi: Update GMP and MPFR requirements. - * doc/sourcebuild.texi (need_gmp): Delete. - -2006-10-21 Richard Guenther - - PR tree-optimization/3511 - * tree-ssa-pre.c (phi_translate): Fold CALL_EXPRs that - got new invariant arguments during PHI translation. - -2006-10-21 Richard Guenther - - PR middle-end/26898 - * fold-const.c (fold_comparison): Fold signed comparisons - of the form X +- C1 CMP Y +- C2. - -2006-10-21 Richard Guenther - - PR target/19116 - * config/i386/i386.c (override_options): Do not set MASK_IEEE_FP - if flag_unsafe_math_optimizations is specified. We have - flag_finite_math_only for that. - * config/i386/i386.md (sqrtxf2): Do not require TARGET_IEEE_FP - or flag_unsafe_math_optimizations. - -2006-10-21 Richard Guenther - - * builtins.c (fold_builtin_classify): Fix typo. - -2006-10-21 Richard Guenther - - PR middle-end/28796 - * simplify-rtx.c (simplify_const_relational_operation): - Do not constant-fold ORDERED and UNORDERED for - flag_unsafe_math_optimizations but only we do not need to - honor NaNs for the given mode. - -2006-10-21 Richard Guenther - - PR target/29512 - * config/i386/i386.c (classify_argument): Remove redundant - walking of the BINFOs. - (contains_128bit_aligned_vector_p): Likewise. - -2006-10-20 Mark Mitchell - - * BASE-VER: Set to 4.3.0. - -2006-10-20 Daniel Berlin - - * tree.h (DECL_PTA_ARTIFICIAL): Remove. - (tree_decl_with_vis): Remove artificial_pta_var flag. - * tree-flow.h (referenced_var_check_and_insert): Expose. - (nonlocal_all): New prototype. - * tree-ssa-structalias.c (nonlocal_for_type): Remove. - (nonlocal_all): Make global. - (nonlocal_lookup): Remove. - (nonlocal_insert): Ditto. - (create_nonlocal_var): Do not call nonlocal_insert. - (get_nonlocal_id_for_type): Remove. - (find_global_initializers): Mark new vars we find for renaming. - (intra_create_variable_infos): Only create one nonlocal. - (expand_nonlocal_solutions): Remove. - (compute_points_to_sets): Don't call it. - (ipa_pta_execute): Ditto. - (init_alias_heapvars): Don't create nonlocal_for_type. - (delete_alias_heapvars): Don't remove it. - * tree-ssa-operands.c (access_can_touch_variable): Don't prune - nonlocal_all. - -2006-10-19 Brooks Moses - - * doc/install.texi (Downloading GCC): Clarify mention of - Fortran in the "full distribution" description. - -2006-10-19 Daniel Berlin - - Fix PR tree-optimization/28778 - Fix PR tree-optimization/29156 - Fix PR tree-optimization/29415 - * tree.h (DECL_PTA_ARTIFICIAL): New macro. - (tree_decl_with_vis): Add artificial_pta_var flag. - * tree-ssa-alias.c (is_escape_site): Remove alias info argument, - pushed into callers. - * tree-ssa-structalias.c (nonlocal_for_type): New variable. - (nonlocal_all): Ditto. - (struct variable_info): Add directly_dereferenced member. - (var_escaped_vars): New variable. - (escaped_vars_tree): Ditto. - (escaped_vars_id): Ditto. - (nonlocal_vars_id): Ditto. - (new_var_info): Set directly_dereferenced. - (graph_size): New variable - (build_constraint_graph): Use graph_size. - (solve_graph): Don't process constraints that cannot change the - solution, don't try to propagate an empty solution to our - successors. - (process_constraint): Set directly_dereferenced. - (could_have_pointers): New function. - (get_constraint_for_component_ref): Don't process STRING_CST. - (nonlocal_lookup): New function. - (nonlocal_insert): Ditto. - (create_nonlocal_var): Ditto. - (get_nonlocal_id_for_type): Ditto. - (get_constraint_for): Allow results vector to be empty in the case - of string constants. - Handle results of calls properly. - (update_alias_info): Update alias info stats on number and type of - calls. - (find_func_aliases): Use could_have_pointers. - (make_constraint_from_escaped): Renamed from - make_constraint_to_anything, and changed to make constraints from - escape variable. - (make_constraint_to_escaped): New function. - (find_global_initializers): Ditto. - (create_variable_info_for): Make constraint from escaped to any - global variable, and from any global variable to the set of - escaped vars. - (intra_create_variable_infos): Deal with escaped instead of - pointing to anything. - (set_uids_in_ptset): Do type pruning on directly dereferenced - variables. - (find_what_p_points_to): Adjust call to set_uids_with_ptset. - (init_base_vars): Fix comment, and initialize escaped_vars. - (need_to_solve): Removed. - (find_escape_constraints): New function. - (expand_nonlocal_solutions): Ditto. - (compute_points_to_sets): Call find_escape_constraints and - expand_nonlocal_solutions. - (delete_points_to_sets): Don't fall off the end of the graph. - (init_alias_heapvars): Initialize nonlocal_for_type and - nonlocal_all. - (delete_alias_heapvars): Free nonlocal_for_type and null out - nonlocal_all. - -2006-10-19 Eric Botcazou - - * fold-const.c (add_double): Rename to add_double_with_sign. - Add 'unsigned_p' parameter and take it into account for the overflow. - (mul_double): Rename to mul_double_with_sign. - Add 'unsigned_p' parameter and take it into account for the overflow. - (fold_div_compare): Call add_double_with_sign instead of add_double - and mul_double_with_sign instead of mul_double, passing them the - unsignedness of the type. - * tree.h (add_double): Macroize. - (add_double_with_sign): New prototype. - (mul_double): Macroize. - (mul_double_with_sign): New prototype. - -2006-10-19 Chen Liqin - - * config/score/crti.asm: New file. - * config/score/crtn.asm: New file. - * config/score/elf.h: New file. - * config/score/mac.md: New file. - * config/score/misc.md: New file. - * config/score/mul-div.S: New file. - * config/score/predicates.md: New file. - * config/score/score7.md: New file. - * config/score/score.c: New file. - * config/score/score-conv.h: New file. - * config/score/score.h: New file. - * config/score/score.md: New file. - * config/score/score-mdaux.c: New file. - * config/score/score-mdaux.h: New file. - * config/score/score-modes.def: New file. - * config/score/score.opt: New file. - * config/score/score-protos.h: New file. - * config/score/score-version.h: New file. - * config/score/t-score-elf: New file. - * config.gcc: Add score*-*-* configurations(Update before). - * doc/invoke.texi (Score Options): New section. - * doc/md.texi (Score family): New section to document constraints. - -2006-10-19 Nick Clifton - - * config/arm/arm.c: Fix spelling typo. - -2006-10-18 Tom Tromey - - * doc/install.texi (Prerequisites): Mention automake 1.9.6. - -2006-10-18 Jan Hubicka - - PR middle-end/29299 - * cfgexpand.c (expand_used_vars_for_block): Vars marked used by user - are used. - -2006-10-18 Marcin Dalecki - - * omp-low.c (expand_parallel_call): Use BSI_SAME_STMT instead of - TSI_SAME_STMT, since that's the desired entity. - -2006-10-17 Wolfgang Gellerich - - * config/s390/contraints.md: New file. - * config/s390/s390-protos.h (s390_mem_constraint, - s390_O_constraint_str, s390_N_constraint_str, - s390_float_const_zero_p): Function prototypes added. - * config/s390/s390.c (s390_extra_constraint_str, - s390_const_double_ok_for_constraint_p, - s390_const_ok_for_constraint_p): Functions removed. - (s390_mem_constraint, s390_O_constraint_str, s390_N_constraint_str, - s390_float_const_zero_p): New functions. - * config/s390/s390.h (REG_CLASS_FROM_LETTER, CONST_OK_FOR_CONSTRAINT_P, - CONST_DOUBLE_OK_FOR_CONSTRAINT_P, EXTRA_CONSTRAINT_STR, - EXTRA_MEMORY_CONSTRAINT, EXTRA_ADDRESS_CONSTRAINT, CONSTRAINT_LEN): - Macro definitions removed. - (s390_const_ok_for_constraint_p, s390_const_double_ok_for_constraint_p, - s390_extra_constraint_str): Functions removed. - -2006-10-17 Andrew Pinsiki - Richard Sandiford - - PR target/29413 - * config/mips/linux.h (SUBTARGET_CC1_SPEC): Override. - * config/mips/mips.h (CC1_SPEC): Override any earlier definition. - -2006-10-16 Geoffrey Keating - - * config/rs6000/sysv4.h (DBX_REGISTER_NUMBER): Move to rs6000.h. - (DWARF2_FRAME_REG_OUT): Likewise. - * config/rs6000/rs6000.h (DBX_REGISTER_NUMBER): Move from sysv4.h. - (DWARF2_FRAME_REG_OUT): Likewise. - -2006-10-17 Paul Brook - - * config/arm/arm.c (arm_rtx_costs_1): Handle multiply-accumulate. - -2006-10-16 Brooks Moses - - * doc/contrib.texi, doc/install.texi, doc/standards.texi: - Standardize on "GNU Fortran" as the official name of the Fortran - compiler. - -2006-10-16 Mike Stump - - * doc/invoke.texi (Darwin Options): Document -mkernel. - * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Add - -mkernel support. - (C_COMMON_OVERRIDE_OPTIONS): Add -mkernel support. Add - SUBTARGET_C_COMMON_OVERRIDE_OPTIONS callout. - (CC1_SPEC): Don't turn on -fPIC when -mkernel is given. - (OS_MISSING_ALTIVEC): Add. - * config/i386/i386.c (override_options): Add - SUBSUBTARGET_OVERRIDE_OPTIONS callout. - * config/i386/darwin.h (CC1_SPEC): Don't turn on -fPIC when - -mkernel, -static or -mdynamic-no-pic is given. - (C_COMMON_OVERRIDE_OPTIONS): Add. - * config/darwin.opt (fapple-kext): Add. - (mkernel): Add. - * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Add - -fapple-kext, -findirect-virtual-calls, -fterminated-vtables and - -mkernel support. - (SUBSUBTARGET_OVERRIDE_OPTIONS): Add. - (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): Add. - (CPP_SPEC): Move defines for __DYNAMIC__ and __STATIC__ from here... - (SUBTARGET_ATTRIBUTE_TABLE): Add apple_kext_compatibility. - (TARGET_CXX_CDTOR_RETURNS_THIS): Add. - (flag_mkernel): Add. - (flag_apple_kext): Add. - (TARGET_KEXTABI): Add. - * config/darwin.c (darwin_handle_kext_attribute): Add. - (DARWIN_VTABLE_P): Add. - (darwin_binds_local_p): Add partial support for rebinding vtables - in kexts. - (darwin_kextabi_p): Add. - (darwin_override_options): Add. - * config/darwin-protos.h (darwin_handle_kext_attribute): Add. - (darwin_kextabi_p): Add. - (darwin_override_options): Add. - * config/darwin-c.c (darwin_cpp_builtins): ... move defines for - __DYNAMIC__ and __STATIC__ here. - -2006-10-16 Brooks Moses - - * doc/sourcebuild.texi, doc/makefile.texi, doc/install.texi: - Added mention of "make pdf" target, and Texinfo requirements for - same. - -2006-10-16 DJ Delorie - - * config/s390/s390.c (s390_decompose_address): Allow symbol+offset - into the GOT in case we need a subreg of the address. - -2006-10-16 Richard Guenther - - PR target/25519 - * doc/extend.texi (X86 Built-in Functions): Fix typos in - SSE builtin documentation. Document SSE2 builtins. - -2006-10-15 John David Anglin - - * pa64-hpux.h (LINK_SPEC): Force __cxa_finalize to be an undefined - symbol in the output file for non-shared links when -nostdlib or - -nodefaultlibs isn't specified. - - * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*): Default to - posix thread support. - -2006-10-15 Jan Hubicka - - PR middle-end/29241 - * cgraphunit.c (cgraph_preserve_function_body_p): Preserve functions - declared always_inline even when not inlining. - -2006-10-15 Eric Botcazou - John David Anglin - Andrew Pinski - - PR middle-end/29111 - * builtins.c (get_pointer_alignment): Return 0 if TER is not run. - -2006-10-15 Jan Hubicka - Richard Guenther - - PR middle-end/29299 - * cgraphunit.c (cgraph_finalize_compilation_unit): Call - process_function_and_variable_attributes on all variables, including - those discovered during cgraph construction phase. - -2006-10-15 Bernhard Fischer - - * final.c: Update Copyright year. Commentary typo fix. Fix whitespace - -2006-10-14 Uros Bizjak - - * config/i386/athlon.md (athlon_fist): Add fisttp. - -2006-10-13 David Edelsohn - Ian Lance Taylor - - PR middle-end/29250 - * expr.c (expand_expr_real_1) : Change EXPAND_SUM modifier to EXPAND_NORMAL when - recursing. - -2006-10-14 Kazu Hirata - - * config/score/score.c, config/score/score.h: Fix comment - typos. - -2006-10-13 Kaveh R. Ghazi - - PR bootstrap/29402 - * Makefile.in (ALL_GTFILES_H): Use $(sort ...) instead of - shell pipeline. - -2006-10-13 Eric Christopher - - * config/darwin.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define. - -2006-10-13 Carlos O'Donell - - Revert this change: - 2006-10-13 Carlos O'Donell - * config/elfos.h (MAX_OFILE_ALIGNMENT): Default to largest - alignment supported by 32-bit ELF. - -2006-10-13 Eric Christopher - - * config/darwin.c (darwin_emit_unwind_label): Strip - name encoding. Use DECL_ASSEMBLER_NAME_SET_P. - -2006-10-13 Richard Guenther - - PR tree-optimization/29446 - * tree-vrp.c (fix_equivalence_set): Remove. - (extract_range_from_assert): Do not call fix_equivalence_set. - (debug_value_range): Print a newline. - (compare_name_with_value): For equivalence sets with - inconsistent value ranges conservatively bail out. - (compare_names): Likewise. - -2006-10-13 David Edelsohn - - * doc/install.texi (*-ibm-aix*): Add comment about 32-bit GMP - and MPFR for gfortran. - -2006-10-13 Carlos O'Donell - - * config/elfos.h (MAX_OFILE_ALIGNMENT): Default to largest - alignment supported by 32-bit ELF. - -2006-10-13 Paolo Bonzini - - PR c/29092 - - * c-typeck.c (digest_init): Always allow initializing vectors - that have static storage duration with compound literals. - * tree.c (build_type_attribute_qual_variant): New, based on - build_type_attribute_variant. - (build_type_attribute_variant): Rewrite using the former. - (make_vector_type): Use build_type_attribute_qual_variant to build - type variants. Use type_hash_canon on the others. - -2006-10-13 Daniel Berlin - Ramana Radhakrishnan - - * tree-flow-inline.h (zero_ssa_operands): Fix comment. - -2006-10-12 Jan Hubicka - - PR c/28419 - * c-decl.c (c_make_fname_decl): Do not segfault in case where - current_function_decl is set but current_function_scope is not. - -2006-10-12 Jie Zhang - - * config/bfin/bfin.md (eh_return): Call emit_jump_insn instead of - emit_insn to emit eh_return_internal instruction. - (eh_return_internal): Explicitly set pc. - -2006-10-11 Richard Guenther - - PR tree-optimization/28230 - * tree-vrp.c (vrp_int_const_binop): Move flag_wrapv handling - to the correct place. - -2006-10-11 Richard Guenther - - PR inline-asm/29119 - * gimplify.c (gimplify_asm_expr): Mark the gimplified lvalue - addressable. - -2006-10-10 Brooks Moses - - * configure.ac: Added pdf to "Make-hooks" - * Makefile.in: Added TEXI2PDF definition, and various pdf-file - targets and *.pdf file patterns in cleanup targets. - * configure: Regenerated. - -2006-10-10 Anatoly Sokolov - - * config/avr/predicates.md: New file. - * config/avr/avr.md: Include it. - (REG_SP): New constant. - (peepholes): Use predicates. - (sbrx_branch, sbrx_and_branchhi, sbrx_and_branchsi, branch, rvbranch, - difficult_branch, difficult_rvbranch, cbi, sbi, sbix_branch, - sbix_branch_bit7, sbix_branch_tmp, sbix_branch_tmp_bit7): Ditto. - -2006-10-10 Adam Nemet - - * config/mips/mips.c (mips_save_restore_reg): Use gen_frame_mem to - avoid alias set 0. - -2006-10-10 Jakub Jelinek - - PR middle-end/29272 - * builtins.c (var_decl_component_p): New function. - (fold_builtin_memset, fold_builtin_memory_op): Restrict - single entry optimization to variables and components thereof. - -2006-10-10 Richard Guenther - - PR rtl-optimization/29323 - * except.c (set_nothrow_function_flags): For functions - that do not bind local bail out early. - -2006-10-10 Ben Elliston - - * doc/invoke.texi (RS/6000 and PowerPC Options): Add -m to the - -mdlmzb option. - -2006-10-09 Richard Henderson - - Revert emutls patch. - -2006-10-09 Richard Guenther - - PR middle-end/29254 - * cgraphunit.c (verify_cgraph_node): Bail out on earlier - errors. - -2006-10-09 Steve Ellcey - - PR target/27880 - * unwind-c.c (PERSONALITY_FUNCTION): Ifdef use of _Unwind_GetIPInfo. - * configure.ac (HAVE_GETIPINFO): Check for _Unwind_GetIPInfo. - * configure: Regenerate. - * config.in: Regenerate. - -2006-10-09 Aldy Hernandez - - * tree-mudflap.c (mf_xform_derefs_1): Add parentheses around TREE_TYPE. - -2006-10-08 Richard Sandiford - - * config/mips/mips.c (mips_legitimize_tls_address): Implement - all TLS models in the same way as local exec if !TARGET_ABICALLS. - Remove stray newline. - -2006-10-08 Richard Sandiford - - * config/mips/mips.c (mips_classify_symbol): Do not return - SYMBOL_SMALL_DATA if SYMBOL_REF_WEAK. - (mips_in_small_data_p): Tweak comments. - -2006-10-08 Richard Sandiford - - * config/mips/elf.h (HANDLE_PRAGMA_PUSH_POP): Define. - -2006-10-07 Kazu Hirata - - * gimplify.c, sched-int.h: Fix comment typos. - - * sched-int.h: Fix comment typos. - -2006-10-06 Maxim Kuvyrkov - - * sched-int.h (IS_SPECULATION_CHECK_P, IS_SPECULATION_SIMPLE_CHECK_P): - New macros. - * sched-ebb.c (begin_schedule_ready): Use them. - * haifa-sched.c (schedule_insn, move_insn, try_ready, - add_to_speculative_block, create_check_block_twin, speculate_insn, - fix_jump_move, move_block_after_check): Ditto. - * sched-rgn.c (new_ready): Ditto. - -2006-10-06 Maxim Kuvyrkov - - PR rtl-optimization/29128 - * sched-int.h (IS_SPECULATION_BRANCHY_CHECK_P): New macro. - * sched-ebb.c (advance_target_bb): Use it to fix condition to - allow interblock movement of speculation checks. - -2006-10-06 Zdenek Dvorak - - PR middle-end/29256 - * tree-ssa-loop-ivopts.c (determine_base_object): Handle pointers - casted to integer type. - (get_address_cost): Decrease cost of [symbol + index] addressing modes - if they are significantly more expensive than [reg + index] ones. - -2006-10-06 Jakub Jelinek - - PR tree-optimization/29330 - * tree-data-ref.c (free_data_ref): Use DR_FREE_ACCESS_FNS macro. - (initialize_data_dependence_relation): Clear DDR_LOOP_NEST pointer - on newly allocated ddrs. - (find_loop_nest_1, find_loop_nest): Change LOOP_NEST to a pointer - to VEC (loop_p, heap) pointer. - (compute_data_dependences_for_loop): Adjust caller. - (free_dependence_relations): Free DDR_LOOP_NEST. - - * tree-loop-linear.c (linear_transform_loops): Don't forget to - free DEPENDENCE_RELATIONS and DATAREFS. - - PR target/28924 - * builtins.c (expand_builtin_sync_operation, - expand_builtin_compare_and_swap, expand_builtin_lock_test_and_set): - Use convert_to_mode to handle promoted arguments. - -2006-10-06 J"orn Rennecke - - * print-tree.c (print_node_brief, print_node): Print sign of Inf. - -2006-10-06 J"orn Rennecke - - * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Define. - -2006-10-05 Uros Bizjak - - * config/i386/sync.md ("sync_add", "sync_sub", - "sync_ior", "sync_and", "sync_xor"): - Use instead of "r" as operand 1 constraint. - -2006-10-06 Olivier Hainque - - * gimplify.c (gimplify_type_sizes) [POINTER_TYPE, REFERENCE_TYPE]: - Don't recurse on the pointed-to type. - * c-decl.c (grokdeclarator) [cdk_pointer]: If we are in a NORMAL or - DECL context, attach an artificial TYPE_DECL to anonymous pointed-to - types with components of variable size. - -2006-10-06 Danny Smith - - * config/i386/mingw32.h (GOMP_SELF_SPECS): Add -mthreads for openmp. - -2006-10-06 Jakub Jelinek - - PR tree-optimization/29290 - * tree-loop-linear.c (linear_transform_loops): Bail if loop_nest has - multiple exits. - - PR target/29198 - * config/i386/i386.c (legitimize_pic_address): Reject TLS symbols. - * config/i386/predicates.md (local_symbolic_operand): Likewise. - - PR c/29091 - * varasm.c (output_constant): If TREE_VECTOR_CST_ELTS chain is shorter than - the number of vector elements fill the rest with zeros. - -2006-10-05 Richard Sandiford - - * config/mips/mips.c (mips_pass_by_reference): Do not return false - for EABI if type is NULL. Use a size check based on GET_MODE_SIZE - instead. - -2006-10-05 Bernd Schmidt - - * config/bfin/bfin.md (subsi3): Lose expander, change previously - unnamed pattern into subsi3. Use correct constraints/predicates. - * config/bfin/bfin.h (CONST_OK_FOR_K): Handle "KN7". - * config/bfin/predicates.md (reg_or_neg7bit_operand_p): New. - -2006-10-05 Ira Rosen - - * doc/loop.texi: Add data references analysis description. - -2006-10-04 Brooks Moses - - * doc/gcov.texi: Add formatting to "Invoking gcov" section head. - -2006-10-04 Richard Henderson - Jakub Jelinek - - * Makefile.in (libgcc.mk, LIBGCC_DEPS): Add emutls.c. - * builtin-types.def (BT_WORD): Make unsigned. - (BT_FN_VOID_PTR_WORD_WORD_PTR): New. - * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS): New. - (BUILT_IN_EMUTLS_REGISTER_COMMON): New. - * c-decl.c (grokdeclarator): Don't error if !have_tls. - * c-parser.c (c_parser_omp_threadprivate): Likewise. - * cgraph.c (decide_is_variable_needed): Look at force_output. - Recurse for emulated tls. - * cgraphunit.c (cgraph_varpool_remove_unreferenced_decls): Remove - checks redundant with decide_is_variable_needed. - (cgraph_build_static_cdtor): Do cgraph_varpool_assemble_pending_decls. - * dwarf2out.c (loc_descriptor_from_tree_1): Don't do anything for - emulated tls. - * expr.c (emutls_var_address): New. - (expand_expr_real_1): Expand emulated tls. - (expand_expr_addr_expr_1): Likewise. - * libgcc-std.ver: Add __emutls_get_address, __emutls_register_common. - * output.h (emutls_finish): Declare. - * toplev.c (compile_file): Call it. - * tree-ssa-address.c (gen_addr_rtx): Check for const-ness of the - address before wrapping in CONST. - * varasm.c (emutls_htab, emutls_object_type): New. - (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): New. - (get_emutls_object_name, get_emutls_object_type): New. - (get_emutls_init_templ_addr, emutls_decl): New. - (emutls_common_1, emutls_finish): New. - (assemble_variable): When emulating tls, swap decls; generate - constructor for the emutls objects. - (do_assemble_alias): When emulating tls, swap decl and target name. - (default_encode_section_info): Don't add SYMBOL_FLAG_TLS_SHIFT - for emulated tls. - * emutls.c: New file. - * config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): Only emit - tls_object for real tls. - -2006-10-04 Zack Weinberg - - Fix bug in constraint-check generator, reported by Rask Ingemann - Lambertsen: - * genpreds.c (add_constraint): Don't remove anything from the - expression here. - (write_tm_constrs_h): Detect whether "op" argument is used, and - mark it ARG_UNUSED if it isn't. - (write_insn_const_int_ok_for_constraint): Skip the part of the - expression that would test whether "op" (which is not available - here) is a CONST_INT. - -2006-10-04 Ryan Mansfield - - PR c++/28448 - * doc/invoke.texi (fdiagnostics-show-option): Fix typos. - -2006-10-03 Geoffrey Keating - - * config/i386/darwin-libgcc.10.5.ver: Update to symbol list for - current Leopard versions. - * config/rs6000/darwin-libgcc.10.5.ver: Likewise. - -2006-10-03 Kazu Hirata - - * doc/install.texi: Fix typos. - -2006-10-03 Eric Botcazou - - * builtins.c (expand_builtin_return_addr): Deal with FRAME_ADDR_RTX. - * doc/tm.texi (Basic Stack Layout): Document FRAME_ADDR_RTX. - * config/sparc/sparc.h (FRAME_ADDR_RTX): Define. - -2006-10-02 Jack Howarth - - * unwind-dw2-fde-darwin.c (getsectdatafromheader_64): Fix first - arg to be struct mach_header_64* instead. - -2006-10-02 Jakub Jelinek - - PR c/29154 - * gimplify.c (gimplify_self_mod_expr): Run inner expression's post - side effects after the outer expression's post side effects. - -2006-10-01 Sandra Loosemore - - * tree.h (DECL_FIELD_OFFSET, DECL_FIELD_BIT_OFFSET): Fix - comments to reflect actual behavior and relationship between - DECL_FIELD_OFFSET, DECL_FIELD_BIT_OFFSET, and DECL_OFFSET_ALIGN. - - * doc/c-tree.texi (Working with declarations): Fix documentation - of FIELD_DECL likewise. - -2006-10-01 Ryan Mansfield - - PR c/20533 - * doc/extend.texi: Add used variable attribute description. - -2006-09-30 Joseph S. Myers - - PR c/24010 - * c.opt (Woverride-init): New. - * c-opts.c (c_common_post_options): Default warn_override_init to - extra_warnings. - * c-typeck.c (add_pending_init, output_init_element): Warn for - overriding initializers without side effects. - * doc/invoke.texi (-Woverride-init): Document. - (-Wextra): Update. - -2006-09-30 Eric Botcazou - - PR rtl-optimization/28096 - * ifcvt.c (check_cond_move_block): Return FALSE if the source of an - assignment has already been used as a destination earlier in the block. - -2006-09-29 Eric Botcazou - - * builtins.c (expand_builtin_setjmp): Delete. - (expand_builtin) : Mark as unreachable. - : New case. - : Likewise. - : Likewise. - * builtins.def (BUILT_IN_SETJMP_SETUP): New built-in stub. - (BUILT_IN_SETJMP_DISPATCHER): Likewise. - (BUILT_IN_SETJMP_RECEIVER): Likewise. - * gimple-low.c (struct lower_data): New field calls_builtin_setjmp. - (lower_function_body): Initialize it to false. If it is set to true - at the end of the processing, emit the setjmp dispatcher. - (lower_stmt) : Invoke lower_builtin_setjmp if the callee - is __builtin_setjmp and set calls_builtin_setjmp to true as well. - : Fall through to above case if there is a CALL_EXPR - on the rhs of the assignment. - (lower_builtin_setjmp): New function. - * tree.c (build_common_builtin_nodes): Build BUILT_IN_SETJMP_SETUP, - BUILT_IN_SETJMP_DISPATCHER and BUILT_IN_SETJMP_RECEIVER nodes. - * tree-cfg.c (make_exit_edges) : Use specific predicate - to detect calls that can go to non-local labels. Use specific - helper to create the abnormal edges associated with them. - : Likewise. - (make_abnormal_goto_edges): New function extracted from... - (make_goto_expr_edges): ...here. Call it for computed gotos. - (simple_goto_p): Minor tweak. - (tree_can_make_abnormal_goto): New predicate. - (tree_redirect_edge_and_branch): Return zero on all abnormal edges. - (tree_purge_dead_abnormal_call_edges): New function. - * tree-flow.h (tree_can_make_abnormal_goto): Declare. - (tree_purge_dead_abnormal_call_edges): Likewise. - (make_abnormal_goto_edges): Likewise. - * tree-inline.c (expand_call_inline): Simplify statement frobbing. - Purge all dead abnormal edges if the call was in the last statement. - * tree-optimize.c (has_abnormal_outgoing_edge_p): New predicate. - (execute_fixup_cfg): If there are non-local labels in the function, - scan the basic blocks and split them at calls that can go to non-local - labels or add missing abnormal call edges. Write down the CFG in the - dump file. - (pass_fixup_cfg): Remove TODO_dump_func flag. - * unwind-sjlj.c: Poison setjmp. - * doc/install.texi (enable-sjlj-exceptions): Use more general wording. - * doc/tm.texi (DWARF2_UNWIND_INFO): Likewise. - (TARGET_UNWIND_TABLES_DEFAULT): Fix typo. - (DONT_USE_BUILTIN_SETJMP): Document it. - -2006-09-28 Geoffrey Keating - - PR target/28617 - * config/rs6000/rs6000.h [IN_LIBGCC2] (TARGET_POWERPC64): Define - to 1 when __ppc64__ is defined. - * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Add ppc64-fp.c and - darwin-64.c. - * config/rs6000/ppc64-fp.c: Also compile when __ppc64__ is defined. - -2006-09-28 Steve Ellcey - - * config/ia64/t-hpux (LIB2FUNCS_EXTRA): Remove unwind-hpux.c. - * config/ia64/unwind-hpux.c: Delete. - -2006-09-28 Eric Botcazou - - * gimplify.c (gimplify_init_ctor_preeval): Call maybe_with_size_expr - on the element before gimplifying it, instead of punting if it is of - variable size. - -2006-09-28 Zdenek Dvorak - - * doc/loop.texi: New file. - * doc/gccint.texi: Reference loop.texi. - * Makefile.in (loop.texi): Add. - -2006-09-27 Geoffrey Keating - - * config/darwin.h (ENABLE_EXECUTE_STACK): New, use getpagesize not - __sysctl. - * config/rs6000/darwin.h (ENABLE_EXECUTE_STACK): Remove. - * config/i386/darwin.h (ENABLE_EXECUTE_STACK): Remove. - -2006-09-28 Kaz Kojima - - * config/sh/sh.md (divsi_inv_m0): Remove unused variable. - -2006-09-27 Steven G. Kargl - - * doc/install.texi: Document required versions of GMP and MPFR. - -2006-09-27 Paul Brook - - PR target/29230 - * config/arm/arm.md (arith_adjacentmem): Handle large offsets. - -2006-09-27 Richard Sandiford - - * reload1.c (alter_reg): Require the alignment of the stack slot to - be at least reg_max_ref_width bytes. - (scan_paradoxical_subregs): Record the largest width in - reg_max_ref_width. - -2006-09-26 Jakub Jelinek - - PR middle-end/25261 - PR middle-end/28790 - * tree-nested.c (struct nesting_info): Added static_chain_added. - (convert_call_expr): Set static_chain_added when adding static - chain. Handle OMP_PARALLEL and OMP_SECTION. - -2006-09-25 Matthias Klose - - * doc/invoke.texi: Add missing full stop. - -2006-09-25 Richard Henderson - - * cgraph.c (dump_cgraph_varpool_node): Don't crash if called - before cgraph_function_flags_ready. - -2006-09-24 Zdenek Dvorak - Adam Nemet - - * tree-ssa-loop-ivopts.c (aff_combination_convert, - determine_common_wider_type): New functions. - (get_computation_aff): Use them to simplify arithmetic between - UBASE and CBASE if they are shortened from the same type. - -2006-09-24 Kazu Hirata - - PR target/28911 - * config/m68k/m68k.md (negsf2, negdf2, negxf2): Use - -2147483647 - 1 instead of 0x80000000. - -2006-09-23 Revital1 Eres - - * flags.h (HONOR_NANS): Fix typo in comment. - -2006-09-23 Uros Bizjak - - * config/i386/driver-i386.c (host_detect_local_cpu): Add prototype. - -2006-09-23 Jakub Jelinek - - PR c/28706 - PR c/28712 - * tree.c (merge_attributes, attribute_list_contained): If both - TREE_VALUEs are TREE_LISTs, use simple_cst_list_equal instead of - simple_cst_equal. - * c-typeck.c (comptypes_internal): Don't consider aggregates - in different TUs as compatible if there one set of attributes is - not a subset of the other type's attributes. - (composite_type): Try harder not to create a new aggregate type. - -2006-09-22 Geoffrey Keating - - * config/i386/driver-i386.c: Always define host_detect_local_cpu. - * config/i386/i386.h: Define EXTRA_SPEC_FUNCTIONS on any i386 - or x86_64 host. Define HAVE_LOCAL_CPU_DETECT. - (CC1_CPU_SPEC): Make conditional on HAVE_LOCAL_CPU_DETECT rather - than replicating condition above. - * config.host (i[34567]86-*-*): Always use driver-i386.o. - - * config/darwin.h (LINK_SYSROOT_SPEC): New. - (LINK_SPEC): If TARGET_SYSTEM_ROOT is defined, pass it to - the linker by default. - -2006-09-22 Mike Stump - - * config/rs6000/darwin.h (PROFILE_HOOK): Reassociate comment with - code. - -2006-09-22 Richard Guenther - - PR middle-end/28964 - * cfgexpand.c (stack_var_size_cmp): Use DECL_UID to make - sort of stack variables stable. - -2006-09-22 Peter Bergner - - PR middle-end/28690 - * explow.c (force_reg): Set REG_POINTER flag according to - MEM_POINTER flag. - -2006-09-22 Zdenek Dvorak - - PR tree-optimization/28888 - * tree-if-conv.c (combine_blocks): Rewritten. - * tree-cfg.c (tree_verify_flow_info): Check that edges with - EDGE_TRUE/FALSE_VALUE follow COND_EXPR. - -2006-09-22 Jakub Jelinek - - * tree-ssa-propagate.c (set_rhs): Copy EXPR_LOCATION if - needed. - -2006-09-21 Richard Sandiford - - * varasm.c (copy_constant): Fix reversed gcc_assert check. - -2006-09-21 Janis Johnson - - * ginclude/decfloat.h (DEC*_DEN): Define using the correct builtins. - -2006-09-21 Roger Sayle - - PR debug/29132 - * dwarf2out.c (dwarf2out_begin_prologue): Initialise the current label, - dw_fde_current_label, to be the start of the function, i.e. the same - value as dw_fde_begin. - -2006-09-20 Richard Sandiford - - * config/mips/mips.c (CODE_FOR_mips_abs_ps): Delete. - * config/mips/mips.md (UNSPEC_ABS_PS): New constant. - (UNSPEC_RSQRT1, UNSPEC_RSQRT2, UNSPEC_RECIP1, UNSPEC_RECIP2) - (UNSPEC_SINGLE_CC, UNSPEC_SCC): Bump values by 1. - (*nmadd, *nmadd_fastmath): Require !HONOR_NANS. - (*nmsub, *nmsub_fastmath): Likewise. - (abs2, neg2): Likewise. - * config/mips/mips-ps-3d.md (mips_abs_ps): New define_expand. - (*mips_abs_ps): New define_insn. - -2006-09-20 Josh Conner - - PR middle-end/25505 - * calls.c (expand_call): Allow reuse of structure return stack - temp. - -2006-09-20 Paul Brook - - * config/arm/unwind-arm.c (selfrel_offset31): Clear top bit for - positive offsets. - -2006-09-20 Janis Johnson - - * doc/extend.texi (Decimal Float): Update for latest draft TR, - clean up terminology. - -2006-09-20 Steve Ellcey - - PR target/28574 - * ifcvt.c (dead_or_predicable): Don't predicate then blocks - with tablejumps in them. - -2006-09-20 Jakub Jelinek - - PR middle-end/28046 - * c-omp.c (c_finish_omp_atomic): If ADDR is not simple enough, - wrap it into TARGET_EXPR. - -2006-09-20 Eric Christopher - - * config/i386/i386.c (x86_fisttp): Remove. - * config/i386/i386.h (x86_fisttp): Ditto. - (TARGET_FISTTP): Ditto. - -2006-09-19 Eric Christopher - - * doc/tm.texi (OBJC_JBLEN): Describe. - * config/i386/darwin.h (OBJC_JBLEN): Define. - * config/rs6000/darwin.h: Ditto. - -2006-09-19 Steven Bosscher - - PR rtl-optimization/21299 - * reload1.c (reload): Purge invalid ASMs in the final pass. - -2006-09-19 Steve Ellcey - - PR 28490 - * config/ia64/ia64.c (ia64_legitimate_constant_p): Allow function - pointers as legitimate constants. - -2006-09-19 Paul Brook - - PR target/28516 - * config/arm/arm.c (arm_unwind_emit_set): Handle reg = sp + const. - -2006-09-17 Zdenek Dvorak - - PR tree-optimization/28887 - * tree-ssa-loop-prefetch.c (analyze_ref): Strip nonaddressable - component parts from the reference. - (gather_memory_references_ref): Record the reference without the - nonaddressable component parts. - -2006-09-17 Steven Bosscher - - PR c/25993 - * c-opts.c (c_common_handle_option): Ignore the -std options - if the input language is assembly. - -2006-09-17 Ira Rosen - - PR tree-opt/21591 - * tree-data-ref.c (ptr_decl_may_alias_p): Look for the name memory - tag first. - (ptr_ptr_may_alias_p): Likewise. - (record_record_differ_p): New function. - (base_object_differ_p): Call record_record_differ_p. - -2006-09-16 Andrew Pinski - - PR tree-opt/29059 - * tree-ssa-propagate.c (set_rhs): Reject MODIFY_EXPR right - away for the expr argument. - -2006-09-16 Steven Bosscher - - PR tree-opt/27742 - * tree-vectorizer.c (vectorize_loops): Clear vect_loop_location - before using it for dumping after vectorizing loops. - -2006-09-16 Andrew Pinski - Jack Howarth - - PR target/29030 - * config/rs6000/rs6000.c (rs6000_darwin64_record_arg_advance_recurse) - skip on error_mark_node. - (rs6000_darwin64_record_arg_recurse): Likewise. - -2006-09-16 Steven Bosscher - - * rtl.h (LABEL_OUTSIDE_LOOP_P): Remove. - * doc/rtl.texi: Remove related documentation. - -2006-09-16 Bernd Schmidt - - * loop-doloop.c (doloop_optimize): Remove bogus arg from debugging - printf. - -2006-09-15 Jim Wilson - - * config/ia64/ia64.c (ia64_legitimate_constant_p, cast CONST): - Handle symbol offsets same as they are handled in ia64_expand_move - and move_operand. - -2006-09-16 Andreas Tobler - - * loop-doloop.c (doloop_optimize): Change type of max_cost to int. - Add forgotten parameter to the fprintf call. - -2006-09-15 Steve Ellcey - - * config/ia64/hpux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Add define. - -2006-09-15 Uros Bizjak - - * doc/contrib.texi: Add my entry. - -2006-09-15 Nick Clifton - - * doc/md.texi (Processor pipeline description): Fix typo in - example of how to use the absence_set directive and reword the - description to make it slightly easier to read. - -2006-09-15 Bernd Schmidt - - * params.def (PARAM_MAX_ITERATIONS_COMPUTATION_COST): New. - * loop-doloop.c (doloop_optimize): Use it to limit costs of - expanding the number of iterations. - * config/bfin/bfin.c (bfin_rtx_costs): Handle UDIV, UMOD. - - * cfgrtl.c (emit_insn_at_entry): New function. - * rtl.h (emit_insn_at_entry): Declare it. - * integrate.c (emit_initial_value_sets): Use it. - - * cfgrtl.c (emit_insn_at_entry): Use gcc_assert, not abort. - - * config/bfin/bfin.c (struct loop_info): New members block_bitmap and - bad. - (struct loop_work and related VEC declarations): Delete. - (bfin_dump_loops): Print out new member bad. - (bfin_bb_in_loop): Use plain bitmap test. Don't recurse. - (bfin_scan_loop): Don't recurse. - (bfin_optimize_loop): Don't use a loop depth of -1 to indicate bad - loops. No longer need to update outer loops if the current one is - found bad. Move some validitiy checks to bfin_discover_loop. - (bfin_discover_loop): New function, mostly split from bfin_reorg_loops, - but changed not to check for nesting. Also changed to use the new bad - flag. - (bfin_reorg_loops): Use bfin_discover_loop to find single loops one at a - time. Use bitmap based test to discover loop nesting. - -2006-09-15 Kazu Hirata - - * doc/tm.texi (TARGET_FUNCTION_VALUE): Put @deftypefn all in - one line. - -2006-09-14 Richard Guenther - Kazu Hirata - - PR middle-end/28884. - * doc/tm.texi (TARGET_FUNCTION_VALUE): Document. - (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE): Deprecate. - Replace mentions of FUNCTION_VALUE and FUNCTION_OUTGOING_VALUE - with TARGET_FUNCTION_VALUE. - -2006-09-14 Anatoly Sokolov - - PR target/26504 - * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Define. - -2006-09-13 Aldy Hernandez - - * doc/tree-ssa.texi (Jumps): RESULT_DECL can also be an operand - of a RETURN_EXPR - -2006-09-13 Andrew Pinski - - PR debug/28980 - * dwarf2out.c (loc_descriptor_from_tree_1): Handle - FUNCTION_DECL. - -2006-09-13 Andreas Krebbel - - * basic_block.h (bb_has_eh_pred): Fix comment. - -2006-09-13 Andreas Krebbel - - * flow.c (calculate_global_regs_live): Invalidate eh registers - on eh edges. Renamed invalidated_by_call to invalidated_by_eh_edge. - (propagate_block): Handle eh registers as if they were set at basic - block start. - * except.c (dw2_build_landing_pads): Don't emit clobbers for eh - registers. - * global.c (global_conflicts): Make eh registers to conflict with - pseudos live at basic block begin. - * basic_block.h (bb_has_eh_pred): New function. - -2006-09-13 Richard Sandiford - - PR rtl-optimization/28982 - * reload.c (find_reloads_address_1): Use RELOAD_OTHER for the - index of a PRE_MODIFY or POST_MODIFY address. - * reload1.c (inc_for_reload): Use find_replacement on the original - base and index registers. - -2006-09-12 H.J. Lu - - * doc/invoke.texi (mpreferred-stack-boundary): Remove exception - for -Os. Update __m128 alignment requirement. - -2006-09-13 Jan Hubicka - - * cfganal.c (compute_dominance_frontiers_1): Don't be quadratic. - -2006-09-12 Eric Botcazou - - PR rtl-optimization/28243 - * combine.c (distribute_notes) : Do not consider SETs past - the insn to which the note was originally attached. - -2006-09-12 Andrew Pinski - Roger Sayle - - * dwarf2out.c (file_table_last_lookup): Move this GC'd declaration - outside of #ifdef DWARF2_DEBUGGING_INFO to fix bootstrap failure - on platforms that don't use dwarf for debug info. - -2006-09-12 Jason Merrill - - PR middle-end/28493 - * builtins.c (expand_builtin_setjmp_receiver): Clobber - hard_frame_pointer_rtx after using it to update the frame pointer. - -2006-09-12 Roger Sayle - - * target-def.h (TARGET_ASM_OPEN_PAREN): Guard with an #ifndef. - (TARGET_ASM_CLOSE_PAREN): Likewise. - * config/alpha/osf5.h (TARGET_ASM_OPEN_PAREN): Define. - (TARGET_ASM_CLOSE_PAREN): Likewise. - -2006-09-12 Roger Sayle - - PR target/22223 - * config/alpha/alpha.c (alpha_start_function): Don't emit stack - frame information for frames larger than 512 Kbytes on Tru64 when - using the native assembler. - -2006-09-12 Roger Sayle - - PR middle-end/4520 - PR bootstrap/28784 - * cselib.c (cselib_hash_rtx): Avoid hashing on the address of labels - and symbols. Instead use the implementation from cse.c's hash_rtx. - -2006-09-12 Jan Hubicka - - PR rtl-optimization/28071 - * tree-vect-transform.c (vect_create_data_ref_ptr): Kill cast. - (vect_transform_loop): Likewise. - * tree-vectorizer.c (new_loop_vec_info): Likewise. - (new_loop_vec_info): Likewise. - (destroy_loop_vec_info): Likewise. - * tree-dfa.c (create_var_ann): Use GCC_CNEW. - (create_stmt_ann): Likewise. - (create_tree_ann): Rename to ... - (create_tree_common_ann): ... this one; allocate only the common part - of annotations. - * tree-vn.c (set_value_handle): Use get_tree_common_ann. - (get_value_handle): Likewise. - * tree-ssa-pre.c (phi_translate): Delay annotation allocation for - get_tree_common_ann. - * tree-vectorizer.h (set_stmt_info): Take stmt annotation. - (vinfo_for_stmt): Use stmt annotations. - * tree-flow.h (tree_ann_common_t): New type. - (tree_common_ann, get_tree_common_ann, create_tree_common_ann): New. - (tree_ann, get_tree_ann, create_tree_ann): New. - * tree-flow-inline.h (get_function_ann): Do more type checking. - (stmt_ann): Likewise. - (tree_ann): Rename to ... - (tree_common_ann): ... this one; return ony common_ann - (get_tree_ann): Rename to ... - (tree_common_ann): This one; return only common_ann. - * tree-vect-patterns.c (vect_pattern_recog_1): Update call - of set_stmt_info. - -2006-09-11 Geoffrey Keating - - * config.gcc (i[34567]86-*-darwin*): Set with_arch and - with_cpu by default. - - * dwarf2out.c (dwarf_file_data): New. - (enum dw_val_class): Add dw_val_class_file. - (struct dw_val_struct): Add val_file. - (file_table): Change to a hash table. - (file_table_emitted): Delete. - (file_table_last_lookup_index): Delete. - (emitcount): Delete. - (last_emitted_file): New. - (lookup_filename): Change prototype to return a struct dwarf_file_data. - (init_file_table): Delete. - (maybe_emit_file): Change prototype to take a struct dwarf_file_data. - (AT_addr): Add comment. - (add_AT_file): New. - (AT_file): New. - (get_AT_file): New. - (print_die): Handle dw_val_class_file. - (print_dwarf_line_table): Update for new file table structure. - (attr_checksum): Do checksum a filename. - (same_dw_val_p, same_attr_p): Do compare a filename. - (size_of_die): Handle dw_val_class_file. - (value_format): Likewise. - (output_die): Likewise. Also, call maybe_emit_file here. - (struct file_info): Constify filenames. Make file_idx a pointer - to a struct dwarf_file_data. - (struct dir_info): Constify directory names. Remove 'used' field. - (struct file_name_acquire_data): New. - (file_name_acquire): New. - (output_file_names): Modify to handle new file data structures. - (add_src_coords_attributes): Use add_AT_file. - (add_call_src_coords_attributes): Likewise. - (dwarf2out_imported_module_or_decl): Likewise. - (gen_subprogram_die): Modify for new file data structures. - (gen_variable_die): Likewise. - (file_table_eq): New. - (file_table_hash): New. - (file_table_last_lookup): New. - (lookup_filename): Rewrite to handle new file data structures. - (maybe_emit_file): Rewrite to handle new file data structures. - (dwarf2out_source_line): Always call lookup_filename and - maybe_emit_file. - (dwarf2out_init): Create file_table here. - (prune_unused_types_walk_attribs): Don't call maybe_emit_file here. - (file_table_relative_p): New. - (dwarf2out_finish): Change detection of relative filenames - to work with new file data structures. Move output_line_info call - after debug_info output. - -2006-09-11 H.J. Lu - - PR target/13685 - PR target/27537 - PR target/28621 - * config/i386/i386.c (override_options): Always default to 16 - byte stack boundary. - -2006-09-11 Alexandre Oliva - - PR target/28672 - * var-tracking.c (dump_dataflow_set): Start dumping at - register zero. - (clobber_variable_part): Kill only the variable part in - registers holding it, leaving other variables alone. - -2006-09-11 Josh Triplett - - * doc/extend.texi (Other Builtins): Actually use the macro - argument in the documentation example for - __builtin_types_compatible_p. - -2006-09-11 Eric Botcazou - - PR rtl-optimization/28726 - * sched-deps.c (sched_analyze_reg): New function extracted from... - (sched_analyze_1): ...here. Call it to analyze references to - registers. Treat again writes to a stack register as writing to the - register. - (sched_analyze_2): ...and here. Call it to analyze references to - registers. Treat again reads of a stack register as reading the - register. - -2006-09-11 Guenter Roeck - David Edelsohn - - PR target/27287 - * config/rs6000/spe.md (frob_df_di): Remove %H. - (frob_di_df): Remove %H. Change evmergelo to mr. - (frob_di_df_2): Remove %H. Change evldd to two loads. - -2006-09-11 Hideki Iwamoto - - * doc/cpp.texi: Fix names of charset options. - -2006-09-10 Andrew Pinski - - PR target/29009 - * config/i386/i386.c (override_options): Use 128-bit - stack boundary always for 64bits. - -2006-09-10 Eric Botcazou - - PR rtl-optimization/28636 - * combine.c (force_to_mode): Test for side-effects before - substituting by zero. - (simplify_shift_const): Likewise for zero or other constants. - -2006-09-10 Steven Bosscher - - PR middle-end/26983 - * builtins.c (expand_builtin_setjmp): Force next_lab to be - preserved. - -2006-09-10 Richard Sandiford - - PR target/29006 - * config/mips/mips-protos.h (mips_mem_fits_mode_p): Declare. - * config/mips/mips.c (mips_expand_unaligned_store): Use the mode - returned by mode_for_size, rather than the mode of src itself, - to choose between 32-bit and 64-bit patterns. - (mips_mem_fits_mode_p): New function. - * config/mips/mips.md (mov_l, mov_r): Use it to check - that the size of the source matches the size of the destination. - (mov_l, mov_r): Likewise. - -2006-09-10 Eric Christopher - - * config/darwin.c (machopic_select_rtx_section): Add CONST_VECTOR - for literal16. - -2006-09-09 Eric Christopher - - PR target/28995 - * config/darwin.c (machopic_select_rtx_section): Add TARGET_64BIT - for literal16. - -2006-09-09 Roger Sayle - Nicolas Setton - - * dwarf2out.c (convert_cfa_to_fb_loc_list): Handle DW_CFA_set_loc. - -2006-09-10 Andreas Schwab - - * config/m68k/m68k.md (bungt_rev): New pattern. - -2006-09-09 Paolo Bonzini - Dale Johannesen - - PR target/26778 - * regclass.c (struct reg_pref): Update documentation. - (regclass): Set prefclass to NO_REGS if memory is the best option. - (record_reg_classes): Cope with a prefclass set to NO_REGS. - -2006-09-08 Eric Christopher - - * config.gcc (i?86-*-darwin): Add 64-bit HWI support. - * config/t-slibgcc-darwin: Support x86_64 multilib. - * config/i386/i386.h (JUMP_TABLES_IN_TEXT_SECTION): - Return 1 for x86_64-darwin. - * config/i386/t-darwin: Add m64 multilib. - (LIB2_SIDITI_CONV_FUNCS): Use. - (LIB2FUNCS_EXTRA): Ditto. - * config/i386/darwin.h: Support x86_64. - * config/i386/i386.c (override_options): Turn on flag_pic - for x86_64-darwin. Disable flag_omit_pointer. - (get_pc_thunk_name): Assert !TARGET_64BIT. - (legitimate_address_p): Disable machopic addressing for - x86_64. - (legitimize_pic_address): Ditto. - (ix86_expand_move): Ditto. - (ix86_expand_call): Ditto. - (machopic_output_stub): Ditto. - * config/darwin.c (machopic_select_section): Support literal16. - (machopic_select_rtx_section): Ditto. - * config/darwin-sections.def: Ditto. - * config/darwin-64.c: New. - -2006-09-08 Joseph S. Myers - - PR c/28504 - * c-tree.h (struct c_arg_info): Add pending_sizes. - * c-parser.c (c_parser_parms_declarator, - c_parser_parms_list_declarator): Initialize pending_sizes. - * c-decl.c (get_parm_info): Initialize pending_sizes. - (get_parm_info): Set pending_sizes. - (grokdeclarator): Call put_pending_sizes for parameters for - function definition only. - -2006-09-07 Jason Merrill - - PR middle-end/27724 - * varasm.c (output_constant): Only strip actual no-op conversions. - - PR target/13685 - * config/i386/i386.c (override_options): Use 128-bit - stack boundary if -msse. - -2006-09-07 Eric Christopher - - * config/darwin.h (MACHO_SYMBOL_FLAG_VARIABLE): Update - comment. - * config/i386/darwin.h (MACHO_SYMBOL_FLAG_VARIABLE): - Redefine. - -2006-09-07 Geoffrey Keating - - * dwarf2out.c: Remove strange characters from comment above - dwarf2out_frame_debug_expr. - -2006-09-07 Eric Christopher - - * config/rs6000/darwin.h (HANDLE_SYSV_PRAGMA): Move from here... - * config/darwin.h: ... to here. - -2006-09-07 H.J. Lu - - * config/i386/i386.c (x86_partial_flag_reg_stall): New. - - * config/i386/i386.h (x86_partial_flag_reg_stall): New. - (TARGET_PARTIAL_FLAG_REG_STALL): New. - - * config/i386/i386.md (*ashldi3_cmp_rex64): Disabled for - TARGET_PARTIAL_FLAG_REG_STALL. - (*ashldi3_cconly_rex64): Likewise. - (*ashlsi3_cmp): Likewise. - (*ashlsi3_cconly): Likewise. - (*ashlsi3_cmp_zext): Likewise. - (*ashlhi3_cmp): Likewise. - (*ashlhi3_cconly): Likewise. - (*ashlqi3_cmp): Likewise. - (*ashlqi3_cconly): Likewise. - (*ashrdi3_cmp_rex64): Likewise. - (*ashrdi3_cconly_rex64): Likewise. - (*ashrsi3_cmp): Likewise. - (*ashrsi3_cconly): Likewise. - (*ashrsi3_cmp_zext): Likewise. - (*ashrhi3_cmp): Likewise. - (*ashrhi3_cconly): Likewise. - (*ashrqi3_cmp): Likewise. - (*ashrqi3_cconly): Likewise. - (*lshrdi3_cmp_rex64): Likewise. - (*lshrdi3_cconly_rex64): Likewise. - (*lshrsi3_cmp): Likewise. - (*lshrsi3_cconly): Likewise. - (*lshrsi3_cmp_zext): Likewise. - (*lshrhi3_cmp): Likewise. - (*lshrhi3_cconly): Likewise. - (*lshrqi2_cmp): Likewise. - (*lshrqi2_cconly): Likewise. - -2006-09-07 Uros Bizjak - - PR target/28946 - * config/i386/i386.md ("*ashldi3_cconly_rex64", "*ashlsi3_cconly", - "*ashlhi3_cconly", "*ashlqi3_cconly", "*ashrdi3_one_bit_cconly_rex64", - "*ashrdi3_cconly_rex64", "*ashrsi3_one_bit_cconly", "*ashrsi3_cconly", - "*ashrhi3_one_bit_cconly", "*ashrhi3_cconly", - "*ashrqi3_one_bit_cconly", "*ashrqi3_cconly", - "*lshrdi3_cconly_one_bit_rex64", "*lshrdi3_cconly_rex64", - "*lshrsi3_one_bit_cconly", "*lshrsi3_cconly", - "*lshrhi3_one_bit_cconly", "*lshrhi3_cconly", - "*lshrqi2_one_bit_cconly", "*lshrqi2_cconly": New patterns to - implement only CC setting effects of shift instructions. - -2006-09-07 Martin Michlmayr - - * doc/contrib.texi: Add myself. - -2006-09-07 Andrew Pinski - - PR middle-end/28862 - * stor-layout.c (relayout_decl): Don't zero the alignment if it - was set by the user. - -2006-09-07 Paolo Bonzini - - PR target/27117 - * config/sh/sh.md (divsi_inv_qitable, divsi_inv_hitable): New patterns. - (divsi_inv_m1): Use them. - (UNSPEC_DIV_INV_TABLE): New constant. - -2006-09-06 James E Wilson - - PR rtl-opt/27883 - * flow.c (update_life_info): If UPDATE_LIFE_LOCAL and PROP_DEATH_NOTES - then call count_or_remove_death_notes. - -2006-09-06 Jason Merrill - - PR c++/27371 - * tree-inline.c (copy_result_decl_to_var): New fn. - (declare_return_variable): Use it. Call declare_inline_vars here. - (expand_call_inline): Not here. - -2006-09-06 Diego Novillo - - * doc/contrib.texi: Update my entry. - -2006-09-06 Nick Clifton - - * config/frv/frv.h (EXTRA_MEMORY_CONSTRAINT): Define. - -2006-09-05 Andrew Pinski - - PR tree-opt/28937 - * tree-flow.h (tree_ssa_unswitch_loops): Return unsigned int. - (canonicalize_induction_variables): Likewise. - (tree_unroll_loops_completely): Likewise. - (tree_ssa_prefetch_arrays): Likewise. - (remove_empty_loops): Likewise. - * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Return - TODO_cleanup_cfg instead of directly calling - cleanup_tree_cfg_loop. - * tree-ssa-loop-ivcanon.c (canonicalize_induction_variables): - Likewise. - (tree_unroll_loops_completely): Likewise. - (remove_empty_loops): Likewise. - * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Likewise. - * tree-ssa-loop.c (tree_ssa_loop_unswitch): Use the return value - of tree_ssa_unswitch_loops. - (tree_ssa_loop_ivcanon): Use the return value of - canonicalize_induction_variables. - (tree_ssa_empty_loop): Use the return value of - remove_empty_loops. - (tree_complete_unroll): Use the return value of - tree_unroll_loops_completely. - (tree_ssa_loop_prefetch): Use the return value of - tree_ssa_prefetch_arrays. - * passes.c (execute_todo): Before Cleanup CFG, set - updating_used_alone and after cleanup CFG, call - recalculate_used_alone. - -2006-09-05 Andrew Pinski - - PR tree-opt/28952 - * tree-vect-transform.c (vectorizable_condition): Move the check - for the type after the check for simple condition. - -2006-09-05 J"orn Rennecke - Kaz Kojima - - PR target/28764 - * mode-switching.c (optimize_mode_switching): Make the destination - block of an abnormal edge have no anticipatable mode. Don't - insert mode switching code at the end of the source block of - an abnormal edge. - -2006-09-05 Paolo Bonzini - - PR rtl-optimization/26847 - * simplify-rtx.c (struct simplify_plus_minus_op_data): Remove ix. - (simplify_plus_minus_op_data_cmp): For REGs, break ties on the regno. - (simplify_plus_minus): Count n_constants while filling ops. Replace - qsort with insertion sort. Before going through the array to simplify - pairs, sort it. Delay early exit until after the first sort, exiting - only if no swaps occurred. Simplify pairs in reversed order, without - special-casing the first iteration. Pack ops after simplifying pairs. - -2006-09-05 Anatoly Sokolov - - * config/avr/avr.c (avr_mcu_types): Add support for at90pwm1 device. - * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.). - * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.). - (avr_rtx_costs): Mark 'outer_code' argument with ATTRIBUTE_UNUSED. - -2006-09-05 Richard Guenther - - PR tree-optimization/28900 - * tree-if-conv.c (find_phi_replacement_condition): Gimplify - compound conditional before creating COND_EXPR condition. - -2006-09-05 Richard Guenther - - PR tree-optimization/28905 - * tree-vrp.c (fix_equivalence_set): Manually implement - !value_ranges_intersect_p to also handle symbolic ranges. - -2006-09-05 Richard Guenther - - PR middle-end/28935 - * tree-ssa-ccp.c (fold_stmt_r): Make sure to fold the condition - of a COND_EXPR. - -2006-09-04 Eric Botcazou - - PR rtl-optimization/27616 - * cse.c (table_size): New static variable. - (new_basic_block): Initialize it to 0. - (remove_from_table): Decrement it. - (insert): Increment it. - (fold_rtx_mem_1): New function, renamed from fold_rtx_mem. - (fold_rtx_mem): Enforce a cap on the recursion depth. Call - fold_rtx_mem_1 if under the cap. - (fold_rtx) : In the associative case, delay a little - the lookup of the equivalent expression and test for equality of the - first operand of the equivalent expression before in turn looking up - an equivalent constant for the second operand. - -2006-09-02 Geoffrey Keating - - Revert this change: - 2006-03-17 Alexandre Oliva - * dwarf2out.c (dwarf2out_stack_adjust): Always track the stack - pointer, instead of assuming it is possible to derive the - correct args size from a call insn. - -2006-09-02 Jakub Jelinek - - PR middle-end/27567 - * builtins.c (fold_builtin_memcpy, fold_builtin_memmove): Remove. - (fold_builtin_mempcpy): Rename to... - (fold_builtin_memory_op): ... this. Optimize one element copy - into an assignment. - (fold_builtin_memset, fold_builtin_bzero, fold_builtin_bcopy): New - functions. - (expand_builtin_strcpy, expand_builtin_strncpy): Handle COMPOUND_EXPR. - (expand_builtin_memcpy, expand_builtin_mempcpy, - expand_builtin_memmove): Likewise. Use fold_builtin_memory_op. - (fold_builtin_1): Handle BUILT_IN_MEMSET, BUILT_IN_BZERO and - BUILT_IN_BCOPY. Use fold_builtin_memory_op for - BUILT_IN_MEM{CPY,PCPY,MOVE}. - -2006-09-01 DJ Delorie - - * config/m32c/cond.md (cbranch4): Defer splitting until after reload. - (stzx_16): Likewise. - ("stzx_24_"): Likewise. - ("stzx_reversed_"): Likewise, and make mode-specific. - ("cmp_op"): New. - (cmp): Change to expander; just save operands. - (b_op): New. - (b): Change to expander, emit compare here. - (s_op): Change to use split and expander. - (s_24_op): Likewise. - (s_): New. - (s__24): New. - (movqicc___): New. - (s): New. - (s_24): New. - * config/m32c/m32c.c (compare_op0, compare_op1): New. - (m32c_pend_compare): New. - (m32c_unpend_compare): New. - (m32c_expand_scc): New. - (m32c_expand_movcc): Emit the compare also. - * config/m32c/predicates.md (mra_nopp_operand): New. - -2006-09-01 J"orn Rennecke - Richard Guenther - Adam Nemet - - PR middle-end/27226 - * builtins.c (get_pointer_alignment): Handle more forms - of base addresses that can be used to derive more precise - information about alignment. - -2006-09-01 Jason Merrill - - PR c++/28899 - * gimplify.c (gimplify_modify_expr_rhs) [BIND_EXPR]: Handle - want_value. - - * gimplify.c (voidify_wrapper_expr): Handle null type. - -2006-09-01 Josh Conner - - PR c++/25505 - * tree-nrv.c (dest_safe_for_nrv_p): New function. - (execute_return_slot_opt): Use it. - -2006-08-31 Josh Conner - - PR c++/25505 - * tree-gimple.c (is_gimple_mem_rhs): Recognize functions - returning aggregates. - -2006-08-31 Zdenek Dvorak - - PR tree-optimization/28839 - * tree-into-ssa.c (prune_unused_phi_nodes): Take into account kills in - blocks in that phi arguments appear. - -2006-08-31 Roger Sayle - - PR other/22313 - * dwarf2out.c (add_fde_cfi): Use a set_loc if the current label is - NULL, otherwise use an advance_loc4 to adjust relative to the - current label. - (output_cfi) : Update the current label. - (dwarf2out_switch_text_section): Reset the current label to avoid - using advance_loc4 over section boundaries. - -2006-08-31 Andreas Krebbel - - PR target/24367 - * config/s390/s390.md ("movsi", "movdi" expander): Accept rtxes like - r12 + SYMBOLIC_CONST. - -2006-08-30 Richard Guenther - - * Makefile.in (see.o): Add $(EXPR_H) dependency. - -2006-08-30 Zdenek Dvorak - - PR rtl-optimization/27735 - * cfgloopmanip.c (fix_loop_placements, fix_bb_placements, unloop): - Add new argument to keep track of whether an irreducible region - was affected. All callers changed. - (fix_irreducible_loops): Removed. - (remove_path): Call mark_irreducible_loops if EDGE_IRREDUCIBLE_LOOP - flags were invalidated. - -2006-08-29 H.J. Lu - - * config/i386/i386.md (*fop_df_comm_mixed): Match DF operands - instead of SF operands. - (*fop_df_comm_sse): Likewise. - (*fop_df_comm_i387): Likewise. - (*fop_df_1_mixed): Likewise. - (*fop_df_1_sse): Likewise. - -2006-08-29 Andrew Pinski - J"orn Rennecke - - PR tree-optimization/17506 - * tree-ssa.c (warn_uninit): If warning about a location outside of - the current function, note where the variable was declared. - -2006-08-28 Zdenek Dvorak - - PR tree-optimization/28411 - * double-int.c (double_int_div): Use double_int_divmod. - (double_int_divmod, double_int_sdivmod, double_int_udivmod, - double_int_mod, double_int_smod, double_int_umod): New functions. - * double-int.h (double_int_divmod, double_int_sdivmod, - double_int_udivmod, double_int_mod, double_int_smod, double_int_umod): - Declare. - * tree-ssa-loop-ivopts.c (constant_multiple_of): Returns the result - in double_int. - (get_computation_aff, get_computation_cost_at): Handle double_int - return type of constant_multiple_of. - -2006-08-28 Kazu Hirata - - PR middle-end/26632 - * convert.c (convert_to_integer): Set TREE_NO_WARNING to 1 on - an implicit conversion. - -2006-08-28 Prafulla Thakare - - * config/h8300/h8300.c (TARGET_DEFAULT_TARGET_FLAGS): New. - -2006-08-27 Roger Sayle - - * ifcvt.c (cheap_bb_rtx_cost_p): Don't speculatively execute - x87 instructions. - -2006-08-27 Kazu Hirata - - * config/i386/crtfastmath.c: Fix a comment typo. - -2006-08-26 Roger Sayle - - * tree.h (CASE_LOW_SEEN, CASE_HIGH_SEEN): New macros for manipulating - temporary visit flags on CASE_LABEL_EXPRs. - * c-common.c (match_case_to_enum): Add function comment. Avoid - O(N) loop, by looking up both CASE_LOW_SEEN and CASE_HIGH_SEEN. - (c_do_switch_warnings): Reorganize to record CASE_LOW_SEEN and - CASE_HIGH_SEEN for enumerated types. If the switch expression is - a constant, only warn if that constant value isn't handled. - -2006-08-26 Joseph S. Myers - - PR c++/24009 - * input.h (restore_input_file_stack): Declare. - (INPUT_FILE_STACK_BITS): Define. - * toplev.c (fs_p, input_file_stack_history, - input_file_stack_restored, restore_input_file_stack): New. - (push_srcloc, pop_srcloc): Check for input_file_stack_tick - overflowing INPUT_FILE_STACK_BITS bits. Save new state of stack. - (pop_srcloc): Don't free old state of stack. - -2006-08-26 David Edelsohn - - PR target/27544 - * doc/extend.texi (PowerPC Variable Attributes): Mention altivec. - (PowerPC Type Attributes): New. - -2006-08-26 Bob Wilson - - * config/xtensa/xtensa.c (function_arg_boundary): New. - (function_arg, xtensa_gimplify_va_arg_expr): Limit alignment to - STACK_BOUNDARY. - * config/xtensa/xtensa.h (FUNCTION_ARG_BOUNDARY): Move code to new - function_arg_boundary function that limits alignment to STACK_BOUNDARY. - -2006-08-26 Jakub Jelinek - - PR middle-end/28683 - * cfgexpand.c (add_reg_br_prob_note): Check if last has exactly - 3 following insns. - -2006-08-25 Volker Reichelt - - * flow.c (verify_wide_reg): Use internal_error for consistency failure. - (verify_local_live_at_start): Likewise. - -2006-08-25 Joseph S. Myers - - PR c/27893 - * gimplify.c (gimplify_decl_expr, gimplify_init_ctor_preeval, - omp_add_variable): Treat sizes as variable whenever not - INTEGER_CST. - -2006-08-26 Richard Guenther - - PR middle-end/28814 - * fold-const.c (fold_binary): Fold temporary to correct - type before constructing new comparison. - -2006-08-25 Fariborz Jahanian - - PR c/28418 - * c-gimplify.c (gimplify_compound_literal_expr): Don't add - variable again if DECL_SEEN_IN_BIND_EXPR_P. - -2006-08-25 Joseph S. Myers - - PR c/28299 - * c-decl.c (start_function): Don't try to process prototype - information from old declaration that isn't a function. - -2006-08-25 Jan Hubicka - - PR target/28621 - * config/i386/crtfastmath.c (set_fast_math): Force stack alignment. - -2006-08-25 Alan Modra - - PR target/27075 - * config/rs6000/rs6000.c (print_operand): Only use e500 %y syntax - for 8 byte objects. - -2006-08-25 J"orn Rennecke - - PR tree-optimization/16876 - * c-typeck.c (c_convert_parm_for_inlining): Don't take early - exit if PARM doesn't match VALUE. - -2006-08-25 Bob Wilson - - * config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Do not emit a - literal_prefix directive. - (XTENSA_DECLARE_FUNCTION_SIZE): Delete. - * config/xtensa/linux.h (ASM_DECLARE_FUNCTION_SIZE): Delete. - * config/xtensa/elf.h (ASM_DECLARE_FUNCTION_SIZE): Delete. - -2006-08-25 David Edelsohn - - PR target/28753 - * config/rs6000/rs6000.md (movcc_internal1): Change operand 1 - predicate to general_operand. Add 0->y and I->r alternatives. - -2006-08-25 Kazu Hirata - - * doc/tm.texi: Fix a typo. - * predict.c: Fix comment typos. - -2006-08-25 Nick Clifton - - * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add - assertions of "cpu" and "machine". - -2006-08-24 Andrew Pinski - - PR tree-opt/28807 - * tree-ssa-operands.c (access_can_touch_variable): Don't say - the access through a base which has an alias set of 0 cannot - touch the variable. - -2006-08-24 Bill Wendling - - * doc/tm.texi (TARGET_DEFAULT_PACK_STRUCT): Fixed English. - -2006-08-24 Jan Hubicka - - * reload1.c (emit_reload_insns): Fix yet another typo in my patch. - -2006-08-24 Jan Hubicka - - PR debug/26881 - * cgraph.c: Fix comments. - (cgraph_varpool_mark_needed_node): Mark only variables not already - output to file. - * cgraphunit.c: Update comments; include gt-cgraphunit.h - (cgraph_varpool_assembled_nodes_queue): New static variable. - (cgraph_varpool_assemble_decl): Record output decls for debug out code. - (cgraph_varpool_output_debug_info): New function. - (cgraph_finalize_compilation_unit, cgraph_optimize): Call it. - * Makefile.in: Add gt-cgraphunit.h - -2006-08-24 Jan Hubicka - - * predict.c (probability_reliable_p): New predicate. - (edge_probability_reliable_p, br_prob_note_reliable_p): Likewise. - (predict_loops): Do not predict loop exit with less than 2% - probability. - * basic-block.h (edge_probability_reliable_p, - br_prob_note_reliable_p): Declare. - * ia64.h (ia64_print_operand): Do not disable on-chip branch - prediction when static predictor is not reliable. - * rs6000.c (output_cbranch): Likewise. - -2006-08-23 Stuart Hastings - - PR 28825 - * gcc/config/i386/i386.c (ix86_expand_vector_init_duplicate, - ix86_expand_vector_init_one_nonzero): Remove TARGET_SSE test. - -2006-08-21 Geoffrey Keating - - PR debug/28692 - * dwarf2out.c (rtl_for_decl_init): Don't try to create RTL for - complex values, nor for generic vector values. - -2006-08-22 Richard Guenther - - PR middle-end/28776 - * tree-scalar-evolution.c (fold_used_pointer): Add at_stmt - parameter. Convert arguments to arithmetic expression to the - chrecs type. - (analyze_scalar_evolution_1): Adjust caller. - -2006-08-22 Jan Hubicka - - Patch by Paolo Bonzini - * reload1.c (emit_reload_insns): Fix incorrect bracketing introduced by - my previous patch. - -2006-08-22 Daniel Berlin - - PR tree-optimization/28003 - * tree-ssa-alias.c (compute_may_aliases): Compute call clobbered - before grouping aliases. - -2006-08-22 Roger Sayle - - * config/i386/i386.c (ix86_value_regno): Don't return FIRST_MMX_REG - if !TARGET_MMX, and don't return FIRST_SSE_REG if !TARGET_SSE. - -2006-08-21 Jason Merrill - - PR c++/27115 - * gimplify.c (voidify_wrapper_expr): Handle STATEMENT_LIST as a - wrapper. Loop to handle nested wrappers. - (gimplify_bind_expr): Remove temp parameter. - (gimplify_modify_expr_rhs): Handle CLEANUP_POINT_EXPR, BIND_EXPR - and STATEMENT_LIST on the rhs. - (gimplify_statement_list): Voidify the STATEMENT_LIST. - (gimplify_expr): Pass pre_p to gimplify_statement_list. - (gimplify_target_expr): Remove special BIND_EXPR handling. - -2006-08-21 J"orn Rennecke - - * config/sh/lib1funcs-Os-4-200.asm: Guard entire file with - #if !__SHMEDIA__ . - -2006-08-21 Olivier Hainque - - * gimplify.c (gimplify_init_constructor) : - Arrange for the temporary captures of components overlapping the lhs - to happen before the lhs is possibly cleared. - -2006-08-21 Mark Shinwell - - * config/arm/pr-support.c (__gnu_unwind_execute): Insert " + 1" in - necessary places to pass the correct "number of registers" values - to _Unwind_VRS_Pop. - -2006-08-20 Jan Hubicka - - * tree-ssa-alias.c (eq_ptr_info, ptr_info_hash): New function. - (create_name_tags): Instead of quadratic checking use hashtable. - * bitmap.h: Include hashtab.h. - (bitmap_hash): Declare. - * bitmap.c (bitmap_hash): New function. - -2006-08-20 Jan Hubicka - - PR rtl-optimization/28071 - * tree-optimize.c (tree_rest_of_compilation): Do not remove edges - twice. - * tree-inline.c (copy_bb): Use cgraph_set_call_stmt. - * ipa-inline.c (cgraph_check_inline_limits): Add one_only argument. - (cgraph_decide_inlining, cgraph_decide_inlining_of_small_function, - cgraph_decide_inlining_incrementally): Update use of - cgraph_check_inline_limits. - * cgraph.c (edge_hash, edge_eq): New function. - (cgraph_edge, cgraph_set_call_stmt, cgraph_create_edge, - cgraph_edge_remove_caller, cgraph_node_remove_callees, - cgraph_remove_node): Maintain call site hash. - * cgraph.h (struct cgraph_node): Add call_site_hash. - (cgraph_set_call_stmt): New function. - -2006-08-20 Jan Hubicka - - PR rtl-optimization/28071 - * reload1.c (reg_has_output_reload): Turn into regset. - (reload_as_needed, forget_old_reloads_1, forget_marked_reloads, - choose_reload_regs, emit_reload_insns): Update to new - reg_has_output_reload. - -2006-08-20 Jan Hubicka - - PR middle-end/28779 - * ipa-inline.c (cgraph_decide_inlining, cgraph_early_inlining): Compute - function body sizes. - * cgraphunit.c (cgraph_analyze_function): Don't do so. - -2006-08-20 Danny Smith - - PR target/28648 c: - * tree.c (handle_dll_attribute): Return early if not a - var or function decl. - -2006-08-18 Joseph Myers - - PR target/27565 - * config/rs6000/rs6000.h (LOCAL_ALIGNMENT): For SPE, only adjust - alignment of SPE vector types. - -2006-08-18 Christophe Jaillet - - * tree.c (is_attribute_with_length_p): Remove a duplicated assert. - -2006-08-17 Jakub Jelinek - - PR c/28744 - * cgraph.h (struct cgraph_node): Remove externally_visible - bitfield. - * cgraphunit.c (process_function_and_variable_attributes): Set - local.externally_visible rather than externally_visible. - - PR c/28744 - * c-common.c (handle_externally_visible_attribute): First look - at TREE_CODE and only if it is function or var decl, check for - non-public objects. Don't warn for DECL_EXTERNAL. - * cgraphunit.c (process_function_and_variable_attributes): Warn - if externally_visible attribute is used on non-public object. - -2006-08-17 Jan Hubicka - - PR tree-optimization/27865 - * reload1.c (forget_marked_reloads): New function. - (forget_old_reloads_1): When data are passed, just mark the registers - for later removal. - (reload_as_needed): Use the new mechanizm. - -2006-08-17 Alexandre Oliva - - PR target/28146 - * reload.h (reg_equiv_alt_mem_list): New declaration. - * reload1.c (reg_equiv_alt_mem_list): New definition. - (reload): Initialize it and release it. - (delete_output_reload): Use it. - * reload.c (push_reg_equiv_alt_mem): New function. - (find_reloads_toplev): Call it. - (find_reloads_address, find_reloads_address_1): Likewise. - (find_reloads_subreg_address): Likewise. - -2006-08-17 Maxim Kuvyrkov - - PR rtl-optimization/28489 - * sched-ebb.c (begin_schedule_ready): Create basic block - at the right place. - (advance_target_bb): Skip empty blocks. - * haifa-sched.c (bb_note): Make global. - * sched-int.h (bb_note): Add prototype. - -2006-08-16 Zdenek Dvorak - - PR tree-optimization/27865 - * tree-vrp.c (adjust_range_with_scev): Do not use TYPE_{MIN,MAX}_VALUE - for pointer types. - * tree-scalar-evolution.c (fold_used_pointer_cast, pointer_offset_p, - fold_used_pointer, pointer_used_p): New functions. - (analyze_scalar_evolution_1): Use fold_used_pointer. - * tree-chrec.c (convert_affine_scev): Convert no-op casts correctly. - * tree-ssa-loop-ivopts.c (generic_type_for): Return integral type - for pointers. - -2006-08-17 Paolo Bonzini - - PR c++/28573 - * c-common.c (fold_offsetof_1): Add an argument and recurse down to it - or the INTEGER_CST. Fail on a CALL_EXPR. - (fold_offsetof): Pass new argument to fold_offsetof_1. - * c-parser.c (c_parser_postfix_expression): Don't include a NULL - operand into an INDIRECT_REF. - * c-typeck.c (build_unary_op): Adjust call to fold_offsetof. - -2006-08-16 Zdenek Dvorak - - PR gcov/profile/26570 - * value-prof.c (static_values): Removed. - (tree_find_values_to_profile): Do not set static_values. - (find_values_to_profile): Do not free static_values. - * profile.c (instrument_values): Do not free the values. - (branch_prob): Free the values. - -2006-08-16 Naveen.H.S - - * config/m32c/m32c_lib1.S (__mulsi3): Use only registers for dest. - -2006-08-16 Joseph S. Myers - - PR c/27697 - * c-typeck.c (build_component_ref): Combine qualifiers of - structure or union and field. - -2006-08-16 Zdenek Dvorak - - PR rtl-optimization/28071 - * basic-block.h (bb_dom_dfs_in, bb_dom_dfs_out): Declare. - * dominance.c (bb_dom_dfs_in, bb_dom_dfs_out): New functions. - * tree-into-ssa.c (struct dom_dfsnum): New. - (cmp_dfsnum, find_dfsnum_interval, prune_unused_phi_nodes): New - functions. - (insert_phi_nodes_for): Use prune_unused_phi_nodes instead of - compute_global_livein. - (prepare_block_for_update, prepare_use_sites_for): Mark the uses - in phi nodes in the correct blocks. - -2006-08-16 Zdenek Dvorak - - PR tree-optimization/28364 - * tree-ssa-loop-ivopts.c (aff_combination_to_tree): Handle zero - correctly. - (fold_affine_expr): New function. - (may_eliminate_iv): Use fold_affine_expr. - -2006-08-16 Volker Reichelt - - PR c/27489 - * c-typeck.c (c_start_case): Handle invalid orig_type correctly. - Clean up. - -2006-08-16 Mike Stump - - * doc/invoke.texi (-Wno-deprecated-declarations): Fixup use of pxref. - * doc/cppopts.texi (-MD): Likewise. - -2006-08-15 Danny Smith - - PR c/28287 - * c-common.c (handle_weak_attribute): Ignore and warn if - not a FUNCTION_ or VAR_DECL. - -2006-07-15 Mike Stump - - PR c/28280 - * c-parser.c (c_parser_typeof_specifier): Don't use - c_finish_expr_stmt, open code desired semantics instead. - -2006-08-15 Nick Clifton - - * config.gcc (x86-mingw32): Add a gthr-win32.h including makefile - fragment to tmake_file only if threads are enabled. - * config/i386/t-mingw32 (LIB2FUNCS_EXTRA): Move to... - * config/i386/t-gthr-win32: New file. ... here. - -2006-08-15 Volker Reichelt - - PR c/28649 - * c-parser.c (c_parser_compound_statement_nostart): Reset - parser->error after each statement. - -2006-08-15 Jakub Jelinek - - PR middle-end/28713 - * omp-low.c (lower_omp_parallel): Convert t to - receiver_decl's type. - (expand_omp_parallel): STRIP_NOPS from the MODIFY_EXPR - source before comparison. - - PR middle-end/28724 - * gimplify.c (gimplify_omp_atomic_pipeline): Convert oldival - to itype in assignment to oldival2. - -2006-07-14 Andrew Pinski - - PR c/27490 - PR c/27489 - * c-typeck.c (build_compound_expr): If the second expression - is an error mark, then just return an error mark instead of - creating a COMPOUND_EXPR. - -2006-07-14 Mike Stump - - * Makefile.in (LIBGCC_DEPS): Don't depend on LANGUAGES. - -2006-08-14 Kazu Hirata - - * c-decl.c, var-tracking.c: Fix comment typos. - -2006-08-14 Richard Sandiford - - PR rtl-optimization/28634 - * reorg.c (fill_slots_from_thread): Do not assume A + X - X == A - for floating-point modes unless flag_unsafe_math_optimizations. - -2006-08-13 Alexandre Oliva - Andrew Pinski - - PR c/27184 - * tree.c (build_array_type): Unify array types with - unspecified index_type. - * c-decl.c (grokdeclarator): Make sure we do not modify a - unified incomplete array type. - * c-typeck.c (store_init_value): Create distinct type before - filling in the index type in an initializer from a compound - literal. - - * c-decl.c (grokdeclarator): Remove code where we copy the - array type over. - -2006-08-13 Andrew Pinski - - * tree-pass.h (TODO_update_ssa): Fix which bit is used to take - into account for TODO_dump_cgraph. - (TODO_update_ssa_no_phi): Likewise. - (TODO_update_ssa_full_phi): Likewise. - (TODO_update_ssa_only_virtuals): Likewise. - (TODO_remove_unused_locals): Likewise. - (TODO_set_props): Likewise. - (TODO_update_stmt_usage): Likewise. - -2006-08-13 Dirk Mueller - - * c-common.c (strict_aliasing_warning): Fix formatting. - -2006-08-13 Matthias Klose - - * doc/invoke.texi: Fix spelling errors. - -2006-08-11 Eric Botcazou - - PR rtl-optimization/23454 - * reorg.c (relax_delay_slots): Update comment. - -2006-08-11 Richard Guenther - - PR middle-end/28651 - * simplify-rtx.c (simplify_const_relational_operation): - Simplify A CMP B to A - B CMP 0 only for EQ and NE comparison - codes. - -2006-08-10 Eric Botcazou - - * tree.c (build1_stat): Also propagate the TREE_CONSTANT and - TREE_INVARIANT flags for a VIEW_CONVERT_EXPR. - -2006-08-10 Paul Brook - - * final.c (final_scan_insn): Clear current_insn_predicate before - outputting inline asm. - -2006-08-10 Dorit Nuzman - - PR tree-optimization/26197 - * tree-ssa-alias.c (new_type_alias): Takes additional argument. Calls - get_ref_base_and_extent and overlap_subvar to add only relevant - subvars as may-aliases. - (add_may_alias_for_new_tag): New function, factored out of - new_type_alias. - * tree-vect-transform.c (vect_create_data_ref_ptr): Call new_type_alias - with additional argument. - * tree-flow.h (new_type_alias): Takes additional argument. - -2006-08-09 Nathan Sidwell - - * gcov.c (no_data_file): New flag. - (read_count_file): Set it if data file not present. Assume counts - zero if not found. - (output_lines): Don't name the data file, if there wasn't one. - -2006-08-09 Eric Botcazou - - * config/rs6000/rs6000.c (print_operand) : Fix comment and adjust. - (rs6000_generate_compare): Tweak comments. - * config/rs6000/rs6000.md (UNSPEC_MV_CR_GT): Fix comment. - -2006-08-09 Alexandre Oliva - - * var-tracking.c (enum micro_operation_type): Add MO_COPY. - (var_debug_decl): New function. - (var_reg_set): Follow debug decl link. Add location even if - reg is already known to hold some other variable. - (var_mem_set): Follow debug decl link. - (var_reg_delete_and_set, var_mem_delete_and_set): Follow debug - decl link. Delete other known locations of the variable part - if requested. - (var_reg_delete, var_mem_delete): Delete other known locations - of the variable part if requested. - (same_variable_part_p): New function. - (add_stores): Select MO_COPY when appropriate. - (vt_initialize): Handle it. - (compute_bb_dataflow, emit_notes_in_bb): Likewise. Delete - known locations for MO_SET and MO_CLOBBER. - (find_variable_location_part): New function. - (set_variable_part, delete_variable_part): Use it. - (clobber_variable_part): New function. - * dwarf2out.c (dwarf2out_var_location): Do not follow debug - decl link. - -2006-08-07 Victor Kaplansky - - PR tree-optimization/26969 - * tree-vect-analyze.c (vect_analyze_loop_form): Add check of latch - with an empty list of PHIs. - -2006-08-06 Paolo Bonzini - - PR target/27827 - - * conffig/i386/i386.md: Add peephole2 to avoid "fld %st" - instructions. - -2006-08-06 Andreas Schwab - - * config/m68k/m68k.c (m68k_output_function_epilogue): Fix format - string. Whitespace and comment fixup. - -2006-08-05 Volker Reichelt - - PR c/28502 - * c-decl.c (validate_proto_after_old_defn): Return false on invalid - argument. - - PR c/27721 - * c-typeck.c (build_modify_expr): Test earlier for non-lvalues. - - PR c/28136 - * c-parser.c (c_parser_postfix_expression_after_paren_type): Robustify. - -2006-08-04 Jan Hubicka - - PR target/26655 - PR target/28270 - * reload.c (push_reload): Patch out the mismatching instruction; - return early. - (find_reload): Bail out if the instruction was patched out. - -2006-08-04 Jan Hubicka - - PR tree-optimization/24888 - * tree-inline.c (expand_call_inline): Do not re-record variables. - (declare_inline_vars): Add variable to unexpanded_var_list. - -2006-08-04 John David Anglin - Roger Sayle - - PR rtl-optimization/26244 - * cse.c (fold_rtx): Correctly associate shifts when const_arg1 and/or - inner_const are negative or greater than or equal to the bitsize of - MODE. If SHIFT_COUNT_TRUNCATED is false, the values aren't associated. - Otherwise, the values are masked using GET_MODE_BITSIZE (mode) - 1. - Simplify complicated if statement. For ASHIFT and LSHIFTRT, return - CONST0_RTX (mode) when the new shift count is greater than or equal to - to the bitsize of the object being shifted and XEXP (y, 0) has no side - effects. - -2006-08-04 Kazu Hirata - - * tree-cfg.c: Fix a comment typo. - -2006-08-03 Mark Mitchell - - PR c++/28148 - * varasm.c (output_constant): Give the front end another chance to - expand constants, after stripping NOPs. - -2006-08-03 Jan Hubicka - - * domwalk.c (walk_dominator_tree): Reorganize to non-recursive - implementation. - -2006-08-03 Dorit Nuzman - - PR tree-optimization/27770 - * tree-vectorizer.h (get_vectype_for_scalar_type): Function - declaration removed (moved to tree-flow.h). - (vect_can_force_dr_alignment_p): Likewise. - * tree-flow.h (get_vectype_for_scalar_type): New function declaration - (moved from tree-vectorizer.h). - (vect_can_force_dr_alignment_p): Likewise. - * tree-vectorizer.c (vect_print_dump_info): Allow calling this function - from outside the vectorizer - in particular from cgraph stage. - * tree-vect-analyze.c (vect_compute_data_ref_alignment): Don't increase - the alignment of global arrays when -fsection-anchors is enabled. - * cgraphunit.c (cgraph_increase_alignment): New function. - (cgraph_optimize): Call cgraph_increase_alignment. - -2006-08-03 David Edelsohn - - PR target/27566 - * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Do - not reload a SPE symbol_ref into a lo_sum address. - -2006-08-02 Daniel Jacobowitz - - PR debug/28063 - * dwarf2out.c (prune_unused_types_prune): Move call to - prune_unused_types_update_strings to cover the parent DIE also. - -2006-08-02 Jan Hubicka - - PR gcov/profile/28480 - * tree-cfg.c (change_bb_for_stmt): New function. - (tree_merge_blocks, tree_split_blocks): Use it. - -2006-08-01 Volker Reichelt - - PR c++/28250 - PR c++/28257 - PR c++/28259 - PR c++/28267 - * toplev.c (compile_file): Return early on errorcount or sorrycount. - * cgraphunit.c (cgraph_finalize_compilation_unit): Likewise. - (cgraph_optimize): Likewise. - -2006-08-01 Stuart Hastings - - * rtl.h (UINTVAL) New. - * config/rs6000/rs6000.c (SMALL_INT) Use it. - * testsuite/gcc.dg/20060801-1.c: New. - -2006-08-01 Daniel Jacobowitz - - PR debug/23336 - * c-typeck.c (build_external_type): Mark used enum types. - * dwarf2out.c (dwarf2out_abstract_function): Save and restore - cfun also. - (gen_subprogram_die): Whitespace fix. - -2006-08-01 Jan Hubicka - - * tree-outof-ssa.c (check_replaceable): Do not allocate def_vars - bitmap when not needed. - * tree-ssa-pre.c (bitmap_set_and, bitmap_set_and_compl): Free temporary - bitmaps. - -2006-08-01 Dirk Mueller - - * tree-vrp.c (fix_equivalence_set): Avoid bitmap memory leak. - -2006-07-31 Volker Reichelt - - * Makefile.in: Revert part of previous patch: - Replace $(VARRAY_H) by varray.h in definition of BASIC_BLOCK_H - and REGS_H. - -2006-07-30 Eric Christopher - - PR target/27543 - * doc/extend.texi (i386 Variable Attributes): Add anchor. - (PowerPC Variable Attributes): New section. - -2006-07-30 Atsushi Nemoto - - PR target/28126 (partial fix) - * config/mips/mips.md (tls_get_tp_): Set can_delay to no. - -2006-07-28 Jan Hubicka - - PR rtl-optimization/28071 - * cfgrtl.c (rtl_delete_block): Free regsets. - * flow.c (allocate_bb_life_data): Re-use regsets if available. - -2006-07-28 Volker Reichelt - - * Makefile.in: Use $(HEADER_H) instead of header.h in dependencies - and variables used in dependencies. - -2006-07-27 Arjan van de Ven - - * config/i386/i386.md (stack_tls_protect_set_di) Use %gs rather than - %fs for -mcmodel=kernel. - (stack_tls_protect_test_di): Likewise. - -2006-07-27 Carlos O'Donell - - * Makefile.in: Use mkinstalldirs. - -2006-07-27 H.J. Lu - - PR driver/28437 - * opts-common.c (prune_options): Skip joined switches. - -2006-07-27 Jan Hubicka - - PR rtl-optimization/28071 - * cselib.c (cselib_process_insn): Don't remove useless values too - often for very large hashtables. - -2006-07-27 Jan Hubicka - - PR rtl-optimization/28071 - * global.c (greg_obstack): New obstack. - (allocate_bb_info): Use it. - (free_bb_info): Likewise. - (modify_reg_pav): Likewise. - -2006-07-27 Roger Sayle - - * builtins.c (fold_fixed_mathfn): When long and long long are the - same size, canonicalize llceil*, llfloor*, llround* and llrint* - functions to their lceil*, lfloor*, lround* and lrint* forms. - -2006-07-27 Kazuhiro Inaoka - - PR gcc/28508 - * config/m32r/m32r.md (branch_insn): Reduce pc range for short - branch. - (rev_branch_insn): Likewise. - -2006-07-27 Jan Hubicka - - PR rtl-optimization/28071 - * regmove.c (reg_is_remote_constant_p): Avoid quadratic behaviour. - (reg_set_in_bb, max_reg_computed): New static variables. - (regmove_optimize): Free the new array. - (fixup_match_1): Update call of reg_is_remote_constant_p. - -2006-07-26 Jan Hubicka - - PR tree-optimization/27882 - * cgraph.c (cgraph_remove_node): Clear needed, reachable, next, previous - and decl fields. - * cgraphunit.c (cgraph_reset_node): Expect cgraph_remove_node to kill - next pointer - (cgraph_analyze_compilation_unit): Likewise. - * ipa.c (cgraph_remove_unreachable_nodes): Likewise. - * ipa-inline.c (cgraph_decide_recursive_inlining): Likewise. - (cgraph_early_inlinine): Make order garbage collected. - * Makefile.in (gt-ipa-inline): New garbagecollected file. - -2006-07-26 Daniel Jacobowitz - - * dbxout.c (output_types_sort): Add a comment. - (output_used_types): Free the VEC. - -2006-07-26 Daniel Jacobowitz - - * function.c (reorder_fix_fragments): Delete. - (reorder_blocks): Don't call it. - (reorder_blocks_1): Put all subblocks under the origin block. - -2006-07-26 Zdenek Dvorak - - PR rtl-optimization/27907 - * expr.c (force_operand): Use convert_move to handle FLOAT_EXTEND and - FLOAT_TRUNCATE. - -2006-07-25 Roger Sayle - - PR middle-end/28473 - * convert.c (convert_to_integer): When transforming (T)foo(x) into - bar(x) check that bar's result type can represent all the values of T. - -2006-07-25 Zdenek Dvorak - - * tree-chrec.c (chrec_convert_aggressive): Return NULL on failure. - -2006-07-25 Nick Clifton - - * ggc-page.c (NUM_SIZE_LOOKUP): New constant - the length of the - size_lookup[] array. - (ggc_alloc_stat): Use NUM_SIZE_LOOKUP. - (ggc_pch_count_object): Likewise. - (ggc_pch_alloc_object): Likewise. - (ggc_pch_write_object): Likewise. - (init_ggc): Do not attempt to initialize entries in the - size_lookup[] array for objects whose size is greater than than - the length of the array. - -2006-07-25 Daniel Jacobowitz - - * dbxout.c (output_used_types_helper): Push queued types - on a VEC. - (output_types_sort): New. - (output_used_types): Collect used types on a VEC and sort them - before emission. - -2006-07-24 Richard Guenther - - PR middle-end/28463 - * cgraph.c (cgraph_remove_node): Do not check if dumps - are enabled. - * cgraphunit.c (cgraph_optimize): Likewise. - -2006-07-24 Jan Hubicka - - PR rtl-optimization/28071 - * tree-cfg.c (tree_split_block): Do not allocate new stmt_list nodes. - * tree-iterator.c (tsi_split_statement_list_before): Do not crash when - splitting before first stmt. - -2006-07-24 Jan Hubicka - - PR rtl-optimization/28071 - * ipa-inline.c (update_caller_keys): Remove edges that - are no longer inline candidates. - -2006-07-23 Daniel Jacobowitz - - PR debug/27473 - * dbxout.c (output_used_types_helper, output_used_types): New. - (dbxout_symbol): Call output_used_types. - -2006-07-23 Jan Hubicka - - PR c/25795 - PR c++/27369 - * cgraph.c (cgraph_varpool_nodes): Export. - (decide_is_variable_needed): Ignored "used" attribute in - unit-at-a-time mode. - * cgraph.h (cgraph_varpool_nodes): Declare. - * cgraphunit.c (decide_is_function_needed): Ignored "used" attribute in - unit-at-a-time mode. - -2006-07-23 Roger Sayle - - PR target/28247 - * gthr-solaris.h: Prototype __gthrw forms of thr_self, mutex_init and - mutex_destroy even when !_LIBOOBJC. Remove duplicate prototype of - the __gthrw form of thr_keycreate. - (__gthread_key_delete): Silence the unused argument warning. - -2006-07-23 Steven Bosscher - - PR debug/25468 - * config/elfos.h (ASM_OUTPUT_ASCII): Remove 'register' marks. - Cache the last found '\0' marker to avoid quadratic behavior. - -2006-07-23 Jan Hubicka - - * i386.md (subsi_3_zext): Fix output template. - -2006-07-21 Mike Stump - - * doc/invoke.texi (C++ Dialect Options): Note that - -fvisibility-inlines-hidden doesn't affect explicitly - instantiationed inline methods. - -2006-07-20 Roger Sayle - - * config.gcc (i[34567]86-*-solaris2*): Add usegas.h to $tm_file - if the target assembler is GNU binutils' gas. - * config/i386/sol2-10.h (ASM_SPEC): Check USE_GAS to determine - whether to pass GNU gas or native as command line options. - -2006-07-20 Jason Merrill - - * tree.c (remove_attribute): New fn. - * tree.h: Declare it. - -2006-07-20 Paul Brook - - PR 27363 - * cse.c (cse_insn): Add destination addresses to hash table. Check if - they are invalidated by this instruction. - -2006-07-21 Danny Smith - - PR target/28427 - * config/i386/cygming.h (MAX_OFILE_ALIGNMENT): Define. - -2006-07-20 Eric Christopher - - PR target/26877 - * config/i386/i386.h (OPTION_DEFAULT_SPECS): Reorder. - -2006-07-19 Eric Christopher - - * config/t-slibgcc-darwin (stmp-lipo): Remove. - Rewrite dependencies for libgcc_s.1.dylib. - -2006-07-19 Jakub Jelinek - - * except.c (duplicate_eh_regions_1): Clear next_peer. - -2006-07-17 Nathan Sidwell - - * doc/invoke.texi (RS/6000 and PowerPC Options): Document that - -mlongcall does not guarantee all calls will be long. - * doc/extend.texi (long_call/short_call): Document that longcall - does not guarantee a long call will be used. - (longcall/shortcall): Likewise. - -2006-07-18 Roger Sayle - - PR middle-end/28283 - * expmed.c (expand_shift): Additionally check that the shift_cost - is not MAX_COST and that INTVAL(op1) is less than MAX_BITS_PER_WORD - before implementing a LSHIFT_EXPR as a sequence of additions. - * config/sh/sh.c (shift_costs): Return MAX_COST to inform the - middle-end that DImode shifts need to be synthesized by expand. - -2006-07-18 Diego Novillo - - PR 28410 - * tree-ssa-operands.c (access_can_touch_variable): Update - comment. - Return true if ALIAS is .GLOBAL_VAR. - -2006-07-18 David Daney - - * gcc.c (display_help): Fix typo in help text. - -2006-07-18 Olivier Hainque - - * tree.h (categorize_ctor_elements): Adjust prototype and add - descriptive comment, both in accordance with the interface change - described below. - * varasm.c (constructor_static_from_elts_p): New function. - Whether a constructor node is a valid static constant initializer - if all its elements are. - (initializer_constant_valid_p) : Use it. - * output.h: Declare it. - * expr.c (categorize_ctor_elements_1): Return whether the constructor - is a valid constant initializer instead of computing the number of - non-constant elements. Use constructor_static_from_elts_p for this - purpose. Replace the head comment with an indication that this is a - helper for categorize_ctor_elements. - (categorize_ctor_elements): Same interface change as for the _1 - helper. Former head comment from this helper moved here, adjusted to - account for the interface changes. - (mostly_zeros_p): Adjust call to categorize_ctor_elements. - (all_zeros_p): Likewise. - * gimplify.c (gimplify_init_constructor): Decide whether we can make - static versions of the constructor from the categorize_ctor_elements - return value instead of the formerly computed number of non-constant - elements. - -2006-07-18 Paolo Bonzini - - * configure: Regenerate. - * Makefile.in (build_libsubdir): New configure substitution - (build_libobjdir): New variable. - (BUILD_LIBIBERTY): Use it. - -2006-07-18 Volker Reichelt - - PR c/28286 - * c-pragma.c (handle_pragma_pack): Handle invalid constants. - -2006-07-18 Alexandre Oliva - - PR c/26993 - * c-common.c (handle_weakref_attribute): Ignore attribute in - the same conditions the alias attribute is ignored. - -2006-07-17 Carlos O'Donell - - * dbxout.c (dbxout_function_end): Do not increment scope_labelno. - (dbxout_begin_prologue): Increment scope_labelno. - -2006-07-17 Richard Henderson - - PR 27889 - * tree-nested.c (create_tmp_var_for): Set DECL_COMPLEX_GIMPLE_REG_P - if needed. - -2006-07-17 Roger Sayle - Rainer Orth - - * config/i386/gmon-sol2.c: Silence compilation warnings by partially - synchronizing code with config/sparc/gmon-sol2.c. Remove #if 0 - blocks. #include "tconfig.h" and "tsystem.h" to prototype system - functions such as sbrk, write, etc.. Add function prototypes. - Convert function declarations from K&R to ISO C. Cast pointers - to "long" and "unsigned long" instead of "int" and "unsigned int". - Convert tokens following #endif into comments. - -2006-07-17 Toon Moene - - * invoke.texi: Remove mention of f77; Reformat table for - inline parameter options correctly; mention that -malign-double - is default on x86-64 targets. - -2006-07-17 Zdenek Dvorak - - * tree-chrec.c (avoid_arithmetics_in_type_p): New. - (convert_affine_scev, chrec_convert_aggressive): Use - avoid_arithmetics_in_type_p. Do not check for the subtypes - separately. - -2006-07-17 Richard Sandiford - - PR middle-end/28403 - * optabs.c (expand_doubleword_shift): Wrap the call to - do_compare_rtx_and_jump with NO_DEFER_POP and OK_DEFER_POP. - -2006-07-17 Richard Sandiford - - PR middle-end/28402 - * optabs.c (expand_binop): Pass next_methods rather than methods - to expand_doubleword_shift. - -2006-07-17 J"orn Rennecke - - PR other/28251 - * tree.h (dump_addr): Declare. - * print-tree.c (dump_addr): New function. - (print_node_brief, print_node): Use it. - * print-rtl.c (print_rtx): Likewise. - * common.opt (-fdump-noaddr): New option. - * doc/invoke.texi (-fdump-noaddr): Document. - * loop-unroll.c (si_info_hash): Make hash independent of addresses. - (ve_info_hash): Likewise. - -2006-07-13 Andrew Haley - - PR tree-optimization/19505 - * tree-cfgcleanup.c (tree_forwarder_block_p): If we have an EH - edge leaving this block, make sure that the destination of this - block has only one predecessor. - -2006-07-17 Richard Guenther - - PR tree-optimization/28238 - * tree-inline.c (copy_bb): Check if we produced valid - gimple copying and substituting a stmt. If not, gimplify - it. - -2006-07-16 Eric Botcazou - - * optabs.c (maybe_encapsulate_block): New function extracted from... - (emit_libcall_block): ...here. Invoke it on the block of insns to - maybe emit REG_LIBCALL/REG_RETVAL notes around the block. - (emit_no_conflict_block): Likewise. - -2006-07-16 Eric Botcazou - - * doc/install.texi (sparc-sun-solaris2*): Add GMP version number. - -2006-07-15 Roger Sayle - - * tree-gimple.c (is_gimple_stmt): Sink test of IS_EMPTY_STMT into - a new NOP_EXPR case of the switch statement. - -2006-07-15 Kaz Kojima - - PR middle-end/28160 - * stor-layout.c (place_field): Take the bit field with - an excessive size into account in the ms-bitfiled case. - - PR middle-end/28161 - * stor-layout.c (place_field): Use DECL_BIT_FIELD_TYPE of - the previous bit field. - -2006-07-14 Eliot Dresselhaus - - PR target/27287 - * config/rs6000/spe.md (frob_di_df_2): Add m->r alternative. - -2006-07-14 Ulrich Weigand - - * config/s390/linux-unwind.h (s390_fallback_frame_state): Detect - signal frames correctly even when the signal was installed with - sa_restorer set. - -2006-07-14 Carlos O'Donell - - * dbxout.c (dbxout_begin_prologue): Emit LFBB label at function start. - (dbxout_function_end): Use local label LFBB. Remove hook - DBX_OUTPUT_NFUN. - (dbxout_source_line): Use local label LFBB. - (dbxout_block): Likewise. - (dbx_output_lbrac): Remove hook DBX_OUTPUT_LBRAC. - (dbx_output_rbrac): Remove hook DBX_OUTPUT_RBRAC. - * config/rs6000/linux64.h: Remove DBX_OUTPUT_LBRAC, DBX_OUTPUT_RBRAC, - and DBX_OUTPUT_NFUN. - -2006-07-13 Janis Johnson - - * doc/sourcebuild.texi (Test Directives): Document dg-shouldfail. - -2006-07-13 Jan Hubicka - - * cgraphunit.c (cgraph_varpool_analyze_pending_decls): Call - align_variable. - * output.h (align_variable): Declare. - * varasm.c (align_variable): Export. - * value-prof.c (tree_value_profile_transformations): Recompute iterator - when basic block changed. - -2006-07-13 Nick Clifton - - * config/sh/sh.c (sh_reorg): Ignore deleted insns whilst - walking the LOG_LINKS chain. - -2006-07-12 Geoffrey Keating - - * doc/invoke.texi (C++ Dialect Options): Explain difference - between -fvisibility-inlines-hidden and setting hidden - visibility explicitly. - -2006-07-12 Eric Christopher - - * config/t-slibgcc-darwin (SHLIB_LINK): Don't munge stmp-lipo. - (stmp-lipo): Depend on libgcc.a. - -2006-07-12 Kazu Hirata - - * tree.c: Fix a comment typo. - -2006-07-12 Naveen.H.S - - * config/m32c/muldiv.md (umulhisi3_c): Use only registers for - dest. - (umulhisi3_r): Likewise. - -2006-07-12 Paolo Carlini - - PR libstdc++/27878 - * doc/install.texi (mips-sgi-irix6): Add note about IRIX 6.5.x, - x < 19, vs wchar_t support. - -2006-07-12 Nick Clifton - - * config/sh/sh.h (SUBTARGET_ASM_RELAX_SPEC): Use -isa=sh4-up - instead of -isa=sh4. - -2006-07-12 Mike Stump - - * protoize.c (edit_fn_definition): Add volatile to clean_text_p. - -2006-07-10 Eric Christopher - - * config/t-slibgcc-darwin: Rewrite. - -2006-07-10 Laurynas Biveinis - - PR bootstrap/20437 - * Makefile.in (configure): add missing aclocal.m4 and acinclude.m4 - dependencies. - -2006-07-08 Matthias Klose - - * doc/sourcebuild.texi: Fix typo. - -2006-07-07 Mike Stump - - * toplev.c (process_options): Don't give -ffunction-sections may - affect debugging warning for Mach-O. - -2006-07-07 James E Wilson - - * config/mips/mips.md (cpu): Add sb1a. - * config/mips/sb1.md: Modify almost all patterns to accept sb1a in - addition to sb1. Adjust comments to clarify SB-1A differences from - SB-1. - (ir_sb1a_load): New. Modify bypasses to use it. - (ir_sb1a_simple_alu): Likewise. - * config/mips/mips.c (mips_cpu_info_table): Add sb1a. - (mips_rtx_cost_data): Add PROCESSOR_SB1A support. - (mips_issue_rate): Add PROCESSOR_SB1A. - (mips_multipass_dfa_lookahead): Use TUNE_SB1 instead of PROCESSOR_SB1. - * config/mips/mips.h (processor_type): Add PROCESSOR_SB1A. - (TARGET_SB1): Add PROCESSOR_SB1A check. - (TUNE_SB1): Likewise. - - * config/mips/mips-protos.h (mips_store_data_bypass_p): New. - * config/mips/mips.c (mips_store_data_bypass_p): New. - * config/mips/sb1.md: Use mips_store_data_bypass_p instead of - store_data_bypass_p. - -2006-07-08 Paul Brook - - PR target/27991 - * config/m68k/m68k.md: Add r-m patterns for 68881 movxf. - -2006-07-07 Richard Guenther - - PR middle-end/28268 - * tree.h (build_one_cst): Declare. - * tree.c (build_one_cst): New function. - * tree-ssa-math-opts.c (get_constant_one): Remove. - (insert_reciprocals): Use build_one_cst. - * fold-const.c (fold_plusminus_mult): Likewise. - -2006-07-07 Roger Sayle - - * pointer-set.c (pointer_set_destroy): Correct whitespace. - * cfgloopanal.c (dump_graph): Likewise. - * dojump.c (discard_pending_stack_adjust): Likewise. - * fix-header.c (TARGET_EXTRA_INCLUDE, TARGET_EXTRA_PRE_INCLUDES): - Likewise. - * alloc-pool.c (dump_alloc_pool_statistics): Likewise. - * function.c (finalize_block_changes): Likewise. - * gcc-common.c (ggc_free_overhead, dump_gcc_loc_statistics): Likewise. - * tree-ssa-dce.c (clear_control_dependence_bitmap): Likewise. - * rtl.c (dump_rtx_statistics): Likewise. - * tree-ssa-structalias.c (sort_fieldstack, init_alias_heapvars): - Likewise. - * varray.c (dump_varray_statistics): Likewise. - * dfp.c (encode_decimal32, decode_decimal32, encode_decimal64, - decode_decimal64, encode_decimal128, decode_decimal128, - decimal_real_to_decimal): Likewise. - -2006-07-07 Richard Guenther - - PR tree-optimization/28187 - * tree-vrp.c (vrp_operand_equal_p): New function. - (vrp_bitmap_equal_p): Likewise. - (update_value_range): Use them to compare old and new - max and min values. - -2006-07-06 Roger Sayle - - * c-parser.c (c_parser_skip_to_end_of_block_or_statement): Add - a default case to switch statement to silence compiler warnings. - -2006-07-06 Roger Sayle - - PR target/27968 - * configure.ac (HAVE_AS_IX86_FFREEP): On x86 targets check whether - the configured assembler supports the x87's ffreep mnemonic. - * configure: Regenerate. - * config.in: Regenerate. - - * config/i386/i386.c (output_387_ffreep): New function. - (output_fp_compare): Use output_387_ffreep to emit ffreep insns. - (output_387_reg_move): Likewise. - -2006-07-06 Paul Eggert - - Port to hosts whose 'sort' and 'tail' implementations - treat operands with leading '+' as file names, as POSIX - has required since 2001. However, make sure the code still - works on pre-POSIX hosts. - * Makefile.in (slowcompare): Port to POSIX 1003.1-2001, - which says you should use "tail -c +N" rather than "tail +Nc". - Fix a bug: the old code incorrectly skipped 15 bytes, not 16. - -2006-07-06 Zdenek Dvorak - - * tree-ssa-loop-niter.c (scev_probably_wraps_p): Fix typo in - argument name. - -2006-07-06 David Edelsohn - - PR target/28150 - * config/rs6000/rs6000.c (rs6000_legitimate_address): Do not allow - PRE_{INC,DEC} of TFmode. - -2006-07-06 David Edelsohn - Alan Modra - - PR target/28170 - * config/rs6000/rs6000.c (insvdi_rshift_rlwimi_p): Correct shiftop - bounds. Simplify. - -2006-07-06 Rainer Orth - - PR target/28285 - * config/alpha/predicates.md (alpha_swapped_comparison_operator): - Remove duplicate gtu. - -2006-07-05 Jason Merrill - - PR c++/13983 - PR c++/17519 - * stor-layout.c (finish_record_layout): Copy TYPE_PACKED to variants. - * c-common.c (handle_packed_attribute): So don't copy it here. - * c-decl.c (finish_struct): Don't copy TYPE_ALIGN. - -2006-07-05 Mike Stump - - * doc/invoke.texi (Invoking G++): Clarify prose for g++. - -2006-07-05 H.J. Lu - - PR target/26146 - * config.gcc: Check with_cpu for i[34567]86--*-solaris2.1[0-9]*. - -2006-07-05 Richard Guenther - - PR target/28158 - * config/i386/i386.md (*negdf2_1): Restrict pattern to - TARGET_SSE2 targets if using SSE math. - (*absdf2_1): Likewise. - -2006-07-05 Richard Guenther - - PR tree-optimization/28162 - * fold-const.c (fold_binary): For (-A) * (-B) -> A * B - make sure to convert the operands to the correct type. - -2006-07-04 Paolo Bonzini - - PR tree-optimization/28218 - - * tree-ssa-math-opts.c (execute_cse_reciprocals): Fix calls - to calculate and free the dominator information. - -2006-07-04 Peter O'Gorman - - * mklibgcc.in: chmod 644 before ranlib during install. - -2006-07-04 Andrew Stubbs - J"orn Rennecke - - * configure.ac (.eh_frame data check): Use diff -b. - -2006-07-04 Eric Botcazou - - PR bootstrap/18058 - * Makefile.in (BUILD_RTL): Add build/vec.o. - (build/gencondmd.o): Filter out -fkeep-inline-functions. - (build/genextract): Delete. - (build/genautomata): Likewise. - -2006-07-04 Alan Modra - - PR target/28207 - * config/rs6000/rs6000.c (function_arg_boundary): Double-word align - 128-bit IBM long doubles for ABI_V4. - -2006-07-03 Eric Botcazou - - * tree.c (range_in_array_bounds_p): New predicate. - * tree.h (range_in_array_bounds_p): Declare it. - * tree-eh.c (tree_could_trap_p) : Use it to - return a less conservative answer. - * tree-sra.c (struct sra_elt): Add new pointer field 'groups' - and flag 'is_group'. - (IS_ELEMENT_FOR_GROUP): New macro. - (FOR_EACH_ACTUAL_CHILD): Likewise. - (next_child_for_group): New helper function. - (can_completely_scalarize_p): Take into account groups. - (sra_hash_tree): Handle RANGE_EXPR. - (sra_elt_eq): Likewise. - (lookup_element): Be prepared for handling groups. - (is_valid_const_index): Delete. - (maybe_lookup_element_for_expr) : Use in_array_bounds_p - instead of is_valid_const_index. - : New case. - (sra_walk_expr) : Use in_array_bounds_p instead of - is_valid_const_index. - : Do not unconditionally punt. - (scan_dump): Dump info for groups too. - (decide_instantiation_1): Likewise. - (decide_block_copy): Assert that the element is not a group. - Propagate decision to groups. - (generate_one_element_ref): Handle RANGE_EXPR. - (mark_no_warning): Iterate over actual childs. - (generate_copy_inout): Likewise. - (generate_element_copy): Likewise. - (generate_element_zero): Likewise. - (generate_element_init_1): Likewise. - (dump_sra_elt_name): Handle RANGE_EXPR. - -2006-07-03 Roger Sayle - - PR tree-optimization/26251 - * tree-ssa-threadupdate.c (redirection_block_p): New function. - (thread_block): When optimizing for size refuse to thread jumps - that would require duplication of blocks other than redirection - blocks. - -2006-07-03 Paolo Bonzini - - * configure.ac: Fix thinko in previous check-in. - * configure: Regenerate. - -2006-07-03 Paolo Bonzini - - PR other/27063 - * configure.ac (for lang...): Simplify nesting of conditionals. - Test subdir_requires for non-enabled languages. Move processing - of lang_opt_files and lang_tree_fiels below that test. - * configure: Regenerate. - * doc/sourcebuild.texi (Front End Config): Document subdir_requires. - -2006-07-01 Martin Michlmayr - - * doc/gcov.texi (Invoking Gcov): Add a missing word. - -2006-06-30 Kazu Hirata - - * cfgexpand.c, config/i386/i386.c, genpreds.c, tree-cfg.c: Fix - comment typos. - -2006-06-29 Jason Merrill - - PR c++/26905 - PR c++/26612 - PR c++/27000 - PR c++/26984 - PR c++/19134 - * tree.c (build_decl_stat): Don't hande #pragma visibility here. - * c-common.c (c_determine_visibility): Handle it here. - * c-decl.c (finish_decl): Call c_determine_visibility for - functions, too. - * flags.h (enum symbol_visibility): Sort from most to least visibility. - * tree.h: Likewise. - * varasm.c (default_assemble_visibility): Likewise. - * c-common.c (handle_visibility_attribute): Complain about trying - to give visibility to an already defined class, or trying to change - declared visibility. Always attach the attribute. - - PR c++/26905 - PR c++/21675 - PR c++/17470 - * attribs.c (decl_attributes): Ignore type-in-place attributes - once the type has been defined. - -2006-06-29 Roger Sayle - - PR middle-end/27428 - * c-lex.c (c_lex_with_flags) : Increment errorcount - to indicate the cpplib has issued an error message for us. - -2006-06-29 Asher Langton - - PR target/25765 - * config/i386/i386.c (ix86_output_function_epilogue): Don't - insert a label at the end of an function under Mach-O. - -2006-06-29 Eric Christopher - Evan Cheng - - * predicates.md (vector_all_ones_operand): New. - (nonimmediate_or_sse_const_operand): Ditto. - * config/i386/i386-protos.h (standard_sse_constant_opcode): Declare. - * config/i386/i386.c (standard_sse_constant_opcode): Define. - (standard_sse_mode_p): Ditto. - (standard_sse_constant_p): Add case for -1 vector. - (ix86_expand_vector_move): Try to use. - * sse.md (*mov_internal): Use nonimmediate_or_sse_const_operand. - Call standard_sse_constant_opcode. - (*movv4sf_internal): Ditto. - (*movv2df_internal): Ditto. - -2006-06-29 Roger Sayle - - * genpreds.c (write_match_code_switch): Correctly use XSTR instead - of XEXP to extract the operands of a MATCH_CODE rtx. - -2006-06-28 Andrew Pinski - - * tree.c (tree_size): Do not waste tail padding in - struct tree_string and make the size be the same as - build_string will generate. - -2006-06-28 Jason Merrill - - PR c++/27768 - * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Add - may_aliases already in the tag's annotations to the bitmap. - -2006-06-28 Roger Sayle - - * genpreds.c (write_predicate_stmts) : Add missing break. - -2006-06-28 Roger Sayle - - * genpreds.c (generate_switch_p): New function. - (add_mode_tests): Push the new mode test down inside an AND expr - if this allows the switch-suitable MATCH_CODE to be near the root. - (write_match_code_switch): New function to write a MATCH_CODE as - a switch statement. - (write_predicate_stmts): New function to write a predicate RTX - expression as a sequence of statements. - (write_one_predicate_function): Use write_predicate_stmts. - (write_tm_constrs_h): Likewise. - -2006-06-26 Fred Fish - - * config/mips/t-sb1: New file. - * config.gcc (mipsisa64sb1-*-elf*): Add mips/t-sb1 to - tmake_file list. - -2006-06-26 DJ Delorie - - * config/m32c/m32c.c (m32c_print_operand): Fix sign-merging logic. - -2006-06-26 Naveen H.S - Jayant Sonar - Jaydeep Vipradas - - * config/m32c/addsub.md (addsi3, addsi3_1, addsi3_2): New. - (subsi3, subsi3_1, subsi3_2): New. - * config/m32c/bitops.md (andsi3, iorsi3, xorsi3): New. - * config/m32c/mov.md (SI mov peephole): New. - * config/m32c/m32.c (m32c_immd_dbl_mov): New. - * config/m32c/m32c-protos.h (m32c_immd_dbl_mov): New. - -2006-06-26 Olivier Hainque - - * function.c (aggregate_value_p): Honor DECL_BY_REFERENCE on - a CALL_EXPR target function declaration. - -2006-06-26 Richard Guenther - - * tree.c (build_string): Do not waste tail padding in - struct tree_string. - -2006-06-26 Richard Guenther - - * ggc-page.c (init_ggc): Add missing element to size_lookup - table. - - Revert - 2006-06-23 Richard Guenther - - * ggc-page.c (init_ggc): Do not round up the extra_order_size_table - sizes to MAX_ALIGNMENT. Fix the size_lookup table to honour - alignment requests instead. Add verification code. - Add struct tree_function_decl and struct tree_binfo size to - extra_order_size_table. Add missing element to size_lookup - table. - -2006-06-25 Eric Botcazou - - PR middle-end/28151 - * fold-const.c (const_binop): Be prepared for self returning zero. - Simplify code handling complex values. - -2006-06-24 Olivier Hainque - - * gimplify.c (gimplify_scalar_mode_aggregate_compare): New function. - (gimplify_expr): Use it for tcc_comparison of operands of non BLKmode - aggregate types. - -2006-06-24 Olivier Hainque - - * tree-ssa-loop-im.c (for_each_index): Handle ARRAY_RANGE_REF as - ARRAY_REF, so have the callback called for the low bound expression. - -2006-06-23 Janis Johnson - - * tree.h (DECIMAL_FLOAT_TYPE_P): New. - * c-typeck.c (c_common_type): Disallow operations on decimal float - types and other float types. - * convert.c (convert_to_real): Don't ignore conversions involving - decimal float types. - -2006-06-23 Olivier Hainque - - * tree.c (max_int_size_in_bytes): New function, inspired from - code in function.c:assign_temp. - * tree.h (max_int_size_in_bytes): Declare. - * function.c (assign_temp): Use it. - * gimplify.c (create_tmp_var): Relax the assertions on the type - properties, not mandating constant size any more. - (force_constant_size): New static function. - (gimple_add_tmp_var): Use it, forcing variable size to a - constant upper bound if it is not constant on entry. - -2006-06-23 Danny Smith - - PR target/27789 - * config/i386/winnt.c (ix86_handle_selectany_attribute): Move check - for initialization and setting of one_only flag to ... - (i386_pe_encode_section_info): ...here. - (i386_pe_dllimport_p): Check for DECL_DLLIMPORT_P also. - Recheck that the symbol has not been defined. - -2006-06-23 Richard Guenther - - * ggc-page.c (init_ggc): Do not round up the extra_order_size_table - sizes to MAX_ALIGNMENT. Fix the size_lookup table to honour - alignment requests instead. Add verification code. - Add struct tree_function_decl and struct tree_binfo size to - extra_order_size_table. Add missing element to size_lookup - table. - -2006-06-22 Roger Sayle - John David Anglin - - PR middle-end/28131 - * expr.c (expand_expr_real_1) : Check whether the - call to lang_hooks.types.type_for_mode returned NULL_TREE. - -2006-06-23 Ben Elliston - - * dfp.c (decimal_to_decnumber): Do not use decNumberNegate to - negate dn -- manipulate it directly. - -2006-06-22 Roger Sayle - Steven Bosscher - - PR target/27531 - * reload1.c (gen_reload): Call mark_jump_label on the new insns - generated by gen_move_insn to add REG_LABEL notes if necessary. - -2006-06-22 Bob Wilson - - * config/xtensa/lib1funcs.asm (MIN_ESA): Delete. - (leaf_entry): Remove use of MIN_ESA. - -2006-06-22 Zdenek Dvorak - - PR rtl-optimization/28121 - * cfgexpand.c (tree_expand_cfg): Clean EDGE_EXECUTABLE flag from - the entry edge. - -2006-06-21 DJ Delorie - - * config/m32c/muldiv.md (mulhisi3_i): Only use registers for dest - (TN-16C-A156A/E). - (mulhisi3_r): Likewise. - -2006-06-21 Richard Sandiford - - PR middle-end/28034 - * coverage.c (coverage_counter_alloc): Leave the index type - unspecified. - (coverage_counter_alloc): Use null arguments for operands 2 and 3 - of the ARRAY_REF. - -2006-06-21 Andrew Pinski - - * doc/invoke.texi (-fopenmp) Move to "Options Controlling C Dialect" - section from the "Options for Code Generation Conventions". - -2006-06-21 Richard Henderson - - PR target/26347 - PR target/27082 - * config/alpha/predicates.md (small_symbolic_operand): Deny weak - symbols. - (global_symbolic_operand): Allow weak symbols, even if local_p. - -2006-06-21 Eric Botcazou - - * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): New function. - (find_interesting_uses_address): Punt if above function returns true. - -2006-06-21 Richard Guenther - - * configure: Regenerated. - -2006-06-21 Joseph Myers - - * config/mips/mips.c (function_arg): Where one part of a - complex argument is in registers and the other part in the stack, - return a REG not a PARALLEL. - -2006-06-21 Mark Mitchell - - * configure.ac: Set gcc_gxx_include_dir to $target/include/c++ - when cross-compiling. Do not substitute libstdcxx_incdir. - * configure: Regenerated. - -2006-06-21 Jakub Jelinek - - * varasm.c (mergeable_string_section): Check for embedded NULs and - NUL termination in the first int_size_in_bytes (TREE_TYPE (decl)) - rather than TREE_STRING_LENGTH bytes. - -2006-06-21 Richard Guenther - - * ggc-page.c (extra_order_size_table): Add var_ann_d, - tree_ssa_name, bitmap_element and phi_node with 4 arguments - sizes. - -2006-06-21 Richrad Guenther - - * tree-ssa-loop-niter.c (simplify_using_initial_conditions): - Limit iteration over the dominators. - -2006-06-20 Roger Sayle - - * config/mips/iris6.h (LIB_SPEC): Add support for -pthread. - (SUBTARGET_CPP_SPEC): Define _REENTERANT if -pthread specified. - -2006-06-20 Richard Guenther - Michael Matz - - * alloc-pool.h (free_alloc_pool_if_empty): Prototype new - function. - * alloc-pool.c (free_alloc_pool_if_empty): New function. - * et-forest.h (et_free_pools): Prototype new function. - * et-forest.c (et_free_tree_force): Free parent occurrence. - (et_free_pools): New function. - * dominance.c (free_dominance_info): Free et-forest alloc - pools. - -2006-06-20 Roger Sayle - - * expr.c (expand_expr_real_1) : For vector constants with - integer modes, attempt to directly construct an integer constant. - - * fold-const.c (native_encode_vector): Determine the size of each - element from the vector type instead of the first vector element. - - * tree.c (build_constructor_single): Mark a CONSTRUCTOR as constant, - if all of its elements/components are constant. - (build_constructor_from_list): Likewise. - -2006-06-20 Zdenek Dvorak - - PR tree-optimization/27331 - * tree-data-ref.c (free_data_ref): New function. - (create_data_ref): Fail if the data reference has unknown access - function. - (free_data_refs): Use free_data_ref. - -2006-06-19 Andrew Pinski - - PR middle-end/28075 - * tree-inline.c (setup_one_parameter): Strip useless - type conversion before adding it to the IR. - (declare_return_variable): Likewise. - -2006-06-19 Martin Michlmayr - - PR c/27149 - * c-common.c (c_common_truthvalue_conversion): Fix grammar in warning. - -2006-06-19 Mike Stump - - * tree.c (variably_modified_type_p): VM arguments don't make the - type a VM type. - -2006-06-19 Richard Guenther - - * tree-ssa-pre.c (try_combine_conversion): Strip useless - type conversions after folding. - -2006-06-19 Richard Guenther - - * ggc-page.c (extra_order_size_tab): Add entries with - size of struct function and basic_block. - (size_lookup): Extend to cover sizes up to 511. - (ggc_alloc_stat): Adjust user. - (ggc_pch_count_object): Likewise. - (ggc_pch_alloc_object): Likewise. - (ggc_pch_write_object): Likewise. - -2006-06-19 Zdenek Dvorak - - * tree-ssa-loop-niter.c (implies_ge_p): New function. - (derive_constant_upper_bound): Handle OP0 - CST in unsigned types - correctly. - -2006-06-19 Denis Chertykov - - * config/avr/libgcc.S : Correct my wrong previous commit. - -2006-06-19 Roger Sayle - - PR target/27861 - * expmed.c (expand_shift): On SHIFT_COUNT_TRUNCATED targets, we may - have stripped a SUBREG from the shift count, so we may need to - convert_to_mode back to the type's mode before calling make_tree. - Use new_amount instead of amount to avoid expanding a tree twice. - -2006-06-19 Richard Guenther - - PR middle-end/28045 - * fold-const.c (operand_equal_p): Check if the argument types - have the same precision before stripping NOPs. - -2006-06-19 Daniel Berlin - - Fix PR tree-optimization/27341 - * tree-cfg.c (gimplify_val): Call mark_new_vars_to_rename on the - statement we get. - * tree-complex.c (pass_lower_complex): Update SMT usage. - -2006-06-19 Andreas Krebbel - - * config/s390/s390.md ("doloop_si64", "doloop_si31", "doloop_di"): - Add a new alternative to the constraint strings. Add move of - operand 1 to 3 to the splitter definition. - ("doloop_si_long"): Second contraint alternative removed. - -2006-06-08 Anatoly Sokolov - - * config/avr/avr.h (avr_have_movw_lpmx_p): Declare. - (TARGET_CPU_CPP_BUILTINS): Add __AVR_HAVE_MOVW__ and - __AVR_HAVE_LPMX__. - (AVR_HAVE_MOVW) Define. - (ASSEMBLER_DIALECT): Use AVR_HAVE_MOVW. - (ASM_SPEC): Add avr25. - (LINK_SPEC): Add avr25. - * config/avr/avr.c (avr_have_movw_lpmx_p): Add. - (base_arch_s): Add new member 'have_movw_lpmx'. - (avr_arch_types): Init 'have_movw_lpmx'. - (avr_mcu_types): Add 'avr25'. Move attiny13, attiny2313, attiny24, - attiny44, attiny84, attiny25, attiny45, attiny85, attiny261, - attiny461, attiny861 and at86rf401 in 'avr25' arhitecture. - (avr_override_options): Init 'avr_have_movw_lpmx_p'. - (output_movhi, output_movsisf, ashlsi3_out, avr_rtx_costs): Use - AVR_HAVE_MOVW. - (avr_file_start): Do not output '.arh' derective. - * config/avr/libgcc.S (mov_l): Use __AVR_HAVE_MOVW__. - (__do_copy_data): Use __AVR_HAVE_LPMX__. - * config/avr/avr.md (mcu_enhanced): Delete. - (mcu_have_movw): Define. - (negsi2, extendhisi2, zero_extendhisi2): Use 'mcu_have_movw'. - (call_insn, call_value_insn): Use 'call_insn' and __AVR_HAVE_MOVW__. - * config/avr/t-avr(MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Add avr25. - (MULTILIB_MATCHES): Add attiny13, attiny2313, attiny24, attiny44, - attiny84, attiny25, attiny45, attiny85, attiny261, attiny461, - attiny861 and at86rf401 devices. - -2006-06-18 Jie Zhang - - * config/bfin/bfin.c (MAX_LOOP_LENGTH): Define to be 2042 instead - of 4096. - -2006-06-17 Karl Berry - - * doc/cpp.texi, doc/cppinternals.texi, doc/gcc.texi, - doc/gccint.texi, doc/install.texi (@dircategory): Use - "Software development" instead of "Programming", following - the Free Software Directory. - -2006-06-17 Alexandre Oliva - - * config/i386/i386.c (legitimate_tls_address) - : Add tp after DTPOFF. - * config/i386/i386.md (*tls_dynamic_gnu2_combine_32): Adjust. - (*tls_dynamic_gnu2_combine_64): Likewise. - -2006-06-16 Richard Guenther - - PR middle-end/27116 - * fold-const.c (negate_expr_p): Do not introduce undefined - overflow in negating INTEGER_CSTs. - (fold_negate_expr): Rename from negate_expr. Revert last - change for folding BIT_NOT_EXPR. Change semantics to - return NULL_TREE for non-simplified negations. Do not - strip type conversions and unify type handling. - (negate_expr): New function, wrap around fold_negate_expr - but ensure building a tree always. Strip type conversions - here, fold to result type. - (fold_unary): Use fold_negate_expr for folding NEGATE_EXPR. - -2006-06-16 Roger Sayle - - PR middle-end/27802 - * reg-stack.c (subst_stack_regs): Handle noreturn function calls - that (would) return their results in stack registers. - -2006-06-16 Michael Matz - Richard Guenther - - * fold-const.c (fold_truthop): Only return new tree node if - we canonicalized something. - -2006-06-16 Richard Guenther - - * function.h (enum function_frequency): Move declaration - out of struct function. - (struct function): Move bool fields and the enum to the bitfield - section. Reorder elements to avoid padding. Remove unused - fields left over from the RTL inliner removal. - * function.c (free_after_compilation): Do not zero removed fields. - * Makefile.in (ipa-reference.o): Add $(FUNCTION_H) dependency. - (ipa-type-escape.o): Likewise. - -2006-06-16 Richard Guenther - - * cgraph.h (struct cgraph_local_info): Turn bool elements - into a bitfield. - (struct cgraph_node): Likewise. - (struct cgraph_varpool_node): Likewise. - -2006-06-15 Richard Guenther - - * fold-const.c (fold_truth_not_expr): Rename from - invert_truthvalue. Give it fold_* semantics to avoid - generating garbage. - (invert_truthvalue): New function. Wrapper around - fold_truth_not_expr. - (optimize_minmax_comparison): Avoid creating garbage. - (fold_unary): Use fold_truth_not_expr for folding - TRUTH_NOT_EXPR. - (fold_ternary): Replace uses of invert_truthvalue with - fold_truth_not_expr where applicable. - * tree.h (fold_truth_not_expr): Prototype. - -2006-06-16 Richard Guenther - - PR tree-optimization/27781 - * Makefile.in (ipa-pure-const.o): Add $(TARGET_H) dependency. - * ipa-pure-const.c (target.h): Include. - (analyze_function): Do not analyze functions that do not - bind locally. - -2006-06-15 Andrew MacLeod - - PR middle-end/27793 - * tree-dfa.c (referenced_vars_dup_list): Remove. - (find_referenced_vars): Remove assert. - (referenced_var_check_and_insert): Replace dup list with assert. - * tree-ssa.c (delete_tree_ssa): Remove dup list processing. - * tree-flow.h (referenced_vars_dup_list): Remove extern decl. - -2006-06-15 Richard Guenther - - * tree-ssa-structalias.c (alias_get_name): Avoid creating - extra unused identifiers if not dumping. - (create_variable_info_for): Likewise. - -2006-06-15 Zdenek Dvorak - - * tree-ssa-loop-niter.c (implies_nonnegative_p): New function. - (derive_constant_upper_bound): Derive more precise upper bound in - common cases. Return type changed to double_int. - (record_estimate): Reflect the changed return type of - derive_constant_upper_bound. - * double-int.c (double_int_zext, double_int_sext): Fix. - -2006-06-15 Paolo Bonzini - - * configure.ac (CFLAGS): Get them from the toplevel or from the - configure invocation. - * configure: Regenerate. - * Makefile.in (CFLAGS): Substitute value provided by configure. - -2006-06-14 Mark Mitchell - - PR c++/26559 - * c-common.h (c_finish_omp_atomic): Adjust declaration. - * c-omp.c (c_finish_omp_atomic): Return the expression to perform, - rather than calling add_stmt on it. - * c-parser.c (c_parser_omp_atomic): Adjust accordingly. - -2006-06-14 Andreas Krebbel - - PR middle-end/27959 - * reload1.c (reload): Remove registers returned by update_eliminables - from used_spill_regs. - -2006-06-13 DJ Delorie - - * config/m32c/muldiv.md (mulpsi3): Expect arbitrary constants. - -2006-06-13 Carlos O'Donell - - * Makefile.in: Define HTMLS_BUILD, HTMLS_INSTALL, - html__strip_dir, html__mkdir_p. Enhance install-html target. - * configure.ac: AC_SUBST datarootdir, docdir and htmldir. - * configure: Regenerate. - -2006-06-13 Fariborz Jahanian - - * fold-const.c (fold_cond_expr_with_comparison): Check for - Objective-C++ as language in deciding COND_EXPR transformation. - -2006-06-06 J"orn Rennecke - - PR target/28014: - * config/sh/t-sh (LIB1ASMFUNCS): Add _udiv_qrnnd16 - * config/sh/sh.c (print_operand): Add !SHMEDIA functionality to 'M'. - * config/sh/lib1funcs.h (SL, SL1): Define. - * config/sh/lib1funcs.asm (__udiv_qrnnd16): New hidden function. - * longlong.h (__sh__): Define umul_ppmm, udiv_qrnnd and sub_ddmmss. - * config/sh/t-sh ($(T)unwind-dw2-Os-4-200.o): New rule. - (OBJS_Os_4_200): New variable. - ($(T)libgcc-Os-4-200.a): Use it. - * sh.md (udivsi3): For TARGET_DIVIDE_CALL_TABLE, avoid function call - when dividing 1 and/or by 0. - -2006-06-13 Roger Sayle - - * configure.ac (HAS_MCONTEXT_T_UNDERSCORES): Include - before to define sigset_t required by . - * configure: Regenerate. - -2006-06-13 Jie Zhang - - * config/bfin/bfin.c (bfin_reorg_loops): Only call recog_memoized () - for real instruction. - -2006-06-13 Maxim Kuvyrkov - - PR middle-end/26807 - * haifa-sched.c (check_cfg): Handle special case. - -2006-06-13 Eric Botcazou - - PR debug/26754 - * gimplify.c (declare_tmp_vars): Rename into declare_vars. - Add debug_info parameter. Chain the vars to the BLOCK instead - of the BIND_EXPR if debug info are requested for them. - (pop_gimplify_context): Adjust for above change. - (gimple_add_tmp_var): Likewise. - * tree-gimple.h (declare_tmp_vars): Rename into declare_vars. - Add bool parameter. - * tree-nested.c (convert_nonlocal_reference): Adjust for above change. - (convert_local_reference): Likewise. - (get_local_debug_decl): Set DECL_IGNORED_P on the original variable. - (finalize_nesting_tree_1): Request that debug info be emitted - for debug_var_chain. - -2006-06-13 Maxim Kuvyrkov - - * haifa-sched.c (unlink_other_notes, unlink_line_notes): Fix the patch - for PR target/27863. - -2006-06-13 Richard Guenther - - PR middle-end/27536 - * except.c (output_ttype): Expand type with EXPAND_INITIALIZER. - -2006-06-13 Richard Guenther - - PR tree-optimization/27830 - * tree-inline.c (copy_body_r): For copying the operand - of an ADDR_EXPR make sure to fold &* afterwards. - -2006-06-12 Eric Botcazou - - * gimplify.c (gimplify_expr): Treat VIEW_CONVERT_EXPR like other - lvalues in the fb_none case with side-effects. - -2006-06-12 Kazu Hirata - - * tree-flow.h: Remove the prototype for - compute_phi_arg_on_exit. - * tree-ssa-loop-ivopts.c (protect_loop_closed_ssa_form_use, - protect_loop_closed_ssa_form, compute_phi_arg_on_exit): - Remove. - -2006-06-12 Mark Shinwell - - * builtins.c (expand_builtin_return_addr): Only use - frame_pointer_rtx when count == 0 and we are expanding - __builtin_return_address. - -2006-06-12 Fred Fish - - * config/mips/mips.c (mips_file_start): Create special section - ".gcc_compiled_longXX" for o64 ABI as well as EABI. - -2006-06-11 Eric Christopher - - PR middle-end/27948 - * stor-layout.c (place_field): Remove check for - remaining_in_alignment when aligning at the end of a run. - -2006-06-11 Eric Christopher - - PR 27542 - * doc/extend.texi (Structure-Packing Pragmas): Document ms_struct - pragma. - -2006-06-11 Roger Sayle - - PR target/27858 - Revert incorrect fix for PR target/27158 - 2006-05-08 Roger Sayle - * reload.c (find_reloads_toplev): Only return the simplified SUBREG - of a reg_equiv_constant if the result is a legitimate constant. - -2006-06-11 Roger Sayle - - PR target/27158 - * config/rs6000/rs6000.c (const_vector_elt_as_int): New function to - extract a CONST_VECTOR element and interpret it as an integer. - (vspltis_constant): Use const_vector_elt_as_int instead of the - macro CONST_VECTOR_ELT in order to handle FP vector modes. - * config/rs6000/predicates.md (easy_vector_const): Consider - floating point ALTIVEC_VECTOR_MODEs via easy_altivec_constant. - -2006-06-11 Kaz Kojima - - PR middle-end/27942 - * stor-layout.c (update_alignment_for_field): Don't add extra - alignment for packed non-bitfield fields in ms_bitfield_layout_p - code. - -2006-06-09 Ralf Corsepius - - * config/mips/t-rtems: Add EL/EB multilib variants. - -2006-06-09 Mike Stump - - * c-typeck.c (c_begin_vm_scope): Fix file_scope processing. - -2006-06-09 David Daney - - * doc/install.texi: Add binutils version recommendation for mips-*-*. - -2006-06-09 Andreas Krebbel - - * reload.c (find_reloads): Unset force_reload for 'X' constraint. - -2006-06-09 Richard Guenther - - PR tree-optimization/26998 - * tree-vrp.c (extract_range_from_unary_expr): For NEGATE_EXPR - of signed types, only TYPE_MIN_VALUE is special, but for both, - minimum and maximum value. Likewise VR_ANTI_RANGE is special - in this case, as is -fwrapv. - -2006-06-08 Mike Stump - - PR target/26427 - * config/darwin.c (darwin_asm_output_anchor): Disable - -fsection-anchors on darwin for now. - * config/darwin.h (TARGET_ASM_OUTPUT_ANCHOR): Likewise. - * rs6000/rs6000.c (optimization_options): Likewise. - -2006-06-08 Volker Reichelt - - PR target/27421 - * config/i386/i386.c (classify_argument): Skip fields with invalid - types in unions. - -2006-06-08 Steven Bosscher - - * cse.c (flush_hash_table): Use VOIDmode to invalidate a REG. - (cse_insn): Likewise for the stack_pointer_rtx. - -2006-06-08 Roger Sayle - - * tree-ssa-dom.c (record_conditions): Only record "unordered" - conditions from floating point comparisons. - -2006-06-08 Paolo Bonzini - - PR middle-end/27733 - * expmed.c (struct alg_hash_entry): Fix type of field T - to match synth_mult argument. - (NUM_ALG_HASH_ENTRIES): Make it bigger for 64-bit HOST_WIDE_INT. - -2006-06-08 Maxim Kuvyrkov - - PR target/27863 - * haifa-sched.c (unlink_other_notes, unlink_line_notes): Update basic - block boundaries. - -2006-06-08 Richard Guenther - - PR middle-end/27116 - * fold-const.c (negate_expr_p): We can negate BIT_NOT_EXPR - only, if overflow is defined and not trapping. - (negate_expr): Likewise. - -2006-06-07 Zdenek Dvorak - - PR tree-optimization/27872 - * tree-ssa-loop-manip.c (tree_unroll_loop): Set EDGE_IRREDUCIBLE_LOOP - flag on the new exit edge of the unrolled loop. - -2006-06-07 Zdenek Dvorak - - PR rtl-optimization/26449 - * loop-invariant.c (move_invariant_reg): Fail if force_operand fails. - -2006-06-07 Andrew MacLeod - - PR middle-end/27793 - * tree-dfa.c (referenced_vars_dup_list): New. List of duplicate - referenced_variables with matching DECL_UID's. - (find_referenced_vars): Make sure duplicate list is empty to start. - (referenced_var_p): Remove. - (referenced_var_check_and_insert): Renamed from referenced_var_insert. - Check if var is in the list, and add if needed. Update the duplicate - list if a different var is in the list with the same DECL_UID. - (add_referenced_var): Call routine to check and insert. - * tree-ssa.c (delete_tree_ssa): Clear var_ann's on duplicates. - * tree-flow.h (referenced_vars_dup_list): External declaration. - -2006-06-07 Fred Fish - - * config/mips/t-elf (MULTILIB_MATCHES): Combine two entries - into single entry. - -2006-06-07 Paolo Bonzini - - PR target/27390 - * reg-stack.c (subst_stack_regs_pat): Reorder resetting of - the imaginary and real parts of a clobbered register. - Emit insn to set the imaginary part. - -2006-06-06 Peter Lemieszewski - - * config/s390/t-tpf (LIB2ADDEH): Include unwind-dw2-fde-glibc.c - in lieu of unwind-dw2-fde.c. - -2006-06-06 Francois-Xavier Coudert - - * config/i386/mingw32.h (GOMP_SELF_SPECS): Define. - -2006-06-06 Ulrich Weigand - - PR target/27842 - * config/rs6000/altivec.md (UNSPEC_VSLW): Remove. - ("altivec_vspltisw_v4sf", "altivec_vslw_v4sf"): Remove. - ("mulv4sf3", "absv4sf3", "negv4sf3"): Adapt users to use - V4SImode temporaries and operations instead. - -2006-06-06 Joseph S. Myers - - * config/mips/t-linux64 (tp-bit.c): Append to tp-bit.c, not - dp-bit.c. - -2006-06-06 Mike Stump - - * Makefile.in: Rename to htmldir to build_htmldir to avoid - installing during build. - -2006-06-06 Maxim Kuvyrkov - - * params.def (PARAM_MAX_SCHED_EXTEND_REGIONS_ITERS): Change default - value to 0. - * doc/invoke.texi (max-sched-extend-regions-iters): Document. - * config/ia64/ia64.c (params.h): New header. - (ia64_optimization_options): New function to adjust parameters. - * config/ia64/ia64-protos.h (ia64_optimization_options): New prototype. - * config/ia64/ia64.h (OPTIMIZATION_OPTIONS): New macro. - * config/ia64/t-ia64 (ia64.o): Add dependence from params.h . - -2006-06-05 Kazu Hirata - - * stor-layout.c (debug_rli): Fix a typo in a debug message. - -2006-06-05 Steve Ellcey - - PR target/27051 - * config/ia64/ia64.c (ia64_select_rtx_section): Check TARGET_NO_SDATA. - -2006-06-05 Dorit Nuzman - Victor Kaplansky - - PR tree-optimization/26360 - * tree-vectorizer.c (destroy_loop_vec_info): Remove (dead) pattern - stmts. - -2006-06-04 Roger Sayle - Andrew Pinski - - PR middle-end/27382 - * c-common.c (c_common_truthvalue_conversion): Explicitly check - for LABEL_DECL before calling DECL_WEAK. - - PR c/27150 - * c-typeck.c (build_binary_op): Likewise, explicitly check for - LABEL_DECL and PARM_DECL. - -2006-06-05 Joseph S. Myers - - PR c/25161 - PR c/27020 - * c-decl.c (grokdeclarator): Disallow variably modified types at - file scope. Avoid marking shared array type of constant size as - VLA. - -2006-06-04 Volker Reichelt - - PR c++/27601 - * c-common.c (fold_offsetof_1): Handle static members. - -2006-06-04 Eric Christopher - - * stor-layout.c (start_record_layout): Initialize remaining_in_alignment. - (debug_rli): Output value for remaining_in_alignment. - (update_alignment_for_field): Unconditionalize - ms_bitfield_layout_p code. Handle non-bitfield fields. Remove - extra alignment code. - (place_field): Don't realign if ms_bitfield_layout_p. Unconditionalize - ms_bitfield_layout_p code. Rewrite handling of structure fields. - * tree.h (record_layout_info_s): Remove prev_packed. - * doc/extend.texi (ms_struct): Add documentation of format. - -2006-06-04 Mark Shinwell - - * tree.h: Declare folding_initializer. - * builtins.c (fold_builtin_constant_p): Give definite answer - if folding inside an initializer. - * fold-const.c: Define folding_initializer. - (START_FOLD_INIT): Save and then set folding_initializer. - (END_FOLD_INIT): Restore folding_initializer. - -2006-06-04 Richard Guenther - - PR tree-optimization/27039 - * fold-const.c (fold_comparison): Handle pointer comparison - again for all comparison codes. Compare offsets in signed - size type. - (fold_binary): Move code from here. - -2006-06-03 Roger Sayle - - PR target/26223 - * config/i386/i386.c (construct_container): Split static issued_error - flag into issued_sse_arg_error, issued_sse_ret_error and - issued_x87_ret_error. Issue a daignostic if the x86-64 ABI - requires the use of x87 registers and the user explicitly - specified the -mno-80387 command line option. - -2006-06-02 Geoffrey Keating - - * config/rs6000/host-darwin.c (sigaltstack): Protect prototype with - HAVE_DECL_SIGALTSTACK. - (MC_FLD): New. - (segv_handler): Use MC_FLD. - * configure.ac: Check for a sigaltstack declaration. - Compute HAS_MCONTEXT_T_UNDERSCORES on Darwin. - * configure: Regenerate. - * config.in: Regenerate. - -2006-06-03 J"orn Rennecke - - PR other/27850 - * Makefile.in (stmp-fixinc): Fix typo. - -2006-06-02 Roger Sayle - - * fold-const.c (fold_unary) : Ensure folded expressions - are type correct. Clean-up. - : Likewise. Optimize creal(~z) as creal(z). - : Likewise. Optimize cimag(~z) as -cimag(z). - -2006-06-01 DJ Delorie - - * config/v850/v850.h (ASM_OUTPUT_ADDR_DIFF_ELT): Disabled the - shift, as we've disabled the "switch" insn that needs it. - -2006-06-01 Per Bothner - - Suppress extra '#1 or '#1 ' on -dD output. - * c-opts.c (finish_options): Use internal line 0 for . - * c-ppoutput.c (cb_define): Don't increment line 0. - -2006-06-01 Pete Steinmetz - - * doc/invoke.texi: Add cpu_type power6. - * config.gcc: Add cpu_type power6. - * config/rs6000/rs6000.c (rs6000_override_options): Alias power6 - to power5+ with Altivec. - * config/rs6000/aix52.h (ASM_CPU_SPEC): Add power6. - * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add power6. - -2006-05-30 Anatoly Sokolov - - * config/avr/avr.h (SET_ASM_OP): Define. - -2006-06-01 Kazu Hirata - - * config/bfin/bfin.c: Fix comment typos. - -2006-06-01 Paolo Bonzini - - PR 25453 - * doc/install.texi: Document --enable-bootstrap and - --disable-bootstrap. - -2006-06-01 Paolo Bonzini - - * doc/install.texi: Document that InfoZIP can replace jar. - -2006-05-31 Roger Sayle - - * config/i386/i386.c (ix86_expand_fp_absneg_operator): When SSE - isn't available, directly generate the simpler x87 patterns without - the (use (const_int 0)). - * config/i386/i386.md (*negsf2_1): Enable pre-reload if the SSE - implementation isn't available. - (*negdf2_1): Likewise. - (*negxf2_1): XF mode negation is always done using the x87. - (*abssf2_1, *absdf2_1, *absxf2_1): Likewise^3 for fabs. - -2006-05-31 Roger Sayle - - * builtins.c (fold_builtin_cabs): Delete prototype. Require an - additional FNDECL argument. Optimize cabs(-z) and cabs(~z) as - cabs(z). - (fold_builtin_decl) : Update fold_builtin_cabs call. - -2006-05-31 Jie Zhang - - * config/bfin/bfin-protos.h (bfin_hardware_loop): Declare. - * config/bfin/bfin.c (basic-block.h): Include. - (struct machine_function): New. - (bfin_init_machine_status): New. - (override_options): Initialize init_machine_status. - (bfin_hardware_loop): New. - (MAX_LOOP_DEPTH, MAX_LOOP_LENGTH): Define. - (DEF_VEC_P (loop_info)): New. - (DEF_VEC_ALLOC_P (loop_info,heap)): New. - (struct loop_info): New. - (loop_info): New typedef. - (struct loop_work): New. - (loop_work): New typedef. - (DEF_VEC_O (loop_work)): New. - (DEF_VEC_ALLOC_O (loop_work,heap)): New. - (bfin_dump_loops): New. - (bfin_bb_in_loop): New. - (bfin_scan_loop): New. - (bfin_optimize_loop): New. - (bfin_reorg_loops): New. - (bfin_reorg): Use bfin_reorg_loops. - * config/bfin/bfin.h (FIRST_PSEUDO_REGISTER): Adjust for adding - loop registers. - (I_REGNO_P): Simplify. - (DP_REGNO_P, DPREG_P): New macros. - (REGISTER_NAMES, FIXED_REGISTERS, CALL_USED_REGISTERS, - REG_ALLOC_ORDER): Add LT0, LT1, LC0, LC1, LB0, LB1. - (enum reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): - Add LT_REGS, LC_REGS, LB_REGS. - (REG_CLASS_FROM_LETTER): Add 't' for LT_REGS, 'k' for LC_REGS, - 'l' for LB_REGS. - (REGNO_REG_CLASS): Deal with loop registers. - * config/bfin/bfin.md: Add comment for 't', 'k', 'l' constraint - letters. - (REG_LT0, REG_LT1, REG_LC0, REG_LC1, REG_LB0, REG_LB1): - New constants for loop registers. - (UNSPEC_LSETUP_END): New. - (seq_insns): New define_attr. Set it for appropriate insns. - (movsi_insn): Add alternatives for move from/to - loop count registers. - (doloop_end): New define_expand. - (loop_end): New define_insn. - (define_split for bad doloop_end): New. - (lsetup_with_autoinit): New define_insn. - (lsetup_without_autoinit): New define_insn. - (rep_movsi, rep_movhi): Clobber LT1, LC1, LB1. - * config/bfin/predicates.md (lc_register_operand): New. - (lt_register_operand): New. - (lb_register_operand): New. - (nondp_register_operand): New. - (nondp_reg_or_memory_operand): New. - * doc/md.texi: Document Blackfin new 't', 'k', 'l' constraint letters. - -2006-05-31 Jie Zhang - - * config/bfin/bfin.c (bfin_delegitimize_address): New. - (TARGET_DELEGITIMIZE_ADDRESS): Define. - -2006-05-31 Daniel Jacobowitz - - * Makefile.in (CATALOGS): Add po/ prefix. - * configure: Regenerated. - -2006-05-31 Richard Earnshaw - - PR target/27829 - * arm.c (arm_print_operand case 'S'): Validate that the operand is - a shift operand before calling shift_op. Avoid redundant call of - shift_op. - -2006-05-30 Naveen.H.S - DJ Delorie - - * config/m32c/m32c.c (m32c_expand_insv): Check that the value - we're inserting is a singlt-bit constant. - -2006-05-30 Roger Sayle - - * simplify-rtx.c (simplify_binary_operation_1) : Cast - width to HOST_WIDE_INT to avoid comparison warnings on some targets. - -2006-05-30 Roger Sayle - - PR tree-optimization/23452 - * fold-const.c (fold_mult_zconjz): New subroutine of fold_binary, - to optimize z * conj(z) as realpart(z)^2 + imagpart(z)^2. - (fold_binary) : Call fold_mult_zconjz for integral - complex values and with -ffast-math for FP complex values. - -2006-05-30 Kazu Hirata - - * c-common.h: Remove the prototype for yyparse. - * rtl.h: Remove the prototype for init_loop. - -2006-05-30 Andreas Krebbel - - * cse.c (validate_canon_reg, cse_insn): Don't change insns without - calling recog. - -2006-05-30 Roger Sayle - - * simplify-rtx.c (simplify_binary_operation): Unfactor the shift - and rotate cases. - : Optimize (lshiftrt (clz X) C) as (eq X 0) where C is - log2(GET_MODE_BITSIZE(X)) on targets with the appropriate semantics. - -2006-05-30 Dirk Mueller - - PR c/27273 - * c-common.c (convert_and_check): Only track TREE_CONSTANT_OVERFLOW - for CONSTANT_CLASS_P expresisons. - -2006-05-30 Volker Reichelt - - PR c/27718 - * c-typeck.c (c_expr_sizeof_type): Handle invalid types. - -2006-05-30 Zdenek Dvorak - - PR tree-optimization/27779 - * tree-data-ref.c (analyze_siv_subscript_cst_affine): Use - initial_condition instead of CHREC_LEFT. - -2006-05-30 Steven Bosscher - - * config/m32r/m32r.h (DBX_OUTPUT_SOURCE_LINE): Fix type of begin_label. - * config/m32r/initfini.c (__do_global_dtors, __do_global_ctors): - Make prototypes ISO C90. - -2006-05-30 Mircea Namolaru - Leehod Baruch - - * see.c (see_analyze_one_def): Correct check. - (see_get_extension_data): Check if extension is parallel. - (see_get_extension_reg): Likewise. - -2006-05-30 Uros Bizjak - - PR target/27790 - * config/i386/i386.c (ix86_expand_int_vcond): Force cop0 - into register for (code == GTU). - -2006-05-29 Roger Sayle - - PR tree-optimization/24964 - * simplify-rtx.c (simplify_binary_operation_1): Add function comment. - : Minor clean-up. Don't convert x*-1.0 into -x if we honor - signaling NaNs. Optimize -x*-x as x*x for all float modes, and - abs(x)*abs(x) as x*x for scalar floating point modes. - -2006-05-29 Sebastian Pop - - PR middle-end/27745 - * lambda-code.c (perfect_nestify): Don't copy statements - in the inner loop: move them to the inner loop header. - -2006-05-29 Diego Novillo - - PR 26237 - * c-tree.texi: Document OpenMP directives and clauses. - -2006-05-29 Kazu Hirata - - * varasm.c (globalize_decl): Fix indentation. - -2006-05-29 Diego Novillo - - PR 26242 - * doc/passes.texi: Add documentation for pass_vrp, pass_ipa_pta, - pass_fre, pass_store_ccp, pass_copy_prop, - pass_store_copy_prop, pass_merge_phi, pass_nrv, - pass_return_slot, pass_object_size, pass_lim, - pass_linear_transform, pass_empty_loop, pass_complete_unroll, - pass_loop_prefetch and pass_stdarg. - -2005-05-29 Bernd Schmidt - - * config/bfin/bfin.opt (mfdpic): New option. - * config/bfin/t-bfin-elf (EXTRA_PARTS): Add crtbeginS.o and crtendS.o. - (EXTRA_MULTILIB_PARTS): Likewise. - (CRTSTUFF_T_CFLAGS, TARGET_LIBGCC2_CFLAGS): Use -fpic. - (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Build one extra -mfdpic - multilib. - * config/bfin/elf.h (STARTFILE_SPEC): Don't link in crt0.o if -shared. - (CRT_CALL_STATIC_FUNCTION): New. - * config/bfin/uclinux.h (STARTFILE_SPEC): Don't link in crt0.o if - -shared. - (CRT_CALL_STATIC_FUNCTION): New. - * config/bfin/bfin.c (legitimize_pic_address): Now static. Handle - FD-PIC moves. - (n_pregs_to_save): PIC register doesn't need to be saved with FD-PIC. - (print_operand): Handle UNSPEC_MOVE_FDPIC and UNSPEC_FUNCDESC_GOT17M4. - (initialize_trampoline): Changed to handle FD-PIC code generation. - (expand_move): If TARGET_FDPIC, use emit_pic_move as needed. - (bfin_expand_call): Generate FD-PIC calls if TARGET_FDPIC. - (override_options): Disallow -mid-shared-library -mfdpic combination. - Can't do unaligned ops if FD-PIC. - Turn off flag_pic if trying to generate non-id-shared-library - non-fdpic code, since it's not supported. - (bfin_assemble_integer): New function. - (TARGET_ASM_INTEGER): Define. - * config/bfin/crti.s (__init, __fini): Save P3 on the stack if - __BFIN_FDPIC__. - * config/bfin/crtn.s: Restore them. - * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define __BFIN_FDPIC__ - if TARGET_FDPIC. - (DRIVER_SELF_SPECS, SUBTARGET_DRIVER_SELF_SPECS, - LINK_GCC_C_SEQUENCE_SPEC, ASM_SPEC, LINK_SPEC): New macros. - (FDPIC_FPTR_REGNO, FDPIC_REGNO, OUR_FDPIC_REG): New macros. - (TRAMPOLINE_SIZE, TRAMPOLINE_TEMPLATE): Adjust for FD-PIC. - (CONDITIONAL_REGISTER_USAGE): If TARGET_FDPIC, FDPIC_REGNO is - call-used. - (enum reg_class, REG_CLASS_CONTENTS, REG_CLASS_NAMES): Add - FDPIC_REGS and FDPIC_FPTR_REGS. - (REG_CLASS_FROM_LETTER): Use 'Z' and 'Y' for them. - * config/bfin/bfin.md (UNSPEC_MOVE_FDPIC, UNSPEC_FUNCDESC_GOT17M4, - UNSPEC_VOLATILE_LOAD_FUNCDESC): New constants. - (load_funcdescsi): New pattern. - (call_symbol_fdpic, sibcall_symbol_fdpic, call_value_symbol_fdpic, - sibcall_value_symbol_fdpic, call_insn_fdpic, sibcall_insn_fdpic, - call_value_insn_fdpic, sibcall_value_insn_fdpic): New patterns. - -2006-05-29 Kazu Hirata - - * gcse.c, rtlanal.c: Remove obsolete comments associated with - loop.c. - - * config/bfin/bfin.h (PARM_BOUNDRY, STACK_BOUNDRY): Remove. - - * tree-flow.h: Remove the prototype for add_type_alias. - * tree-ssa-alias.c (add_type_alias): Remove. - -2006-05-28 Kazu Hirata - - * cfgcleanup.c, cfgexpand.c, cgraphunit.c, config/arm/arm.c, - config/fr30/fr30.md, config/i386/i386-interix.h, - config/i386/i386.c, config/i386/i386.md, config/sh/superh.h, - config/sh/superh64.h, config/v850/v850.c, df-core.c, - df-problems.c, df.h, except.c, final.c, haifa-sched.c, - lambda-code.c, libgcc2.h, omp-low.c, optabs.c, predict.c, - reload.c, tree-flow.h, tree-outof-ssa.c, tree-ssa-dce.c, - tree-ssa-pre.c, tree-vect-transform.c: Fix comment typos. - Follow spelling conventions. - * doc/invoke.texi, doc/rtl.texi, doc/tm.texi: Fix typos. - Follow spelling conventions. - -2006-05-27 Richard Guenther - - PR middle-end/27773 - * fold-const.c (fold_plusminus_mult_expr): Use fold_convert - to produce a constant of value 1 of generic type. - -2006-05-27 Dirk Mueller - - * cgraphunit.c (decide_is_function_needed): Fix wrong - PR reference. - -2006-05-26 Ulrich Weigand - - PR rtl-optimization/27661 - * reload.c (find_reloads): When reloading a VOIDmode constant - as address due to an EXTRA_MEMORY_CONSTRAINT or 'o' constraint, - use Pmode as mode of the reload register. - -2006-05-26 Eric Botcazou - - * doc/invoke.texi (Optimize Options): Document that -funit-at-a-time - is enabled at -O and above. - -2006-05-26 Steven Bosscher - - PR target/27571 - * config/alpha/alpha.c (alpha_does_function_need_gp): Skip jump - table data. - -2006-05-25 Mark Mitchell - - PR c++/20103 - * gimplify.c (gimplify_decl_expr): Do not call gimple_add_tmp_var - for anonymous variables explicitly declared by front ends. - -2006-05-25 Eric Botcazou - - * tree-ssa-structalias.h (PTR_IS_REF_ALL): New macro. - (struct alias_info): Add new field ref_all_symbol_mem_tag. - * tree-ssa-alias.c (compute_may_aliases): If the program contains - ref-all pointers, run a finalization pass for them. - (compute_flow_insensitive_aliasing): Skip ref-all pointers. - (finalize_ref_all_pointers): New function. - (is_escape_site): Return ESCAPE_BAD_CAST for conversion from a - regular pointer type to a ref-all pointer type. - (get_tmt_for): Return the special memory tag for ref-all pointers. - -2006-05-25 Richard Guenther - - PR middle-end/27743 - * fold-const.c (fold_binary): Do not look at the stripped - op0 for (a OP c1) OP c2 to a OP (c1+c2) shift optimization. - -2006-05-25 Eric Botcazou - - * tree-vrp.c (extract_range_from_assert): Set the range to VARYING - for LT and GT if the computed range is effectively empty. - -2006-05-24 John David Anglin - - PR target/27627 - * pa/pa-modes.def: Use mips_single_format, mips_double_format and - mips_quad_format formats instead of ieee_single_format, - ieee_double_format and ieee_quad_format formats, respectively. - -2006-05-24 Zdenek Dvorak - - PR tree-optimization/27639 - PR tree-optimization/26719 - * tree-vrp.c (adjust_range_with_scev): Use scev_direction and adjust - call to scev_probably_wraps_p. - * tree-ssa-loop-niter.c (compare_trees, convert_step_widening, - used_in_pointer_arithmetic_p, convert_step): Removed. - (nowrap_type_p): New function. - (scev_probably_wraps_p): Rewritten. - * tree-scalar-evolution.c (instantiate_parameters_1): Do not call - chrec_convert if chrec_convert_aggressive might have been used. - * tree-chrec.c (convert_affine_scev, chrec_convert_1, - scev_direction): New functions. - (chrec_convert): Changed to a wrapper over chrec_convert_1. - * tree-ssa-loop-ivopts.c (idx_find_step): Use convert_affine_scev - instead of convert_step. - * tree-flow.h (scev_probably_wraps_p): Declaration changed. - (convert_step): Declaration removed. - (convert_affine_scev, nowrap_type_p, scev_direction): Declare. - -2006-05-23 Kenneth Zadeck - - * df-core.c: Added to header comments. - * df.h (df_ru_bb_info, df_rd_bb_info, df_lr_bb_info, - df_ur_bb_info, df_urec_bb_info): Added comments. - * df-problems (df_ref_bitmap, ru, rd, lr, ur, - urec, ri problems): Fixed header comments. - (df_ru_transfer_function): Fixed in-out set dyslexia when copying - code from df_rd_transfer_function. - -2006-05-23 Richard Sandiford - - * libgcc2.c (LIBGCC2_MAX_UNITS_PER_WORD): New macro. - (LIBGCC2_UNITS_PER_WORD): Use LIBGCC2_MAX_UNITS_PER_WORD rather than - MIN_UNITS_PER_WORD to set the default. Also use it in the guard. - -2006-05-23 Joseph Myers - - * expr.c (undefined_operand_subword_p): New. - (emit_move_multi_word): Do not generate move from undefined bits - of a paradoxical subreg. - -2006-05-23 Richard Sandiford - - PR rtl-optimization/27736 - * combine.c (replaced_rhs_value): New variable. - (combine_instructions): Set it. - (distribute_notes): When distributing a note in replaced_rhs_insn, - check whether the value was used in replaced_rhs_value. - -2006-05-23 Andrew MacLeod - - PR c++/26757 - * tree-ssa-loop-im.c (determine_invariantness_stmt): Use - add_referenced_var instead of add_referenced_tmp_var. - * tree-complex.c (create_one_component_var): Use add_referenced_var. - * tree-ssa-loop-manip.c (create_iv, tree_unroll_loop): Use - add_referenced_var. - * tree-tailcall.c (adjust_accumulator_values, adjust_return_value, - tree_optimize_tail_calls_1): Use add_referenced_var. - * tree-ssa-loop-ivopts.c (create_new_iv): Use add_referenced_var. - * tree-ssa-alias.c (create_memory_tag, create_global_var, create_sft): - Use add_referenced_var. - * tree-if-conv.c (ifc_temp_var): Use add_referenced_var. - * gimplify.c (force_gimple_operand): Use add_referenced_var. - * tree-ssa-phiopt.c (conditional_replacement, abs_replacement): - Use add_referenced_var. - * tree-dfa.c (struct walk_state): Remove. - (find_referenced_vars): Remove walk state and vars_found hash table. - (make_rename_temp): Use add_referenced_var. - (find_vars_r): Pass less parameters to add_referenced_var. - (referenced_var_p): New. Is var in referenced_var hash table. - (referenced_var_insert): Assert var isn't already in hash table. - (add_referenced_var): Don't need walk_state parameter. Add var if it - isn't already in the hash table. - (add_referenced_tmp_var): Remove. - (find_new_referenced_vars_1): Use add_referenced_var. - * tree-ssa-pre.c (create_expression_by_pieces, - insert_into_preds_of_block, insert_extra_phis, realify_fake_stores): - Use add_referenced_var. - * tree-vect-patterns.c (vect_pattern_recog_1): Use add_referenced_var. - * lambda-code.c (lbv_to_gcc_expression, lle_to_gcc_expression, - lambda_loopnest_to_gcc_loopnest, perfect_nestify): Use - add_referenced_var. - * tree-vect-transform.c (vect_create_addr_base_for_vector_ref, - vect_create_data_ref_ptr, vect_create_destination_var, - vect_init_vector, vect_build_loop_niters, - vect_generate_tmps_on_preheader, vect_update_ivs_after_vectorizer, - vect_gen_niters_for_prolog_loop, vect_create_cond_for_align_checks): - Use add_referenced_var. - * tree-outof-ssa.c (create_temp): Use add_referenced_var. - * tree-flow.h (add_referenced_tmp_var): Remove prototype - (add_referenced_var): Add prototype. - * tree-ssa-structalias.c (get_constraint_for, - intra_create_variable_infos): Use add_referenced_var. - -2006-05-23 Alexandre Oliva - - * simplify-rtx.c (simplify_subreg): Adjust REG_OFFSET for - big-endian paradoxical subregs. - * var-tracking.c (struct micro_operation_def): Document that, - for modify micro operations, insn is the subsequent instruction. - (var_reg_delete_and_set, var_mem_delete_and_set): Split into... - (var_reg_set, var_mem_set): ... new functions. - (add_stores): Record subsequent insn. - (compute_bb_dataflow): Use new functions for MO_USE. - (emit_notes_in_bb): Use new functions for MO_USE. Emit use - notes after the insn, and modify notes before the insn known - to be the subsequent one. - (vt_initialize): Invert sorting of MO_CLOBBERs and MO_SETs. - -2006-05-23 Kazu Hirata - - PR target/27696 - * config/i386/i386.c (ix86_expand_builtin): Use - gen_sse3_monitor64 for TARGET_64BIT. - -2006-05-22 Kenneth Zadeck - - PR rtl-optimization/26375 - PR rtl-optimization/26855 - * df-problems (df_ru_bb_local_compute_process_def): Removed update - to gen set. - (df_ru_bb_local_compute): Reversed statements and removed bogus - comment explaining why they should be in wrong order. - (df_ru_dump, df_rd_dump): Enhanced debug info. - * modulo-sched.c (sms_schedule, tree_opt_pass pass_sms): Enhanced - debug info. - * ddg.c (add_deps_for_def): Converted use of reaching defs to - reaching uses and fixed space problem. - -2006-05-23 Jan Hubicka - - * cgraphunit.c (decide_is_function_needed): Also nested functions - and functions declared inline can be optimized out at -O0. - -2006-05-22 Gerald Pfeifer - - * doc/install.texi (Configuration): Remove reference to CrossGCC - FAQ which was gone. - (Building): Ditto. - -2006-05-22 Kazu Hirata - - PR target/27266 - * config/i386/i386.c (ix86_expand_branch): Jump to simple if - ix86_compare_emitted is non-NULL. - -2006-05-22 Volker Reichelt - - PR c++/27451 - * stmt.c (expand_asm_operands): Skip asm statement with erroneous - clobbers. - -2006-05-22 Richard Sandiford - - PR rtl-optimization/25514 - * combine.c (replaced_rhs_insn): New variable. - (combine_instructions): Set replaced_rhs_insn when trying to replace - a SET_SRC with a REG_EQUAL note. - (distribute_notes): Use replaced_rhs_insn when determining the live - range of a REG_DEAD register. - -2006-18-05 Joerg Wunsch - Anatoly Sokolov - - * config/avr/avr.c (avr_mcu_types): Add support for attiny261, - attiny461, attiny861, attiny25, attiny45, attiny85, attiny24, - attiny44, attiny84, at90pwm2, at90pwm3, atmega165p, atmega169p, - atmega164p, atmega324p, atmega644p, atmega644, atmega329, - atmega3290, atmega649, atmega6490, atmega406, atmega640, - atmega1280, atmega1281, at90can32, at90can64, at90usb646, - at90usb647, at90usb1286 and at90usb1287 devices. - * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.). - * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.). - -2006-05-22 Richard Sandiford - - * mklibgcc.in (lib2funcs): Remove _floatdidf from initial assignment. - -2006-05-22 Richard Guenther - - Revert - 2006-01-31 Richard Guenther - Paolo Bonzini - - * doc/install.texi (--disable-libgcc-math): Document. - -2006-05-22 Richard Guenther - - Revert - 2006-01-31 Richard Guenther - - * doc/invoke.texi (-msselibm): Document. - * target.h (expand_library_builtin): New target hook. - * builtins.c (expand_builtin): Use expand_library_builtin. - (default_expand_library_builtin): New function. - * gcc.c (LINK_GCC_MATH_SPEC): Define. - (LINK_COMMAND_SPEC): Handle %(link_gcc_math). - (link_gcc_math_spec): Declare. - (static_specs): Add link_gcc_math_spec. - * expr.h (default_expand_library_builtin): Declare. - * target-def.h (TARGET_EXPAND_LIBRARY_BUILTIN): Define. - (TARGET_INITIALIZER): Add TARGET_EXPAND_LIBRARY_BUILTIN. - * config/i386/i386.h: Provide LINK_GCC_MATH_SPEC. - * config/i386/i386.opt (msselibm): New target option. - * config/i386/i386.c (ix86_builtin_function_variants): New array. - (ix86_init_sse_abi_builtins): New function. - (ix86_expand_library_builtin): Likewise. - (TARGET_EXPAND_LIBRARY_BUILTIN): Define. - (override_options): Handle error conditions wrt -msselibm. - (ix86_builtins): Add function codes for SSE2 ABI builtins. - (ix86_init_builtins): Call ix86_init_sse_abi_builtins. - * doc/extend.texi (__builtin_sse2_*): Document new target specific - builtins. - -2006-05-22 Volker Reichelt - - PR c/27420 - * c-common.c (self_promoting_args_p): Skip erroneous args. - - PR c/26818 - * c-decl.c (finish_struct): Skip erroneous fields. - -2006-05-22 Nick Clifton - - * config/cris/cris.opt (march): Remove VarExists attribute. - (max-stackframe=): Likewise. - -2006-05-22 Kazu Hirata - - * doc/rtl.texi: Fix a typo. - * see.c: Fix comment typos. - - * tree-ssa-structalias.h (alias_info): Remove num_references. - -2006-05-21 Mike Stump - - * config/darwin-c.c (BAD): Conditionalize on OPT_Wpragmas. - (BAD2): Add. - (darwin_pragma_options): Use BAD instead. - (darwin_pragma_unused): Likewise. - (darwin_pragma_ms_struct): Likewise. - -2006-05-21 David Edelsohn - - * config/rs6000/rs6000.md (floatsitf2): Remove constraints. - -2006-05-21 Kazu Hirata - - PR rtl-optimization/27671 - * simplify-rtx.c (simplify_relational_operation_1): Fix - simplifications of (eq/ne (xor x y) y) and - (eq/ne (xor x y) x). - - PR tree-optimization/26622. - * fold-const.c (fold_ternary) : Call fold_convert - on arg1. - -2006-05-21 Bernhard Fischer - - * tree-cfg.c: Prune whitespace. - (debug_tree_cfg): Point to correct header containing the - TDF_* defines. - -2006-05-21 Bernhard Fischer - - PR middle-end/25776 - * cgraphunit.c (verify_cgraph_node): Typo in error message. - -2006-05-20 Andrew Pinski - - PR middle-end/25776 - * cgraphunit.c (cgraph_optimize): Don't run ipa passes if error - or sorry count is non zero. - -2006-05-20 Andreas Schwab - - * config/pa/pa-linux.h (STRING_ASM_OP): Prepend and append a tab. - -2006-05-19 Daniel Berlin - Kenneth Zadeck - - PR rtl-optimization/26855 - - * df-scan.c (mw_reg_pool, mw_link_pool): New allocation pools for - multiword refs. - (df_scan_alloc): Added code to properly handle multiword hard - registers and add all_blocks parameter. - (df_scan_free_internal, df_insn_refs_delete, df_ref_record): Added - code to properly handle multiword hard registers. - (df_rescan_blocks): Added code to remove deleted blocks from - bitmap. - (df_ref_create_structure, df_ref_record): Added code to properly - handle subregs. - (df_ref_record_1): Changed DF_REF_CLOBBER into DF_REF_MUST_CLOBBER - and set DF_REF_PARTIAL. - (df_defs_record): Changed DF_REF_CLOBBER into DF_REF_MUST_CLOBBER. - (df_uses_record): Added DF_REF_PARTIAL for subreg. - (df_scan_add_problem): Added flags parameter. - (df_ref_create_structure): Changed switching structure. - (df_bb_refs_record): Fixed case where duplicate artificial refs - were created. Changed location of flags. - (df_record_entry_block_defs): Added code to make stack pointer - live in entry block. Refined cases where frame pointer is needed. - Changed location of flags. - (df_record_exit_block_uses, df_insn_refs_record): Changed location of flags. - (df_set_state): Removed function. - (df_grow_reg_info, df_reg_chain_unlink, df_ref_remove, - df_insn_create_insn_record, df_insn_refs_delete, - df_ref_create_structure): Formatting changes. - * df-core.c (df_mvs_dump, df_set_flags, df_clear_flags, - df_delete_basic_block): New function. - (df_init): Changed location of flags. - (df_add_problem): Added flags parameter and the way flags are - processed. - (df_insn_uid_debug, df_ref_debug, debug_df_defno, debug_df_ref, - debug_df_chain): Improved debugging output. - (df_insn_debug, df_insn_uid_debug): Added multiword reg support. - (df_refs_chain_dump): Removed df parameter. - (df_iterative_dataflow): Added consistency check. - (df_prune_to_subcfg): Made public. - (df_analyze_problem): Added blocks_to_init parameter and made - public. - (df_ref_record, df_bb_refs_record, df_mark_reg, - df_record_exit_block_uses): Whitespace changes. - (df_dump): Whitespace changes. - * df.h: Some reordering to remove forward references. - (df_ref_flags.DF_REF_MW_HARDREG, DF_REF_PARTIAL, - DF_REF_MUST_CLOBBER, DF_REF_MAY_CLOBBER): New fields. - (df_ref_flags.DF_REF_CLOBBER): Deleted field. - (dataflow.flags): New field. - (df.flag): Deleted field. - (df_alloc_function): Added additional bitmap parameter. - (df_dependent_problem_function): New type. - (df_problem.changeable_flags): New field. - (df_ref_flags.DF_REF_DIES_AFTER_THIS_USE, DF_SCAN_INITIAL, - DF_SCAN_GLOBAL, DF_SCAN_POST_ALLOC, df_state): Removed. - (df_mw_hardreg): New struct. - (DF_INSN_UID_MWS): New macro. - (df_refs_chain_dump, df_ref_debug, df_chain_dump): Removed df - parameter. - (df_add_problem, df_ru_add_problem, df_rd_add_problem, - df_lr_add_problem, df_ur_add_problem, df_urec_add_problem, - df_ri_add_problem, df_scan_add_problem): Added flags parameter. - (df_set_state): Removed function. - (df_set_flags, df_clear_flags, df_delete_basic_block) New functions. - * df-problems.c (df_chain_dump): Removed df parameter. - (df_ru_alloc, df_rd_alloc, df_lr_alloc, df_ur_alloc, - df_urec_alloc, df_chain_alloc, df_ri_alloc): Added all blocks - parameter. - (df_ru_alloc, df_rd_alloc): Now resets all blocks. - (df_rd_bb_local_compute_process_def, df_ur_bb_local_compute, - df_chain_create_bb, df_create_unused_note, df_ri_bb_compute): - Split DF_REF_CLOBBER into DF_REF_MAY_CLOBBER and - DF_REF_MUST_CLOBBER cases. - (df_ru_bb_local_compute_process_def, - df_rd_bb_local_compute_process_def, df_lr_bb_local_compute, - df_lr_bb_local_compute, df_ur_bb_local_compute, - df_chain_create_bb): Made subreg aware. - (df_ru_bb_local_compute, df_rd_bb_local_compute, - df_lr_bb_local_compute, df_lr_bb_local_compute, - df_chain_create_bb): Cleanup to use proper macros. - (df_ur_local_finalize, df_urec_local_finalize): Removed unnecessary - code to fixup bitvectors. - (df_ri_alloc): Cleared lifetime. - (df_ignore_stack_reg, df_kill_notes, df_set_notes_for_mw, - df_create_unused_note): New function. - (df_ri_bb_compute, df_ri_compute): Added code to create/update - REG_DEAD and REG_UNUSED notes as well as register information. - (df_ru_dump, df_rd_dump, df_lr_dump, df_ur_dump, df_urec_dump, - df_chains_dump): Fixed crash if problem was never run. - (df_ru_add_problem, df_rd_add_problem, df_lr_add_problem, - df_ur_add_problem, df_urec_add_problem, df_chain_add_problem, - df_ri_add_problem): Processes flags in uniform manner. - (df_ru_alloc, df_ru_local_compute, df_ru_confluence_n, df_ru_free, - df_ru_dump, df_rd_local_compute, df_rd_confluence_n, df_rd_free, - df_rd_dump, df_urec_free_bb_info): Formatting changes. - (df_ru_free_bb_info, df_ru_bb_local_compute, df_ru_dump, - df_rd_free_bb_info, df_rd_bb_local_compute_process_def, - df_rd_bb_local_compute, df_rd_dump, df_lr_free_bb_info, - df_lr_bb_local_compute, df_lr_local_compute, df_ur_free_bb_info, - df_ur_dump, df_urec_free_bb_info, df_urec_dump, - df_chain_create_bb, df_ri_bb_compute): Whitespace changes. - * modulo-sched.c (sms_schedule): Added flag parameter to calls. - * see.c (see_initialize_data): Ditto. - * final.c (rest_of_clean_state) Added regstack_completed. - * rtl.h (regstack_completed): Ditto. - * reg-stack.c (regstack_completed): Ditto. - -2006-05-19 Mike Stump - - * c-tree.h (default_conversion): Remove. - * c-common.h (default_conversion): Add. - -2006-05-19 Zdenek Dvorak - - * tree-vrp.c (valid_value_p): New function. - (adjust_range_with_scev): Fail if the value of bound is not - simple. - -2006-05-19 Richard Sandiford - - * config/mips/linux-unwind.h: Include - (mips_fallback_frame_state): Use syscall numbers to determine - the appropriate li instruction for the current ABI. Only use - __NR_sigreturn for o32. - -2006-05-19 Nicolas Setton - - * langhooks.h (struct lang_hooks): Add dwarf_name language hook. - * langhooks.c (lhd_dwarf_name): New function. - * langhooks-def.h (lhd_dwarf_name): Declare. - (LANG_HOOKS_DWARF_NAME): New macro, defaults to lhd_dwarf_name. - * dwarf2out.c (dwarf2_name): Use the dwarf_name language hook. - -2006-05-19 Richard Sandiford - - * libgcc2.c (MIN_UNITS_PER_WORD): Move default definition from - libgcc2.h. - (LIBGCC2_UNITS_PER_WORD): Provide default definition, using old - MIN_UNITS_PER_WORD logic from libgcc2.h. Do nothing if - LIBGCC2_UNITS_PER_WORD > MIN_UNITS_PER_WORD. - * libgcc2.h (MIN_UNITS_PER_WORD): Remove definition from here. - Use LIBGCC2_UNITS_PER_WORD rather than MIN_UNITS_PER_WORD to - determine the size of Wtype, etc. - * mklibgcc.in (LIB2_SIDITI_CONV_FUNCS): New argument. - (swfloatfuncs): New variable. - (dwfloatfuncs): Likewise. - (lib2funcs): Remove floating-point conversion functions from - initial assignment. Use LIB2_SIDITI_CONV_FUNCS to determine - the set of conversion routines needed. Allow entries to specify - an object name, filename and word size. Update users accordingly. - * Makefile.in (libgcc.mk): Pass LIB2_SIDITI_CONV_FUNCS. - * config/mips/t-mips (LIB2_SIDITI_CONV_FUNCS): Define. - - Revert: - - 2006-02-08 Roger Sayle - - PR target/22209 - * config/fixtfdi.c: New libgcc source file. - * config/fixunstfdi.c: New source file. - * config/floatditf.c: New source file. - * config/floatunditf.c: New souce file. - * config/mips/t-iris6 (LIB2FUNCS_EXTRA): Include the new source - files above instead of config/mips/_tilib.c. - * config/mips/t-linux64 (LIB2FUNCS_EXTRA): Likewise. - -2006-05-18 John David Anglin - - * pa/t-hpux-shlib (SHLIB_LINK): Remove `-lc'. - * pa/pa-hpux11.h (LIB_SPEC): Update comment. - -2006-05-18 Mike Stump - - Fix up vla, vm and [*] sematics. - - PR c/18740 - PR c/7948 - PR c/25802 - PR c/27673 - * c-tree.h (struct c_arg_info): Add had_vla_unspec. - (c_vla_unspec_p): Add. - (c_vla_type_p): Add. - * c-decl.c (struct c_scope): Add had_vla_unspec. - (build_array_declarator): Add support for [*]. - (grokdeclarator): Likewise. - (grokparms): Likewise. - (get_parm_info): Likewise. - * c-objc-common.c (c_vla_unspec_p): Likewise. - * c-objc-common.h (LANG_HOOKS_TREE_INLINING_VAR_MOD_TYPE_P): Likewise. - * c-parser.c (c_parser_typeof_specifier): Evaluate arguments to - typeof when argument is a variably modified type not inside sizeof or alignof. - (c_parser_direct_declarator_inner): Propagate errors. - (c_parser_sizeof_expression): Add support for [*]. - (c_parser_parms_declarator): Initialize had_vla_unspec. - (c_parser_parms_list_declarator): Likewise. - * c-typeck.c (c_vla_type_p): Add. - (composite_type): Add support for vla compositing. - (comptypes_internal): Add support for vla compatibility. - (c_expr_sizeof_expr): Evaluate vla arguments. - * tree.c (variably_modified_type_p): Update comment for [*]. - -2006-05-18 Michael Matz - - PR target/27599 - * config.host: Make assignments to host_xmake_file cumulative. - * config.host (*-darwin*): Test $host, not $target. - -2006-05-12 Stuart Hastings - - * config/i386/i386.opt (-mstackrealign): New flag. - * config/i386/i386.c (force_align_arg_pointer): New attribute. - (ix86_handle_cconv_attribute): Emit error when - force_align_arg_pointer attribute collides with too many regparms. - (ix86_function_regparm): Limit regparms when used with - force_align_arg_pointer attribute. (ix86_internal_arg_pointer): - Support stack-realigning prologue in non-main functions. Emit - warning for nested functions under -mstackrealign, emit error for - nested functions with force_align_arg_pointer attribute. - * doc/extend.texi (force_align_arg_pointer): Document it. - * doc/invoke.texi (-mstackrealign): Document it. - -2006-05-17 Kazu Hirata - - PR rtl-optimization/27477 - * combine.c (try_combine): Don't split a parallel consisting - of two sets into two individual sets if both sets reference - cc0. - -2006-05-17 H.J. Lu - - * config/arm/arm.opt (target_fpe_name): Remove VarExists. - * config/rs6000/rs6000.opt (TARGET_NO_FP_IN_TOC): Likewise. - - * doc/options.texi (VarExists): Updated. - -2006-05-17 John David Anglin - - * unwind-dw2.c: Add declarations for uw_update_context and - uw_frame_state_for. - * pa/hpux-unwind.h (pa_fallback_frame_state): When an export stub is - detected, advance frame state and context once to skip over stub. - -2006-05-17 Sebastian Pop - - PR middle-end/20256 - PR middle-end/26435 - * tree-loop-linear.c (linear_transform_loops): Don't test perfect_nest_p. - Call rewrite_into_loop_closed_ssa only when something changed. - * lambda.h (gcc_loopnest_to_lambda_loopnest): Update declaration. - * lambda-code.c (can_convert_to_perfect_nest): Declared. - (gcc_loopnest_to_lambda_loopnest): Removed need_perfect_nest parameter. - Test for perfect_nest_p here. Fix formating. - (replace_uses_equiv_to_x_with_y): Fix formating. - (stmt_uses_op): Removed. - (can_convert_to_perfect_nest): Removed loopivs parameter. - Complete the test by checking the scalar dependences. - (perfect_nestify): Remove the test for can_convert_to_perfect_nest. - Fix formating. - -2005-05-17 Bernd Schmidt - - PR bootstrap/22541 - From Dan Kegel : - * Makefile.in: Strip "dir/../" combinations from SYSTEM_INCLUDE_DIR. - -2006-05-17 Eric Botcazou - - * tree.c (variably_modified_type_p) : Return true - if the element type is variably modified without recursing. - -2006-05-17 Sebastian Pop - - PR middle-end/27332 - * tree-loop-linear.c (try_interchange_loops): Test for - no data dependences. - -2006-05-17 Zdenek Dvorak - - PR tree-optimization/27548 - * tree-scalar-evolution.c (scev_const_prop): Do not prolong life - range of ssa names that appear on abnormal edges. - * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Export. - * tree-flow.h (contains_abnormal_ssa_name_p): Declare. - -2005-05-17 Bernd Schmidt - - PR middle-end/27620 - * expr.c (safe_from_p): Handle CONSTRUCTOR again. - -2006-05-17 Jakub Jelinek - - PR middle-end/27415 - * tree.h (OMP_PARALLEL_COMBINED): Define. - * gimplify.c (struct gimplify_omp_ctx): Add is_combined_parallel field. - (new_omp_context): Add is_combined_parallel argument. - (gimplify_scan_omp_clauses): Add in_combined_parallel argument, adjust - new_omp_context caller. - (gimplify_omp_parallel, gimplify_omp_for, gimplify_omp_workshare): - Adjust gimplify_scan_omp_clauses callers. - (omp_is_private): Issue errors if iteration variable is firstprivate - or reduction in the current context. - * c-parser.c (c_parser_omp_parallel): Set OMP_PARALLEL_COMBINED - on combined parallel workshare constructs. - -2006-05-16 H.J. Lu - - * Makefile.in (GCC_OBJS): Replace options.o with gcc-options.o. - (gcc-options.o): New rule. - - * optc-gen.awk: Protect variables for gcc-options.o with - #ifdef GCC_DRIVER/#endif. - -2006-05-16 Daniel Berlin - - Fix PR tree-optimization/27373 - * tree-ssa-forwprop.c: (forward_propagate_addr_expr_1): Add argument. - (forward_propagate_addr_expr): Update call. - -2006-05-16 H.J. Lu - - * doc/options.texi: Move the Negative option. - -2006-05-16 Richard Guenther - - PR tree-optimization/22303 - * tree-ssa-ccp.c (fold_const_aggregate_ref): Handle reads - from STRING_CSTs. - (evaluate_stmt): Fall back to fold_const_aggregate_ref, if - ccp_fold did not simplify the statement. - -2006-05-16 H.J. Lu - - PR driver/26885 - * Makefile.in (GCC_OBJS): New. - (OBJS-common): Add opts-common.o. - (xgcc$(exeext)): Replace gcc.o with $(GCC_OBJS). - (cpp$(exeext)): Likewise. - (gcc.o): Also depend on opts.h. - (opts-common.o): New. - - * common.opt (gcoff): Add Negative(gdwarf-2). - (gdwarf-2): Add Negative(gstabs). - (gstabs): Add Negative(gstabs+). - (gstabs+): Add Negative(gvms). - (gvms): Add Negative(gxcoff). - (gxcoff): Add Negative(gxcoff+). - (gxcoff+): Add Negative(gcoff). - * config/i386/i386.opt (m32): Add Negative(m64). - (m64): Add Negative(m32). - - * doc/options.texi: Document the Negative option. - - * gcc.c: Include "opts.h". - (main): Call prune_options after expandargv. - - * optc-gen.awk: Generate common declarations for all flag - variables in options.c. Output the neg_index field. - - * opts.c (find_opt): Moved to ... - * opts-common.c: Here. New file. - - * opts.h (cl_option): Add a neg_index field. - (find_opt): New. - (prune_options): Likewise. - -2006-05-16 Jakub Jelinek - - PR middle-end/27573 - * omp-low.c (expand_omp_parallel): Don't assert - .OMP_DATA_I = &.OMP_DATA_O is the first statement in the block, - instead search for it. - - PR c/27499 - * gimplify.c (gimplify_omp_for): Remove assertion that iteration var - is signed. - -2006-05-16 Andreas Schwab - - * doc/tm.texi (TARGET_LIBGCC_SDATA_SECTION): Add missing @end - defmac. - -2006-05-15 Roger Sayle - - PR target/26600 - * config/i386/i386.c (legitimate_constant_p) : TImode - integer constants other than zero are only legitimate on TARGET_64BIT. - Only zero vectors are legitimate. - (ix86_cannot_force_const_mem): Integral and vector constants can - always be put in the constant pool. - -2006-05-16 DJ Delorie - - * crtstuff.c (__dso_handle): Set section from - TARGET_LBIGCC_SDATA_SECTION if defined. - * doc/tm.texi (TARGET_LIBGCC_SDATA_SECTION): Document. - * config/mips/mips.h (TARGET_LIBGCC_SDATA_SECTION): Define. - -2006-05-16 Danny Smith - - PR target/27599 - * config.host (i[34567]86-*-mingw*): Append i386/x-mingw32 to - host_xmake_file. - -2006-05-16 Ben Elliston - - * tree-cfg.c (split_edge_bb_loc): Remove unused variable `src'. - -2006-05-15 Per Bothner - - * tree.c: (last_annotated_node): Use source_locus typedef. - This permits bootstrapping with --enable-mapped-location. - -2006-05-15 Zdenek Dvorak - - PR tree-optimization/26830 - * tree-into-ssa.c (struct ssa_name_info): Add age field. - (info_for_ssa_name, current_info_for_ssa_name_age, - blocks_to_update): New variables. - (get_ssa_name_ann): Use info_for_ssa_name instead of SSA_NAME_AUX. - (clear_ssa_name_info, initialize_flags_in_bb, - mark_block_for_update): New functions. - (mark_def_sites, rewrite_stmt): Assert that blocks_to_update is NULL. - (insert_phi_nodes_for, mark_use_interesting, prepare_block_for_update, - prepare_def_site_for): Use mark_block_for_update. - (mark_def_interesting): Assert that the processed block is marked in - blocks_to_update. Do not take blocks argument. - (prepare_use_sites_for, prepare_names_to_update): Do not take blocks - argument. - (rewrite_update_init_block, rewrite_update_stmt): Only process - blocks with statements to rewrite. - (delete_update_ssa): Do not clear SSA_NAME_AUX. - (update_ssa): Initialize and free blocks_to_update. Do not - clear flags on statements. Do not use blocks bitmap. - * tree.h (SSA_NAME_AUX): Removed. - (struct tree_ssa_name): Removed aux field. - * print-tree.c (print_node): Do not print SSA_NAME_AUX. - -2006-05-15 Richard Guenther - - PR tree-optimization/27603 - * tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined): - Do computations in original type. - -2006-05-15 Mircea Namolaru - - * see.c: Code style changes such as redundant paranthesis, - redundant intialization of local variables etc. - (see_main): Declared now as static. - * doc/invoke.texi: Update that -fsee is not enabled by - default at -O3. - -2006-05-15 Jakub Jelinek - - * omp-low.c (check_omp_nesting_restrictions): New function. - (scan_omp_1): Call it. - - PR middle-end/27416 - * omp-low.c (build_outer_var_ref): If VAR is reference in orphaned - construct, return *VAR. - -2006-05-14 Kaz Kojima - - PR rtl-optimization/27406 - * bt-load.c (migrate_btr_def): Skip the block having abnormal - edges. - -2006-05-14 Roger Sayle - - PR rtl-optimization/27538 - * combine.c (expand_compound_operation): Call gen_lowpart - before calling simplify_shift_const. - -2006-05-14 Roger Sayle - - PR rtl-optimization/22563 - * expmed.c (store_fixed_bit_field): When using AND and IOR to store - a fixed width bitfield, always force the intermediates into psuedos. - -2006-05-14 Bernhard Fischer - - PR 27501 - * mkconfig.sh: Use operator = instead of == for test. - -2006-05-13 Nick Clifton - - * dwarf2out.c (dbx_reg_number): Check return value from - LEAF_REG_REMAP and only use it if it is valid. - (multiple_reg_loc_descriptor): Likewise. - -2006-05-13 Richard Guenther - - * config.host : Append i386/x-cygwin to - host_xmake_file. - -2006-05-13 Steven Bosscher - - * df-core.c (df_bb_regno_last_use_find): Do not look for dataflow - information attached to non-INSNs such as NOTEs. - (df_bb_regno_first_def_find, df_bb_regno_last_def_find): Likewise. - -2006-05-12 Andreas Krebbel - - * config/s390/s390.c (s390_const_ok_for_constraint_p): Disallow -4G for - On contraint. - * config/s390/s390.md: Adjust comment describing On constraint. - -2006-05-11 Jan Hubicka - - * cgraphunit.c (decide_is_function_needed): Don't force always_inline - to be output at -O0. - -2006-05-11 Volker Reichelt - - PR middle-end/27384 - * fold-const.c (size_binop): Move sanity check for arguments to - the beginning of the function. - - PR middle-end/27488 - * fold-const.c (tree_expr_nonnegative_p): Return early on invalid - expression. - -2006-05-11 Richard Guenther - - PR middle-end/27529 - * fold-const.c (fold_unary): Handle intermediate conversion - to a pointer type like intermediate conversion to an integer - type in folding of (T1)(T2)var to var. - Match the code to the comment in the final conversion for - (T1)(T2)var to (T1)var regarding to type precision. Rather - than disallow T1 being of pointer type, assert that both T1 - and var are of pointer type or not. Make sure not to fall - over the frontends lazyness wrt array to pointer decay though. - -2006-05-10 Richard Earnshaw - - * arm.c (arm_struct_value_rtx): Delete. - (TARGET_STRUCT_VALUE_RTX): Use the default definition. - (arm_init_cumulative_args): Always initialize nregs to zero. - -2006-05-10 Richard Guenther - - PR tree-optimization/27532 - * tree-object-size.c (plus_expr_object_size): Fix typo. - -2006-05-10 Kazu Hirata - - PR target/24949 - * config/m68k/m68k.md (ashrdi_const32, ashrdi_const32_mem, - ashrdi_const, ashrdi3): Use a scratch register. - -2006-05-10 Richard Guenther - - PR tree-optimization/27302 - * fold-const.c (operand_equal_p): For two comparisons, - try comparison of one comparison code swapped if that yields - the same code. - -2006-05-10 Ben Elliston - - * tree-pretty-print.c (pretty_print_string): No need to handle - '\0' as a special character. - - * tree.h: Include "hashtab.h". - (iterative_hash_expr): Use hashval_t in its prototype. - * Makefile.in (TREE_H): Add $(HASHTAB_H). - -2006-05-09 Steve Ellcey - - PR bootstrap/26872 - * config.gcc (hppa[12]*-*-hpux10*): Set gas to yes. - (hppa*64*-*-hpux11*): Ditto. - (hppa[12]*-*-hpux11*): Ditto. - -2006-05-09 David Edelsohn - - PR target/26545 - * config/rs6000/aix41.h (TARGET_64BIT): Define. - -2006-05-09 Michael Matz - - * config.host (): Set - host_extra_gcc_objs and host_xmake_file. - (<*-*-linux*>): Don't overwrite host_xmake_file. - * gcc.c (static_spec_functions): Add EXTRA_SPEC_FUNCTIONS. - * config/i386/i386.h (EXTRA_SPEC_FUNCTIONS): Define. - (host_detect_local_cpu): Declare. - (CC1_CPU_SPEC): Add -march=native and -mtune=native cases. - * config/i386/i386.c (override_options): Handle -mtune=native - as -mtune=generic. - * config/i386/x-i386: New file. - * config/i386/driver-i386.c: New file. - * doc/invoke.texi (): Describe - cpu-type "native". - -2006-05-09 Dirk Mueller - Richard Guenther - - PR middle-end/27498 - * fold-const.c (fold_read_from_constant_string): Relax check - for matching types to matching modes. - -2006-05-09 Zdenek Dvorak - - PR rtl-optimization/27335 - * loop-unroll.c (peel_loops_completely): Use loops->parray to walk the - loops. - -2006-05-08 Chao-ying Fu - Richard Sandiford - - * config/mips/mips-ps-3d.md (scc_ps, s_ps): New patterns. - (vcondv2sf, sminv2sf3, smaxv2sf3): Likewise. - * config/mips/mips.md (UNSPEC_SCC): New constant. - * config/mips/mips-protos.h (mips_expand_vcondv2sf): Declare. - * config/mips/mips.c (mips_reverse_fp_cond_p): New function. - (mips_emit_compare): Use it. - (mips_expand_vcondv2sf): New function. - -2006-05-08 Daniel Berlin - - Fix PR tree-optimization/27093 - * tree-ssa-alias.c (recalculate_used_alone): Mark variables for - renaming when they become not-used_alone. - -2006-05-08 John David Anglin - - * hpux-unwind.h (pa_fallback_frame_state): Handle return parameter - relocation and relocation stubs. - -2006-05-08 Eric Christopher - - * unwind-dw2-fde-darwin.c (examine_objects): Only check data - section for ppc. - -2006-05-08 Jan Hubicka - - PR middle-end/24561 - * cgraphunit.c (decide_is_function_needed): When not optimizing even - unused static functions are needed. - -2006-05-08 Roger Sayle - - PR target/27158 - * reload.c (find_reloads_toplev): Only return the simplified SUBREG - of a reg_equiv_constant if the result is a legitimate constant. - -2006-05-08 Uros Bizjak - - PR target/27277 - * config/i386/i386.c (ix86_rtx_costs) [FLOAT_EXTEND]: For - standard 80387 constants, raise the cost to prevent - compress_float_constant() to generate load from memory. - -2006-05-08 Kazu Hirata - - * config/arm/constraints.md (c): Fix a typo. - - * see.c, tree-flow-inline.h, tree-phinodes.c: Fix comment - typos. - -2006-05-07 H.J. Lu - - PR target/24879 - * config/i386/pmmintrin.h (_mm_monitor): Remove macro. Use - inline function. - (_mm_mwait): Likewise. - - * config/i386/sse.md (sse3_mwait): Replace "mwait\t%0, %1" with - "mwait". - (sse3_monitor): Make it 32bit only. - (sse3_monitor64): New. 64bit monitor. - -2006-05-07 Volker Reichelt - - PR target/27421 - * config/i386/i386.c (classify_argument): Skip fields with invalid - types. - -2006-05-07 Richard Guenther - - PR tree-optimization/27409 - * tree-ssa-structalias.c (get_constraint_for_component_ref): - Do not try to find zero-sized subvars. - -2006-05-07 Richard Guenther - - PR tree-optimization/27136 - * tree-ssa-loop-niter.c (get_val_for): Correct function - comment, assert requirements. - (loop_niter_by_eval): Stop processing if the iterated - value did not simplify. - -2006-05-07 Mircea Namolaru - - * opts.c (flag_see): remove its setting at -O3. - -2006-05-07 Richard Earnshaw - - * genpeep.c (main): Make insn-peep.c depend on flags.h. - * arm/constraints.md: New file. - * arm.h (REG_CLASS_FROM_LETTER_P): Delete. - (CONST_OK_FOR_ARM_LETTER, CONST_OK_FOR_THUMB_LETTER) - (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_ARM_LETTER) - (CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT_STR_ARM) - (CONSTRAINT_LEN, EXTRA_CONSTRAINT_THUMB, EXTRA_CONSTRAINT_STR) - (EXTRA_MEMORY_CONSTRAINT): Likewise. - * arm.md: Include constraints.md. - (thumb_movsi_insn): Use satisfies_constraint_J. - (movhi, movqi): Use satisfies_constraint_I. - -2006-04-29 Anatoly Sokolov - - * config/avr/avr.h (CRT_BINUTILS_SPECS): Fixed crt* file name - for atmeg a645 device. - -2006-05-06 Richard Guenther - - PR tree-optimization/27151 - * tree-vect-transform.c (vectorizable_condition): Punt on - values that have a different type than the condition. - -2006-05-03 Aldy Hernandez - - PR/21391 - * c-parser.c (c_parser_cast_expression): Only insert casts into - hash table if pointer. - * function.c (used_types_insert_helper): Rename from - used_types_insert. - (used_types_insert): Call used_types_insert_helper. - * function.h (used_types_insert): Accept only one argument. - -2006-05-05 David Edelsohn - - * config/rs6000/rs6000.md: Mark all "X" constraints for clobbered - scratch with output modifier. - -2006-05-04 David Edelsohn - - PR target/26481 - * config/rs6000/rs6000.md (stmsi_power): Mark clobber constraint - with output modifier. - -2006-05-04 Richard Sandiford - - PR target/26765 - * config/mips/mips.c (mips_symbolic_address_p): Return true - for SYMBOL_TLSGD, SYMBOL_TLSLDM, SYMBOL_DTPREL, SYMBOL_TPREL, - SYMBOL_GOTTPREL, and SYMBOL_TLS. - -2006-05-04 Richard Guenther - - PR tree-optimization/14287 - PR tree-optimization/14844 - PR tree-optimization/19792 - PR tree-optimization/21608 - PR tree-optimization/27090 - * tree-ssa-pre.c (try_combine_conversion): New function. - (compute_avail): After constructing the value-handle - expression, use try_combine_conversion to combine NOP_EXPRs - with previous value-handle expressions and use the result if it - is available. - -2006-05-04 Joseph S. Myers - - * config/mips/linux64.h (DWARF_OFFSET_SIZE): Remove. - -2006-05-04 Jan Hubicka - - PR middle-end/25962 - * cgraphunit.c (verify_cgraph_node): Fix cgraph_hash testing. - -2006-05-04 Bernd Schmidt - - * config/bfin/predicates.md (const01_rtx): Tell generator programs - that this only matches CONST_INTs. All users changed to VOIDmode - operands. - - * config/bfin/bfin.c: Include "optabs.h". - (bfin_rtx_costs): Some costs for vector operations, to allow combine - to do more work. - (enum bfin_builtins): Add a number of fractional and vector builtins. - (bfin_init_builtins): Likewise. - (struct builtin_description, bdesc_2arg, bdesc_1arg): New. - (safe_vector_operand, bfin_expand_binop_builtin, - bfin_expand_unop_builtin): New functions. - (bfin_expand_builtin): Handle the new builtins. - * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define - __ADSPBLACKFIN__. - -2006-05-04 Leehod Baruch - - * see.c: New file. - * Makefile.in (OBJS-common): Add see.o. - (see.o): Add dependencies. - * common.opt (fsee): New flag for the see optimization was added. - * opts.c (flag_see): Initialized. - * passes.c (init_optimization_passes, pass_see): New pass. - * rtl.h (see_main): Declaration as extern. - * timevar.def (TV_SEE): New. - * tree-pass.h (pass_see): Declaration as extern. - * invoke.texi (-fsee): Document. - * recog.c (validate_simplify_insn): New function. - * recog.h (validate_simplify_insn): Declaration as extern. - * df-problems.c (df_chain_dump): Check for NULL. - -2006-05-04 Kenneth Zadeck - Daniel Berlin - - * cfgrtl.c (insert_insn_bb_end_new): New function. - * basic-block.h (insert_insn_bb_end_new): Declaration as extern. - -2006-05-04 Leehod Baruch - - * df.h (struct web_entry): Moved from web.c. - (union_defs): Declaration as extern. - (unionfind_root): Likewise. - (unionfind_union): Likewise. - * web.c (struct web_entry): Moved to df.h. - (unionfind_root): Remove static declaration. - (unionfind_union): Likewise. - (union_defs): Likewise and generalize to use callback function. - (web_main): Update arguments for union_defs function call. - -2006-05-04 Richard Guenther - - PR tree-optimization/26447 - * tree-ssa-pre.c (realify_fake_stores): For necessary loads - produce SSA_NAME copies before the store stmt to avoid - breaking exception handling. - -2006-05-04 Jakub Jelinek - - PR middle-end/27388 - * gimplify.c (omp_is_private): If var is shared in some outer context, - return false instead of true. Stop searching on parallel context - boundary. - -2006-05-03 Alexandre Oliva - - PR java/8260 - * coverage.c: Use get_gcov_unsigned_t() instead of - unsigned_type_node all over. - -2006-05-02 Andrew MacLeod - - PR tree-optimization/27381 - * tree-phinodes.c (remove_phi_arg_num): When moving a phi argument, - maintain the same immediate_use links. - * tree-ssa-operands.c (dump_immediate_uses_for): Show iteration marker - node rather than segfaulting. - -2006-05-03 Jakub Jelinek - - PR fortran/27395 - * gimplify.c (gimplify_scan_omp_clauses): Compare OMP_CLAUSE_CODE - rather than TREE_CODE to OMP_CLAUSE_REDUCTION. Set also GOVD_SEEN - bit for OMP_CLAUSE_REDUCTION_PLACEHOLDER. - -2006-05-02 Daniel Berlin - - Fix PR tree-optimization/26626 - * tree-ssa-structalias.c (compute_points_to_sets): For now, solve - always. - * tree-ssa-operands.c (access_can_touch_variable): Allow - typecasting through union pointers. - -2006-05-02 Jakub Jelinek - - PR c++/26943 - * omp-low.c (maybe_lookup_decl_in_outer_ctx): New function. - (build_outer_var_ref): Use maybe_lookup_decl_in_outer_ctx - to find if var will be a global variable even in the nested context. - (omp_copy_decl): Only check for global variable at the end, it might - be overridden in outer contexts. - (scan_sharing_clauses): For global variables don't create a field. - (lower_rec_input_clauses): Do nothing for global shared variables. - Emit a barrier at the end of ILIST if there were any decls in both - firstprivate and lastprivate clauses. - (lower_send_clauses): Do nothing for global variables except for - COPYIN. - -2006-05-02 Zdenek Dvorak - - * tree.c (unsigned_type_for, signed_type_for): Make sure a type - of the correct signedness is returned. - -2006-05-02 Jeff Law - - PR tree-optimization/27364 - * tree-vrp.c (vrp_int_const_binop): Fix detection of overflow from - multiply expressions. - -2006-05-02 Tom Tromey - - * tree-flow-inline.h (op_iter_init_phiuse): Fixed typo. - -2006-05-02 Kazu Hirata - - PR target/27387 - * arm.c (arm_output_mi_thunk): Use pc-relative addressing when - -mthumb -fPIC are used. - -2006-05-02 Stanislaw Skowronek - Joshua Kinard - - PR target/25871 - * config/mips/mips.h (TRAMPOLINE_TEMPLATE): Avoid 32-bit moves - with 64-bit pointers. - -2006-05-02 Paul Brook - - * config/arm/arm.c (add_minipool_forward_ref): Check if insn - and pool overlap. - (create_fix_barrier): Check that a suitable barrier location is - found. - (arm_reorg): Include ftmp->address in allowable range of addresses. - -2006-05-02 David Billinghurst - - PR ada/27366 - * ada/env.c (__gnat_clearenv): Use unsetenv() to clear environment - on Cygwin. - -2006-05-02 Jakub Jelinek - - PR middle-end/27337 - * gimplify.c (gimplify_scan_omp_clauses): Handle INDIRECT_REF - around RESULT_DECL for result passed by reference. - (gimplify_expr): Call omp_notice_variable when RESULT_DECL is seen. - * omp-low.c (use_pointer_for_field): Don't look at - DECL_HAS_VALUE_EXPR_P for RESULT_DECLs. - (scan_omp_1): Call remap_decl on RESULT_DECLs. - (lower_rec_input_clauses): Don't allocate VLA memory for the second - time or var for passing by reference for - OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE clauses. Allow creation of - TREE_ADDRESSABLE variables when passing by reference. - - * omp-low.c (dump_omp_region): Fix output formatting. - - PR middle-end/27328 - * omp-low.c (remove_exit_barrier): Handle NULL exit_bb. - (expand_omp_parallel): Likewise. - * tree-cfg.c (move_sese_region_to_fn): Likewise. - - PR middle-end/27325 - * omp-low.c (lower_omp_sections): Call maybe_catch_exception - on statement list containing also constructors and destructors. - (lower_omp_single, lower_omp_for, lower_omp_parallel): Likewise. - - PR middle-end/27310 - * except.c (duplicate_eh_regions): Fix clearing of - cfun->eh->region_array entries. - -2006-05-01 DJ Delorie - - * configure.ac (gcc_cv_nm): Don't use an in-tree nm if - build!=host. - (gcc_cv_objdump): Likewise. - * configure: Regenerated. - -2006-05-01 Kazu Hirata - - PR target/27374 - * config/arm/vfp.md (*arm_movdi_vfp): Correct the output - templates for case 3 and 4. - -2006-05-01 DJ Delorie - - * vec.c: Include bconfig.h when appropriate. - * Makefile.in (build/vec.o): Adjust dependencies. - * mkconfig.sh: Make sure config.h isn't used for build machine - compiles. - -2006-05-01 Zdenek Dvorak - - * tree-into-ssa.c (phis_to_rewrite, blocks_with_phis_to_rewrite): New - variables. - (mark_phi_for_rewrite): New function. - (insert_phi_nodes_for, mark_use_interesting): Call - mark_phi_for_rewrite. - (rewrite_update_phi_arguments): Traverse only phis in phis_to_rewrite. - (update_ssa): Initialize and free phis_to_rewrite. - -2006-05-01 Zdenek Dvorak - - PR rtl-optimization/27291 - * loop-doloop.c (add_test, doloop_modify): Handle the case condition is - folded to a constant. - -2006-05-01 Zdenek Dvorak - - PR tree-optimization/27283 - * tree-ssa-loop-ivopts.c (struct nfe_cache_elt): Store just trees, - not whole # of iteration descriptions. - (niter_for_exit): Return just # of iterations. Fail if # of iterations - uses abnormal ssa name. - (niter_for_single_dom_exit): Ditto. - (find_induction_variables, may_eliminate_iv): Expect niter_for_exit to - return just the number of iterations. - -2006-05-01 Zdenek Dvorak - - PR tree-optimization/27144 - * tree-ssa-loop-niter.c (derive_constant_upper_bound): New function. - (record_estimate): Only record constant upper bound. - (infer_loop_bounds_from_undefined): Call - compute_estimated_nb_iterations just once. - (proved_non_wrapping_p): Renamed to ... - (n_of_executions_at_most): ... this. Expect bound to be a constant. - (convert_step_widening, scev_probably_wraps_p): Call - n_of_executions_at_most instead of proved_non_wrapping_p. - (substitute_in_loop_info): Do not replace values in bounds. - * cfgloop.h (struct nb_iter_bound): Remove "additional" field. Update - comments. - -2006-05-01 Richard Henderson - - PR c/27358 - * c-parser.c (c_parser_skip_to_end_of_block_or_statement): Move after - c_parser_skip_to_pragma_eol. Convert to switch statement. Handle - CPP_PRAGMA. - -2006-05-01 Roger Sayle - - * c-typeck.c (parser_build_binary_op): Don't call the function - unsigned_conversion_warning to spot operand/result type overflow. - (build_binary_op): Instead, call convert_and_check instead of - convert to report the problem when the operands are promoted. - * c-common.c (unsigned_conversion_warning): Make static. - * c-common.h (unsigned_conversion_warning): Delete prototype. - -2006-05-01 Richard Guenther - - PR tree-optimization/26726 - * tree-ssa-loop-ivopts.c (idx_find_step): Mark source of the - problem ... - (find_interesting_uses_address): ... we work around here - by folding INDIRECT_REFs in the substituted base. - -2006-05-01 Diego Novillo - - * omp-low.c (dump_omp_region): Add newlines. - -2006-04-30 Roger Sayle - - * common.opt (Woverflow): New command line option. - * c-common.c (constant_expression_warning): Check warn_overflow. - (overflow_waring): Pass OPT_Woverflow to warning. - (unsigned_conversion_warning): Likewise. - (convert_and_check): Likewise. - * doc/invoke.texi: Document new command line option. - -2006-04-30 David Edelsohn - - * config/rs6000/rs6000.c (rs6000_override_options): Enable - TARGET_NO_FP_IN_TOC for section anchors. - (optimization_options): Enable section anchors for all - non-"Objective" languages. - -2006-04-28 Eric Christopher - - * config/darwin-c.c (darwin_ms_struct): Move this - (darwin_set_default_type_attributes): and this... - * config/darwin.c: ... here. - * config/darwin.h (darwin_ms_struct): Declare. - -2006-04-28 Andrew MacLeod - - * tree-ssa-dom.c (propagate_rhs_into_lhs): Fix assert clause. - -2006-04-28 Roger Sayle - - PR c/25309 - * c-typeck.c (struct spelling): Make I an unsigned HOST_WIDE_INT. - (push_array_bounds): Delete prototype. Change BOUNDS argument to - an unsigned HOST_WIDE_INT. - (print_spelling): Use HOST_WIDE_INT_PRINT_UNSIGNED to output the - array index. - (really_start_incremental_init): No need to call convert because - bitsize_zero_node is already of type bitsizetype. - (push_init_level): Extract the value of constructor_index as an - unsigned HOST_WIDE_INT quantity, using tree_low_cst. - (process_init_element): Likewise. - -2006-04-28 Joseph S. Myers - - * gcc.c (process_command): Add program name to GCC_EXEC_PREFIX - value before passing to make_relative_prefix. - -2006-04-28 Alan Modra - - PR middle-end/27260 - * builtins.c (expand_builtin_memset): Expand val in original mode. - -2006-04-27 Eric Christopher - - * target-def.h (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Bracket - with #ifndef/#endif. - * config/darwin-c.c (darwin_ms_struct): New. - (darwin_pragma_ms_struct): Ditto. - (darwin_set_default_type_attributes): Ditto. - * config/darwin-protos.h (darwin_pragma_ms_struct): Declare. - * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): - Register ms_struct pragma. - * config/i386/darwin.h (REGISTER_TARGET_PRAGMAS): Declare. - (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Ditto. - * config/rs6000/rs6000.c (rs6000_set_default_type_attributes): Call - darwin_set_default_type_attributes if TARGET_MACHO. - -2006-04-27 Andrew MacLeod - - PR tree-optimization/26854 - * tree-vrp.c (remove_range_assertions): Use new Immuse iterator. - * doc/tree-ssa.texi: Update immuse iterator documentation. - * tree-ssa-math-opts.c (execute_cse_reciprocals_1): Use new iterator. - * tree-ssa-dom.c (propagate_rhs_into_lhs): Use new iterator. - * tree-flow-inline.h (end_safe_imm_use_traverse, end_safe_imm_use_p, - first_safe_imm_use, next_safe_imm_use): Remove. - (end_imm_use_stmt_p): New. Check for end of immuse stmt traversal. - (end_imm_use_stmt_traverse): New. Terminate immuse stmt traversal. - (move_use_after_head): New. Helper function to sort immuses in a stmt. - (link_use_stmts_after): New. Link all immuses in a stmt consescutively. - (first_imm_use_stmt): New. Get first stmt in an immuse list. - (next_imm_use_stmt): New. Get next stmt in an immuse list. - (first_imm_use_on_stmt): New. Get first immuse on a stmt. - (end_imm_use_on_stmt_p): New. Check for end of immuses on a stmt. - (next_imm_use_on_stmt): New. Move to next immuse on a stmt. - * tree-ssa-forwprop.c (forward_propagate_addr_expr): Use new iterator. - * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Use new iterator. - (perfect_nestify): Use new iterator. - * tree-vect-transform.c (vect_create_epilog_for_reduction): Use new - iterator. - * tree-flow.h (struct immediate_use_iterator_d): Add comments. - (next_imm_name): New field in struct immediate_use_iterator_d. - (FOR_EACH_IMM_USE_SAFE, BREAK_FROM_SAFE_IMM_USE): Remove. - (FOR_EACH_IMM_USE_STMT, BREAK_FROM_IMM_USE_STMT, - FOR_EACH_IMM_USE_ON_STMT): New immediate use iterator macros. - * tree-cfg.c (replace_uses_by): Use new iterator. - * tree-ssa-threadedge.c (lhs_of_dominating_assert): Use new iterator. - * tree-ssa-operands.c (correct_use_link): Remove. - (finalize_ssa_use_ops): No longer call correct_use_link. - -2006-04-27 Stuart Hastings - - * config/rs6000/t-darwin (DARWIN_EXTRA_CRT_BUILD_CFLAGS): New. - * config/t-darwin (crt3.o): Use it. - * config/rs6000/rs6000.c (rs6000_initialize_trampoline): Remove - 'pmode', use Pmode instead of SImode for SYMBOL_REF. - * config/rs6000/rs6000.md (call_indirect_nonlocal_sysv, - call_nonlocal_sysv, call_value_indirect_nonlocal_sysv, - call_value_nonlocal_sysv): Suffix with the "P" macro for 32/64 - support. - -2006-04-27 Roger Sayle - - * expmed.c (store_fixed_bit_field): If we're not optimizing for - size, force the intermediate into a new pseudo rather instead of - performing both a bitwise AND and a bitwise IOR in memory. - -2006-04-27 Richard Guenther - - PR rtl-optimization/26685 - * params.def (PARAM_MAX_CSE_INSNS): Correct typo that named - this one "max-flow-memory-locations". - -2006-04-27 Richard Guenther - - PR tree-optimization/25148 - * tree-vrp.c (compare_values): Remove code dealing with - comparisons against type min/max value. Honour overflow - and negative constants in code dealing with comparisons - of plus and minus expressions. - (value_inside_range): Use fold_binary with LE_EXPR and - GE_EXPR rather than compare_values. - -2006-04-27 Dirk Mueller - - * config/i386/xmmintrin.h (_mm_shuffle_pi16): Declare - prototype for SSE. - -2006-04-26 Kenneth Zadeck - - * basic-block.h (safe_insert_insn_on_edge): Removed. - * cfgrtl.c (mark_killed_regs, safe_insert_insn_on_edge): Removed. - -2006-04-26 David Edelsohn - Paolo Bonzini - - PR middle-end/27282 - * combine.c (simplify_and_const_int_1): Use gen_int_mode. - (simplify_and_const_int): Same. - -2006-04-26 Aldy Hernandez - - * tree-ssa-dse.c (dse_optimize_stmt): Remove unused variable USE. - -2006-04-26 Jakub Jelinek - - PR c/26171 - * cgraph.c (cgraph_varpool_finalize_decl): Don't call - cgraph_varpool_assemble_pending_decls if -fopenmp, unless - cgraph_global_info_ready. - - PR middle-end/26913 - * tree-cfg.c (find_outermost_region_in_block): Handle RESX_EXPR. - - PR c/25996 - * c-parser.c (c_parser_omp_for_loop): Don't call c_finish_omp_for if - either decl or init is error_mark_node. - - PR middle-end/25989 - * tree-flow.h (struct omp_region): Add sched_kind. - * omp-low.c (expand_parallel_call): Use region->inner->sched_kind - instead of extracting omp for data. - (expand_omp_for): Save extracted sched_kind. - -2006-04-25 Roger Sayle - - * expmed.c (store_bit_field): Also check whether the bitsize is - valid for the machine's "insv" instruction before moving the - target into a pseudo for use with the insv. - * config/i386/predicates.md (const8_operand): New predicate. - * config/i386/i386.md (extv, extzv, insv): Use the new - const8_operand predicate where appropriate. - -2006-04-25 DJ Delorie - - * doc/install.texi (Specific): Clarify that this is not a list of - supported hosts or targets. - -2006-04-25 Richard Sandiford - - PR rtl-optimization/26725 - * cfgrtl.c (rtl_redirect_edge_and_branch_force): Set the source - block's BB_DIRTY flag. - -2006-04-25 Geoffrey Keating - - * dwarf2out.c (size_of_locs): Don't fill dw_loc_addr if there - are no branches. - - * dwarf2asm.c (dw2_asm_output_data): Don't generate RTL just - to print an integer. - -2006-04-25 David Edelsohn - - * varasm.c (align_variable): New function. - (get_block_for_decl): Apply align_variable to DECL before - calculating section information. - (assemble_variable): Split out alignment computation. - -2006-04-25 Andreas Krebbel - - * expmed.c (store_bit_field): Handle paradoxical subregs on big endian - machines. - -2006-04-25 Bernd Schmidt - - * genmodes.c (make_vector_mode): Allow making VECTOR_MODE_INT of a - MODE_PARTIAL_INT mode. - * config/bfin/bfin-modes.def: Add V2PDI and V2SI. - * config/bfin/bfin.c (print_operand): Add macflag and mac/msu modifiers - for CONST_INTs. - (hard_regno_mode_ok): V2PDImode is ok for accumulators. - * config/bfin/bfin.h (CLASS_MAX_NREGS, HARD_REGNO_NREGS): Handle - V2PDImode. - * config/bfin/predicates.md (const01_operand, vec_shift_operand): - New predicates. - * config/bfin/bfin.md (UNSPEC_MUL_WITH_FLAG, UNSPEC_MAC_WITH_FLAG): - New constants. - (MACFLAG_NONE, MACFLAG_T, MACFLAG_FU, MACFLAG_TFU, MACFLAG_IS, - MACFLAG_IU, MACFLAG_W32, MACFLAG_M, MACFLAG_S2RND, MACFLAG_ISS2, - MACFLAG_IH): Likewise. - (movstricthi_1): Renamed from "*movstricthi". - (load_accumulator, load_accumulator_pair, movsi_insv, insv, - ssaddsi3, sssubsi3, ssnegsi2, signbitssi2, smaxhi3, sminhi3, - abshi2, neghi2, ssneghi2, signbitshi2, movhi_low2high, - movhi_high2high, movhi_low2low, movhi_high2low, movhiv2hi_low, - movhiv2hi_high, composev2hi, movv2hi_hi, movv2hi_hi_low, - movv2hi_hi_high, ssaddhi3, sssubhi3, ssaddv2hi3, sssubv2hi3, - addsubv2hi3, subaddv2hi3, ssaddsubv2hi3, sssubaddv2hi3, - sublohiv2hi3, subhilov2hi3, sssublohiv2hi3, sssubhilov2hi3, - addlohiv2hi3, addhilov2hi3, ssaddlohiv2hi3, ssaddhilov2hi3, - mulhisi_ll, mulhisi_lh, mulhisi_hl, mulhisi_hh, ssnegv2hi2, - ssashiftv2hi3, ssashifthi3, lshiftv2hi3, lshifthi3, packv2hi, - flag_mulhi, flag_mulhisi_parts, flag_machi, flag_machi_acconly, - flag_macinithi, flag_macinit1hi, flag_mulv2hi, flag_mulv2hi_parts, - flag_macv2hi_parts, flag_macv2hi_parts_acconly, - flag_macinitv2hi_parts, flag_macinit1v2hi_parts): New patterns. - - * doc/rtl.texi (ss_ashift): Improve wording. - -2006-04-24 Geoffrey Keating - - * dwarf2out.c (verify_marks_clear): New. - (prune_unused_types): Call verify_marks_clear initially, not - prune_unmark_dies. - -2006-04-24 Bernd Schmidt - - * rtl.def (SS_ASHIFT, SS_NEG): New codes. - * doc/rtl.texi: Document them. - * simplify-rtx.c (simplify_unary_operation, - simplify_binary_operation_1): Don't abort when we see them. - -2006-04-24 Mark Mitchell - - Revert: - 2006-04-23 Mark Mitchell - * configure.ac: Completely disregard languages that are not - enabled. - * configure: Regenerated. - -2006-04-24 Andrew Pinski - Richard Guenther - - PR tree-optimization/27236 - * tree-inline.c (copy_body_r): Make sure to copy - TREE_THIS_VOLATILE flag. - -2006-04-24 Richard Guenther - - PR middle-end/26869 - * tree-complex.c (update_parameter_components): Don't handle - unused parameters which have no default def. - -2006-04-24 Andrew Pinski - Richard Guenther - - PR tree-optimization/27218 - * tree-inline.c (expand_call_inline): Strip useless type - conversions for the return slot address. - -2006-04-24 Richard Guenther - - * cfgloop.h (struct loops): Remove unused field array. Reorder - state after num. - (LOOP_PREFETCH): Remove. - -2006-04-24 Richard Guenther - - PR tree-optimization/22525 - * value-prof.c (tree_mod_pow2): Remove unnecessary temporary - variable, adjust types of generated expressions. - -2006-04-23 H.J. Lu - - * Makefile.in (c-convert.o): Add dependency on $(TARGET_H) - (tree-vect-patterns.o): Likewise. - (jump.o): Likewise. - (cselib.o): Likewise. - (loop-doloop.o): Likewise. - (regclass.o): Likewise. - (reload1.o): Likewise. - (explow.o): Replace target.h with $(TARGET_H). - (ipa-prop.o): Likewise. - (ipa-cp.o): Likewise. - (ipa-inline.o): Likewise. - (reorg.o): Likewise. - (reg-stack.o): Likewise. - -2006-04-23 Eric Botcazou - - * tree-tailcall.c (pass_tail_recursion): Use gate_tail_calls too. - -2006-04-23 Mark Mitchell - - * print-tree.c (print_node): Print DECL_BIT_FIELD_TYPE. - - * configure.ac: Completely disregard languages that are not - enabled. - * configure: Regenerated. - - PR c++/26534 - * c-common.h (c_build_bitfield_integer_type): Declare. - * c-decl.c (c_build_bitfield_integer_type): Move to ... - * c-common.c (c_build_bitfield_integer_type): ... here. - -2006-04-23 Roger Sayle - - PR target/21283 - * config/fr30/fr30.md (define_split): Avoid calling gen_lowpart on - a SImode SUBREG of a floating point register after no_new_pseudos. - -2006-04-23 Roger Sayle - - * config/fr30/fr30.md (addsi_small_int): Use REGNO_PTR_FRAME_P to - identify potentially eliminable registers to additionally catch - VIRTUAL_INCOMING_ARGS_REGNUM. - (addsi3): Update the conditions on when to use addsi_small_int. - -2006-04-23 Roger Sayle - - PR target/16641 - * config/fr30/fr30.h (GO_IF_LEGITIMATE_ADDRESS): Check REGNO for - STACK_POINTER_RTX and FRAME_POINTER_RTX instead of comparing the - rtx to stack_pointer_rtx or frame_pointer_rtx directly. - -2006-04-23 Eric Botcazou - - * fold-const.c (range_predecessor): Use operand_equal_p - as the predicate for equality. - (range_successor): Likewise. - -2006-04-22 Kazu Hirata - - Revert: - * config/soft-fp/op-common.h: Fix a typo. - -2006-04-22 Frank Ch. Eigler - - PR libmudflap/26864 - * common.opt (flag_mudflap_threads): Overload flag_mudflap. - * tree-mudflap.c (flag_mudflap_threads): Derive from flag_mudflap. - -2006-04-22 Kazu Hirata - - * config/soft-fp/op-common.h, double-int.h, tree-ssa-dom.c: - Fix comment typos. - * doc/tm.texi: Fix a typo. - -2006-04-21 Geoffrey Keating - - * dwarf2out.c (struct die_struct): Document that die_sib makes - a circular linked list. - (FOR_EACH_CHILD): New. - (reverse_die_lists): Delete. - (reverse_all_dies): Delete. - (add_dwarf_attr): Correct documentation. - (remove_child_with_prev): New. - (remove_child_TAG): Update for change to die_struct, use - remove_child_with_prev. - (add_child_die): Update for change to die_struct. - (splice_child_die): Use remove_child_with_prev and add_child_die. - (print_die): Use FOR_EACH_CHILD. - (die_checksum): Likewise. - (assign_symbol_names): Likewise. - (output_location_lists): Likewise. - (build_abbrev_table): Likewise. - (calc_die_sizes): Likewise. - (mark_dies): Likewise. - (unmark_dies): Likewise. - (unmark_all_dies): Likewise. - (output_die): Likewise. - (prune_unused_types_mark): Likewise. - (prune_unused_types_walk): Likewise. - (same_die_p): Update for change to die_struct. - (break_out_includes): Likewise. - (prune_unused_types_prune): Likewise. - (add_sibling_attributes): Use FOR_EACH_CHILD, simplify logic. - (prune_unmark_dies): Use FOR_EACH_CHILD, don't clear die_mark if - it's already clear. - (dwarf2out_finish): Don't call reverse_all_dies. - -2006-04-21 Eric Christopher - - * df-core.c, tree-outof-ssa.c, config/i386/i386.c: Fix typos - in comments and function names. - -2006-04-21 Volker Reichelt - - PR c/25875 - * c-typeck.c (digest_init): Robustify. - - * c-typeck.c (pop_init_level): Simplify. - -2006-04-21 Steve Ellcey - - * config/pa/t-pa64: Add dependencies on $(GCC_PASSES). - -2006-04-21 Paul Brook - - * config/arm/arm.c (arm_override_options): Error on iWMMXt and - hardware floating point. - -2006-04-21 David Edelsohn - - * config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Add sfp to - NON_FLOAT_REGS. - -2006-04-21 Nick Clifton - - * config/sh/t-elf (EXTRA_MULTILIB_PARTS): Include - OPT_EXTRA_PARTS. - -2006-04-21 Alan Modra - - PR target/27230 - * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Use - C++ lang type in traceback table for Objective-C++. - - * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Update comment. - -2006-04-20 H.J. Lu - - * config/i386/i386.c (asm_preferred_eh_data_format): Reformat. - -2006-04-20 Volker Reichelt - - PR mudflap/26789 - * tree-mudflap.c (mudflap_finish_file): Skip function when there - were errors. Remove check for erroneous objects. - -2006-04-20 Jeff Law - - PR tree-optimization/26854 - * tree-ssa-dse.c (dse_optimize_stmt): Avoid num_imm_uses when - checking for zero or one use. - * tree-ssa-dom.c (propagate_rhs_into_lhs): Similarly. - * tree-cfgcleanup.c (merge_phi_nodes): Similarly. - * tree-ssa-reassoc.c (negate_value): Similarly. - (reassociate_bb): Similarly. - -2006-04-20 Jakub Jelinek - - PR C/27558 - * c-pretty-print.c (pp_c_direct_abstract_declarator): Print - TYPE_MAX_VALUE (TYPE_DOMAIN (t)) + 1 for ARRAY_TYPE rather - than plain TYPE_MAX_VALUE (TYPE_DOMAIN (t)). - -2006-04-20 Alan Modra - - * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Consume all - fp regs if the last fp arg doesn't fit in regs. - -2006-04-20 Kaz Kojima - - PR target/27182 - * config/sh/sh.md (movsicc_true+3): Tweak condition for the case - that the last insn has the REG_INC note. - -2006-04-19 Carlos O'Donell - Nathan Sidwell - - PR c/26774 - * stor-layout.c (update_alignment_for_field): Do not align - ERROR_MARK nodes. - (place_union_field): Place union field at the start of the union. - (place_field): Move ERROR_MARK check later, and use the current - allocation position to maintain monotonicity. - -2006-04-19 Zdenek Dvorak - - * dominance.c: Include timevar.h. - (calculate_dominance_info): Use TV_DOMINANCE. - * timevar.def (TV_DOMINANCE): New timevar. - * Makefile.in (dominance.o): Add TIMEVAR_H dependency. - -2006-04-19 Andreas Krebbel - - PR rtl-optimization/14261 - * ifcvt.c (noce_emit_move_insn): Call store_bit_field if the resulting - move would be an INSV insn. - (noce_process_if_block): Don't optimize if the destination is a - ZERO_EXTRACT which can't be handled by noce_emit_move_insn. - -2006-04-19 Andreas Krebbel - - * config/s390/s390.md: Add comments with the instructions emitted - by an insn pattern if macros are used. - -2006-04-19 Alan Modra - - PR rtl-optimization/26026 - * fold-const.c (fold_binary): Optimize div and mod where the divisor - is a known power of two shifted left a variable amount. - -2006-04-18 Geoffrey Keating - - * dwarf2out.c (prune_unused_types_update_strings): Don't add strings - to hash table twice when the debug_str section has SECTION_MERGE. - -2006-04-18 Joseph S. Myers - - * config/soft-fp: New directory. From glibc. - * config/soft-fp/t-softfp: New. - * config/soft-fp/README: New. - * mklibgcc.in: Handle LIB2FUNCS_EXCLUDE. - * Makefile.in (LIB2FUNCS_EXCLUDE, SFP_MACHINE): New. - (libgcc.mk): Pass LIB2FUNCS_EXCLUDE. - (LIBGCC_DEPS): Add $(SFP_MACHINE). - * config.gcc: Use rs6000/t-fprules-fpbit or - rs6000/t-fprules-softfp and soft-fp/t-softfp together with - rs6000/t-fprules. - * config/rs6000/sfp-machine.h: New. Based on glibc. - * config/rs6000/t-fprules-fpbit, config/rs6000/t-fprules-softfp: - New. - * config/rs6000/t-fprules: Remove fp-bit rules. - * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Use +=. - * config/rs6000/t-linux64: Likewise. Remove duplicates from - LIB2FUNCS_EXTRA. Remove fp-bit rules. - (softfp_wrap_start, softfp_wrap_end): New. - -2006-04-18 DJ Delorie - - * config/m32c/m32c.h (PTRDIFF_TYPE): Define. - -2006-04-18 Devang Patel - - * doc/invoke.texi (-Wuninitialized): Clarify -O connection. - -2006-04-18 Nick Clifton - - * config/sh/t-symbian: Add rule to build sh-c.o - * config/sh/symbian.c (sh_symbian_mark_dllexport): Replace use - of DECL_NON_ADDR_CONST_P with DECL_DLLIMPORT_P. - (sh_symbian_encode_section_info): Likewise. - -2006-04-18 Andreas Krebbel - - * builtins.c (expand_builtin_strcmp): Cover label definition of - do_libcall with HAVE_cmpstrnsi. - -2006-04-18 Kazu Hirata - - * function.c (temp_slots_at_level, max_slot_level): Use VEC - instead of VARRAY. - * function.h (temp_slot_p): New. - (function): Change the type of x_used_temp_slots to - VEC(temp_slot_p,gc) *. - -2006-04-18 Nick Clifton - - * config/mmix/mmix.h (OPTIMIZATION_OPTIONS): Remove reference to - flag_strength_reduce. - - * doc/tm.texi (TARGET_SECTION_TYPE_FLAGS): Fix typo. - -2006-04-18 Paolo Bonzini - - PR target/27117 - - Partial revert of revision 112637 - 2006-04-03 Paolo Bonzini - Dale Johannesen - - PR target/19653 - * regclass.c (struct reg_pref): Update documentation. - (regclass): Set prefclass to NO_REGS if memory is the best option. - (record_reg_classes): Cope with a prefclass set to NO_REGS. - -2006-04-18 Paolo Bonzini - - PR tree-optimization/26821 - * tree-ssa-math-opts.c (get_constant_one): New. - (insert_reciprocals): Use it. - -2006-04-17 Geoffrey Keating - - * dwarf2out.c (free_AT): Delete. - (remove_AT): Update string ref counts. - (remove_child_TAG): Don't call free_die. - (free_die): Delete. - (break_out_includes): Don't call free_die on DW_TAG_GNU_BINCL - or DW_TAG_GNU_EINCL. - (prune_unused_types_walk_attribs): Reset string refcounts. - (prune_unused_types_update_strings): New. - (prune_unused_types_prune): Don't make unnecessary stores. Don't - call free_die. Do call prune_unused_types_update_strings. - (prune_unused_types): Empty debug_str_hash. - -2006-04-17 Roger Sayle - - * expr.c (expand_assignment): Optimize away no-op moves where the - source and destination are equal and have no side-effects. - -2006-04-17 Richard Guenther - - PR target/26826 - * reload.c (push_reload): Guard calls to get_secondary_mem - for memory subregs. - -2006-04-16 Kazu Hirata - - * alias.c (reg_base_value, old_reg_base_value): Change the - type to VEC(rtx,gc) *. - (REG_BASE_VALUE, find_base_value, record_set, - init_alias_analysis): Use VEC instead of VARRAY. - - * alias.c (alias_sets): Change the type to - VEC(alias_set_entry,gc) *. - (get_alias_set_entry, new_alias_set, record_alias_subset): Use - VEC instead of VARRAY. - (last_alias_set): Remove. - - * cgraph.h (cgraph_edge_p): New. - Update the prototype of cgraph_function_versioning. - * cgraphunit.c (cgraph_copy_node_for_versioning, - cgraph_function_versioning): Use VEC instead of VARRAY. - * ipa-cp.c (ipcp_insert_stage): Likewise. - -2006-04-16 Roger Sayle - - PR target/26961 - * fold-const.c (fold_ternary): When converting "A ? B : C" into either - "A op B" or "A op C", we may need to convert A to the type of B and C. - -2006-04-16 Adam Nemet - - * target.h (struct gcc_target): Add mode_rep_extended. - * rtlanal.c (num_sign_bit_copies_in_rep): New global. - (init_num_sign_bit_copies_in_rep): Initialize it using - mode_rep_extended. - (truncate_to_mode): Use it. - (init_rtlanal): Call init_num_sign_bit_copies_in_rep. - * targhooks.h (default_mode_rep_extended): Declare it. - * targhooks.c (default_mode_rep_extended): Define it. - * target-def.h (TARGET_MODE_REP_EXTENDED): New macro. Default to - default_mode_rep_extended. - (TARGET_INITIALIZER): Include it. - * doc/tm.texi (Misc): Document it. - * config/mips/mips.c (TARGET_TRUNCATED_TO_MODE): Override it. - (mips_truncated_to_mode): New function. - -2006-04-16 Roger Sayle - - PR middle-end/25474 - * expr.c (compress_float_constant): Copy the narrow constant into - a new pseudo before extending it to its final width. - -2006-04-16 Roger Sayle - Andrew Pinski - Dale Johannesen - - PR target/24076 - * config/i386/i386.c (ix86_expand_vector_init_duplicate): Add - special case code to implement V8HImode and V16QImode with SSE2. - -2006-04-15 Roger Sayle - - * config/i386/i386.c (ix86_va_start): Ensure all integer constant - trees are constructed with a suitable tree type. - -2006-04-15 Roger Sayle - - * tree.c (integer_zerop): Ignore TREE_CONSTANT_OVERFLOW. - (integer_onep): Likewise. - (integer_all_onesp): Likewise. - (integer_pow2p): Likewise. - (integer_nonzerop): Likewise. - (real_zerop): Likewise. - (real_onep): Likewise. - (real_twop): Likewise. - (real_minus_onep): Likewise. - (int_size_in_bytes): Likewise. - (host_integerp): Likewise. - -2006-04-15 Kazu Hirata - - * cfgcleanup.c, config/dfp-bit.c, expr.c, fold-const.c, - jump.c, mips-tfile.c, omp-low.c, sched-int.h, - tree-ssa-loop-prefetch.c, tree-vrp.c: Fix comment typos. - - * tree-ssa-structalias.h (alias_info): Remove num_references. - -2006-04-15 John David Anglin - - * pa.md (output_bb patterns): Shorten long branch alternatives by 4. - (output_bvb patterns): Likewise. - * pa.c (output_bb): Use 'bb' insn for long branch case. - (output_bvb): Likewise use '{bvb|bb}' for long branch case. - (output_dbra): Use '{comb|cmpb}' for long branch case for alternative - 1. Correct length operand for alternatives 1 and 2. - (output_movb): Use '{comb|cmpb}' for long branch case for alternatives - 1, 2 and 3. Correct length operand for alternatives 1, 2 and 3. - -2006-04-14 Roger Sayle - - * tree-cfg.c (make_edges, make_omp_sections_edges, move_stmt_r, - is_ctrl_altering_stmt): Reinstate RTH's changes from r112935 that - were accidentally reverted by r112959. - -2006-04-15 Jakub Jelinek - - PR middle-end/26823 - * except.h (eh_region_outermost): New prototype. - * except.c (eh_region_outermost): New function. - * tree-cfg.c (find_outermost_region_in_block): Use it. - -2006-04-14 Kazu Hirata - - * local-alloc.c (rest_of_handle_local_alloc): Use VEC instead - of VARRAY. - * reload1.c (reg_equiv_memory_loc_varray): Rename to - reg_equiv_memory_loc_vec. Change the type to VEC(rtx,gc) *. - (init_reload, reload): Use VEC instead of VARRAY. - * reload.h: Update the prototype for - reg_equiv_memory_loc_varray. - -2006-04-14 Alexey Starovoytov - Eric Botcazou - - * config/sparc/sparc.c (emit_and_preserve): Allocate space for the - register save area. - -2005-04-13 Uros Bizjak - - PR middle-end/27134 - * builtins.c (expand_builtin_int_roundingfn): Use expand_normal() - to expand fallback builtin function call. - -2006-04-14 Alan Modra - - PR middle-end/27095 - * builtins.c: (expand_builtin_memset): Stabilize args before expansion - and emit libcall here in case the builtin fails. - (expand_builtin_strcmp): Always emit the libcall here on failure. - -2006-04-14 Kazu Hirata - - * basic-block.h (REG_BASIC_BLOCK): Use VEC instead of VARRAY. - * flow.c (reg_n_info): Change the type to - VEC(reg_info_p,heap) *. - * regclass.c (allocate_reg_info, free_reg_info): Use VEC - instead of VARRAY. - * regs.h (reg_info_p): New. - (REG_N_REFS, REG_FREQ, REG_N_SETS, REG_N_DEATHS, - REG_N_CALLS_CROSSED, REG_N_THROWING_CALLS_CROSSED, - REG_LIVE_LENGTH, REGNO_FIRST_UID, REGNO_LAST_UID): Use VEC - instead of VARRAY. - -2006-04-13 Eric Botcazou - - * params.def (PARAM_MAX_SCHED_READY_INSNS): New parameter, - defaulting to 100. - * params.h (MAX_SCHED_READY_INSNS): New macro. - * haifa-sched.c: (queue_to_ready): Re-queue insns for the next cycle - past MAX_SCHED_READY_INSNS during the first scheduling pass. - (schedule_block): Delay insns past MAX_SCHED_READY_INSNS in - the ready list for 1 cycle during the first scheduling pass. - * doc/invoke.texi (--param): New parameter max-sched-ready-insns. - -2006-04-13 Richard Henderson - - PR libgomp/26651 - * gimple-low.c (lower_omp_directive): Remove dead code. - (lower_stmt): Do nothing except for openmp, except for OMP_PARALLEL. - * gimplify.c (gimplify_expr): Update for OMP_RETURN, OMP_CONTINUE. - * omp-low.c (struct omp_region): Move to tree-flow.h. - (root_omp_region): Export. - (omp_regions, lookup_omp_region): Remove. - (determine_parallel_type): Update for struct omp_region changes. - (dump_omp_region): Dump regions with block numbers. - (new_omp_region): Take type and block instead of stmt; malloc - instead of ggc. - (free_omp_region_1, free_omp_regions): New. - (expand_parallel_call): Take entry_stmt as argument; update for - changes to omp_region. - (remove_exit_barrier): Rewrite to update OMP_RETURN_NOWAIT. - (remove_exit_barriers): New. - (expand_omp_parallel): Update for struct omp_region changes. - (expand_omp_synch): Likewise. - (expand_omp): Likewise. - (expand_omp_for_static_nochunk): Likewise; update for OMP_CONTINUE. - (expand_omp_for_static_chunk): Likewise. - (expand_omp_for): Likewise. - (expand_omp_for_generic): Likewise; emit the proper GOMP_loop_end call. - (expand_omp_sections): Similarly, with GOMP_sections_end. - (expand_omp_single): New. - (build_omp_regions_1): Update for OMP_CONTINUE. - (execute_expand_omp): Call remove_exit_barriers, free_omp_regions. - (lower_omp_sections): Expand with OMP_CONTINUE, do not collect - OMP_SECTIONS_SECTIONS. - (lower_omp_single_simple): Don't emit barrier here. - (lower_omp_single_copy): Likewise. - (lower_omp_single): Fix bindings, and lower to straightline now. - (lower_omp_master, lower_omp_ordered): Likewise. - (lower_omp_critical): Likewise. - (lower_omp_for): Likewise. Emit OMP_CONTINUE. - * tree-cfg.c (make_edges): Collect an omp_region tree, use it for - omp edges, free it afterward. - (make_omp_sections_edges): Remove. - (is_ctrl_altering_stmt): Don't bother checking flag_openmp. - (move_stmt_r): Handle OMP_CONTINUE. - * tree-flow.h (struct omp_region): Move from omp-low.c. Switch - statement pointers to basic blocks. Add type member. - (root_omp_region, new_omp_region, free_omp_regions): Declare. - * tree-gimple.c (is_gimple_stmt): Handle OMP_RETURN, OMP_CONTINUE. - * tree-inline.c (estimate_num_insns_1): Likewise. - * tree-pretty-print.c (dump_generic_node): Likewise. - * tree-ssa-operands.c (get_expr_operands): Likewise. - * tree.def (OMP_SECTIONS): Remove OMP_SECTIONS_SECTIONS operand. - (OMP_RETURN): Rename from OMP_RETURN_EXPR. - (OMP_CONTINUE): New. - * tree.h (OMP_DIRECTIVE_P): Add OMP_CONTINUE. - (OMP_SECTIONS_SECTIONS): Remove. - (OMP_SECTION_LAST): New. - (OMP_RETURN_NOWAIT): New. - -2006-04-13 Roger Sayle - - * fold-const.c (native_encode_vector, native_interpret_real): - Correct obvious mistakes in the previous check-in. - -2006-04-13 Roger Sayle - - * fold-const.c (native_encode_expr): New function to encode - the target representation of an INTEGER_CST, REAL_CST, COMPLEX_CST - or VECTOR_CST into a specified buffer. - (native_encode_int): New function. - (native_encode_real): New function. - (native_encode_complex): New function. - (native_encode_vector): New function. - (native_interpret_expr): Inverse of native_encode_expr to convert - a target representation into an INTEGER_CST, REAL_CST etc... - (native_interpret_int): New function. - (native_interpret_real): New function. - (native_interpret_complex): New function. - (native_interpret_vector): New function. - (fold_view_convert_expr): New function to constant fold/evaluate - a VIEW_CONVERT_EXPR of a suitable constant expression. - (fold_unary) : Call fold_view_convert_expr. - Change call of build1 to fold_build1 when constructing a - VIEW_CONVERT_EXPR. - -2006-04-13 Paolo Bonzini - Ulrich Weigand - - PR target/27006 - * config/rs6000/rs6000.h (EASY_VECTOR_15_ADD_SELF): Require n - to be even. - -2006-04-13 Alan Modra - - PR target/26459 - * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't - optimize to lo_sum for DFmode if !TARGET_FPRS. - -2006-04-12 Kazu Hirata - - * tree-ssa-alias.c (set_initial_properties, init_alias_info, - delete_alias_info, compute_flow_sensitive_aliasing, - group_aliases): Use VEC instead of VARRAY. - * tree-ssa-structalias.c (update_alias_info): Likewise. - * tree-ssa-structalias.h (alias_info): Change the type of - processed_ptrs to VEC(tree,heap) *. - -2006-04-12 J"orn Rennecke - - PR target/27060 - * config/sh/lib1funcs.h: New file, broken out of: - * config/sh/lib1funcs.asm. - * config/sh/lib1funcs.h (DR00, DR01, DR20, DR21, DR40, DR41): - New macros. - * config/sh/lib1funcs.asm (udivsi3_i4): Use them. - * config/sh/lib1funcs-Os-4-200.asm: New file. - * config/sh/embed-elf.h (LIBGCC_SPEC): Use -lgcc-Os-4-200. - * config/sh/t-sh (OPT_EXTRA_PARTS): New variable. - (EXTRA_MULTILIB_PARTS): Include it. - ($(T)sdivsi3_i4i-Os-4-200.o): New rule. - ($(T)udivsi3_i4i-Os-4-200.o, $(T)libgcc-Os-4-200.a): Likewise. - * config/sh/t-superh (EXTRA_MULTILIB_PARTS): Include OPT_EXTRA_PARTS. - * config/sh/sh.h (OVERRIDE_OPTIONS): Recognize -mdiv=call-table for - TARGET_SH2. - -2006-04-12 Kazu Hirata - - * Makefile.in (TREE_SSA_LIVE_H): Add vecprim.h. - * tree-ssa-live.c (tpa_init, tpa_remove_partition, tpa_delete, - tpa_compact, root_var_init, type_var_init): Use VEC instead of - VARRAY. - * tree-ssa-live.h: Include vecprim.h. - (tree_partition_associator_d): Change the type of - first_partition to VEC(int,heap) *. - (tpa_first_partition): Use VEC instead of VARRAY. - - * Makefile.in (GTFILES): Move functions.h after tree.h. - * function.c (reset_block_changes, record_block_change, - check_block_change, free_block_changes): Use VEC instead of - VARRAY. - * function.h (function): Change the type of - ib_boundaries_block to VEC(tree,gc) *. - * tree-inline.c (copy_cfg_body): Initialize - ib_boundaries_block to NULL instead of (varray_type) 0. - -2006-04-12 Roger Sayle - - * expr.c (emit_group_store): Correct operand order in call to - subreg_lowpart_offset. Always create paradoxical SUBREGs with - a SUBREG_BYTE of zero. - -2006-04-12 Richard Guenther - - * profile.c (compute_branch_probabilities): Remove code - encapsulated in !ir_type (), which are remanents of the - removed RTL profiling code. - * rtl-profile.c: Remove. - -2006-04-12 Alan Modra - - * config/rs6000/rs6000.c (rs6000_mixed_function_arg): Update - magic NULL_RTX comment. - (function_arg): Store entire fp arg to mem if any part should go - on stack. - (rs6000_arg_partial_bytes): Adjust for above change. - -2006-04-11 Roger Sayle - - * dwarf2out.c (output_call_frame_info): Create debug_frame_section - if it hasn't been initialized by dwarf2out_init. - -2006-04-11 John David Anglin - - * pa.md (MAX_12BIT_OFFSET, MAX_17BIT_OFFSET): Define and use new - symbolic constants in branch patterns. - -2006-04-11 Roger Sayle - - * caller-save.c: #include "addresses.h" after #include "tm_p.h". - -2006-04-11 Richard Sandiford - - PR rtl-optimization/27073 - * gcse.c (try_replace_reg): Revert last change. Continue to search - for both REG_EQUAL and REG_EQUIV notes, but only perform replacements - on the former. - -2006-04-11 Eric Botcazou - - * config/sparc/sparc.c (function_arg_slotno) : Handle - aggregate types other than record and union types. - (function_arg): Likewise. - (function_arg_pass_by_reference): In 64-bit mode, return 0 for - small arrays. - (function_value): In 64-bit mode, return objects that require it - in FP registers. - -2006-04-11 Roger Sayle - - * dwarf2out.c (premark_used_types): Remove problematic prototype. - -2006-04-11 Jakub Jelinek - - * gcc.c (LINK_COMMAND_SPEC): Move link_gomp after %o. - -2006-04-03 Jeff Law - - PR/27087 - * tree-ssa-copy.c (may_propagate_copy): Test flow sensitive - alias information too. - -2006-04-10 Mike Frysinger - - * Makefile.in (gcc-cross): Add $(exeext) to target name. - -2006-04-10 Aldy Hernandez - - PR/21391 - * dwarf2out.c (struct die_struct): Add die_perennial_p field. - (premark_used_types_helper): New. - (premark_used_types): New. - (gen_subprogram_die): Call premark_used_types. - (prune_unused_types_walk): Do not prune perennial dies. - * function.c (used_types_insert): New. - * function.h (struct function): Add used_types_hash field. - (used_types_insert): Add prototype. - * Makefile.in (FUNCTION_H): Depend on HASHTAB_H. - * c-parser.c (c_parser_cast_expression): Save casted types in used - types hash table. - -2006-04-11 Mark Mitchell - - PR target/26459 - * config/rs6000/e500-double.h (SUB3TARGET_OVERRIDE_OPTIONS): Test - rs6000_explicit_options.float_gprs. - -2006-04-10 Roger Sayle - - * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Renamed - from ix86_expand_vector_init_low_nonzero. Take an additional - one_var argument indicating which element is non-zero. Support - one_var != 0 for V4SFmode and V4SImode by permuting the result. - (ix86_expand_vector_init): Call ix86_expand_vector_init_one_nonzero - with one_var instead of ix86_expand_vector_init_low_nonzero. - -2006-04-10 Kazu Hirata - - * Makefile.in (tree-into-ssa.o, tree-outof-ssa.o, - tree-ssa-live.o, tree-ssa-alias.o, function.o, df-problems.o, - global.o, cfglayout.o, lambda-code.o, reg-stack.o, - build/genextract.o): Depend on vecprim.h. - * cfglayout.c, df-problems.c, function.c, genextract.c, - global.c, lambda-code.c, reg-stack.c, tree-into-ssa.c, - tree-outof-ssa.c, tree-ssa-alias.c, tree-ssa-live.c: Include - vecprim.h. - * vecprim.h: New. - -2006-04-10 Geoffrey Keating - - * dwarf2out.c (struct dw_attr_struct): Remove dw_attr_next. - Declare VECs of this type. - (struct die_struct): Make field die_attr a VEC of dw_attr_struct. - (remove_children): Delete. - (add_dwarf_attr): Use VEC routines. - (add_AT_flag): Update for changes to add_dwarf_attr. - (add_AT_int): Likewise. - (add_AT_unsigned): Likewise. - (add_AT_long_long): Likewise. - (add_AT_vec): Likewise. - (add_AT_string): Likewise. - (add_AT_die_ref): Likewise. - (add_AT_fde_ref): Likewise. - (add_AT_loc): Likewise. - (add_AT_loc_list): Likewise. - (add_AT_addr): Likewise. - (add_AT_lbl_id): Likewise. - (add_AT_lineptr): Likewise. - (add_AT_macptr): Likewise. - (add_AT_offset): Likewise. - (add_AT_range_list): Likewise. - (get_AT): Use VEC_iterate. - (remove_AT): Use VEC_ordered_remove. - (free_die): Fold remove_children into here; have it use VEC_iterate. - (print_die): Use VEC_iterate on attrs. - (reverse_die_lists): Don't reverse attr lists. - (die_checksum): Use VEC_iterate on attrs. - (same_die_p): Likewise. - (output_location_lists): Likewise. - (build_abbrev_table): Likewise. - (size_of_die): Likewise. - (unmark_all_dies): Likewise. - (output_abbrev_section): Likewise. - (output_die): Likewise. - (prune_unused_types_walk_attribs): Likewise. - -2006-04-10 Eric Botcazou - - * doc/install.texi (*-*-solaris2*): Point to the configure page. - -2006-04-10 Jakub Jelinek - - PR debug/27057 - * dwarf2out.c (is_symbol_die): Return true also for namespaces. - -2006-04-09 Roger Sayle - - * expr.c (store_constructor): Don't bother clearing target if - we're about to assign a vector to it using vec_init_optab. - -2006-04-10 Daniel Berlin - - * tree-ssa-alias.c (lhs_may_store_to): New function. - (recalculate_used_alone): Handle LHS of calls. - -2006-04-09 John David Anglin - - PR target/27034 - PR target/26508 - * config.gcc (hppa*64*-*-hpux11*): Add 'libgcc_stub.a' to extra_parts. - * pa64-hpux.h (LIB_SPEC): Correct typo. Don't append milli.a. - (LINK_GCC_C_SEQUENCE_SPEC): Define. Append milli.a here. - (PA_CXA_FINALIZE_STUB, PA_JV_REGISTERCLASSES_STUB): Delete defines. - (PA_INIT_FINI_HACK): Rename to PA_CRTBEGIN_HACK. - (PA_CRTBEGIN_HACK): Ensure __do_global_ctors_aux is placed in text - section. Delete PA_CXA_FINALIZE_STUB and PA_JV_REGISTERCLASSES_STUB - stubs. Add ".align 8" directives before all ".dword" directives. - (GTHREAD_USE_WEAK): Revise comment. - (TARGET_ATTRIBUTE_WEAK): Define. - * pa/t-pa64 (LIBGCCSTUB_OBJS): Add new rules for stublib.c, rfi-stub.o, - dfi-stub.o, cxaf-stub.o and jvrc-stub.o. - * stublib.c: New file. - - PR target/26743 - PR target/11254 - PR target/10274 - * pa.md (cbranch patterns): Revise arguments used in calls to - output_cbranch, output_bb and output_bvd. Add long branch length - attributes. - (fbranch patterns): Handle long branches. - (jump): Revise length check. Revise arguments for output_lbranch call. - Add long branch length attributes. - (decrement_and_branch_until_zero): Add long branch length attributes. - (output_movb, output_parallel_addb and output_parallel_movb patterns): - Likewise. Revise arguments for output_parallel_addb and - output_parallel_movb calls. - * pa-protos.h (output_cbranch, output_lbranch, output_bb, output_bvb, - output_parallel_movb and output_parallel_addb): Update prototypes. - * pa.c (output_cbranch): Revise arguments. Correct handling of - nullification in long branches. - (output_lbranch): Add new argument to control extraction of delay - instruction. - (output_bb): Handle long branches. - (output_bvb, output_dbra, output_movb, output_parallel_movb, - output_parallel_addb): Likewise. - -2006-04-09 Richard Sandiford - - PR rtl-optimization/27073 - * gcse.c (try_replace_reg): Just propagate into REG_EQUAL notes, - not REG_EQUIVs. - -2006-04-08 Daniel Berlin - - * tree.h (tree_memory_tag): Add old_used_alone. - (SMT_OLD_USED_ALONE): New macro. - * tree-ssa-alias.c (recalculate_used_alone): Stop - marking things for renaming unnecessarily. - -2006-04-08 Kazu Hirata - - * builtins.c, config/arm/arm.c, config/i386/cygwin.h, - config/i386/i386.c, config/ia64/ia64.c, config/s390/fixdfdi.h, - config/sh/sh.c, config/sh/sh.h, df-scan.c, except.c, - haifa-sched.c, optabs.c, rtl.h, sched-deps.c, sched-int.h, - sched-rgn.c, tree-inline.h, tree-ssa-dom.c, - tree-ssa-loop-prefetch.c, tree-ssa-operands.c, - tree-vect-patterns.c, tree-vrp.c: Fix comment typos. Follow - spelling convensions. - * config/ia64/ia64.opt, doc/contrib.texi, doc/invoke.texi, - doc/passes.texi, doc/tm.texi, doc/tree-ssa.texi: Fix comment - typos. Follow spelling conventions. - -2006-04-07 DJ Delorie - - * config/m32c/m32c.c (m32c_function_arg): Structures are always - passed on the stack. - (m32c_init_cumulative_args): When a function returns a structure, - always pass the pointer to that return area on the stack. - (m32c_function_arg_advance): Don't increment the parameter number - if we're processing the returned structure pointer. - (pushm_info): Reverse order of registers. - -2006-04-07 Sebastian Pop - - * tree-ssa-loop-niter.c (inverse, number_of_iterations_ne, - assert_no_overflow_lt, assert_loop_rolls_lt, number_of_iterations_lt, - number_of_iterations_le, number_of_iterations_cond, find_loop_niter, - estimate_numbers_of_iterations_loop): Use build_int_cst instead of - build_int_cst_type. - * tree-chrec.c (chrec_fold_multiply_poly_poly, - chrec_fold_multiply): Same. - * tree-ssa-loop-ivopts.c (strip_offset_1, force_expr_to_var_cost, - force_expr_to_var_cost): Same. - * tree-mudflap.c (mf_xform_derefs_1): Same. - * tree-ssa-loop-prefetch.c (idx_analyze_ref): Same. - -2006-04-07 David Edelsohn - - * config/rs6000/rs6000.c (rs6000_rtx_costs) : Do not - treat CONST_DOUBLE as INTVAL. and64_2_operands require an extra - insn. - -2006-04-07 Jan Hubicka - - * ipa-inline.c (cgraph_early_inlining): Collect garbage. - -2006-04-07 Richard Guenther - - PR tree-optimization/26135 - * tree-ssa-copy.c (stmt_may_generate_copy): Handle memory - loads for store copy-prop. - (copy_prop_visit_stmt): Likewise. - -2006-04-05 Robert Millan - - * config/i386/linux.h: Add a comment to mark macros that are - being overriden in config/k*bsd-gnu.h. - * config/kfreebsd-gnu.h: Redefine GLIBC_DYNAMIC_LINKER instead of - DYNAMIC_LINKER. - * config/knetbsd-gnu.h: Ditto. - -2006-04-06 Jan Hubicka - - PR profile/20815 - PR profile/26399 - * coverage.c (coverage_checksum_string): Reorganize loop to not read - after buffer. - -2006-04-06 Mike Stump - - * builtins.c (expand_builtin_longjmp):Use #ifdef instead of #if - for HAVE_nonlocal_goto to be consistent. - (expand_builtin_nonlocal_goto): Likewise. - (expand_builtin_strcmp): Use #ifdef instead of #if - for HAVE_cmpstrnsi to be consistent. - -2006-04-05 DJ Delorie - - * config/m32c/m32c.h (INCOMING_FRAME_SP_OFFSET): Adjust for m16c - vs m32c. - -2006-04-05 Bernd Schmidt - - * config/bfin/bfin.c (bfin_legitimate_address_p): Disallow - got-relative addressing for anything but SImode. - - * config/bfin/lib1funcs.asm (modsi): P1/P2 can be call-clobbered - even if the calling function doesn't modify them. - -2006-04-05 Richard Guenther - - PR tree-optimization/26919 - * ipa-inline.c (cgraph_decide_inlining_incrementally): Fix argument - to cgraph_estimate_size_after_inlining. - -2006-04-05 Alan Modra - - * reload.c (find_dummy_reload): Fix typo in 2006-04-03 change. - -2006-04-05 Sebastian Pop - - PR tree-optimization/26996 - * tree-scalar-evolution.c (analyze_scalar_evolution_1): Don't analyze - VECTOR_TYPE variables. - -2006-04-05 Richard Guenther - - PR tree-optimization/26763 - * fold-const.c (fold_comparison): Move folding of - PTR + CST CMP PTR + CST ... - (fold_binary): ... here. Fold only for EQ_EXPR and NE_EXPR. - -2006-04-05 Gerald Pfeifer - - * doc/install.texi (Prerequisites): Refine some wording on - bootstrapping and ksh. - Move the version numbers of DejaGnu here from the testing section - and fix casing of names. - Fix markup and clarify wording for autogen requirements. - Refer to GCJ instead of just java. - Refer to SVN instead of CVS. - Describe diffutils as useful instead of necessary. - (Downloading the source): Refer to SVN instead of CVS. - Adjust a link to our web site accordingly. - (Configuration): Fix casing of Bison. - (Building): Refer to SVN instead of CVS. - Fix a sentence on the use of Bison and remove duplicate (and - incorrect) version number of Bison requirement. - Remove one redundant list of packages needed for building. - (Specific): Avoid reference to CVS. - -2006-04-04 Eric Christopher - - * config/rs6000/rs6000.c (TARGET_MS_BITFIELD_LAYOUT_P): Define. - (TARGET_USE_MS_BITFIELD_LAYOUT): Ditto. - (rs6000_handle_struct_attribute): New. - (rs6000_ms_bitfield_layout_p): Ditto. - -2006-04-04 Geoffrey Keating - - * config/darwin-crt3.c (atexit): Pass &__dso_handle rather than - NULL for dso parameter to atexit_common. - -2006-04-04 Eric Christopher - - * config/i386/i386.c (machopic_output_stub): Output \t - between instructions and operands. - -2006-04-04 David Edelsohn - - * config/rs6000/rs6000.c (num_insns_constant_wide): Change - satisfies_constraint_[IL] to explicit tests on value. - -2006-04-04 Sebastian Pop - - * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop, - set_nb_iterations_in_loop): Use build_int_cst instead of - build_int_cst_type. - * tree-data-ref.c (can_use_analyze_subscript_affine_affine): Use - build_int_cst instead of convert. - -2006-04-04 Carlos O'Donell - - * doc/tm.texi (TARGET_STRUCT_VALUE_RTX): Document - new value 2 for incoming. - * function.c (expand_function_start): Call struct_value_rtx - with incoming as 2. - * config/sparc/sparc.md: Comment updated_return. - * config/sparc/sparc.opt: Add -mstd-struct-return option. - * config/sparc/sparc.c (sparc_struct_value_rtx): Use standard - struct return if sparc_std_struct_return and incoming is 2. - (print_operand): Do not adjust return if - sparc_std_struct_return. - -2006-04-04 Roger Sayle - - * builtins.c (fold_builtin_sprintf): Use fold_convert instead of - convert in the middle-end. - * expr.c (store_expr, store_constructor, get_inner_reference, - expand_expr_real_1, string_constant, try_casesi, try_tablejump): - Likewise. - * tree.c (build_range_type): Likewise. - -2006-04-04 Tom Tromey - - * doc/install.texi (Prerequisites): Mention jar. - -2006-04-04 Daniel Berlin - - * doc/tree-ssa.texi (Preserving the virtual ssa form): New - subsection. - -2006-04-04 Matthias Klose - - * Makefile.in (unprotoize.o): Same dependencies as for protoize.o. - - PR bootstrap/26764 - PR bootstrap/27334 - * Makefile.in (s-macro_list): Conform to POSIX rules in single quoted - strings. - -2006-04-03 Geoffrey Keating - - * doc/extend.texi (Function Attributes): Rewrite visibility - attribute documentation. - * doc/invoke.texi (C++ Dialect Options): Rewrite - -fvisibility-inlines-hidden documentation to describe something - entirely different, although in practise compatible. - (Code Gen Options): Warn about system headers in -fvisibility= - documentation. - - * doc/extend.texi (Other Builtins): Document that - __builtin_nan is a compile-time constant only when its argument - is valid. - -2006-04-03 Adam Nemet - - * simplify-rtx.c (simplify_unary_operation_1) : When - trying to remove TRUNCATE check if all bits outside the new mode - are identical to the sign bit. - -2006-04-03 Jeff Law - - * tree-ssa-dom.c (propagate_rhs_into_lhs): Avoid useless folding - and operand scanning in some common cases. - -2006-04-03 Paolo Bonzini - Dale Johannesen - - PR target/19653 - * regclass.c (struct reg_pref): Update documentation. - (regclass): Set prefclass to NO_REGS if memory is the best option. - (record_reg_classes): Cope with a prefclass set to NO_REGS. - * reload.c (find_reloads): Take PREFERRED_OUTPUT_RELOAD_CLASS - into account. For non-registers, equate an empty preferred - reload class to a `!' in the constraint; move the if clause to - do so after those that reject the insn. - (push_reload): Allow PREFERRED_*_RELOAD_CLASS to liberally - return NO_REGS. - (find_dummy_reload): Likewise. - * doc/tm.texi (Register Classes): Document what it means - if PREFERRED_*_RELOAD_CLASS return NO_REGS. - * config/i386/i386.c (ix86_preferred_reload_class): Force - using SSE registers (and return NO_REGS for floating-point - constants) if math is done with SSE. - (ix86_preferred_output_reload_class): New. - * config/i386/i386-protos.h (ix86_preferred_output_reload_class): New. - * config/i386/i386.h (PREFERRED_OUTPUT_RELOAD_CLASS): New. - * config/i386/i386.md: Remove # register preferences. - -2006-04-02 Sebastian Pop - - PR bootstrap/26992 - * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop, - chrec_is_positive, set_nb_iterations_in_loop): Use a variable for - the type of nb_iter. - (instantiate_parameters_1): Convert the operands before calling - chrec_fold_minus, chrec_fold_plus, or chrec_fold_multiply. - * tree-data-ref.c (can_use_analyze_subscript_affine_affine): Same. - -2006-04-02 Roger Sayle - - * builtins.c (dummy_object): Use build_int_cst instead of convert. - * tree-ssa-ccp.c (maybe_fold_stmt_addition): Use fold_convert - instead of convert. - * dojump.c (do_jump): Likewise. - * expr.h (ADD_PARM_SIZE, SUB_PARM_SIZE, ARGS_SIZE_TREE): Likewise. - * gimplify.c (gimple_boolify, gimplify_init_constructor, - gimplify_boolean_expr): Likewise. - * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise. - * varasm.c (array_size_for_constructor): Likewise. - * tree-object-size.c (compute_object_offset): Likewise. - -2006-04-02 Roger Sayle - - PR middle-end/26977 - * expr.c (emit_group_store): Check whether simplify_gen_subreg returns - NULL_RTX, indicating it couldn't create a valid paradoxical subreg. - -2006-04-02 Sebastian Pop - - PR tree-optimization/26939 - * tree-chrec.c (chrec_merge): Use eq_evolutions_p. - -2006-04-02 Sebastian Pop - - * tree-scalar-evolution.c (add_to_evolution_1): Pass an extra argument - at_stmt. Convert the type of operands before calling - build_polynomial_chrec. - (add_to_evolution): Pass an extra argument at_stmt. Adjust the call to - add_to_evolution_1. - (follow_ssa_edge_in_rhs): Adjust call to add_to_evolution. - (instantiate_parameters_1): Convert the type of operands before calling - build_polynomial_chrec. - * tree-chrec.c (chrec_fold_poly_cst, chrec_fold_plus_poly_poly, - chrec_fold_multiply_poly_poly, chrec_replace_initial_condition, - reset_evolution_in_loop): Insert asserts to check the types of the - operands. - (chrec_type): Moved... - (eq_evolutions_p): Use operand_equal_p. - * tree-chrec.h (build_polynomial_chrec): Insert an assert to check - the types of the operands. - (chrec_type): ...here. - * tree-data-ref.c (create_data_ref): Convert the operands before - calling chrec_replace_initial_condition. - (same_access_functions, analyze_subscript_affine_affine, - analyze_miv_subscript, all_chrecs_equal_p): Use eq_evolutions_p. - (compute_subscript_distance, analyze_ziv_subscript, - analyze_siv_subscript_cst_affine, compute_overlap_steps_for_affine_1_2, - analyze_miv_subscript): Convert the operands before calling - chrec_fold_minus or chrec_fold_plus. - -2006-04-02 Sebastian Pop - - * tree-data-ref.c (compute_all_dependences): Use a pointer to - the dependence_relations vector. - (compute_data_dependences_for_loop): Adjust call to - compute_all_dependences. - -2006-04-01 Roger Sayle - Richard Henderson - - * gimplify.c (gimplify_scan_omp_clauses) : Call - gimple_boolify on the condition before calling gimplify_expr. - -2006-03-31 Bob Wilson - - * config/xtensa/lib1funcs.asm: Rename abi_entry/abi_return macros - to leaf_entry/leaf_return. Change leaf_entry to add 16 bytes to - the frame size. Update to use the new macros. - * config/xtensa/ieee754-sf.S: Use new leaf_entry/leaf_return macros. - * config/xtensa/ieee754-df.S: Likewise. - -2006-03-31 Richard Henderson - - * tree-cfg.c (make_ctrl_stmt_edges, make_exit_edges): Merge into... - (make_edges): ... here. Control fallthru creation with a local - variable. Do not play with fake edges. - (make_omp_sections_edges): Don't set EDGE_ABNORMAL. - (make_goto_expr_edges): Don't play with fake edges. Make for_call - a boolean. - -2006-04-01 Joseph S. Myers - - * dwarf2.h (DW64_CIE_ID): Define. - * dwarf2out.c (DWARF_CIE_ID): Define. - (output_call_frame_info): Output 0xffffffff before standard 8-byte - length header. Use DWARF_CIE_ID. - (value_format): Use DW_FORM_data4 or DW_FORM_data8 for - dw_val_class_loc_list depending on DWARF_OFFSET_SIZE. - -2006-03-31 Kaz Kojima - - * config/sh/linux-atomic.asm: New file. - * config/sh/t-linux (LIB2FUNCS_EXTRA): Add linux-atomic.asm. - -2006-03-31 DJ Delorie - - * config/m32c/cond.md: Set condition flags properly throughout. - * config/m32c/minmax.md: Likewise. - * config/m32c/prologue.md: Likewise. - * config/m32c/bitops.md: Likewise. - * config/m32c/muldiv.md: Likewise. - * config/m32c/mov.md: Likewise. - * config/m32c/addsub.md: Likewise. - * config/m32c/m32c.md: Likewise. - * config/m32c/jump.md: Likewise. - * config/m32c/shift.md: Likewise. - - * config/m32c/cond.md (cmp): Call m32c_output_compare to - conditionally output the pattern for this. - * config/m32c/m32c.c (flags_needed_for_conditional): New. - (m32c_compare_redundant): New. - (m32c_output_compare): New. - * config/m32c/m32c-protos.h (m32c_output_compare): New. - - * config/m32c/m32c.c (m32c_prepare_shift): Fix logic to clobber - dest, not src. Allow other 4-byte modes. - -2006-03-30 Denis Chertykov - - * doc/md.texi: Refer to avr/constraints.md instead of - avr/avr.h. - -2006-03-30 Roger Sayle - - * expr.c (emit_group_store): Make BYTEPOS a HOST_WIDE_INT to - signed vs. unsigned comparison failures on some hosts. - -2006-03-31 Alan Modra - - PR target/26459 - * config/rs6000/rs6000.h (CANNOT_CHANGE_MODE_CLASS): Limit 2003-12-08 - change to FLOAT_REGS. - - * config/rs6000/rs6000.c (rs6000_explicit_options): Add ieee. - (rs6000_override_options): Use it. - (rs6000_handle_option): Set it. Set rs6000_explicit_options.abi - only for -mabi=spe/no-spe and -mabi=altivec. - -2006-03-30 Geoffrey Keating - - * config/darwin.h (LINK_COMMAND_SPEC): Don't try to protect %S with - !Zdynamiclib. - -2006-03-30 Carlos O'Donell - - * Makefile.in: Rename docdir to gcc_docdir. - -2006-03-30 Roger Sayle - - PR target/17959 - * expr.c (emit_group_store): Optimize group stores into a pseudo - register by using a paradoxical subreg to initialize the destination - if the first or last member of the group specifies a "low part". - -2006-03-30 Maxim Kuvyrkov - - PR target/26734 - * rtl.def (DEPS_LIST): Change type of the second operand to 'int'. - * target.h (struct gcc_target.speculate_insn): Change type of the - second parameter to 'int'. - * lists.c (alloc_DEPS_LIST): Change signature. Update reference to - the second operand of the DEPS_LIST. - (copy_DEPS_LIST_list): Update reference to the second operand of the - DEPS_LIST. - * rtl.h (alloc_DEPS_LIST): Update signature. - * sched-int.h (ds_t): Change typedef to 'int'. - (DEP_STATUS, BITS_PER_DEP_STATUS): Update. - -2006-03-30 Maxim Kuvyrkov - - * haifa-sched.c (try_ready): Change condition to restore - non-speculative pattern of the instruction. - (process_insn_depend_be_in_spec): Code to keep probability of the - speculative dependence non-decreasing. - -2006-03-30 Jie Zhang - - * config/bfin/bfin.c (single_move_for_strmov): Renamed to... - (single_move_for_movmem): ... this. Also change all uses. - (bfin_expand_strmov): Renamed to... - (bfin_expand_movmem): ... this. Also change all uses. - * config/bfin/bfin.md (movstrsi): Renamed to... - (movstrsi): ...this. - -2006-03-30 Paolo Bonzini - - PR tree-optimization/26830 - - * tree-ssa-copy.c (copy_prop_visit_assignment): Do not check loop depth. - (copy_prop_visit_stmt): Remove write-only variable ann. - (init_copy_prop): Check variable loop depth here. Do not simulate - memory-tag and virtual operand PHIs except for store copy prop. - -2006-03-30 Richard Guenther - - * config/i386/i386.c: Remove builtins for SSE2 ABI intrinsic - variants with double arguments. - -2006-03-29 David Edelsohn - - * genpreds.c (write_tm_constrs_h): Delete variable p. - * genconditions.c (write_header): Add tm-constrs.h to included - headers. - * genpeep.c (main): Add toplev.h to included headers. - * Makefile.in (build/gencondmd.o): Add tm-constrs.h dependency. - (build/genpeep.o): Add toplev.h dependency. - * config/rs6000/constraints.md: Add "W" constraint. - -2006-03-29 Roger Sayle - - * stor-layout.c (mode_for_size_tree): Remove restiction on type - sizes by correctly testing whether the size fits a host integer. - (initialize_sizetypes): Use set_min_and_max_values_for_integral_type - to correctly set TYPE_MIN_VALUE and TYPE_MAX_VALUE to the full - SImode range for the default sizetype and bitsizetype. - -2006-03-29 Roger Sayle - - * convert.c (convert_to_pointer): Preserve the TREE_OVERFLOW - and TREE_CONSTANT_OVERFLOW bits of the argument. Return - quickly if the argument is already of the correct type. - Call fold_build1 instead of build1. Tidy up blank lines. - -2006-03-29 David Edelsohn - - * genemit.c (main): Add tm-constrs.h to included headers. - * genoutput.c (output_prologue): Add tm-constrs.h to included headers. - * genpeep.c (main): Add tm-constrs.h to included headers. - * genpreds.c (write_satisfies_constraint_fns): Rename to ... - (write_tm_constrs_h): this and write complete file. - (write_tm_preds_h): Do not emit satisfies_constraint fns. - (write_insn_preds_c): Add tm-constrs.h to included headers. - (gen_constrs): New variable. - (parse_option): Parse "-c". - (main): Invoke write_tm_constrs_h. - * genrecog.c (write_header): Add tm-constrs.h to included headers. - * Makefile.in (STAGECOPYSTUFF): Add tm-constrs.h. - (object_out_file): Add tm-constrs.h dependency. - (insn-emit.o): Same. - (insn-output.o): Same. - (insn-peep.o): Same. - (insn-preds.o): Same. - (insn-recog.o): Same. - (tm-constsr.h): New target. - (s-constrs-h): New target. - - * config/rs6000/constraints.md: New file. - * config/rs6000/rs6000.c: Include tm-constrs.h. - (num_insn_constant_wide): Convert to satisfies_constraint. - (rs6000_rtx_costs): Convert to satisfies_constraint. - * config/rs6000/rs6000.h (REG_CLASS_FROM_LETTER): Delete. - (CONST_OK_FOR_LETTER_P): Delete. - (CONST_DOUBLE_OK_FOR_LETTER_P): Delete. - (EXTRA_CONSTRAINT): Delete. - (EXTRA_MEMORY_CONSTRAINT): Delete. - (EXTRA_ADDRESS_CONSTRAINT): Delete. - * config/rs6000/predicates.md: Convert to satisfies_constraint. - * config/rs6000/rs6000.md: Include constraints.md. Convert to - satisfies_constraint. - - * config/i386/i386.c: Include tm-constrs.h. - -2006-03-29 Sebastian Pop - - * tree-loop-linear.c (compute_data_dependences_for_loop): Adjust calls. - * tree-data-ref.c (find_data_references_in_loop, - compute_data_dependences_for_loop): Use pointers to VEC. - (analyze_all_data_dependences): Adjust calls. - * tree-data-ref.h (find_data_references_in_loop, - compute_data_dependences_for_loop): Adjust declarations. - * tree-vect-analyze.c (vect_analyze_data_refs): Adjust call to - compute_data_dependences_for_loop. - -2006-03-29 Paul Brook - - * config/arm/vfp.md (movsf_vfp): Disparage w<->r alternatives. - (movdf_vfp): Ditto. - -2006-03-29 Sebastian Pop - - PR tree-optimization/26859 - * tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined): Avoid - division by zero. - (convert_step): Remove TREE_OVERFLOW and TREE_CONSTANT_OVERFLOW flags - for the step after fold_convert. - -2006-03-29 Paul Brook - - * reload1.c (choose_reload_regs): Check for all RTX_AUTOINC operators. - (inc_for_reload): Handle PRE_MODIFY and POST_MODIFY addresses. - -2006-03-29 Paul Brook - - PR middle-end/23623 - * targhooks.c (default_narrow_bitfield): New fuction. - * targhooks.h (default_narrow_bitfield): add prototype. - * target.h (gcc_target): Add narrow_volatile_bitfield. - * target-def.h (TARGET_NARROW_VOLATILE_BITFIELD): Define. - * stor-layout.c (get_best_mode): Use targetm.narrow_volatile_bitfield. - * doc/tm.texi: Document TARGET_NARROW_VOLATILE_BITFIELDS. - * config/arm/arm.c (TARGET_NARROW_VOLATILE_BITFIELD): Define. - -2006-03-29 Andreas Krebbel - - * config.gcc (s390-*-linux-*, s390x-*-linux*): Add t-dfprules to - tmake_file. - * config/s390/s390.c (S390_scalar_mode_supported_p): New function. - (NR_C_MODES): Add TDmode, DDmode and SDmode. - (s390_output_pool_entry, ): Accept MODE_DECIMAL_FLOAT. - (s390_hard_regno_mode_ok): Disallow TDmode in integer regs. - (s390_function_arg_float): Allow SDmode and DDmode values to be - passed in floating point registers. - (s390_function_arg_integer, s390_function_value): Replace MODE_FLOAT - check with SCALAR_FLOAT_MODE_P. - (TARGET_SCALAR_MODE_SUPPORTED_P): Define target macro. - -2006-03-28 Zdenek Dvorak - - PR tree-optimization/25985 - * tree-ssa-loop-niter.c (number_of_iterations_le, - number_of_iterations_ne): Make comments more precise. - (number_of_iterations_cond): Add only_exit argument. Use the - fact that signed variables do not overflow only when only_exit - is true. - (loop_only_exit_p): New. - (number_of_iterations_exit): Pass result of loop_only_exit_p to - number_of_iterations_cond. - -2006-03-28 Zdenek Dvorak - - PR tree-optimization/26643 - * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Do not handle - bit_field_refs. - -2006-03-28 Kaz Kojima - - * config/sh/sh.md (udivsi3_i4_int): Clobber MACH_REG and MACL_REG. - (divsi3_i4_int): Likewise. - -2006-03-28 Roger Sayle - - * expr.c (emit_group_store): Only create a new pseudo reg if the - quantity it needs to hold isn't already a suitable pseudo. - -2006-03-28 Jeff Law - - * timevar.def (TV_TREE_PHI_CPROP): New timevar. - * tree-ssa-dom.c (pass_phi_only_cprop): Use it. - -2006-03-28 Roger Sayle - - * fold-const.c (fold_binary) : Fold (X & Y) ^ Y as - the equivalent ~X & Y, and the symmetry related transformations. - (fold_binary) : Similarly, fold (X ^ Y) & Y as - ~X & Y, and symmetry related transforms. - -2006-03-28 Maxim Kuvyrkov - - Revert my 2006-03-27 patches. - -2006-03-28 Roger Sayle - - * fold-const.c (fold_unary) : Fold (T1)(~(T2)X) as - ~(T1)X, when T1 and T2 are integer types of the same precision - and (T2)X isn't an extension. - -2006-03-28 Jeff Law - - PR tree-optimization/26796 - * tree-ssa-dom.c (propagate_rhs_into_lhs): Queue blocks which - need EH edge cleanups rather than purging them immediately. - (eliminate_degenerate_phis): Handle queued EH cleanups. - -2006-03-28 Daniel Berlin - - * tree-ssa-alias.c (create_sft): Initially inherit TREE_ADDRESSABLE - from parent_var. - -2006-03-27 Roger Sayle - - PR middle-end/22524 - * fold-const.c (fold_binary) : Call fold_convert to - cast BIT_NOT_EXPR operand to the correct type. - -2006-03-27 Sebastian Pop - - * tree-loop-linear.c: Don't include varray.h. - (gather_interchange_stats, try_interchange_loops, - linear_transform_loops): Use VEC instead of VARRAY. - * lambda-mat.c: Don't include varray.h. - * tree-chrec.c: Same. - * lambda-trans.c: Same. - * tree-vectorizer.c (new_loop_vec_info, destroy_loop_vec_info): Use - VEC instead of VARRAY. - * tree-vectorizer.h: Idem. - * tree-data-ref.c (dump_data_references, - dump_data_dependence_relations, dump_dist_dir_vectors, dump_ddrs, - initialize_data_dependence_relation, finalize_ddr_dependent, - compute_all_dependences, find_data_references_in_loop, - compute_data_dependences_for_loop, analyze_all_data_dependences, - free_dependence_relation, free_dependence_relations, - free_data_refs): Idem. - * tree-data-ref.h (data_reference_p, subscript_p): New. - (data_dependence_relation, DDR_SUBSCRIPT, DDR_NUM_SUBSCRIPTS): Use - VEC instead of VARRAY. - (DDR_SUBSCRIPTS_VECTOR_INIT): Removed. - (find_data_references_in_loop, compute_data_dependences_for_loop, - dump_ddrs, dump_dist_dir_vectors, dump_data_references, - dump_data_dependence_relations, free_dependence_relations, - free_data_refs): Adjust declaration. - (lambda_transform_legal_p): Move declaration here... - * tree-vect-analyze.c (vect_analyze_data_ref_dependences, - vect_compute_data_refs_alignment, vect_verify_datarefs_alignment, - vect_enhance_data_refs_alignment, vect_analyze_data_ref_accesses, - vect_analyze_data_refs): Use VEC instead of VARRAY. - * lambda.h (lambda_transform_legal_p): ...from here. - * lambda-code.c (lambda_transform_legal_p): Use VEC instead of VARRAY. - * tree-vect-transform.c (vect_update_inits_of_drs): Idem. - * Makefile.in (tree-loop-linear.o, lambda-mat.o, lambda-trans.o, - tree-chrec.o): Don't depend on VARRAY_H. - -2006-03-27 Maxim Kuvyrkov - - * rtl.def (Copyright): Update date. - (DEPS_LIST): Change type of the second operand to 'int'. - * target.h (Copyright): Update date. - (struct gcc_target.speculate_insn): Change type of the second parameter - to 'int'. - * lists.c (Copyright): Update date. - (alloc_DEPS_LIST): Change signature. Update reference to the second - operand of the DEPS_LIST. - (copy_DEPS_LIST_list): Update reference to the second operand of the - DEPS_LIST. - * rtl.h (Copyright): Update date. - (alloc_DEPS_LIST): Update signature. - * sched-int.h (Copyright): Update date. - (ds_t): Change typedef to 'int'. - (DEP_STATUS, BITS_PER_DEP_STATUS): Update. - -2006-03-27 Maxim Kuvyrkov - - * haifa-sched.c (Copyright): Update date. - (try_ready): Change condition to restore non-speculative pattern - of the instruction. - (process_insn_depend_be_in_spec): Code to keep probability of the - speculative dependence non-decreasing. - -2006-03-27 Bernd Schmidt - - * regrename.c (replace_oldest_value_addr): Initialize a variable to - shut up the compiler. - -2006-03-27 J"orn Rennecke - - * config/sh/t-sh ($(T)libic_invalidate_array_4-100.a): Fix rule - to use lib prefix for target. - ($(T)libic_invalidate_array_4-200.a): Likewise. - ($(T)libic_invalidate_array_4a.a): Likewise. - -2006-03-27 Andrew Stubbs - J"orn Rennecke - - * superh.opt: New file. - * sh.c (boardtype, osruntime): Remove. - * superh.h (SUBTARGET_OPTIONS): Remove. - * config.gcc (sh*-superh-elf): Add sh/superh.opt to extra_options. - - * config.gcc (sh*-*-*): Don't use c-c ranges for tr. Quote sed - arguments with ^ and/or []. - - * config.gcc (sh-*-*): Add quoting to account for quirk of - Solaris /bin/sh. - Replace == with = in enable_incomplete_targets test. - - * config/sh/superh.h (SUBTARGET_LINK_SPEC): Replace LITTLE_ENDIAN_BIT - with MASK_LITTLE_ENDIAN. - - * config.gcc (sh*-superh-elf): Add sh/superh.h to tm_file. - * config/sh/sh.opt: Added to some comments. - * config/sh/superh.h: Removed some chaff. - - * config/sh/sh.opt: Add m4-[1234]00* options. - * config/sh/sh.c (sh_handle_option): Likewise. - * config/sh/t-sh (IC_EXTRA_PARTS, EXTRA_MULTILIB_PARTS): Define. - (ic_invalidate_array_4-100.o): New rule. - ($(T)libic_invalidate_array_4-100.a): Likewise. - (ic_invalidate_array_4-200.o): Likewise. - ($(T)libic_invalidate_array_4-200.a): Likewise. - (ic_invalidate_array_4a.o): Likewise. - ($(T)libic_invalidate_array_4a.a): Likewise. - * config/sh/t-elf (EXTRA_MULTILIB_PARTS): Add IC_EXTRA_PARTS. - * config/sh/embed-elf.h (LIBGCC_SPEC): Add clauses for m4-100*, - m4-200*, and m4a*. - * config/sh/crt1.asm: Merged in profiling code. - * config/sh/superh.h (STARTFILE_SPEC): Override. - * config/sh/t-superh: Override EXTRA_MULTILIB_PARTS. - Add rules for $(T)crt1-mmu.o, $(T)gcrt1-mmu.o and $(T)gcrt1.o. - * config.gcc (sh*-superh-elf): Add t-superh to tmake_file. - - * t-sh (MULTILIB_MATCHES): Add sh4-[1245]00* variants. - * config/sh/t-superh: Removed now-redundant MULTILIB_OPTIONS / - MULTILIB_DIRNAMES / MULTILIB_MATCHES settings. - - * sh.opt (mpretend-cmove): New option. - * sh.h (OPERRIDE_OPTIONS): Switch it off if not TARGET_SH1. - * sh.md (movsicc_t_false, movsicc_t_tru): New patterns. - (movsicc): Add TARGET_PRETEND_CMOVE code. - -2006-03-27 Andreas Krebbel - - * config/s390/s390-protos.h (s390_hard_regno_mode_ok, - s390_class_max_nregs): New function prototypes. - * config/s390/s390.c (REGNO_PAIR_OK): New macro. - (s390_hard_regno_mode_ok, s390_class_max_nregs): New functions. - * config/s390/s390.h (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK, - CLASS_MAX_NREGS): Macro bodies replaced by function calls. - -2006-03-26 Geoffrey Keating - - * dwarf2out.c (add_location_or_const_value_attribute): Call - tree_add_const_value_attribute if nothing else works. - (reference_to_unused): New. - (rtl_for_decl_init): Use reference_to_unused to decide whether - to output an initializer. - -2006-03-27 Alan Modra - - PR target/26459 - * config/rs6000/rs6000.md (DF reg move peephole): Prevent - peephole removing spe frob_di_df_2. - -2006-03-26 Sebastian Pop - - * tree-data-ref.c: Rename DDR_SIZE_VECT to DDR_NB_LOOPS. - (subscript_dependence_tester_1): Declared. - (print_dir_vectors, print_dist_vectors): New. - (debug_data_dependence_relation): New. - (dump_data_dependence_relation): Print more details. - (initialize_data_dependence_relation): Initialize DDR_LOOP_NEST. - (analyze_subscript_affine_affine): Don't ICE when gcd_alpha_beta is 0. - (save_dist_v, save_dir_v, add_outer_distances, - build_classic_dist_vector_1): New. - (build_classic_dist_vector): Rewrite to work on DDR_LOOP_NEST. - Don't test for lambda_vector_lexico_pos. - (same_access_functions, add_multivariate_self_dist, - add_other_self_distances, dir_from_dist): New. - (build_classic_dir_vector): Replace implementation almost identical to - build_classic_dist_vector with a walk of DDR_DIST_VECTS with a call to - dir_from_dist. - (subscript_dependence_tester_1): New. - (subscript_dependence_tester): Handle the lexicographically negative - distance vectors by recomputing the dependence relation. - (compute_affine_dependence): Remove parameter loop_nest_depth. - (compute_self_dependence): Don't call compute_subscript_distance. - (compute_all_dependences): Remove parameters nb_loops, loop_nest_depth. - Add a parameter for the loop_nest. - (find_loop_nest_1, find_loop_nest): New. - (compute_data_dependences_for_loop): Compute the loop nest, and give - up if the nest is not well formed. - * tree-data-ref.h (loop_p): New. - (struct data_dependence_relation): Replace size_vect field with - loop_nest, a vec of loops. - (DDR_SIZE_VECT): Renamed DDR_NB_LOOPS. - (DDR_LOOP_NEST): New. - (print_dir_vectors, print_dist_vectors, - debug_data_dependence_relation): Declared. - (index_in_loop_nest): New. - * tree-vect-analyze.c (vect_analyze_data_ref_dependence): Use - DDR_LOOP_NEST and index_in_loop_nest to determine the dependence - distance. - -2006-03-25 Adam Nemet - - * simplify-rtx.c (simplify_relational_operation): Call - simplify_relational_operation_1 even if mode is VOIDmode. - -2006-03-25 Daniel Berlin - - PR tree-optimization/26804 - * tree.h (DECL_CALL_CLOBBERED): New macro. - (tree_decl_common): Add call_clobbered_flag. - * tree-flow-inline.h (is_call_clobbered): Use DECL_CALL_CLOBBERED. - (mark_call_clobbered): Set DECL_CALL_CLOBBERED. - (clear_call_clobbered): Clear DECL_CALL_CLOBBERED. - (mark_non_addressable): Ditto. - * tree-ssa.c (verify_call_clobbered): New function. - (verify_alias_info): Use it. - * tree-pass.h (pass_reset_cc_flags): New prototype. - * tree-ssa-alias.c (pass_reset_cc_flags): New structure. - (reset_cc_flags): New function. - * passes.c (init_optimization_passes): Call reset_cc_flags after - initializing referenced_vars. - -2006-03-25 Uros Bizjak - Roger Sayle - - PR middle-end/26717 - * fold-const.c (fold_binary) [RDIV_EXPR]: Do not optimize A / A - to 1.0 for non-real operands. Implement A / A optimization for - complex operands. - -2006-03-25 H.J. Lu - - * config/i386/i386.c (size_cost): Correct the comment for - cost of storing fp registers. - (i386_cost): Likewise. - (i486_cost): Likewise. - (pentium_cost): Likewise. - (pentiumpro_cost): Likewise. - (k6_cost): Likewise. - (athlon_cost): Likewise. - (k8_cost): Likewise. - (pentium4_cost): Likewise. - (nocona_cost): Likewise. - (generic64_cost): Likewise. - (generic32_cost): Likewise. - -2006-03-24 Denis Chertykov - - * config/avr/avr-protos.h (extra_constraint): Delete. - (extra_constraint_Q): New declaration. - * config/avr/constraints.md: New file. - * config/avr/avr.md: Include it. - (REG_X, REG_Y, REG_Z, REG_W): New constants. - (TMP_REGNO, ZERO_REGNO): Likewise. - (UNSPEC_STRLEN, UNSPEC_INDEX_JMP): Likewise. - * config/avr/avr.c (avr_reg_class_from_letter): Delete. - (extra_constraint): Delete. - (extra_constraint_Q): Test for memory constraint 'Q'. - * config/avr/avr.h (REG_X,REG_Y,REG_Z,REG_W): Delete. - (REG_CLASS_FROM_LETTER): Delete. - (CONST_OK_FOR_LETTER_P): Delete. - (CONST_DOUBLE_OK_FOR_LETTER_P): Delete. - (EXTRA_CONSTRAINT): Delete. - (TMP_REGNO): Delete. - (ZERO_REGNO): Delete. - -2006-03-24 Jeff Law - - * tree-ssa-dom.c (propagate_rhs_into_lhs): Don't call update_stmt - directly. Call mark_new_vars_to_rename slightly earlier. - -2006-03-24 Geoffrey Keating - - * dwarf2out.c (is_c_family): Understand new DWARF3 language types. - (is_cxx): Likewise. - (gen_compile_unit_die): Use new language types for Objective-C and - Objective-C++. - (dwarf2out_decl): Use is_cxx rather than testing explicitly against - DW_LANG_C_plus_plus. - - PR 26793 - * config/t-darwin (crt3.o): Work around bug 26840. - * config/darwin-crt3.c: Rewrite. - * config/darwin.h (STARTFILE_SPEC): Don't use -l for crt3.o. - -2006-03-24 Carlos O'Donell - - * doc/invoke.texi: Document -femit-class-debug-always - * common.opt: Add -femit-class-debug-always. - -2006-03-24 Andreas Krebbel - - * config/s390/s390.c (s390_decompose_address): Allow SImode for - index and base register. - (s390_expand_plug_operand, legitimate_address_p, preferred_la_operand_p, - print_operand_address, print_operand): Replaced REG_OK_FOR_BASE_STRICT_P - with REGNO_OK_FOR_BASE_P and REG_OK_FOR_INDEX_STRICT_P with - REGNO_OK_FOR_INDEX_P. - * config/s390/s390.h (REGNO_OK_FOR_INDEX_P): Replaced check with - ADDR_REGNO_P. - (REG_OK_FOR_INDEX_NONSTRICT_P, REG_OK_FOR_BASE_NONSTRICT_P, - REG_OK_FOR_INDEX_STRICT_P, REG_OK_FOR_BASE_STRICT_P, REG_OK_FOR_INDEX_P, - REG_OK_FOR_BASE_P): Definitions removed. - -2006-03-24 Jakub Jelinek - - PR middle-end/26611 - * gimplify.c (gimplify_bind_expr): Only call omp_add_variable on - non-global variables that don't have DECL_SEEN_IN_BIND_EXPR_P bit - set yet or weren't marked as local yet. - -2006-03-24 Bernd Schmidt - - * regrename.c (scan_rtx_address): Initialize a variable to shut up - the compiler. - -2006-03-24 Eric Botcazou - - * config/rs6000/rs6000-protos.h (rs6000_offsettable_memref_p): Declare. - (rs6000_legitimate_small_data_p): Delete. - * config/rs6000/rs6000.c (rs6000_offsettable_memref_p): New predicate. - (rs6000_legitimate_small_data_p): Rename to legitimate_small_data_p - and make static. Add forward declaration. Update uses. - (rs6000_split_multireg_move): Use rs6000_offsettable_memref_p instead - of offsettable_memref_p. - * config/rs6000/rs6000.md (movdf_hardfloat32): Revert 2005-08-23 fix. - Use rs6000_offsettable_memref_p instead of a less accurate predicate. - -2006-03-24 Jeff Law - - * tree-ssa-dom.c (propagate_rhs_into_lhs): Temporarily work - around bug in immediate-use iterator. - -2006-03-24 Alan Modra - - PR target/26607 - * config/rs6000/darwin-ldouble.c: Don't compile when __NO_FPRS__ - or __LITTLE_ENDIAN__. - -2006-03-23 J"orn Rennecke - - * config/sh/divtab-sh4.c, config/sh/divcost-analysis: New files. - * config/sh/lib1funcs.asm (div_table): Add !__SH5__ variant. - * config/sh/t-sh (LIB1ASMFUNCS): Add _div_table. - * config/sh/sh.opt (mdiv=): Amend description. - * config/sh/sh.h (TARGET_DIVIDE_CALL_DIV1): New macro. - (TARGET_DIVIDE_CALL_FP, TARGET_DIVIDE_CALL_TABLE): Likewise. - (sh_divide_strategy_e): Add new members SH_DIV_CALL_DIV1, - SH_DIV_CALL_FP, SH_DIV_CALL_TABLE and SH_DIV_INTRINSIC. - (OVERRIDE_OPTIONS): Also process sh_div_str for TARGET_SH1. - Calculate sh_divsi3_libfunc using TARGET_DIVIDE_* macros. - * config/sh/sh.md (udivsi3_i4_int, divsi3_i4_int): New patterns. - (udivsi3, divsi3): Use them. Check TARGET_DIVIDE_CALL_TABLE / - TARGET_DIVIDE_CALL_FP. - -2006-03-23 Maxim Kuvyrkov - - * haifa-sched.c (choose_ready): Fix type of the local variable. - Move local variables. Add comment. - (check_reg_live): Change signature. Make callable from debugger. - * sched-int.h (check_reg_live): Update signature. - * sched-ebb.c (check_reg_live): Update parameters. - * sched-rgn.c (check_reg_live): Ditto. - (region_head_or_leaf_p): Check pointer before dereferencing. - * config/ia64/ia64.c (ia64_set_sched_flags): Disable data speculation - before reload on optimization levels below 1. - -2006-03-23 Richard Henderson - - * config/alpha/alpha.c (alpha_legitimate_constant_p): Reject - tls symbols. - - PR target/26347 - * config/alpha/predicates.md (local_symbolic_operand): Reject - weak symbols. - -2006-03-23 Andrew Pinski - - PR tree-opt/26795 - * tree-ssa-pre.c (create_value_expr_from): Don't reject - expressions which have overflowed constants. - -2006-03-23 Zdenek Dvorak - - * cse.c (cse_end_of_basic_block): Do not check for LOOP_END note. - -2006-03-23 Zdenek Dvorak - - * cfgloopmanip.c (create_loop_notes): Removed. - * final.c (final_scan_insn): Do not handle loop notes. - * jump.c (squeeze_notes): Ditto. - * cfglayout.c (skip_insns_after_block, - duplicate_insn_chain): Ditto. - * cfgcleanup.c (rest_of_handle_jump2): Do not call - create_loop_notes. - * cfgloop.h (create_loop_notes): Declaration removed. - -2006-03-23 Richard Sandiford - - * varasm.c (output_constant_pool): Restore fnname and fndecl - arguments. - (assemble_start_function): Adjust call accordingly. - (assemble_end_function): Likewise. - -2006-03-22 Volker Reichelt - - PR mudflap/26789 - * tree-mudflap.c (mudflap_finish_file): Skip erroneous objects. - - PR mudflap/26790 - * tree-mudflap.c (mf_xform_derefs_1): Return early on error_mark_node. - -2006-03-22 Volker Reichelt - - PR driver/22600 - * system.h (ICE_EXIT_CODE): New macro. - * diagnostic.c (diagnostic_count_diagnostic): Exit with ICE_EXIT_CODE. - (diagnostic_action_after_output): Likewise. - * gcc.c (fatal_ice): New function. - (execute): Use it instead of fatal. - (fancy_abort): Likewise. - * doc/invoke.texi (-pass-exit-codes): Document return code for ICEs. - -2006-03-22 Jeff Law - - * loop-unroll.c (analyze_iv_to_split_insn): Handle - iv_analyze_result returning false. - -2006-03-22 Jie Zhang - - * config/bfin/bfin.h (ASM_FORMAT_PRIVATE_NAME): Remove. - -2006-03-22 Richard Henderson - - PR middle-end/26084 - * except.c (duplicate_eh_regions_0): New. - (duplicate_eh_region_1): Duplicate the children of the node as - well as the node itself. Link them up properly. - (duplicate_eh_region_2): Merge into ... - (duplicate_eh_regions): ... here. Take copy_region argument, and - copy only a sub-tree if asked. Simplify copying and fixup. - (eh_region_outer_p): New. - * except.h (duplicate_eh_regions): Update decl. - (eh_region_outer_p): Declare. - * omp-low.c (lower_omp_single): Fix eh region placement wrt OMP_RETURN. - (lower_omp_master): Likewise. - (lower_omp_ordered): Likewise. - * tree-cfg.c (struct move_stmt_d): Add new_label_map. - (move_stmt_r): Use it to remap labels. Handle recursion vs - remap_decls_p properly. - (move_block_to_fn): Pass in new_label_map. Remap RESX_EXPR. - (find_outermost_region_in_block): New. - (new_label_mapper): New. - (move_sese_region_to_fn): Copy eh information to the new function - properly. - * tree-inline.c (copy_cfg_body): Update for new duplicate_eh_regions - argument. - * tree-pretty-print.c (dump_generic_node): Dump RESX_EXPR region - number. - -2006-03-22 Richard Sandiford - - * doc/md.texi (-mshared): Mention that -mshared code can be linked - into shared libraries. - -2006-03-22 Richard Sandiford - - * doc/md.texi: Refer to i386/constraints.md instead of - i386/predicates.md. - * config/i386/constraints.md: New file, extracted from... - * config/i386/predicates.md: ...here. - * config/i386/i386.md: Include constraints.md. - -2006-03-21 Jason Merrill - - * builtins.c (expand_builtin_fork_or_exec): Fix pasto. - - PR middle-end/20297 - * expr.c (init_block_move_fn): Force default visibility. - (init_block_clear_fn): Likewise. - * builtins.c (expand_builtin_fork_or_exec): Likewise. - * targhooks.c (default_external_stack_protect_fail): Likewise. - -2006-03-21 Richard Sandiford - - * config/mips/predicates.md (const_call_insn_operand): Allow direct - calls to locally-defined functions if TARGET_ABSOLUTE_ABICALLS. - * config/mips/mips.md (jal_macro): Test TARGET_ABSOLUTE_ABICALLS. - Use TARGET_OLDABI instead of !TARGET_NEWABI. - (loadgp): Use mips_current_loadgp_style. - (loadgp_noshared): New pattern. - (sibcall_internal): Use MIPS_CALL. - (sibcall_value_internal): Likewise. - (sibcall_value_multiple_internal): Likewise. - (call_internal): Likewise. - (call_value_internal): Likewise. - (call_value_multiple_internal): Likewise. - (call_split): Use MIPS_CALL and add an 'S' constraint. - (call_value_split): Likewise. - (call_value_multiple_split): Likewise. - * config/mips/mips.opt (-mabicalls): Tweak docstring. - (-mshared): New option. - * config/mips/mips-protos.h (mips_loadgp_style): New enum. - (mips_current_loadgp_style): Declare. - * config/mips/mips.c (mips_classify_symbol): Avoid using - SYMBOL_GOT_LOCAL if TARGET_ABSOLUTE_ABICALLS. Use SYMBOL_GENERAL - rather than SYMBOL_GOT_GLOBAL for locally-binding symbols if - TARGET_ABSOLUTE_ABICALLS. - (override_options): Adjust comments. Improve the warning that is - issued when -mabicalls and -G are used together. - (mips_file_start): Remove comment. - (mips_current_loadgp_style): New function. - (mips_gnu_local_gp): New variable. - (mips_emit_loadgp): Use mips_current_loadgp_style. Handle - LOADGP_ABSOLUTE. - (mips_output_function_prologue): Use mips_current_laodgp_style. - (mips_expand_prologue): Call mips_emit_loadgp before emitting - the cprestore instruction. - (mips_extra_live_on_entry): Fix reversed test. Don't make $25 - live for TARGET_ABSOLUTE_ABICALLS. - * config/mips/mips.h (TARGET_ABSOLUTE_ABICALLS): New macro. - (ASM_SPEC): Pass down -mshared and -mno-shared. - (MIPS_CALL): New macro. - * config/mips/netbsd.h (TARGET_OS_CPP_BUILTINS): Remove __ABICALLS__ - definition. - * doc/invoke.texi (-mabicalls): Update documentation. - (-mshared): Document. - -2006-03-21 Steve Ellcey - - * config/ia64/unwind-hpux.c: New file. - * config/ia64/t-hpux: Add unwind-hpux.c to libgcc. - -2006-03-21 Steve Ellcey - - PR libgomp/26384 - * config/pa/pa64-hpux.h (LIB_SPEC): Fix for -mt and -pthread options. - -2006-03-21 Jeff Law - - * tree-vrp.c (extract_range_from_unary_expr): Derive ranges for - type conversions of a VR_VARYING source to a wider type. - -2006-03-21 Eric Botcazou - - * config.gcc (i[34567]86-*-solaris2*): Add config/sol2-10.h to - tm_file on Solaris 10 and later. - (sparc64-*-solaris2*): Likewise. - (sparc-*-solaris2*): Likewise. - * config/sol26.h: Rename to config/sol2-6.h. - * config/sol2-10.h: New file. - -2006-03-21 Andrew Pinski - - PR tree-opt/26781 - * tree-ssa-pre.c (create_component_ref_by_pieces): - Handle STRING_CST. - -2006-03-21 Jakub Jelinek - - PR c++/26690 - * tree.c (get_callee_fndecl): If CALL is error_mark_node, - return it immediately. - -2006-03-21 Michael Matz - - * genautomata.c (, num_out_arcs, presence_signature): - New members. - (remove_arc, add_arc): Update num_out_arcs member. - (set_out_arc_insns_equiv_num): Returns nothing instead of number - of out arcs. - (cache_presence): New function. - (compare_states_for_equiv): New function. - (state_is_differed): Don't take number of outargs, adjust callers. - Use new invariant for speeding up. - (init_equiv_class): Create initial classes based on sorted - input. - (partition_equiv_class): Don't track out_arcs_num. - (evaluate_equiv_classes): Call cache_presence on all states and - sort them. - -2006-03-21 Bernd Schmidt - - * config/bfin/bfin-protos.h (bfin_dsp_memref_p): Declare. - * config/bfin/bfin.c (bfin_dsp_memref_p): New function. - (bfin_valid_reg_p): Test for pseudos explicitly and use only - REGNO_MODE_CODE_OK_FOR_BASE_P. New args MODE and OUTER_CODE; all - callers changed. - * config/bfin/bfin.h (PREG_P): Use P_REGNO_P. - (IREG_P, P_REGNO_P, I_REGNO_P): New macros. - (enum reg_class, REG_CLASS_CONTENTS): Add IPREGS. - (BASE_REG_CLASS, REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, - REGNO_OK_FOR_BASE_STRICT_P, REGNO_OK_FOR_BASE_NONSTRICT_P): Delete - macros. - (IREG_POSSIBLE_P, MODE_CODE_BASE_REG_CLASS, - REGNO_MODE_CODE_OK_FOR_BASE_P): New macros. - (REGNO_REG_CLASS): ARGP is in PREGS. - * config/bfin/bfin.md (movhi_insn): Allow for addresses containing - IREGS. - (zero_extendhisi2, extendhisi2): Likewise; changed to define_and_split - to deal with those addresses. - * addresses.h: New file. - * caller-save.c: Include "addresses.h". - (init_caller_save): Use new base_reg_class function. - * rtl-factoring.c: Include "addresses.h". - (recompute_gain_for_pattern_seq): Use new function ok_for_base_p_1. - * recog.c: Include "addresses.h". - (preprocess_constraints): Use new base_reg_class function. - * regrename.c: Include "addresses.h". - (scan_rtx_address): Use new regno_ok_for_base_p and base_reg_class - functions. Keep track of a new var INDEX_CODE to compute valid - classes. - (replace_oldest_value_addr): Likewise. - (replace_oldest_value_mem): Use base_reg_class. - * reload.c: Include "addresses.h". - (REGNO_MODE_OK_FOR_BASE_P, REG_MODE_OK_FOR_BASE_P): Delete macros. - (find_reloads): Use new base_reg_class function. - (find_reloads_address): Likewise; also use regno_ok_for_base_p. - (find_reloads_address_1): Likewise. New args OUTER_CODE and INDEX_CODE; - all callers and prototype changed. - * reload1.c: Include "addresses.h". - (maybe_fix_stack_asms): Use base_reg_class. - * regclass.c: Include "addresses.h". - (ok_for_index_p_nonstrict, ok_for_base_p_nonstrict): New functions. - (init_reg_autoinc): Use new base_reg_class function. - (record_reg_classes): Likewise. - (record_address_regs): Delete arg CLASS; add args CONTEXT, MODE, - OUTER_CODE and INDEX_CODE. All callers and prototype changed. - Use new args to compute necessary class. - - * Makefile.in (regclass.o, reload.o, reload1.o, caller-save.o, recog.o, - regrename.o, rtl-factoring.o): Update dependencies. - * doc/tm.texi (MODE_CODE_BASE_REG_CLASS): Document. - (REGNO_MODE_CODE_OK_FOR_BASE_P): Likewise. - (REG_OK_FOR_BASE_P, REG_MODE_OK_FOR_BASE_P, REG_MODE_OK_FOR_REG_BASE_P, - REG_OK_FOR_INDEX_P): Delete documentation. - -2006-03-21 Alexey Starovoytov - - * config.gcc (sparc-*-solaris2*): Change the default CPU setting - from V7 to V9 for Solaris 7 and above. - -2006-03-21 Toon Moene - - * doc/invoke.texi: Document new flag -fargument-noalias-anything. - * tree-ssa-alias.c (may_alias_p): If flag_argument_noalias > 2, - argument pointers may not alias any other storage. - * common.opt: Define option -fargument-noalias-anything. - * tree-ssa-structalias.c (intra_create_variable_infos): Fortran - alias semantics is specified by flag_argument_noalias > 2. - -2006-03-20 Jeff Law - - * tree-pass.h (pass_phi_only_copy_prop): Delete. - (pass_phi_only_cprop): Declare. - * passes.c (init_optimization_passes): Replace pass_phi_only_copy_prop - with phi_only_cprop - * tree-ssa-dom.c (degenerate_phi_result): New function. - (remove_stmt_or_phi, get_lhs_or_phi_result): Likewise. - (get_rhs_or_phi_arg, propagate_rhs_into_lhs): Likewise. - (eliminate_const_or_copy, eliminate_degenerate_phis_1): Likewise. - (eliminate_degenerate_phis): Likewise. - (pass_phi_only_cprop): New pass descriptor. - * tree-ssa-copy.c (init_copy_prop): Lose PHIS_ONLY argument and - support code. Callers updated. - (execute_copy_prop, do_copy_prop): Likewise and corresponding changes. - (store_copy_prop): Likewise. - (do_phi_only_copy_prop, pass_phi_only_copy_prop): Remove. - -2006-03-20 Jason Merrill - - PR c++/21764 - * c-pragma.c (visstack): Move out of handle_pragma_visibility. - (push_visibility, pop_visibility): Likewise. - * c-pragma.h: Declare them. - -2006-03-20 Kaz Kojima - - * config/sh/sh.c (untangle_mova): Initialize n_addr and n_target. - - * config/sh/sh.c (find_regmode_weight): Change the type of the first - parameter and use get_ebb_head_tail. - (sh_md_init_global): Adjust uses of find_regmode_weight. - -2006-03-20 Steven Bosscher - - * function.h (struct function) : - Rename to x_stack_check_probe_note. - (tail_recursion_reentry): Rename to stack_check_probe_note. - * function.c: Replace tail_recursion_reentry with - stack_check_probe_note everywhere. - (expand_function_start): Only emit a note for - stack_check_probe_note with -fstack-protect. - * stmt.c (expand_case): Don't emit NOTE_INSN_DELETED notes. - - * emit-rtl.c (remove_unnecessary_notes): Remove. - (pass_remove_unnecessary_notes): Remove. - * rtl.h (remove_unnecessary_notes): Remove prototype. - * final.c (final_start_function): Don't call remove_unnecessary_notes. - * tree-pass.h (pass_remove_unnecessary_notes): Remove. - * passes.c (pass_remove_unnecessary_notes): Don't run it. - -2006-03-20 Andrew Pinski - - PR tree-opt/26629 - * tree-ssa-pre (phi_translate): Handle ARRAY_REF's operands. - (valid_in_set): Handle ARRAY_REF. - Change "if min_variant or VH" to asserts. - (create_component_ref_by_pieces): Handle ARRAY_REF. - (create_expression_by_pieces): Likewise. - (can_PRE_operation): ARRAY_REFs can now be PRE'd. - -2006-03-20 David Edelsohn - - * genpreds.c (write_insn_extra_address_constraint): Argument `c' - is operand of switch, not str[0]. - -2006-03-20 Alan Modra - - * config/rs6000/rs6000.c (rs6000_handle_option): Use - TARGET_NO_FP_IN_TOC inside #ifdef TARGET_USES_SYSV4_OPT too. - -2006-03-19 David Edelsohn - - * genpreds.c (write_tm_preds_h): Add semicolon and newline at - end of insn_extra_address_constraint declaration. - -2006-03-19 David Edelsohn - - * config/rs6000/rs6000.opt (no-fp-in-toc): Use Var not Mask. - (no-sum-in-toc): Same. - * config/rs6000/rs6000.c (rs6000_handle_option): Use new - variables. - * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Set - NO_FP_IN_TOC for -fPIC instead of mask. - - * config/rs6000/t-aix43 (T_ADAFLAGS): Delete. - (BOOT_LDFLAGS): Delete. - (LDFLAGS): Delete. - * config/rs6000/t-aix52: Same. - - * config/rs6000/rs6000.md (store_multiple_power): Delete. - (stmsi[345678]_power): New. - -2006-03-17 Steve Ellcey - - * config/ia64/ia64.opt: Add empty line to end of file. - -2006-03-17 Richard Guenther - - PR middle-end/26721 - * builtins.c (get_pointer_alignment): For component style references - adjust alignment to the component type alignment. Make sure - to adjust alignment for component access of constants. - -2006-03-17 David Edelsohn - - * config/rs6000/rs6000.md (strlensi): Emit barrier after - unconditional jump. - -2006-03-17 Paul Brook - - * doc/install.texi: Docuemnt --with-mode. - * config.gcc: Add --with-mode for arm*-*-*. - * config/arm/arm.h (OPTION_DEFAULT_SPECS): Add "mode". - -2006-03-17 J"orn Rennecke - - * sh.c (max_labelno_before_reorg): New variable. - (sh_reorg): Initialize it. - (find_barrier): Check max_labelno_before_reorg before using - label_to_alignment. Take length of explicit alignment insns - into account. When seeing a UNSPECV_CONST_END, return it. - - * sh.c (fixup_mova): Set mode of affected label to QImode. - (untangle_mova): New function. - (find_barrier): Use it. Check mode of label before decrementing - num_mova. - (sh_reorg): Likewise. - Set mode of all insns back to VOIDmode. - - * sh.c (MOVA_LABELREF): New macro. - (mova_p, fixup_mova, sh_reorg): Use it. - (find_barrier, sh_reorg): Don't count num_mova back to 0 unless - ADDR_DIFF_VEC matches mova. - -2006-03-17 Steven Bosscher - - * dwarf2asm.c (dw2_asm_output_offset): Mark 'base' argument - with ATTRIBUTE_UNUSED. - -2006-03-17 Alexandre Oliva - - * dwarf2out.c (dwarf2out_stack_adjust): Always track the stack - pointer, instead of assuming it is possible to derive the - correct args size from a call insn. - -2006-03-16 Jan-Benedict Glaw - - * rtl.h (CONST_INT_P): Define. - * config/vax/vax.c (print_operand_address): Use CONST_INT_P() - instead of GET_CODE(x) == CONST_INT. - (vax_rtx_costs): Likewise. - (vax_output_int_move): Likewise. - (vax_output_int_add): Likewise. - (legitimate_constant_address_p): Likewise. - (index_term_p): Likewise. - * config/vax/vax.h (PRINT_OPERAND): Likewise. - * config/vax/vax.md (and3): Likewise. - (ashrsi3): Likewise. - (extv): Likewise. - (movstricthi): Likewise. - (movstrictqi): Likewise. - (rotrsi3): Likewise. - (five unnamed insns): Likewise. - -2006-03-16 Geoffrey Keating - - * doc/tm.texi (SDB and DWARF): Add extra parameter to - ASM_OUTPUT_DWARF_OFFSET. Use @var to indicate metavariables. - * dwarf2asm.h (dw2_asm_output_offset): Add section parameter. - * dwarf2asm.c (dw2_asm_output_offset): Add base section parameter. - Pass to ASM_OUTPUT_DWARF_OFFSET. - * dwarf2out.c (debug_frame_section): New. - (output_call_frame_info): Use debug_frame_section. Pass it to - dw2_asm_output_offset. - (output_die): Pass appropriate section to dw2_asm_output_offset. - (output_compilation_unit_header): Likewise. - (output_pubnames): Likewise. - (output_aranges): Likewise. - (enum dw_val_class): Break dw_val_class_lbl_offset into - dw_val_class_lineptr and dw_val_class_macptr. - (add_AT_lbl_offset): Delete. - (add_AT_lineptr): New. - (add_AT_macptr): New. - (AT_lbl): Expect a lineptr or macptr. - (print_die): Handle dw_val_class_lineptr and dw_val_class_macptr. - (attr_checksum): Likewise. - (same_dw_val_p): Likewise. - (size_of_die): Likewise. - (value_format): Likewise. - (output_die): Likewise. - (dwarf2out_finish): Call add_AT_lineptr and add_AT_macptr instead of - add_AT_lbl_offset. - * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add extra parameter. - * config/i386/i386.c (x86_file_start): Call darwin_file_start. - * config/darwin-protos.h (darwin_file_start): New. - (darwin_asm_output_dwarf_offset): New. - * config/ia64/ia64.h (ASM_OUTPUT_DWARF_OFFSET): Add extra parameter. - * config/rs6000/rs6000.c (rs6000_darwin_file_start): Call - darwin_file_start. - * config/darwin.c (darwin_emit_unwind_label): Don't output label - if not EH section; simplify. - (darwin_file_start): New. - (darwin_asm_output_dwarf_offset): New. - * config/darwin.h (DEBUG_FRAME_SECTION): In __DWARF segment, - mark as 'debug'. - (DEBUG_INFO_SECTION): Likewise. - (DEBUG_ABBREV_SECTION): Likewise. - (DEBUG_ARANGES_SECTION): Likewise. - (DEBUG_MACINFO_SECTION): Likewise. - (DEBUG_LINE_SECTION): Likewise. - (DEBUG_LOC_SECTION): Likewise. - (DEBUG_PUBNAMES_SECTION): Likewise. - (DEBUG_STR_SECTION): Likewise. - (DEBUG_RANGES_SECTION): Likewise. - (FRAME_BEGIN_LABEL): Must start with 'L' in debug section. - (ASM_OUTPUT_DWARF_OFFSET): New. - -2006-03-16 Joseph S. Myers - - * config.gcc (tm_defines): Always add to previous value rather - than replacing it. - -2006-03-16 Richard Sandiford - - * config/mips/predicates.md (splittable_const_int_operand): New, - split from move_operand. - (splittable_symbolic_operand): New. - (move_operand): Add commentary. Use splittable_const_int_operand. - Inline mips_atomic_symbolic_constant_p. - * config/mips/mips.md: Add combine splitters for handling moves - of splittable_const_int_operands and splittable_symbolic_operands. - * config/mips/mips-protos.h (mips_atomic_symbolic_constant_p): Delete. - (mips_split_symbol): Declare. - (mips_move_integer): Declare. - * config/mips/mips.c (mips_split_p): Make global. - (TARGET_MIN_ANCHOR_OFFSET): Override default. - (TARGET_MAX_ANCHOR_OFFSET): Likewise. - (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Likewise. - (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Likewise. - (mips_offset_within_object_p): Handle block symbols. - (mips_atomic_symbolic_constant_p): Delete. - (mips_cannot_force_const_mem): Return false for constants that - mips_legitimize_move can handle. - (mips_use_blocks_for_constant_p): New function. - (mips_split_symbol): Make global. - (mips_move_integer): Likewise. Add a temporary register argument. - (mips_legitimize_const_move): Use splittable_const_int_operand and - splittable_symbolic_operand. - (mips_use_anchors_for_symbol_p): New function. - * config/mips/mips.h: Protect externs with !USED_FOR_TARGET. - (mips_split_p): Declare. - -2006-03-16 Richard Sandiford - - * config.gcc (mips64*-*-linux*): Keep existing tm_defines. - (mips*-*-linux*): Likewise. - -2006-03-16 Roger Sayle - Daniel Speyer - - PR middle-end/18259 - * tree-dump.c (dump_real): New function. - (dequeue_and_dump) : Use it to dump FP constants. - * Makefile.in (REAL_H): New macro for dependencies on real.h. - (tree-dump.o): Add $(REAL_H) to the dependencies. - -2006-03-16 Roger Sayle - - PR middle-end/21781 - * real.c (real_from_string): If the mantissa is zero, don't bother - parsing the exponent as the result should always be zero. - -2006-03-16 Andreas Krebbel - - * simplify-rtx.c (simplify_plus_minus): Simplify within CONST terms. - -2006-03-16 Maxim Kuvyrkov - - * config/ia64/ia64.c (stops_p): Added explicit initialization. - (ia64_first_cycle_multipass_dfa_lookahead_guard_spec, - ia64_h_i_d_extended, ia64_set_sched_flags, ia64_speculate_insn, - ia64_needs_block_p, ia64_gen_check, ia64_sched_init_global, - ia64_sched_finish_global): New static functions to implement - hooks from gcc_target.sched. - (spec_check_no, max_uid, pending_data_specs): New static variables. - (ia64_mode_to_int, ia64_gen_spec_insn, ia64_spec_check_p, - ia64_spec_check_src_p): New static functions. - (ia64_adjust_cost): Renamed to ia64_adjust_cost_2. - (TARGET_SCHED_ADJUST_COST): Removed. - (TARGET_SCHED_ADJUST_COST_2, TARGET_SCHED_INIT_GLOBAL, - TARGET_SCHED_FINISH_GLOBAL, TARGET_SCHED_H_I_D_EXTENDED, - TARGET_SCHED_SPECULATE_INSN, TARGET_SCHED_NEEDS_BLOCK_P, - TARGET_SCHED_GEN_CHECK, - TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC, - TARGET_SCHED_SET_SCHED_FLAGS): New macros. - (update_set_flags, group_barrier_needed, set_src_needs_barrier): - Fixed to handle speculation checks. - (rtx_needs_barrier): Fixed to handle speculative loads and - their checks. - (ia64_variable_issue): Added code to count speculative loads and their - checks. - (ia64_first_cycle_multipass_dfa_lookahead_guard): Fixed to handle - speculative loads. - (enum SPEC_MODES, enum SPEC_GEN_LD_MAP, SPEC_GEN_CHECK_OFFSET): - New enumerations. - (SPEC_GEN_EXTEND_OFFSET, SPEC_N, SPEC_GEN_CHECK_MUTATION_OFFSET): - New constants. - (ia64_ld_address_bypass_p): Fixed to handle speculative loads. - (ia64_reorg): Reset stops_p to NULL after it is freed. - * config/ia64/ia64.md (UNSPEC_LDA, UNSPEC_LDS, UNSPEC_LDSA, - UNSPEC_LDCCLR, UNSPEC_CHKACLR, UNSPEC_CHKS): New constants. - (itanium_class): chk_s renamed to chk_s_i. New constants: chk_s_f, - chk_a. - (data_speculative, control_speculative, check_load): New attributes. - (mov_advanced, mov_speculative, - mov_speculative_advanced, zero_extenddi2_advanced, - zero_extenddi2_speculative, - zero_extenddi2_speculative_advanced): New patterns for - data and control speculative loads. - (mov_clr, zero_extenddi2_clr): New patterns for - check loads. - (advanced_load_check_clr_, speculation_check_): - New pattern for data and control speculation checks. - (MODE, MODE_FOR_EXTEND, output_a, output_s, output_sa, output_c_clr, - ld_reg_constr, ldc_reg_constr, chk_reg_constr, mem_constr, - reg_pred_prefix, ld_class, chka_class, chks_class, attr_yes): - Auxiliary definitions for the patterns. - * config/ia64/itanium1.md (1_fldc, 1_fldpc, 1_ldc, 1_chk_s_f, 1_chk_a, - 1b_fldc, 1b_fldpc, 1b_ldc, 1b_chk_s_f, 1b_chk_a): New resource - constraints. - (1_fld, 1_fldp, 1_ld, 1b_fld, 1b_fldp, 1b_ld): Add a condition - for speculation. - (1_chk_s, 1b_chk_s): Renamed to 1_chk_s_i, 1b_chk_s_i. - * config/ia64/itanium2.md (2_flda, 2_fldc, 2_fldpc, 2_ldc, 2_chk_s_f, - 2_chk_a, 2b_flda, 2b_fldc, 2b_fldpc, 2b_ldc, 2b_chk_s_f, 2b_chk_a): - New resource constraints. - (2_fld, 2_fldp, 2_ld, 2b_fld, 2b_fldp, 2b_ld): Add a condition - for speculation. - (2_chk_s, 2b_chk_s): Renamed to 2_chk_s_i, 2b_chk_s_i. - * config/ia64/ia64.opt (msched-br-data-spec, msched-ar-data-spec, - msched-control-spec, msched-br-in-data-spec, msched-ar-in-data-spec, - msched-in-control-spec, msched-ldc, msched-control-ldc, - msched-spec-verbose, msched-prefer-non-data-spec-insns, - msched-prefer-non-control-spec-insns, - msched-count-spec-in-critical-path): New flags to tune speculative - scheduling. - * doc/invoke.texi (msched-br-data-spec, msched-ar-data-spec, - msched-control-spec, msched-br-in-data-spec, msched-ar-in-data-spec, - msched-in-control-spec, msched-ldc, msched-control-ldc, - msched-spec-verbose, msched-prefer-non-data-spec-insns, - msched-prefer-non-control-spec-insns, - msched-count-spec-in-critical-path): Document new flags. - -2006-03-16 Maxim Kuvyrkov - - * target.h (struct spec_info_def): New opaque declaration. - (struct gcc_target.sched): New fields: adjust_cost_2, h_i_d_extended, - speculate_insn, needs_block_p, gen_check, - first_cycle_multipass_dfa_lookahead_guard_spec, set_sched_flags. - * target-def.h (TARGET_SCHED_ADJUST_COST_2, - TARGET_SCHED_H_I_D_EXTENDED, TARGET_SCHED_SPECULATE_INSN, - TARGET_SCHED_NEEDS_BLOCK_P, TARGET_SCHED_GEN_CHECK, - TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC, - TARGET_SCHED_SET_SCHED_FLAGS): New macros to initialize fields in - gcc_target.sched. - (TARGET_SCHED): Use new macros. - * rtl.h (copy_DEPS_LIST_list): New prototype. - * sched-int.h (struct sched_info): Change signature of new_ready field, - adjust all initializations. New fields: add_remove_insn, - begin_schedule_ready, add_block, advance_target_bb, fix_recovery_cfg, - region_head_or_leaf_p. - (struct spec_info_def): New structure declaration. - (spec_info_t): New typedef. - (struct haifa_insn_data): New fields: todo_spec, done_spec, check_spec, - recovery_block, orig_pat. - (glat_start, glat_end): New variables declaraions. - (TODO_SPEC, DONE_SPEC, CHECK_SPEC, RECOVERY_BLOCK, ORIG_PAT): - New access macros. - (enum SCHED_FLAGS): New constants: SCHED_RGN, SCHED_EBB, - DETACH_LIFE_INFO, USE_GLAT. - (enum SPEC_SCHED_FLAGS): New enumeration. - (NOTE_NOTE_BB_P): New macro. - (extend_dependency_caches, xrecalloc, unlink_bb_notes, add_block, - attach_life_info, debug_spec_status, check_reg_live): New functions. - (get_block_head_tail): Change signature to get_ebb_head_tail, adjust - all uses in ddg.c, modulo-sched.c, haifa-sched.c, sched-rgn.c, - sched-ebb.c - (get_dep_weak, ds_merge): Prototype functions from sched-deps.c . - * ddg.c (get_block_head_tail): Adjust all uses. - * modulo-sched.c (get_block_head_tail): Adjust all uses. - (sms_sched_info): Initialize new fields. - (contributes_to_priority): Removed. - * haifa-sched.c (params.h): New include. - (get_block_head_tail): Adjust all uses. - (ISSUE_POINTS): New macro. - (glat_start, glat_end): New global variables. - (spec_info_var, spec_info, added_recovery_block_p, nr_begin_data, - nr_be_in_data, nr_begin_control, nr_be_in_control, bb_header, - old_last_basic_block, before_recovery, current_sched_info_var, - rgn_n_insns, luid): New static variables. - (insn_cost1): New function. Move logic from insn_cost to here. - (find_insn_reg_weight1): New function. Move logic from - find_insn_reg_weight to here. - (reemit_notes, move_insn, max_issue): Change signature. - (move_insn1): Removed. - (extend_h_i_d, extend_ready, extend_global, extend_all, init_h_i_d, - extend_bb): New static functions to support extension of scheduler's - data structures. - (generate_recovery_code, process_insn_depend_be_in_spec, - begin_speculative_block, add_to_speculative_block, - init_before_recovery, create_recovery_block, create_check_block_twin, - fix_recovery_deps): New static functions to support - generation of recovery code. - (fix_jump_move, find_fallthru_edge, dump_new_block_header, - restore_bb_notes, move_block_after_check, move_succs): New static - functions to support ebb scheduling. - (init_glat, init_glat1, attach_life_info1, free_glat): New static - functions to support handling of register live information. - (associate_line_notes_with_blocks, change_pattern, speculate_insn, - sched_remove_insn, clear_priorities, calc_priorities, bb_note, - add_jump_dependencies): New static functions. - (check_cfg, has_edge_p, check_sched_flags): New static functions for - consistancy checking. - (debug_spec_status): New function to call from debugger. - (priority): Added code to handle speculation checks. - (rank_for_schedule): Added code to distinguish speculative instructions. - (schedule_insn): Added code to handle speculation checks. - (unlink_other_notes, rm_line_notes, restore_line_notes, rm_other_notes): - Fixed to handle ebbs. - (move_insn): Added code to handle ebb scheduling. - (max_issue): Added code to use ISSUE_POINTS of instructions. - (choose_ready): Added code to choose between speculative and - non-speculative instructions. - (schedule_block): Added code to handle ebb scheduling and scheduling of - speculative instructions. - (sched_init): Initialize new variables. - (sched_finish): Free new variables. Print statistics. - (try_ready): Added code to handle speculative instructions. - * lists.c (copy_DEPS_LIST_list): New function. - * sched-deps.c (extend_dependency_caches): New function. Move logic - from create_dependency_caches to here. - (get_dep_weak, ds_merge): Make global. - * genattr.c (main): Code to output prototype for - dfa_clear_single_insn_cache. - * genautomata.c (DFA_CLEAR_SINGLE_INSN_CACHE_FUNC_NAME): New macros. - (output_dfa_clean_insn_cache_func): Code to output - dfa_clear_single_insn_cache function. - * sched-ebb.c (target_n_insns): Remove. Adjust all users to use - n_insns. - (can_schedule_ready_p, fix_basic_block_boundaries, add_missing_bbs): - Removed. - (n_insns, dont_calc_deps, ebb_head, ebb_tail, last_bb): - New static variables. - (begin_schedule_ready, add_remove_insn, add_block1, advance_target_bb, - fix_recovery_cfg, ebb_head_or_leaf_p): Implement hooks from - struct sched_info. - (ebb_sched_info): Initialize new fields. - (get_block_head_tail): Adjust all uses. - (compute_jump_reg_dependencies): Fixed to use glat_start. - (schedule_ebb): Code to remove unreachable last block. - (schedule_ebbs): Added code to update register live information. - * sched-rgn.c (region_sched_info): Initialize new fields. - (get_block_head_tail): Adjust all uses. - (last_was_jump): Removed. Adjust users. - (begin_schedule_ready, add_remove_insn, insn_points, extend_regions, - add_block1, fix_recovery_cfg, advance_target_bb, region_head_or_leaf_p): - Implement new hooks. - (check_dead_notes1): New static function. - (struct region): New fields: dont_calc_deps, has_real_ebb. - (RGN_DONT_CALC_DEPS, RGN_HAS_REAL_EBB): New access macros. - (BB_TO_BLOCK): Fixed to handle EBBs. - (EBB_FIRST_BB, EBB_LAST_BB): New macros. - (ebb_head): New static variable. - (debug_regions, contributes_to_priority): Fixed to handle EBBs. - (find_single_block_regions, find_rgns, find_more_rgns): Initialize - new fields. - (compute_dom_prob_ps): New assertion. - (check_live_1, update_live_1): Fixed to work with glat_start instead of - global_live_at_start. - (init_ready_list): New assertions. - (can_schedule_ready_p): Split update code to begin_schedule_ready. - (new_ready): Add support for BEGIN_CONTROL speculation. - (schedule_insns): Fixed code that updates register live information - to handle EBBs. - (schedule_region): Fixed to handle EBBs. - (init_regions): Use extend_regions and check_dead_notes1. - * params.def (PARAM_MAX_SCHED_INSN_CONFLICT_DELAY, - PARAM_SCHED_SPEC_PROB_CUTOFF): New parameters. - * doc/tm.texi (TARGET_SCHED_ADJUST_COST_2, TARGET_SCHED_H_I_D_EXTENDED, - TARGET_SCHED_SPECULATE_INSN, TARGET_SCHED_NEEDS_BLOCK_P, - TARGET_SCHED_GEN_CHECK, - TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC, - TARGET_SCHED_SET_SCHED_FLAGS): Document. - * doc/invoke.texi (max-sched-insn-conflict-delay, - sched-spec-prob-cutoff): Document. - -2006-03-16 Maxim Kuvyrkov - - * sched-int.h (struct haifa_insn_data): New fields: resolved_deps, - inter_tick, queue_index. - (struct sched_info): Change signature of init_ready_list field. - Adjust all initializations. - (RESOLVED_DEPS): New access macro. - (ready_add): Remove prototype. - (try_ready): Add prototype. - * sched-rgn.c (init_ready_list): Use try_ready. - (schedule_region): Initialize - current_sched_info->{sched_max_insns_priority, queue_must_finish_empty}. - * sched-ebb.c (new_ready): Remove. Adjust ebb_sched_info. - (init_ready_list): Use try_ready. - (schedule_ebb): Initialize current_sched_info->sched_max_insns_priority. - * lists.c (remove_list_elem): Remove `static'. - (remove_free_INSN_LIST_elem): New function. - * rtl.h (remove_list_elem, remove_free_INSN_LIST_elem): Add prototypes. - * haifa-sched.c (INTER_TICK, QUEUE_INDEX): New macros. - (INVALID_TICK, MIN_TICK, QUEUE_SCHEDULED, QUEUE_NOWHERE, QUEUE_READY): - New constants. - (readyp): New variable. - (queue_remove, ready_remove_insn, fix_inter_tick, fix_tick_ready, - change_queue_index, resolve_dep): New static functions. - (try_ready): New function. Adjust callers in sched-rgn.c and - sched-ebb.c to use it instead of ready_add. - (clock_var): Move at the begining of file. - (rank_for_schedule): Fix typo. - (queue_insn): Add assertion. Handle QUEUE_INDEX. - (ready_lastpos): Enforce assertion. - (ready_add): Make it static. Handle QUEUE_INDEX. Add new argument, - update all callers. - (ready_remove_first, ready_remove): Handle QUEUE_INDEX. - (schedule_insn): Rewrite to use try_ready and resolve_dep. - (queue_to_ready): Use free_INSN_LIST_list. - (early_queue_to_ready): Fix typo. - (schedule_block): Init readyp. Move init_ready_list call after the - initialization of clock_var. Fix error in rejecting insn by - targetm.sched.dfa_new_cycle. Add call to fix_inter_tick. Remove code - that previously corrected INSN_TICKs. Add code for handling - QUEUE_INDEX. - (set_priorities): Fix typo. - (sched_init): Initialize INSN_TICK, INTER_TICK and QUEUE_INDEX. - Clarify comment and code that keeps current_sched_info->next_tail - non-null. - -2006-03-16 Maxim Kuvyrkov - - * sched-rgn.c (extend_rgns): New static function. - (find_rgns): Use it. - (gather_region_statistics, print_region_statistics): New static - functions. - * params.def (PARAM_MAX_SCHED_EXTEND_REGIONS_ITERS): New parameter. - * doc/invoke.texi (max-sched-extend-regions-iters): Document. - -2006-03-16 Maxim Kuvyrkov - Andrey Belevantsev - - * ddg.c (build_intra_loop_deps): Adjust add_forward_dependence call. - * lists.c (unused_deps_list): New variable. - (free_list): Add assertions to verify the proper distinguishing - between INSN_LISTs and DEPS_LISTs. - (find_list_elem, remove_list_elem, remove_list_node): New static - functions. - (alloc_DEPS_LIST, free_DEPS_LIST, free_DEPS_LIST_node, - remove_free_INSN_LIST_elem, remove_free_DEPS_LIST_elem, - remove_free_INSN_LIST_node, remove_free_DEPS_LIST_node): New functions. - (alloc_INSN_LIST): Assert that the list we're working on is indeed - an INSN_LIST. - (free_INSN_LIST_node): Likewise. - * modulo-sched.c (current_sched_info): Initialize flags field. - * reg-notes.def: Exchange DEP_ANTI and DEP_OUTPUT. - * rtl.def (DEPS_LIST): Define. - * rtl.h: Declare new functions from lists.c. - * sched-deps.c (spec_dependency_cache): New static variable. - (maybe_add_or_update_back_dep_1, add_back_dep): New static functions. - (add_dependence): Change return type to void. Move the logic to ... - (add_or_update_back_dep_1): ... here. Handle speculative dependencies. - (delete_all_dependences): Add comment about forward_dependency_cache. - Handle spec_dependency_cache. Handle DEPS_LISTs. - (fixup_sched_groups): Clarify the change of priority of output - and anti dependencies. - (sched_analyze_2): Adjust add_dependence calls to create data - speculative dependence. - (add_forward_dependence): Renamed to add_forw_dep, change prototype. - Adjust all callers. Handle DEPS_LISTS. - (compute_forward_dependences): Use add_forw_dep. Sort LOG_LINKs in - presence of speculation. - (init_dependency_caches, free_dependency_caches): - Handle spec_dependency_cache. - (adjust_add_sorted_back_dep, adjust_back_add_forw_dep, delete_forw_dep, - estimate_dep_weak, get_dep_weak, ds_merge, check_dep_status): - New static functions. - (add_or_update_back_dep, add_or_update_back_forw_dep, - add_back_forw_dep, delete_back_forw_dep): New functions. - * sched-int.h (ds_t, dw_t): New typedefs. - (struct sched_info): Add new field flags. - (struct haifa_insn_data): Add new bitfield has_internal_dep. - Prototype new sched-deps.c functions. - (HAS_INTERNAL_DEP, DEP_STATUS): New access macros. - (BITS_PER_DEP_STATUS, BITS_PER_DEP_WEAK, DEP_WEAK_MASK, MAX_DEP_WEAK, - MIN_DEP_WEAK, NO_DEP_WEAK, UNCERTAIN_DEP_WEAK, BEGIN_DATA, BE_IN_DATA, - BEGIN_CONTROL, BE_IN_CONTROL, BEGIN_SPEC, DATA_SPEC, CONTROL_SPEC, - SPECULATIVE, BE_IN_SPEC, FIRST_SPEC_TYPE, LAST_SPEC_TYPE, - SPEC_TYPE_SHIFT, DEP_TRUE, DEP_OUTPUT, DEP_ANTI, DEP_TYPES, HARD_DEP): - New constants. - (enum SPEC_TYPES_OFFSETS, enum DEPS_ADJUST_RESULT, enum SCHED_FLAGS): - New enums. - * sched-rgn.c (current_sched_info): Initialize flags field. - (schedule_insns): Initialize current_sched_info before the sched_init - call. - * sched-ebb.c (current_sched_info): Initialize flags field. - (add_deps_for_risky_insns): Use control_flow_insn_p instead of JUMP_P. - Call add_or_update_back_dep instead of add_dependence. - Create control speculative dependencies. - (schedule_insns): Initialize current_sched_info before the sched_init - call. - -2006-03-16 Kaz Kojima - - * config/sh/linux-unwind.h (shmedia_fallback_frame_state): Set - fs->signal_frame. - (sh_fallback_frame_state): Likewise. - -2006-03-15 Geoffrey Keating - - * config.gcc (*-*-darwin*): Don't build crt2.o for all Darwin ports. - Do switch on default_use_cxa_atexit. - (powerpc*-*-darwin*): Build crt2.o on powerpc. - * config/darwin-crt3.o: New. - * config/darwin.h (LINK_SPEC): If -shared-libgcc, make linker default - to 10.3. Pass '-multiply_defined suppress' if crt3.o is in use. - (STARTFILE_SPEC): Add crt3.o when -shared-libgcc and appropriate - OS version. - * config/rs6000/t-darwin: Move crt2.o building to here. - * config/rs6000/darwin.h (C_COMMON_OVERRIDE_OPTIONS): Update - Mac OS version for using __cxa_get_exception_ptr. Don't test versions - of __cxa_atexit. - -2006-03-15 Jan-Benedict Glaw - - * config/vax/vax.c (nonindexed_address_p): Change logical negation - from '! xxx' to '!xxx' for coding-style conformance. - * config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Likewise. - (EXTRA_CONSTRAINT): Likewise. - * config/vax/vax.md (four unnamed insns): Likewise. - -2006-03-15 Paul Brook - - * config/arm/arm.c (minipool_pad): New. - (add_minipool_forward_ref): Include pool alignment padding in address - calculation. - (push_minipool_fix): Set minipool_pad. - (minipool_pad): Ditto. - -2006-03-15 Jan-Benedict Glaw - - * config/vax/vax.c (split_quadword_operands): Use MEM_P() - instead of GET_CODE() == MEM and REG_P() instead of - GET_CODE() == REG. - (print_operand_address): Likewise. - (vax_address_cost): Likewise. - (vax_rtx_costs): Likewise. - (vax_notice_update_cc): Likewise. - (vax_output_int_add): Likewise. - (INDEX_REGISTER_P): Likewise. - (BASE_REGISTER_P): Likewise. - (nonindexed_address_p): Likewise. - (vax_mode_dependent_address_p): Likewise. - * config/vax/vax.h (EXTRA_CONSTRAINT): Likewise. - (PRINT_OPERAND): Likewise. - * config/vax/vax.md (ashlsi3): Likewise. - (ashlsi3): Likewise. - (some more unnamed insns): Likewise. - -2006-03-15 Kazu Hirata - - * tree-ssa-dce.c (EXECUTE_IF_CONTROL_DEPENDENT): Make it an - iterator-style macro. - (mark_control_dependent_edges_necessary): Update the use of - EXECUTE_IF_CONTROL_DEPENDENT. - -2006-03-15 J"orn Rennecke - - * config/sh/predicates.md (cache_address_operand): Special. - (ua_address_operand): Likewise. - -2006-03-15 Zdenek Dvorak - - * haifa-sched.c (unlink_other_notes, reemit_notes): Do not handle - loop notes. - * sched-deps.c (sched_analyze_insn, sched_analyze): Ditto. - -2006-03-15 Andreas Schwab - - * gensupport.c (identify_predicable_attribute): Don't free p_false - when it is still in use. - -2006-03-15 Eric Botcazou - - * config.gcc (default with_cpu setting) : Do not modify - the default setting here. - -2006-03-14 Steven Bosscher - - * tree-pass.h (pass_cfg): Remove. - * alias.c (rest_of_handle_cfg, pass_cfg): Remove. - * passes.c (pass_cfg): Don't run it. - -2006-03-14 Kazu Hirata - - * Makefile.in (reg-stack.o): Don't depend on gt-reg-stack.h. - * reg-stack.c (stack_regs_mentioned_data): Change the type to - VEC(char,heap) *. - (stack_regs_mentioned): Update the uses of - stack_regs_mentioned_data. Don't access the array beyond its - end. - (reg_to_stack): Update the uses of stack_regs_mentioned_data. - Don't include gt-reg-stack.h. - - * config/bfin/bfin.h (UNALIGNED_WORD_ASM_OP): Remove. - * system.h (UNALIGNED_WORD_ASM_OP): Poison. - - * combine.c (UWIDE_SHIFT_LEFT_BY_BITS_PER_WORD): Remove. - - PR middle-end/26684 - * reg-stack.c (stack_regs_mentioned_data): Put it undef #ifdef - STACK_REGS. - -2006-03-14 John David Anglin - - * pa/pa32-linux.h (CRT_CALL_STATIC_FUNCTION): Fix typo. - -2006-03-14 Richard Guenther - - PR tree-optimization/26672 - * tree-ssa-propagate.c (set_rhs): Don't walk DEFs if not in - SSA form. - -2006-03-14 Richard Guenther - - PR tree-optimization/26667 - * ipa-inline.c (cgraph_check_inline_limits): Walk the correct - node for the callees. Always allow inlining if it will shrink - the function size. - -2006-03-14 Richard Guenther - - PR middle-end/26659 - * builtins.c (get_pointer_alignment): Prefer alignment - information from decls over that from types. - -2006-03-14 Andrew Pinski - - PR target/26657 - * config/darwin.h (LINK_COMMAND_SPEC): Handle -fopenmp. - -2006-03-14 Joseph S. Myers - - * config/rs6000/rs6000.opt (mdlmzb): New option. - (msched-prolog, msched-epilog): Use Var not Mask. - * doc/invoke.texi (-mdlmzb): Document. - * config/rs6000/rs6000.c (TARGET_DEFAULT_TARGET_FLAGS): Remove - MASK_SCHED_PROLOG. - (rs6000_override_options): Enable -mdlmzb for 405 and 440. - * config/rs6000/rs6000.md: Add dlmzb support for 405 and 440. - -2006-03-13 Uttam Pawar - - PR rtl-optimization/25739 - * bt-load.c (augment_live_range): Free tos pointer. - - * gensupport.c (identify_predicable_attribute): Free - p_false pointer. - * gcov.c (create_file_names): Free name pointer. - -2006-03-13 Roger Sayle - - PR middle-end/26557 - * stmt.c (emit_case_nodes): Handle the case where the index is a - CONST_INT, where the comparison mode is specified by the index type. - -2006-03-13 John David Anglin - - * pa/pa32-linux.h (CRT_CALL_STATIC_FUNCTION): Define when CRTSTUFFS_O - is defined. - -2006-03-13 Richard Sandiford - - * config/mips/mips.md (*branch_fp): Use %Z2 for the condition. - (*branch_fp_inverted): Likewise. - -2006-03-13 Jakub Jelinek - - PR middle-end/25989 - * omp-low.c (expand_omp_for_generic): Mark istart0 - and iend0 as addressable. - -2006-03-13 Jie Zhang - - * config/bfin/uclinux.h: Define _GNU_SOURCE in CPLUSPLUS_CPP_SPEC. - -2006-03-13 Jeff Law - - * tree-vrp.c (stmt_interesting_for_vrp): Some statements with - virtual operands are interesting. - (vrp_visit_stmt): Corresponding changes. - -2006-03-13 Bernd Schmidt - - * config/bfin/lib1funcs.asm (___umodsi3): Use stack to save contents - of RETS. - * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): If - TARGET_ID_SHARED_LIBRARY, define __ID_SHARED_LIB__. - * config/bfin/crti.S: Use it instead of __PIC__. - * config/bfin/crtn.S: Likewise. - - * config/bfin/bfin.md (call_value_symbol, sibcall_value_symbol, - call_symbol, sibcall_symbol): Disallow if TARGET_ID_SHARED_LIBRARY, - not if flag_pic. - Lose 'G' modifier for call operand. - * config/bfin/bfin.c (print_operand) : Don't - recognize 'G' modifier. - -2006-03-13 Eric Botcazou - - PR middle-end/18859 - * gimplify.c (gimplify_switch_expr): Discard empty ranges. - * stmt.c (expand_case): Likewise. - -2006-03-13 Zdenek Dvorak - - PR rtl-optimization/26254 - * loop-invariant.c (seq_insns_valid_p): New function. - (move_invariant_reg): Only emit new code if it is valid. - -2006-03-13 Zdenek Dvorak - - * cfgrtl.c (last_loop_beg_note, back_edge_of_syntactic_loop_p): - Removed. - (force_nonfallthru_and_redirect): Do not use last_loop_beg_note. - (rtl_split_edge): Do not use back_edge_of_syntactic_loop_p. - (commit_one_edge_insertion): Do not look for loop notes. - -2006-03-13 Zdenek Dvorak - - * jump.c (follow_jumps): Do not check for loop notes. Move check for - flag_test_coverage out of loop. - -2006-03-13 Zdenek Dvorak - - * final.c (shorten_branches): Remove outdated comment, and turn - the if branch that guards it to continue. - -2006-03-13 Zdenek Dvorak - - * cfgloop.c (flow_loop_dump): Do not dump loop->invalid field. - * cfgloop.h (struct loop): Remove unused fields. - -2006-03-13 Kazu Hirata - - * doc/invoke.texi (-fdump-rtl-loop): Remove. - (-dL, -fdump-rtl-loop2): Update the dump file names - - * doc/invoke.texi: Update dump file names. - -2006-03-12 Steven Bosscher - - * predict.c (estimate_probability): Remove. - * profile.c (rest_of_handle_branch_prob, pass_branch_prob): Remove. - * basic-block.h (estimate_probability): Remove prototype. - * passes.c (finish_optimization_passes): Dump branch prediction or - profiling heuristics to the .profile tree dump. - (init_optimization_passes): Unqueue pass_branch_prob. - - * doc/invoke.texi (-fdump-rtl-bp): Remove. - -2006-03-11 Steven Bosscher - - * rtl.def (LABEL_REF): Remove the field for LABEL_NEXTREF. - * rtl.h (LABEL_NEXTREF): Remove field accessor. - -2006-03-11 Eric Botcazou - - * function.h (frame_offset_overflow): Declare. - * function.c (frame_offset_overflow): New function. - (assign_stack_local_1): Call it to detect that the offset overflows. - * cfgexpand.c (alloc_stack_frame_space): Likewise. - -2006-03-11 Steven Bosscher - - * config/sh/sh.c: Include alloc-pool.h. - (label_ref_list_pool): New alloc pool. - (label_ref_list_t): New type for lists of labels. - (struct pool_node): Make wend a label_ref_list_t. - (add_constant): Use the new type, eradicate LABEL_NEXTREF - references. - (dump_table): Likewise. - (sh_reorg): Set up the alloc pool before using add_constant and - dump_table, and destroy it when finishing. - -2006-03-11 Richard Sandiford - - * config/mips/mips.c: Remove redundant comment. - -2006-03-10 Jason Merrill - - PR c/26004 - * gimplify.c (gimplify_modify_expr_rhs): Don't do return slot opt if - the target was declared 'register'. - -2006-03-10 Adam Nemet - - * genpreds.c (write_insn_constraint_len): Change definition of - insn_constraint_len to return size_t to match the declaration. - -2006-03-10 DJ Delorie - - * config/m32c/m32c.c (m32c_const_ok_for_constraint_p): Bit numbers - start at zero. - (m32c_expand_insv): Fix test for an AND mask. - -2006-03-10 Richard Guenther - - PR middle-end/26565 - * builtins.c (get_pointer_alignment): Handle component - references for field alignment. - -2006-03-10 J"orn Rennecke - - * config.gcc (sh*-superh-elf, sh*elf (newlib)): Use newlib.h - when building with libgloss. - (sh*elf): Implement --without-fp option. - (sh64-superh-linux*): Don't multilib. - -2006-03-10 J"orn Rennecke - - * struct-equiv.c (rtx_equiv_p): Fix POST_MODIFY case. - -2006-03-09 Andrew Pinski - - * tree-ssa-phiopt.c (tree_ssa_phiopt): Add cfgchanged variable. - Set it when one of the replacement functions returned true. - Return TODO_cleanup_cfg if cfgchanged is true. - (pass_phiopt) : Remove TODO_cleanup_cfg. - -2006-03-09 Adam Nemet - - * combine.c (simplify_shift_const_1): Use gen_lowpart_or_truncate - instead of gen_lowpart. - -2006-03-09 Richard Sandiford - - * config/mips/mips-protos.h (mips_output_conditional_branch): Change - interface. - (mips_output_order_conditional_branch): Declare. - * config/mips/mips.h (MIPS_BRANCH): New macro. - * config/mips/mips.c (gen_conditional_branch): Use VOIDmode - for the comparison. Use gen_condjump. - (mips_output_conditional_branch): Rework interface to take the - asm templates for a direct branch and the inverse of a direct branch. - (mips_output_order_conditional_branch): New function. - (mips_builtin_branch_and_move): New function. - (mips_expand_builtin_compare): Use it. Use VOIDmode for the - branch condition. Use gen_single_cc as the condition for - __builtin_mips_upper_* or __builtin_mips_lower_*. - (mips_expand_builtin_bposge): Use mips_builtin_branch_and_move. - Use VOIDmode for the branch condition. - * config/mips/predicates.md (order_operator): New predicate. - * config/mips/mips.md (UNSPEC_SINGLE_CC): New constant. - (branch_fp): Rename to... - (*branch_fp): ...this. Remove mode from comparison operator. - Use new mips_output_conditional_branch interface. - (branch_fp_inverted): Rename to... - (*branch_fp_inverted): ...this and update as for *branch_fp. - (*branch_zero): Rename to... - (*branch_order): ...this. Remove mode from comparison operator. - Use mips_output_order_conditional_branch. Only accept ordered - comparisons. - (*branch_zero_inverted): Rename to... - (*branch_order_inverted): ...this and update as for - *branch_order. - (*branch_equality): Accept zero as the second operand to - the equality operator. Use the new mips_output_conditional_branch - interface. - (*branch_equality_inverted): Likewise. - (condjump): New expander. - * config/mips/mips-dsp.md (mips_bposge): Remove mode from comparison - operator. - * config/mips/mips-ps-3d.md (bc1any4t, bc1any4f): Likewise. - (bc1any2t, bc1any2f): Likewise. - (single_cc): New expander. - (*branch_upper_lower, *branch_upper_lower_inverted): New patterns. - -2006-03-09 Richard Sandiford - - * doc/md.texi: Update documentation of MIPS constraints. - * config/mips/constraints.md: New file. - * config/mips/mips.md: Include it. - * config/mips/mips.c (mips_char_to_class): Delete. - (override_options): Don't initialize mips_char_to_class. - * config/mips/mips.h (mips_char_to_class): Delete. - (REG_CLASS_FROM_LETTER): Delete. - (CONST_OK_FOR_LETTER_P): Delete. - (CONST_DOUBLE_OK_FOR_LETTER_P): Delete. - (EXTRA_CONSTRAINT_Y): Delete. - (EXTRA_CONSTRAINT_STR): Delete. - (CONSTRAINT_LEN): Delete. - (EXTRA_MEMORY_CONSTRAINT): Delete. - -2006-03-09 Diego Novillo - - * tree-cfg.c (move_block_to_fn): Remove the statements from the - original fn's eh regions. - -2006-03-09 Eric Botcazou - - * fold-const.c (build_range_check): Make sure to use a valid type to - apply the "(c>=low) && (c<=high) into (c-low>=0) && (c-low<=high-low)" - transformation. - - (range_predecessor): New static function. - (range_successor): Likewise. - (merge_ranges): Use them to compute predecessors and successors of - range bounds. - -2006-03-09 Roger Sayle - - PR middle-end/26561 - * fold-const.c (fold_div_compare): When optimizing X/C1 op C2 as - X op C3, consider whether C3 overflows towards +Inf or -Inf. - -2006-03-08 DJ Delorie - - * config/m32c/addsub.md (addqi3): Disparage a0/a1. - (addpsi3): Expand to include memory operands. Remove - reload-specific splits. - * config/m32c/bitops.md (bset_qi, bset_hi, bclr_qi): New. - (andqi3_16, andhi3_16, iorqi3_16, iorhi3_16): New. - (andqi3_24, andhi3_24, iorqi3_24, iorhi3_24): New. - (andqi3, andhi3, iorqi3, iorhi3): Convert to expanders. - (shift1_qi, shift1_hi, insv): New. - * config/m32c/cond.md (cbranchqi4, cbranchhi4): Remove. - (cbranch4, stzx_16, stzx_24_, stzx_reversed, - cmp, b, s, s_24, movqicc, movhicc, - cond_to_int): New. - * config/m32c/m32c-protos.h: Update as needed. - * config/m32c/m32c.c (m32c_reg_class_from_constraint): Don't - default the Rcr, Rcl, Raw, and Ral constraints. Add Ra0 and Ra1. - Fail for unrecognized R* constraints. - (m32c_cannot_change_mode_class): Be more picky about pseudos. - (m32c_const_ok_for_constraint_p): Add Imb, Imw, and I00. - (m32c_extra_constraint_p2): Allow (mem (plus (plus fb int) int)). - Add Sp constraint. - (m32c_init_libfuncs): New. - (m32c_legitimate_address_p): Add debug wrapper. - (m32c_rtx_costs): New. - (m32c_address_cost): New. - (conversions): Add 'B' prefix. - (m32c_print_operand): 'h' and 'H' pick lower and upper halves of - operands, or word regnames for QI operands. 'B' prints bit - position. - (m32c_expand_setmemhi): New. - (m32c_expand_movmemhi): New. - (m32c_expand_movstr): New. - (m32c_expand_cmpstr): New. - (m32c_prepare_shift): Shift counts are limited to 16 bits at a time. - (m32c_expand_neg_mulpsi3): Handle non-ints. - (m32c_cmp_flg_0): New. - (m32c_expand_movcc): New. - (m32c_expand_insv): New. - (m32c_scc_pattern): New. - * config/m32c/m32c.h (reg classes): Add AO_REGS and A1_REGS. Take - a0/a1 out of SIregs. - (STORE_FLAG_VALUE): New. - * config/m32c/m32c.md: Add unspecs for string moves. Define various mode and - code macros. - (no_insn): New. - * config/m32c/mov.md: Make constraints more liberal. - (zero_extendqihi2): Optimize r0/r1 case. - * config/m32c/muldiv.md (mulpsi3): Check for intvals. - * config/m32c/predicates.md (m32c_any_operand): New. - (m32c_nonimmediate_operand): New. - (m32c_hl_operand): New. - (m32c_r3_operand): New. - (ap_operand): New. - (ma_operand): New. - (memsym_operand): New. - (memimmed_operand): New. - (a_qi_operand): New. - (m32c_eqne_operator): New. - (m32c_1bit8_operand): New. - (m32c_1bit16_operand): New. - (m32c_1mask8_operand): New. - (m32c_1mask16_operand): New. - * config/m32c/blkmov.md: New file. - * config/m32c/t-m32c (MD_FILES): Add blkmov. - -2006-03-08 Andreas Tobler - - * dwarf2out.c (expand_builtin_dwarf_sp_column): Make dwarf_regnum - unsigned to fix signed/unsigned comparison issue in - DWARF2_FRAME_REG_OUT. - (expand_builtin_init_dwarf_reg_sizes): Make i unsigned to fix signed/ - unsigned comparison issue in DWARF2_FRAME_REG_OUT. - - * tree-ssa-operands.c (finalize_ssa_def_ops): Move the declaration - of ptr into the ENABLE_CHECKING section. - -2006-03-08 Jeff Law - - * tree-vrp.c (infer_value_range): Only count pointer uses - and dereferences if -fdelete-null-pointer-checks is enabled. - - * tree-vrp.c (find_assert_locations): Infer value ranges for - single use pointers, but do not create ASSERT_EXPRs for them. - When a non-null range is inferred for a pointer, backwards - propagate that range to other equivalent pointers through the - use-def chain. - -2006-03-08 Paolo Bonzini - - PR bootstrap/26500 - * Makefile.in (dvi, html, install-info): Invoke the corresponding - language hook targets. - * ada/Make-lang.in, cp/Make-lang.in, objc/Make-lang.in, - objcp/Make-lang.in: Create stub rules for dvi, html, install-info - if language hook targets were missing. - -2006-03-07 Zdenek Dvorak - - * tree-ssa-opfinalize.h: Removed. - * Makefile.in (tree-ssa-operands.o): Remove tree-ssa-opfinalize.h - dependency. - * tree-ssa-operands.c: Do not include tree-ssa-opfinalize.h. - (ALLOC_OPTYPE, APPEND_OP_AFTER, MOVE_HEAD_AFTER, MOVE_HEAD_TO_FREELIST, - INITIALIZE_USE, add_def_op, add_use_op, add_vuse_op, add_maydef_op, - add_mustdef_op, finalize_ssa_def_ops, finalize_ssa_use_ops, - finalize_ssa_v_may_def_ops, finalize_ssa_vuse_ops, - finalize_ssa_v_must_def_ops): New. - -2006-03-07 Kenneth Zadeck - - * df-scan.c: (df_bb_refs_record): Fix obvious typo with wrong - block as parameter. - -2006-03-07 Geoffrey Keating - - * varasm.c (assemble_end_function): Say that 'fnname' is unused. - - * config/i386/i386.c (ix86_delegitimize_address): Handle Darwin - addresses with offsets; reorganize. - - * dwarf2out.c (DWARF2_FRAME_REG_OUT): Move up in file. - (expand_builtin_dwarf_sp_column): Call DWARF2_FRAME_REG_OUT. - (expand_builtin_init_dwarf_reg_sizes): Likewise. - -2006-03-08 David Billinghurst - - PR target/26588 - * config/i386/cygwin.h (GOMP_SELF_SPECS): Define. - -2006-03-08 Ben Elliston - - * config/fp-bit.h (CMPtype): Typedef to a word mode integer. - -2006-03-07 Aldy Hernandez - - PR gomp/26238 - * doc/passes.texi (Tree-SSA passes): Document omp lowering and - expansion. - -2006-03-07 Richard Guenther - - PR tree-optimization/26587 - * tree-ssa-structalias.c (handle_ptr_arith): Handle MINUS_EXPR. - -2006-03-07 Richard Sandiford - - * varasm.c (assemble_variable): Fix setting of DECL_IN_TEXT_SECTION. - -2006-03-07 Richard Sandiford - - * hooks.c (hook_bool_mode_rtx_true): New function. - * hooks.h (hook_bool_mode_rtx_true): Declare. - * toplev.c (compile_file): Call output_shared_constant_pool. - * varasm.c (shared_constant_pool): New variable. - (assemble_start_function, assemble_end_function): Remove arguments - from call to output_constant_pool. - (create_constant_pool): New function, split out from... - (init_varasm_status): ...here. - (force_const_mem): Choose between the shared and per-function constant - pools. Set current_function_uses_const_pool when reusing old entries - as well as when creating new ones. - (mark_constant): Ignore data argument. - (mark_constants): Remove pool argument. - (mark_constant_pool): Likewise. Use current_function_uses_const_pool - to decide whether the function uses a constant pool. - (output_constant_pool_contents): New function, split out from... - (output_constant_pool): ...here. - (output_shared_constant_pool): New function. - (init_varasm_once): Initialize shared_constant_pool. - * output.h (output_constant_pool): Delete. - (output_shared_constant_pool): Declare. - * config/s390/s390-protos.h (s390_output_constant_pool): Delete. - * config/i386/i386.c (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Override. - -2006-03-06 Nick Clifton - - * config/m32r/m32r.h (OPTIMIZATION_OPTIONS): Remove reference to - flag_strength_reduce. - -2006-03-06 Ben Elliston - - * config.gcc: Add t-dfprules to $tmake_file for i*86-*-linux* and - x86_64-*-linux* configurations. - - * config/dfp-bit.h (CMPtype): Typedef to a word mode integer. - (LIBGCC2_WORDS_BIG_ENDIAN): Define. - -2006-03-05 Kazu Hirata - - * tree-ssa-threadupdate.c (rediscover_loops_after_threading): - Remove. - * basic-block.h: Remove the extern for - rediscover_loops_after_threading. - - * cfgloop.c (cancel_loop): Make it static. - * cfgloop.h: Remove the prototype for cancel_loop. - - * flow.c (recompute_reg_usage): Make it static. - * rtl.h: Remove the prototype for recompute_reg_usage. - - * function.c (use_return_register): Make it static. - * function.h: Remove the prototype. - -2006-03-05 Kazu Hirata - - * recog.c (volatile_mem_p, validate_change_maybe_volatile): - Remove. - * recog.h: Remove the prototype for - validate_change_maybe_volatile. - -2006-03-05 Kazu Hirata - - * rtlanal.c (replace_reg): Remove. - * rtl.h: Remove the prototype for replace_reg. - -2006-03-05 Kazu Hirata - - * regclass.c (reg_scan_update): Remove. - (reg_scan_mark_refs): Remove the last argument. - * rtl.h: Remove the prototype for reg_scan_update. - -2006-03-04 Kazu Hirata - - * builtins.c, c-pragma.h, c-typeck.c, cgraph.c, cgraphunit.c, - combine.c, common.opt, config/dfp-bit.c, config/i386/i386.c, - config/m68k/m68k.c, config/m68k/m68k.md, config/mt/mt.c, - config/mt/mt.h, config/s390/s390.md, df-core.c, df-problems.c, - df-scan.c, df.h, diagnostic.c, expr.c, function.h, gimplify.c, - loop-invariant.c, omp-low.c, opts.c, passes.c, - rtl-factoring.c, rtlanal.c, struct-equiv.c, tree-cfgcleanup.c, - tree-ssa-loop-niter.c, tree-ssa-loop-prefetch.c, - tree-ssa-structalias.c, tree-ssa-threadedge.c, - tree-ssa-threadupdate.c, tree-vect-patterns.c, - tree-vect-transform.c, tree-vectorizer.h, tree-vrp.c, - unwind-dw2.c: Fix comment typos. Follow spelling conventions. - -2006-03-04 Kazu Hirata - - * dwarf2out.c (dwarf2out_add_library_unit_info): Remove. - * dwarf2out.h: Remove the prototype for - dwarf2out_add_library_unit_info. - -2006-03-04 Kazu Hirata - - * tree.c (add_var_to_bind_expr): Remove. - * tree.h: Remove the prototype for add_var_to_bind_expr. - -2006-03-04 Kazu Hirata - - * regclass.c (n_non_fixed_regs): Remove. - (init_reg_sets_1, globalize_reg): Remove all uses of - n_non_fixed_regs. - * hard-reg-set.h: Remove the extern for n_non_fixed_regs. - -2006-03-04 Kazu Hirata - - * rtlanal.c (insns_safe_to_move_p): Remove. - * rtl.h: Remove the prototype for insns_safe_to_move_p. - -2006-03-04 Kazu Hirata - - * expmed.c (expand_mult_add): Remove. - * expr.h: Remove the prototype for expand_mult_add. - -2006-03-04 Jakub Jelinek - - * unwind-dw2.h (_Unwind_FrameState): Add REG_SAVED_VAL_OFFSET - and REG_SAVED_VAL_EXP constants. - * unwind-dw2.c (struct _Unwind_Context): Add by_value array. - (_Unwind_GetGR, _Unwind_SetGR, _Unwind_GetGRPtr, _Unwind_SetGRPtr): - Handle regs stored by value. - (_Unwind_SetGRValue, _Unwind_GRByValue): New functions. - (execute_cfa_program): Handle DW_CFA_val_offset, - DW_CFA_val_offset_sf and DW_CFA_val_expression. - (uw_update_context_1): Handle REG_SAVED_REG with regs stored by - value specially. Handle REG_SAVED_VAL_OFFSET and REG_SAVED_VAL_EXP. - (uw_install_context_1): Handle target regs stored by value. - -2006-03-03 Daniel Berlin - - * tree-sra.c (tree_sra): Return todoflags; - (generate_one_element): Set TODO_update_smt_usage if needed. - (pass_sra): Remove TODO_update_smt_usage. - * tree-ssa-forwprop.c (forward_propagate_addr_expr): Add some - parameter. - (tree_ssa_forward_propagate_single_use_vars): Return - TODO_update_smt_usage if we need to update SMT usage. - (pass_forwprop): Remove TODO_update_smt_usage. - -2006-03-03 Diego Novillo - - * tree-ssa-operands.c: Tidy whitespace. Fix spelling. - (correct_use_link): Remove reference to get_stmt_operands. - (update_stmt_operands): Likewise. - (get_modify_expr_operands): New function factored out of - parse_ssa_operands and get_expr_operands. - Try to create V_MUST_DEFs for LHS by default. - (get_expr_operands) : Call - get_modify_expr_operands. - : Handle together with ARRAY_REF. - : Clear opf_kill_def from FLAGS. - (parse_ssa_operands) : Call - get_modify_expr_operands. - -2006-03-03 Kazu Hirata - - * tree-dfa.c (referenced_var_lookup_if_exists): Remove. - * tree-flow.h: Remove the prototype for - referenced_var_lookup_if_exists. - -2006-03-03 Steve Ellcey - - PR rtl-optimization/26345 - PR target/19061 - * config/ia64/predicates.md (basereg_operand): Don't look in subregs. - -2006-03-03 Roger Sayle - - PR tree-optimization/26524 - * tree-scalar-evolution.c (interpret_rhs_modify_expr): Use - fold_convert to create a constant of the appropriate type. - -2006-03-03 Richard Sandiford - - * doc/tm.texi: Refer to SYMBOL_REF_HAS_BLOCK_INFO_P instead of - SYMBOL_REF_IN_BLOCK_P. - * doc/rtl.texi: Likewise. Refer to SYMBOL_FLAG_HAS_BLOCK_INFO instead - of SYMBOL_FLAG_IN_BLOCK. - * gengtype.c (adjust_field_rtx_def): Use SYMBOL_REF_HAS_BLOCK_INFO_P - instead of SYMBOL_REF_IN_BLOCK_P. - * explow.c (use_anchored_address): Likewise. - * rtl.c (rtx_size): Likewise. - * varasm.c (create_block_symbol): Set SYMBOL_FLAG_HAS_BLOCK_INFO - instead of SYMBOL_FLAG_IN_BLOCK. - (make_decl_rtl): Use SYMBOL_REF_HAS_BLOCK_INFO_P instead of - SYMBOL_REF_IN_BLOCK_P. - (assemble_variable): Likewise. - (output_constant_def_contents): Likewise. - (output_constant_pool): Likewise. - (default_encode_section_info): Preserve SYMBOL_FLAG_HAS_BLOCK_INFO - instead of SYMBOL_FLAG_IN_BLOCK. - * rtl.h (block_symbol): Refer to SYMBOL_REF_HAS_BLOCK_INFO_P instead of - SYMBOL_REF_IN_BLOCK_P. - (SYMBOL_REF_BLOCK): Likewise. - (SYMBOL_REF_OFFSET): Likewise. - (BLOCK_SYMBOL_CHECK): Use SYMBOL_REF_HAS_BLOCK_INFO_P instead of - SYMBOL_REF_IN_BLOCK_P. - (SYMBOL_FLAG_IN_BLOCK): Replace with... - (SYMBOL_FLAG_HAS_BLOCK_INFO): ...this. - (SYMBOL_REF_IN_BLOCK_P): Replace with... - (SYMBOL_REF_HAS_BLOCK_INFO_P): ...this. - -2006-03-03 Jakub Jelinek - - * config/arm/unwind-arm.h (_Unwind_GetIPInfo): Fix pasto. - -2006-03-02 Roger Sayle - - * simplify-rtx.c (simplify_unary_operation): When simplifying - (neg (lt X 0)) into (ashiftrt X C) or (lshiftrt X C), make sure - that we perform the right shift in the appropriate mode, and - then extend or truncate the result to requested mode. - -2006-03-03 Zdenek Dvorak - - * gengtype.c (main): Handle double_int type. - * tree.h (struct tree_int_cst): Make type of int_cst double_int. - * double-int.c: New file. - * double-int.h: New file. - * system.h: Include doubleint.h. - * Makefile.in (SYSTEM_H): Include double-int.h. - (double-int.o): Add. - -2006-03-03 Joseph S. Myers - - PR bootstrap/26478 - * Makefile.in (stmp-int-hdrs): Remove include/unwind.h before - copying over it. - -2006-03-02 Zdenek Dvorak - - * tree-vrp.c (remove_range_assertions): Do not update statements - unnecessarily. - -2006-03-02 Zdenek Dvorak - - * cse.c (rest_of_handle_cse): Do not pass CLEANUP_PRE_LOOP to cfg - cleanup. - * gcse.c (rest_of_handle_gcse): Ditto. - * except.c (gate_handle_eh): Ditto. - * cfgcleanup.c (rest_of_handle_jump2): Ditto. - * basic-block.h (CLEANUP_PRE_LOOP): Remove. - -2006-03-02 Eric Christopher - - * config/i386/i386.c (machopic_output_stub): Add indirection to - jump. - -2006-03-02 Zdenek Dvorak - - * loop.c: Removed. - -2006-03-02 David S. Miller - - Sun Niagara specific optimizations. - * config.gcc: Recognize niagara as target. - * config/sparc/sparc.h (SPARC_RELAXED_ORDERING): Mention Niagara. - (TARGET_CPU_niagara): Define. - (CPP_CPU64_DEFAULT_SPEC): Define __sparc_v9__ for Niagara. - (ASM_CPU64_DEFAULT_SPEC): Pass -Av9b for Niagara. - (CPP_CPU_SPEC): Handle -mcpu=niagara. - (ASM_CPU_SPEC): Likewise. - (PROCESSOR_NIAGARA): New enum entry. - (REGISTER_MOVE_COST): Handle Niagara. - (BRANCH_COST, PREFETCH_BLOCK, SIMULTANEOUS_PREFETCHES): Likewise. - * config/sparc/sparc.c (niagara_costs): New processor_costs entry. - (sparc_override_options): Recognize "niagara", set appropriate - default MASK_* values for it, and align functions to 32-bytes - by default just like ULTRASPARC/ULTRASPARC3. - (sparc_initialize_trampoline): Handle niagara like ultrasparc. - (sparc64_initialize_trampoline): Likewise. - (sparc_use_sched_lookahead): Use zero for niagara. - (sparc_issue_rate): Use one for niagara. - * config/sparc/niagara.md: New file. - * config/sparc/sparc.md: Include it. - * config/sparc/sol2-bi.h (CPP_CPU64_DEFAULT_SPEC, - ASM_CPU32_DEFAULT_SPEC, ASM_CPU64_DEFAULT_SPEC): Set appropriately - when default cpu is niagara. - (CPP_CPU_SPEC): Handle -mcpu=niagara. - (ASM_CPU_SPEC): Likewise. - * config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Set appropriately - when default cpu is niagara. - (ASM_CPU_SPEC): Handle -mcpu=niagara. - * config/sparc/linux64.h: Handle a default of TARGET_CPU_niagara - just like v9/ultrasparc/ultrasparc3. - * doc/invoke.texi: Add documentation for "niagara" and improve - existing documentation for ultrasparc variants. - -2006-03-02 Diego Novillo - - * tree-ssa-operands.c (update_stmt_operands): Update documentation. - -2006-03-02 Richard Sandiford - - * doc/tm.texi (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Document. - (ASM_OUTPUT_BSS): Describe the two ways of handling global BSS, - and say that only one is needed. - * doc/rtl.texi (SYMBOL_REF_BLOCK): Say that the block can be null. - * target.h (have_switchable_bss_sections): New hook. - * explow.c (use_anchored_address): Check that the symbol is in a block. - * varasm.c (tls_comm_section, comm_section, lcomm_section) - (bss_noswitch_section): New variables. - (get_unnamed_section): Add SECTION_UNNAMED to the flags. - (get_noswitch_section): New function. - (get_block_for_section): Allow SECT to be null. - (unlikely_text_section_p): Use SECTION_STYLE. - (bss_initializer_p): New function. - (get_variable_section): Move earlier in file. Take a new argument, - prefer_noswitch_p. Move bss checks from assemble_variable to here. - Return one of the new *_sections in such cases. - (get_block_for_decl): New function, extracting some logic from - use_blocks_for_decl_p. - (change_symbol_section): Remove in favor of... - (change_symbol_block): ...this new function. - (use_blocks_for_decl_p): Remove checks now performed by - get_block_for_decl. - (make_decl_rtl): Use change_symbol_block and get_block_for_decl. - (ASM_EMIT_LOCAL, ASM_EMIT_BSS, ASM_EMIT_COMMON): Delete in favor of... - (emit_local, emit_bss, emit_common): ...these new functions. - Return true if the alignment was honored. - (emit_tls_common): New function. - (asm_emit_uninitialised): Delete. - (assemble_variable_noswitch): New function, split out from... - (assemble_variable): ...here. Don't make decisions about common - variables here. Globalize all public decls that go into non-common - sections. Check whether SYMBOL_REF_BLOCK is null. - (output_constant_def_contents): Check whether SYMBOL_REF_BLOCK is null. - (output_constant_pool): Likewise. - (init_varasm_once): Initialize the new section variables. - (have_global_bss_p): New function. - (categorize_decl_for_section): Use bss_initializer_p. - (switch_to_section): Use SECTION_STYLE. Abort for SECTION_NOSWITCH. - (place_block_symbol): Assert that the symbol must be in a block. - * target-def.h (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): New macro. - (TARGET_INITIALIZER): Include it. - * rtl.h (SYMBOL_REF_BLOCK): Document the null alternative. - * output.h (SECTION_STYLE_MASK, SECTION_COMMON): New macros. - (SECTION_MACH_DEP): Bump by two. - (SECTION_UNNAMED, SECTION_NOSWITCH): New macros. - (unnamed_section): Mention SECTION_UNNAMED in comment. - (named_section): Likewise SECTION_NAMED. - (noswitch_section_callback): New type. - (noswitch_section): New structure. - (section): Add a noswitch_section alternative. - (SECTION_STYLE): New macro. - (tls_comm_section, comm_section, lcomm_section): Declare. - (bss_noswitch_section, have_global_bss_p): Declare. - * config/elfos.h (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Override. - * config/iq2000/iq2000.c (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): - Override. - * config/v850/v850.c (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Override. - * config/stormy16/stormy16.c (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): - Override. - -2006-03-02 Daniel Berlin - - * tree-vrp.c (execute_vrp): Return value. - * regrename.c (rest_of_handle_regrename): Ditto. - * tree-into-ssa.c (rewrite_into_ssa): Ditto. - * tree-complex.c (tree_lower_complex): Ditto. - (tree_lower_complex_O0): Ditto. - * tracer.c (rest_of_handle_tracer): Ditto. - * postreload-gcse.c (rest_of_handle_gcse2): Ditto. - * postreload.c (rest_of_handle_postreload): Ditto. - * tree-tailcall.c (execute_tail_recursion): Ditto. - (execute_tail_calls): Ditto. - * tree-ssa-loop-ch.c (copy_loop_headers): Ditto. - * tree.h (init_function_for_compilation): Ditto. - * ipa-cp.c (ipcp_driver): Ditto. - * tree-scalar-evolution.c (scev_const_prop): Ditto. - * tree-scalar-evolution.h (scev_const_prop): Ditto. - * final.c (compute_alignments): Ditto. - (rest_of_handle_final): Ditto. - (rest_of_handle_shorten_branches): Ditto. - (rest_of_clean_state): Ditto. - * omp-low.c (execute_expand_omp): Ditto. - (execute_lower_omp): Ditto. - * tree-ssa-dse.c (tree_ssa_dse): Ditto. - * ipa-reference.c (static_execute): Ditto. - * tree-ssa-uncprop.c (tree_ssa_uncprop): Ditto. - * reorg.c (rest_of_handle_delay_slots): Ditto. - (rest_of_handle_machine_reorg): Ditto. - * cgraphunit.c (rebuild_cgraph_edges): Ditto. - * flow.c (recompute_reg_usage): Ditto. - (rest_of_handle_remove_death_notes): Ditto. - (rest_of_handle_life): Ditto. - (rest_of_handle_flow2): Ditto. - * tree-ssa-copyrename.c (rename_ssa_copies): Ditto. - * tree-ssa-ccp.c (do_ssa_ccp): Ditto. - (do_ssa_store_ccp): Ditto. - (execute_fold_all_builtins): Ditto. - * mode-switching.c (rest_of_handle_mode_switching): Ditto. - * modulo-sched.c (rest_of_handle_sms): Ditto. - * ipa-pure-const.c (static_execute): Ditto. - * cse.c (rest_of_handle_cse): Ditto. - (rest_of_handle_cse2): Ditto. - * web.c (rest_of_handle_web): Ditto. - * tree-stdarg.c (execute_optimize_stdarg): Ditto. - * tree-ssa-math-opts.c (execute_cse_reciprocals): Ditto. - * tree-ssa-dom.c (tree_ssa_dominator_optimize): Ditto. - * tree-nrv.c (tree_nrv): Ditto. - (execute_return_slot_opt): Ditto. - * tree-ssa-alias.c (compute_may_aliases): Ditto. - (create_structure_vars): Ditto. - * loop-init.c (rtl_loop_init): Ditto. - (rtl_loop_done): Ditto. - (rtl_move_loop_invariants): Ditto. - (rtl_unswitch): Ditto. - (rtl_unroll_and_peel_loops): Ditto. - (rtl_doloop): Ditto. - * gimple-low.c (lower_function_body): Ditto. - (mark_used_blocks): Ditto. - * tree-ssa-sink.c (execute_sink_code): Ditto. - * ipa-inline.c (cgraph_decide_inlining): Ditto. - (cgraph_early_inlining): Ditto. - * global.c (rest_of_handle_global_alloc): Ditto. - * jump.c (cleanup_barriers): Ditto. - (purge_line_number_notes): Ditto. - * ifcvt.c (rest_of_handle_if_conversion): Ditto. - (rest_of_handle_if_after_reload): Ditto. - * tree-ssa-loop.c (tree_ssa_loop_init): Ditto. - (tree_ssa_loop_im): Ditto. - (tree_ssa_loop_unswitch): Ditto. - (tree_vectorize): Ditto. - (tree_linear_transform): Ditto. - (tree_ssa_loop_ivcanon): Ditto. - (tree_ssa_empty_loop): Ditto. - (tree_ssa_loop_bounds): Ditto. - (tree_complete_unroll): Ditto. - (tree_ssa_loop_prefetch): Ditto. - (tree_ssa_loop_ivopts): Ditto. - (tree_ssa_loop_done): Ditto. - * predict.c (tree_estimate_probability): Ditto. - * recog.c (split_all_insns_noflow): Ditto. - (rest_of_handle_peephole2): Ditto. - (rest_of_handle_split_all_insns): Ditto. - * tree-eh.c (lower_eh_constructs): Ditto. - * regmove.c (rest_of_handle_regmove): Ditto. - (rest_of_handle_stack_adjustments): Ditto. - * local-alloc.c (rest_of_handle_local_alloc): Ditto. - * function.c (instantiate_virtual_regs): Ditto. - (init_function_for_compilation): Ditto. - (rest_of_handle_check_leaf_regs): Ditto. - * gcse.c (rest_of_handle_jump_bypass): Ditto. - (rest_of_handle_gcse): Ditto. - * ipa-type-escape.c (type_escape_execute): Ditto. - * alias.c (rest_of_handle_cfg): Ditto. - * tree-if-conv.c (main_tree_if_conversion): Ditto. - * profile.c (rest_of_handle_branch_prob): Ditto. - * tree-ssa-phiopt.c (tree_ssa_phiopt): Ditto. - * rtl-factoring.c (rest_of_rtl_seqabstr): Ditto. - * bt-load.c (rest_of_handle_branch_target_load_optimize): Ditto - * tree-dfa.c (find_referenced_vars): Ditto. - * except.c (set_nothrow_function_flags): Ditto. - (convert_to_eh_region_ranges): Ditto. - (rest_of_handle_eh): Ditto. - * emit-rtl.c (unshare_all_rtl): Ditto. - (remove_unnecessary_notes): Ditto. - * except.h (set_nothrow_function_flags): Ditto. - (convert_to_eh_region_ranges): Ditto. - * cfgexpand.c (tree_expand_cfg): Ditto. - * tree-cfgcleanup.c (merge_phi_nodes): Ditto. - * tree-ssa-pre.c (do_pre): Ditto. - (execute_fre): Ditto. - * cfgcleanup.c (rest_of_handle_jump): Ditto. - (rest_of_handle_jump2): Ditto. - * tree-sra.c (tree_sra): Ditto. - * tree-mudflap.c (execute_mudflap_function_ops): Ditto. - (execute_mudflap_function_decls): Ditto. - * tree-ssa-copy.c (do_copy_prop): Ditto. - (do_store_copy_prop): Ditto. - * ipa-prop.h (ipcp_driver): Ditto. - * cfglayout.c (insn_locators_initialize): Ditto. - * tree-ssa-forwprop.c - (tree_ssa_forward_propagate_single_use_vars): Ditto. - * cfglayout.h (insn_locators_initialize): Ditto. - * tree-ssa-dce.c (tree_ssa_dce): Ditto. - * tree-ssa.c (execute_early_warn_uninitialized): Ditto. - (execute_late_warn_uninitialized): Ditto. - * rtl.h (cleanup_barriers): Ditto. - (split_all_insns_noflow): Ditto. - (purge_line_number_notes): Ditto. - (unshare_all_rtl): Ditto. - (remove_unnecessary_notes): Ditto. - (recompute_reg_usage): Ditto. - (variable_tracking_main): Ditto. - * integrate.c (emit_initial_value_sets): Ditto. - * integrate.h (emit_initial_value_sets): Ditto. - * tree-optimize.c (execute_free_datastructures): Ditto - (execute_free_cfg_annotations): Ditto. - (execute_fixup_cfg): Ditto. - (execute_cleanup_cfg_pre_ipa): Ditto. - (execute_cleanup_cfg_post_optimizing): Ditto. - (execute_init_datastructures): Ditto. - * tree-object-size.c (compute_object_sizes): Ditto. - * combine.c (rest_of_handle_combine): Ditto. - * tree-outof-ssa.c (rewrite_out_of_ssa): Ditto. - * bb-reorder.c (duplicate_computed_gotos): Ditto. - (rest_of_handle_reorder_blocks): Ditto. - (rest_of_handle_partition_blocks): Ditto. - * var-tracking.c (variable_tracking_main): Ditto. - * tree-profile.c (tree_profiling): Ditto. - * tree-vect-generic.c (expand_vector_operations): Ditto. - * reg-stack.c (rest_of_handle_stack_regs): Ditto. - * sched-rgn.c (rest_of_handle_sched): Ditto. - (rest_of_handle_sched2): Ditto. - * basic-block.h (free_bb_insn): Ditto. - * tree-ssa-structalias.c (ipa_pta_execute): Ditto. - * tree-cfg.c (execute_build_cfg): Ditto. - (remove_useless_stmts): Ditto. - (split_critical_edges): Ditto. - (execute_warn_function_return): Ditto. - (execute_warn_function_noreturn): Ditto. - * tree-ssa-reassoc.c (execute_reassoc): Ditto. - * cfgrtl.c (free_bb_for_insn): Ditto. - * passes.c (execute_one_pass): Run additional - todos returned by execute function. - * tree-pass.h (struct tree_opt_pass): Make execute - return a value. - -2006-03-02 Richard Guenther - - * tree-ssa-alias.c (find_used_portions): Consider taking - the address as making the variable not write-only. - -2006-03-02 Nick Clifton - - * config.gcc (default_use_cxa_atexit): Extend the description of - this configure variable. Set its default value to "yes" for - Linux, NetBSD and ELF targets on the assumption that they will - use C libraries with the __cxa_atexit function. - -2006-03-02 Ben Elliston - - * config/rs6000/linux-unwind.h (frob_update_context): Mark `fs' - parameter as unused to suppress a build warning. - -2006-03-02 Ben Elliston - - * mklibgcc.in: Depend on config/dfp-bit.h in rules that compile - config/dfp-bit.c. - -2006-03-01 Roger Sayle - - PR other/26489 - * gthr-posix.h (__gthrw2): Define to take three parameters, the - declared name, the weak reference name, and the typeof name. - (__gthrw): Avoid expanding the declared name suffix. - (__gthrw3): New Tru64 specific macro to simplify the OSF/1 decls. - -2006-03-01 Jakub Jelinek - - * dwarf2.h (DW_TAG_condition, DW_TAG_shared_type): New constants - from DWARF 3. - (DW_AT_description, DW_AT_binary_scale, DW_AT_decimal_scale, - DW_AT_small, DW_AT_decimal_sign, DW_AT_digit_count, - DW_AT_picture_string, DW_AT_mutable, DW_AT_threads_scaled, - DW_AT_explicit, DW_AT_object_pointer, DW_AT_endianity, - DW_AT_elemental, DW_AT_pure, DW_AT_recursive): New. - (DW_OP_form_tls_address, DW_OP_call_frame_cfa, DW_OP_bit_piece): New. - (DW_ATE_packed_decimal, DW_ATE_numeric_string, DW_ATE_edited, - DW_ATE_signed_fixed, DW_ATE_unsigned_fixed): New. - (DW_DS_unsigned, DW_DS_leading_overpunch, DW_DS_trailing_overpunch, - DW_DS_leading_separate, DW_DS_trailing_separate): New. - (DW_END_default, DW_END_big, DW_END_little): New. - (DW_END_lo_user, DW_END_hi_user): Define. - (DW_LNE_lo_user, DW_LNE_hi_user): Define. - (DW_CFA_val_offset, DW_CFA_val_offset_sf, DW_CFA_val_expression): New. - (DW_LANG_PLI, DW_LANG_ObjC, DW_LANG_ObjC_plus_plus, DW_LANG_UPC, - DW_LANG_D): New. - -2006-03-01 Diego Novillo - - * tree.def (SYMBOL_MEMORY_TAG): Rename from TYPE_MEMORY_TAG. - Update all users. - * tree-pass.h (PROP_smt_usage): Rename from PROP_tmt_usage. - Update all users. - (TODO_update_smt_usage): Rename from TODO_update_tmt_usage. - Update all users. - * tree.h (SMT_USED_ALONE): Rename from TMT_USED_ALONE. - Update all users. - * tree-flow.h (struct var_ann_d): Rename field 'type_mem_tag' - to 'symbol_mem_tag'. - Update all users. - * doc/tree-ssa.texi: Update documentation to reflect TMT->SMT - rename. - -2006-03-01 Roger Sayle - - * builtins.c (fold_builtin_copysign): Delete unreachable code. - -2006-03-01 Andrew Pinski - - PR target/25761 - * config/darwin.h (MACHOPIC_JUST_INDIRECT): Check just - MACHO_DYNAMIC_NO_PIC_P. - (MACHOPIC_PURE): Check flag_pic and not MACHO_DYNAMIC_NO_PIC_P. - -2006-03-01 Andrew Pinski - - PR target/26389 - * config/darwin-protos.h (darwin_asm_output_anchor): - Declare. - * config/darwin-sections.def (cstring_section): - Add SECTION_MERGE to the flags. - (literal4_section): Likewise. - (literal8_section): Likewise. - (objc_selector_refs_section): Likewise. - (objc_cls_refs_section): Likewise. - * config/darwin.c (darwin_asm_output_anchor): New - function. - * config/darwin.h (TARGET_ASM_OUTPUT_ANCHOR): Define. - -2006-03-01 Daniel Berlin - - Fix PR tree-optimization/26443 - * tree-vrp.c (pass_vrp): Add TODO_update_tmt_usage - to todo and PROP_tmt_usage to properties_destroyed. - * tree-ssa-ccp.c (pass_ccp): Ditto. - (pass_store_ccp): Ditto. - * tree-ssa-dom.c (pass_dominator): Ditto. - -2006-03-01 Diego Novillo - - * tree-ssa-operands.c: Cleanup whitespace. - (get_asm_expr_operands): Move before first invocation. - (get_indirect_ref_operands): Likewise. - (get_tmr_operands): Likewise. - (get_call_expr_operands): Likewise. - (append_def): Likewise. - (append_use): Likewise. - (append_v_may_def): Likewise. - (append_v_must_def): Likewise. - (add_call_clobber_ops): Likewise. - (add_call_read_ops): Likewise. - (add_stmt_operand): Likewise. - (add_virtual_operand): Likewise. - (build_ssa_operands): Likewise. - -2006-03-01 Andrew Pinski - - PR middle-end/26022 - Revert: - PR middle-end/24437 - * tree-ssa-ccp.c (fold_stmt): Move folding of OBJ_TYPE_REF - with a call expr to ... - * fold-const.c (fold_ternary) : Here. - -2006-03-01 Diego Novillo - - * tree-vrp.c (extract_range_from_assert): Remove special - handling for types with super-types. - -2006-03-01 Ben Elliston - - * config.gcc: Add t-dfprules to $tmake_file for powerpc-*-linux* - and powerpc64-*-linux* configurations. - * config/t-dfprules: New file. - - * mklibgcc.in: Add logic to handle $DFP_ENABLE and $DFP_CFLAGS. - Compile dfp-bit.c from the source directory using -DWIDTH and - $DFP_CFLAGS to control the compilation of that file, rather than - generating width-specific versions in the build directory. - * Makefile.in (libgcc.mk): Pass down DFP_ENABLE and DFP_CFLAGS. - (LIBGCC_DEPS): Replace $(D32PBIT) et al with config/dfp-bit.[hc]. - -2006-02-28 Zack Weinberg - - * doc/md.texi: Avoid use of @headitem so that makeinfo <4.7 - continues to work. - -2006-02-28 Eric Christopher - - * config/rs6000/darwin.h (ENABLE_STACK_EXECUTE): Define. - Set up IN_LIBGCC definition of TARGET_64BIT. - * config/i386/darwin.h (ENABLE_STACK_EXECUTE): Define. - -2006-02-28 Roger Sayle - - PR middle-end/14752 - * c-common.c (c_common_truthvalue_conversion) : Delete. Let fold optimize these - cases via the construction of "expr != 0". - -2006-02-28 Steven Bosscher - - * alias.c (alias_invariant, alias_invariant_size): Remove. - (record_base_value): Remove. - (memrefs_conflict_p): Don't look at alias_invariant. - (end_alias_analysis): Don't free it. - * alias.h (record_base_value): Remove prototype. - -2006-02-28 Paolo Bonzini - Adam Nemet - - * rtl.h (truncated_to_mode): Declare it. - (struct rtl_hooks): Add reg_truncated_to_mode hook. - * rtlhooks-def.h (RTL_HOOKS_REG_TRUNCATED_TO_MODE): New macro. - (RTL_HOOKS_INITIALIZER): Include it. - * rtlhooks.c (reg_truncated_to_mode_general): New function. - * combine.c (RTL_HOOKS_REG_TRUNCATED_TO_MODE): Override to - reg_truncated_to_mode. - * rtlanal.c (truncated_to_mode): Define it. - * simplify-rtx.c (simplify_unary_operation_1): Use it. - -2006-02-28 Jeff Law - - * tree-chrec.c (chrec_convert_aggressive): Do not eliminate - conversions where TYPE_MIN_VALUE/TYPE_MAX_VALUE do not cover - the range allowed by TYPE_PRECISION. - - * tree.h (strct phi_arg_d): Remove unused NONZERO field. - -2006-02-28 Dorit Nuzman - - PR tree-optimization/26419 - * doc/invoke.texi (ftree-vectorizer-verbose): Add information on - values of n. - -2006-02-27 Zack Weinberg - - * doc/md.texi: Fix typo in previous change. - -2006-02-27 Kenneth Zadeck - - * df.c: Remove. - -2006-02-27 Zack Weinberg - - * rtl.def (define_constraint, define_register_constraint) - (define_memory_constraint, define_address_constraint): New MD forms. - * gensupport.c (process_rtx): Put define_constraint etc on the - predicate queue. - * genpreds.c (process_define_predicate): Adjust comment. Validate - the name, and call validate_exp to validate the expression. - (mark_mode_tests, write_extract_subexp): Can assume correct input. - (write_predicate_expr): Likewise. NAME argument no longer necessary; - all callers changed. - (validate_exp, needs_variable, struct constraint_data) - (constraints_by_letter_table, first_constraint, last_constraint_ptr) - (FOR_ALL_CONSTRAINTS, generic_constraint_letters, const_int_constraints) - (const_dbl_constraints, constraint_max_namelen) - (have_register_constraints, have_memory_constraints) - (have_address_constraints, have_address_constraints) - (have_extra_constraints, have_const_int_constraints) - (have_const_dbl_constraints, mangle, add_constraint) - (process_define_constraint, process_define_register_constraint) - (write_enum_constraint_num, write_lookup_constraint) - (write_insn_constraint_len, write_regclass_for_constraint) - (write_constraint_satisfied_p, write_insn_const_int_ok_for_constraint) - (write_insn_extra_memory_constraint) - (write_insn_extra_address_constraint) - (write_satisfies_constraint_fns): New. - (write_tm_preds_h): If we have new-style constraint definitions, - prototype the functions generated from them, and define the - old constraint interface (still used by generic code) in terms of - those functions. - (write_insn_preds_c): If we have new-style constraint definitions, - generate all relevant functions from those definitions. - (main): Handle define_constraint etc. - * genoutput.c (struct constraint_data, indep_constraints) - (mdep_constraint_letters, constraints_by_letter_table, note_constraint) - (mdep_constraint_len): New data structures and functions, defined - #ifdef USE_MD_CONSTRAINTS. - (check_constraint_len): Don't define #ifdef USE_MD_CONSTRAINTS. - (validate_insn_alternatives): If USE_MD_CONSTRAINTS is defined, - use new logic to validate operand constraints against constraint - definitions. - (main): Process define_constraint etc. if USE_MD_CONSTRAINTS is - defined. - * defaults.h: If none of the old-style constraint macros are - defined, define USE_MD_CONSTRAINTS; do not provide defaults for any - old-style macros; and poison REG_CLASS_FROM_LETTER, - CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P, and - EXTRA_CONSTRAINT. - * recog.c (reg_fits_class_p): If cl is NO_REGS, return 0 immediately. - * doc/md.texi: Document new constraint-definition mechanism and the - C interface it provides. Remove references to old mechanism - elsewhere in the document. - (Machine Constraints): Use pathnames relative to gcc directory, - i.e. config/ARCH/FILE. Change i386 section to refer to - config/i386/predicates.md; update that section to match docstrings. - * doc/tm.texi: Move all documentation of the old constraint- - definition macros to their own section, clearly mark as obsolete. - - * config/i386/predicates.md (R, q, Q, l, a, b, c, d, S, D, A, f, t) - (u, y, x, Y, I, J, K, L, M, N, O, G, C, e, Z): New constraint - definitions. - * config/i386/i386.h (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P) - (CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete. - * config/i386/i386.md (*movdf_nointeger): Remove stray 'H' from - constraint strings. - (splits and peepholes): Use satisfies_constraint_*. - * config/i386/i386.c (memory_address_length) - (ix86_attr_length_immediate_default): Use satisfies_constraint_*. - -2006-02-27 Daniel Berlin - - * lambda-code.c (can_convert_to_perfect_nest): Allow any type of - scalar operation to be put back into the loop. - -2006-02-27 Jakub Jelinek - - PR other/26208 - * unwind-dw2.c (struct _Unwind_Context): Add signal_frame field. - (extract_cie_info): Handle S flag in augmentation string. - (execute_cfa_program): If context->signal_frame, execute also - fs->pc == context->ra instructions. - (uw_frame_state_for): If context->signal_frame, don't subtract one - from context->ra to find FDE. - (uw_update_context_1): Set context->signal_frame to - fs->signal_frame. - (_Unwind_GetIPInfo): New function. - * unwind-dw2.h (_Unwind_FrameState): Add signal_frame field. - * unwind-c.c (PERSONALITY_FUNCTION): Use _Unwind_GetIPInfo instead - of _Unwind_GetIP. - * unwind-sjlj.c (_Unwind_GetIPInfo): New function. - * unwind-generic.h (_Unwind_GetIPInfo): New prototype. - * unwind-compat.c (_Unwind_GetIPInfo): New function. - * libgcc-std.ver (_Unwind_GetIPInfo): Export @@GCC_4.2.0. - * config/ia64/unwind-ia64.c (_Unwind_GetIPInfo): New function. - * config/arm/unwind-arm.h (_Unwind_GetIPInfo): Define. - * config/i386/linux-unwind.h (x86_fallback_frame_state, - x86_64_fallback_frame_state): Set fs->signal_frame. - * config/rs6000/linux-unwind.h (ppc_fallback_frame_state): Likewise. - (MD_FROB_UPDATE_CONTEXT): Define unconditionally. - (frob_update_context): Likewise. Workaround missing S flag in - Linux 2.6.12 - 2.6.16 kernel vDSOs. - * config/s390/linux-unwind.h (s390_fallback_frame_state): Likewise. - Remove the psw_addr + 1 hack. - -2006-02-27 Daniel Berlin - - * tree-ssa-structalias.c (get_constraint_for): Move code to deal - with aggregates here. - (find_func_aliases): Remove code for & from here. - -2006-02-26 Roger Sayle - - * fold-const.c (fold_binary) : Fold (~X & C) eq/ne 0 as - (X & C) ne/eq 0, where C is a single bit, i.e. a power of two. - Fold both "((X & C) ^ C) eq/ne 0" and "((X ^ C) & C) eq/ne 0" - as (X & C) ne/eq 0. - -2006-02-26 Roger Sayle - - PR middle-end/19983 - * real.c (real_nan): Allow both 0x and 0X as hexadecimal prefixes. - -2006-02-26 Zdenek Dvorak - - * opts.c (decode_options): Do not handle flag_strength_reduce. - (common_handle_option): Handle OPT_floop_optimize, OPT_frerun_loop_opt - and OPT_fstrength_reduce. - * tree-ssa-loop.c (tree_ssa_loop_prefetch): Only test - flag_prefetch_loop_arrays for being nonzero. - * common.opt (floop-optimize, frerun-loop-opt): Resurrected as - no-ops. - (fprefetch-loop-arrays-rtl): Removed. - (flag_prefetch_loop_arrays): Do not specify the value. - - * doc/passes.texi: Update documentation of loop optimizer - passes. - * doc/invoke.texi (-fstrength-reduce, -fprefetch-loop-arrays-rtl, - -frerun-loop-opt): Remove. - -2006-02-26 Richard Guenther - - PR tree-optimization/26421 - * tree-ssa-alias.c (find_used_portions): Don't treat parameters - in function calls that are ADDR_EXPRs as using the whole structure. - -2006-02-26 Steven Bosscher - - * common.opt (-floop-optimize, -frerun-loop-opt): Remove. - * tree-pass.h (pass_loop_optimize): Remove. - * passes.c (pass_loop_optimize): Never run it. - * toplev.c (backend_init): Don't call init_loop. - * opts.c (flag_loop_optimize_set): Remove. - (decode_options): Never set flag_loop_optimize or flag_rerun_loop_opt. - (common_handle_option) : Remove. Don't disable - the old RTL loop optimizer when profiling enabled. - * predict.c (tree_estimate_probability): Always strip builtin_expect. - * cfgcleanup.c (try_forward_edges): Don't avoid killing loop - pre-headers for the sake of the old RTL loop optimizer. - * Makefile.in: Remove all references to loop.o. - - * doc/invoke.texi: Remove all references to -floop-optimize - and -frerun-loop-opt. - -2006-02-26 Zack Weinberg - - * doc/md.texi (Machine Constraints): Refer to all files with paths - relative to gcc directory (i.e. config/CPU/file). Add missing - @table @code ... @end table to M32C subsection. - -2006-02-26 Roger Sayle - - * fold-const.c (fold_binary) : Fold (X & 1) ^ 1 as - (X & 1) == 0. - : Fold (X ^ 1) & 1 and ~X & 1 as (X & 1) == 0. - -2006-02-26 Roger Sayle - James A. Morrison - - PR middle-end/21137 - * fold-const.c (fold_binary) : Fold ((X>>C1)&C2) eq/ne 0, - when C2 is a power of two, as either (X&(C2< - - PR tree-optimization/26359 - * tree-ssa-alias.c (new_type_alias): Set fields for new tag. - -2006-02-25 Roger Sayle - - * simplify-rtx.c (simplify_relational_operation_1): Simplify - (X^Y) == 0 as X == Y and (X^Y) != 0 as X != Y. Simplify (X^Y) == Y - as X == 0, and some symmetry related transformations. - Simplify (X^C1) == C2 as X == (C1^C2). Split long comment line. - -2006-02-25 Roger Sayle - - PR middle-end/23673 - * fold-const.c (fold_binary) : Fold (X^Y) == 0 as X == Y - and (X^Y) != 0 as X != Y. Fold (X^Y) == Y as X == 0, and some - symmetry related transformations. Fold (X^C1) == C2 as - X == (C1^C2). - -2006-02-25 Juergen Weigert - Richard Guenther - - * scan-decls.c (scan_decls): Don't fetch new statement after CPP_EOF. - -2006-02-24 Adam Nemet - - * combine.c (gen_lowpart_or_truncate): Call - simplify_gen_unary(TRUNCATE, ...) instead of gen_rtx_TRUNCATE. - -2006-02-24 Diego Novillo - - * doc/invoke.texi: Move -fopenmp description to "Options for - Code Generation". - Remove reference to -lgomp. - -2006-02-24 David Edelsohn - - * doc/install.texi: Require GNU tar version 1.14. - -2006-02-24 Geoffrey Keating - - * doc/tm.texi (Run-time Target): Document C_COMMON_OVERRIDE_OPTIONS. - * doc/invoke.texi (C++ Dialect Options): Document - -fno-use-cxa-get-exception-ptr. - * configure.ac: Define DEFAULT_USE_CXA_ATEXIT to 2 not 1. - * configure: Regenerate. - * c.opt (fuse-cxa-get-exception-ptr): New. - * c-opts.c (c_common_handle_option): Handle - OPT_fuse_cxa_get_exception_ptr. - * c-common.c (flag_use_cxa_atexit): Update documentation. - (flag_use_cxa_get_exception_ptr): New. - * c-common.h (flag_use_cxa_get_exception_ptr): New. - * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Improve - documentation. - (C_COMMON_OVERRIDE_OPTIONS): New. - -2006-02-24 Roger Sayle - - PR middle-end/24952 - * combine.c (try_combine): Explicitly check whether GET_CODE is - a SET or a CLOBBER, instead on checking that it isn't a USE. - -2006-02-24 Roger Sayle - - * fold-const.c (fold_comparison): New subroutine of fold_binary - containing transformations common to both the equality and - ordering relational operators, factored out of fold_binary. - (fold_binary): Separate out the equality operators (EQ_EXPR - and NE_EXPR) from the ordering operators (LT_EXPR, GT_EXPR, - LE_EXPR and GE_EXPR), calling fold_comparison to perform the - transformations common to both. - (fold_div_compare): Fix latent bugs in the previously unreachable - LT_EXPR and GE_EXPR cases. - -2006-02-24 David Edelsohn - - * config/rs6000/rs6000.c (rs6000_init_builtins): Change - decl libname for clog to __clog on AIX. - - * config/rs6000/xcoff.h (MAX_OFILE_ALIGNMENT): Define. - -2006-02-24 Alan Modra - - PR target/26453 - * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Don't - output traceback table for thunks. Localise rs6000_stack_info call. - -2006-02-23 Roger Sayle - Rainer Orth - - * gthr-posix.h (__gthrw): Fix typo in comment. - -2006-02-23 Geoffrey Keating - - * doc/cpp.texi (Character sets): Document that we do support - input files to be in any character set. - -2006-02-23 Jeff Law - - * tree.h (PHI_ARG_NONZERO): Remove. - * tree-phinodes.c (add_phi_arg): No longer initialize PHI_ARG_NONZERO. - (remove_phi_arg_num): No longer copy PHI_ARG_NONZERO from the old - node to the new node. - - PR tree-optimization/26425 - * tree-vrp.c (vrp_visit_assignment): If the LHS's type has a NULL - min/max, then assume its varying. - -2006-02-23 Zdenek Dvorak - - PR rtl-optimization/26316 - * rtlanal.c (enum may_trap_p_flags): New. - (may_trap_p_1): Take flags instead of unaligned_mems argument. Ignore - MEM_NOTRAP_P if flags & MTP_AFTER_MOVE. - (may_trap_p, may_trap_or_fault_p): Pass flags to may_trap_p_1. - (may_trap_after_code_motion_p): New function. - * loop-invariant.c (find_identical_invariants): Fix dump formating. - (find_invariant_insn): Use may_trap_after_code_motion_p. - * rtl.h (may_trap_after_code_motion_p): Declare. - -2006-02-23 Zdenek Dvorak - - * emit-rtl.c (immed_double_const): Cleanup. - -2006-02-23 Daniel Berlin - - Fix PR tree-optimization/26376 - * tree-ssa-structalias.c (find_func_aliases): Use get_id_for_tree, - remove assert. - -2006-02-23 Jakub Jelinek - - PR middle-end/26412 - * gimplify.c (omp_add_variable): Guard variable size decl test with - DECL_SIZE (decl) check. - -2006-02-23 Richard Guenther - - PR middle-end/26439 - * tree-ssa-structalias.c (find_func_aliases): Handle complex types - like aggregate types. - -2006-02-23 Jakub Jelinek - - * configure.ac: Add --with{,out}-long-double-128 configure option. - (TARGET_DEFAULT_LONG_DOUBLE_128): New test. - * configure: Rebuilt. - * config.in: Rebuilt. - * doc/install.texi (Options specification): Document - --with-long-double-128. - - * config/rs6000/linux.h [TARGET_DEFAULT_LONG_DOUBLE_128] - (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Define to 128. - * config/rs6000/linux64.h [TARGET_DEFAULT_LONG_DOUBLE_128] - (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Define to 128. - -2006-02-23 Aldy Hernandez - - * config/s390/s390.c (override_options): Handle - TARGET_DEFAULT_LONG_DOUBLE_128. - - * config/alpha/alpha.c (override_options): Handle - TARGET_DEFAULT_LONG_DOUBLE_128. - - * config/sparc/sparc.c (sparc_override_options): Handle - TARGET_DEFAULT_LONG_DOUBLE_128. - -2006-02-22 Daniel Jacobowitz - - * Makefile.in (stmp-fixinc): Use real-$(INSTALL_HEADERS_DIR). - (real-install-headers-tar, real-install-headers-cpio) - (real-install-headers-cp): New targets. - -2006-02-22 Richard Sandiford - - * tree.h (variable_section): Delete. - * varasm.c (variable_section): Delete. - -2006-02-22 Paolo Bonzini - - * install.texi: Add notes on install.texi2html. - (Building in parallel): Do not use footnotes. - -2006-02-21 Aldy Hernandez - - PR libgomp/26234 - * doc/install.texi (Configuration): Document --disable-libgomp. - -2006-02-21 Geoffrey Keating - - * config/i386/darwin.h (DWARF2_FRAME_REG_OUT): New. - -2006-02-21 Alexandre Oliva - - * config/i386/sse.md (vec_extractv2df_1_sse): New. - (vec_extractv2df_0_sse): New. - -2006-02-21 Alexandre Oliva - - * defaults.h (CFA_FRAME_BASE_OFFSET): Define. - * config/ia64/ia64.h (CFA_FRAME_BASE_OFFSET): Override. - * doc/tm.texi (CFA_FRAME_BASE_OFFSET): Document. - * dwarf2out.c (build_cfa_loc): New offset parameter. Add it - to the result of the expression. - (def_cfa_1): Adjust. - (frame_pointer_cfa_offset): Rename to... - (frame_pointer_fb_offset): ... this. Adjust all uses. - (convert_cfa_to_loc_list): Rename to... - (convert_cfa_to_fb_loc_list): ... this. New offset parameter. - Pass it on to build_cfa_loc. - (compute_frame_pointer_to_cfa_displacement): Rename to... - (compute_frame_pointer_to_fb_displacement): ... this. New - offset parameter. Use it in computation. - (gen_subprogram_die): Compute cfa_fb_offset with the new - macro, and use it to compute the fb loc list and the - displacement. - -2006-02-21 Bernd Schmidt - - * config/bfin/predicates.md (cc_operand): Delete predicate. All uses - replaced with register_operand. - * config/bfin/bfin.c (bfin_register_move_cost): Moving CC to any - non-DREG is expensive. - * config/bfin/bfin.h (FIXED_REGISTERS): CC isn't fixed. - * config/bfin/bfin.md (movbi): Fix constraints and template for moves - involving memory. - -2006-02-21 Joseph S. Myers - - * doc/install.texi2html: Use set -e. - -2006-02-21 Richard Sandiford - - * doc/tm.texi (ASM_OUTPUT_SHARED_COMMON, ASM_OUTPUT_SHARED_BSS) - (ASM_OUTPUT_SHARED_LOCAL): Delete. - * doc/invoke.texi (-fshared-data): Delete. - * common.opt (fshared-data): Delete. - * varasm.c (asm_emit_uninitialised): Remove flag_shared_data handling. - (assemble_static_space): Remove #if 0 code. - * system.h (ASM_OUTPUT_SHARED_COMMON, ASM_OUTPUT_SHARED_BSS) - (ASM_OUTPUT_SHARED_LOCAL): Poison. - * config/cris/cris.h: Remove FIXME. - -2006-02-21 Paolo Bonzini - - * doc/sourcebuild.texi (Front End Directory): No more double-colon - hooks. - -2006-02-21 Jakub Jelinek - - PR middle-end/26379 - * combine.c (simplify_shift_const_1): Disable nested shifts - optimization for vector shifts. - -2006-02-20 Roger Sayle - - PR tree-optimization/26361 - * tree-vrp.c (extract_range_from_unary_expr): Handle NEGATE_EXPR - of unsigned integer types. - -2006-02-20 Sebastian Pop - - * tree-chrec.c (eq_evolutions_p): New. - * tree-chrec.h (eq_evolutions_p): Declared. - * tree-data-ref.c: Fix formatting. - (datadep_stats, dependence_stats): New. - (gcd): Moved... - (print_direction_vector): New. - (dump_data_dependence_relation): Use print_direction_vector. - (object_analysis, create_data_ref): Handle COMPONENT_REF. - (compute_subscript_distance): Static. - (initialize_data_dependence_relation): Static. Get the number - of loops surrounding the references from the callers, and initialize - DDR_SIZE_VECT to nb_loops. Use both base_addr_differ_p and - base_object_differ_p analyzers. - (analyze_ziv_subscript, analyze_siv_subscript_cst_affine, - compute_overlap_steps_for_affine_1_2, - analyze_subscript_affine_affine): Count the classified dependences. - Print a message when a test failed. - (can_use_analyze_subscript_affine_affine): New. - (analyze_siv_subscript): Compute the data dependences on symbolic - scevs that verify can_use_analyze_subscript_affine_affine. - (chrec_steps_divide_constant_p): Returns true, false, or unknown. - (analyze_miv_subscript): Update use of chrec_steps_divide_constant_p. - Handle symbolic scevs. - (analyze_overlapping_iterations): Let symbolic affine scevs to be - analyzed. - (subscript_dependence_tester): Moved... - (build_classic_dist_vector, build_classic_dir_vector): Don't use - lambda_vector_clear on newly allocated vectors. Get nb_loops from - DDR_SIZE_VECT instead of getting it in parameter. - (subscript_dependence_tester): ... here. Take as a parameter - loop_nest_depth. Call build_classic_dist_vector and - build_classic_dir_vector. - (compute_affine_dependence): Update subscript_dependence_tester - parameters. Update datadep_stats counters. Call - compute_subscript_distance. - (compute_self_dependence): Save the dist and dir vectors. Call - compute_subscript_distance. - (ddr_p, DEF_VEC_P(ddr_p), DEF_VEC_ALLOC_P(ddr_p,heap)): Moved... - (compute_all_dependences): Reorder parameters as they were before - conversion to VEC. Pass nb_loops and loop_nest_depth. Don't call - compute_subscript_distance. Update the use of - compute_affine_dependence and initialize_data_dependence_relation. - (find_data_references_in_loop): Handle COMPONENT_REF. - (compute_data_dependences_for_loop): Initialize dependence_stats. - Don't call build_classic_dist_vector and build_classic_dir_vector. - Update the parameters of initialize_data_dependence_relation and - compute_all_dependences. Print the statistics from datadep_stats. - (analyze_all_data_dependences): Static. Not used until the pass for - checking the data dependences is contributed. - * tree-data-ref.h (ddr_p, DEF_VEC_P(ddr_p), - DEF_VEC_ALLOC_P(ddr_p,heap)): ... here. - (initialize_data_dependence_relation, compute_affine_dependence, - analyze_all_data_dependences, compute_subscript_distance): Removed. - (print_direction_vector): New. - * lambda.h (gcd): ... here. - (lambda_vector_gcd): Moved here from gcd_vector. - * lambda-code.c (gcd, gcd_vector): Removed. - (lambda_compute_target_space): Use lambda_vector_gcd. Fix formatting. - * Makefile.in (tree-vect-patterns.o): Depends on TREE_DATA_REF_H. - -2006-02-20 Diego Novillo - - * ipa-type-escape.c: Tidy some comments and white space. - * tree-ssa-operands.c: Likewise. - -2006-02-20 Andrew Pinski - - PR tree-opt/25879 - * tree-pretty-print.c (debug_tree_chain): Walk the chains. - (dump_decl_name): Do not walk the decl tree chains. - * tree-pass.h (TDF_CHAIN): Remove. - -2006-02-20 Rafael Ávila de Espíndola - - * Makefile.in (C): Remove - (PROTO): Remove - (.PHONY): Remove C and PROTO - -2006-02-20 Roger Sayle - - PR middle-end/26236 - * doc/c-tree.texi (INTEGER_TYPE): Remove reference to the now - deprecated CHAR_TYPE tree code. - -2006-02-20 Paolo Bonzini - - * configure.ac (target_list): Add install-info, dvi, html. - * configure: Regenerate. - - * ada/Make-lang.in, cp/Make-lang.in, fortran/Make-lang.in, - java/Make-lang.in, objc/Make-lang.in, objcp/Make-lang.in, - treelang/Make-lang.in: Do not use double-colon rules. - -2006-02-20 Daniel Berlin - - * tree.h (struct tree_memory_tag): Add is_used_alone member. - (TMT_USED_ALONE): New macro. - * tree-pass.h (PROP_tmt_usage): New property. - (TODO_update_tmt_usage): New todo. - * tree-ssa-alias.c (updating_used_alone): New variable. - (recalculate_used_alone): New function. - (compute_may_aliases): Set updating_used_alone, call - recalculate_used_alone. - * tree-sra.c (pass_sra): Note that this pass destroys - PROP_tmt_usage, and add TODO_update_tmt_usage. - * tree-ssa-forwprop.c (pass_forwprop): Ditto. - * tree-flow.h (updating_used_alone): Prototype. - (recalculate_used_alone): Ditto. - * passes.c (execute_todo): Add code to set updating_used_alone, - and call recalculate. - * tree-ssa-operands.c (add_virtual_operand): Only append bare def - for clobber if used alone, and add assert to verify used_alone - status. - -2006-02-20 Angel Nunez Mencias - - * config/s390/s390.c (legitimize_pic_address): Assertions checking - for non tls symbols added. - (legitimize_address): Do nothing for PLUS expressions if one of the - addends is a tls symbol reference. - -2006-02-20 Paolo Bonzini - - PR bootstrap/25476 - - * Makefile.in (LDFLAGS): Define from autoconf substitution. - - * Makefile.in (BOOTSTRAPPING): New. - (quickstrap): New definition if BOOTSTRAPPING=yes. - - * Makefile.in (CONFIG_LANGUAGES): Substitute all_selected_languages. - * configure.ac: Substitute all_selected_languages with the languages - that were configured. For all the other variables except - lang_specs_files, include all the languages in the tree. - * configure: Regenerate. - - * Makefile.in (stmp-fixinc): Copy includes from the prev-gcc directory, - if there is one. Run the commands to run fixincludes in the same - subshell. - - * doc/makefile.texi: Document new makefile targets from toplevel bootstrap. - * doc/install.texi: Document exact conventions for searching target tools. - Document --with-build-time-tools. Document toplevel bootstrap. Document - something more about building an Ada cross-compiler. Don't list GNU Make - requirements which affect all platforms. - -2006-02-19 Roger Sayle - - PR middle-end/19543 - * varasm.c (compare_constant) : Integer constants are - only equivalent if the have both the same mode and precision. - -2006-02-20 Ben Elliston - - * doc/tree-ssa.texi (Interfaces): Describe low vs. high GIMPLE. - -2006-02-19 Roger Sayle - Steven Bosscher - - * gcse.c (want_to_gcse_p): On STACK_REGS targets, look through - constant pool references to identify stack mode constants. - * rtlanal.c (constant_pool_constant_p): New predicate to check - whether operand is a floating point constant in the pool. - * rtl.h (constant_pool_constant_p): Prototype here. - * loop.c (scan_loop): Avoid hoisting constants from the constant - pool on STACK_REGS targets. - (load_mems): Likewise. - * loop-invariant.c (get_inv_cost): Make hoisting constant pool - loads into x87 registers expensive in terms of register pressure. - -2006-02-19 Roger Sayle - - * gthr-posix.h: On Tru64, map __gthr_foo as a weak reference to - __foo and not foo when _PTHREAD_USE_MANGLED_NAMES_ is defined. - -2006-02-19 David Edelsohn - - * config/rs6000/xcoff.h (TARGET_ASM_OUTPUT_ANCHOR): Define. - * config/rs6000/rs6000.c (rs6000_xcoff_asm_output_anchor): Define. - -2006-02-19 Daniel Berlin - - * doc/invoke.texi: Document -fipa-pta. - * common.opt: Add ipa-pta option. - * tree-ssa-structalias.c (DONT_PROPAGATE_WITH_ANYTHING): Removed. - (do_sd_constraint): Enable DONT_PROPAGATE_WITH_ANYTHING code. - (do_ds_constraint): Ditto. - (get_constraint_for): Only add to referenced_vars if - referenced_vars exists. - (insert_into_field_list): Rewrite to do this unsorted. - (insert_into_field_list_sorted): Rename old insert_into_field_list - to this. - (create_function_info_for): Use insert_into_field_list_sorted. - (create_variable_info_for): Rewrite so it uses unsorted version, - since the field list is sorted. - (intra_create_variable_infos): Only add to referenced_vars if - referenced_vars exists. - (ipa_pta_execute): Init heapvars, and delete when done. - * passes.c (init_optimization_passes): Add call to pass_ipa_pta. - -2006-02-19 John David Anglin - - * doc/install.texi: Add missing `@samp'. - -2006-02-18 Andrew Pinski - - * config/rs6000/darwin.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): - Use the arguments. - -2006-02-18 Mark Wielaard - - * doc/contrib.texi (Contributors): Add classpath/libgcj hackers - who added new 4.1 features, bug fixes and integration support. - -2006-02-18 David Edelsohn - - PR target/26350 - * config/rs6000/rs6000.md (extenddftf2): Force 0.0 to validized - MEM for ABI_V4 pic. - -2006-02-18 Richard Sandiford - - * cselib.c (cselib_init): Change RTX_SIZE to RTX_CODE_SIZE. - * emit-rtl.c (copy_rtx_if_shared_1): Use shallow_copy_rtx. - (copy_insn_1): Likewise. Don't copy each field individually. - Reindent. - * read-rtl.c (apply_macro_to_rtx): Use RTX_CODE_SIZE instead - of RTX_SIZE. - * reload1.c (eliminate_regs): Use shallow_copy_rtx. - * rtl.c (rtx_size): Rename variable to... - (rtx_code_size): ...this. - (rtx_size): New function. - (rtx_alloc_stat): Use RTX_CODE_SIZE instead of RTX_SIZE. - (copy_rtx): Use shallow_copy_rtx. Don't copy each field individually. - Reindent. - (shallow_copy_rtx_stat): Use rtx_size instead of RTX_SIZE. - * rtl.h (rtx_code_size): New variable. - (rtx_size): Change from a variable to a function. - (RTX_SIZE): Rename to... - (RTX_CODE_SIZE): ...this. - - PR target/9703 - PR tree-optimization/17106 - * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Document. - (Anchored Addresses): New section. - * doc/invoke.texi (-fsection-anchors): Document. - * doc/rtl.texi (SYMBOL_REF_IN_BLOCK_P, SYMBOL_FLAG_IN_BLOCK): Likewise. - (SYMBOL_REF_ANCHOR_P, SYMBOL_FLAG_ANCHOR): Likewise. - (SYMBOL_REF_BLOCK, SYMBOL_REF_BLOCK_OFFSET): Likewise. - * hooks.c (hook_bool_mode_rtx_false): New function. - * hooks.h (hook_bool_mode_rtx_false): Declare. - * gengtype.c (create_optional_field): New function. - (adjust_field_rtx_def): Add the "block_sym" field for SYMBOL_REFs when - SYMBOL_REF_IN_BLOCK_P is true. - * target.h (output_anchor, use_blocks_for_constant_p): New hooks. - (min_anchor_offset, max_anchor_offset): Likewise. - (use_anchors_for_symbol_p): New hook. - * toplev.c (compile_file): Call output_object_blocks. - (target_supports_section_anchors_p): New function. - (process_options): Check that -fsection-anchors is only used on - targets that support it and when -funit-at-a-time is in effect. - * tree-ssa-loop-ivopts.c (prepare_decl_rtl): Only create DECL_RTL - if the decl doesn't have one. - * dwarf2out.c: Remove instantiations of VEC(rtx,gc). - * expr.c (emit_move_multi_word, emit_move_insn): Pass the result - of force_const_mem through use_anchored_address. - (expand_expr_constant): New function. - (expand_expr_addr_expr_1): Call it. Use the same modifier when - calling expand_expr for INDIRECT_REF. - (expand_expr_real_1): Pass DECL_RTL through use_anchored_address - for all modifiers except EXPAND_INITIALIZER. Use expand_expr_constant. - * expr.h (use_anchored_address): Declare. - * loop-unroll.c: Don't declare rtx vectors here. - * explow.c: Include output.h. - (validize_mem): Call use_anchored_address. - (use_anchored_address): New function. - * common.opt (-fsection-anchors): New switch. - * varasm.c (object_block_htab, anchor_labelno): New variables. - (hash_section, object_block_entry_eq, object_block_entry_hash) - (use_object_blocks_p, get_block_for_section, create_block_symbol) - (use_blocks_for_decl_p, change_symbol_section): New functions. - (get_variable_section): New function, split out from assemble_variable. - (make_decl_rtl): Create a block symbol if use_object_blocks_p and - use_blocks_for_decl_p say so. Use change_symbol_section if the - symbol has already been created. - (assemble_variable_contents): New function, split out from... - (assemble_variable): ...here. Don't output any code for - block symbols; just pass them to place_block_symbol. - Use get_variable_section and assemble_variable_contents. - (get_constant_alignment, get_constant_section, get_constant_size): New - functions, split from output_constant_def_contents. - (build_constant_desc): Create a block symbol if use_object_blocks_p - says so. Or into SYMBOL_REF_FLAGS. - (assemble_constant_contents): New function, split from... - (output_constant_def_contents): ...here. Don't output any code - for block symbols; just pass them to place_section_symbol. - Use get_constant_section and get_constant_alignment. - (force_const_mem): Create a block symbol if use_object_blocks_p and - use_blocks_for_constant_p say so. Or into SYMBOL_REF_FLAGS. - (output_constant_pool_1): Add an explicit alignment argument. - Don't switch sections here. - (output_constant_pool): Adjust call to output_constant_pool_1. - Switch sections here instead. Don't output anything for block symbols; - just pass them to place_block_symbol. - (init_varasm_once): Initialize object_block_htab. - (default_encode_section_info): Keep the old SYMBOL_FLAG_IN_BLOCK. - (default_asm_output_anchor, default_use_aenchors_for_symbol_p) - (place_block_symbol, get_section_anchor, output_object_block) - (output_object_block_htab, output_object_blocks): New functions. - * target-def.h (TARGET_ASM_OUTPUT_ANCHOR): New macro. - (TARGET_ASM_OUT): Include it. - (TARGET_USE_BLOCKS_FOR_CONSTANT_P): New macro. - (TARGET_MIN_ANCHOR_OFFSET, TARGET_MAX_ANCHOR_OFFSET): New macros. - (TARGET_USE_ANCHORS_FOR_SYMBOL_P): New macro. - (TARGET_INITIALIZER): Include them. - * rtl.c (rtl_check_failed_block_symbol): New function. - * rtl.h: Include vec.h. Declare heap and gc rtx vectors. - (block_symbol, object_block): New structures. - (rtx_def): Add a block_symbol field to the union. - (BLOCK_SYMBOL_CHECK): New macro. - (rtl_check_failed_block_symbol): Declare. - (SYMBOL_FLAG_IN_BLOCK, SYMBOL_FLAG_ANCHOR): New SYMBOL_REF flags. - (SYMBOL_REF_IN_BLOCK_P, SYMBOL_REF_ANCHOR_P): New predicates. - (SYMBOL_FLAG_MACH_DEP_SHIFT): Bump by 2. - (SYMBOL_REF_BLOCK, SYMBOL_REF_BLOCK_OFFSET): New accessors. - * output.h (output_section_symbols): Declare. - (object_block): Name structure. - (place_section_symbol, get_section_anchor, default_asm_output_anchor) - (default_use_anchors_for_symbol_p): Declare. - * Makefile.in (RTL_BASE_H): Add vec.h. - (explow.o): Depend on output.h. - * config/rs6000/rs6000.c (TARGET_MIN_ANCHOR_OFFSET): Override default. - (TARGET_MAX_ANCHOR_OFFSET): Likewise. - (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Likewise. - (rs6000_use_blocks_for_constant_p): New function. - -2006-02-18 John David Anglin - - * doc/install.texi (hppa*-hp-hpux*): Update for 4.1.0. - -2006-02-18 Andrew Pinski - - PR tree-opt/25680 - * tree-ssa-ccp.c (ccp_fold): Handle store CCP of REALPART_EXPR and - IMAGPART_EXPR. - -2006-02-18 Diego Novillo - - * tree-flow.h (struct var_ann_d): Rename field is_alias_tag to - is_aliased. - Update all users. - -2006-02-18 Jakub Jelinek - - PR middle-end/26334 - * stmt.c (decl_overlaps_hard_reg_set_p): Use DECL_HARD_REGISTER - instead of DECL_REGISTER. - -2006-02-18 Olivier Hainque - - PR ada/13408 - * pa.h (WIDEST_HARDWARE_FP_SIZE): Define. - -2006-02-18 Joseph S. Myers - - PR target/24837 - * config.gcc: Define UCLIBC_DEFAULT to 0 or 1. - * opth-gen.awk: Handle Var and InverseMask together. - * config/linux.opt (muclibc, mglibc): Use Var(linux_uclibc). - * config/linux.h: Use #if not #ifdef for testing UCLIBC_DEFAULT. - (TARGET_C99_FUNCTIONS): Test OPTION_GLIBC not TARGET_GLIBC. - (CHOOSE_DYNAMIC_LINKER): Give an error for -mglibc and -muclibc - used together. - (UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64, - LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64): Define. - * config/alpha/linux-elf.h (GLIBC_DYNAMIC_LINKER, - UCLIBC_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER, - LINUX_DYNAMIC_LINKER): Define. - (ELF_DYNAMIC_LINKER): Define to LINUX_DYNAMIC_LINKER. - * config/alpha/linux.h (TARGET_C99_FUNCTIONS): Define to - TARGET_GLIBC. - * config/cris/linux.h (GLIBC_DYNAMIC_LINKER): Define. - (CRIS_LINK_SUBTARGET_SPEC): Pass a -dynamic-linker option. - * config/frv/linux.h (GLIBC_DYNAMIC_LINKER): Define. - (LINK_SPEC): Use LINUX_DYNAMIC_LINKER. - (TARGET_C99_FUNCTIONS): Don't define. - * config/i386/linux.h (DYNAMIC_LINKER): Rename to - GLIBC_DYNAMIC_LINKER. - (SUBTARGET_EXTRA_SPECS): Use LINUX_DYNAMIC_LINKER. - * config/i386/linux64.h (GLIBC_DYNAMIC_LINKER32, - GLIBC_DYNAMIC_LINKER64): Define. - (LINK_SPEC): Use LINUX_DYNAMIC_LINKER32 and - LINUX_DYNAMIC_LINKER64. - * config/ia64/linux.h (GLIBC_DYNAMIC_LINKER): Define. - (LINK_SPEC): Use LINUX_DYNAMIC_LINKER. - * config/m32r/linux.h (GLIBC_DYNAMIC_LINKE): Define. - (LINK_SPEC): Use LINUX_DYNAMIC_LINKER. - * config/m68k/linux.h (GLIBC_DYNAMIC_LINKER): Define. - (LINK_SPEC): Use LINUX_DYNAMIC_LINKER. - * config/mips/linux64.h (GLIBC_DYNAMIC_LINKER32, - GLIBC_DYNAMIC_LINKER64, GLIBC_DYNAMIC_LINKERN32, - UCLIBC_DYNAMIC_LINKERN32, LINUX_DYNAMIC_LINKERN32): Define. - (LINK_SPEC): Use LINUX_DYNAMIC_LINKERN32, LINUX_DYNAMIC_LINKER64 - and LINUX_DYNAMIC_LINKER32. - * config/mn10300/linux.h (GLIBC_DYNAMIC_LINKER): Define. - (LINK_SPEC): Use LINUX_DYNAMIC_LINKER. - * config/pa/pa-linux.h (GLIBC_DYNAMIC_LINKER): Define. - (LINK_SPEC): Use LINUX_DYNAMIC_LINKER. - * config/rs6000/linux.h (TARGET_C99_FUNCTIONS): Define to - TARGET_GLIBC. - * config/rs6000/linux64.h (TARGET_C99_FUNCTIONS): Likewise. - (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64, - UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64, - CHOOSE_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER, - LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64): Define. - (LINK_OS_LINUX_SPEC32): Use LINUX_DYNAMIC_LINKER32. - (LINK_OS_LINUX_SPEC64): Use LINUX_DYNAMIC_LINKER64. - * config/rs6000/sysv4.h (GLIBC_DYNAMIC_LINKER, - UCLIBC_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER, - LINUX_DYNAMIC_LINKER): Define. - (LINK_OS_LINUX_SPEC): Use LINUX_DYNAMIC_LINKE. - * config/s390/linux.h (GLIBC_DYNAMIC_LINKER32, - GLIBC_DYNAMIC_LINKER64): Define. - (LINK_SPEC): Use LINUX_DYNAMIC_LINKER32 and - LINUX_DYNAMIC_LINKER64. - * config/sh/linux.h (GLIBC_DYNAMIC_LINKER): Define. - (SUBTARGET_LINK_SPEC): Use LINUX_DYNAMIC_LINKER. - * config/sparc/linux.h (GLIBC_DYNAMIC_LINKER, - UCLIBC_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER, - LINUX_DYNAMIC_LINKER): Define. - (LINK_SPEC): Use LINUX_DYNAMIC_LINKER. - (TARGET_C99_FUNCTIONS): Define to TARGET_GLIBC. - * config/sparc/linux64.h (GLIBC_DYNAMIC_LINKER32, - GLIBC_DYNAMIC_LINKER64, UCLIBC_DYNAMIC_LINKER32, - UCLIBC_DYNAMIC_LINKER64, CHOOSE_DYNAMIC_LINKER, - LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64): Define. - (LINK_ARCH32_SPEC): Use LINUX_DYNAMIC_LINKER32. - (LINK_ARCH64_SPEC, LINK_SPEC): Use LINUX_DYNAMIC_LINKER64. - (TARGET_C99_FUNCTIONS): Define to TARGET_GLIBC. - * config/xtensa/linux.h (GLIBC_DYNAMIC_LINKER): Define. - (LINK_SPEC): Use LINUX_DYNAMIC_LINKER. - * doc/invoke.texi (-muclibc): Remove caveat about supported - targets. - -2006-02-17 Grigory Zagorodnev - - * doc/cpp.texi (__TIMESTAMP__): Document. - -2006-02-17 Roger Sayle - - PR middle-end/25600 - * fold-const.c (fold_binary): Fold (X >> C) != 0 into X < 0 when - C is one less than the width of X (and related transformations). - * simplify-rtx.c (simplify_unary_operation_1): Transform - (neg (lt x 0)) into either (ashiftrt X C) or (lshiftrt X C) - depending on STORE_FLAG_VALUE, were C is one less then the - width of X. - -2006-02-17 Daniel Berlin - - Fix PR tree-optimization/26341 - * tree-ssa-operands.c (add_virtual_operand): Remove assert - about NAME_MEMORY_TAG's. - -2006-02-17 John David Anglin - - PR target/26255 - * pa.md: Create separate HI and QI move patterns for 32-bit and 64-bit - with hardware float support, and software float support. Add fcpy - alternative to hardware patterns. Add alternatives to copy between - general and floating-point registers to the 32-bit pattern. - * pa.c (pa_secondary_reload): Don't abort if reload tries to find a - secondary reload to load a QI or HI mode constant into a floating - point register. - * pa32-regs.h (VALID_FP_MODE_P): Allow QImode and HImode. - * pa64-regs.h (VALID_FP_MODE_P): Likewise. - -2006-02-17 Andrew Pinski - - PR target/26272 - * config/rs6000/darwin.md (load_macho_picbase_si): Add - pc to the pattern. - (load_macho_picbase_di): Likewise. - -2006-02-16 Jeff Law - - * tree-vrp.c (set_value_range_to_nonnegative): New function. - (vrp_expr_computes_nonnegative, ssa_name_nonnegative_p): Likewise. - (ssa_name_nonzero_p): Likewise. - (get_value_range): Return NULL if VRP is not running. - (extract_range_from_expr): Fallback to tree_expr_XXX_p if - VRP routines do not discover a range. - (vrp_finalize): Clear VR_VALUE to indicate VRP is not running. - * tree.h (ssa_name_nonzero_p, ssa_name_nonnegative_p): Prototype. - * fold-const.c (tree_expr_nonzero_p): For SSA_NAMEs, query VRP. - (tree_expr_nonnegative_p): Similarly. - * tree-ssa-dom.c (nonzero_vars, nonzero_vars_stack): Remove. - (restore_nonzero_vars_to_original_value): Remove. - (unsafe_associative_fp_binop): Remove. - (tree_ssa_dominator_optimize): Remove initialization and - finalization of nonzero_vars and nonzero_vars_stack. - (dom_opt_initialize_block): No longer push marker on - nonzero_vars_stack. - (dom_opt_finalize_block): No longer call - restore_nonzero_vars_to_original_value. - (record_equivalences_from_phis): No longer look for - nonzero PHI arguments. - (cprop_into_successor_phis): No longer propagate nonzero - property into PHI arguments. Lose unused argument. Caller - updated. - (record_equivalences_from_stmt): No longer record nonzero - values for SSA_NAMEs. - (lookup_avail_expr): No longer use nonzero_vars. - - * stor-layout.c (set_sizetype): Set TYPE_MAX_VALUE properly - for sizetype when sizetype is unsigned. - -2006-02-16 Denis Nagorny - - PR rtl-optimization/25603 - * reload.c (reg_inc_found_and_valid_p): New. Check REG_INC note. - (regno_clobbered_p): Use it. Reusing SETS argument for REG_INC case. - * reload1.c (choose_reload_regs): Added call of regno_clobbered_p - with new meaning of SETS. - -2006-02-16 Joseph S. Myers - - PR target/20353 - PR target/24578 - PR target/24837 - * config/linux.opt: New file. - * config/linux.h (CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER, - LINUX_DYNAMIC_LINKER): Define. - (TARGET_C99_FUNCTIONS): Define depending on TARGET_GLIBC. - * config.gcc (*-*-linux*): Define extra_options. - (*-*-*uclibc*): Define UCLIBC_DEFAULT. - (arm*-*-linux-gnueabi): Change to arm*-*-linux-*eabi. - * config/arm/linux-eabi.h (LINUX_TARGET_INTERPRETER): Change to - GLIBC_DYNAMIC_LINKER. - * config/arm/linux-elf.h (LINUX_TARGET_INTERPRETER): Likewise. - (LINUX_TARGET_LINK_SPEC): Use LINUX_DYNAMIC_LINKER. - * config/mips/linux.h (GLIBC_DYNAMIC_LINKER): Define. - (LINK_SPEC): Use LINUX_DYNAMIC_LINKER. - * doc/invoke.texi (GNU/Linux Options): New section. - -2006-02-16 Eric Botcazou - - * config/sparc/sparc.md (setjmp): Rewrite. - (setjmp_32): Delete. - (setjmp_64): Likewise. - -2006-02-16 Daniel Berlin - - * tree-ssa-operands.c (access_can_touch_variable): Fix typo in - previous change. - -2006-02-16 Zdenek Dvorak - - * loop-invariant.c (invariant_for_use, check_dependencies): Fail for - read-write uses. - -2006-02-16 Zdenek Dvorak - - PR rtl-optimization/26296 - * Makefile.in (loop-invariant.c): Add except.h dependency. - * loop-invariant.c: Include except.h. - (find_invariant_insn): Ignore insns satisfying can_throw_internal. - -2005-02-16 Paul Brook - - * reload1.c (emit_reload_insns): Invalidate dead input registers used - for reloads. - -2006-02-16 Bernd Schmidt - - PR rtl-optimization/25636 - * local-alloc.c (update_equiv_regs): Lose a bogus rtx_equal_p test - when deciding whether an insn is an initializing insn. - -2006-02-15 Daniel Berlin - - * tree.c (init_ttree): Add STRUCT_FIELD_TAG handling. - (tree_code_size): Ditto. - * tree.h (struct tree_memory_tag): Remove parent_var. - (struct tree_struct_field_tag): New. - (SFT_OFFSET): New. - (SFT_SIZE): New. - (union tree_node): Add sft member. - * tree-ssa-alias.c (get_tmt_for): Don't handle TYPE_READONLY - specially here. - (create_sft): Add size and offset argument, set SFT_OFFSET and - SFT_SIZE. - (create_overlap_variables_for): Update for SFT_OFFSET/SFT_SIZE. - * treestruct.def: Add TS_STRUCT_FIELD_TAG. - * tree-flow-inline.h (get_subvar_at): Update for - SFT_OFFSET/SFT_SIZE. - (var_can_have_subvars): Ditto. - (overlap_subvar): Ditto. - * print-tree.c (print_node): Print out interesting things for - SFT's. - * tree-flow.h (struct subvar): Remove offset and size members. - * tree-ssa-operands.c (get_expr_operands): Update for - get_indirect_ref_operands changes. - (get_indirect_ref_operands): Call add_virtual_operand instead of - add_stmt_operand. Only recurse on base var if requested. - (access_can_touch_variable): New function. - (add_stmt_operand): Split virtual operand handling into ... - (add_virtual_operand): Here. Add offset, size, and for_clobber - arguments. Prune alias sets. - (add_call_clobber_ops): Call add_virtual_operand. - -2006-02-15 Jakub Jelinek - - PR middle-end/26300 - * combine.c (make_extraction): Bail out if ORIG_POS is negative. - - * tree.h (struct tree_omp_clause): Use OMP_CLAUSE_CODE rather - than TREE_CODE as index into omp_clause_num_ops array. - -2006-02-15 Uttam Pawar - - PR rtl-optimization/26184 - * modulo-sched.c (generate_reg_moves): Free bitmap vector - uses_of_defs. - * modulo-sched.c (sms_schedule): Free g_arr pointer. - * modulo-sched.c (sms_schedule_by_order): Free bitmap pointers - must_precede, must_follow and tobe_scheduled. - - PR other/26147 - * opts.c (common_handle_option): Free new_option pointer. - * df-core.c (df_analyze): Free postorder pointer. - -2006-02-15 Rafael Ávila de Espíndola - - * Makefile.in: Fix the examples about the use of stamps - -2006-02-15 Michael Matz - - PR middle-end/22275 - - * stor-layout.c (layout_decl): Zero-width bitfields aren't - influenced by maximum_field_alignment or DECL_PACKED. - (update_alignment_for_field): Ditto. - (place_field): Ditto. - * doc/extend.texi (<#pragma pack>, ): Document - this behaviour. - -2006-02-15 Paolo Bonzini - - * cfg.c (dump_flow_info): Get dump flags as an additional parameter. - (debug_flow_info): Pass it. - * alias.c (rest_of_handle_cfg): Adjust calls to dump_flow_info. - * bb-reorder.c (reorder_basic_blocks): Likewise. - * cfgcleanup.c (rest_of_handle_jump2): Likewise. - * cse.c (rest_of_handle_cse, rest_of_handle_cse2): Likewise. - * flow.c (life_analysis, recompute_reg_usage): Likewise. - * gcse.c (gcse_main, bypass_jumps): Likewise. - * ifcvt.c (rest_of_handle_if_conversion): Likewise. - * local-alloc.c (rest_of_handle_local_alloc): Likewise. - * loop-init.c (rtl_loop_init, rtl_loop_done): Likewise. - * profile.c (compute_branch_probabilities, branch_prob): Likewise. - * rtl.h (dump_flow_info): Adjust prototype. - * tracer.c (rest_of_handle_tracer, tracer): Likewise. - * var-tracking.c (variable_tracking_main): Likewise. - * passes.c (execute_todo): Obey TDF_BLOCKS for RTL. - * tree-dump.c (enable_rtl_dump_file): Enable the details and blocks - options. - -2006-02-15 Marcin Dalecki - - * tree-ssa-dom.c (dom_thread_across_edge): fix tag expression - construction. - -2006-02-14 Zdenek Dvorak - - PR tree-optimization/26209 - * tree-ssa-loop.c (pass_scev_cprop): Add TODO_cleanup_cfg. - * tree-cfgcleanup.c (cleanup_control_flow): Remove dead - eh edges. - * tree-cfg.c (replace_uses_by): Do not alter cfg. - -2006-02-14 Roger Sayle - - PR middle-end/23670 - * fold-const.c (fold_binary) : Optimize (X&Y)|Y into - (X,Y) and the corresponding symmetry related transformations. - (fold_binary) : Likewise, optimize (X|Y)&Y into - (X,Y) and its symmetry related transformations. - -2006-02-14 Roger Sayle - - * dojump.c (do_compare_rtx_and_jump): Also handle multi-word GTU - and GEU. - -2006-02-14 Adam Nemet - - * simplify-rtx.c (simplify_subreg): Combine SUBREG and TRUNCATE. - -2006-02-14 Rainer Orth - - PR bootstrap/26053 - * configure.ac (HAVE_COMDAT_GROUP): Don't assume non-GNU linkers - support COMDAT group. - * configure: Regenerate. - -2006-02-14 Roger Sayle - - PR middle-end/26279 - PR middle-end/26280 - PR middle-end/26283 - * dojump.c (do_compare_rtx_and_jump): Handle multi-word LE. - -2006-02-14 Daniel Berlin - - Fix PR tree-optimization/26260 - - * doc/invoke.texi (max-fields-for-field-sensitive): Document - param. - * params.h (MAX_FIELDS_FOR_FIELD_SENSITIVE): New. - * params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Ditto. - * tree-ssa-structalias.c (create_variable_info_for): Use - MAX_FIELDS_FOR_FIELD_SENSITIVE. - -2006-02-14 Zdenek Dvorak - - * doc/invoke.texi (-fprefetch-loop-arrays, -fprefetch-loop-arrays-rtl): - Document. - * tree-ssa-loop-niter.c (number_of_iterations_ne, - number_of_iterations_lt, number_of_iterations_cond): Remember the shape - of the ending condition. - * tree-ssa-loop-manip.c: Include params.h. - (build_if_stmt, can_unroll_loop_p, determine_exit_conditions, - tree_unroll_loop): New functions. - * tree-pass.h (pass_loop_prefetch): Declare. - * loop.c (rest_of_handle_loop_optimize): Test for - -fprefetch-loop-arrays-rtl. - * tree-scalar-evolution.h (affine_iv): Moved to tree-flow.h. - * timevar.def (TV_TREE_PREFETCH): New timevar. - * tree-ssa-loop.c (tree_ssa_loop_prefetch, gate_tree_ssa_loop_prefetch, - pass_loop_prefetch): New. - * tree-cfgcleanup.c: Include tree-scalar-evolution.h. - (cleanup_tree_cfg_loop): Call scev_reset. - * common.opt (fprefetch-loop-arrays-rtl): Add. - * tree-ssa-loop-prefetch.c: New file. - * tree-outof-ssa.c (struct value_expr_d): Add expr_vars field. - (new_temp_expr_table): Initialize expr_vars. - (free_temp_expr_table): Cleanup expr_vars. - (check_replaceable, find_replaceable_in_bb): Prevent accumulating - expressions from being merged into one. - * tree-flow.h (affine_iv): Moved from tree-scalar-evolution.h. - (struct tree_niter_desc): Add control, bound and cmp fields. - (tree_ssa_prefetch_arrays, can_unroll_loop_p, tree_unroll_loop): - Declare. - * Makefile.in (tree-ssa-loop-prefetch.o): Add. - (tree-cfgcleanup.o): Add SCEV_H dependency. - (tree-ssa-loop-manip.o): Add PARAMS_H dependency. - * passes.c (init_optimization_passes): Add pass_loop_prefetch. - -2006-02-14 Richard Guenther - - PR tree-optimization/26258 - * tree-ssa-structalias.c (find_func_aliases): Handle aggregates - in PHI argument processing. - -2006-02-13 Adam Nemet - - * simplify-rtx.c (simplify_unary_operation_1) : Return - new expression in the requested machine mode. - -2006-02-13 Roger Sayle - - * optabs.c (expand_abs): Don't call do_jump_by_parts_greater_rtx - directly, instead let do_compare_rtx_and_jump handle this for us. - * expr.c (expand_expr_real_1): Likewise. - * dojump.c (do_jump_by_parts_greater_rtx): Make static. Move - before do_jump_by_parts_greater. - (do_jump_by_parts_greater): Move after do_jump_by_parts_greater_rtx. - * expr.h (do_jump_by_parts_greater_rtx): Delete prototype. - -2006-02-13 John David Anglin - - * pa/quadlib.c: Use defines instead of enum qfcmp_magic. - -2006-02-13 Zdenek Dvorak - - PR rtl-optimization/26235 - * loop-invariant.c (hash_invariant_expr_1): Handle 'i' and 'n' formats. - (invariant_expr_equal_p): Handle 'i' and 'n' formats. Fail on unknown - format. - -2006-02-13 Jeff Law - - * tree-vrp.c (extract_range_from_binary_expr): Remove handling of - TRUTH_XOR_EPR. - -2006-02-13 Jakub Jelinek - - PR middle-end/26092 - * gimplify.c (gimplify_call_expr): Don't call get_callee_fndecl - twice if decl is a builtin. When trying again, call get_callee_fndecl - first to verify it is still a builtin. - -2006-02-13 Geoffrey Keating - - * dwarf2out.c (base_type_die): Don't add AT_name here. - (subrange_type_die): Don't add AT_name here. - (modified_type_die): Rearrange code flow. Do add AT_name here. - -2006-02-13 Zdenek Dvorak - - PR rtl-optimization/26247 - PR rtl-optimization/26248 - * loop-invariant.c (may_assign_reg_p): Do not allow VOIDmode. - -2006-02-13 Richard Sandiford - - * config/floatunditf.c: Use if __LDBL_MANT_DIG__ == 113. - * config/fixtfdi.c: Likewise. - * config/fixunstfdi.c: Likewise. - * config/floatditf.c: Likewise. - -2006-02-13 Roger Sayle - - PR middle-end/24427 - * fold-const.c (fold_binary) : Transform (X&C1)|C2 - into (X,C2) if C1 is a subset of the bits of C2. Transform - (X&C1)|C2 into X|C2 if C1|C2 == ~0. Canonicalize (X&C1)|C2 as - (X&(C1&~C2))|C2. - : Canonicalize (X|C1)&C2 as (X&C2)|(C1&C2). - -2006-02-13 Josh Conner - - PR target/25376 - * varasm.c (function_section): Check for section name before - calling select_section on targets that define - USE_SELECT_SECTION_FOR_FUNCTIONS. On other targets, use - unlikely_text_section instead of hot_function_section if - first_function_block_is_cold. - -2006-02-13 J"orn Rennecke - - PR middle-end/25335 - * reload1.c (gen_reload): Also use find_replacement in UNARY_P case. - -2006-02-12 Zdenek Dvorak - - PR rtl-optimization/26222 - * function.c (assign_stack_temp_for_type): Do not reuse stack slots - after tree->rtl expansion. - * loop-invariant.c (move_invariant_reg): Use force_operand on rhs - before passing it to emit_move_insn. - -2006-02-12 Gabriel Dos Reis - - * doc/invoke.texi (-Write-strings): Document that it is enabled by - default. - * c.opt (-Wwrite-strings): Declare variable warn_write_strings. - Clarify documentation. - * c-common.h (warn_write_strings): Remove. - * c-common.c (warn_write_strings): Likewise. - * c-opts.c (c_common_init_options): Enable -Wwrite-strings by - default for C++. - -2006-02-12 Roger Sayle - - PR middle-end/25724 - * dojump.c (do_jump): Call do_compare_rtx_and_jump. - (do_jump_parts_zero_rtx): New function renamed from - do_jump_parts_equality_rtx. Made static. Add a mode argument. - (do_jump_parts_equality_rtx): New function split out from - do_jump_parts_equality. Old implementation renamed as above. - Call do_jump_parts_zero_rtx if either operand is zero. - (do_jump_parts_equality): Call do_jump_parts_equality_rtx to - do all of the heavy lifting. - (do_compare_rtx_and_jump): Handle multi-word comparisons by - calling either do_jump_by_parts_greater_rtx or - do_jump_by_parts_equality_rtx. - * expr.h (do_jump_by_parts_equality_rtx): Remove prototype. - * expmed.c (do_cmp_and_jump): Now multi-word optimization has - moved to do_compare_rtx_and_jump, call it directly. - * stmt.c (do_jump_if_equal): Remove static prototype. Add a - mode argument. Call do_compare_rtx_and_jump. - (emit_case_nodes): Update calls to do_jump_if_equal. - -2006-02-12 Zdenek Dvorak - - PR rtl-optimization/26225 - * loop-invariant.c (may_assign_reg_p): Do not allow BLKmode operands. - -2006-02-12 Zdenek Dvorak - - PR rtl-optimization/26232 - * loop-invariant.c (find_invariant_insn): Ignore insns that set CC0. - -2006-02-11 Jason Merrill - - PR tree-opt/24365 - * tree-inline.c (declare_return_variable): Just don't use the - modify target if it's a gimple complex reg and the return slot - isn't. - -2006-02-11 Kaveh R. Ghazi - - * doc/contrib.texi: Update my entry. - -2006-02-10 Geoffrey Keating - - * config/i386/darwin.h (DBX_REGISTER_NUMBER): Define. - -2006-02-10 Diego Novillo - - * tree-inline.c (estimate_num_insns_1): Make OpenMP directives - expensive. - -2006-02-10 Zdenek Dvorak - - * doc/invoke.texi (-floop-optimize2): Removed. - * toplev.c (process_options): Remove handling of flag_loop_optimize2. - * loop-init.c (gate_handle_loop2): Do not test flag_loop_optimize2. - Test flag_branch_on_count_reg only if HAVE_doloop_end. - * common.opt (floop-optimize2): Removed. - (fmove-loop-invariants): Enabled by default. - -2006-02-10 Sebastian Pop - - * tree-if-conv.c (combine_blocks): Free the result of - get_loop_exit_edges. - -2006-02-10 Jeff Law - - * fold-const.c (tree_expr_nonzero_p): Fix thinko. - - PR tree-optimization/26213 - * tree-ssa-threadedge.c (simplify_control_stmt_condition): Do not - loop trying to follow SSA_NAME_VALUE chains. - -2006-02-10 Richard Guenther - - * tree-dfa.c (get_ref_base_and_extent): When computing maxsize - deal with structures that end in implicitly variable sized arrays. - -2006-02-09 Zdenek Dvorak - - PR rtl-optimization/24762 - * df-scan.c (df_bb_refs_record): Record correct registers defined on - eh edges. - -2006-02-09 Zdenek Dvorak - - * tree-ssa-loop-ivopts.c (struct loop_data, loop_data): Removed. - (struct ivopts_data): Add regs_used field. - (tree_ssa_iv_optimize_init): Do not allocate aux fields for loops. - (ivopts_global_cost_for_size, determine_set_costs): Use data->regs_used - instead of loop_data->regs_used; - (free_loop_data): Do not free aux fields for loops. - (tree_ssa_iv_optimize): Do not pass loops to tree_ssa_iv_optimize_init - and tree_ssa_iv_optimize_finalize. - -2006-02-09 Kaz Kojima - - * config/sh/sh.h (FUNCTION_VALUE): Don't handle CHAR_TYPE. - -2006-02-09 J"orn Rennecke - - PR target/26141 - * sh.c (sh_gimplify_va_arg_expr): Don't change the result type when - computing the effective result type. - -2006-02-09 J"orn Rennecke - - PR inline-asm/16194 - * tree.h (decl_overlaps_hard_reg_set_p) Don't declare. - (tree_overlaps_hard_reg_set): Declare. - * stmt.c (decl_overlaps_hard_reg_set_p): Now static. Change return - type and signature to match function type expected by walk_tree. - (tree_overlaps_hard_reg_set): New function. - (decl_conflicts_with_clobbers_p): Rename to: - (tree_conflicts_with_clobbers_p). Take HARD_REG_SET * argument. - Use tree_overlaps_hard_reg_set. Changed caller. - * doc/tm.texi (TARGET_MD_ASM_CLOBBERS): Replace - decl_overlaps_hard_reg_set_p with tree_overlaps_hard_reg_set. - * cris.c (cris_md_asm_clobbers): Likewise. - -2006-02-09 Bernd Schmidt - - * reload1.c (emit_input_reload_insns): Delete code that tries to - inherit using find_equiv_reg. - -2006-02-09 Gabriel Dos Reis - - * c-common.h (flag_const_strings): Don't declare. - * c-common.c (flag_const_strings): Remove. - * c.opt (fconst_strings): Remove. - * c-opts.c (c_common_handle_option): Remove . - : Don't set flag_const_strings. - (c_common_init_options): Don't set flag_const_strings. - * doc/invoke.texi (-fno-const-strings): Remove documentation. - -2006-02-09 Richard Earnshaw - - * arm.md (tlobits_cbranch): New pattern. - * arm.h (arm_select_cc_mode): For thumb, only return CC_Nmode if - testing a single bit. - -2006-02-09 Andrew Pinski - - PR tree-opt/26179 - * tree-ssa-pre.c (create_component_ref_by_pieces): - Handle RETURN_DECL like VAR_DECL. - -2006-02-09 Andrew Pinski - - PR middle-end/26134 - * fold-const.c (fold_indirect_ref_1): Fold - "*(foo *)&complexfoo" to "__real__ complexfoo" - and "((foo*)&complexfoo)[1]" to "__imag__ complexfoo". - -2006-02-09 Andrew Pinski - - * tree-flow-inline.h (var_can_have_subvars): - Volatile variables should not have subvariables. - -2006-02-09 Diego Novillo - - PR 26180 - * tree-vrp.c (vrp_int_const_binop): Detect overflow when - multiplying unsigned values. - Tidy comments. - -2006-02-09 Eric Botcazou - - * config/sparc/sparc.c (tls_call_delay): Fix oversight. - -2006-02-08 Jason Merrill - - PR c++/25979 - * tree.def: Elaborate on difference from MODIFY_EXPR. - * doc/c-tree.texi (INIT_EXPR): Likewise. - * gimplify.c (internal_get_tmp_var): Use INIT_EXPR. - (gimplify_decl_expr, gimplify_init_ctor_eval): Likewise. - (gimplify_target_expr): Likewise. - (gimplify_cond_expr): Remove target handling. - (gimplify_modify_expr): Don't clobber INIT_EXPR code here. - (gimplify_expr): Clobber it here. - (gimplify_modify_expr_rhs): Push assignment into COND_EXPR here. - Do return slot optimization if we have an INIT_EXPR. - - PR tree-opt/24365 - * tree-inline.c (declare_return_variable): Also clear - DECL_COMPLEX_GIMPLE_REG_P as needed in the modify_dest case. - - PR c++/16405 - * gimplify.c (gimplify_modify_expr_rhs): Re-enable *& handling. - - PR middle-end/22439 - * gimplify.c (gimplify_one_sizepos): Fix typo. - -2006-02-08 Jeff Law - - PR tree-optimization/21417 - * tree-ssa-threadedge.c (thread_across_edge): Reject threading - across a backedge if the control statement at the end of the - block is data dependent on other statements in the same block. - (record_temporary_equivalences_from_stmts): Remove over-conservative - test for threading across backedges. - - * tree-ssa-dce.c (remove_dead_statement): When removing a dead - control statement, handle all three special cases in the same - manner as they all have the same desired solution. No longer - special case edge flag updating when the post dominator is - the exit block. - -2006-02-08 Roger Sayle - - * tree.def (CHAR_TYPE): Remove. - * dbxout.c (dbxout_type): Delete dead handling of CHAR_TYPE. - * dwarf2out.c (base_type_die, is_base_type): Likewise. - (gen_type_die) : Remove handling of CHAR_TYPE arrays. - (gen_string_type_die): Delete unreachable function. - - * tree-pretty-print.c (dump_generic_node): Don't handle CHAR_TYPE. - * tree.c (build_int_cst_wide, type_contains_placeholder_1, - type_hash_eq, variably_modified_type_p, walk_type_fields): Likewise. - * tree.h (NUMERICAL_TYPE_CHECK, INTEGRAL_TYPE_P): Likewise. - * builtins.c (type_to_class): Likewise. - * fold-const.c (fold_convert, build_range_check, - merge_ranges): Likewise. - * expr.c (count_type_elements): Likewise. - * c-pretty-print.c (pp_c_type_specifier): Likewise. - * stor-layout.c (layout_type): Likewise. - * ipa-type-escape.c (type_to_consider): Likewise. - * gimplify.c (omp_firstprivatize_type_sizes, - gimplify_type_sizes): Likewise. - * explow.c (promote_mode): Likewise. - * tree-sra.c (is_sra_scalar_type): Likewise. - * varasm.c (output_constant): Likewise. - * tree-inline.c (remap_type_1): Likewise. - * convert.c (convert_to_pointer, convert_to_real, - convert_to_integer, convert_to_complex): Likewise. - -2006-02-08 Daniel Berlin - - * df-scan.c (df_def_record_1): A set destination may - be a parallel regardless of mode. - -2006-02-08 Roger Sayle - - PR target/22209 - * config/mips/mips.h (MIN_UNITS_PER_WORD): Don't define for libgcc. - * config/mips/_tilib.c: Remove. - * config/fixtfdi.c: New libgcc source file. - * config/fixunstfdi.c: New source file. - * config/floatditf.c: New source file. - * config/floatunditf.c: New souce file. - * config/mips/t-iris6 (LIB2FUNCS_EXTRA): Include the new source - files above instead of config/mips/_tilib.c. - * config/mips/t-linux64 (LIB2FUNCS_EXTRA): Likewise. - -2006-02-08 Jeff Law - - PR tree-optimization/26169 - * tree-vrp.c (execute_vrp): Perform any queued SSA updates before - threading jumps. - -2006-02-08 Zdenek Dvorak - - * df.h (DF_REG_SIZE): Return the length of the initialized - part of the array. - -2006-02-08 Nathan Sidwell - - * config/m68k/lb1sf68.asm (__divsf3, __divdf3, __mulsf3, - __muldf3): Return a correctly signed zero. - -2006-02-08 Paolo Bonzini - - * passes.c (register_one_dump_file): Accept the current properties - instead of pass number. Adjust call to dump_register. Remove - duplicated code. - (register_dump_files): Now a wrapper around... - (register_dump_files_1): ... this one. Do not modify the pass - structure. - (next_pass_1): Cosmetic fix. - (execute_todo): Keep second parameter only. Use curr_properties - instead of fetching it from the pass structure. Check and set - last_verified. - (execute_one_pass): Handle TODO_set_props. Use curr_properties - instead of fetching it from the pass structure. Fix calls to - execute_todo. Update curr_properties and initialize .vcg RTL dump - after running the pass. Reset last_verified. - * tree-dump.c (dump_files): Renumber consecutively. Put .cgraph dump - at the beginning. - (FIRST_AUTO_NUMBERED_DUMP): New. - (dump_register): Remove "num" parameter, assign it within the - function. - (get_dump_file_name): Modify template for dumps. - * tree-dump.h (dump_register): Adjust prototype. - * tree-pass.h (enum tree_dump_index): Move cgraph at the beginning. - (PROP_trees): Add PROP_gimple_lomp. - (TODO_set_props): New. - * gimple-low.c (pass_lower_cf): Do not destroy PROP_gimple_lcf. - * tree-eh.c (pass_lower_eh): Do not destroy PROP_gimple_leh. - * cfgexpand.c (pass_expand): Destroy PROP_trees. - -2006-02-08 Jakub Jelinek - - * config.gcc (sparc-*-linux*): Add sparc/t-linux to tmake_file. - (sparc64-*-linux*): Likewise. - * config/sparc/t-linux64 (SHLIB_MAPFILES): Removed. - * config/sparc/t-linux: New file. - * config/sparc/libgcc-sparc-glibc.ver (__fixtfdi, __fixunstfdi, - __floatditf): Export at GCC_LDBL_3.0 if -m32 -mlong-double-128. - (__divtc3, __multc3, __powitf2): Export at GCC_LDBL_4.0.0 if - -m32 -mlong-double-128. - - * config.gcc (alpha*-*-linux*): Add alpha/t-linux to tmake_file. - * config/alpha/t-linux: New file. - * config/alpha/libgcc-alpha-ldbl.ver: New file. - - * config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Define - __LONG_DOUBLE_128__ if TARGET_LONG_DOUBLE_128. - (CPP_SUBTARGET_SPEC): Don't add -D__LONG_DOUBLE_128__ here. - * config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Define - __LONG_DOUBLE_128__ if TARGET_LONG_DOUBLE_128 and TARGET_ARCH32. - (CPP_ARCH32_SPEC): Remove. - -2006-02-07 Uttam Pawar - - PR tree-optimization/26145 - * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Free - bbs pointer. - -2006-02-07 John David Anglin - - PR target/26109 - * pa.c (attr_length_indirect_call): Don't return length 8 for distances - >= 240000 when generating code for SOM runtime. - (output_indirect_call): Don't use "b,l" instruction for indirect calls - to $$dyncall when generating code for SOM runtime.. - -2006-02-07 Dirk Mueller - - PR c++/18150 - * doc/invoke.texi (-Wsequence-point): Update documentation - that -Wsequence-point is implemented for C++ as well. - -2006-02-07 Eric Botcazou - - * config/sol26.h (CPP_SUBTARGET_SPEC): Accept -pthread. - * config/sol2.h (CPP_SUBTARGET_SPEC): Likewise. - (LIB_SPEC): Likewise. - * doc/invoke.texi (SPARC options): Document -pthread. - -2006-02-07 Geoffrey Keating - - * config/i386/i386.c (ix86_delegitimize_address): Support Darwin - PIC addresses. - -2006-02-07 Roger Sayle - - * config/sparc/sparc.c (sparc_type_code): Don't handle CHAR_TYPE. - Correct comment describing BOOLEAN_TYPE. - -2006-02-07 Dirk Mueller - - * c.opt: C++ frontend supports -Wdiv-by-zero. - * c-opts.c (c_common_handle_option): Remove dead case. - -2006-02-07 Eric Botcazou - - * configure.ac (TLS assembler check): Do not enable TLS by - default on SPARC/Solaris before version 10. - * configure: Regenerate. - -2006-02-07 David Edelsohn - - * doc/invoke.texi (xl-compat): Document conversion and support - routine names. - -2006-02-07 Jeff Law - - * tree-vrp.c (find_conditional_asserts): Update comments. - (simplify_stmt_for_jump_threading): New. - (identify_jump_threads, finalize_jump_threads): New. - (vrp_finalize): Call identify_jump_threads. - (execute_vrp): Call finalize_jump_threads. - * tree-ssa-dom.c (struct opt_stats_d): Remove num_iterations field. - (vrp_element, vrp_data, vrp_element_p): Remove. - (vrp_hash_elt, vrp_variables_stack): Remove. - (vrp_hash, vrp_eq, record_range): Remove. - (simplify_cond_and_lookup_avail_expr): Remove. - (extract_range_from_cond): Remove. - (thread_across_edge): Relocated into tree-ssa-threadedge.c. - (simplify_stmt_for_jump_threading): New. - (dom_thread_across_edge): New wrapper. - (tree_ssa_dominator_optimize): No longer initialize or - finalize any of the VRP datastructures. Remove iteration - step and simplify as a result of removal of iteration step. - (pass_dominator): Perform a cfg cleanup after DOM. - (dom_opt_finalize_block): Use the new common routines - for threading jumps. Simplify stack management slightly. - No longer need to unwind VRP state. - (record_equivalences_from_incoming_edge): No longer record - VRP information. - (eliminate_redundant_computations): No longer call - simplify_cond_and_lookup_avail_expr. - * tree-flow.h (potentially_threadable_block): Prototype. - (thread_across_edge): Likewise. - * Makefile.in (OBJS-common): Add tree-ssa-threadedge.o - (tree-ssa-threadedge.o): Add dependencies. - * tree-ssa-threadedge.c: New file. - * passes.c (init_optimization_passes): Merge PHIs before - calling VRP. Run VRP again late in the SSA optimization pipeline. - -2006-02-07 Eric Botcazou - - * df-core.c (df_set_blocks): Do not dereference function pointers. - (df_finish1): Likewise. - (df_hybrid_search_forward): Likewise. - (df_hybrid_search_backward): Likewise. - (df_iterative_dataflow): Likewise. - (df_analyze_problem): Likewise. - (df_compact_blocks): Likewise. - (df_dump): Likewise. - * df-scan.c (df_rescan_blocks): Likewise. - (df_record_entry_block_defs): Likewise. - - * genconditions.c (write_conditions): Guard the definition of - 'insn_conditions' with the check on GCC version. - (write_writer): Guard the traversal 'insn_conditions' with - the check on GCC version. - -2006-02-07 Richard Guenther - - PR c++/26140 - Revert - 2006-01-30 Richard Guenther - PR c++/23372 - * gimplify.c (gimplify_target_expr): Handle easy cases - without creating a temporary. - -2006-02-07 Pete Steinmetz - - * sched-rgn.c (compute_dom_prob_ps, compute_trg_info): Eradicate - use of float in probability computations. Use edge probabilities - in place of statically computed probabilities. - (min_spec_prob): New static variable. - (schedule_insns): Initialize it. - (GET_SRC_PROB): Removed. - * doc/invoke.texi (min-sched-prob): Renamed to min-spec-prob. - -2006-02-07 Alexandre Oliva - - PR debug/24444 - * config/ia64/unwind-ia64.c: Revert last change. - * config/ia64/ia64.h (ARG_POINTER_CFA_OFFSET): Removed. - (INCOMING_FRAME_SP_OFFSET): Define. - -2006-02-06 Roger Sayle - - * config/ia64/ia64.c (hfa_element_mode): Don't handle CHAR_TYPE. - -2006-02-07 Ben Elliston - - * config/i386/i386.c (ix86_scalar_mode_supported_p): New. - (TARGET_SCALAR_MODE_SUPPORTED_P): Define hook. - (classify_argument): Handle SDmode, DDmode, TDmode for 64-bit. - (ix86_return_in_memory): Handle TDmode. - (ix86_libcall_value): Handle SDmode, DDmode, TDmode. - (ix86_value_regno): Return non-TDmode decimal float modes in %eax. - -2006-02-06 Richard Sandiford - - * reorg.c (dbr_schedule): Use dump_file instead of file. - -2006-02-06 Steve Ellcey - - PR target/25917 - * config/ia64/predicates.md (extr_len_operand): New predicate. - * config/ia64/ia64.md (extv): Tighten constraints. - (extzv): Ditto. - (*tbit_and_2): Ditto. - (*tbit_and_3): Ditto. - (*tbit_or_2): Ditto. - (*tbit_or_3): Ditto. - (*bit_zero): Ditto. - (*bit_one): Ditto. - -2006-02-06 Andrew Pinski - - PR target/23359 - * config/i386/i386.md (trap): Use ASM_SHORT instead of .word. - -2006-02-06 Zdenek Dvorak - - * tree-vrp.c (execute_vrp): Do not pass dump argument to. - loop_optimizer_init and loop_optimizer_finalize - * tree-ssa-sink.c (execute_sink_code): Ditto. - * tree-ssa-loop-ch.c (copy_loop_headers): Ditto. - * tree-ssa-loop.c (tree_loop_optimizer_init, tree_ssa_loop_init, - tree_ssa_loop_done): Ditto. - * tree-ssa-pre.c (init_pre, fini_pre): Ditto. - * sched-ebb.c: Include output.h. - (schedule_ebbs): Do not use dump argument. - * value-prof.h (struct profile_hooks): Remove profile_dump_file. - * loop.c (loop_dump_stream): Removed. - (loop_optimize, rest_of_handle_loop_optimize): Do not use dump - argument. - (scan_loop, move_movables, find_and_verify_loops, mark_loop_jump, - emit_prefetch_instructions, loop_bivs_find, loop_bivs_check, - final_biv_value, loop_biv_eliminable_p, loop_givs_rescan, - loop_iterations, strength_reduce, record_biv, record_giv, - final_giv_value, check_final_value, check_ext_dependent_givs, - combine_givs, check_dbra_loop, maybe_eliminate_biv, load_mems, - try_copy_prop, loop_delete_insns, try_swap_copy_prop): Use - dump_file instead of loop_dump_stream. - * ddg.c (print_ddg_edge, print_ddg, vcg_print_ddg): Do not call - argument dump_file. - * reorg.c (dbr_schedule, rest_of_handle_delay_slots): Do not use - dump argument. - * flow.c (life_analysis, rest_of_handle_life): Ditto. - * haifa-sched.c: Include output.h - (schedule_insns, sched_init): Do not use dump argument. - * mode-switching.c (optimize_mode_switching): Ditto. - * modulo-sched.c (stats_file): Removed. - (print_node_sched_params): Do not call argument dump_file. - (sms_schedule_by_order, loop_canon_p, sms_schedule, - rest_of_handle_sms): Do not use dump argument. Use dump_file instead - of stats_file. - * cse.c (cse_main, rest_of_handle_cse, rest_of_handle_cse2): Do not - use dump argument. - * loop-init.c (loop_optimizer_init, loop_optimizer_finalize, - rtl_loop_init, rtl_loop_done): Ditto. - * global.c (global_alloc, rest_of_handle_global_alloc): Ditto. - * predict.c (combine_predictions_for_bb, tree_estimate_probability): - Ditto. - * recog.c (peephole2_optimize, rest_of_handle_peephole2): Ditto. - * lcm.c (pre_edge_lcm, pre_edge_rev_lcm): Ditto. - * regmove.c (fixup_match_1, fixup_match_2, regmove_optimize, - rest_of_handle_regmove, rest_of_handle_stack_adjustments): Ditto. - * emit-rtl.c (renumber_insns): Ditto. - * cfgexpand.c (add_reg_br_prob_note, expand_gimple_cond_expr, - expand_gimple_basic_block, tree_expand_cfg): Ditto. - * regclass.c (regclass): Ditto. - * tree-outof-ssa.c (analyze_edges_for_bb, perform_edge_inserts, - remove_ssa_form, rewrite_out_of_ssa): Ditto. - * reg-stack.c (compensate_edge, compensate_edges, convert_regs_1, - convert_regs_2, convert_regs, reg_to_stack, rest_of_handle_stack_regs): - Ditto. - * sched-rgn.c (schedule_insns, rest_of_handle_sched): Ditto. - * local-alloc.c (rest_of_handle_local_alloc): Do not pass dump_file - to regclass. - * gcse.c (gcse_file, debug_stderr): Removed. - (gcse_main, bypass_jumps, rest_of_handle_jump_bypass, - rest_of_handle_gcse): Do not use dump argument. - (cprop_jump, cprop_insn, do_local_cprop, cprop, find_implicit_sets, - one_cprop_pass, bypass_block, compute_pre_data, insert_insn_end_bb, - pre_edge_insert, pre_insert_copy_insn, pre_delete, one_pre_gcse_pass, - compute_code_hoist_vbeinout, compute_code_hoist_data, - one_code_hoisting_pass, trim_ld_motion_mems, update_ld_motion_stores, - compute_store_table, build_store_vectors, insert_insn_start_bb, - insert_store, remove_reachable_equiv_notes, replace_store_insn, - store_motion): Use dump_file instead of gcse_file. - * ipa-type-escape.c (type_escape_execute): Remove debugging comments. - * profile.c (profile_dump_file): Removed. - (branch_prob): Use dump_file instead of profile_dump_file. - * ipa.c (cgraph_remove_unreachable_nodes): Do not call argument - dump_file. - * tree-ssa-copy.c (dump_copy_of): Ditto. - * rtl-factoring.c (rtl_seqabstr, rest_of_rtl_seqabstr): Do not pass - dump file to life_analysis. - * bt-load.c (branch_target_load_optimize): Ditto. - * cfgcleanup.c (rest_of_handle_jump2): Do not pass dump_file to - renumber_insns. - * rtl.h (cse_main, renumber_insns, schedule_insns, schedule_ebbs, - regclass, dbr_schedule): Declaration changed. - * sched-int.h (sched_init): Declaration changed. - * tree-profile.c (tree_profile_dump_file): Removed. - (tree_profile_hooks): Removed profile_dump_file hook. - * rtl-profile (rtl_profile_dump_file): Removed. - (rtl_profile_hooks): emoved profile_dump_file hook. - * cfgloop.h (loop_optimizer_init, loop_optimizer_finalize): Declaration - changed. - * c-gimplify.c (c_genericize): Do not call local variable dump_file. - * tree-cfg.c (build_tree_cfg): Ditto. - * Makefile.in (haifa-sched.o, sched-ebb.o): Add output.h dependency. - * basic-block.h (life_analysis, pre_edge_lcm, pre_edge_rev_lcm): - Declaration changed. - * config/sh/sh.c (sh_output_mi_thunk): Do not pass dump_file to - life_analysis and schedule_insns. - * config/m68hc11/m68hc11.c (m68hc11_reorg): Do not pass dump_file to - life_analysis. - * config/mt/mt.c (mt_machine_reorg): Do not pass dump_file to - dbr_schedule. - * config/mips/mips.c (mips_reorg): Ditto. - * config/ia64/ia64.c (ia64_reorg): Do not pass dump_file to - schedule_ebbs. - -2006-02-06 Aldy Hernandez - - * config/s390/s390.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Define. - (s390_mangle_fundamental_type): New. - * config/s390/linux.h (TARGET_ALTERNATE_LONG_DOUBLE_MANGLING): - Define. - - * config/alpha/alpha.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Define. - (alpha_mangle_fundamental_type): New. - * config/alpha/linux.h (TARGET_ALTERNATE_LONG_DOUBLE_MANGLING): - Define. - - * config/sparc/linux.h (TARGET_ALTERNATE_LONG_DOUBLE_MANGLING): - Define. - * config/sparc/linux64.h (TARGET_ALTERNATE_LONG_DOUBLE_MANGLING): - Define. - * config/sparc/sparc.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Define. - (sparc_mangle_fundamental_type): New. - -2006-02-06 Jakub Jelinek - - * config.gcc (s390-*-linux*): Add s390/t-linux to tmake_file. - (s390x-*-linux*): Likewise. - * config/s390/t-linux64 (SHLIB_MAPFILES): Removed. - * config/s390/t-linux: New file. - -2006-02-02 Bernd Schmidt - - * config/i386/sync.md (sync_add, sync_sub, sync_ior, - sync_and, sync_xor): Operand 0 is in-out. - -2006-02-06 Daniel Berlin - - * tree-ssa-pre.c (bb_value_sets_t): Add antic_safe_loads. - (ANTIC_SAFE_LOADS): New macro. - (find_or_generate_expression): Add prototype. - (set_contains_value): Allow null set for sake of not always having - to allocate ANTIC_SAFE_LOADS. - (phi_translate): Move placement of AGGREGATE_TYPE_P check. - Allow COMPONENT_REF too. - (valid_in_set): Allow COMPONENT_REF. - Check ANTIC_SAFE_LOADS too. - (compute_antic_aux): Print out ANTIC_SAFE_LOADS. - (compute_rvuse_and_antic_safe): Add ANTIC_SAFE computation, and - rename. - (can_PRE_operation): Add COMPONENT_REF. - (create_component_ref_by_pieces): New function. - (create_expression_by_pieces): Use create_component_ref_by_pieces. - (insert_aux): Move AGGREGATE_TYPE_P check here. - (compute_avail): Set bb local stmt uids. - (pass_pre): Use TODO_update_ssa_only_virtuals. - -2006-02-06 Ben Elliston - - * configure.ac: Unconditionally disable decimal float by default. - * configure: Regenerate. - -2006-02-06 Ben Elliston - - * read-rtl.c (read_name): Terminate reading on EOF. - -2006-02-06 Ben Elliston - - * dfp.c (decimal_real_arithmetic): Change second argument type - from int to enum tree_code. Do not always return true, but now - return result of any call to decimal_do helper functions. - * dfp.h (decimal_real_arithmetic): Update prototype. - -2006-02-05 Eric Botcazou - - * config/sparc/sol2-bi.h (SPARC_DEFAULT_CMODEL): Set to CM_MEDMID. - -2006-02-05 Andrew Pinski - - PR tree-opt/25251 - * tree-cfg.c (cleanup_dead_labels): Also don't remove - forced labels. - -2006-02-04 Zdenek Dvorak - - * tree-vrp.c (cfg_loops): Removed. - (adjust_range_with_scev, vrp_visit_assignment, execute_vrp): - Use current_loops instead of cfg_loops. Pass flags to - loop_optimizer_init. - * cfgloopmanip.c (fix_loop_structure): Update only available - information. - * tree-ssa-loop-ch.c (copy_loop_headers): Pass flags to - loop_optimizer_init. - * modulo-sched.c (build_loops_structure): Removed. - (sms_schedule): Use loop_optimizer_init. - * loop-init.c (loop_optimizer_init): Use flags to determine - which properties of loops to prepare. - (rtl_loop_init): Pass flags to loop_optimizer_init. - * tree-ssa-sink.c (execute_sink_code): Ditto. - * tree-ssa-loop.c (tree_loop_optimizer_init): Ditto. - * tree-ssa-pre.c (init_pre): Ditto. - * cfgloop.h (LOOPS_NORMAL): New. - (loop_optimizer_init): Declaration changed. - -2006-02-05 John David Anglin - - * pa/x-ada-hpux10, pa/t-pa-hpux10, pa/t-pa-hpux11: New files. - * config.gcc (hppa[12]*-*-hpux10*): Use pa/t-pa-hpux10 instead of - pa/t-pa. - * config.gcc (hppa[12]*-*-hpux11*): Use pa/t-pa-hpux11 instead of - pa/t-pa. - * config.host (hppa*-*-hpux10*): Use pa/x-ada-hpux10 instead of - pa/x-ada. - * pa/t-pa-hpux: Add lib2funcs.asm and quadlib.c rules. - * pa/t-pa64: Delete quadlib.c rule. - * pa/x-ada: Revert last change. - * pa/t-pa: Revert last change. Delete quadlib.c rule. - -2006-02-04 Zdenek Dvorak - - PR rtl-optimization/26087 - * rtlanal.c (canonicalize_condition): Do not cross basic block - boundaries. - -2006-02-04 Alexandre Oliva - - PR debug/24444 - * config/ia64/ia64.c: Include debug.h. - (MAX_ARTIFICIAL_LABEL_BYTES): New. - (ia64_label_after_insn, ia64_dwarf2out_def_steady_cfa): New. - (IA64_CHANGE_CFA_IN_EPILOGUE): Define to 0. - (process_epilogue, process_set, process_for_unwind_directive): - Output unwind info only if requested. Add CFA info if requested. - Add new arguments as needed. Adjust callers. - * config/ia64/ia64.h (ARG_POINTER_CFA_OFFSET): Override - incorrect default. - (DWARF2_FRAME_INFO): Define to zero. - * config/ia64/unwind-ia64.c: Remove code that compensated for - the CFA offset error fixed above. - * config/ia64/t-ia64 (ia64.o): Depend on debug.h. - * dwarf2out.c (DWARF2_FRAME_INFO): Define default. - (dwarf2out_do_frame): Require nonzero DWARF2_UNWIND_INFO for - -funwind-tables and -fexceptions to enable frame info. - (dwarf2out_frame_init): Define initial CFA even if - DWARF2_UNWIND_INFO is disabled. Call initial_return_save if - DWARF2_UNWIND_INFO is nonzero, not just defined. - (dwarf2out_frame_finish): Output non-EH call frame info only - if DWARF2_FRAME_INFO is nonzero. - (convert_cfa_to_loc_list, - compute_frame_pointer_to_cfa_displacement): Define even if - unwind info is not supported. - (gen_subprogram_die): Use the above unconditionally. Remove - legacy alternate code. - * toplev.c (compile_file): Compile in call to - dwarf2out_frame_finish if DWARF2_DEBUGGING_INFO is defined. - (lang_dependent_init): Ditto for dwarf2out_frame_init. - -2006-02-04 David Edelsohn - Jakub Jelinek - - * config/rs6000/rs6000.c (rs6000_mangle_fundamental_type): Mangle - IBM extended float format long double as "g" on powerpc*-linux. - -2006-02-03 John David Anglin - - PR target/25926 - * pa/x-ada (X_ADA_CFLAGS): Define _X_HPUX10 on HP-UX 10. - * pa/t-pa (TARGET_LIBGCC2_CFLAGS): Define _T_HPUX10 on HP-UX 10. - -2006-02-03 Jason Merrill - - PR c++/25979 - * gimplify.c (gimplify_modify_expr_rhs): Disable *& optimization for now. - - PR middle-end/25977 - * gimplify.c (gimplify_modify_expr_rhs): It's not always safe to do RVO - on the return slot if it's an NRV. - -2006-02-03 Zdenek Dvorak - - * tree-ssa-loop-ivopts.c (enum use_type): Remove USE_OUTER. - (dump_use, add_derived_ivs_candidates, determine_use_iv_cost, - rewrite_use): Do not handle USE_OUTER. - (find_interesting_uses_outer_or_nonlin, find_interesting_uses_outer, - add_iv_outer_candidates, may_replace_final_value, - determine_use_iv_cost_outer, rewrite_use_outer): Removed. - (find_interesting_uses_op): Functionality of - find_interesting_uses_outer_or_nonlin moved here. - (find_interesting_uses_outside): Use find_interesting_uses_op. - -2006-02-03 Alan Modra - - PR target/25960 - * config/rs6000/darwin-ldouble.c (__gcc_qadd): Preserve -0.0 result. - -2006-02-03 Andreas Krebbel - Ulrich Weigand - - PR target/25864 - * config/s390/2084.md ("x_fsimptf", "x_fmultf", "x_fdivtf", - "x_floadtf", "x_ftrunctf", "x_ftruncdf"): New insn reservations. - * config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): New functions. - * config/s390/s390.c (struct processor_costs): Add mxbr, sqxbr, dxbr - and dxr fields. - (z900_cost, z990_cost, z9_109_cost): Values for the new fields added. - (s390_rtx_costs): Use the new fields to calculate rtx costs. - (s390_secondary_input_reload_class, s390_secondary_output_reload_class): - Define secondary reloads for TFmode moves. - (constant_modes): Add TFmode. - (NR_C_MODES): Set to 8. - * config/s390/s390.h (TARGET_CPU_CPP_BUILTINS): Add __LONG_DOUBLE_128__ - builtin define. - (LONG_DOUBLE_TYPE_SIZE): Set to 128 or 64. - (LIBGCC2_LONG_DOUBLE_TYPE_SIZE, WIDEST_HARDWARE_FP_SIZE): Define. - (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK, CLASS_MAX_NREGS, - CANNOT_CHANGE_MODE_CLASS): Consider TFmode. - * config/s390/s390.md ("type" attribute): Add fsimptf, floadtf, fmultf, - fdivtf, fsqrttf, ftrunctf, ftruncdf as possible values. - (FPR mode macro): Add TFmode. - (DSF mode macro): New. - (, mode attributes): Removed. - (, , , , mode attributes): New. - ("*cmp_ccs_0", "*cmp_ccs_0_ibm", "*cmp_ccs", - "*cmp_ccs_ibm", "fix_trunc2_ieee", - "floatdi2", "floatsi2_ieee", "*add3", - "*add3_cc", "*add3_cconly", "*add3_ibm", - "*sub3", "*sub3_cc", "*sub3_cconly", - "*sub3_ibm", "*mul3_ibm", "*fmadd", "*fmsub", - "*div3", "*div3_ibm", "*neg2_cc", - "*neg2_cconly", "*neg2", "*neg2_ibm", - "*abs2_cc", "*abs2_cconly", "*abs2", - "*abs2_ibm", "*negabs2_cc", "*negabs2_cconly", - "*negabs2", "sqrt2"): - Changed to . R constraint replaced by . - ("*mul3"): Changed to . R constraint replaced by - . - ("fix_truncdi2"): 'FPR:' removed. - ("*fmadd", "*fmsub"): FPR mode replaced by DSF. - ("*movtf_64", "*movtf_31"): New insn definitions followed by 5 - splitters. - ("movtf", "reload_outtf", "reload_intf", "trunctfdf2", "trunctfsf2", - "extenddftf2", "extendsftf2"): New expanders. - ("*trunctfdf2_ieee", "*trunctfdf2_ibm", "*trunctfsf2_ieee", - "*trunctfsf2_ibm", "*extenddftf2_ieee", "*extenddftf2_ibm", - "*extendsftf2_ieee", "*extendsftf2_ibm"): New insn patterns. - * config/s390/s390.opt (mlong-double-128, mlong-double-64): - New options. - * config/s390/t-crtstuff (TARGET_LIBGCC2_CFLAGS): Macro defined. - * config/s390/libgcc-glibc.ver (__divtc3, __multc3, __powitf2, - __fixtfti, __fixunstfti, __floattitf, __fixtfdi, __fixunstfdi, - __floatditf): Add a GCC_4.1.0 symbol version tag. - * doc/invoke.texi (-mlong-double-128, -mlong-double-64): Document - the new options. - -2006-02-02 Andrew Pinski - - PR target/25377 - * config/i386/i386.c (ix86_function_ok_for_sibcall): - Use targetm.binds_local_p instead of TREE_PUBLIC. - -2006-02-02 Roger Sayle - - * tree.h (TYPE_STRING_FLAG): Document that this field may be used - on INTEGER_TYPEs to indicate that it denotes a character type. - * tree.c (build_common_tree_nodes): Set TYPE_STRING_FLAG on - signed_char_type_node, unsigned_char_type_node and char_type_node. - * dwarf2out.c (base_type_die): Treat CHAR_TYPE identically to - INTEGER_TYPE. Use TYPE_STRING_FLAG to decide whether to emit - a DW_ATE_[un]signed_char instead of a DW_ATE_[un]signed. - -2006-02-02 Zdenek Dvorak - Daniel Berlin - - * tree-tailcall.c (arg_needs_copy_p): New function. - (eliminate_tail_call): Use arg_needs_copy_p. - (tree_optimize_tail_calls_1): Ditto. Also call add_virtual_phis. - (add_virtual_phis): New function. - -2006-02-02 Jakub Jelinek - - * config/sparc/sparc.c (sparc_output_scratch_registers): Use - #ignore instead of #scratch for %g7 .register directive. - -2006-02-02 Andreas Tobler - - * config/sparc/freebsd.h (ENDFILE_SPEC): Add space to separate - object files. - -2006-02-02 Bernd Schmidt - - * flow.c (calculate_global_regs_live): Assert that there aren't any - EDGE_FAKE edges. - -2006-02-02 Paolo Bonzini - - * tree-flow-inline.h (bsi_after_labels): Rewrite, return - what its name says. - * lambda-code.c (perfect_nestify): Use bsi_insert_before on - bsi_after_labels iterator. - * tree-if-conv.c (find_phi_replacement_condition, - replace_phi_with_cond_modify_expr): Likewise. - * tree-scalar-evolution.c (scev_const_prop): Likewise. - * tree-ssa-loop-ivopts.c (compute_phi_arg_on_exit): Likewise. - -2006-02-02 Diego Novillo - - * tree-inline.c (copy_tree_r): Also copy OMP_CLAUSE nodes. - -2006-02-02 Diego Novillo - - PR 25990 - * tree-cfg.c (move_block_to_fn): Clear out the basic block - array after growing it. - -2006-02-01 Steve Ellcey - - PR middle-end/24901 - * fold-const.c (fold_checksum_tree): Change type of buf. - -2006-02-01 Bernd Schmidt - - * reload.c (push_secondary_reload): Initialize t_icode. - -2006-02-01 Jakub Jelinek - - * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): For - -msoft-float -mlong-double-128 only issue a warning, but don't - swich to DFmode long double. - -2006-02-01 Hans-Peter Nilsson - - * cse.c (fold_rtx) : When arg1 - has a constant equivalent, iterate over equivalents for arg0, - calling simplify_relational_operation and if there's a result - cheaper than X, apply fold_rtx and return the result. - -2006-02-01 Jan Hubicka - - * opts.c (no_unit_at_a_time_default): New global variable. - (decode_options): Use it. - * opts.h (no_unit_at_a_time_default): Declare. - -2006-02-01 Paul Brook - - * function.c (assign_parm_setup_reg): Use function argument promotion - rules. - * expr.c (expand_expr_real_1): Use function argument promotion rules - for PARM_DECLs. - -2006-02-01 Steve Ellcey - - * gcc.c (process_command): Change j to 'unsigned int'. - -2006-01-31 Andrew Pinski - - PR middle-end/26001 - * expr.c (expand_expr_real_1) : - Use the corrected index for the character - out of the string constant. - -2006-01-31 Andrew Pinski - - * mode-switching.c (optimize_mode_switching): Fix size - allocated for bb_info[n_entities]. - -2006-01-31 Andrew Pinski - - * gcc.c (main): Correct type that is allocated for - explicit_link_files. - -2006-01-31 Jakub Jelinek - - * config/s390/s390.c (init_alignment_context): Set - ALIAS_SET_MEMORY_BARRIER on the MEM. - * config/sparc/sparc.c (sparc_expand_compare_and_swap_12): Likewise. - -2006-01-31 Uttam Pawar - - PR middle-end/25933 - * loop-unroll.c (unroll_loop_runtime_iterations): Free - dom_bbs pointer. - * tree-ssa-live.c (type_var_init): Allocate bitmap after - call to tpa_init. - -2006-01-31 Marcin Dalecki - - * tree-vrp.c: Use XNEW/XCNEW allocation wrappers. - * regrename.c: Ditto. - * tree-ssa-loop-im.c: Ditto. - * tree-dump.c: Ditto. - * tree-complex.c: Ditto. - * genrecog.c: Ditto. - * tree-ssa-threadupdate.c: Ditto. - * tracer.c: Ditto. - * java/class.c: Ditto. - * java/jcf-parse.c: Ditto. - * java/resource.c: Ditto. - * java/except.c: Ditto. - * java/jvspec.c: Ditto. - * java/jcf-write.c: Ditto. - * java/jcf-path.c: Ditto. - * java/gjavah.c: Ditto. - * java/zextract.c: Ditto. - * java/jcf-io.c: Ditto. - * java/jcf.h: Ditto. - * java/buffer.c: Ditto. - * java/lang.c: Ditto. - * java/parse-scan.y: Ditto. - * java/lex.c: Ditto. - * java/lex.h: Ditto. - * cfgloopmanip.c: Ditto. - * postreload-gcse.c: Ditto. - * tree-ssa-loop-manip.c: Ditto. - * postreload.c: Ditto. - * tree-ssa-loop-ch.c: Ditto. - * loop.c: Ditto. - * ipa-cp.c: Ditto. - * cppspec.c: Ditto. - * diagnostic.c: Ditto. - * final.c: Ditto. - * genoutput.c: Ditto. - * gcc.c: Ditto. - * cfghooks.c: Ditto. - * cfgloopanal.c: Ditto. - * objc/objc-act.c: Ditto. - * gcov.c: Ditto. - * genextract.c: Ditto. - * genautomata.c: Ditto. - * pretty-print.c: Ditto. - * genemit.c: Ditto. - * cgraphunit.c: Ditto. - * flow.c: Ditto. - * df-scan.c: Ditto. - * haifa-sched.c: Ditto. - * dominance.c: Ditto. - * dbxout.c: Ditto. - * tree-ssa-loop-ivopts.c: Ditto. - * df-core.c: Ditto. - * mode-switching.c: Ditto. - * modulo-sched.c: Ditto. - * graph.c: Ditto. - * ipa-pure-const.c: Ditto. - * cse.c: Ditto. - * fix-header.c: Ditto. - * web.c: Ditto. - * tree-stdarg.c: Ditto. - * ipa-utils.c: Ditto. - * loop-init.c: Ditto. - * ipa-inline.c: Ditto. - * cfganal.c: Ditto. - * global.c: Ditto. - * alloc-pool.c: Ditto. - * dwarf2out.c: Ditto. - * opts.c: Ditto. - * genattrtab.c: Ditto. - * tree-ssa-loop-ivcanon.c: Ditto. - * predict.c: Ditto. - * timevar.c: Ditto. - * lcm.c: Ditto. - * fortran/gfortranspec.c: Ditto. - * regmove.c: Ditto. - * local-alloc.c: Ditto. - * langhooks.c: Ditto. - * function.c: Ditto. - * tree-vectorizer.c: Ditto. - * gcse.c: Ditto. - * ipa-type-escape.c: Ditto. - * alias.c: Ditto. - * tree-if-conv.c: Ditto. - * profile.c: Ditto. - * ipa.c: Ditto. - * tree-data-ref.c: Ditto. - * loop-unroll.c: Ditto. - * treelang/treetree.c: Ditto. - * calls.c: Ditto. - * bt-load.c: Ditto. - * ggc-common.c: Ditto. - * except.c: Ditto. - * coverage.c: Ditto. - * cselib.c: Ditto. - * tree-cfgcleanup.c: Ditto. - * tree-ssa-pre.c: Ditto. - * cfgcleanup.c: Ditto. - * loop-invariant.c: Ditto. - * loop-iv.c: Ditto. - * ipa-prop.c: Ditto. - * print-tree.c: Ditto. - * conflict.c: Ditto. - * ggc-page.c: Ditto. - * sched-deps.c: Ditto. - * regclass.c: Ditto. - * tree-object-size.c: Ditto. - * combine.c: Ditto. - * bb-reorder.c: Ditto. - * resource.c: Ditto. - * var-tracking.c: Ditto. - * cfgloop.c: Ditto. - * df-problems.c: Ditto. - * reg-stack.c: Ditto. - * tlink.c: Ditto. - * gccspec.c: Ditto. - * sched-rgn.c: Ditto. - * tree-ssa-structalias.c: Ditto. - * tree-ssa-reassoc.c: Ditto. - * config/darwin-c.c: Ditto. - * config/darwin.c: Ditto. - * config/arm/arm.c: Ditto. - * cfgrtl.c: Ditto. - * collect2.c: Ditto. - * reload1.c: Ditto. - -2006-01-31 Nicolas Pitre - - * arm.md (smaxsi3): Make aware of smax_m1. - (smax_m1): New. - -2006-01-31 Nathan Sidwell - - * config/m68k/lb1sf68.asm: Use moveq to load small constants. - -2006-01-31 Richard Guenther - - * doc/invoke.texi (-msselibm): Document. - * target.h (expand_library_builtin): New target hook. - * builtins.c (expand_builtin): Use expand_library_builtin. - (default_expand_library_builtin): New function. - * gcc.c (LINK_GCC_MATH_SPEC): Define. - (LINK_COMMAND_SPEC): Handle %(link_gcc_math). - (link_gcc_math_spec): Declare. - (static_specs): Add link_gcc_math_spec. - * expr.h (default_expand_library_builtin): Declare. - * target-def.h (TARGET_EXPAND_LIBRARY_BUILTIN): Define. - (TARGET_INITIALIZER): Add TARGET_EXPAND_LIBRARY_BUILTIN. - * config/i386/i386.h: Provide LINK_GCC_MATH_SPEC. - * config/i386/i386.opt (msselibm): New target option. - * config/i386/i386.c (ix86_builtin_function_variants): New array. - (ix86_init_sse_abi_builtins): New function. - (ix86_expand_library_builtin): Likewise. - (TARGET_EXPAND_LIBRARY_BUILTIN): Define. - (override_options): Handle error conditions wrt -msselibm. - (ix86_builtins): Add function codes for SSE2 ABI builtins. - (ix86_init_builtins): Call ix86_init_sse_abi_builtins. - * doc/extend.texi (__builtin_sse2_*): Document new target specific - builtins. - -2006-01-31 Richard Guenther - Paolo Bonzini - - * doc/install.texi (--disable-libgcc-math): Document. - -2006-01-30 Marcin Dalecki - - * expr.h (expand_normal): new inline function. - * builtins.c: use it, use EXPAND_NORMAL explicitely. - * dojump.c: use it. - * dwarf2out.c: use it. - * expr.c: use it. - * calls.c: use it. - * expmed.c: use it. - * except.c: use it. - * config/sparc/sparc.c: use it. - * config/i386/i386.c: use it. - * config/rs6000/rs6000.c: use it. - * config/arm/arm.c: use it. - * config/mips/mips.c: use it. - * stmt.c: use it, use EXPAND_NORMAL explicitely. - -2006-01-30 Roger Sayle - - * config/i386/cygwin.h (GCC_DRIVER_HOST_INITIALIZATION): Cast - argv to the appropriate type. - -2006-01-30 Zdenek Dvorak - - * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Remove - unreachable code. - -2006-01-30 Ulrich Weigand - - PR target/26018 - * config/s390/s390.c (struct machine_function): New flag - decomposed_literal_pool_addresses_ok_p. - (s390_reorg): Set it before final stage of literal pool transforms. - (s390_decompose_address): Only accept displacements of the form - (minus (label_ref ...) (label_ref ...)) if that flag is set. - -2006-01-30 Carlos O'Donell - - * optabs.c (prepare_cmp_insn): If unbaised and unsigned then bias - the comparison routine return. - -2006-01-30 Michael Matz - - * global.c (find_reg): Only evict for global regs. - Take n_refs into account and dump more info. - -2006-01-30 J"orn Rennecke - - PR target/14798: - * sh.c (pragma_interrupt, trap_exit, sp_switch): Remove variable. - (pragma_trap, pragma_nosave_low_regs): Likewise. - (current_function_anonymous_args): Likewise. - (sh_deferred_function_attributes): New variable. - (sh_deferred_function_attributes_tail): Likewise. - (print_operand): For '@', look up trap_exit attribute. - (calc_live_regs): Look up trapa_handler attribute. For trapa - handlers, save/restore fpscr, but don't do any other - interrupt-specific saves. - Don't save r0..r7 if the nosave_low_regs attribute is in effect. - Fix check for partially saved registers to check for SHmedia. - (sh_expand_prologue, sh_expand_epilogue): Look up sp_switch attribute. - (sh_output_function_epilogue): Don't clear any of the removed - variables. - (sh_insert_attributes): Don't check pragma_interrupt. - Insert deferred attributes. Check that interrupt attribute is - present for other attributes that require its presence. - (sh_attribute_table): Add new attributes trapa_handler and - nosave_low_regs. - (sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute): - Don't check for pragma_interrupt. Don't store argument. - * sh.h (pragma_interrupt, sp_switch): Don't declare. - (sh_deferred_function_attributes): Declare. - (sh_deferred_function_attributes_tail): Likewise. - * sh.md (sp_switch_1): Add operand. Change generator caller. - (sh_pr_interrupt, sh_pr_trapa, sh_pr_nosave_low_regs): Remove. - (*return_i): Don't use when trap_exit attribute is in effect. - (*return_trapa): New insn pattern. - * sh-c.c: New file. - * config.gcc (sh[123456ble]*-* | sh-*-*): New trailer stanza, - setting c_target_objs and cxx_target_objs. - * t-sh: Add rule for sh-c.o. - -2006-01-30 Richard Guenther - - PR c++/23372 - * gimplify.c (gimplify_target_expr): Handle easy cases - without creating a temporary. - -2006-01-30 Nathan Sidwell - - * vec.h (safe_grow): Remove duplicated line. - -2006-01-29 Diego Novillo - - PR 25874 - * omp-low.c (execute_expand_omp): Move CFG cleanup code ... - (expand_omp): ... here. - (expand_omp_parallel): Only remove barriers for combined - parallel+workshare constructs. - -2006-01-29 Eric Botcazou - - Revert - - 2005-11-09 Eric Botcazou - * tree.c (build_qualified_type): Chain the new type to the original - type's TYPE_NEXT_PTR_TO or TYPE_NEXT_REF_TO linked lists if it is - a POINTER_TYPE or a REFERENCE_TYPE respectively. - (build_pointer_type_for_mode): Only return unqualified types. - (build_reference_type_for_mode): Likewise. - -2006-01-29 Gabriel Dos Reis - - * configure.ac (cxx_compat_warn): Set if -Wc++-compat is supported. - * Makefile.in (CXX_COMPAT_WARN): Define. - * configure: Regenerate. - -2006-01-29 Dorit Nuzman - - PR tree-opt/25911 - * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Change assert - to an if check. - -2006-01-29 Gabriel Dos Reis - - * toplev.c: Fix thinko. - -2006-01-29 Gabriel Dos Reis - Marcin Dalecki - - * toplev.c (floor_log2, exact_log2): Don't define if __cplusplus. - (push_srcloc): Use XNEW. - (init_asm_output, default_get_pch_validity): Use XNEWVEC. - -2006-01-29 Kenneth Zadeck - - * df-core.c (df_set_blocks): Deleted all variable. - -2006-01-28 Ian Lance Taylor - - * cgraphunit.c (cgraph_assemble_pending_functions): Call - cgraph_output_pending_asms. - -2006-01-28 Zack Weinberg - - * c.opt: Add -W(no-)overlength-strings. - * doc/invoke.texi: Document it. - * c-opts.c (c_common_handle_option): -pedantic implies - -Woverlength-strings, if not explicitly disabled already. - (c_common_post_options): -Woverlength-strings defaults to off, and - is always off for C++. - * c-common.c (fix_string_type): Issue warning about strings longer - than is portable only if warn_overlength_strings. Rearrange code - a little for clarity. - * configure.in: Check for -Wno-overlength-strings as well before - enabling -pedantic in stage 1. - * Makefile.in (STRICT2_WARN): Add -Wno-overlength-strings. - (gcc.o-warn, insn-automata.o-warn, build/gencondmd.o-warn): Delete. - - * genconditions.c (write_header, write_one_condition) - (write_conditions, write_writer): Consolidate very long strings - that were broken up to fit in C89 portable limit. Don't use - printf when fputs will do. - -2006-01-28 Adam Nemet - - * combine.c (simplify_comparison ): Check - TRULY_NOOP_TRUNCATION before start using a subreg. - - * config/mips/mips.md (*branch_zero, - *branch_zero_inverted, *branch_equality, - *branch_equality_inverted, *branch_equality_mips16): - Remove mode check from comparisons. - -2006-01-28 Kenneth Zadeck - - * config/mips/mips-protos.h (mips_set_live_on_entry): Deleted. - -2006-01-28 Kazu Hirata - - * expmed.c (const_mult_add_overflow_p): Remove. - * expr.h: Remove the prototype for const_mult_add_overflow_p. - - * recog.c (validate_replace_rtx_subexp): Remove. - * recog.h: Remove the prototype for - validate_replace_rtx_subexp. - - * integrate.h: Remove the prototype for - copy_decl_for_inlining. - * rtl.h: Remove the prototype for mark_constant_function. - * tree-vectorizer.h: Remove the prototype for - vect_strip_conversion. - - * modulo-sched.c (create_partial_schedule, - free_partial_schedule, reset_partial_schedule): Make them - static. - - * hooks.c (hook_bool_rtx_int_false): Remove. - * hooks.h: Remove the prototype for hook_bool_rtx_int_false. - -2006-01-28 David Edelsohn - - * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): -msoft-float - and -mlong-double-128 are incompatible. - * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Same. - * config/rs6000/t-aix43 (LIB2FUNCS_EXTRA): Add ppc64-fp.c. - (TARGET_LIBGCC2_CFLAGS): Define. - * config/rs6000/t-aix52 (LIB2FUNCS_EXTRA): Same. - (TARGET_LIBGCC2_CFLAGS): Same. - * config/rs6000/ppc64-fp.c: Compile for 64-bit AIX. - -2006-01-28 Kazu Hirata - - PR c/19606. - * c-typeck.c (build_binary_op): Perform implicit casts of - operands before shortening them. - - * cfgloopmanip.c (split_loop_bb): Remove. - * cfgloop.h: Remove the prototype for split_loop_bb. - - * cfgloop.c (flow_loop_outside_edge_p): Remove. - * cfgloop.h: Remove the prototype for - flow_loop_outside_edge_p. - - * emit-rtl.c (init_virtual_regs): Make it static. - * function.h: Remove the prototype for init_virtual_regs. - - * recog.c (peephole2_optimize): Make it static. - * recog.h: Remove the prototype for peephole2_optimize. - -2006-01-27 H.J. Lu - - * df-scan.c (df_record_entry_block_defs): Check if - INCOMING_RETURN_ADDR_RTX is defined. - -2006-01-27 Daniel Berlin - Kenneth Zadeck - - PR rtl-optimization/24762 - * doc/tm.texi: Added TARGET_EXTRA_LIVE_ON_ENTRY. - * targhooks.c (hook_void_bitmap): New hook prototype. - * targhoohs.h (hook_void_bitmap): Ditto. - * bitmap.h (bitmap_head_def): Moved to coretypes.h. - * coretypes.h (bitmap_head_def): Moved from bitmap.h. - * target.h (live_on_entry): New function pointer. - * df-scan.c (df_all_hard_regs): Removed. - (df_scan_dump, df_hard_reg_init): Removed df_all_hard_regs. - (df_scan_free_internal): Added df->entry_block_defs. - (df_scan_alloc): Ditto. - (df_scan_dump): Ditto. - (df_uses_record): Plumbed flag field properly thru calls. - Record EH_RETURN_DATA_REGNO in eh blocks unconditionally. - This part fixes PR24762. - (df_bb_refs_record): Added code to make the frame and arg - pointers live in EH blocks. - (df_refs_record): Added call to df_record_entry_block_defs. - (df_record_entry_block_defs): New function. - * df-core.c: Added comments to describe new artifical defs. - * df.h (DF_REF_DIES_AFTER_THIS_USE): New flag in enum df_ref_flags. - (entry_block_defs): New field in struct df. - (df_all_hard_regs): Deleted. - * target-def.h: Added TARGET_EXTRA_LIVE_ON_ENTRY. - * df-problems.c (df_ru_bb_local_compute_process_def): - Added code to handle artifical defs in the entry to a function. - (df_ru_bb_local_compute): Ditto. - (df_rd_bb_local_compute_process_def): Ditto. - (df_rd_bb_local_compute): Ditto. - (df_lr_bb_local_compute): Ditto. - (df_ur_bb_local_compute): Ditto. - (df_urec_bb_local_compute): Ditto. - (df_chain_create_bb): Ditto. - (df_ur_local_finalize): Removed entry. - (df_urec_init): Ditto. - (df_urec_local_finalize): Ditto. - (df_ri_bb_compute): Added detection of last use of pseudos. - * Makefile.in (df-scan.o): Updated dependencies. - * config/mips/mips-protos.h (mips_set_live_on_entry): Added. - * config/mips/mips.c (mips_set_live_on_entry): Added. - * config/mips/mips.c (TARGET_EXTRA_LIVE_ON_ENTRY): Added value - for target hook. - * dce.c (marked_insn_p): Added code to handle artifical defs. - -2006-01-27 H.J. Lu - - * config/i386/emmintrin.h (_mm_cvtsd_f64): Add missing Intel - intrinsic. - (_mm_cvtsi128_si64): Likewise. - (_mm_cvtsd_si64): Likewise. - (_mm_cvttsd_si64): Likewise. - (_mm_cvtsi64_sd): Likewise. - (_mm_cvtsi64_si128): Likewise. - * config/i386/mmintrin.h (_m_from_int64): Likewise. - (_mm_cvtsi64_m64): Likewise. - (_m_to_int64): Likewise. - (_mm_cvtm64_si64): Likewise. - * config/i386/xmmintrin.h (_mm_cvtss_si64): Likewise. - (_mm_cvttss_si64): Likewise. - (_mm_cvtsi64_ss): Likewise. - (_mm_cvtss_f32): Likewise. - -2006-01-27 Carlos O'Donell - - * c-pragma.c (init_pragma) : Call c_register_pragma_with_expansion - for pragma redefine_extname. - -2006-01-27 Jakub Jelinek - - PR target/25864 - * libgcc-std.ver: Add GCC_4.1.0 symbol version. - * config/rs6000/t-linux64 (TARGET_LIBGCC2_CFLAGS): Only append - -mno-minimal-toc to previous content. - (bispecs): Remove goal. - * config/rs6000/ppc64-fp.c: Define TMODES before including fp-bit.h. - * config/rs6000/darwin-ldouble.c: Don't provide _xlq*@GCC_3.4 - compatibility aliases on powerpc-*-*gnu*. - * config/rs6000/libgcc-ppc-glibc.ver: New file. - * config/rs6000/t-ppccomm (SHLIB_MAPFILES): Append - libgcc-ppc-glibc.ver on powerpc*-*-*gnu*. - (TARGET_LIBGCC2_CFLAGS): Append -specs=ldblspecs. - (ldblspecs): New goal. - * config/rs6000/t-linux64 (SHLIB_MAPFILES): Removed. - * mklibgcc.in: If $TPBIT is empty, don't compile _sf_to_tf and - _df_to_tf. - * config/fp-bit.h (TMODES): Don't define if none of TFLOAT, - L_sf_to_tf or L_df_to_tf is defined. - -2006-01-27 David Edelsohn - Alan Modra - - PR target/25864 - * config/rs6000/linux.h (POWERPC_LINUX): Define. - * config/rs6000/linux64.h (POWERPC_LINUX): Define. - * config/rs6000/darwin-ldouble.c: Build on 32-bit PowerPC. - * config/rs6000/darwin.h (TARGET_IEEEQUAD): Define to zero. - * config/rs6000/aix.h (TARGET_IEEEQUAD): Define to zero. - * config/rs6000/rs6000.c (rs6000_ieeequad): New variable. - (rs6000_override_options): Initialize rs6000_ieeequad. - Initialize TFmode format to ibm_extended_format if not - TARGET_IEEEQUAD. - (rs6000_handle_option): Accept -mabi= ibmlongdouble and - ieeelongdouble. - (rs6000_emit_move): Move !TARGET_IEEEQUAD as two parts. - (rs6000_return_in_memory): Only return IEEEQUAD in memory. - (function_arg_advance): IBM long double passed in two FPRs, not - split. - (function_arg): IBM long double passed in FPRs. - (rs6000_pass_by_reference): Only IEEEQUAD passed by reference. - (rs6000_gimplify_va_arg): IBM long double passed in two FPRs. - Only multireg GPR aligned. - (rs6000_init_libfuncs): Enable IBM long double functions if not - IEEEQUAD. - (rs6000_generate_compare): Use IBM long double compare if not - TARGET_IEEEQUAD. - * config/rs6000/rs6000.h (rs6000_ieeequad): Declare. - (TARGET_IEEEQUAD): Define. - (CANNOT_CHANGE_MODE_CLASS): Any mode larger than doubleword if - not TARGET_IEEEQUAD. - * config/rs6000/rs6000.md: Enable TFmode patterns if - !TARGET_IEEEQUAD. - * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Add darwin-ldouble.c. - * config/rs6000/svr4.h (SUBTARGET_OVERRIDE_OPTIONS): -msoft-float - and -mlong-double-128 are incompatible. - * doc/invoke.texi (-mabi): Collect options together. Add - ibmlongdouble and ieeelongdouble. - -2006-01-27 Richard Sandiford - - * doc/rtl.texi (SYMBOL_REF_DATA): Adjust documentation for new - opaque type. - * optabs.c (init_one_libfunc): Use SET_SYMBOL_REF_DECL. - * varasm.c (make_decl_rtl, build_constant_desc): Likewise. - (force_const_mem): Use SET_SYMBOL_REF_CONSTANT. - * rtl.h (rtunion_def): Remove rt_ptr. - (X0PTR): Delete. - (SYMBOL_REF_DATA): Use X0ANY instead of X0PTR. - (SET_SYMBOL_REF_DECL, SET_SYMBOL_REF_CONSTANT): New macros. - * config/i386/winnt.c (i386_pe_mark_dllexport) - (i386_pe_mark_dllimport): Use SET_SYMBOL_REF_DECL. - -2006-01-27 Gabor Loki - - * cfgcleanup.c (try_crossjump_to_edge): Fix comment typo. - -2006-01-26 Alexandre Oliva - - PR other/24829 - PR target/24831 - * gthr-dce.h: Do not gthrw-ify pthread_once_init, - pthread_key_delete. From John David Anglin. gthrw-ify - pthread_getunique_np only if it it's not a macro. Delete - UNUSED macro. - (__gthread_objc_condition_allocate, __gthread_objc_condition_deallocate, - __gthread_objc_condition_wait, __gthread_objc_condition_broadcast, - __gthread_objc_condition_signal, __gthread_key_delete): Add - "__attribute__ ((__unused__))" to unused arguments. - (__gthread_recursive_mutex_init_function): Add missing return. - * gthr-dce.h, gthr-tpf.h, gthr-solaris.h, gthr-posix.h, - gthr-posix95.h: Use macro-based approach for name redirection - on targets missing weakref. - -2006-01-26 Zack Weinberg - - * genconditions.c (write_header): In generated code, #ifdef out - all includes and fake declarations, except includes of bconfig.h - and system.h, unless GCC_VERSION >= 3001. Do not include - gensupport.h in any case. - (write_conditions): Generate a definition of struct c_test. Add - a comment to the generated #endif. - (write_one_condition): Escape backslashes in string too. - (write_writer): Generated code must escape backslashes and quote - marks (but not newlines) in the strings it writes. - * Makefile.in (build/gencondmd.o): Update dependencies. - -2006-01-26 Steve Ellcey - - PR target/25961 - * Makefile.in (insn-automata.o): Add header file dependencies. - * genautomata.c: Add includes. - -2006-01-26 Steve Ellcey - - PR target/25961 - * Makefile.in (insn-automata.o): Add -Wno-error flag. - -2006-01-26 Paolo Bonzini - - * configure.ac: Expect target tools paths to be passed from the toplevel - and wrap the detection into AS_SET_VAR_IF. Extract side-effects out of - AS_SET_VAR_IF. - * acinclude.m4 (gcc_AC_TOOL_DIRS, gcc_AC_CHECK_TOOL): Remove. - -2006-01-26 Alexandre Oliva - - PR c/25892 - * c.opt (Wpointer-sign): Init to -1. - * c-opts.c (c_common_handle_option): Set to 1 on OPT_Wall and - OPT_pedantic, to 0 otherwise. - * doc/invoke.texi: Update. - -2006-01-26 Paolo Bonzini - - * config/i386/i386.md (extendsfdf2, extendsfxf2, extenddfxf2): Emit - constants provided by 80387 instructions in the destination mode. - -2006-01-26 Richard Guenther - Andrew Pinski - - PR tree-opt/21470 - partial PR tree-opt/17064 - * tree-ssa-structalias.c (intra_create_variable_infos): - Create heap variables for incoming parameters if - flag_argument_noalias > 1. - (find_what_p_points_to): Look through default defs of - parameter decls. - -2006-01-26 Jeff Law - - PR ada/25900 - * tree-vrp.c (extract_range_from_assert): When merging a VR_RANGE - with a VR_ANTI_RANGE and the VR_ANTI_RANGE is completely contained - within the VR_RANGE, use the VR_RANGE as the result, not the - VR_ANTI_RANGE. - (adjust_range_with_scev): Reject ranges from SCEV which are out of - bounds for the type. - -2006-01-26 Daniel Berlin - - * tree-ssa-alias.c (maybe_create_global_var): Change - subvar walking to an assertion that we don't have subvar'd variables. - -2006-01-26 Andrew Pinski - - PR C/25861 - * c-common.c (c_common_truthvalue_conversion) : - Use a new variable, inner. PARM_DECLs are always non-weak. - -2006-01-26 Shantonu Sen - - * tree.h (OMP_CLAUSE_SUBCODE_CHECK): Add definition for - --disable-checking. - -2006-01-26 Adam Nemet - - * config/mips/mips.md (*clear_upper32): New combiner pattern. - -2006-01-26 Richard Earnshaw - - * arm.md (smaxsi3, sminsi3): Convert to define_expand. - (smax_insn, smin_insn, smax_0, smin_0): New. - -2006-01-26 Hans-Peter Nilsson - - PR target/25947 - * config/cris/cris.c (cris_order_for_addsi3): New function. - * config/cris/cris-protos.h: Prototype it. - * config/cris/cris.md (split for "move.S1 [rx=rx+i],ry") - (split for "move.S1 ry,[rx=rx+i]", split for "clear.[bwd] [rx=rx+i]") - (split for "mov(s|u).S1 [rx=rx+i],ry", split for "op.S1 [rx=rx+i],ry") - (split for "op.S1 [rx=rx+i],ry (swapped)") - (split for "op(s|u).S1 [rx=rx+i],ry") - (split for "op(s|u).S1 [rx=rx+i],ry (swapped, plus or bound)"): - Apply cris_order_for_addsi3 when generating addsi3 insns. - -2006-01-25 Diego Novillo - - * tree.h (TREE_RANGE_CHECK): Fix range predicate. - (TREE_BLOCK): Add call to EXPR_CHECK. - -2006-01-25 Diego Novillo - - PR 25886 - * tree-dump.c (dequeue_and_dump): Handle OMP_CLAUSE. - * tree-pretty-print.c (dump_omp_clause): Extract from ... - (dump_omp_clauses): ... here. - (dump_generic_node): Handle OMP_CLAUSE. - * tree.c (omp_clause_num_ops): New. - (omp_clause_code_name): New. - (tree_code_size): Handle OMP_CLAUSE. - (tree_size): Likewise. - (make_node): Document handling of OMP_CLAUSE. - (tree_node_structure): Handle OMP_CLAUSE. - (omp_clause_check_failed): New. - (omp_clause_range_check_failed): New. - (omp_clause_operand_check_failed): New. - (build_omp_clause): New. - (walk_tree): Adjust handling of OMP_CLAUSE_* nodes. - * tree.h (enum omp_clause_code): Declare. - (OMP_CLAUSE_SUBCODE_CHECK): Define. - (OMP_CLAUSE_RANGE_CHECK): Define. - (OMP_CLAUSE_ELT_CHECK): Define. - (omp_clause_check_failed): Declare. - (omp_clause_operand_check_failed): Declare. - (omp_clause_range_check_failed): Declare. - (OMP_CLAUSE_CHAIN): Do not use TREE_RANGE_CHECK. - (OMP_CLAUSE_OPERAND): Use OMP_CLAUSE_RANGE_CHECK. - (OMP_CLAUSE_PRIVATE_DEBUG): Use OMP_CLAUSE_SUBCODE_CHECK. - (OMP_CLAUSE_LASTPRIVATE): Likewise. - (OMP_CLAUSE_IF_EXPR): Likewise. - (OMP_CLAUSE_NUM_THREADS_EXPR): Likewise. - (OMP_CLAUSE_SCHEDULE_CHUNK_EXPR): Likewise. - (OMP_CLAUSE_REDUCTION_CODE): Likewise. - (OMP_CLAUSE_REDUCTION_INIT): Likewise. - (OMP_CLAUSE_REDUCTION_MERGE): Likewise. - (OMP_CLAUSE_REDUCTION_PLACEHOLDER): Likewise. - Use tree_node.omp_clause.subcode instead of TREE_COMPLEXITY. - (OMP_CLAUSE_SCHEDULE_KIND): Likewise. - (OMP_CLAUSE_DEFAULT_KIND): Likewise. - (OMP_CLAUSE_CODE): Define. - (OMP_CLAUSE_SET_CODE): Define. - (OMP_CLAUSE_CODE): Define. - (OMP_CLAUSE_OPERAND): Define. - (struct tree_omp_clause): Declare. - (union tree_node): Add field 'omp_clause'. - * treestruct.def (TS_OMP_CLAUSE): Define. - * tree.def (OMP_CLAUSE_PRIVATE, OMP_CLAUSE_SHARED - OMP_CLAUSE_FIRSTPRIVATE, OMP_CLAUSE_LASTPRIVATE, - OMP_CLAUSE_REDUCTION, OMP_CLAUSE_COPYIN, - OMP_CLAUSE_COPYPRIVATE, OMP_CLAUSE_IF, - OMP_CLAUSE_NUM_THREADS, OMP_CLAUSE_SCHEDULE, - OMP_CLAUSE_NOWAIT, OMP_CLAUSE_ORDERED, OMP_CLAUSE_DEFAULT): Remove. - (OMP_CLAUSE): Define. - * print-tree.c (print_node): Handle OMP_CLAUSE. - * omp-low.c: Adapt all uses of OMP_CLAUSE_* nodes. - * c-typeck.c: Likewise. - * gimplify.c: Likewise. - * c-omp.c: Likewise. - * tree-nested.c: Likewise. - * tree-inline.c: Likewise. - * c-parser.c: Likewise. - * gimple-low.c (lower_omp_directive): Do not set TREE_BLOCK on - clauses. - -2006-01-25 Roger Sayle - - PR rtl-optimization/25703 - * combine.c (try_combine): Handle zero_extract and strict_low_part - of non-lowpart SUBREGs for constant reg_subword_p set optimization. - -2006-01-25 Peter Bergner - - * global.c: Fix comment typos. - -2006-01-25 Andrew Pinski - - PR target/25758 - * config/i386/i386.c (output_pic_addr_const) : - Use output_addr_const instead of assemble_name. - -2006-01-25 Paolo Bonzini - - * Makefile.in (sched-vis.o): Update dependencies. - * haifa-sched.c (sched_finish): Clear current_sched_info. - * cfg.c (dump_bb_info): New, split from dump_flow_info. - (dump_flow_info): Call it. - * passes.c (execute_todo): Call print_rtl_slim_with_bb to make - a slim RTL dump. - * basic-block.h (dump_bb_info): Declare. - * tree-dump.c (dump_enable_all): OR the flags of a -fdump-tree-all - option, and apply options only for dump files whose TDF_RTL, - TDF_TREE, or TDF_IPA bits match. - * rtl.h: Declare new functions exported from sched-vis.c. - * sched-vis.c: Enable also if scheduling is not used. - (print_value): Print the mode of registers if not inside scheduling. - (print_insn): Make it work outside the scheduler. Beautify the output - a bit. - (dump_insn_slim, debug_insn_slim, print_rtl_slim_with_bb): New. - -2006-01-25 Richard Sandiford - - * doc/rtl.texi (SYMBOL_REF_CONSTANT, SYMBOL_REF_DATA): Document. - * gengtype.c (adjust_field_rtx_def): Garbage-collect field 2 of - a SYMBOL_REF as either a tree or a constant_descriptor_rtx, - depending on the value of CONSTANT_POOL_ADDRESS_P. - * optabs.c (init_one_libfunc): Nullify SYMBOL_REF_DATA rather than - SYMBOL_REF_DECL. - * varasm.c (make_decl_rtl, build_constant_desc): Set SYMBOL_REF_DATA - rather than SYMBOL_REF_DECL. - (rtx_constant_pool): Remove const_rtx_sym_htab. - (const_desc_rtx_sym_hash, const_desc_rtx_sym_eq): Delete. - (init_varasm_status): Don't initialize const_rtx_sym_htab. - (force_const_mem): Point SYMBOL_REF_DATA to the constant pool entry. - Remove handling of const_rtx_sym_htab. - (find_pool_constant): Delete. - (get_pool_constant, get_pool_constant_mark): Use SYMBOL_REF_CONSTANT - rather than find_pool_constant. - (get_pool_constant_for_function): Delete. - (get_pool_mode, mark_constant): Use SYMBOL_REF_CONSTANT rather than - find_pool_constant. - * rtl.h (rtunion_def): Add rt_constant and rt_ptr fields. - (X0CONSTANT, X0PTR, SYMBOL_REF_DATA): New macros. - (SYMBOL_REF_DECL): Return NULL if CONSTANT_POOL_ADDRESS_P. - (SYMBOL_REF_CONSTANT): New macro. - (get_pool_constant_for_function): Delete. - * config/i386/winnt.c (i386_pe_mark_dllexport): Set SYMBOL_REF_DATA - rather than SYMBOL_REF_DECL. - (i386_pe_mark_dllimport): Likewise. - * config/rs6000/rs6000.c (rs6000_emit_move): Copy SYMBOL_REF_DATA - rather than SYMBOL_REF_DECL. - * config/darwin.c (machopic_indirect_data_reference): Likewise. - (machopic_indirect_call_target): Likewise. - -2006-01-25 Eric Botcazou - - * flow.c (delete_noop_moves): Add missing EOL to dump message. - -2006-01-25 Richard Sandiford - - * genattrtab.c (gen_bypass): Allow bypasses to contain whitespace. - -2006-01-25 Kaz Kojima - - * config/sh/predicates.md (sh_register_operand): Accept CONST_DOUBLE. - -2006-01-24 David Daney - - PR java/25816 - * configure.ac (enable_tls): New enable option. - (HAVE_AS_TLS): Don't do assembler check if enable_tls set. - * configure: Regenerate. - * doc/install.texi (--enable-tls): Document new option. - (--disable-tls): Ditto. - -2006-01-24 Richard Henderson - - * alias.h (ALIAS_SET_MEMORY_BARRIER): New. - * alias.c (true_dependence): Respect it. - (canon_true_dependence, write_dependence_p): Likewise. - * builtins.c (get_builtin_sync_mem): Set it. - -2006-01-25 Zdenek Dvorak - - * loop-iv.c (iv_analysis_loop_init): Use df analysis in a more - efficient way. - -2006-01-24 DJ Delorie - - * expmed.c (store_bit_field): Don't arbitrarily deny using insv - for storing constants in single-bit bitfields. - -2006-01-25 Ben Elliston - - * dfp.c (dfp_byte_swap): Use uint32_t and not unsigned long. - -2006-01-24 Andrew Pinski - - PR tree-opt/25860 - * tree-ssa-pre.c (phi_translate): Return NULL - for AGGREGATE_TYPE's. - -2006-01-24 Zack Weinberg - - * genautomata.c (process_state_for_insn_equiv_partition): - Use xcalloc for insn_arcs_array. - * vec.h (DEF_VEC_ALLOC_FUNC_I): New set of templates. - (DEF_VEC_ALLOC_I): Use it, not DEF_VEC_ALLOC_FUNC_P. - -2006-01-24 Richard Henderson - - * genextract.c (VEC_safe_set_locstr): Take VEC by reference; - update all callers. - -2006-01-23 Paolo Bonzini - - PR rtl-optimization/25890 - PR rtl-optimization/25905 - * combine.c (expand_compound_operation, expand_field_assignment): - Fail if the bitfield's final position is out of bounds. - -2006-01-24 Ian Lance Taylor - - PR middle-end/25930 - * cgraphunit.c (cgraph_output_in_order): Don't clear - cgraph_asm_nodes until after asm strings have been output. - -2006-01-23 Adam Nemet - - * fix-header.c (read_scan_file): Add new parameter imultilib when - calling register_include_chains. - -2006-01-23 Diego Novillo - - * omp-low.c: Update documentation. - -2006-01-23 Andrew Pinski - Daniel Berlin - - PR tree-opt/25315 - PR tree-opt/25857 - * tree-ssa-pre.c (insert_extra_phis): If an incomming edge is abnormal - return from the function. - -2006-01-22 Zack Weinberg - - * rtl.def (match_code): Add second argument. - * genpreds.c (write_extract_subexp): New function. - (write_match_code): Add path argument. Use write_extract_subexp. - (write_predicate_expr): Pass path to write_match_code. - (mark_mode_tests): MATCH_CODE applied to a subexpression does - not perform a mode test. - * genrecog.c (compute_predicate_codes): MATCH_CODE applied to - a subexpression does not constrain the top-level code set. - * read-rtl.c (read_rtx_variadic): New function. - (read_rtx_1): Use it; allow AND and IOR to be variadic. - * doc/md.texi: Document new notation. - * config/i386/predicates.md (cmpsi_operand_1): Fold into ... - (cmpsi_operand): ... here, using new notation. - -2006-01-22 Zack Weinberg - - * varray.c: Remove GENERATOR_FILE #ifdefs. - -2006-01-22 Zack Weinberg - - * genautomata.c (output_reserved_units_table): Emit nothing if - description->query_units_num is zero. Remove extra blank line. - (output_cpu_unit_reservation_p): Short circuit - if description->query_units_num is zero. - -2006-01-22 Zack Weinberg - - * genattrtab.c: Don't include genattrtab.h. Define ATTR_NONE - and ATTR_SPECIAL (from genattrtab.h). Don't define num_dfa_decls - nor any of the random handful of variables that used to be necessary - when this program was linked with rtlanal.o. Prune set of forward - function declarations. - (struct attr_desc): Remove static_p field. - (hash_obstack, temp_obstack, attr_hash_table, attr_printf) - (check_attr_test, make_internal_attr, make_numeric_value): Make static. - (attr_string): Do not read the character one past the length of - the string. - (write_attr_get, find_attr, make_internal_attr): Don't touch static_p. - (struct insn_reserv, all_insn_reservs, last_insn_reserv_p) - (n_insn_reservs, gen_insn_reserv, struct bypass_list, all_bypasses) - (n_bypasses, gen_bypass_1, gen_bypass, process_bypasses) - (make_automaton_attrs): New. - (main): Do not call into genautomata. Call local gen_bypass - and gen_insn_reserv as appropriate. Call make_automaton_attrs. - Remove special case for insn_alts. - * genautomata.c: Include gensupport.h; not genattrtab.h nor - varray.h (leftover from previous change). Prune set of forward - function declarations. Remove state_alts fields from all - structures. Remove state_alts_table from struct automaton. - Make everything except main static. Do not maintain num_dfa_decls. - Do not maintain state_alts fields of various structures. - (process_decls): Don't validate condexp for dm_insn_reserv decls. - (add_arc): Remove state_alts argument. All callers updated. - (output_reserved_units_table): Emit #ifdef here... - (output_tables): ...not here. Don't generate state_alts tables. - (expand_automata): Don't generate attributes. - (write_automata): Don't generate state_alts functions. - (main): New function. - (it_is_empty_reserv_sets, output_state_alts_full_vect_name) - (output_state_alts_comb_vect_name, output_state_alts_check_vect_name) - (AUTOMATON_STATE_ALTS_MACRO_NAME, INTERNAL_STATE_ALTS_FUNC_NAME) - (STATE_ALTS_FUNC_NAME, INSN_DEFAULT_LATENCY_FUNC_NAME) - (BYPASS_P_FUNC_NAME, output_state_alts_table) - (output_automata_list_state_alts_code, output_internal_state_alts_func) - (output_state_alts_func, make_insn_alts_attr, make_bypass_attr) - (make_internal_dfa_insn_code_attr, make_default_insn_latency_attr): - Delete. - * genattr.c: Declare internal_dfa_insn_code in insn-attr.h. - * genattrtab.h: Delete file. - * Makefile.in (OBJS-common): Add insn-automata.o. - (insn-automata.o): New rule. - (simple_generated_c): Add insn-automata.c. - (build/genattrtab.o, build/genautomata.o): Update dependencies. - (genprogmd): Add automata. - (build/genattrtab): Needs no extra objects nor libraries. - (build/genautomata): Needs build/vec.o and -lm. - -2006-01-22 Zack Weinberg - - * genautomata.c (process_state_longest_path, max_dfa_issue_rate) - (output_dfa_max_issue_rate, locked_states_num): Delete. - (struct automaton): Add locked_states field. - (output_dead_lock_vect): Save number of locked states in - automaton->locked_states. If it is zero, don't print anything. - (output_max_insn_queue_index_def): Define max_insn_queue_index const. - (output_internal_dead_lock_func): Only test the dead_lock_vect - for automata that have locked states. - (output_statistics): Always print the number of locked states for - each automaton. Calculate total number of locked states here. - (write_automata): Don't call output_dfa_max_issue_rate. - * genattrtab.c: Define length_unit_log as a const variable. - * genattr.c: Don't emit MAX_DFA_ISSUE_RATE. Declare - max_insn_queue_index const. - * final.c (length_unit_log): Declare const. - * doc/tm.texi: Remove all references to MAX_DFA_ISSUE_RATE. - -2006-01-22 Zack Weinberg - - * genautomata.c: Include vec.h, not varray.h. - Delete vla_ptr_t, all of the VLA_PTR_ macros, and all of the - VLA_HWINT_ macros. Change vla_hwint_t to a typedef for - VEC(vect_el_t,heap) *. Convert all uses of VLA_* macros to - VEC_* macros operating on appropriately typed vectors, or to - malloced arrays when the size is known in advance. Const-ify - many char* variables and function arguments. No functional changes. - * Makefile.in (build/varray.o): Delete rule. - (build/genattrtab): Depend on build/vec.o instead of build/varray.o. - (build/genautomata.o): Depend on vec.h instead of $(VARRAY_H). - -2006-01-22 Zack Weinberg - - * gensupport.c: Define get_insn_name and record_insn_name here. - (read_md_rtx): Call record_insn_name as appropriate. - * genattr.c, genattrtab.c, gencodes.c, genconfig.c, genemit.c - * genextract.c, genflags.c, genopinit.c, genoutput.c, genpeep.c - * genpreds.c, genrecog.c: Don't define get_insn_name nor - record_insn_name. - * Makefile.in (BUILD_SUPPORT, BUILD_PRINT): Fold into BUILD_RTL. - (BUILD_VARRAY): Delete. - (genprognormal): Rename genprogmd. Fold in all programs from - genprognoprint; also attrtab. - (build/genattrtab): Just mention genautomata.o and varray.o. - Reorganize a bit, add comments to make the categories clearer. - -2006-01-22 Zack Weinberg - - * genconditions.c (condition_table, add_condition): Delete. - (write_conditions): Don't emit n_insn_conditions nor - insn_elision_unavailable. Issue the gcc version #ifdef here, - inside the table, with no #else clause ... - (write_header): ...not here. - (write_writer): New function. - (main): Don't initialize condition_table. Use add_c_test. - Call write_writer. - * gensupport.c (init_md_reader_args_cb): Handle multiple input - files on the command line. - (maybe_eval_c_test): Don't check insn_elision_unavailable. - Return -1 if there is no entry in the table, don't abort. - (add_c_test, traverse_c_tests): New functions. - * gensupport.h (insn_elision_unavailable, insn_conditions) - (n_insn_conditions): Delete declarations. - (add_c_test, traverse_c_tests): Declare. - * read-rtl.c: Include gensupport.h. - (read_conditions): New function. - (read_rtx): If read_rtx_1 returns 0, treat as EOF. - (read_rtx_1): If we get EOF when we were looking for an initial - open paren, return 0. Call read_conditions when appropriate. - * Makefile.in: Kill BUILD_EARLY_SUPPORT and all references to - dummy-conditions.o. Eliminate references to insn-conditions.o, - or change them to build/gencondmd.o, as appropriate. Remove - insn-constants.h from $(simple_generated_h) and insn-conditions.c - from $(simple_generated_c). For all files remaining in those - two lists, add insn-conditions.md to the generator command line. - Give insn-constants.h/s-constants their own rules. Add rules - for build/gencondmd.c, s-conditions, insn-conditions.md, s-condmd. - (build/read-rtl.o): Depend on gensupport.h. - (genprognormal): Include preds. - (genprogearly): Rename genprognoprint; only difference is now that - they don't link with $(BUILD_PRINT). - * dummy-conditions.c: Delete. - -2006-01-22 Zack Weinberg - - * genextract.c: Don't include insn-config.h. Do include vec.h. - Declare vectors of int, char, and locstr. - (locstr): New typedef. - (struct extraction): Make all array fields into bare pointers. - (insn_name_ptr, insn_name_ptr_size): Move down by get_insn_name. - (insn_code_number): Delete. - (accum_extract): New struct. - (VEC_safe_set_locstr, VEC_char_to_string): New functions. - (gen_insn): Take insn_code_number as an argument. Use an - accum_extract structure instead of loading data directly into - a struct extraction, and having to know how big it might get. - (walk_rtx): Operate entirely on an accum_extract structure. - (print_path): Avoid unnecessary use of printf. - (print_header): New function, split out of main. Distinguish - more carefully between an unrecognizable insn and an insn that - has the code number of a define_expand. - (main): Pass insn_code_number to gen_insn. Call print_header - only after parsing. Avoid unnecessary use of printf. - * Makefile.in (build/vec.o): New rule. - (build/genextract): Depend on build/vec.o. - (build/genextract.o): Don't depend on insn-config.h. - -2006-01-22 Zack Weinberg - - * Makefile.in: Consolidate most rules that use $(CC_FOR_BUILD) and/or - $(RUN_GEN). Use pattern rules to factor out as much boilerplate as - practical. Eliminate per-generator-program link rules. - -2006-01-23 Andrew Pinski - - PR middle-end/24437 - * tree-ssa-ccp.c (fold_stmt): Move folding of OBJ_TYPE_REF - with a call expr to ... - * fold-const.c (fold_ternary) : Here. - -2006-01-23 Richard Guenther - - * cfgloopmanip.c (lv_adjust_loop_entry_edge): Add comment - before make_edge with conditional EDGE_TRUE_VALUE. - -2006-01-23 Steven Bosscher - Jan Hubicka - Richard Guenther - - PR rtl-optimization/25654 - * cfgexpand.c (aggregate_contains_union_type): New function. - (add_alias_set_conflicts): Call it. Make sure to add conflicts - for structure variables that contain a union type. - -2006-01-23 Richard Sandiford - - * gengtype.c (new_structure): Return the structure. - (create_option): Add an extra "next" argument. - (create_field): New function. - (adjust_field_rtx_def): Use create_option and create_field. - Remove a now-unnecessary call to find_structure. - (adjust_field_tree_def): Likewise. - (note_yacc_type): Remove an unnecessary call to find_structure. - * gengtype.h (new_structure): Return the structure. - (create_option): Add an extra argument. - * gengtype-yacc.y (type): Remove unnecessary calls to find_structure. - (option): Adjust calls to create_option. - -2006-01-22 David Edelsohn - - * config/rs6000/aix.h (STACK_BOUNDARY): Define. - -2006-01-22 Paul Brook - Peter Barada - - * config/m68k/m68k.md: Add Coldfire FPU support. - Define FP mode macro and associated attributes. - Use it for float mode patterns. - * config/m68k/linux.h (FUNCTION_VALUE): Use m68k_function_value. - (LIBCALL_VALUE): Use m68k_libcall_value. - * config/m68k/m68k-protos.h (m68k_libcall_value): Add prototype. - (m68k_function_value): Ditto. - (emit_move_sequence): Ditto. - * config/m68k/m68kemb.h (LIBCALL_VALUE): Use m68k_libcall_value. - * config/m68k/m68k-none.h (ASM_SPEC): Add mcfv4e. - * config/m68k/t-m68kelf (MULTILIB_OPTIONS): Add mcfv4e. - (MULTILIB_EXCEPTIONS): Ditto. - * config/m68k/m68k.opt: Add mcfv4e. - * config/m68k/m68k.c (m68k_handle_option): Handle OPT_mcfv4e. - (m68k_compute_frame_layout): Include space for ColdFire FPU regs. - (m68k_output_function_prologue): Save ColdFire FPU registers. - (m68k_output_function_epilogue): Restore ColdFire FPU registers. - (force_mode, fp_reg_operand, emit_move_sequence): New functions. - (m68k_regno_mode_ok): Don't allow types larget than 8 bytes in - ColdFire FPU registers. - (m68k_libcall_value, m68k_function_value): New functions. - * config/m68k/netbsd-elf.h (FUNCTION_VALUE): Use m68k_function_value. - (LIBCALL_VALUE): Use m68k_libcall_value. - * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Define __mcfv4e__. - (MASK_COLDFIRE): Add MASK_CFV4E. - (TARGET_COLDFIRE_FPU, TARGET_HARD_FLOAT, TARGET_FP_REG_SIZE): New. - (MODES_TIEABLE_P): Use TARGET_HARD_FLOAT. - (REG_CLASS_FROM_LETTER, PREFERRED_RELOAD_CLASS): Ditto. - (GO_IF_COLDFIRE_FPU_LEGITIMATE_ADDRESS): Define. - (GO_IF_LEGITIMATE_ADDRESS): Use it. - (LEGITIMIZE_ADDRESS): Handle ColdFire FPU addresses. - * doc/invoke.tex: Document -mcfv4e on m68k. - -2006-01-22 Ranjit Mathew - - * doc/contribute.texi: Change CVS to SVN and update the corresponding - URL. - -2006-01-21 Gabriel Dos Reis - - PR c++/16190 - * c-opts.c (c_common_handle_option): Don't include - -Wnon-virtual-dtor in -Wall; enable if -Weffc++. - * doc/invoke.texi (C++ Dialect Options): Document that - -Wnon-virtual-dtor is no longer included in -Wall. - -2006-01-21 Joseph S. Myers - - * gcov.c (print_version), gcov-dump.c (print_version), - mips-tdump.c (main), mips-tfile.c (main): Update copyright notice - dates. - -2006-01-21 Kenneth Zadeck - - * df-scan.c (problem_SCAN): Added NULL reset function. - (df_scan_reset_blocks): Added code to call reset block function - (df_bb_refs_delete) Fixed comment. - (df_insn_refs_delete): Made tolerant of deleting non existent info - for dataflow problems that need to be reset. - * df-core.c (df_set_blocks): Ditto. - * df.h (struct df_problem): Added reset_fun. - * df-problems.c (problem_RU, problem_RD, problem_LR, problem_UR, - problem_UREC, problem_CHAIN, problem_RI): Initialized reset_fun field. - (df_chain_insn_reset, df_chain_bb_reset, df_chain_reset): New - functions to clear out all references to def-use or use-def chains. - -2006-01-21 Ben Elliston - - * varasm.c (assemble_real): Initialise data array. - -2006-01-20 Paul Brook - - Merge from csl-arm-branch. - 2005-09-21 Kazu Hirata - * config/arm/arm.md (movdi): Force operands[1] to a register - if we have a non-register source. - (*arm_movdi, *movdf_soft_insn): Require that one of the - operands be a register. - * config/arm/iwmmxt.md (*iwmmxt_arm_movdi): Likewise. - * config/arm/vfp.md (*arm_movdi_vfp, *movdf_vfp): Likewise. - -2006-01-20 DJ Delorie - - * varasm.c (initializer_constant_valid_p): Allow pointers - initialized from integer constants of lesser precision. - (output_constant): Allow non-int-sized pointer modes to be - initialized from integer constants. - -2006-01-20 Joseph S. Myers - - PR libstdc++/25524 - * cppdefault.h (struct default_include): Add multilib flag. - * cppdefault.c (cpp_include_defaults): Set it. - * c.opt (-imultilib): New option. - * c-opts.c (imultilib): New. - (c_common_handle_option): Handle -imultilib. - (c_common_post_options): Likewise. - * c-incpath.c (add_standard_paths, register_include_chains): - Likewise. - * c-incpath.h (register_include_chains): Add extra parameter. - * gcc.c (do_spec_1): Generate -imultilib option. - (The Specs Language): Update %I description. - (process_command): Update copyright notice. - * doc/cppopts.texi (-imultilib): Document. - * doc/invoke.texi (-imultilib): Include in option summary. - (%I): Update specs documentation. - -2006-01-20 Zdenek Dvorak - - * loop-iv.c (iv_analysis_loop_init): Use df in more conservative way. - -2006-01-20 Richard Sandiford - - * stmt.c (case_bit_test_cmp): Stabilize the sort using code - label numbers. - -2006-01-20 Richard Guenther - Steven Bosscher - - PR rtl-optimization/24626 - * cfgloopmanip.c (lv_adjust_loop_entry_edge): Don't set - EDGE_TRUE_VALUE if in RTL mode. - - Revert - 2005-03-30 Mostafa Hagog - * cfgrtl.c (rtl_verify_flow_info_1): Fix. - -2006-01-20 Dirk Mueller - - PR c++/5520 - * c-parser.c (c_parser_if_body): Use build_empty_stmt() - instead of a special NOP marker. - * c-typeck.c (c_finish_if_stmt): Remove obsoleted special - NOP marker handling. - * c-common.h (empty_body_warning): Add forward declaration. - * c-common.c (empty_body_warning): Add (from c_finish_if_stmt). - Now uses IS_EMPTY_STMT() instead of special NOP markers. - -2006-01-20 Paul Brook - - * Makefile.in (lang_checks): Keep going if mkdir fails. - -2006-01-19 Kenneth Zadeck - - * df-scan.c (df_scan_free_bb_info): Added basic block parameter to - be able to clean out basic block when not necessary. - (df_scan_free): Fixed to properly delete information if df is - unused before calling df_finish. - (df_scan_alloc, df_rescan_blocks, df_reg_chain_unlink, - df_insn_create_insn_record, df_bb_refs_record): Fixed formatting - or comment typos. - (df_bb_refs_delete): New function. - (df_refs_delete): Moved per block code to df_bb_refs_delete. - * df-core.c (df_set_blocks): Added code to properly clean out - unused blocks if they are not part of the blocks to consider. - Added additional null check. - (df_compact_blocks): Added basic block parameter to free_bb_fun to - be able to clean out basic block when not necessary - * df.h (df_free_bb_function): Ditto. - (df_bb_refs_delete): New function. - * df-problems.c (df_ru_free_bb_info, df_rd_set_bb_info, - df_lr_set_bb_info, df_ur_free_bb_info, df_urec_free_bb_info):Added - basic block parameter to be able to clean out basic block when not - necessary. - (df_ru_alloc, df_rd_alloc): Fixed dyslexic overflow test. - (df_ru_free, df_rd_free, df_lr_free, df_ur_free, df_urec_free): - Fixed to properly delete information if df is unused before - calling df_finish. - -2006-01-19 Kenneth Zadeck - - PR rtl-optimization/25799 - * df-problems.c (df_ru_confluence_n, df_rd_confluence_n): - Corrected confluence operator to remove bits from op2 before oring - with op1 rather than removing bits from op1. - (df_ru_transfer_function): Corrected test on wrong bitmap which - caused infinite loop. Both of these problems were introduced in - the dataflow rewrite. - -2006-01-19 DJ Delorie - - * reload1.c (find_reload_regs): Note the details of reload - failures in the dump file. - (spill_failure): Likewise. - -2006-01-20 Zdenek Dvorak - - * loop-iv.c: Include df.h and hashtab.h. - (enum iv_grd_result): New enum. - (DF_REF_IV, DF_REF_IV_SET): New macros. - (struct biv_entry): New. - (df, bivs): New global variables. - (struct insn_info, insn_info, last_def, bivs, max_insn_no, max_reg_no, - assign_luids, mark_sets, kill_sets, mark_single_set, simple_set_p): - Removed. - (clear_iv_info, latch_dominating_def, record_iv, iv_analyze_expr, - iv_analyze_result, iv_analyze_def, biv_hash, biv_eq, - analyzed_for_bivness_p, record_biv): New functions. - (iv_analysis_loop_init, iv_get_reaching_def, simple_reg_p, - get_biv_step_1, get_biv_step, iv_analyze_biv, iv_analyze_op, - iv_analyze, biv_p, iv_analysis_done): Work with df representation of - UD chains. - (iv_constant, iv_subreg, iv_extend, iv_mult, iv_shift): Do not set - analysed. - (iv_number_of_iterations): Use new interface to iv analysis. - * loop-unroll.c: Do not include varray.h. - (analyze_iv_to_split_insn): Use new interface to iv - analysis. - * loop-unswitch.c (may_unswitch_on): Ditto. - * df.c (df_bitmaps_free): Only work for bbs for that structures are - allocated. - (df_bb_modify): Realloc tables to the new index. - (df_find_use): New function. - * df.h (df_find_use): Declare. - * optabs.c (expand_unop): Make the mode of the REG_EQUAL node be - outmode. - * cfgloop.h (struct rtx_iv): Remove analysed field. - (iv_get_reaching_def): Removed. - (iv_analyze_result, iv_analyze_expr, iv_current_loop_df): Declare. - * Makefile.in (loop-unroll.o): Remove VARRAY_H dependency. - (loop-iv.o): Add df.h and hashtab.h dependency. - * df-problems.c (df_ru_alloc, df_rd_alloc): Fix memory reallocation. - -2006-01-20 Alan Modra - - PR target/25668 - * libgcc2.c (__floatdisf, __floatdidf): Don't use IBM Extended - Double TFmode. - (__floatundisf, __floatundidf): Likewise. - * libgcc2.h (IS_IBM_EXTENDED): Define. - -2006-01-19 DJ Delorie - - * config/m32c/m32c.h (REG_ALLOC_ORDER): Define. - -2006-01-19 Paul Brook - - * config/arm/arm.c (arm_compute_func_type): Treat all functions - as nothrow when unwinding tables are disabled. - -2006-01-19 John David Anglin - - PR testsuite/25171 - * c-decl.c (check_bitfield_type_and_width): Don't issue pedwarn "type - of bit-field" when in system header. - -2006-01-19 DJ Delorie - - * config/m32c/m32c.c (m32c_prepare_shift): Add code to deal with - the 16 bit shift limit of the m16c. - -2006-01-19 Andrew Pinski - - PR target/22099 - * config/i386/i386.md (builtin_setjmp_receiver): Don't emit the label. - * config/i386/i386.c (output_set_got): Output the label if we have one - for the TARGET_DEEP_BRANCH_PREDICTION case. - -2006-01-19 Jan Hubicka - H.J. Lu - Evandro Menezes - - * invoke.texi (generic): Document - (i686) Update. - * config.gcc: Make x86_64-* and i686-* default to generic tunning. - * i386.h (TARGET_GENERIC32, TARGET_GENERIC64, TARGET_GENERIC, - TARGET_USE_INCDEC, TARGET_PAD_RETURNS): New macros. - (x86_use_incdec, x86_pad_returns): New variables - (TARGET_CPU_DEFAULT_generic): New constant - (TARGET_CPU_DEFAULT_NAMES): Add generic. - (enum processor_type): Add generic32 and generic64. - * i386.md (cpu attribute): Add generic32/generic64 - (movhi splitter): Behave sanely when both partial_reg_dependency and - partial_reg_stall are set. - (K8 splitters): Enable for generic as well. - * predicates.md (incdec_operand): Use TARGET_INCDEC - (aligned_operand): Avoid memory mismatch stalls. - * athlon.md: Enable for generic64, new patterns for 128bit moves. - * ppro.md: Enable for generic32 - * i386.c (generic64_cost, generic32_cost): New. - (m_GENERIC32, m_GENERIC64, m_GENERIC): New macros. - (x86_use_leave): Enable for generic64. (x86_use_sahf, - x86_ext_80387_constants): Enable for generic32. (x86_push_memory, - x86_movx, x86_unroll_strlen, x86_deep_branch, x86_use_simode_fiop, - x86_use_cltd, x86_promote_QImode, x86_sub_esp_4, x86_sub_esp_8, - x86_add_esp_4, x86_add_esp_8, x86_integer_DFmode_moves, - x86_partial_reg_dependency, x86_memory_mismatch_stall, - x86_accumulate_outgoing_args, x86_prologue_using_move, - x86_epilogue_using_move, x86_arch_always_fancy_math_387, - x86_sse_partial_reg_dependency, x86_four_jump_limit, x86_schedule): - Enable for generic. - (x86_use_incdec, x86_pad_returns): New. - (override_options): Add generic32 and generic64, translate "generic" - to generic32/generic64 and "i686" to "generic32", refuse - "generic32"/"generic64" as arch target. - (ix86_issue_rate, ix86_adjust_cost): Handle generic as athlon. - (ix86_reorg): Honor PAD_RETURNS. - -2006-01-19 Diego Novillo - - * tree-pretty-print.c (dump_generic_node): Handle - OMP_PARALLEL_FN, OMP_PARALLEL_DATA_ARG and OMP_RETURN_EXPR. - * cgraph.c (cgraph_expand_queue): Rename from - cgraph_analyze_queue. Update all users. - * cgraphunit.c (cgraph_assemble_pending_functions): Process - cgraph_expand_queue. - (cgraph_expand_all_functions): Likewise. - (cgraph_finalize_pending_functions): Remove. Update callers. - - * tree.h (OMP_DIRECTIVE_P): Define. - (OMP_PARALLEL_FN): Define. - (OMP_PARALLEL_DATA_ARG): Define. - (OMP_SECTIONS_SECTIONS): Define. - * tree-pass.h (pass_expand_omp): Declare. - * omp-low.c (struct omp_region): Declare. - (struct omp_context): Remove fields 'parallel_type', - 'parallel_start_ix' and 'parallel_start_additional_args'. - Update all users. - (struct omp_for_data): Rename from struct expand_omp_for_data. - (omp_regions): New static variable. - (root_omp_region): New static variable. - (find_omp_clause): Make static. - (is_in_combined_parallel_ctx): Remove. - (is_combined_parallel): New. - (extract_omp_for_data): Move earlier in the file. - (workshare_safe_to_combine_p): New. - (get_ws_args_for): New. - (determine_parallel_type): Move earlier in the file. - (omp_copy_decl_2): Do not set DECL_CONTEXT of new local to the - child function. - (omp_copy_decl): Likewise. - (create_omp_child_function): Likewise. - (lookup_omp_region): New. - (dump_omp_region): New. - (debug_omp_region): New. - (debug_all_omp_regions): New. - (new_omp_region): New. - (scan_omp_parallel): If parallel_nesting_level > 1, the - directive is nested within another parallel directive. - Set OMP_PARALLEL_FN. - (scan_omp_for): Do not try to handle combined parallel+for - cases. - Remove FIXME comment. - (scan_omp_nested): Remove. - (scan_omp_1): Do not call scan_omp_nested when - parallel_nesting_level is > 1. - Do not change the DECL_CONTEXT of local variables found. - (lookup_decl_in_outer_ctx): New. - (lower_rec_input_clauses): Rename from expand_rec_input_clauses. - (lower_lastprivate_clauses): Rename from expand_lastprivate_clauses. - (lower_reduction_clauses): Rename from expand_reduction_clauses. - (lower_copyprivate_clauses): Rename from expand_copyprivate_clauses. - If CTX is nested, lookup VAR in the outer context when - building copy assignment. - (lower_send_clauses): Rename from expand_send_clauses. - If CTX is nested, lookup VAR in the outer context when - building copy assignments. - (lower_send_shared_vars): Rename from expand_send_shared_vars. - If CTX is nested, lookup VAR in the outer context when - building copy assignments. - (expand_parallel_call): Rename from build_parallel_call. - Handle combined parallel+workshare cases. - Re-implement to emit code into the CFG. - (list2chain): New. - (expand_omp_parallel): Re-implement to emit code into the CFG. - Call move_sese_region_to_fn to outline the sub-graph - containing the parallel region. - (expand_omp_for_1): Remove. - (expand_omp_for_generic): Re-implement to emit code into the - CFG. - (expand_omp_for_static_nochunk): Likewise. - (expand_omp_for_static_chunk): Likewise. - (expand_omp_for): Likewise. - (expand_omp_sections): Likewise. - (remove_exit_barriers): New. - (expand_omp_synch): New. - (expand_omp): New. - (build_omp_regions_1): New. - (build_omp_regions): New. - (execute_expand_omp): New. - (gate_expand_omp): New. - (pass_expand_omp): Define. - (lower_omp_sections): Rename from expand_omp_sections. - Set OMP_SECTIONS_SECTIONS. - (lower_omp_single_simple): Rename from expand_omp_single_simple. - (lower_omp_single_copy): Rename from expand_omp_single_copy. - (lower_omp_single): Rename from expand_omp_simple. - (lower_omp_master): Rename from expand_omp_master. - (lower_omp_ordered): Rename from expand_omp_ordered. - (lower_omp_critical): Rename from expand_omp_critical. - (lower_omp_for_lastprivate): Rename from expand_omp_for_lastprivate. - (lower_omp_for): Re-implement. - (lower_omp_parallel): Re-implement. - (lower_regimplify): Rename from expand_regimplify. - (lower_omp_1): Rename from expand_omp_1. - If there are syntax errors in the program, replace every - OpenMP directive with NOP. - Call lower_omp_* instead of expand_omp_*. - (lower_omp): Rename from expand_omp. - - * tree-gimple.c (is_gimple_stmt): Handle OMP_RETURN_EXPR. - * tree-gimple.h (enum omp_parallel_type): Remove. - (gimple_boolify): Declare extern. - (find_omp_clause, determine_parallel_type): Remove. - - * gimple-low.c (lower_omp_directive): New. - (lower_stmt): Call it. - (record_vars_into): Move from ... - (record_vars): ... here. - Call record_vars_into with current_function_decl. - - * gimplify.c (struct gimplify_ctx): Remove fields - combined_pre_p and combined_ctxp. Update users. - (get_formal_tmp_var): Add documentation. - (gimple_boolify): Make extern. - (gimplify_expr_in_ctx): Remove. Update callers. - (gimplify_omp_parallel): Do not assume that OMP_PARALLEL_BODY - will always be a BIND_EXPR. - (gimplify_expr): Handle OMP_RETURN_EXPR. - * tree.def (BLOCK): Remove documentation about BLOCK_TYPE_TAGS. - (OMP_PARALLEL): Add 3 operands. - (OMP_SECTIONS): Add 1 operand. - (OMP_RETURN_EXPR): Define. - - * tree-inline.c (estimate_num_insns_1): Handle OpenMP directives. - (copy_tree_r): Restore TREE_CHAIN in OMP_CLAUSE_*. - * tree-iterator.c (alloc_stmt_list): Assert that we are not - creating a circular free list. - (free_stmt_list): Assert that we are not freeing stmt_list_cache. - - * tree-flow.h (move_sese_region_to_fn): Declare. - (record_vars_into): Declare. - * tree-cfg.c (make_omp_sections_edges): New. - (make_exit_edges): Handle OMP_PARALLEL, OMP_FOR, OMP_SINGLE, - OMP_MASTER, OMP_ORDERED, OMP_CRITICAL, OMP_RETURN_EXPR, - OMP_SECTIONS and OMP_SECTION. - (is_ctrl_altering_stmt): Return true for OMP_DIRECTIVE_P. - (set_bb_for_stmt): Undo change to check currently_expanding_to_rtl. - (verify_stmt): Do not handle OMP_DIRECTIVE_P. - (gather_blocks_in_sese_region): New. - (struct move_stmt_d): Declare. - (move_stmt_r): New. - (move_block_to_fn): New. - (move_sese_region_to_fn): New. - - * passes.c (init_optimization_passes): Schedule - pass_expand_omp after pass_init_datastructures. - - * tree-ssa-operands.c (get_expr_operands): Handle - OMP_PARALLEL, OMP_SECTIONS, OMP_FOR, OMP_RETURN_EXPR, - OMP_SINGLE, OMP_MASTER, OMP_ORDERED, OMP_CRITICAL. - -2006-01-19 Jeff Law - - * tree-vrp.c (extract_range_from_assert): Refine the result range - if the variable referenced by the ASSERT_EXPR has a range and - either the tentative result range or the previous range is a - VR_ANTI_RANGE. - -2006-01-19 Richard Sandiford - - * c-decl.c (add_flexible_array_elts_to_size): Simplify vector accesses. - -2006-01-19 Jan Hubicka - - * tree-vect-patterns.c (vect_pattern_recog_1): Prevent parse error. - -2006-01-19 Paolo Bonzini - - * combine.c (try_combine): Do not worry about MEMs wrapped by USEs. - (expand_compound_operation, expand_field_assignment): Fail if the - bit lengths of an extract operation are out of range. - (make_extraction): Compute wanted_inner_mode based on the position - and length of the extraction. Make it extraction_mode for non-constant - positions, and do not modify offset in that case. When generating a - new MEM, use a mode that can hold the extraction while keeping correct - alignment. Remove code that supported MEMs wrapped by USEs. - (simplify_shift_const_1, force_to_mode) : Remove. - -2006-01-19 Andreas Krebbel - - * config/s390/s390.md ("Y", "y"): New mode attribute. - ("*cmpdi_ccs", "*cmpsi_ccs", "*adddi3_imm_cc", "*adddi3_carry1_cc", - "*adddi3_carry1_cconly", "*adddi3_carry2_cc", "*adddi3_carry2_cconly", - "*adddi3_cc", "*adddi3_cconly", "*adddi3_cconly2", "*adddi3_64", - "*addsi3_imm_cc", "*addsi3_carry1_cc", - "*addsi3_carry1_cconly", "*addsi3_carry2_cc", "*addsi3_carr2_cconly", - "*addsi3_cc", "*addsi3_cconly", "*addsi3_cconly2", - "*subdi3_borrow_cc", "*subdi3_borrow_cconly", "*subdi3_cc", - "*subdi3_cc2", "*subdi3_cconly", "*subdi3_cconly2", "*subdi3_64", - "*subsi3_borrow_cc", "*subsi3_borrow_cconly", "*subsi3_cc", - "*subsi3_cc2", "*subsi3_cconly", "*subsi3_cconly", "*subsi3_cconly2", - "addsi3", "subsi3"): Insn patterns removed. - ("*add3_carry1_cc", "*add3_carry1_cconly", - "*add3_carry2_cc", "*add3_carry2_cconly", "*add3_cc", - "*add3_cconly", "*add3_cconly2", "*add3_imm_cc", - "*sub3_borrow_cc", "*sub3_borrow_cconly", - "*sub3_cc", "*sub3_cc2", "*sub3_cconly", - "*sub3_cconly2"): New insn patterns. - ("addsi3", "subsi3"): New expanders. - -2006-01-19 Dorit Nuzman - - * Makefile.in (tree-vect-patterns.o): Add rule for new file. - * tree-vect-analyze.c (vect_determine_vectorization_factor): Use - existing STMT_VINFO_VECTYPE if available. - (vect_mark_relevant): Add special handling for stmts that are - marked as STMT_VINFO_IN_PATTERN_P. - (vect_analyze_loop): Call vect_pattern_recog. - * tree-vectorizer.c (new_stmt_vec_info): Initialize new fields. - * tree-vectorizer.h (in_pattern_p, related_stmt): New fields in - stmt_info. - (STMT_VINFO_IN_PATTERN_P, STMT_VINFO_RELATED_STMT): New macros. - (vect_recog_func_ptr): New function-pointer type. - * tree-vect-patterns.c: New file. - (vect_recog_widen_sum_pattern, vect_recog_widen_mult_pattern): - (vect_recog_dot_prod_pattern, vect_pattern_recog): - (vect_pattern_recog_1): New functions. - (vect_pattern_recog_funcs): New array of function pointers. - - * tree-vectorizer.h (ternary_op): New enum value. - * tree-vect-transform.c (vect_create_epilog_for_reduction): Added - declaration. Revised documentation. Removed redundant dump prints. - Removed redundant argument. Added support for reduction patterns. - (vectorizable_reduction): Added support for reduction patterns. - (vect_transform_stmt): Added support for patterns. - - * expr.c (expand_expr_real_1): Added case for DOT_PROD_EXPR. - * genopinit.c (udot_prod_optab, sdot_prod_optab): Initialize. - * optabs.c (optab_for_tree_code): Added case for DOT_PROD_EXPR. - (expand_widen_pattern_expr): New function. - (init_optabs): Initialize new optabs udot_prod_optab, - sdot_prod_optab. - * optabs.h (OTI_sdot_prod, OTI_udot_prod): New. - (sdot_prod_optab, udot_prod_optab): Define new optabs. - (expand_widen_pattern_expr): New function declaration. - * tree.def (DOT_PROD_EXPR, WIDEN_SUM_EXPR, WIDEN_MULT_EXPR): New - tree-codes. - * tree-inline.c (estimate_num_insns_1): Added cases for new - tree-codes DOT_PROD_EXPR, WIDEN_SUM_EXPR, WIDEN_MULT_EXPR. - * tree-pretty-print.c (dump_generic_node): Likewise. - (op_prio): Likewise. - (op_symbol): Added cases for WIDEN_SUM_EXPR, WIDEN_MULT_EXPR. - * tree-ssa-operands.c (get_expr_operands): Added case for - DOT_PROD_EXPR. - * tree-vect-patterns.c (widened_name_p): New function. - (vect_recog_dot_prod_pattern): Added function implementation. - * tree-vect-transform.c (get_initial_def_for_reduction): Added - cases for DOT_PROD_EXPR, WIDEN_SUM_EXPR. - * config/rs6000/altivec.md (udot_prod, sdot_prodv8hi): New. - * config/i386/sse.md (sdot_prodv8hi, udot_prodv4si): New. - - * expr.c (expand_expr_real_1): Added case for WIDEN_SUM_EXPR. - * genopinit.c (widen_ssum_optab, widen_usum_optab): Initialize. - * optabs.c (optab_for_tree_code): Added case for WIDEN_SUM_EXPR. - (init_optabs): Initialize new optabs widen_ssum_optab, - widen_usum_optab. - * optabs.h (OTI_widen_ssum, OTI_widen_usum): New. - (widen_ssum_optab, widen_usum_optab): Define new optabs. - * tree-vect-generic.c: (expand_vector_operations_1): Check type of - use instead of type of def. - * tree-vect-patterns.c (vect_recog_widen_sum_pattern): Added - function implementation. - * config/rs6000/altivec.md (widen_usum, widen_ssumv16qi, - widen_ssumv8hi): New. - - * doc/tm.texi (ssum_widen, usum_widen, sdot_prod, udot_prod): New - patterns. - -2006-01-19 Richard Sandiford - - PR c/25805 - * c-decl.c (add_flexible_array_elts_to_size): New function. - (finish_decl): Use it. - -2006-01-18 Andrew Pinski - - * diagnostic.h: Include options.h. - * config/rs6000/x-darwin (host-ppc-darwin.o): Correct the - dependancies for diagnostic.h. - * Makefile.in (DIAGNOSTIC_H): Add options.h. - -2006-01-16 Daniel Berlin - - * tree-ssa-operands.h (ssa_call_clobbered_cache_valid): Remove. - (ssa_ro_call_cache_valid): Ditto. - * tree-ssa-alias.c (sort_tags_by_id): New function. - (init_transitive_clobber_worklist): Ditto. - (add_to_worklist): Ditto. - (mark_aliases_call_clobbered): Ditto. - (compute_tag_properties): Ditto. - (set_initial_properties): Ditto. - (compute_call_clobbered): Ditto. - (compute_may_aliases): Call compute_call_clobbered and grouping. - (compute_flow_sensitive_aliasing): Remove clobbering related code. - (compute_flow_insensitive_aliasing): Grouping now happens in our - caller. - (setup_pointers_and_addressables): Remove clobbering related code. - (add_may_alias): Ditto. - (replace_may_alias): Ditto. - (get_nmt_for): Ditto. - (create_global_var): - (is_escape_site): Return an escape_type enumeration. - * tree-flow-inline.h (is_call_clobbered): Global var does not - imply call clobbered. - (mark_call_clobbered): Take a reason for marking this. Remove - marking of globalness, and cache invalidation. - (clear_call_clobbered): Remove cache invalidation code. - * tree-dfa.c (dump_variable): If details is on, dump the reason - for escaping. - * tree-outof-ssa.c (create_temp): Copy escape mask from original - variable. - * tree-flow.h (struct ptr_info_def): Add escape mask member. - (struct var_ann_d): Ditto. - (enum escape_type): New. - (mark_call_clobbered): Adjust prototype. - * tree-ssa-structalias.c (update_alias_info): Unmodifiable vars - are never call clobbered. - Record reasons for escaping. - * tree-ssa-structalias.h (is_escape_site): Update prototype. - * tree-ssa-operands.c (ssa_call_clobbered_cache_valid): Remove. - (ssa_ro_call_cache_valid): Ditto. - (clobbered_v_may_defs): Ditto. - (clobbered_vuses): Ditto. - (ro_call_vuses): Ditto. - (clobber_stats): New. - (init_ssa_operands): Zero out clobber stats. - (fini_ssa_operands): Print out clobber stats. - (get_call_expr_operands): Pass callee fndecl to - add_call_read_ops). - (add_call_clobber_ops): Remove use of cache. - Add use of PURE_CONST information. - (add_call_read_ops): Remove use of cache. - Add use of static not_read information. - -2006-01-18 Alexandre Oliva - - Introduce TLS descriptors for i386 and x86_64. - * config/i386/i386.h (TARGET_GNU2_TLS): New macro. - (TARGET_ANY_GNU_TLS): New macro. - (enum tls_dialect): Added TLS_DIALECT_GNU2. - (struct machine_function): Add tls_descriptor_call_expanded_p. - (ix86_tls_descriptor_calls_expande_in_cfun): New macro. - (ix86_current_function_calls_tls_descriptor): Likewise. - * config/i386/i386.c (ix86_tls_dialect): Fix typo in comment. - (override_options): Introduce gnu2 tls dialect. - (ix86_frame_pointer_required): Functions containing TLSCALLs are - not leaves. - (ix86_select_alt_pic_regnum, ix86_compute_frame_layout): - Likewise. - (legitimize_tls_address): Adjust logic for GNU2 TLS. - (ix86_init_machine_status): Initialize new field. - (ix86_tls_get_addr): Use TARGET_ANY_GNU_TLS. - (ix86_tls_module_base): New. - * config/i386/i386-protos.h (ix86_tls_module_base): Declare it. - * config/i386/i386.md (UNSPEC_TLSDESC): New constant. - (tls_global_dynamic_32, tls_global_dynamic_64): Handle GNU2 TLS. - (tls_local_dynamic_base_32, tls_local_dynamic_base_64): Likewise. - (tls_dynamic_gnu2_32, *tls_dynamic_lea_32): New patterns. - (*tls_dynamic_call_32, *tls_dynamic_gnu2_combine_32): Likewise. - (tls_dynamic_gnu2_64, *tls_dynamic_lea_64): Likewise. - (*tls_dynamic_call_64, *tls_dynamic_gnu2_combine_64): Likewise. - * config/i386/predicates.md (tls_modbase_operand): New. - (tp_or_register_operand): New. - -2006-01-18 Daniel Berlin - - * ipa-reference.c (check_operand): Allow FUNCTION_DECL. - (look_for_address_of): Ditto. - (ipa_init): Walk the function decls. - (static_execute): Don't set readonly on FUNCTION_DECL's. - -2006-01-18 Roger Sayle - - * config/i386/i386.md (shift spliter): Fix a a typo in the splitter - for shifts where the source and destination registers are different. - -2006-01-18 Paul Brook - - Merge from csl-arm-branch. - 2005-03-14 Julian Brown - * config/arm/lib1funcs.asm (ashldi3): Don't define on SymbianOS. - (aeabi_llsl): Likewise. - (ashrdi3): Likewise. - (aeabi_lasr): Likewise. - (lshrdi3): Likewise. - (aeabi_llsr): Likewise. - 2005-03-10 Julian Brown - * config.gcc: Disable shared libgcc for SymbianOS. - * config/arm/t-symbian (LIB2ADDEH): Include config/arm/pr-support.c. - -2006-01-18 DJ Delorie - - * c-pragma.c (handle_pragma_diagnostic): New. - (init_pragma): Register it. - * doc/extend.texi: Document it. - - * diagnostic.def: Add DK_UNSPECIFIED and DK_IGNORED. - * diagnostic.h (diagnostic_classify_diagnostic): Declare. - (diagnostic_context): Add classify_diagnostic[]. - * diagnostic.c (diagnostic_count_diagnostic): Don't count warnings - as errors if they're overridden to DK_WARNING. - (diagnostic_initialize): Initialize classify_diagnostic[]. - (diagnostic_set_kind_override): New. - (diagnostic_report_diagnostic): Check for kind changes. - * opts.c (common_handle_option): Take lang_mask. Update callers. - Handle OPT_Werror_. - * common.opt (Werror=): New. - * doc/invoke.texi: Document -Werror=* - -2006-01-18 Jeff Law - - * tree-vrp.c (test_for_singularity): Correct test for new - min limit. Use operand_equal_p rather than pointer equality - for testing if new min/max values are equal. - - * tree-ssa-propagate.c (substitute_and_fold): Delay simplifications - using range information until after propagation and folding. - -2006-01-18 Richard Henderson - Aldy Hernandez - Jakub Jelinek - Diego Novillo - - * omp-low.c: New file. - * c-omp.c: New file. - -2006-01-18 Richard Henderson - Jakub Jelinek - Diego Novillo - - * doc/invoke.texi: Document -fopenmp. - * tree-dump.h (debug_function): Declare. - * hooks.c (hook_bool_tree_bool_false): New function. - (hook_tree_tree_null): Remove. - (hook_tree_tree_tree_null): New. - * hooks.h: Update to match. - * tree-pretty-print.c (debug_tree_chain): New. - (print_generic_expr): Handle TDF_CHAIN. - (dump_generic_node): Handle BLOCK. - Do not abort with incomplete SWITCH_EXPRs. - Do not dump body of an OpenMP directive if TDF_SLIM is given. - : Don't - print space after directive name. - : Handle printing OMP_FOR_PRE_BODY. - Handle OMP_MASTER and OMP_ORDERED. - Handle printing of OMP_BODY just in one place, goto - dump_omp_body in the rest of OMP_* nodes that have - OMP_BODY. - Don't handle clause nodes here. Update omp statements to - use dump_omp_clauses. - Handle OMP_SINGLE, OMP_SECTIONS, OMP_SECTION, - OMP_CLAUSE_ORDERED, OMP_CLAUSE_SCHEDULE, OMP_ATOMIC, - OMP_CRITICAL, OMP_CLAUSE_NOWAIT, GOMP_CLAUSE_IF, - GOMP_CLAUSE_NUM_THREADS, GOMP_FOR, GOMP_CLAUSE_SHARED, - GOMP_CLAUSE_FIRSTPRIVATE, GOMP_CLAUSE_LASTPRIVATE, - GOMP_CLAUSE_COPYIN and GOMP_CLAUSE_COPYPRIVATE. - Adjust output for GOMP_PARALLEL. - (dump_omp_clauses): New. - (print_declaration): Dump DECL_VALUE_EXPR. - (op_symbol_1): Split out of op_symbol. - (dumping_stmts): Remove. Update all users. - * cgraph.c (cgraph_analyze_queue): New. - (cgraph_add_new_function): New. - * cgraph.h (cgraph_analyze_queue): Declare. - (cgraph_add_new_function): Declare. - (cgraph_lower_function): Remove. - * tree.c (walk_tree): Walk OMP_CLAUSE_CHAIN of OMP_CLAUSE_* - nodes. Use switch for all nodes, handle most of IS_EXPR_CODE_CLASS - and TYPE_P nodes in its default clause. - (empty_body_p): New. - (tree_range_check_failed): New. - (build5_stat): New. - * tree.h (OMP_CLAUSE_REDUCTION_INIT, - OMP_CLAUSE_REDUCTION_MERGE, - OMP_CLAUSE_REDUCTION_PLACEHOLDER, - OMP_CLAUSE_PRIVATE_DEBUG, - OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE, OMP_FOR_PRE_BODY, - OMP_MASTER_BODY, OMP_ORDERED_BODY OMP_BODY, - OMP_CLAUSES, OMP_CLAUSE_DECL, OMP_CLAUSE_DEFAULT_KIND, - OMP_CLAUSE_CHAIN, OMP_CLAUSE_OUTER_DECL, - OMP_CLAUSE_INNER_DECL, OMP_CLAUSE_NUM_THREADS_EXPR, - OMP_CLAUSE_IF_EXPR, OMP_CLAUSE_SCHEDULE_CHUNK_EXPR, - OMP_CLAUSE_SCHEDULE_CHUNK_SIZE. OMP_PARALLEL_VAR_INIT, - OMP_PARALLEL_VAR_REDUC, OMP_FOR_VAR_INIT, - OMP_FOR_VAR_LAST, OMP_FOR_VAR_REDUC, - OMP_SECTIONS_VAR_INIT, OMP_SECTIONS_VAR_LAST, - OMP_SECTIONS_VAR_REDUC, OMP_CLAUSE_REDUCTION_CODE - OMP_SINGLE_CLAUSES, OMP_SINGLE_BODY, - OMP_CLAUSE_SCHEDULE_CHUNK_SIZE, OMP_SECTION_BODY, - OMP_CRITICAL_NAME, OMP_CRITICAL_BODY): New. - (TREE_RANGE_CHECK): New. - (empty_body_p): Declare. - (enum omp_clause_default_kind): New. - (build_string_literal): Declare. - (enum omp_clause_schedule_kind, OMP_CLAUSE_SCHEDULE_KIND): New. - (build5_stat, build5): Declare. - * tree-pass.h (TDF_CHAIN): Define. - * tree-pass.h (PROP_gimple_lomp): Define. - (pass_lower_omp): Declare. - * diagnostic.h (debug_tree_chain): Declare. - * builtins.c (get_builtin_sync_mode): Use 0 as last argument to - mode_for_size. - (expand_builtin): Handle sync BUILT_IN_*_16 builtins. - * builtins.c (build_string_literal): Make extern. - * gcc.c (include_spec_function): New. - (static_spec_functions): Add it. - (main): Move load of libgomp.spec ... - (LINK_COMMAND_SPEC): ... here. - (link_gomp_spec): New. - (static_specs): Include it. - (LINK_COMMAND_SPEC): Add link_gomp. - (GOMP_SELF_SPECS): New. - (driver_self_specs): Include it. - (switch_matches): Don't mark inline. - (main): Load libgomp.spec. - * tree-gimple.c (is_gimple_stmt): True for OMP_MASTER, - OMP_ORDERED, OMP_CRITICAL, OMP_SECTIONS, OMP_SECTION, - and OMP_SINGLE, OMP_FOR and OMP_PARALLEL. - * tree-gimple.h (enum omp_parallel): Declare. - (determine_parallel_type): Declare. - (omp_firstprivatize_variable): Declare. - (omp_reduction_init): Declare. - (diagnose_omp_structured_block_errors): Declare. - (struct walk_stmt_info): Add want_return_expr. - (struct walk_stmt_info): Add want_bind_expr, want_locations. - (find_omp_clause): Declare. - (insert_field_into_struct): Declare. - (struct walk_stmt_info): Move from tree-nested.c - (walk_stmts): Declare. - * c-cppbuiltin.c (c_cpp_builtins): If -fopenmp, #define _OPENMP - to 200505. - * cgraphunit.c (cgraph_lower_function): Make static. - (cgraph_finalize_pending_functions): New. - (cgraph_finalize_function): Call it. - (cgraph_finalize_compilation_unit): Likewise. - * builtin-types.def (BT_I16, BT_FN_I16_VPTR_I16, - BT_FN_BOOL_VPTR_I16_I16, BT_FN_I16_VPTR_I16_I16): Add. - (BT_FN_UINT_UINT): New. - (DEF_FUNCTION_TYPE_6, DEF_FUNCTION_TYPE_7, - DEF_FUNCTION_TYPE_VAR_4): Document. - (BT_PTR_LONG, BT_PTR_PTR, BT_FN_BOOL, BT_FN_INT, - BT_FN_VOID_PTRPTR, BT_PTR_FN_VOID_PTR, - BT_FN_BOOL_LONGPTR_LONGPTR, BT_FN_VOID_OMPFN_PTR_UINT, - BT_FN_VOID_OMPFN_PTR_UINT_UINT, - BT_FN_BOOL_LONG_LONG_LONG_LONGPTR_LONGPTR, - BT_FN_BOOL_LONG_LONG_LONG_LONG_LONGPTR_LONGPTR, - BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG, - BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_LONG): New. - * builtins.def: Update DEF_BUILTIN comment to include COND argument. - Move all DEF_SYNC_BUILTIN () and DEF_GOMP_BUILTIN () builtins - into separate files. - (DEF_GOMP_BUILTIN): New. - (BUILT_IN_OMP_GET_THREAD_NUM, BUILT_IN_GOMP_BARRIER, - BUILT_IN_GOMP_CRITICAL_START, BUILT_IN_GOMP_CRITICAL_END, - BUILT_IN_GOMP_CRITICAL_NAME_START, BUILT_IN_GOMP_CRITICAL_NAME_END, - BUILT_IN_GOMP_LOOP_STATIC_START, BUILT_IN_GOMP_LOOP_DYNAMIC_START, - BUILT_IN_GOMP_LOOP_GUIDED_START, BUILT_IN_GOMP_LOOP_RUNTIME_START, - BUILT_IN_GOMP_LOOP_ORDERED_STATIC_START, - BUILT_IN_GOMP_LOOP_ORDERED_DYNAMIC_START, - BUILT_IN_GOMP_LOOP_ORDERED_GUIDED_START, - BUILT_IN_GOMP_LOOP_ORDERED_RUNTIME_START, - BUILT_IN_GOMP_LOOP_STATIC_NEXT, BUILT_IN_GOMP_LOOP_DYNAMIC_NEXT, - BUILT_IN_GOMP_LOOP_GUIDED_NEXT, BUILT_IN_GOMP_LOOP_RUNTIME_NEXT, - BUILT_IN_GOMP_LOOP_ORDERED_STATIC_NEXT, - BUILT_IN_GOMP_LOOP_ORDERED_DYNAMIC_NEXT, - BUILT_IN_GOMP_LOOP_ORDERED_GUIDED_NEXT, - BUILT_IN_GOMP_LOOP_ORDERED_RUNTIME_NEXT, - BUILT_IN_GOMP_PARALLEL_LOOP_STATIC_START, - BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC_START, - BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED_START, - BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME_START, - BUILT_IN_GOMP_LOOP_END, BUILT_IN_GOMP_LOOP_END_NOWAIT, - BUILT_IN_GOMP_ORDERED_START, BUILT_IN_GOMP_ORDERED_END, - BUILT_IN_GOMP_PARALLEL_START, BUILT_IN_GOMP_PARALLEL_END, - BUILT_IN_GOMP_SECTIONS_START, BUILT_IN_GOMP_SECTIONS_NEXT, - BUILT_IN_GOMP_PARALLEL_SECTIONS_START, BUILT_IN_GOMP_SECTIONS_END, - BUILT_IN_GOMP_SECTIONS_END_NOWAIT, BUILT_IN_GOMP_SINGLE_START, - BUILT_IN_GOMP_SINGLE_COPY_START, BUILT_IN_GOMP_SINGLE_COPY_END): New. - * sync-builtins.def: New file, moved from builtins.def. - * omp-builtins.def: New file, moved from builtins.def. - * c-objc-common.h (LANG_HOOKS_OMP_PREDETERMINED_SHARING): Redefine. - * gimple-low.c (lower_function_body): Clear data. - (lower_stmt): Do not handle COMPOUND_EXPR. - Remove call to print_node_brief. - * c-tree.h (c_finish_omp_clauses): New prototype. - (C_DECL_THREADPRIVATE_P): Define. - (lookup_name_no_remap, c_omp_remap_private): Remove - (c_begin_omp_parallel, c_finish_omp_parallel): Update. - (check_for_loop_decls): Update decl. - (lookup_name_no_remap, c_omp_remap_private): Declare. - (build_indirect_ref, build_modify_expr, pushdecl, - pushdecl_top_level): Move to c-common.h. - * dwarf2out.c (loc_descriptor_from_tree_1): Don't set unsignedp - before the switch, but just in the 2 places that need it. - * c-decl.c (diagnose_mismatched_decls): Do not check for - mismatched thread-local attributes when OLDDECL is marked - threadprivate and NEWDECL has no thread-local attributes. - (merge_decls): Merge C_DECL_THREADPRIVATE_P. - (c_gimple_diagnostics_recursively): Rename from - c_warn_unused_result_recursively. Invoke - diagnose_omp_structured_block_errors. - (check_for_loop_decls): Return a singular decl found. - * langhooks.c (lhd_omp_predetermined_sharing): Return - OMP_CLAUSE_DEFAULT_SHARED for DECL_ARTIFICIAL decls. - (lhd_omp_firstprivatize_type_sizes): New. - (lhd_omp_assignment): New. - (lhd_omp_predetermined_sharing): New. - * langhooks.h (struct gimplify_omp_ctx): Forward declare. - (struct lang_hooks_for_types): Add - omp_firstprivatize_type_sizes, omp_privatize_by_reference, - omp_predetermined_sharing, omp_disregard_value_expr, - omp_private_debug_clause, omp_clause_default_ctor, - omp_clause_copy_ctor, omp_clause_assign_op, omp_clause_dtor. - (c_finish_omp_clauses): New. - (c_finish_bc_stmt): Diagnose break within omp for. - (c_begin_omp_parallel, c_finish_omp_parallel): New. - (build_unary_op): Return error_mark after reporting - a readonly_error. - (build_modify_expr): Likewise. - * gimplify.c: Include optabs.h and pointer-set.h. - (enum gimplify_omp_var_data): Declare. - (struct gimplify_omp_ctx): Declare. - (struct gimplify_ctx): Add fields prev_context, combined_pre_p - and combined_ctxp. - (gimplify_ctxp, gimplify_omp_ctxp): New local variables. - (push_gimplify_context, pop_gimplify_context): Allow nesting. - (splay_tree_compare_decl_uid): New. - (new_omp_context): New. - (delete_omp_context): New. - (gimple_add_tmp_var): Call omp_add_variable. - (gimplify_bind_expr): Likewise. - (gimplify_var_or_parm_decl): If omp_notice_variable returned - true, disregard DECL_VALUE_EXPR on the decl if any. - (gimplify_expr_in_ctx): New. - (omp_firstprivatize_variable, omp_firstprivatize_type_sizes - omp_add_variable, omp_notice_variable, omp_is_private - gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses_1 - gimplify_adjust_omp_clauses, gimplify_omp_parallel - gimplify_omp_for, gimplify_omp_workshare, goa_lhs_expr_p - gimplify_omp_atomic_fetch_op, goa_stabilize_expr - gimplify_omp_atomic_pipeline, gimplify_omp_atomic_mutex - gimplify_omp_atomic): New. - (gimplify_expr): Handle OMP_PARALLEL, OMP_FOR, OMP_SECTIONS, - OMP_SINGLE, OMP_SECTION, OMP_MASTER, OMP_ORDERED, - OMP_CRITICAL and OMP_ATOMIC. - (gimplify_body): Verify gimplify_ctxp is empty after gimplification. - * c-pragma.h (enum pragma_kind): Add - PRAGMA_OMP_ATOMIC, PRAGMA_OMP_BARRIER, - PRAGMA_OMP_CRITICAL, PRAGMA_OMP_FLUSH, PRAGMA_OMP_FOR, - PRAGMA_OMP_MASTER, PRAGMA_OMP_ORDERED, - PRAGMA_OMP_PARALLEL, PRAGMA_OMP_PARALLEL_FOR, - PRAGMA_OMP_PARALLEL_SECTIONS, PRAGMA_OMP_SECTION, - PRAGMA_OMP_SECTIONS, PRAGMA_OMP_SINGLE, - PRAGMA_OMP_THREADPRIVATE. - * tree.def (OMP_PARALLEL, OMP_FOR, OMP_SECTIONS, - OMP_SINGLE, OMP_SECTION, OMP_MASTER, OMP_ORDERED, - OMP_CRITICAL, OMP_ATOMIC, OMP_CLAUSE_PRIVATE, - OMP_CLAUSE_SHARED, OMP_CLAUSE_FIRSTPRIVATE, - OMP_CLAUSE_LASTPRIVATE, OMP_CLAUSE_REDUCTION, - OMP_CLAUSE_COPYIN, OMP_CLAUSE_COPYPRIVATE, - OMP_CLAUSE_IF, OMP_CLAUSE_NUM_THREADS, - OMP_CLAUSE_SCHEDULE, OMP_CLAUSE_NOWAIT, - OMP_CLAUSE_ORDERED, OMP_CLAUSE_DEFAULT): Define. - * print-tree.c (print_node): Dump DECL_VALUE_EXPR. - * tree-ssa-dce.c (find_control_dependence): Do not assume that - ENTRY_BLOCK_PTR->next_bb == single_succ (ENTRY_BLOCK_PTR). - * tree-nested.c (convert_call_expr): Call walk_body on OMP_BODY for - OpenMP directives. - (struct nesting_info): Add field_map, - suppress_expansion, debug_var_chain. - (create_nesting_tree): Initialize them. - (lookup_field_for_decl): Use field_map. - (get_nonlocal_debug_decl, get_local_debug_decl): New. - (convert_local_omp_clauses): New. - (finalize_nesting_tree_1): Add debug_var_chain to toplevel block. - (walk_body): Split out of walk_function. - (convert_nonlocal_omp_clauses, convert_local_omp_clauses): New. - (convert_nonlocal_reference): Handle omp statements. - (convert_local_reference): Likewise. - (unnest_nesting_tree_1): Split out of finalize_nesting_tree_1. - (unnest_nesting_tree): New. - (lower_nested_functions): Call it. - (insert_field_into_struct): Make extern. - (struct walk_stmt_info): Move to tree-gimple.h. - (walk_stmts): Make extern. - * omp-builtins.def: New file. - * tree-iterator.c (expr_only): Clarify comment. - * c-common.h (pushdecl_top_level, pushdecl, - build_modify_expr, build_indirect_ref, - c_finish_omp_master, c_finish_omp_critical, - c_finish_omp_ordered, c_finish_omp_barrier, - c_finish_omp_atomic, c_finish_omp_flush, - c_finish_omp_for, c_split_parallel_clauses, - omp_clause_default_kind, c_omp_sharing_predetermined, - c_omp_remap_decl): Declare. - * Makefile.in (BUILTINS_DEF): Add omp-builtins.def. - (OBJS-common): Add omp-low.o. - (c-omp.o, omp-low.o): Add. - (gimplify.o): Add dependency on $(OPTABS_H). - (GTFILES): Add omp-low.c. - (gt-stringpool.h): Add. - * tree-cfg.c (set_bb_for_stmt): Do not update the - block-to-labels map if we are currently expanding to RTL. - (tree_node_can_be_shared): Remove unnecessary CONSTANT_CLASS_P - checks. - Handle IDENTIFIER_NODE. - (tree_verify_flow_info): Do not ICE when emitting error - messages about invalid labels. - (dump_function_to_file): Reset CFUN before emitting the body - of the function. - (debug_function): New. - * passes.c (init_optimization_passes): Schedule - pass_lower_omp. - * langhooks-def.h (lhd_omp_predetermined_sharing, - lhd_omp_assignment, lhd_omp_firstprivatize_type_sizes): - Declare. - (LANG_HOOKS_OMP_FIRSTPRIVATIZE_TYPE_SIZES): Define. - (LANG_HOOKS_FOR_TYPES_INITIALIZER): Use it. - (LANG_HOOKS_OMP_PRIVATIZE_BY_REFERENCE, - LANG_HOOKS_OMP_PREDETERMINED_SHARING, - LANG_HOOKS_OMP_DISREGARD_VALUE_EXPR, - LANG_HOOKS_OMP_PRIVATE_DEBUG_CLAUSE, - LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR, - LANG_HOOKS_OMP_CLAUSE_COPY_CTOR, - LANG_HOOKS_OMP_CLAUSE_ASSIGN_OP, - LANG_HOOKS_OMP_CLAUSE_DTOR): Define. - (LANG_HOOK_DECLS): Use them. - -2006-01-18 Dmitry Kurochkin - Richard Henderson - Jakub Jelinek - Diego Novillo - - * c-parser.c (pragma_omp_clause): Define. - (c_parser_declaration_or_fndef): Document OpenMP syntax. - (c_parser_compound_statement): Likewise. - (c_parser_statement): Likewise. - (c_parser_pragma): Handle omp pragmas. - (OMP_FOR_CLAUSE_MASK, OMP_SECTIONS_CLAUSE_MASK, - OMP_PARALLEL_CLAUSE_MASK, OMP_SINGLE_CLAUSE_MASK): Define. - (c_parser_omp_clause_name, check_no_duplicate_clause, - c_parser_omp_variable_list, - c_parser_omp_var_list_parens, c_parser_omp_clause_copyin, - c_parser_omp_clause_copyprivate, - c_parser_omp_clause_default, - c_parser_omp_clause_firstprivate, c_parser_omp_clause_if, - c_parser_omp_clause_lastprivate, - c_parser_omp_clause_nowait, - c_parser_omp_clause_num_threads, - c_parser_omp_clause_ordered, c_parser_omp_clause_private, - c_parser_omp_clause_reduction, - c_parser_omp_clause_schedule, c_parser_omp_clause_shared, - c_parser_omp_all_clauses, c_parser_omp_structured_block, - c_parser_omp_atomic, c_parser_omp_barrier, - c_parser_omp_critical, c_parser_omp_flush, - c_parser_omp_for_loop, c_parser_omp_for, - c_parser_omp_master, c_parser_omp_ordered, - c_parser_omp_sections_scope, c_parser_omp_sections, - c_parser_omp_parallel, c_parser_omp_single, - c_parser_omp_construct, c_parser_omp_threadprivate): New. - * c-pragma.c (init_pragma): Do omp pragma registration here. - * c.opt (fopenmp): New flag. - -2006-01-18 Eric Christopher - - * gcc.c (GOMP_SELF_SPECS): Bracket in #ifndef/#endif. - * config/darwin.h (GOMP_SELF_SPECS): Define. - -2006-01-18 Kazu Hirata - - * rtl.h: Remove the prototype for reg_alloc. - -2006-01-18 John David Anglin - - PR target/25731 - * config.gcc (hppa*-*-linux*, hppa[12]*-*-hpux10*, hppa*64*-*-hpux11*, - hppa[12]*-*-hpux11*): Override default shared libgcc version for both - sjlj and dwarf2 exception handling. - * pa/t-hpux-shlib (SHLIB_SOVERSION): New make variable. - Rework to allow overriding SHLIB_EXT and SHLIB_SOVERSION. - * pa/pa.c (function_value): Treat complex and vector types as - aggregates. - (function_arg): Likewise. Only pass scalar floats in the floating - point argument registers. - * pa/t-slibgcc-dwarf-ver: New file. - * pa/t-slibgcc-sjlj-ver: New file. - * pa/t-slibgcc-elf-ver: Delete file. - -2006-01-19 Alan Modra - - * config/rs6000/rs6000.c (rs6000_assemble_integer): Correct - unlikely_test_section_p test. - -2006-01-18 Kazu Hirata - - * mode-switching.c (optimize_mode_switching): Make it static. - * basic-block.h: Remove the prototype for - optimize_mode_switching. - - * modulo-sched.c (sms_schedule): Make it static. - * rtl.h: Remove the prototype for sms_schedule. - - * postreload-gcse.c (gcse_after_reload_main): Make it static. - * rtl.h: Remove the prototype for gcse_after_reload_main. - - * reg-stack.c (reg_to_stack): Make it static. - * rtl.h: Remove the prototype for reg_to_stack. - - * regrename.c (regrename_optimize, copyprop_hardreg_forward): - Make them static. - * rtl.h: Remove the prototypes for regrename_optimize and - copyprop_hardreg_forward. - -2006-01-18 Eric Botcazou - - * config/alpha/alpha.c (alpha_split_tfmode_pair): Rename into - alpha_split_tmode_pair. Add 'mode' and 'fixup_overlap' arguments. - Test against the appropriate null constant for the mode. - If 'fixup_overlap' is true, swap the operands if they overlap. - (alpha_split_tfmode_frobsign): Adjust call to alpha_split_tfmode_pair. - * config/alpha/alpha-protos.h (alpha_split_tfmode_pair): Rename into - alpha_split_tmode_pair and adjust for above change. - * config/alpha/alpha.md (movtf_internal): Adjust call to - alpha_split_tfmode_pair and rely on it to swap the operands. - (movti_internal): New insn and post-reload splitter. - (movti): New expander. - -2006-01-18 Philippe De Muyter - - * config/m68k/m68k.md (*addsi3_5200): Allow addq/subq to memory - operands. - -2006-01-18 Kazu Hirata - - * rtlanal.c (global_reg_mentioned_p_1, - global_reg_mentioned_p): Remove. - * rtl.h: Remove the prototype for global_reg_mentioned_p. - - * flow.c (initialize_uninitialized_subregs): Make it static. - * rtl.h: Remove the prototype for - initialize_uninitialized_subregs. - - * function.c (instantiate_virtual_regs): Make it static. - * function.h: Remove the prototype for - instantiate_virtual_regs. - - * regmove.c (regmove_optimize, combine_stack_adjustments): - Make them static. - * rtl.h: Remove the prototypes for regmove_optimize and - combine_stack_adjustments. - -2006-01-17 Roger Sayle - - * config/i386/i386.c (COSTS_N_BYTES): New macro. - (size_cost): Encode costs in bytes so that a reg-reg addition is - equivalent to COSTS_N_INSNS(1). - (override_options): Use the size_cost.branch_cost as the default - ix86_branch_cost when optimizing for size. - -2006-01-18 Ben Elliston - - * Makefile.in (D32PBIT_FUNCS): New. - (D64PBIT_FUNCS, D128PBIT_FUNCS): Likewise. - (libgcc.mk): Set D32PBIT, D64PBIT, D128PBIT, D32PBIT_FUNCS, - D64PBIT_FUNCS and D128PBIT_FUNCS. - (LIBGCC_DEPS): Include $(D32PBIT), $(D64PBIT), $(D128PBIT). - * mklibgcc.in Bring in the DFP support code if D32PBIT, D64PBIT or - D128PBIT are set. - (decnumber_dep): Define. - * doc/libgcc.texi (Decimal float library routines): New node. - * config/dfp-bit.h, config/dfp-bit.c: New files. - -2006-01-18 Ben Elliston - - * expr.c (emit_move_change_mode): Always adjust addresses, not - just during reload. Copy replacements only during reload. - (emit_move_insn_1): Move MODE_DECIMAL_FLOAT modes by invoking - emit_move_via_integer. - -2006-01-17 Shantonu Sen - - * Makefile.in (check-%, check-consistency): Use $${srcdir} - instead of $(srcdir) and ${srcdir}. - -2006-01-17 Richard Earnshaw - - PR target/592 - PR middle-end/11135 - * arm.h (struct machine_function): Add pic_reg. - * arm.c (arm_pic_register): Make unsigned. - (arm_override_options): Only set arm_pic_register if - TARGET_SINGLE_PIC_BASE. - (use_return_insn): Only test for a pic register if it is fixed. - (arm_compute_save_reg0_reg12_mask): Likewise. - (thumb_compute_save_reg_mask): Likewise. - (legitimate_pic_operand): Factor out some known invariants. - (legitimize_pic_address): If we don't have a fixed pic register, - then set up a pseudo in the function entry sequence. Handle the - pic base being in a pseudo. - (arm_load_pic_register): Handle the pic register being in a pseudo. - (arm_expand_prologue): Only set up the pic register if it is fixed. - (thumb_expand_prologue): Likewise. - * arm.md (pic_load_addr_based): Handle the pic base being a pseudo. - (pic_load_addr_based_insn): Likewise. - (builtin_setjmp_receiver): Don't restore the pic base if it isn't - fixed. - -2006-01-18 Ben Elliston - - * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Reject - decimal float modes for all floating point registers. - - * config/rs6000/predicates.md (reg_or_mem_operand): Pair up - match_code "mem" with match_test "macho_lo_sum_memory_operand". - -2006-01-17 Jakub Jelinek - - PR c/25682 - * c-typeck.c (build_unary_op): Fold offsetof-like expressions - even when the pointer is not NULL. - -2006-01-16 Ian Lance Taylor - - * common.opt (ftoplevel-reorder): New option. - * cgraph.c (cgraph_asm_nodes): New global variable. - (cgraph_asm_last_node): New static variable. - (cgraph_order): New global variable. - (cgraph_create_node): Set new order field. - (cgraph_varpool_node): Likewise. - (decide_is_variable_needed): Return true if not - flag_toplevel_reorder. - (cgraph_add_asm_node): New function. - * cgraph.h (struct cgraph_node): Add order field. - (struct cgraph_varpool_node): Add order field. - (struct cgraph_asm_node): Define. - (cgraph_asm_nodes, cgraph_order): Declare. - (cgraph_add_asm_node): Declare. - * cgraphunit.c (cgraph_varpool_assemble_decl): New static - function. - (cgraph_varpool_assemble_pending_decls): Call it. - (cgraph_output_pending_asms): New static function. - (cgraph_finalize_compilation_unit): Call it. - (struct cgraph_order_sort): Define. - (cgraph_output_in_order): New static function. - (cgraph_optimize): Call cgraph_output_pending_asms. Add code for - !flag_toplevel_reorder case. - * c-parser.c: Include "cgraph.h". - (c_parser_asm_definition): Call cgraph_add_asm_node rather than - assemble_asm. - * Makefile.in (CRTSTUFF_CFLAGS): Use -fno-toplevel-reorder rather - than -fno-unit-at-a-time. - * doc/invoke.texi (Option Summary): Mention - -fno-toplevel-reorder. - (Optimize Options): Document -fno-toplevel-reorder. Mention it in - -funit-at-a-time documentation. - -2006-01-17 Hans-Peter Nilsson - Kazu Hirata - - * Makefile.in (FUNCTION_H, LAMBDA_H): Use $(TREE_H), not tree.h. - -2006-01-17 Kazu Hirata - - * Makefile.in (FUNCTION_H): New. Use it instead of - function.h throughout the file. - * function.h: Include tree.h. - -2006-01-17 Ben Elliston - - * recog.c: Separate some functions with whitespace. - -2006-01-16 Richard Henderson - - Merge from gomp branch: - * Makefile.in (TREE_INLINE_H): New. Use it as needed. - * tree-inline.h (struct copy_body_data): Move from tree-inline.c - and rename from struct inline_data. Rename callee* to dst*; - caller* to src*; add copy_decl hook, transform_call_graph_edges, - transform_new_cfg, transform_return_to_modify, and - transform_lang_insert_block flags; remove cloning_p, versioning_p, - update_clones_p. - (copy_body_r, insert_decl_map, remap_decl, remap_type): Declare. - (copy_decl_for_dup): Remove. - * tree-inline.c (struct inline_data): Move to header. - (insert_decl_map): Export. - (remap_decl): Update for member name changes. Use copy_decl hook. - Allow for replacement to be a non-decl. Remove dead code. - (remap_type_1): Check for existing mapping. - (remap_type): Export. - (remap_decls): Update for member name changes. - (remap_block, copy_bb, copy_cfg_body, copy_generic_body): Likewise. - (copy_body, setup_one_parameter, declare_return_variable): Likewise. - (expand_call_inline, optimize_inline_calls, clone_body): Likewise. - (copy_tree_r, mark_local_for_remap_r, unsave_expr_now): Likewise. - (tree_function_versioning, build_duplicate_type): Likewise. - (copy_body_r): Likewise. Export. - (copy_decl_for_dup): Split into ... - (copy_decl_for_dup_finish, copy_decl_to_var, - copy_decl_no_change, copy_decl_maybe_to_var): ... these. - (replace_ref_tree, inlining_p): Remove. - -2006-01-16 Kazu Hirata - - * ifcvt.c (if_convert): Make it static. - * rtl.h: Remove the prototype for if_convert. - - * local-alloc.c (local_alloc): Make it static. - * rtl.h: Remove the prototype for local_alloc. - - * loop.c (loop_optimize): Make it static. - * cfgloop.h: Remove the prototype for loop_optimize. - * rtl.h: Likewise. - -2006-01-16 DJ Delorie - - * reload.c (reg_overlap_mentioned_for_reload_p): Handle subregs of - mems. - -2006-01-16 John David Anglin - - * pa.md: Disparage copies between general and floating-point registers - in 32-bit move patterns. - -2006-01-16 H.J. Lu - - PR testsuite/25741 - * Makefile.in (check-%): Depend on site.exp instead of - $(TESTSUITEDIR)/site.exp. Run "runtest" in separate language - directories. - -2006-01-16 Kazu Hirata - - * global.c (global_alloc): Make it static. - * rtl.h: Remove the prototype for global_alloc. - -2006-01-16 Richard Guenther - - * tree-ssa-alias.c (struct used_part): Add write_only field. - (get_or_create_used_part_for): Initialize it to true. - (create_overlap_variables_for): Don't create structure variables - for structures that only are written to. - (find_used_portions): Handle MODIFY_EXPR to track whether a - structure is only written to. - -2006-01-16 Kazu Hirata - - * bb-reorder.c (partition_hot_cold_basic_blocks): Make it - static. - * basic-block.h: Remove the prototype for - partition_hot_cold_basic_blocks. - -2006-01-16 Rafael Ãvila de EspÃ�­ndola - - * cppspec.c (lang_specific_spec_functions): Remove. - * gcc.c (lookup_spec_function): Use static_spec_functions directly. - * gcc.h (lang_specific_spec_functions): Remove. - * gccspec.c (lang_specific_spec_functions): Remove. - -2006-01-16 Paolo Bonzini - - * combine.c (record_value_for_reg): Invalidate registers - if INSN is null. - (record_dead_and_set_regs_1): Likewise, by passing them to - record_value_for_reg. - (record_dead_and_set_regs): Invalidate stores made by a - call. We do not combine across a call, but we still - relied on equivalences. - -2006-01-16 Eric Botcazou - - * tree-vrp.c (extract_range_from_binary_expr): Cope with - vrp_int_const_binop returning non-constant nodes. - -2006-01-16 Paul Brook - - * config/m68k/m68k.c (output_move_const_into_data_reg): - Output correct mnemonic for mvz and mvs. - -2006-01-16 Gabor Loki - - * rtl-factoring.c: Add sequence abstraction algorithm. - * cfgcleanup.c (outgoing_edges_match): Extra checks. - (try_crossjump_to_edge): Avoid deleting preserve label when redirecting - ABNORMAL edges. - (block_has_preserve_label): New function. - * common.opt: Register new pass. - * Makefile.in: Ditto. - * passes.c: Ditto. - * timevar.def: Ditto. - * tree-pass.h: Ditto. - * emit-rtl.c (make_jump_insn_raw): Remove forward decl. - * rtl.h (make_jump_insn_raw): Add forward decl. - * doc/invoke.texi: Add documentation for -frtl-abstract-sequences. - -2006-01-16 Eric Botcazou - Roger Sayle - - * fold-const.c (fold_minmax): New static function. - (fold_binary) : Call it. - : Likewise. - * stor-layout.c (place_field): Use DECL_SIZE consistently - in the computation of the new record size. - -2006-01-16 Kazu Hirata - - * cse.c (cse_condition_code_reg): Make it static. - * rtl.h: Remove the prototype for cse_condition_code_reg. - - * combine.c (combine_instructions): Make it static. - * rtl.h: Remove the prototype for combine_instructions. - -2006-01-15 John David Anglin - - PR target/25168 - * tree.c (get_file_function_name_long): Concatenate the first global - object name with a string derived from the input filename of the object - for type "F". - -2006-01-16 Ben Elliston - - * config/i386/winnt-stubs.c: Update FSF address. - * config/xtensa/ieee754-df.S: Ditto. - * config/xtensa/ieee754-sf.S: Ditto. - -2006-01-14 Ian Lance Taylor - - * ifcvt.c (noce_init_if_info): New static function, broken out of - noce_process_if_block. - (noce_process_if_block): Call noce_init_if_info. - (check_cond_move_block): New static function. - (cond_move_process_if_block): New static function. - (process_if_block): Call cond_move_process_if_block. - -2006-01-15 Kazu Hirata - - * cselib.c (hash_table): Rename to cselib_hash_table. - (cselib_clear_table, discard_useless_values, - remove_useless_values, cselib_lookup_mem, cselib_lookup, - cselib_init, cselib_finish): Adjust uses of hash_table. - -2006-01-14 Kazu Hirata - - PR tree-optimization/25485 - * tree-vrp.c (extract_range_from_binary_expr): Handle cases - where one of the operands of TRUTH_AND_EXPR and TRUTH_OR_EXPR - is known to be false and true, respectively. - -2006-01-14 Richard Guenther - - PR tree-optimization/22548 - PR tree-optimization/22555 - PR tree-optimization/22501 - * Makefile.in (tree-ssa-structalias.o): Depend on $(PARAMS_H). - * params.def (salias-max-array-elements): New parameter. - * params.h (SALIAS_MAX_ARRAY_ELEMENTS): Define. - * doc/invoke.texi (salias-max-array-elements): Document. - * tree-flow-inline.h (var_can_have_subvars): We also handle - arrays now. - * tree-ssa-alias.c (find_used_portions): Handle ARRAY_REF like - COMPONENT_REF. - * tree-ssa-structalias.c (params.h): Include. - (push_fields_onto_fieldstack): Handle ARRAY_TYPE. - (find_func_aliases): Handle multiple constraints from ARRAY_REF. - (get_constraint_for): For ADDR_EXPR operating on something - containing an ARRAY_REF, add all subvars to the solution. - (handle_ptr_arith): Handle ARRAY_TYPE like RECORD_TYPE types. - * tree-ssa-operands.c (parse_ssa_operands): Handle ARRAY_REF - for creating MUST_DEFs. - (get_expr_operands): Treat ARRAY_REF like COMPONENT_REF wrt subvars. - -2006-01-14 Zdenek Dvorak - - * tree-ssa-loop-niter.c (number_of_iterations_cond): Split into several - functions. - (number_of_iterations_ne, number_of_iterations_lt_to_ne, - assert_no_overflow_lt, assert_loop_rolls_lt, number_of_iterations_lt, - number_of_iterations_le): New functions. - (number_of_iterations_special): Removed. - (number_of_iterations_exit): Do not use number_of_iterations_special. - * tree.c (unsigned_type_for): Always return integer type. - -2006-01-14 Steven Bosscher - Richard Guenther - - PR rtl-optimization/24257 - * gcse.c (find_moveable_store): Only consider a store movable - when the SET_SRC of the insn can be assigned to a register. - -2006-01-14 Ian Lance Taylor - - * tree.c (tree_not_class_check_failed): New function. - * tree.h (NON_TYPE_CHECK): Call tree_not_class_check_failed. - (tree_not_class_check_failed): Declare. - -2006-01-13 Ian Lance Taylor - - * reload1.c (do_output_reload): Add assertion rejecting a - CALL_INSN. - -2006-01-13 Adam Nemet - - * combine.c (struct reg_stat): Add new fields truncation_label and - truncated_to_mode. - (record_value_for_reg): Reset truncated_to_mode. - (record_truncated_value): New function. - (check_promoted_subreg): Call it. Rename to check_conversions. - (combine_instructions): Rename check_promoted_subreg to - check_conversions. - (reg_truncated_to_mode): New function. - (make_extraction): Use it. Check TRULY_NOOP_TRUNCATION. - (gen_lowpart_or_truncate): New function. - (force_to_mode): Use it instead of gen_lowpart. - -2006-01-13 Diego Novillo - - * tree-ssa-alias.c (add_type_alias): Fix typo. Test whether - VAR is a tag, not its type tag. - -2006-01-13 Alexandre Oliva - - * config/i386/sse.md (*vec_extractv2di_1_sse2): Reorder - alternatives to match style of other entries. - (*vec_extractv2di_1_sse): Likewise. Fix mode attr. - -2006-01-13 Daniel Berlin - - PR tree-optimization/25771 - * tree-ssa-pre.c (insert_extra_phis): Don't insert merges of abnormal - SSA_NAMES. - -2006-01-13 Andrew Pinski - - PR tree-opt/24365 - * tree-inline.c (declare_return_variable): If the return variable - was marked as a non gimple complex, set the return slot variable - to be a non gimple comple variable. - -2006-01-13 Richard Guenther - - * builtins.c (expand_builtin_sincos): New function. - (expand_builtin_mathfn_3): Remove dead code, sin and cos - do not set errno. - (expand_builtin): Expand sincos using expand_builtin_sincos. - -2006-01-12 DJ Delorie - - * config/m32c/shift.md: Rewrite: Allow arbitrary operands for - shift counts, separate SI shifts for m32c vs m16c, pass shift type - so that constant shifts can be split. - * config/m32c/m32c.c (m32c_const_ok_for_constraint_p): Add In6. - (m32c_valid_pointer_mode): Make static. - (shift_gen_func_for): New. - (m32c_prepare_shift): Use it. Split large const shifts into - multiple shifts. - * config/m32c/predicates.md (shiftcount_operand): Allow more - general operands. - (longshiftcount_operand): New. - * doc/md.texi (Machine Constraints): Document In6. - -2006-01-13 Ben Elliston - - * doc/tm.texi (Data Output): Add REAL_VALUE_TO_TARGET_DECIMAL32, - REAL_VALUE_TO_TARGET_DECIMAL64 and REAL_VALUE_TO_TARGET_DECIMAL128 - documentation. - -2006-01-12 Daniel Berlin - - * tree-ssa-operands.c (add_call_clobber_ops): Use SFT_PARENT_VAR - to try to avoid clobbering pieces of structures when we know - something about the whole structure. - * tree-ssa-alias.c (create_sft): Set SFT_PARENT_VAR - -2006-01-13 Ben Elliston - - * doc/rtl.texi (Insns): Remove statement that libcalls cannot - return in memory, as this is no limitation is no longer present. - -2006-01-12 DJ Delorie - - * config/m32c/addsub.md (addhi3): Add two more alternatives, for - mova with fb, and for fb+0 -> An. - - * config/m32c/mov.md (peephole2): Fix enabling logic. - - * config/m32c/m32c.h (CTOR_LIST_BEGIN, CTOR_LIST_END, - DTOR_LIST_BEGIN, DTOR_LIST_END, CTORS_SECTION_ASM_OP, - DTORS_SECTION_ASM_OP, INIT_ARRAY_SECTION_ASM_OP, - FINI_ARRAY_SECTION_ASM_OP): Define. - - * config/m32c/m32c.c (m32c_legitimize_address): Remove temporary - variable. - (m32c_legitimize_reload_address): New logic to reload FB to An. - (m32c_output_reg_push): Add newline. - (m32c_output_reg_pop): Likewise. - -2006-01-12 Ulrich Weigand - - * struct-equiv.c (find_dying_inputs): Fix off-by-one bug. - -2006-01-11 Andrew Pinski - - * config/i386/darwin.h (SUBTARGET_ENCODE_SECTION_INFO): Define. - -2006-01-11 Kazu Hirata - - * config/sh/predicates.md (sh_rep_vec): Add parallel to - match_code. - -2006-01-11 Ben Elliston - - * rtlanal.c (find_reg_note): Assert insn is not null. - -2006-01-11 Kenneth Zadeck - - * df-scan.c (df_hard_reg_init): Move declaration of i outside - ifdef. - -2006-01-11 Jeff Law - - * tree-ssa-threadupdate.c (threaded_edges): New VEC to - hold edge pairs. - (mark_threaded_blocks, register_jump_thread): New functions. - (thread_through_all_blocks): Remove unwanted argument. No - longer rely on e->aux to communicate thread target info. - Call mark_threaded_blocks. Release the threaded_blocks - bitmap and threaded_edges vector when complete. - * tree-ssa-dom.c (struct edge_info): Remove redirection_target field. - (threaded_blocks): Remove. - (tree_ssa_dominator_optimize): Remove initialization and - finalization of threaded_blocks. Simplify call to - thread_through_all_blocks. - (thread_across_edge): Call register_jump_thread rather than - storing thread information into e->aux. - (free_all_edge_infos): Simplify now that e->aux is no longer - used to communicate with thread_through_all_blocks. - * tree-flow.h (thread_through_all_blocks): Update prototype. - (register_jump_thread): Prototype. - -2006-01-11 Kazu Hirata - - * df-core.c (df_compact_blocks, df_bb_replace): Use - SET_BASIC_BLOCK instead of BASIC_BLOCK. - -2006-01-11 Richard Guenther - - PR tree-optimization/25734 - * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do not - stop propagation after successful propagation to the LHS. - -2006-01-11 Kazu Hirata - - * basic-block.h (control_flow_graph): Change the type of - x_basic_block_info to VEC(basic_block,gc) *. - (BASIC_BLOCK_FOR_FUNCTION, BASIC_BLOCK): Adjust the uses of - basic_block_info. - (SET_BASIC_BLOCK): New. - * cfg.c (compact_blocks, expunge_block): Use SET_BASIC_BLOCK - instead of BASIC_BLOCK when assigning to BASIC_BLOCK. - * cfgbuild.c (find_basic_blocks): Likewise. - * cfglayout.c (fixup_reorder_chain): Likewise. - * cfgrtl.c (create_basic_block_structure, - rtl_create_basic_block): Likewise. - * ifcvt.c (find_if_case_1): Likewise. - * tree-cfg.c (init_empty_tree_cfg, build_tree_cfg, create_bb): - Likewise. - -2006-01-11 Kenneth Zadeck - - * Makefile.in: Removed rotted odf.c entry. - -2006-01-11 Hans-Peter Nilsson - - PR target/25706 - * config/cris/cris.md ("*extopqihi_side", "*extopsi_side") - ("*extopsi_swap_side_biap", "*extopsi_swap_side", - ("*extopqihi", "*extopsi", "*extopsi_swap"): Use %E - output pattern modifier, not %e. - * config/cris/cris.c (cris_op_str): Update comment about pattern - modifier. - (cris_print_operand) : Clear cris_output_insn_is_bound - before falling through into... - : Redefined from old 'e' case. - -2006-01-11 Jan Hubicka - - PR target/25042 - * i386.c (ix86_init_mmx_sse_builtins): Do not delcare float128 - -2006-01-11 Jan Hubicka - - * i386.h (TARGET_DECOMPOSE_LEA): Kill. - * i386.c (x86_decompose_lea): Kill. - (ix86_rtx_costs): Kill. - -2006-01-11 Jan Hubicka - - * cgraph.c (cgraph_insert_node_to_hashtable): New function. - * cgraph.h (cgraph_node): Add inline_decl. - (cgraph_insert_node_to_hashtable): Declare. - (save_inline_function_body): Declare. - * cgraphunit.c (verify_cgraph_node): Inline edges might point to inline - clones. - (cgraph_preserve_function_body_p): Do not presrve when dump is enabled. - (cgraph_function_versioning): Update call of tree_function_versioning. - (save_inline_function_body): New function. - * function.h (struct function): Kill saved_eh, saved_cfg, saved_args, - saved_static_chain_decl, saved_blocks and saved-unexpanded_var_list. - * ipa-inline.c (cgraph_mark_inline_edge): Look for inline clones. - (cgraph_default_inline_p): Likewise. - (cgraph_decide_inlining_incrementally): Likewise. - * tree-inline.c (inline_data): Kill saving_p add update_clones_p. - (copy_bb): Kill saving; do updating of clones. - (copy_cfg_body): Kill saving. - (initialize_inlined-parameters): Likewise. - (expand_call_inline): Likewise. - (save_body): Kill. - (tree_function_versioning): New parameter "update_clones". - (inlining_p): Kill saving. - * tree-inline.h (tree_function_versioning): Update prototype. - * tree-optimize.c (tree_rest_of_compilation): Use clonning instead of - saving. - -2006-01-11 Ian Lance Taylor - - * combine.c (struct undo): Remove is_int. Enumify types of undos. - Allow undoing set of machine mode. - (do_SUBST): Use enums instead of is_int. - (do_SUBST_MODE): New function. - (SUBST_MODE): New macro. - (try_combine): Use SUBST_MODE/PUT_MODE instead of generating a new - reg and trying to replace reg_regno_rtx with a new register. - (undo_all): Use new enums, handle undoing a PUT_MODE change. - (simplify_set): Use SUBST_MODE. - (distribute_notes): Remove code that tried to update reg notes - for regno_reg_rtx changes. - -2006-01-11 Paolo Bonzini - - PR tree-optimization/23109 - PR tree-optimization/23948 - PR tree-optimization/24123 - - * Makefile.in (tree-ssa-math-opts.o): Adjust dependencies. - * tree-cfg.c (single_noncomplex_succ): New. - * tree-flow.h (single_noncomplex_succ): Declare it. - * tree-ssa-math-opts.c (enum place_reciprocal): Remove. - * tree-ssa-math-opts.c (enum place_reciprocal): Remove. - (struct occurrence, occ_head, occ_pool, is_divide_by, compute_merit, - insert_bb, register_division_in, insert_reciprocals, - replace_reciprocal, free_bb): New. - (execute_cse_reciprocals_1): Rewritten. - (execute_cse_reciprocals): Adjust calls to execute_cse_reciprocals_1. - Do not commit any edge insertion. Always compute dominators and - create the allocation pool. - * target-def.h (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): New. - * target.h (struct gcc_target): Add min_divistions_for_recip_mul. - * targhooks.c (default_min_divistions_for_recip_mul): New. - * targhooks.h (default_min_divistions_for_recip_mul): New prototype. - * passes.c (init_optimization_passes): Run recip after tree loop - optimizations. - * doc/tm.texi (Misc): Document TARGET_MIN_DIVISIONS_FOR_RECIP_MUL. - -2006-01-11 Danny Berlin - Kenneth Zadeck - - * df.h (DF_SCAN, DF_RU, DF_RD, DF_LR, DF_UR, DF_UREC, DF_CHAIN, - DF_RI, DF_LAST_PROBLEM_PLUS1, DF_DU_CHAIN, DF_UD_CHAIN, - DF_REF_TYPE_NAMES, DF_HARD_REGS, DF_EQUIV_NOTES, DF_SUBREGS, - DF_SCAN_BB_INFO, DF_RU_BB_INFO, DF_RD_BB_INFO, DF_LR_BB_INFO, - DF_UR_BB_INFO, DF_UREC_BB_INFO, DF_LIVE_IN, DF_LIVE_OUT, - DF_RA_LIVE_IN, DF_RA_LIVE_OUT, DF_UPWARD_LIVE_IN, - DF_UPWARD_LIVE_OUT, DF_REF_REAL_REG, DF_REF_REGNO, - DF_REF_REAL_LOC, DF_REF_REG, DF_REF_LOC, DF_REF_BB, DF_REF_BBNO, - DF_REF_INSN, DF_REF_INSN_UID, DF_REF_TYPE, DF_REF_CHAIN, - DF_REF_ID, DF_REF_FLAGS, DF_REF_NEXT_REG, DF_REF_PREV_REG, - DF_REF_NEXT_REF, DF_REF_DATA, DF_REF_REG_DEF_P, DF_REF_REG_USE_P, - DF_REF_REG_MEM_STORE_P, DF_REF_REG_MEM_LOAD_P, DF_REF_REG_MEM_P, - DF_DEFS_SIZE, DF_DEFS_GET, DF_DEFS_SET, DF_USES_SIZE, DF_USES_GET, - DF_USES_SET, DF_REG_SIZE, DF_REG_DEF_GET, DF_REG_DEF_SET, - DF_REG_USE_GET, DF_REG_USE_SET, DF_REGNO_FIRST_DEF, - DF_REGNO_LAST_USE, DF_INSN_SIZE, DF_INSN_GET, DF_INSN_SET, - DF_INSN_CONTAINS_ASM, DF_INSN_LUID, DF_INSN_DEFS, DF_INSN_USES, - DF_INSN_UID_GET, DF_INSN_UID_LUID, DF_INSN_UID_DEFS, - DF_INSN_UID_USES, DF_SCAN_INITIAL, DF_SCAN_GLOBAL, - DF_SCAN_POST_ALLOC): New macros. - (df_flow_dir, df_ref_type, df_ref_flags, df_alloc_function, - df_free_bb_function, df_local_compute_function, df_init_function, - df_dataflow_function, df_confluence_function_0, - df_confluence_function_n, df_transfer_function, - df_finalizer_function, df_free_function, df_dump_problem_function, - df_problem, dataflow, df_insn_info, df_reg_info, df_ref, df_link, - df_ref_info, df, df_map, df_scan_bb_info, df_ru_bb_info, - df_ru_bb_info, df_rd_bb_info, df_lr_bb_info, df_ur_bb_info, - df_urec_bb_info, ) New types. - (df_invalidated_by_call, df_all_hard_regs, df_state) New public - variables. - (df_init, df_add_problem, df_set_blocks, df_finish, df_analyze, - df_analyze_simple_change_some_blocks, - df_analyze_simple_change_one_block, df_compact_blocks, - df_bb_replace, df_bb_regno_last_use_find, - df_bb_regno_first_def_find, df_bb_regno_last_def_find, - df_insn_regno_def_p, df_find_def, df_find_use, - df_iterative_dataflow, df_dump, df_chain_dump, df_refs_chain_dump, - df_regs_chain_dump, df_insn_debug, df_insn_debug_regno, - df_regno_debug, df_ref_debug, debug_df_insn, debug_df_regno, - debug_df_reg, debug_df_defno, debug_df_useno, debug_df_ref, - debug_df_chain, df_get_dependent_problem, df_chain_create, - df_chain_unlink, df_chain_copy, df_get_live_in, df_get_live_out, - df_grow_bb_info, df_chain_dump, df_print_bb_index, - df_ru_add_problem, df_ru_get_bb_info, df_rd_add_problem, - df_rd_get_bb_info, df_lr_add_problem, df_lr_get_bb_info, - df_ur_add_problem, df_ur_get_bb_info, df_urec_add_problem, - df_urec_get_bb_info, df_chain_add_problem, df_ri_add_problem, - df_reg_lifetime, df_scan_get_bb_info, df_scan_add_problem, - df_rescan_blocks, df_ref_create, df_get_artificial_defs, - df_get_artificial_uses, df_reg_chain_create, df_reg_chain_unlink, - df_ref_remove, df_insn_refs_delete, df_refs_delete, - df_reorganize_refs, df_set_state, df_hard_reg_init, - df_read_modify_subreg_p) New public functions. - * df-core.c: The core dataflow solver and glue routines for rtl - dataflow. - (df_init, df_add_problem, df_set_blocks, df_finish, - df_hybrid_search_forward, df_hybrid_search_backward, - df_iterative_dataflow, df_prune_to_subcfg, df_analyze_problem, - df_analyze, df_get_bb_info, df_set_bb_info, df_bb_replace, - df_bb_regno_last_use_find, df_bb_regno_first_def_find, - df_bb_regno_last_def_find, df_insn_regno_def_p, df_find_def, - df_reg_defined, df_find_use, df_reg_used, df_dump, - df_refs_chain_dump, df_regs_chain_dump, df_insn_debug, - df_insn_debug_regno, df_regno_debug, df_ref_debug, debug_df_insn, - debug_df_reg, debug_df_regno, debug_df_ref debug_df_defno, - debug_df_useno, reset_df_after_reload): New functions. - * df-scan.c: The scanning fuctions, once in df.c, completely - rewritten so that they now fully model the functionality of - register usage at the backend. - (df_scan_free_internal, df_scan_get_bb_info, df_scan_set_bb_info, - df_scan_free_bb_info, df_scan_alloc, df_scan_free, df_scan_dump, - df_scan_add_problem, df_grow_reg_info, df_grow_ref_info, - df_grow_insn_info, df_rescan_blocks, df_ref_create, - df_get_artificial_defs, df_get_artificial_uses, - df_reg_chain_create, df_ref_unlink, df_reg_chain_unlink, - df_ref_remove, df_insn_create_insn_record, df_insn_refs_delete, - df_refs_delete, df_reorganize_refs, df_set_state, - df_ref_create_structure, df_ref_record, df_read_modify_subreg_p, - df_def_record_1, df_defs_record, df_uses_record, - df_insn_contains_asm_1, df_insn_contains_asm, df_insn_refs_record, - df_has_eh_preds, df_bb_refs_record, df_refs_record, df_mark_reg, - df_record_exit_block_uses, df_hard_reg_init): New functions. - - * df-problems.c: Seven concrete dataflow problems that use the - scanning in df-scan.c and are solved by the engine in df-core.c. - (df_get_dependent_problem, df_chain_create, df_chain_unlink, - df_chain_copy, df_get_live_in, df_get_live_out, df_grow_bb_info, - df_chain_dump, df_print_bb_index, df_ref_bitmap, df_set_seen, - df_unset_seen, df_ru_get_bb_info, df_ru_set_bb_info, - df_ru_free_bb_info, df_ru_alloc, - df_ru_bb_local_compute_process_def, - df_ru_bb_local_compute_process_use, df_ru_bb_local_compute, - df_ru_local_compute, df_ru_init_solution, df_ru_confluence_n, - df_ru_transfer_function, df_ru_free, df_ru_dump, - df_ru_add_problem, df_rd_get_bb_info, df_rd_set_bb_info, - df_rd_free_bb_info, df_rd_alloc, - df_rd_bb_local_compute_process_def, df_rd_bb_local_compute, - df_rd_local_compute, df_rd_init_solution, df_rd_confluence_n, - df_rd_transfer_function, df_rd_free, df_rd_dump, - df_rd_add_problem, df_lr_get_bb_info, df_lr_set_bb_info, - df_lr_free_bb_info, df_lr_alloc, df_lr_bb_local_compute, - df_lr_local_compute, df_lr_init, df_lr_confluence_0, - df_lr_confluence_n, df_lr_transfer_function, df_lr_free, - df_lr_dump, df_lr_add_problem, df_ur_get_bb_info, - df_ur_set_bb_info, df_ur_free_bb_info, df_ur_alloc, - df_ur_bb_local_compute, df_ur_local_compute, df_ur_init, - df_ur_local_finalize, df_ur_confluence_n, df_ur_transfer_function, - df_ur_free, df_ur_dump, df_ur_add_problem, df_urec_get_bb_info, - df_urec_set_bb_info, df_urec_free_bb_info, df_urec_alloc, - df_urec_mark_reg_change, df_urec_check_earlyclobber, - df_urec_mark_reg_use_for_earlyclobber, - df_urec_mark_reg_use_for_earlyclobber_1, df_urec_bb_local_compute, - df_urec_local_compute, df_urec_init, df_urec_local_finalize, - df_urec_confluence_n, df_urec_transfer_function, df_urec_free, - df_urec_dump, df_urec_add_problem, df_chain_alloc, - df_chain_create_bb_process_use, df_chain_create_bb, - df_chain_finalize, df_chain_free, df_chains_dump, - df_chain_add_problem, df_ri_alloc, df_ri_bb_compute, - df_ri_compute, df_ri_free, df_ri_dump, df_ri_add_problem, - df_reg_lifetime): New functions. - * df.c: Deleted file. - * ddg.c (create_ddg_dep_no_link, build_inter_loop_deps): Made code - consistent with new df api. - * modulo-sched.c (sms_schedule, rest_of_handle_sms, - rest_of_handle_sms): Ditto. - * web.c (unionfind_union, union_defs, entry_register, web_main): - Ditto. - * loop_invariant.c (invariant_for_use, hash_invariant_expr_1, - invariant_expr_equal_p, find_defs, check_dependencies, - find_invariant_insn, find_invariants_to_move, move_invariant_reg, - free_inv_motion_data, move_loop_invariants): Ditto. - * Makefile.in (df.c, df-scan.c df-problems.c df-core.c): - Update dependencies. - (odf.c): Added defective entry that was deleted later in day. - * sched-deps.c (sched_analyze_1): Ditto. - -2006-01-11 Zdenek Dvorak - - * tree-ssa-operands.c (get_expr_operands): Record addressable - variables directly. Do not call add_stmt_operands for CONST_DECLs - and ARRAY_DECLs. - (get_indirect_ref_operands): Remove handling of *(&a + offset) case. - (add_stmt_operands): Handle only objects satisfying SSA_VAR_P. - -2006-01-11 Ben Elliston - - * config/i386/i386.c (ix86_return_in_memory): Fix comment: this - function returns true in the positive case. - -2006-01-10 John David Anglin - - PR target/20754 - * config/pa/pa.md: Create separate 32 and 64-bit move patterns - for SI, DI, SF and DF modes. Add alternatives to copy between - general and floating point registers to the 32-bit patterns. - * config/pa/pa-64.h (SECONDARY_MEMORY_NEEDED_RTX): Delete undefine. - * config/pa/pa.h (SECONDARY_MEMORY_NEEDED_RTX): Delete define. - (SECONDARY_MEMORY_NEEDED): Secondary memory is only needed when - generating 64-bit code. - * config/pa/pa.c (output_move_double): Handle copies between general - and floating registers. - -2006-01-10 Stuart Hastings - - * config/i386/i386.md (set_got): Update. - (set_got_labelled): New. (UNSPEC_LD_MPIC): New. - (builtin_setjmp_receiver): Mach-O support. - * config/i386/darwin.h (TARGET_ASM_FILE_END) Define. - (GOT_SYMBOL_NAME): Define. - (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN): New. - (TARGET_DEEP_BRANCH_PREDICTION): Remove. - * config/i386/i386.c (override_options): Revise for Darwin. - (USE_HIDDEN_LINKONCE): Enable for Mach-O. (ix86_file_end): Mach-O - support. (darwin_x86_file_end): New. (output_set_got): Add label - parameter, revise for Mach-O. (x86_output_mi_thunk): Likewise. - * config/i386/i386-protos.h (output_set_got): Likewise. - * config/darwin.c (machopic_legitimize_pic_address): Update - regs_ever_live[]. - -2006-01-10 Kaz Kojima - - * config/sh/sh.h (SH5_WOULD_BE_PARTIAL_NREGS): Use GET_MODE_SIZE - when MODE isn't BLKmode. - -2006-01-10 Eric Botcazou - - PR rtl-optimization/25367 - * config/sparc/sparc.h (HARD_REGNO_RENAME_OK): New macro. - -2006-01-10 Hans-Peter Nilsson - - PR target/25718 - * config/cris/cris.md ("uminsi3"): Don't use 8- or 16-bit sizes - for a negative bound. - -2006-01-10 Richard Guenther - - * tree-ssa-structalias.c (get_constraint_for_component_ref): - Never override with anything constraint. - -2006-01-10 Jan Beulich - - * config/i386/i386.c (ix86_data_alignment): Don't force alignment to - 256 bits when optimize_size. - -2006-01-10 Jan Beulich - - * config/i386/netware.h (TARGET_SUBTARGET_DEFAULT): Include - MASK_ALIGN_DOUBLE. - * config/i386/nwld.h (LINK_SPEC): Add --extensions:GNU option. - * config/i386/t-nwld (SHLIB_LINK): Insert spaces between expr - arguments. - -2006-01-10 Ben Elliston - - * config/rs6000/predicates.md (easy_fp_constant): Discount decimal - float modes. - * config/rs6000/rs6000.c (rs6000_scalar_mode_supported_p): New. - (TARGET_SCALAR_MODE_SUPPORTED_P): Define. - (USE_FP_FOR_ARG): Reject decimal float modes. - (function_arg_advance): Likewise. - (output_toc): Handle emitting TDmode, DDmode and SDmode constants. - (rs6000_handle_altivec_attribute): Do not permit decimal floating - point types in AltiVec vectors. - (rs6000_function_value): Use GP_ARG_RETURN for decimal floats. - (rs6000_libcall_value): Likewise. - -2006-01-09 Bob Wilson - - * config/xtensa/ieee754-df.S: New file. - * config/xtensa/ieee754-sf.S: New file. - * config/xtensa/t-xtensa (LIB2FUNCS_EXTRA): Remove fp-bit.c & dp-bit.c. - (LIB1ASMFUNCS): Add SFmode and DFmode floating-point functions. - * config/xtensa/lib1funcs.asm: Include ieee754-df.S and ieee754-sf.S. - -2006-01-09 Kazu Hirata - - * config/sh/predicates.md (binary_float_operator, - binary_logical_operator, commutative_float_operator, - equality_comparison_operator, greater_comparison_operator, - less_comparison_operator, logical_operator, - noncommutative_float_operator, shift_operator, - symbol_ref_operand, unary_float_operator): Remove redundant - conditionals. - -2006-01-09 Jeff Law - - * tree-ssa-dom.c (simplify_cond_and_lookup_avail_expr): Remove - code to propagate the RHS of a cast into COND_EXPR_COND. Remove - now unused arguments. Callers updated. - (eliminate_redundant_computations): Remove now unused arguments, - callers updated. - (local_fold): Remove, no longer used. - (find_equivalent_equality_comparison): Removed from tree-ssa-dom.c - and moved to... - * tree-ssa-forwprop.c (find_equivalent_equality_comparison): Here. - (simplify_cond): New function. - (forward_propagate_into_cond): Call simplify_cond. - -2006-01-09 Alexandre Oliva - - * config/i386/sse.md (*vec_extractv2di_1_sse2): New. - (*vec_extractv2di_1_sse): New. - -2006-01-09 Ben Elliston - - * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Typo fix. - -2006-01-08 Richard Guenther - - * tree-ssa-structalias.c (get_constraint_for): Remove - anyoffset argument. - (get_constraint_for_component_ref): Likewise. - (do_deref): Likewise. - (get_constraint_for): Likewise. - (do_structure_copy): Likewise. - (handle_ptr_arith): Likewise. - (find_func_aliases): Likewise. Remove unused need_anyoffset - variable. - -2006-01-08 J"orn Rennecke - Kaz Kojima - - * config/sh/sh.h (CONST_OK_FOR_K16): Define. - (CONST_OK_FOR_K): Add CONST_OK_FOR_K16 case. - (EXTRA_CONSTRAINT_C16): Remove. - (EXTRA_CONSTRAINT_Css, EXTRA_CONSTRAINT_Csu): Define. - (EXTRA_CONSTRAINT_C): Remove EXTRA_CONSTRAINT_C16 case and add - EXTRA_CONSTRAINT_Css and EXTRA_CONSTRAINT_Csu cases. - * config/sh/sh.c (print_operand): Handle unsigned 16-bit symbolic - constants of SHmedia. Handle nested constant expressions of - SHmedia correctly. - (andcosts): Fix the costs for SHmedia constants. - (sh_rtx_costs): Take account of outer_code for SHmedia constants. - * config/sh/sh.md (*movsi_media): Use Css constraint instead of C16. - (*movsi_media_nofpu, *movqi_media, *movhi_media): Likewise. - (*movdi_media, *movdi_media_nofpu, movv8qi_i, movv2hi_i): Likewise. - (movv4hi_i, movv2si_i): Likewise. - (movsi_const): Adjust the second operand of ior so to match with - the Csu constraint. - (movdi_const, movdi_const_32bit): Likewise. - (movdi_const_16bit+1): Don't sign-extend LOW. - (movdi_const_16bit+2): Likewise. Remove the zero_extend and truncate - step. - (*double_shori): Fix the split condition. Use GEN_INT instead - of get_int_mode calls. Mask lower 16-bit of the argument of - the last GEN_INT. - (sym2GOTPLT): Remove. - (symGOTPLT2reg): Replace gen_sym2GOTPLT with gen_rtx_CONST and - gen_rtx_UNSPEC. - * config/sh/predicates.md (arith_operand): Use EXTRA_CONSTRAINT_Css - instead of EXTRA_CONSTRAINT_C16. - -2006-01-07 Ian Lance Taylor - David Edelsohn - - PR rtl-optimization/25662 - * optabs.c (simplify_expand_binop): Use simplify_binary_operation - for constant operands instead of simplify_gen_binary. - * simplify-rtx.c (simplify_gen_binary): Swap commutative operands - after trying simplify_binary_operation - -2006-01-06 Daniel Berlin - - * tree.c (iterative_hash_expr): Hash decls based on UID. - -2006-01-06 Eric Christopher - - * doc/tm.texi (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Document. - (TARGET_UNWIND_EMIT): Fix spelling. - * target.h (gcc_target): Add except_table_label. - * except.c (output_function_exception_table): Use. - * varasm.c (default_emit_except_table_label): New. - * target-def.h (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): New default - define. - (asm_out): Add here. - * output.h (default_emit_except_table_label): Prototype. - * config/darwin-protos.h (darwin_emit_except_table_label): Ditto. - * config/darwin.c (darwin_emit_except_table_label): Define. - * config/darwin.h (TARGET_ASM_EMIT_EXCEPT_TABLE): Ditto. - -2006-01-06 Zdenek Dvorak - - PR tree-optimization/18527 - * tree-ssa-loop-niter.c (number_of_iterations_cond, - number_of_iterations_special, number_of_iterations_exit): - Move base and step of an iv to a single structure. Add - no_overflow flag, and use it in # of iterations analysis. - * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop): Add - folded_casts argument. - (simple_iv): Pass base and step in a structure. Set no_overflow - flag. - (scev_const_prop): Add argument to analyze_scalar_evolution_in_loop. - Evaluate expensiveness of computing # of iterations instead of - the final expression. - * tree-scalar-evolution.h (affine_iv): New structure. - (simple_iv): Declaration changed. - * tree-chrec.c (chrec_apply): Handle chrecs containing symbols. - * tree-ssa-loop-ivopts.c (determine_biv_step, find_givs_in_stmt_scev, - find_givs_in_stmt): Changed due to simple_iv change. - -2006-01-06 Jeff Law - - PR ada/24994 - * tree-cfg.c (bsi_replace): Rename final argument from - PRESERVE_EH_INFO to UPDATE_EH_INFO. Fix typo in last - change (stmt -> orig_stmt). - * tree-eh.c (verify_eh_throw_stmt_node): New function. - (bsi_remove): Add new argument. Remove EH information - if requested. - (verify_eh_throw_table_statements): New function. - (bsi_remove): Add new argument REMOVE_EH_INFO. All callers - updated. - * tree-optimize.c (execute_free_cfg_annotations): Verify - the EH throw statement table after removing annotations. - * except.h (verify_eh_throw_table_statements): Prototype. - * tree-flow.h (bsi_remove): Update prototype. - * tree-vrp.c (remove_range_assertions): Add new argument to - bsi_remove call. - * tree-ssa-loop-im.c (move_computations_stmt): Likewise. - * tree-complex.c (expand_complex_div_wide): Likewise. - * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Likewise - * tree-tailcall.c (eliminate_tailcall): Likewise. - * tree-ssa-dse.c (dse_optimize_stmt): Likewise. - * tree-ssa-loop-ivopts.c (remove_statement): Likewise. - * tree-nrv.c (tree_nrv): Likewise. - * tree-vectorizer.c (slpeel_make_loop_iterate_ntimes): Likewise. - * tree-if-conv.c (tree_if_convert_cond_expr): Likewise. - (combine_blocks): Likewise. - * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Likewise. - * tree-cfgcleanup.c (cleanup_ctrl_expr_graph): Likewise. - (cleanup_control_flow): Likewise. - (remove_forwarder_block): Likewise. - * tree-ssa-pre.c (remove_dead_inserted_code): Likewise. - * tree-sra.c (sra_replace): Likewise. - * tree-ssa-forwprop.c (forward_propagate_into_cond): Likewise. - (forward_propagate_single_use_vars): Likewise. - * tree-ssa-dce.c (remove_dead_stmt): Likewise. - * tree-inline.c (expand_call_inline): Likewise. - * tree-vect-transform.c (vect_transform_loop): Likewise. - * tree-outof-ssa.c (rewrite_trees): Likewise. - * tree-cfg.c (make_goto_expr_edges): Likewise. - (cleanup_dead_labels): Likewise. - (tree_merge_blocks, remove_bb, disband_implicit_edges): Likewise. - (bsi_move_before, bsi_move_after): Likewise. - (bsi_move_to_bb_end, try_redirect_by_replacing_jump): Likewise - (tree_redirect_edge_and_branch, tree_split_block): Likewise. - -2006-01-06 Andrew Pinski - - PR tree-opt/25528 - * tree-ssa-alias.c (find_used_portions): Handle REALPART_EXPR - and IMAGPART_EXPR. - * tree-flow-inline.h (var_can_have_subvars): Handle complex types - on non gimple variables. Also add checks at the top for decls and - mtags. - * tree-ssa-structalias.c (push_fields_onto_fieldstack): Handle - complex types. - * tree-ssa-operands.c (parse_ssa_operands): Handle REALPART_EXPR - and IMAGPART_EXPR for creating MUST_DEFs. - (get_expr_operands): Handle SSA_NAME, STRUCT_FIELD_TAG, TYPE_MEMORY_TAG, - and NAME_MEMORY_TAG separately from the DECLs. - -2006-01-06 Richard Guenther - - * tree-dfa.c (mark_new_vars_to_rename): Create stmt - annotation, if necessary. - * tree-ssa-pre.c (create_expression_by_pieces): Remove - redundant calls to update_stmt. - * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr): - Likewise. - -2006-01-05 Richard Henderson - - * c-parser.c (c_parser_objc_methodprotolist): Handle CPP_PRAGMA. - -2006-01-05 Carlos O'Donell - - * c-typeck.c: Update copyright date. - -2006-01-05 Carlos O'Donell - - * c-typeck.c (build_c_cast): Always warn when casting - from a pointer to an integer of different size, even if - the node was constant. - -2006-01-05 Richard Guenther - - PR tree-optimization/22555 - * tree-ssa-alias.c (create_overlap_variables_for): Do not give up, - if one structure field is an array. - * tree-ssa-operands.c (get_expr_operands): Continue scanning - operands even if we found a subvar, but ignore VOPs in this - case. - * tree-ssa-loop-ivopts.c (rewrite_use): Mark new vars in stmt - for renaming. - * tree-ssa-loop.c (pass_iv_optimize): Schedule TODO_update_ssa. - -2006-01-05 Richard Earnshaw - - PR middle-end/24998 - * arm/t-netbsd (LIB2FUNCS_EXTRA): Define. - -2006-01-05 Richard Guenther - Diego Novillo - - * tree-pass.h (TODO_remove_unused_locals): Define. - * gimple-low.c (expand_var_p, remove_useless_vars, - pass_remove_useless_vars): Remove. Update all users. - * tree-ssa-live.c (mark_all_vars_used_1): Handle SSA names. - (remove_unused_locals): New function. - * tree-flow.h (remove_unused_locals): Declare. - * passes.c (execute_todo): Call remove_unused_locals if - TODO_remove_unused_locals is set. - * tree-into-ssa.c (pass_build_ssa): Add TODO_remove_unused_locals. - * tree-ssa-dce.c (pass_dce): Likewise. - * tree-outof-ssa.c (pass_del_ssa): Likewise. - -2006-01-05 Richard Guenther - - * tree-flow.h (struct fieldoff): Decompose field to - type, size and decl. - * tree-ssa-alias.c (create_sft): Take type as parameter. - (create_overlap_variables_for): Store type, size and decl - in the fieldoff structure. - * tree-ssa-structalias.c (fieldoff_compare): Adjust users - of struct fieldoff. - (push_fields_onto_fieldstack): Likewise. - (create_variable_info_for): Likewise. Use offset for the - SFT name if the decl is not available. - -2006-01-04 Paul Brook - - * config/m68k/m68k.c (m68k_output_mi_thunk): Use jmp, not jsr. - -2006-01-04 Daniel Berlin - - * lambda-code.c (can_put_in_inner_loop): Relax - restrictions. - (can_put_after_inner_loop): New function. - (can_convert_to_perfect_nest): Use can_put_after_inner_loop as well. - (perfect_nestify): Change to make copies and modify uses. - -2006-01-04 Richard Henderson - - Merge from gomp branch: - * c-lex.c (c_lex_with_flags) : Smuggle pragma id - via integer constant. - (pragma_lex): Remove. - * c-pch.c (c_common_pch_pragma): Accept the name as an argument, - rather than parsing it. - * c-pragma.c (handle_pragma_weak, handle_pragma_redefine_extname, - handle_pragma_extern_prefix): Add %< %> quotes. - (registered_pragmas): New. - (c_register_pragma_1): New. - (c_register_pragma): Use it. - (c_register_pragma_with_expansion): Likewise. - (c_invoke_pragma_handler): New. - (init_pragma): Use cpp_register_deferred_pragma directly for - pch_preprocess. - * c-pragma.h (enum pragma_kind): New. - (pragma_handler): New. - (c_invoke_pragma_handler): Declare. - * c-common.c (c_parse_error): Pretty print CPP_PRAGMA and - CPP_PRAGMA_EOL. - * c-common.h (c_common_pch_pragma): Update decl. - * Makefile.in (c-parser.o): Update dependencies. - (GTFILES): Add c-pragma.h. - * c-parser.c (struct c_token): Add pragma_kind. - (struct c_parser): Add in_pragma. - (c_lex_one_token): Always initialize keyword and pragma_kind. - Extract data for CPP_PRAGMA. - (c_parser_peek_2nd_token): Deny CPP_PRAGMA_EOL. - (c_parser_consume_token): Don't allow CPP_PRAGMA unless errors. - Don't allow CPP_PRAGMA_EOL if in_pragma. - (c_parser_consume_pragma): New. - (c_parser_skip_until_found): Stop on CPP_PRAGMA_EOL. - (c_parser_skip_to_end_of_parameter): Likewise. - (c_parser_skip_to_end_of_block_or_statement): Likewise. - (c_parser_skip_to_pragma_eol): New. - (c_parser_external_declaration): Handle CPP_PRAGMA. - (c_parser_compound_statement_nostart): Likewise. - (c_parser_statement_after_labels): Likewise. - (c_parser_pragma): New. - (pragma_lex): Likewise. - (c_parser_pragma_pch_preprocess): New. - (c_parser_new): Merge into ... - (c_parse_file): ... here. Call c_parser_pragma_pch_preprocess. - -2006-01-04 Jeff Law - - PR ada/24994 - * tree-cfg.c (bsi_replace): Remove the original statement - from the EH throw statement table. - -2006-01-04 Jakub Jelinek - - * config/i386/pmm_malloc.h (posix_memalign): If __cplusplus, - make the prototype extern "C" and add throw (). - - PR target/25554 - * config/i386/i386.md (testqi_ext_3): Ensure len is positive - and pos non-negative and pos + len <= 32. - (testqi_ext_3_rex64): Ensure len is positive and pos non-negative, - drop pos + len < HOST_BITS_PER_WIDE_INT test. - (testqi_ext_3* splitter): Handle pos + len == HOST_BITS_PER_WIDE_INT. - - PR c/25559 - * c-common.c (handle_vector_size_attribute): Reject zero vector size - as well as sizes not multiple of component size. - - PR debug/25562 - * function.c (instantiate_expr): New function. - (instantiate_decls_1, instantiate_decls): If DECL_HAS_VALUE_EXPR_P, - walk its DECL_VALUE_EXPR with instantiate_expr. - - * dwarf2out.c (loc_descriptor_from_tree_1): Don't add - DW_OP_deref{,_size} if address isn't going to be added. - -2006-01-04 Ben Elliston - - * config/fp-bit.h: Use top-of-file comment from libgcc2.c. - * config/fp-bit.c: Likewise. - -2006-01-03 Daniel Berlin - - * dominance.c: Add comment about why we use DFS numbering - of dominance tree. - -2006-01-03 Jakub Jelinek - Richard Henderson - - Merge from gomp-branch: - * varasm.c (assemble_variable): Handle thread-local COMMON data. - * defaults.h (ASM_OUTPUT_TLS_COMMON): Define. - -2006-01-03 Paolo Bonzini - - PR rtl-optimization/25578 - * combine.c (combine_simplify_rtx, force_to_mode): Don't - pass a parameter to simplify_shift_const if changing ASHIFTRT - to LSHIFTRT. - -2006-01-03 Adrian Straetling - - * builtins.c (get_builtin_sync_mem): New function. - (expand_builtin_sync_operation, expand_builtin_compare_and_swap, - expand_builtin_lock_test_and_set, expand_builtin_lock_release): - Call get_builtin_sync_mem to generate mem rtx. - -2006-01-03 Richard Guenther - - PR c/25183 - * stmt.c (add_case_node): Make sure to clear overflow flags - from ranges. - -2006-01-03 Jakub Jelinek - - Merge from gomp-branch. - * config/sparc/sync.md: New file. - * config/sparc/sparc.md (UNSPECV_MEMBAR, UNSPECV_CAS, UNSPECV_SWAP, - UNSPECV_LDSTUB): New constants. - * config/sparc/sparc.c (sparc_expand_compare_and_swap_12): New function. - * config/sparc/predicates.md (memory_reg_operand): New predicate. - * config/sparc/sparc-protos.h (sparc_expand_compare_and_swap_12): New - prototype. - -2006-01-03 Roger Sayle - - * combine.c (reg_subword_p): New predicate to test whether the - destination of a set refers to a subword/piece of a register. - (try_combine): Generalize the code to merge the setting of a - pseudo to a constant followed by a set of a subword of that - register to a constant. - -2006-01-03 Kazu Hirata - - * basic-block.h (control_flow_graph): Change the type of - x_label_to_block_map to VEC(basic_block,gc) *. - * tree-cfg.c (init_empty_tree_cfg, label_to_block_fn, - set_bb_for_stmt): Adjust the uses of x_label_to_block_map. - - * tree-ssa-propagate.c (cfg_blocks): Change the type to - VEC(basic_block,heap) *. - (cfg_blocks_add, cfg_blocks_get, ssa_prop_init, - ssa_prop_fini): Adjust the uses of cfg_blocks. - -2006-01-03 Steven Bosscher - - * fold-const.c (operand_equal_p): Accept a NULL operand 0 for - COMPONENT_REFs. - * emit-rtl.c (mem_attrs_htab_eq): Use iterative_hash_expr for - hashing trees instead of a pointer hash. - (mem_attrs_htab_eq): Do a deep compare instead of a pointer - compare for MEM_EXPR. - - PR rtl-optimization/25130 - * cse.c (exp_equiv_p): Compare MEM_ATTRS instead of MEM_ALIAS_SET - when comparing MEMs for GCSE - -2006-01-03 Ben Elliston - - * targhooks.h (default_decimal_float_supported_p): Declare. - * targhooks.c (default_decimal_float_supported_p): Define. - * target-def.h (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Redefine to - `default_decimal_float_supported_p'. - * doc/tm.texi (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Update. - -2006-01-02 Adam Nemet - - * combine.c (apply_distributive_law ): Check - TRULY_NOOP_TRUNCATION. - -2006-01-02 Geoffrey Keating - - * dwarf2out.c (have_switched_text_section): Delete. - (have_multiple_function_sections): New. - (have_location_lists): Make 'bool'. - (add_AT_loc_list): Use 'true' not '1'. - (dwarf2out_switch_text_section): Set have_multiple_function_sections. - (output_loc_list): Use have_multiple_function_sections. - (output_ranges): Likewise. - (dwarf2out_begin_function): Set have_multiple_function_sections if - necessary. - (dwarf2out_source_line): Don't fake separate_line_info_table_in_use. - Check function_section rather than DECL_SECTION_NAME. - (dwarf2out_finish): Use have_multiple_function_sections. - Don't clear have_location_lists. - -2006-01-02 Eric Botcazou - Jan Hubicka - - * cfglayout.c (fixup_reorder_chain): Remove kludge for the - case of conditional jump jumping to the next instruction. - * cfgrtl.c (force_nonfallthru_and_redirect): Accept all - cases of conditional jump jumping to the next instruction. - -2006-01-02 Jan Hubicka - - * i386.c (*_cost): Add COSTS_N_INSNS. - (ix86_rtx_costs): Do not use COSTS_N_INSNS. - -2006-01-02 Paolo Bonzini - - PR target/25259 - * Makefile.in (DECNUMINC): Include libdecnumber's build directory. - -2006-01-02 Volker Reichelt - - * config/arm/arm.c (all_fpus): Fix comment typo. - * config/darwin.c: Likewise. - * config/frv/frv.h (FRV_STRUCT_VALUE_REGNUM): Likewise. - * config/h8300/h8300.md (extendqisi2_h8300hs): Likewise. - * config/m68hc11/m68hc11.c (m68hc11_reload_operands): Likewise. - -2006-01-01 David Edelsohn - - * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): New. - (rs6000_split_compare_and_swapqhi): New. - * config/rs6000/sync.md (sync_compare_and_swap{hi,qi}): New. - (sync_compare_and_swapqhi_internal): New. - * config/rs6000/rs6000-protos.h: Declare. diff --git a/gcc/ChangeLog-2006 b/gcc/ChangeLog-2006 new file mode 100644 index 0000000..5a71331 --- /dev/null +++ b/gcc/ChangeLog-2006 @@ -0,0 +1,23810 @@ +2006-12-31 Richard Guenther + + PR middle-end/30137 + * fold-const.c (fold_comparison): Fold comparison of addresses + of components. + +2006-12-31 Roger Sayle + + PR middle-end/30322 + * fold-const.c (fold_binary): Fold X + ~X and ~X + X into -1 when + we don't care about trapping overflow. Only convert -A - 1 into ~A + when we don't care about trapping overflow. + +2006-12-31 Richard Guenther + + PR middle-end/30338 + * fold-const.c (fold_binary): Fix type-mismatch in folding + of -1 - A to ~A. + +2006-12-30 Kazu Hirata + + * tree-inline.c: Fix a comment typo. + +2006-12-30 Jan Hubicka + + * ipa-pure-const.c (check_operand): SSA_NAME is safe. + * ipa-type-escape.c (scan_for_refs): Look into SSA_NAMEs. + +2006-12-30 Jan Hubicka + + * tree.h (DECL_CALL_CLOBBERED): Remove. + (tree_decl_common): Remove call_clobbered flag. + * tree-flow.h (struct var_ann_d): Add call_clobbered flag. + * tree-ssa-alias.c (mark_non_addressable, reset_cc_flags): Update. + * tree-flow-inline.h (is_call_clobbered, mark_call_clobbered, + clear_call_clobbered): Update. + * tree-ssa.c (verify_call_clobbering): Update. + +2006-12-30 Jan Hubicka + + * tree-ssa-alias.c (create_structure_vars): When in SSA, update operand + caches. + * tree-ssa-operands.c (build_ssa_operands): Recompute addresses_taken + bitmap. + +2006-12-30 Jan Hubicka + Vladimir Yanovsky + + * emit-rt.c (emit_copy_of_insn_after): Fix bug causing exponential + amount of copies of INSN_NOTEs list. + +2006-12-29 Jan Hubicka + + * cgraph.c (cgraph_exapnd_queue): Rename to... + (cgraph_new_nodes): ... this one. + (cgraph_state): New global variable. + (cgraph_add_new_function): Work in more cases. + * cgraph.h (cgraph_expand_queue): Rename to ... + (cgraph_new_nodes): ... this one. + (cgraph_state): New enum and static variable. + (cgraph_add_new_function): Update prototype. + (cgraph_process_new_functions): New. + * omp-low.c (expand_omp_parallel): Update. + * cgraphunit.c (initialize_inline_failed): Declare early. + (cgraph_process_new_functions): New function. + (cgraph_assemble_pending_functions): Use it. + (cgraph_expand_all_functions): Use it. + (cgraph_optimize): Use it; set cgraph_state. + * passes.c (execute_one_pass, execute_ipa_pass_list): Process new + functions + +2006-12-29 Kazu Hirata + + * tree-cfg.c (last_stmt_ptr): Remove. + * tree-flow.h: Remove the prototype for last_stmt_ptr. + + * config/i386/i386.h (NON_QI_REG_P): Remove. + * config/i386/predicates.md (non_q_regs_operand): Remove. + +2006-12-29 Ian Lance Taylor + + * c-common.c (c_define_builtins): New static function broken out + of c_common_nodes_and_builtins. + (c_common_nodes_and_builtins): Call c_define_builtins unless only + doing preprocessing. + +2006-12-29 Jan Hubicka + + * tree-inline.c (remap_ssa_name): New function. + (remap_decl): Update SSA datastructures for DECLs. + (copy_body_r): Deal with SSA_NAMEs; add referenced global vars. + (copy_bb): Set SSA_NAME def stmts. + (update_ssa_acorss_eh_edges): New function. + (copy_edge_for_bb): Call it; mark new vars for renaming. + (copy_phis_for_bb): New function. + (initialize_cfun): Break out from ... + (copy_cfg_body): ... here; maintain AUX map for both directions; + call SSA updating workers; do not produce copy of cfun to be copied. + (setup_one_parameter): Do propagation across SSA form. + (declare_return_variable): Work on SSA; use return_slot instead of + address of return slot of argument to avoid folding back and forth. + (expand_call_inline): Update SSA from on return values. + (optimize_inline_calls): Do sanity checking, dead blocks removal, + update SSA form. + (tree_function_verioning): Update initialize_cfun. + +2006-12-29 Marcin Dalecki + + * doc/invoke.texi: Replace no longer supported -fno-strength-reduce + with -fmerge-constants in sample code. + +2006-12-28 Kazu Hirata + + * Makefile.in (OBJS-common): Remove conflict.o + (conflict.o): Remove. + * basic-block.h: Remove the prototypes for conflict.c. + * conflict.c: Remove. + +2006-12-27 Daniel Berlin + + * sbitmap.c (BITMAP_DEBUGGING): New macro. + (do_popcount): Ditto. + (sbitmap_verify_popcount): New function. + (sbitmap_alloc): Set popcount to NULL, remove set of bytes + member. + (sbitmap_alloc_with_popcount): New function. + (sbitmap_resize): Remove uses of bytes member and update + popcount. + (sbitmap_realloc): Remove uses of bytes member. + (sbitmap_copy): Copy popcount. + (sbitmap_copy_n): New function. + (sbitmap_zero): Update popcount cache. + (sbitmap_ones): Ditto. + (sbitmap_a_and_b): Ditto. + (sbitmap_a_or_b): Ditto. + (sbitmap_a_xor_b): Ditto. + (sbitmap_union_of_diff_cg): Assert non-existence of popcount + cache. + (sbitmap_union_of_diff): Ditto. + (sbitmap_not): Ditto. + (sbitmap_difference): Ditto. + (sbitmap_a_and_b_cg): Ditto. + (sbitmap_a_xor_b_cg): Ditto. + (sbitmap_a_or_b_cg): Ditto. + (sbitmap_a_or_b_and_c_cg): Ditto. + (sbitmap_a_and_b_or_c_cg): Ditto. + (sbitmap_intersection_of_succs): Ditto. + (sbitmap_intersection_of_preds): Ditto. + (sbitmap_union_of_succs): Ditto. + (sbitmap_union_of_preds): Ditto. + (popcount_table): New. + (sbitmap_elt_popcount): New function. + (sbitmap_popcount): Ditto. + + * sbitmap.h (sbitmap): Remove bytes member. + Add popcount member. + (SET_BIT): Macro turned into function. + (RESET_BIT): Ditto. + (SBITMAP_SIZE_BYTES): New macro. + (sbitmap_free): Free popcount too. + (sbitmap_alloc_with_popcount): New prototype. + (sbitmap_copy_n): Ditto. + (sbitmap_verify_popcount): Ditto. + +2006-12-27 Ian Lance Taylor + + PR debug/26964 + * dwarf2out.c (gen_type_die): Don't write out a DIE for + ENUMERAL_TYPE if it was already written out. + +2006-12-26 Kaveh R. Ghazi + + PR middle-end/29335 + * builtins.c (do_mpfr_arg1, do_mpfr_arg2, do_mpfr_arg3, + do_mpfr_sincos): Ensure target base equals two. + +2006-12-26 Kazu Hirata + + * tree-ssa-operands.c: Fix a comment typo. + +2006-12-25 Kazu Hirata + + * tree-vectorizer.h (VECT_SMODULO): Remove. + +2006-12-24 Andreas Tobler + + * config/pa/pa.c: Remove heap vector type defines. + +2006-12-24 Jan Hubicka + + * tree-ssa-operands.h (struct ssa_operand_memory_d): + add ssa_operand_mem_size. + * tree-ssa-operands.c (operands_bitmap_obstack): New. + (ssa_operand_mem_size): Remove. + (init_ssa_operands): Initialize obstack; use it. + (fini_ssa_operands): Release obstack. + (ssa_operand_alloc): Update. + (finalize_ssa_vdefs, finalize_ssa_vuse_ops, copy_virtual_operands, + get_mpt_for): Use obstack. + * tree-ssa.c (delete_tree_ssa): Call fini_ssa_operands. + * tree-outof-ssa.c: (remove_ssa_form): Don't call it here. + +2006-12-24 Jan Hubicka + + * tree-mudflap.c (ml_decl_cache_locals, md_build_check_statement_for): + add newly referenced vars. + +2006-12-24 Kazu Hirata + + * basic-block.h: Remove the prototype for + expected_value_to_br_prob. + * rtl.h: Remove the prototypes for expand_builtin_expect_jump + and purge_line_number_notes. + +2006-12-23 Zdenek Dvorak + + * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne, + assert_no_overflow_lt, assert_loop_rolls_lt, + number_of_iterations_lt, number_of_iterations_le, + number_of_iterations_cond, number_of_iterations_exit): + Use integer_zerop/integer_nonzerop instead of + null_or_integer_zerop/nonnull_and_integer_nonzerop. + * tree.h (null_or_integer_zerop, nonnull_and_integer_nonzerop): + Removed. + * tree-scalar-evolution.c (simple_iv): Return zero for step of + an invariant. + * tree-ssa-loop-ivopts.c (alloc_iv): Do not set step of invariants + to zero. + (get_iv): Return NULL for non-scalar types. Use zero as a step + of an invariant. + (determine_biv_step, find_interesting_uses_op, + find_interesting_uses_cond, find_interesting_uses_stmt, + add_old_ivs_candidates, determine_use_iv_cost_condition, + rewrite_use_compare, remove_unused_ivs): + Use integer_zerop instead of null_or_integer_zerop. + (struct ifs_ivopts_data): Replace step_p field with step field. + (idx_find_step): Use zero as a step of an invariant. Modify + step instead of *step_p. + (find_interesting_uses_address): Use zero as a step of an invariant. + Use integer_zerop instead of null_or_integer_zerop. + (find_interesting_uses_outside): Call find_interesting_uses_op only + for phi nodes for real operands. + (add_candidate_1): Expect step to be non-NULL. + * tree-ssa-loop-prefetch.c (idx_analyze_ref): Expect step to be + non-NULL. + +2006-12-23 Andrew Pinski + + * vec.c: Don't include tree.h. + * Makefile.in (vec.o): Update dependencies. + (build/vec.o): Likewise. + +2006-12-23 Kazu Hirata + + * common.opt (flag_force_mem): Remove. + * doc/invoke.texi (-fforce-mem): Remove. + * opts.c (common_handle_option): Don't handle OPT_fforce_mem. + + * Makefile.in (final.o): Depend on vecprim.h. + * final.c: Include vecprim.h. + (insn_addresses_): Change the type to VEC(int,heap)*. + * insn-addr.h (INSN_ADDRESSES_DEFN): Remove. + (INSN_ADDRESSES, INSN_ADDRESSES_ALLOC, INSN_ADDRESSES_SIZE, + INSN_ADDRESSES_NEW): Use VEC instead of VARRAY. + +2006-12-23 Marcin Dalecki + + * cgraphunit.c (cgraph_optimize): Fixed obvious thinko in memory + consumption reporting. + +2006-12-23 Manuel Lopez-Ibanez + + PR middle-end/7651 + * c.opt (Wmissing-parameter-type): New. + * doc/invoke.texi (Wmissing-parameter-type): Document it. + (Wextra): Enabled by -Wextra. + * c-opts.c (c_common_post_options): Enabled by -Wextra. + * c-decl.c (store_parm_decls_oldstyle): Replace Wextra with + Wmissing-parameter-type. + +2006-12-23 Eric Botcazou + + * dwarf2out.c (dbx_reg_number): Do leaf register remapping + only if the function is leaf. + (multiple_reg_loc_descriptor): Likewise. + +2006-12-23 Kazu Hirata + + * rtl.h (NOTE_EXPECTED_VALUE): Remove. + +2006-12-23 Jan Hubicka + + * toplev.c (dump_memory_report): Break out from... + (finalize): Here. + * toplev.h (dump_memory_report): Declare. + (cmp_statistic): Rename to ... + (final_cmp_statistic): ... this one + (cmp_statistic): New. + (dump_ggc_loc_staitsitcs): New FINAL parpameter. + * common.opt (-fpre-ipa-mem-report, -fpost-ipa-mem-report): Declare. + * varray.c (dump_varray_staitiscs): Do not segfault when no varray was + allocated so far. + * cgraphunit.c (cgraph_optimize): Dump the memory reports. + +2006-12-22 Mike Stump + + * config/rs6000/t-darwin (DARWIN_EXTRA_CRT_BUILD_CFLAGS): Add + -mmacosx-version-min=10.4. + (crt2.o): Add $(DARWIN_EXTRA_CRT_BUILD_CFLAGS). + +2006-12-23 Jan Hubicka + + * tree-flow-inline.h (var_ann): External variable annotations are + unshared too. + (tree_common_ann): Handle correctly unshared variables annotations. + * tree-dfa.c (create_var_ann): External variable annotations are + unshared too. + +2006-12-22 Kazu Hirata + + * basic-block.h: Remove the prototype for + commit_edge_insertions_watch_calls. + * cfgrtl.c (commit_edge_insertion): Drop the last argument. + Simplify. + (commit_edge_insertions_watch_calls): Remove. + (commit_edge_insertions): Adjust the call to + commit_one_edge_insertion. + +2006-12-22 Zdenek Dvorak + + * tree-ssa-loop-niter.c (zero_p, nonzero_p): Removed. + (number_of_iterations_ne, number_of_iterations_lt_to_ne, + assert_no_overflow_lt, assert_loop_rolls_lt, + number_of_iterations_lt, number_of_iterations_le, + number_of_iterations_cond, tree_simplify_using_condition_1, + number_of_iterations_exit, find_loop_niter, loop_niter_by_eval, + implies_nonnegative_p, implies_ge_p, record_nonwrapping_iv, + idx_infer_loop_bounds, n_of_executions_at_most, scev_probably_wraps_p): + Do not use zero_p/nonzero_p. + * tree-ssa-loop-manip.c (determine_exit_conditions): Ditto. + * tree-ssa-loop-ivopts.c (niter_for_exit, determine_biv_step, + find_interesting_uses_op, find_interesting_uses_cond, + find_interesting_uses_address, find_interesting_uses_stmt, + strip_offset_1, add_candidate_1, add_old_ivs_candidates, + difference_cost, determine_use_iv_cost_condition, + rewrite_use_compare, remove_unused_ivs): Ditto. + * tree-ssa-address.c (tree_mem_ref_addr, create_mem_ref_raw): Ditto. + * tree-ssa-loop-prefetch.c (idx_analyze_ref): Ditto. + * tree-cfg.c (find_taken_edge_cond_expr): Ditto. + * tree.h (zero_p): Declaration removed. + (null_or_integer_zerop, nonnull_and_integer_nonzerop): New. + +2006-12-22 Manuel Lopez-Ibanez + + PR middle-end/7651 + * c.opt (Wclobbered): New. + * doc/invoke.texi (Wclobbered): Document it. + (Wextra): Enabled by -Wextra. + * c-opts.c (c_common_post_options): Enabled by -Wextra. + * flow.c (rest_of_handle_life): Replace Wextra with Wclobbered. + * function.c (setjmp_vars_warning): Only warn for Wclobbered. + (setjmp_args_warning): Likewise. + +2006-12-22 Kazu Hirata + + * config/elfos.h, config/spu/spu.c, tree-ssa-operands.h, + tree-ssa-ter.c: Fix comment typos. + +2006-12-22 Paolo Bonzini + + PR rtl-optimization/29840 + + * fwprop.c (forward_propagate_into): Reject artificial uses/defs. + (fwprop_init): Add DF_HARD_REGS to df_init call. + +2006-12-21 Andrew Pinski + + * tree-nested.c (create_tmp_var_for): Check for vector type + when setting DECL_GIMPLE_REG_P. + +2006-12-21 Roger Sayle + + * tree-pretty-print.c (dump_generic_node): Avoid outputing "(void) 0;" + as the else branch of a COND_EXPR. + +2006-12-22 Kazu Hirata + + * cgraphunit.c, config/i386/i386.c, config/ia64/ia64.c, cse.c, + output.h, toplev.c, tree-affine.h, tree-flow.h, + tree-ssa-alias.c, tree-ssa-coalesce.c, tree-ssa-live.c, + tree-ssa-live.h, tree-ssa-operands.c, tree-ssa-ter.c, + tree-vrp.c, varpool.c: Fix comment typos. + + * cgraphunit.c, varpool.c: Fix comment typos. + +2006-12-22 Ulrich Weigand + + * config/spu/spu.h (ARG_POINTER_CFA_OFFSET): Define. + * config/spu/spu.c (spu_expand_prologue): Set RTX_FRAME_RELATED_P + for insn setting up the frame pointer. Do not set it for insns + setting up scratch registers or storing the backchain. + +2006-12-21 Eric Botcazou + + PR other/29639 + * configure.ac (HAVE_LD_EH_GC_SECTIONS): Check that exception tables + are kept for .gnu.linkonce.t sections if COMDAT groups are disabled. + * configure: Regenerate. + +2006-12-21 Joseph Myers + + * rtlanal.c (subreg_get_info): Do not make register size + computations for mode sizes not divisible by the number of + registers. + +2006-12-21 Daniel Berlin + + * tree-ssa-structalias.c (build_constraint_graph): Insert complex + offsetted constraints into rhsvar, not lhsvar. + +2006-12-21 Jakub Jelinek + + PR middle-end/30262 + PR middle-end/30263 + * tree-nested.c (walk_asm_expr): New function. + (walk_stmts): Use it for ASM_EXPR. + + PR target/30230 + * config/ia64/ia64.c (ia64_add_bundle_selector_before): New function. + (bundling): Use it. + +2006-12-21 Nathan Sidwell + + PR target/28966 + PR target/29248 + * reload1.c (reload): Realign stack after it changes size. + +2006-12-20 Roger Sayle + + * simplify-rtx.c (simplify_subreg): Use the correct mode when + determining whether a SUBREG of a CONCAT refers to the first or + second component. + +2006-12-21 Ben Elliston + + * config/spu/spu.c (spu_builtin_mul_widen_even): Remove unused + local variable `d'. + +2006-12-20 Jan Hubicka + + * tree-dfa.c (add_referenced_var): Walk initializers of + non-constant/readonly static vars. + +2006-12-20 Jan Hubicka + + * tree-flow-inline.h (gimple_var_anns): New function. + (var_ann): Use hashtable for static functions. + * tree-dfa.c (create_var_ann): Likewise. + * tree-ssa.c (var_ann_eq, var_ann_hash): New functions. + (init_tree_ssa): Initialize var anns. + (delete_tree_ssa): Delete var anns; also clear out gimple_df. + * tree-flow.h (struct static_var_ann_d): New structure. + (gimple_df): Add var_anns. + +2006-12-20 Carlos O'Donell + + PR bootstrap/30242 + * gcc/c-incpath.c (add_standard_paths): Only relocate paths that + begin with the configured prefix. + +2006-12-20 Jan Hubicka + + PR target/30213 + * i386.c (expand_setmem_epilogue): Fix formating. + (dsmalest_pow2_greater_than): New function. + (ix86_expand_movmem): Improve comments; avoid re-computing of + epilogue size. + (promote_duplicated_reg_to_size): Break out from ... + (expand_setmem): ... this one; reorganize promotion code; + improve comments; avoid recomputation of epilogue size. + +2006-12-20 Andrew Pinski + + PR middle-end/30143 + * omp-low.c (init_tmp_var): New function. + (save_tmp_var): New function. + (lower_omp_1): Use them for VAR_DECL. + +2006-12-20 Andrew Pinski + + * tree-gimple.c (is_gimple_min_invariant): Treat constant vector + CONSTRUCTORs as min invariants. + +2006-12-20 Joseph Myers + + * rtlanal.c (struct subreg_info, subreg_get_info, subreg_nregs): + New. + (subreg_regno_offset, subreg_offset_representable_p): Change to + wrappers about subreg_get_info. + (refers_to_regno_p, reg_overlap_mentioned_p): Use subreg_nregs. + * rtl.h (subreg_nregs): Declare. + * doc/tm.texi (HARD_REGNO_NREGS_HAS_PADDING): Update to refer to + subreg_get_info. + * caller-save.c (mark_set_regs, add_stored_regs): Use + subreg_nregs. + * df-scan.c (df_ref_record): Use subreg_nregs. + * flow.c (mark_set_1): Use subreg_nregs. + * postreload.c (move2add_note_store): Use subreg_nregs. + * reload.c (decompose, refers_to_regno_for_reload_p, + reg_overlap_mentioned_for_reload_p): Use subreg_nregs. + * resource.c (update_live_status, mark_referenced_resources, + mark_set_resources): Use subreg_nregs. + +2006-12-20 Zdenek Dvorak + + * loop-unswitch.c (unswitch_loop): Update arguments of + duplicate_loop_to_header_edge call. + * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Ditto. + * loop-unroll.c (peel_loop_completely, unroll_loop_constant_iterations, + unroll_loop_runtime_iterations, peel_loop_simple, unroll_loop_stupid): + Ditto. + * cfgloopmanip.c (loop_version): Ditto. + (duplicate_loop_to_header_edge): Change + type of to_remove to VEC(edge), remove n_to_remove argument. + * tree-ssa-loop-manip.c (tree_duplicate_loop_to_header_edge): + Change type of to_remove to VEC(edge), remove n_to_remove argument. + (tree_unroll_loop): Update arguments of + tree_duplicate_loop_to_header_edge call. + * cfghooks.c (cfg_hook_duplicate_loop_to_header_edge): + Change type of to_remove to VEC(edge), remove n_to_remove argument. + * cfghooks.h (struct cfg_hooks): Type of + cfg_hook_duplicate_loop_to_header_edge changed. + (cfg_hook_duplicate_loop_to_header_edge): Declaration changed. + * cfgloop.h (duplicate_loop_to_header_edge): Ditto. + * tree-flow.h (tree_duplicate_loop_to_header_edge): Ditto. + +2006-12-20 Dorit Nuzman + + * config/spu/spu.md (vec_widen_umult_hi_v8hi): New. + (vec_widen_umult_lo_v8hi, vec_widen_smult_hi_v8hi): New. + (vec_widen_smult_lo_v8hi): New. + * config/spu/spu.c (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_EVEN): Defined. + (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_ODD): Defined. + (spu_builtin_mul_widen_even, spu_builtin_mul_widen_odd): New. + +2006-12-20 Jan Hubicka + + * cgraph.c: Update overall comment; fix vertical spacing. + * ipa-inline.c (cgraph_decide_inlining): Remove now redundant check. + +2006-12-20 Jan Hubicka + + * cgraph.h (FOR_EACH_STATIC_VARIABLE, FOR_EACH_STATIC_INITIALIZER): New + macros. + (varpool_first_static_initializer, varpol_next_static_initializer): New + inline functions. + * ipa-reference.c (analyze_variable): Simplify. + (static_execute): Use FOR_EACH_STATIC_INITIALIZER. + * ipa-type-escape.c (type_escape_execute): Use FOR_EACH_STATIC_VARIABLE. + +2006-12-19 Andrew Pinski + + PR tree-opt/30045 + * tree-vrp.c (nonnull_arg_p): Treat the static decl as always + non null. + +2006-12-20 Ben Elliston + + * doc/invoke.texi (Optimize Options): Typo fix. + +2006-12-19 Eric Christopher + + * config/darwin.c (machopic_select_section): Rewrite. + (darwin_text_section): New. + (darwin_rodata_section): Ditto. + (darwin_mergeable_string_section): Ditto. + (darwin_mergeable_constant_section): Ditto. + * config/darwin-sections.def: Add SECTION_STRINGS for cstring_section. + +2006-12-19 Steve Ellcey + + * config/pa/pa64-hpux.h (ASM_OUTPUT_EXTERNAL): Add undef. + +2006-12-19 Paolo Bonzini + + PR bootstrap/29544 + * gcc/Makefile.in (STAGE1_CHECKING): Rename to... + (STAGE1_CHECKING_CFLAGS): ... this. + +2006-12-18 Andrew Pinski + + PR target/29779 + * config/rs6000/rs6000.c (altivec_init_builtins): Change to set + READONLY on __builtin_altivec_mask_for_load instead of adding + the attribute. + +2006-12-18 Roger Sayle + Eric Christopher + + PR target/29302 + * real.c (real_maxval): Correctly handle IBM extended double format. + +2006-12-19 Jan Hubicka + + * expmed.c (expand_mult_const): Force operand to constant. + * rs6000.c (rs6000_emit_set_const, rs6000_emit_set_long_const): Add + copy_rtx to arguments. + +2006-12-19 Ben Elliston + + * config/spu/spu.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define. + +2006-12-19 Ben Elliston + + * cse.c (cse_insn): Fix formatting. + +2006-12-18 Geoffrey Keating + + * doc/invoke.texi (Debugging Options): Document -g0. + * config/darwin.h (LINK_COMMAND_SPEC): Replace -gnone with -g0. + * config/darwin9.h (LINK_COMMAND_SPEC): Likewise. + +2006-12-18 Ian Lance Taylor + + * c.opt (Wmissing-declarations): Add C++ and ObjC++. + * doc/invoke.texi (Warning Options): -Wmissing-declarations now + works for C++. + +2006-12-18 Andrew MacLeod + + * tree-ssa-operands.h (struct vdef_optype_d): Rename to voptype_d. + (struct vuse_optype_d): Delete. + (SSA_OPERAND_MEMORY_SIZE): Delete. + (struct ssa_operand_memory_d): Change mem array to size one. + (NUM_VOP_FREE_BUCKETS): Define. + (free_vuses, free_vdefs): Replace with vop_free_buckets array. + (vdef_ops, vuse_ops, struct ssa_operand_iterator_d): Use voptype_d type. + * tree-pretty-print.c (dump_vops): Use voptype_d type. + * tree-ssa-operands.c (vop_free_bucket_size): New. Number of operands + which fit into a chunk of memory from a specific bucket. + (vop_free_bucket_index): New. Find correct size memory bucket. + (init_vop_buckets): New. Initialize VOP free memory buckets. + (add_vop_to_freelist): New. Add a VOP to the correct free list. + (ssa_operand_mem_size): New. Current size of an operand memory chunk. + (init_ssa_operands): Initialize operand memory and free lists. + (fini_ssa_operands): Remove references to free_vuses and free_vdefs. + (ssa_operand_alloc): Use graduated size memory allocation. + (APPEND_OP_AFTER, MOVE_HEAD_AFTER, MOVE_HEAD_TO_FREELIST, + INITIALIZE_USE): Remove. + (alloc_vop): New. Allocate a virtual operand. + (alloc_vdef, alloc_vuse): Delete. + (add_def_op, add_use_op): Directly setup pointers. + (add_vop): New. Add a virtual operand. + (add_vuse_op, add_vdef_op): Call add_vop. + (realloc_vop): New. Reallocate a virtual operand. + (realloc_vdef, realloc_vuse): Call realloc_vop. + (finalize_ssa_def_ops): Delete. Move content to finalize_ssa_defs. + (finalize_ssa_defs): Optimize for common case, remove code based on + sorted pointers which was a waste of time. + (finalize_ssa_use_ops): Delete. Move content to finalize_ssa_uses. + (finalize_ssa_uses): Update last pointer. + (finalize_ssa_vdef_ops): Delete. Move content to finalize_ssa_vdefs. + (finalize_ssa_vdefs, finalize_ssa_vuse_ops): Use voptype_d and + directly manipulate pointers. + (copy_virtual_operands): Use voptype_d, and no need to update pointers. + +2006-12-18 Nathan Sidwell + + * config/rs6000/rs6000.md (*movdf_hardfloat32): Use %X format to + determine if memory operand is an indexed address or not. + +2006-12-17 Steven Bosscher + + * cselib.c (struct cselib_val_struct): Make val_rtx its + own field, remove the union that contained it. + * cselib.c: Update accordingly where necessary. + +2006-12-17 Steven Bosscher + + * cse.c (have_eh_succ_edges): New function. + (cse_insn): Don't remove dead EH edges here + (cse_extended_basic_block): Do it here. + (rest_of_handle_cse, rest_of_handle_cse2): Don't assert + that we have removed all dead edges. + +2006-12-17 Matthias Klose + + PR libstdc++/11953 + * gcc/config/mips/linux.h (SUBTARGET_CPP_SPEC): Extend. + +2006-12-17 Steven Bosscher + + * cse.c (cse_find_path): Don't wrap a gcc_assert in ENABLE_CHECKING. + (cse_extended_basic_block): When truncating a path while processing + it, make sure to clear the visited bit on the basic blocks in the + truncated part of the path. + (cse_main): Use reverse completion order, not DFS order, to walk + the CFG. + (gate_handle_cse): Revert erroneous commit of a counter. + +2006-12-17 Steven Bosscher + + * cse.c (this_insn_cc0, this_insn_cc0_mode): New global + variables, moved out from cse_insn. + (prev_insn): Remove this global variable). + (new_basic_block): Don't set it. + (cse_insn): Idem. Also, move code to delete unused CC0-setter + insns and code to set prev_insn_cc0 and prev_insn_cc0_mode + from here... + (cse_extended_basic_block): ...to here. Do not clear + prev_insn_cc0 until after recording equivalences from jumps. + +2006-12-16 Jan Hubicka + + * cgraphunit.c (ipa_passes): Clear current_function_decl. + +2006-12-16 Andreas Tobler + + * passes.c (verify_curr_properties): Define only for ENABLE_CHECKING. + +2006-12-16 Jan Hubicka + + * omp-low.c (expand_omp_parallel): Set function properties. + * function.h (struct function): Add curr_properties and last_verified. + * passes.c (register_dump_files): Do not set TODO_set_props for the + first pass + (init_optimization_passes): Set it here; reorder initialization so the + dump files appear in more logical order. + (last_verified, curr_properties): Kill. + (do_per_function): New function. + (execute_function_todo): Break out from ... + (execute_todo): ... here; handle per-function flags. + (clear_last_verified, verify_curr_properties, + update_properties_after_pass): New functions. + (execute_one_pass): Handle per-function properties. + (execute_ipa_pass_list): Use do_per_function; sanity check that cfun + and current_function_decls are cleared out. + * ipa-cp.c (constant_val_insert): Clear cfun/current_function_decl + after use. + +2006-12-16 Manuel Lopez-Ibanez + + PR middle-end/7651 + * c.opt (Wempty-body): New. + * doc/invoke.texi (Wempty-body): Document it. + (Wextra): Enabled by -Wextra. + * c-opts.c (c_common_post_options): Enabled by -Wextra. + * c-common.c (empty_body_warning): Replace Wextra with Wempty-body. + * c-parser.c (c_parser_c99_block_statement): Likewise. + +2006-12-15 Jakub Jelinek + + PR target/30185 + * config/rs6000/rs6000.md (div3): Use correct mode in + force_reg call. + +2006-12-15 Andrew Pinski + + PR tree-opt/30140 + * tree-inline.c (setup_one_parameter): Gimplify the statement if + the variable is not a gimple register variable. + +2006-12-15 Uros Bizjak + + * invoke.texi (mstringop-strategy): Add missing "byte_loop" value. + +2006-12-14 Jan Hubicka + + * tree-flow.h (struct stmt_ann_d): Move bitfield references_memory + to proper place. + +2006-12-14 Richard Guenther + + PR tree-optimization/30197 + * builtins.c (fold_builtin_cexp): New function to fold cexp + to cexpi and exp parts. + * tree-ssa-pre.c (try_combine_conversion): Also handle + REALPART_EXPR and IMAGPART_EXPR. + +2006-12-14 Richard Guenther + + PR middle-end/30172 + * fold-const.c (fold_binary): Fold __complex__ ( x, 0 ) + + __complex__ ( 0, y ) to __complex__ ( x, y ). + Fold __complex__ (x, y) * +-I to __complex__ (-+y, +-x). + +2006-12-14 Richard Guenther + + PR tree-optimization/30198 + * fold-const.c (fold_unary): Fold REALPART_EXPR of cexpi to cos. + Fold IMAGPART_EXPR of cexpi to sin. + +2006-12-14 Dorit Nuzman + Trevor Smigiel + + * spu.c (TARGET_VECTORIZE_BUILTIN_MASK_FOR_LOAD): Defined. + (spu_init_builtins): Mark the SPU_MASK_FOR_LOAD builtin decl as read + only. + (spu_expand_builtin_1): Handle the SPU_MASK_FOR_LOAD builtin. + (spu_builtin_mask_for_load): New. + * spu-builtins.def (SPU_MASK_FOR_LOAD): Define new builtin. + * spu.md (UNSPEC_SPU_REALIGN_LOAD, UNSPEC_SPU_MASK_FOR_LOAD):New. + (vec_realign_load_, spu_lvsr): New. + +2006-12-13 Ian Lance Taylor + + PR c++/19564 + PR c++/19756 + * c-typeck.c (parser_build_binary_op): Move parentheses warnings + to warn_about_parentheses in c-common.c. + * c-common.c (warn_about_parentheses): New function. + * c-common.h (warn_about_parentheses): Declare. + * doc/invoke.texi (Warning Options): Update -Wparentheses + description. + +2006-12-13 Zdenek Dvorak + + * tree-ssa-loop-ivopts.c: Include tree-affine.h. + (divide): Removed. + (constant_multiple_of): Fix order of operators for division. + (aff_combination_const, aff_combination_elt, aff_combination_scale, + aff_combination_add_elt, aff_combination_add, aff_combination_convert, + tree_to_aff_combination, add_elt_to_tree, unshare_aff_combination, + aff_combination_to_tree): Moved to tree-affine.c and made to work with + double_int coefficients. + (get_computation_aff, get_computation_at): Work with double_int + coefficients. + (get_computation_cost_at): Do not use divide. + (rewrite_use_nonlinear_expr, rewrite_use_address, rewrite_use_compare): + Assert that expressing the computation did not fail. + * tree-ssa-address.c: Include tree-affine.h. + (add_to_parts, most_expensive_mult_to_index, addr_to_parts, + create_mem_ref): Work with double_int coefficients. + * tree-affine.c: New file. + * tree-affine.h: New file. + * tree-flow.h (struct affine_tree_combination): Removed. + * Makefile.in (tree-affine.o): Add. + (tree-ssa-address.o, tree-ssa-loop-ivopts.o): Add tree-affine.h + dependency. + +2006-12-13 Peter Bergner + + PR middle-end/30191 + Revert: + * reload1.c (eliminate_regs_in_insn): Merge the plus_src "else" and + the offset == 0 "then" clauses. + * config/rs6000/predicates.md (gpc_reg_operand): Check for + reload_in_progress. + +2006-12-13 Uros Bizjak + + * config/i386/i386.h (FIRST_PSEUDO_REGISTER): Define to 53. + (FIXED_REGISTERS, CALL_USED_REGISTERS): Remove dir register. + (REG_ALLOC_ORDER): Remove one element due to removal of dir register. + (FRAME_POINTER_REGNUM): Update register number to 20. + (REG_CLASS_CONTENTS): Update contents due to removed dir register. + (HI_REGISTER_NAMES): Remove "dirflag". + + * config/i386/i386.c (regclass_map): Remove dirflag entry. + (dbx_register_map, dbx64_register_map, svr4_dbx_register_map): + Remove "dir" entry. + (ix86_md_asm_clobbers): Remove "dirflag" default asm clobber. + + * config/i386/i386.md (R10_REG, R11_REG): Renumber. + (sse_prologue_save, *sse_prologue_save_insn): Renumber + hardcoded SSE register numbers. + + * config/i386/mmx.md (mmx_emms, mmx_femms): Renumber + hardcoded MMX register numbers. + + +2006-12-13 Mark Shinwell + + * config/arm/arm.c (arm_output_fldmx): Output FLDMD instead of + FLDMX. Rename function to... + (vfp_output_fldmd): ...this. + (vfp_output_fstmx): Output FSTMD instead of FSTMX. Rename + function to... + (vfp_output_fstmd): ...this. + (vfp_emit_fstmx): Don't leave space in the frame layout for the + FSTMX format word. Rename function to... + (vfp_emit_fstmd): ...this. + (arm_get_vfp_saved_size): Don't add in space for the FSTMX format + word. + (arm_output_epilogue): Adjust comment to reflect use of FSTMD. + (arm_unwind_emit_sequence): Don't compensate for the FSTMX format + word. Also emit "vsave" assembler directives in such cases rather + than "save". + * config/arm/libunwind.S (gnu_Unwind_Restore_VFP, + gnu_Unwind_Save_VFP): Adjust comments. + (gnu_Unwind_Restore_VFP_D, gnu_Unwind_Save_VFP_D): New functions + for saving and restoring using FSTMD and FLDMD rather than + FSTMX and FLDMX. + (gnu_Unwind_Restore_VFP_D_16_to_31, gnu_Unwind_Restore_VFP_D_16_to_31): + New functions for saving and restoring the VFPv3 registers 16 .. 31. + * config/arm/pr-support.c (gnu_unwind_execute): Add conditional + compilation case to correctly handle unwind opcode 0xc8 when using + VFP. + * config/arm/unwind-arm.c (struct vfpv3_regs): New. + (DEMAND_SAVE_VFP_D, DEMAND_SAVE_VFP_V3): New flags. + (__gnu_Unwind_Save_VFP_D, __gnu_Unwind_Restore_VFP_D, + __gnu_Unwind_Save_VFP_D_16_to_31, __gnu_Unwind_Restore_VFP_D_16_to_31): + Declare. + (restore_non_core_regs): Restore registers using FLDMD rather than + FLDMX if required. Also handle restoration of VFPv3 registers. + (_Unwind_VRS_Pop): Handle saving and restoring of registers using + FSTMD and FLDMD if required; also handle VFPv3 registers 16 .. 31, + including cases where the caller specifies a range of registers + that overlaps the d15/d16 boundary. + +2006-12-13 Diego Novillo + + PR 30089 + * tree-ssa-operands.h (SSA_OPERAND_MEMORY_SIZE): Add space to + accomodate 511 operands. + +2006-12-13 Richard Guenther + + * builtins.c (expand_builtin_cexpi): Fix typo. + +2006-12-13 Jan Hubicka + + * Makefile.in: Add dependencies. + * tree-pretty-print.c: Include value-prof.h + (dump_generic_bb_buff): Dump histograms + * value-prof.c: Include pointer-set.h + (gimple_alloc_histogram_value, histogram_hash, histogram_eq, + set_histogram_value, gimple_histogram_value, + gimple_add_histogram_value, gimple_remove_histogram_value, + gimple_histogram_value_of_type, dump_histogram_value, + dump_histograms_for_stmt, gimple_remove_stmt_histograms, + gimple_duplicate_stmt_histograms, visit_hist, + verify_histograms): New functions. + (tree_value_profile_transformations): Update for new histogram API. + (tree_divmod_fixed_value): Update for new histogram API. + (tree_divmod_fixed_value_transform): Update for new histogram API. + (tree_mod_pow2): Update for new histogram API. + (tree_mod_pow2_value_transform): Update for new histogram API. + (tree_mod_subtract): Update for new histogram API. + (tree_mod_subtract_transform): Update for new histogram API. + (tree_stringops_transform): Update for new histogram API. + (tree_divmod_values_to_profile): Update for new histogram API. + (tree_stringops_values_to_profile): Update for new histogram API. + (tree_find_values_to_profile): Update for new histogram API. + * value-prof.h (gimple_histogram_value): Declare. + (gimple_histogram_value_of_type): Declare. + (gimple_add_histogram_value): Declare. + (gimple_remove_histogram_value): Declare. + (dump_histograms_for_stmt): Declare. + (gimple_remove_histogram_value): Declare. + (gimple_remove_stmt_histograms): Declare. + (gimple_duplicate_stmt_histograms): Declare. + (verify_histograms): Declare. + * function.h + (struct funrction): Add value_histograms hash. + (VALUE_HISTOGRAMS): New macro. + * profile.c (compute_value_histograms): update for new API. + * tree-inline.c: Include value-prof.h + (copy_bb): Update histograms. + * tree-flow.h (struct stmt_ann_d): Do not contain pointer to histograms; + reorder to get smaller memory layout. + * tree-cfg.c: Include value-prof.h + (bsi_remove): Update histograms. + (bsi_replace): Update histograms. + (verify_stmts): Call histogram verifier. + (tree_duplicate_bb): Update histograms. + (move_block_to_fn): Update histograms. + +2006-12-13 Richard Guenther + + * ipa-inline.c (cgraph_flatten_node): Replace leafify with + flatten. + (cgraph_decide_inlining): Likewise. + +2006-12-13 Richard Guenther + + PR tree-optimization/17687 + * builtins.def (BUILT_IN_CEXPI, BUILT_IN_CEXPIF, BUILT_IN_CEXPIL): + New builtins for imaginary argument cexp. + * builtin-types.def (BT_FN_COMPLEX_FLOAT_FLOAT, + BT_FN_COMPLEX_DOUBLE_DOUBLE, BT_FN_COMPLEX_LONGDOUBLE_LONGDOUBLE): + New required builtin types. + * builtins.c (expand_builtin_cexpi): Declare. + (mathfn_built_in): Handle BUILT_IN_CEXPI. + (expand_builtin_cexpi): New static helper. + (expand_builtin): Call it. + (do_mpfr_sincos): Adjust for CEXPI evaluation. + (fold_builtin_sincos): New function to fold sincos to cepxi. + +2006-12-13 Richard Guenther + + * ipa-reference.c (scan_for_static_refs): Also scan + tcc_comparison class trees. + +2006-12-12 David Daney + + * config/mips/mips.h (ASM_OUTPUT_EXTERNAL): Undefine it before + define. + +2006-12-12 Andrew Pinski + + * tree-vect-transform.c (vect_permute_load_chain): + Set DECL_GIMPLE_REG_P to true for the vect_perm_* + temp variables. + +2006-12-13 Sa Liu + Ben Elliston + + * config/spu/spu.h (C_COMMON_OVERRIDE_OPTIONS): Define. + (REGISTER_TARGET_PRAGMAS): Don't zero warn_main flag. + * config/spu/spu-protos.h (spu_c_common_override_options): + Declare. + * config/spu/spu-c.c (spu_c_common_override_options): New. + * config/spu/spu.c (spu_override_options): Whitespace fix. + +2006-12-12 Trevor Smigiel + + * config/spu/spu.c (cpat_info): Fix an incorrectly identified case. + +2006-12-12 Geoffrey Keating + + * mips-tdump.c: Replace CROSS_COMPILE with + CROSS_DIRECTORY_STRUCTURE. + * mips-tfile.c: Likewise. + * gcc.c: Likewise. + * configure.ac: Likewise. + * cppdefault.c: Likewise. + * Makefile.in: Likewise. + * config/alpha/osf.h: Likewise. + * config/i386/cygwin.h: Likewise. + * config/i386/beos-elf.h: Likewise. + * config/i386/nto.h: Likewise. + * config/fr30/fr30.h: Likewise. + * config/svr4.h: Likewise. + * config/rs6000/aix.h: Likewise. + * config/rs6000/sysv4.h: Likewise. + * config/pa/pa64-hpux.h: Likewise. + * config/pa/pa-hpux10.h: Likewise. + * config/pa/pa-hpux11.h: Likewise. + * collect2.c: Likewise. + * configure: Regenerate. + + * doc/tm.texi (Alignment Output): Document that ASM_OUTPUT_SKIP + actually takes an unsigned HOST_WIDE_INT for its second parameter. + +2006-12-13 Ulrich Weigand + + * config/spu/spu.c (TARGET_ENCODE_SECTION_INFO): Define. + (spu_encode_section_info): New. + * config/spu/spu.h (ALIGNED_SYMBOL_REF_P): Adjust. + (SYMBOL_FLAG_ALIGN1): New. + +2006-12-12 Andrew Pinski + + PR tree-opt/28624 + * tree-ssa-dom.c (eliminate_degenerate_phis): Use a temporary + bitmap for EXECUTE_IF_SET_IN_BITMAP. + +2006-12-12 Andrew Pinski + + PR tree-opt/28436 + * tree.h (DECL_COMPLEX_GIMPLE_REG_P): Rename to ... + (DECL_GIMPLE_REG_P): This. + * fold-const.c (fold_indirect_ref_1): Fold *(foo *)&vectorfoo into + using BIT_FIELD_REF. + * omp-low.c (omp_copy_decl_2): Use the renamed DECL_GIMPLE_REG_P. + * tree-gimple.c (is_gimple_reg): Use the renamed DECL_GIMPLE_REG_P + and check for VECTOR_TYPE. + * expr.c (get_inner_reference): Set the mode for BIT_FIELD_REF with + vector types. + * tree-flow-inline.h (var_can_have_subvars): Use the renamed + DECL_GIMPLE_REG_P. + * gimplify.c (internal_get_tmp_var): Use the renamed DECL_GIMPLE_REG_P + and check for VECTOR_TYPE. + (gimplify_bind_expr): Likewise. + (gimplify_function_tree): Likewise. + * expmed.c: Include target.h. + (extract_bit_field): For vector mode, try find a better mode first. + If that fails use gen_lowpart (for vectors only). + * tree-dfa.c (make_rename_temp): Use the renamed DECL_GIMPLE_REG_P + and check for VECTOR_TYPE. + * tree-ssa-pre.c (create_expressions_by_pieces): Likewise. + (insert_into_preds_of_block): Likewise. + (insert_fake_stores): Create gimple register store_tmps for + vector types. + * tree-sra.c (sra_elt): New field, is_vector_lhs. + (sra_walk_expr ): For vector types that + are the left hand side, set the element's is_vector_lhs to true. + (instantiate_element): For vector types which were on the left + hand size, set DECL_GIMPLE_REG_P to false. + * tree-nested.c (create_tmp_var_for): Use the renamed + DECL_GIMPLE_REG_P. + * tree-inline.c (declare_return_variable): Use the renamed + DECL_GIMPLE_REG_P and check for VECTOR_TYPE. + (copy_decl_to_var): Use the renamed DECL_GIMPLE_REG_P. + (copy_result_decl_to_var): Likewise. + * tree-vect-transform.c (vect_get_new_vect_var): For vector types, + create a gimple register variable. + (vect_permute_store_chain): Set DECL_GIMPLE_REG_P to true for the + vect_inter_* temp variables. + * Makefile.in (expmed.o): Update dependencies. + +2006-12-12 Peter Bergner + + * reload1.c (eliminate_regs_in_insn): Merge the plus_src "else" and + the offset == 0 "then" clauses. + * config/rs6000/predicates.md (gpc_reg_operand): Check for + reload_in_progress. + +2006-12-12 Marcin Dalecki + + * doc/passes.texi: remove docs about "redundant PHI removal". + * tree-pass.h: remove orphaned declaration of pass_redundant_phi, + remove redundant pass_partition_blocks declaration. + +2006-12-12 Andrew Macleod + + PR tree-optimization/30159 + * tree-ssa-coalesce.c (coalesce_ssa_name): Process single ssa_name + functions in case a default_def coalesce is required. + +2006-12-12 Jakub Jelinek + + PR libstdc++/11953 + * gthr-posix.h (_REENTRANT): Only define if __osf__ is defined. + + * config/ia64/linux.h (CPP_SPEC): Define. + * config/s390/linux.h (CPP_SPEC): Define. + +2006-12-12 Jim Wilson + Jakub Jelinek + + PR rtl-optimization/27761 + * combine.c (try_combine): Don't create a useless garbage SET + if PATTERN (i2) is a PARALLEL. If added_sets_1, save + PATTERN (i1) resp. SET from i1src to i1dest in i1pat + and use it to prevent accidental modification of i1src. + +2006-12-12 Ira Rosen + + * tree-vect-analyze.c (vect_analyze_data_ref_access): Add another check + for stores with gaps. + * tree-vect-transform.c (vect_permute_store_chain): Create + interleave_high or interleave_low according to the endianess. + +2006-12-12 Richard Guenther + + PR middle-end/30147 + * fold-const.c (fold_read_from_constant_string): Only fold read + from constant string if the result type is integer. + +2006-12-12 Olivier Hainque + + * config/rs6000/t-vxworks: Remove assignment to LIB2FUNCS_EXTRA. + +2006-12-12 Olivier Hainque + + * config/vxlib.c: Extract tls related routines into ... + * config/vxlib-tls.c: New file. + * config/t-vxworks: Add vxlib-tls.c to LIB2FUNCS_EXTRA. + +2006-12-12 Sa Liu + Ben Elliston + + * config/spu/spu.opt (mfixed-range): New option. + * config/spu/spu.h (spu_fixed_range_string): Declare. + * config/spu/spu.c (spu_override_options): Handle -mfixed-range. + (fix_range): New function. + * doc/invoke.texi (SPU Options): Document -mfixed-range. + * testsuite/gcc.target/spu/fixed-range.c: New. + * testsuite/gcc.target/spu/fixed-range-bad.c: Ditto. + +2006-12-11 H.J. Lu + + PR middle-end/17982 + PR middle-end/20218 + * cgraphunit.c (cgraph_optimize): Remove call to + process_pending_assemble_externals. + + * config/elfos.h (ASM_OUTPUT_EXTERNAL): New. + + * config/ia64/hpux.h (TARGET_ASM_FILE_END): Removed. + + * config/ia64/ia64.c (ia64_asm_output_external): Rewritten. + (ia64_hpux_add_extern_decl): Removed. + (ia64_hpux_file_end): Likewise. + (extern_func_list): Likewise. + (extern_func_head): Likewise. + + * output.h (assemble_external): Update comments. + (default_elf_asm_output_external): New. + (maybe_assemble_visibility): New. + + * toplev.c (compile_file): Update comment. + + * varasm.c (assemble_external): Always put it on + pending_assemble_externals. + (maybe_assemble_visibility): Make it extern and return int. + (default_elf_asm_output_external): New. + +2006-12-11 Daniel Berlin + + * tree-ssa-structalias.c (handle_ptr_arith): Return false when we + can't handle the pointer arithmetic. + +2006-12-11 Diego Novillo + + * doc/tree-ssa.texi: Update documentation for virtual operands + and the use of push_stmt_changes/pop_stmt_changes. + * doc/invoke.texi: Remove documentation for params + global-var-threshold. + Update documentation on max-aliased-vops. + + * tree-into-ssa.c: Cleanup comments, variables and + spacing in various functions. + (regs_to_rename): Declare. + (mem_syms_to_rename): Declare. + (dump_update_ssa): Declare. + (debug_update_ssa): Declare. + (dump_names_replaced_by): Declare. + (debug_names_replaced_by): Declare. + (dump_def_blocks): Declare. + (debug_def_blocks): Declare. + (dump_defs_stack): Declare. + (debug_defs_stack): Declare. + (dump_currdefs): Declare. + (debug_currdefs): Declare. + (mark_def_sites): Do not handle virtual operands. + (compute_idf): Rename from find_idf. Update users. + (register_new_def): Make local. Convert second argument + to 'tree'. + Use BLOCK_DEFS_STACK directly. + If pushing a non-register, also push the underlying + symbol. + (rewrite_stmt): Do not handle virtual operands. + (dump_tree_ssa): Call dump_def_blocks, dump_defs_stack, + dump_currdefs and dump_tree_ssa_stats. + (dump_tree_ssa_stats): Also dump REPL_TBL. + (replace_use): Remove. Update all users to call SET_USE + instead. + (rewrite_blocks): Move code to free memory to + fini_ssa_renamer. + (mark_def_site_blocks): Move initialization code to + init_ssa_renamer. + (init_ssa_renamer): New. + (fini_ssa_renamer): New. + (rewrite_into_ssa): Call them. + (prepare_block_for_update): Process SSA_OP_ALL_USES first + and SSA_OP_ALL_DEFS later. Do not process virtual + operands separately. + (dump_update_ssa): Call dump_decl_set. + (init_update_ssa): Initialize regs_to_rename and + mem_syms_to_rename. + Call init_ssa_renamer. + (delete_update_ssa): Call fini_ssa_renamer. + Free blocks_with_phis_to_rewrite. + (mark_sym_for_renaming): If the variable has + sub-variables, also mark them. + If the variable belongs to a partition, also mark it. + (mark_set_for_renaming): Call mark_sym_for_renaming on + every symbol in the set. + (switch_virtuals_to_full_rewrite): Call + mark_set_for_renaming. + (update_ssa): Separate syms_to_rename into regs_to_rename + and mem_syms_to_rename. + + * tree-dump.c (dump_options): Add TDF_MEMSYMS. + * tree-pretty-print.c (debug_generic_expr): Add TDF_MEMSYMS. + (debug_generic_stmt): Likewise. + (debug_tree_chain): Likewise. + (dump_symbols): New. + (dump_generic_node): Check for TDF_MEMSYMS. + Handle MEMORY_PARTITION_TAG. + If the statement references memory and TDF_MEMSYMS is + given, call dump_symbols. + Indicate default names with (D). + (dump_vops): Update for new virtual operator format. + + * tree.c (init_ttree): Add MEMORY_PARTITION_TAG to + tree_contains_struct. + (tree_code_size): Handle MEMORY_PARTITION_TAG. + (tree_node_structure): Likewise. + (needs_to_live_in_memory): Handle SSA names. + * tree.h (MTAG_P): Likewise. + (struct tree_memory_partition_tag): Declare. + (MPT_SYMBOLS): Define. + (union tree_node): Add field 'mpt'. + * treestruct.def (TS_MEMORY_PARTITION_TAG): Define. + * tree.def (MEMORY_PARTITION_TAG): Define. + + * tree-pass.h (TDF_MEMSYMS): Define. + + * params.h (GLOBAL_VAR_THRESHOLD): Remove. + + * tree-ssa-alias.c: Include pointer-set.h + (struct alias_map_d): Remove fields total_alias_vops, + grouped_p and may_aliases. Update all users. + (struct mp_info_def): Declare. + (mp_info_t): New type. + (get_smt_for): Rename from get_tmt_for. Update all + users. + (add_may_alias): Add argument ALREADY_ADDED. If given, + use it to avoid adding duplicate entries to alias sets. + (replace_may_alias): Remove. Update all users. + (total_alias_vops_cmp): Remove. Update all users. + (group_aliases_into): Remove. Update all users. + (tree_pointer_compare): Remove. Update all users. + (compact_name_tags): Remove. Update all users. + (group_aliases): Remove. Update all users. + (mark_non_addressable): Move from tree-flow-inline.h. + Remove the symbol from the partition holding it, if + needed. + (dump_mp_info): New. + (debug_mp_info): New. + (sort_mp_info): New. + (create_partition_for): New. + (rewrite_alias_set_for): New. + (compute_memory_partitions): New. + (compute_may_aliases): Call it. + (init_alias_info): If computing aliases for the first + time, mark every memory symbol for renaming. + (have_common_aliases_p): New. + (compute_flow_insensitive_aliasing): Call it. + (setup_pointers_and_addressables): Do not cache + num_referenced_vars. + For register promoted symbols, mark their former + partition for renaming. + (maybe_create_global_var): Only create .GLOBAL_VAR if + there are no call-clobbered variables and a mix of pure + and non-pure functions were found. + (may_alias_p): Tidy comments. + (create_tag_raw): Remove unused variable new_type. + (dump_alias_info): call dump_memory_partitions. + (dump_points_to_info_for): Call dump_decl_set. + (may_be_aliased): Tidy comments and formatting. + + * timevar.def (TV_MEMORY_PARTITIONING): Define. + * tree-vectorizer.c (vect_memsyms_to_rename): Rename from + vect_vnames_to_rename. Set DECL_UIDs instead of SSA name + versions in it. + (slpeel_update_phi_nodes_for_guard1): Ignore memory PHIs. + * tree-vect-transform.c (vect_transform_loop): Call + mark_set_for_renaming with vect_memsyms_to_rename. + * tree-flow-inline.h (zero_imm_uses_p): New. + (memory_partition): New. + (set_memory_partition): New. + (factoring_name_p): New. + (symbol_mem_tag): New. Update every function that used + to access the annotation directly. + (set_symbol_mem_tag): Likewise. + + * tree-ssa-copy.c (may_propagate_copy): Allow copies + between a partition and a symbol as long as the symbol + belongs to the partition. + (merge_alias_info): Ignore merge requests when memory + partitions are involved. + + * tree-ssa.c (verify_ssa_name): Check that default + definitions have empty defining statements. + (verify_use): Remove argument IS_VIRTUAL. + Don't call verify_ssa_name. + (verify_phi_args): Call verify_ssa_name. + (verify_flow_insensitive_alias_info): Handle MPTs. + (verify_flow_sensitive_alias_info): Likewise. + (verify_name_tags): Likewise. + (verify_call_clobbering): Likewise. + (verify_ssa): Check for VOPs only after aliasing + information is available. + Check virtuals and real operands separately. + Call verify_ssa_name on every operand. + (stmt_references_memory_p): Move to tree-ssa-operands.c. + (walk_use_def_chains_1): Guard against NULL PHI + arguments. + + * tree-ssa-operands.c (stmt_references_memory_p): Move from + tree-ssa.c. + (get_mpt_for): New. + (dump_memory_partitions): New. + (debug_memory_partitions): New. + + * tree-flow.h (struct var_ann_d): Add field mpt. + (struct stmt_ann_d): Add bitfield references_memory. + * Makefile.in (tree-ssa-structalias.o): Include + pointer-set.h + (tree-ssa-alias.o): Likewise. + * tree-ssa-structalias.c: (update_alias_info): Use + STORED_SYMS to determine which variables are being + written to by the store operation. + * tree-ssa-structalias.h (struct alias_info) + : Remove. Update all users. + : Change to a pointer set. Update all + users. + : Likewise. + : Likewise. + (NUM_REFERENCES): Remove. Update all users. + (NUM_REFERENCES_CLEAR): Remove. Update all users. + (NUM_REFERENCES_INC): Remove. Update all users. + (NUM_REFERENCES_SET): Remove. Update all users. + + * params.def (PARAM_GLOBAL_VAR_THRESHOLD): Remove. + Update all users. + (PARAM_MAX_ALIASED_VOPS): Set to 10. + * tree-ssanames.c (make_ssa_name): Initialize + SSA_NAME_IS_DEFAULT_DEF to 0. + +2006-12-11 Aldy Hernandez + + * tree-ssa-dse.c (aggregate_vardecl_d): New. + (dse_global_data): Add aggregate_vardecl field. + (dse_possible_dead_store_p): New. + Add prev_defvar variable. + Allow immediate uses and previous immediate uses to differ + if they are setting different parts of the whole. + (get_aggregate_vardecl): New. + (dse_record_partial_aggregate_store): New. + (dse_whole_aggregate_clobbered_p): New. + (dse_partial_kill_p): New. + (dse_optimize_stmt): Abstract code checking a possible dead store + into new function dse_possible_dead_store_p(). + Call dse_maybe_record_aggregate_store(). + When checking whether a STMT and its USE_STMT refer to the + same memory address, check also for partial kills that clobber + the whole. + Move some variable definitions to the block where they are used. + (aggregate_vardecl_hash): New. + (aggregate_vardecl_eq): New. + (aggregate_vardecl_free): New. + (aggregate_whole_store_p): New. + (tree_ssa_dse): Initialize and free aggregate_vardecl. + Mark which aggregate stores we care about. + +2006-12-11 Andrew Macleod + + * tree-ssa-operands.h (struct vuse_element_d): Declare. + (vuse_element_t): Declare. + (struct vuse_vec_d): Declare. + (vuse_vec_p): Declare. + (VUSE_VECT_NUM_ELEM): Define. + (VUSE_VECT_ELEMENT_NC): Define. + (VUSE_ELEMENT_PTR_NC): Define. + (VUSE_ELEMENT_VAR_NC): Define. + (VUSE_VECT_ELEMENT): Define. + (VUSE_ELEMENT_PTR): Define. + (VUSE_ELEMENT_VAR): Define. + (struct maydef_optype_d) : Remove. + : Remove. + : Add. + (struct vuse_optype_d) : Remove. + : Remove. + : Add. + (struct mustdef_optype_d) : Remove. + : Remove. + : Add. + (VUSE_OP_PTR): Add argument. Use VUSE_ELEMENT_PTR. + (VUSE_OP): Add argument. Use VUSE_ELEMENT_PTR. + (VUSE_NUM): Define. + (VUSE_VECT): Define. + (MAYDEF_OP_PTR): Add argument. Use VUSE_OP_PTR. + (MAYDEF_OP): Add argument. Use VUSE_OP. + (MAYDEF_NUM): Define. + (MAYDEF_VECT): Define. + (MUSTDEF_KILL_PTR): Use VUSE_OP_PTR. + (MUSTDEF_KILL): Use VUSE_OP. + (MUSTDEF_NUM): Define. + (MUSTDEF_VECT): Define. + (realloc_maydef): Declare. + (realloc_vuse): Declare. + (struct ssa_operand_iterator_d) : Add. + : Add. + (LOADED_SYMS): Define. + (STORED_SYMS): Define. + (FOR_EACH_SSA_MUSTDEF_OPERAND): Call op_iter_next_mustdef. + * tree-into-ssa.c: Adapt for multi-operand V_MAY_DEF and VUSE + operators. + * tree-pretty-print.c: Likewise. + * tree-ssa-dse.c: Likewise. + * tree-flow-inline.h: Likewise. + (op_iter_next_mustdef): New. + * tree-ssa-operands.c: Likewise. + (ALLOC_OPTYPE): Remove. + Update all users. + (alloc_def): New. + (alloc_use): New. + (alloc_maydef): New. + (alloc_vuse): New. + (alloc_mustdef): New. + (realloc_maydef): New. + (realloc_vuse): New. + +2006-12-11 Aldy Hernandez + + * tree-ssa-operands.c: Remove build_v_must_defs. + (init_ssa_operands): Delete build_v_must_defs. + (finalize_ssa_v_must_def_ops): Remove. + (finalize_ssa_v_must_defs): Remove. + (finalize_ssa_stmt_operands): Do not call + finalize_ssa_v_must_defs. + (start_ssa_stmt_operands): Do not check build_v_must_defs. + (append_v_must_def): Delete. + (copy_virtual_operands): Do not copy V_MUST_DEFs. + (get_modify_expr_operands): Remove reference to V_MUST_DEF from + comment. Remove opf_kill_def. + (build_ssa_operands): Remove references to v_must_defs. + (copy_virtual_operands): Same. + (copy_virtual_operands): Same. + (fini_ssa_operands): Same. + (free_ssa_operands): Same. + (add_mustdef_op): Remove. + Remove mustdef_optype_p. + (alloc_mustdef): Remove. + Remove references to V_MUST_DEFs in comment at top of file. + (get_expr_operands): Remove opf_kill_def. + (opf_kill_def): Remove. + (add_virtual_operand): Remove opf_kill_def. + (get_indirect_ref_operands): Same. + (get_tmr_operands): Same. + + * tree-vectorizer.c (rename_variables_in_bb): Remove + SSA_OP_ALL_KILLS. + + * tree-ssa-loop-manip.c (find_uses_to_rename_stmt): Remove + SSA_OP_ALL_KILLS. + (check_loop_closed_ssa_stmt): Same. + + * tree-ssa.c (verify_def): Remove V_MUST_DEF from comment. + (verify_use): Same. + (verify_ssa): Remove V_MUST_DEFs traces. + (verify_ssa): Remove SSA_OP_ALL_KILLS. + + * tree-into-ssa.c (mark_def_sites): Change SSA_OP_VMUSTDEF to + SSA_OP_VMAYDEF. + (rewrite_update_stmt): Remove SSA_OP_VIRTUAL_KILLS. + (rewrite_stmt): Remove SSA_OP_ALL_KILLS. + + * tree-ssa-operands.h (struct stmt_operands_d): Remove V_MUST_DEF + references. + (MUSTDEF_OPS): Remove. + (SSA_OP_VMUSTDEF): Remove. + (FOR_EACH_SSA_MUSTDEF_OPERAND): Remove. + (struct mustdef_optype_d): Remove. + Remove mustdef_optype_p. + (struct stmt_operands_d): Remove mustdef_ops. + (ssa_operand_iterator_d): Remove mustdefs and mustkills. + (SSA_OP_VIRTUAL_DEFS): Remove SSA_OP_VMUSTDEF. + (MUSTDEF_RESULT_PTR): Remove. + (MUSTDEF_RESULT): Remove. + (MUSTDEF_KILL_PTR): Remove. + (MUSTDEF_KILL): Remove. + (MUSTDEF_NUM): Remove. + (MUSTDEF_VECT): Remove. + (SSA_OP_VIRTUAL_KILLS): Remove. + (SSA_OP_ALL_VIRTUALS): Remove SSA_OP_VIRTUAL_KILLS. + (SSA_OP_VMUSTKILL): Remove. + (SSA_OP_ALL_KILLS): Remove. + (SSA_OP_ALL_OPERANDS): Remove SSA_OP_ALL_KILLS. + + * tree-flow-inline.h (op_iter_init_def): Remove + SSA_OP_VIRTUAL_KILLS. + (delink_stmt_imm_use): Remove SSA_OP_ALL_KILLS. + + * tree-ssa-pre.c (compute_rvuse_and_antic_safe): Remove + SSA_OP_VIRTUAL_KILLS. + + * tree-ssa-loop-im.c (determine_max_movement): Remove + SSA_OP_VIRTUAL_KILLS. + (gather_mem_refs_stmt): Same. + (gather_mem_refs_stmt): Same. + + * tree-ssa-dce.c (mark_really_necessary_kill_operand_phis): Delete. + (perform_tree_ssa_dce): Remove call to + mark_really_necessary_kill_operand_phis. + + * tree-flow-inline.h (op_iter_init): Remove setting of mustdefs + and mustkills. + (op_iter_next_use): Do not check mustkills. + (op_iter_next_def): Do not check mustdefs. + (op_iter_next_tree): Do not check mustkills or mustdefs. + (clear_and_done_ssa_iter): Do not set mustdefs or mustkills. + (op_iter_next_maymustdef): Do not check mustkills. + (op_iter_init_must_and_may_def): Remove SSA_OP_VMUSTKILL. + (op_iter_init_mustdef): Remove. + + * tree-ssa-live.c (create_ssa_var_map): Change SSA_OP_VMUSTDEF to + SSA_OP_VMAYDEF. + + * tree-ssa-dse.c (dse_optimize_stmt): Remove SSA_OP_VMUSTDEF. + + * tree-ssa-ccp.c: Remove V_MUST_DEF traces from comments. + (visit_assignment): Same. + + * tree-ssa-copy.c (copy_prop_visit_assignment): Same. + + * tree-sra.c (mark_all_v_defs_1): Remove V_MUST_DEF from comment. + + * tree-outof-ssa.c (check_replaceable): Remove SSA_OP_VMUSTDEF. + + * tree-pretty-print.c (dump_vops): Remove printing of V_MUST_DEF. + Remove kill_p variable. + + * tree-dfa.c (struct dfa_stats_d): Remove num_v_must_defs. + (dump_dfa_stats): Remove code related to V_MUST_DEFs. + (collect_dfa_stats_r): Do not set num_v_must_defs. + (mark_new_vars_to_rename): Remove v_must_defs_{before,after} + code. + + * tree-into-ssa.c (mark_def_sites): Change SSA_OP_VMUSTKILL to + SSA_OP_VMAYUSE. + + * tree-ssa-pre.c (compute_rvuse_and_antic_safe): Remove + SSA_OP_VMUSTDEF and SSA_OP_VMUSTKILL. + + * tree-ssa-propagate.c (stmt_makes_single_store): Remove + SSA_OP_VMUSTDEF. + +2006-12-11 Zdenek Dvorak + + PR rtl-optimization/30113 + * loop-iv.c (implies_p): Require the mode of the operands to be + scalar. + +2006-12-11 Diego Novillo + + * tree-ssa-operands.h (create_ssa_artificial_load_stmt): + Rename from create_ssa_artficial_load_stmt. Update all users. + * tree-into-ssa.c (register_new_def): Make static. + * tree.c (is_global_var): Handle SSA_NAMEs. + * tree.h (SSA_NAME_IS_DEFAULT_DEF): Define. Update all users + that used to call gimple_default_def. + * tree-ssa-operands.c (push_stmt_changes): New. + (pop_stmt_changes): New. Update every pass that modifies + statements to bracket modifications with + push_stmt_changes/pop_stmt_changes. + (discard_stmt_changes): New. + * tree-ssa-dom.c (stmts_to_rescan): Change to stack of + 'tree *' instead of 'tree'. Update all users. + * tree-flow-inline.h (zero_imm_uses_p): New. + (symbol_mem_tag): New. Update every function that used + to access the annotation directly. + (set_symbol_mem_tag): Likewise. + * tree-dfa.c (dump_variable): Always show the escape mask. + (mark_symbols_for_renaming): Rename from + mark_new_vars_to_rename. Update all users. + Only mark to rename naked symbols in real and virtual + operands. + +2006-12-11 Andreas Schwab + + * varasm.c (elf_record_gcc_switches): Cast second argument of + ASM_OUTPUT_SKIP to unsigned HOST_WIDE_INT. + +2006-12-11 Diego Novillo + + * tree-scalar-evolution.c (scev_const_prop): + * tree-phinodes.c (remove_phi_node): Add argument + RELEASE_LHS_P. If given, release the SSA name on the LHS of + the PHI node. + Update all users. + * tree-ssa-dce.c: Remove forward declarations for static + functions. Re-arrange functions bodies as needed. + (find_obviously_necessary_stmts): Never mark PHI nodes as + obviously necessary. + +2006-12-11 Carlos O'Donell + + * config/arm/elf.h (MAX_OFILE_ALIGNMENT): Remove definition. + +2006-12-11 Jan Hubicka + + * value-prof.c (tree_stringops_transform): New. + (tree_value_profile_transformations): Require count to be non-zero; + call stringop transform; reset stmt BSI after BB changed. + (tree_divmod_fixed_value, tree_mod_pow2): Don't emit unnecesary label. + (interesting_stringop_to_profile_p, tree_stringop_fixed_value): New. + (tree_stringops_values_to_profile): New. + (tree_values_to_profile): Call tree_stringops_values_to_profile. + * tree.h (build_string_literal): Tidy prototype. + (validate_arglist, builtin_memset_read_str, get_pointer_alignment): + Declare. + * builtins.c (validate_arglist, builtin_memset_read_str, + get_pointer_alignment): Export. + +2006-12-11 Uros Bizjak + + PR target/30120 + Revert: + 2006-11-15 Uros Bizjak + + * config/i386/i386.opt: New target option -mx87regparm. + + * config/i386/i386.h (struct ix86_args): Add x87_nregs, x87_regno, + float_in_x87: Add new variables. mmx_words, sse_words: Remove. + (X87_REGPARM_MAX): Define. + + * config/i386/i386.c (override_options): Error out for + -mx87regparm but no 80387 support. + (ix86_attribute_table): Add x87regparm. + (ix86_handle_cconv_attribute): Update comments for x87regparm. + (ix86_comp_type_attributes): Check for mismatched x87regparm types. + (ix86_function_x87regparm): New function. + (ix86_function_arg_regno_p): Add X87_REGPARM_MAX 80387 floating + point registers. + (init_cumulative_args): Initialize x87_nregs and float_in_x87 + variables. + (function_arg_advance): Process x87_nregs and x87_regno when + floating point argument is to be passed in 80387 register. + (function_arg): Pass XFmode arguments in 80387 registers for local + functions. Pass SFmode and DFmode arguments to local functions + in 80387 registers when flag_unsafe_math_optimizations is set. + + * reg-stack.c (convert_regs_entry): Disable NaN load for + stack registers that are used for argument passing. + + * doc/extend.texi: Document x87regparm function attribute. + * doc/invoke.texi: Document -mx87regparm. + +2006-12-11 Jan Hubicka + + Move all varpool routines out of cgraph/cgraphunit to varpool.c + * cgraph.c: Update comments. + (cgraph_varpool_hash, + cgraph_varpool_nodes, cgraph_varpool_last_needed_node + cgraph_varpool_node_name, cgraph_varpool_node, + cgraph_varpol_mode_for_asm, cgraph_varpool_mark_needed_node, + cgraph_variable_initializer_availability): Move to + varpool.c and drop cgraph_ prefixes. + (cgraph_varpool_enqueue_needed_node, cgraph_varpool_reset_queue, + cgraph_varpool_first_unanalyzed_node, cgraph_varpool_finalize_decl): + move to varpool.c; drop cgraph_ prefix; make static. + (dump_cgraph_varpool_node): Move to varpool.c under name + dump_varpool_node. + (dump_varpool, hash_varpool_node, eq_varpool_node, + decide_is_variable_needed): Move to varpool.c + (decl_assembler_name_equal): Move to tree.c. + (availability_names): Rename to ... + (cgraph_availability_names): ... this one. + (dump_cgraph_node): Update. + * cgraph.h: Reorder declarations now in varpool.c + (cgraph_vailablity_names): Declare. + (struct cgraph_varpool_node): Rename to ... + (struct varpool_node): ... this one. + (cgraph_varpool_first_unanalyzed_node, cgraph_varpool_nodes_queue, + cgraph_varpool_first_unanalyzed_node, cgraph_varpool_node, + cgraph_varpool_node_for_asm, cgraph_varpool_mark_needed_node, + cgraph_varpool_finalize_decl, cgraph_varpool_enqueue_needed_node, + cgraph_varpool_reset_queue, cgraph_varpool_assemble_pending_decls, + cgraph_variable_initializer_availability): Rename to ... + (varpool_first_unanalyzed_node, varpool_nodes_queue, + varpool_first_unanalyzed_node, varpool_node, + varpool_node_for_asm, varpool_mark_needed_node, + varpool_finalize_decl, varpool_enqueue_needed_node, + varpool_assemble_pending_decls, variable_initializer_availability): + Rename to ... + * tree.c (decl_assembler_name_equal): Move here from cgraph.c. + * tree.h (decl_assembler_name_equal): Declare. + * omp-low.c (lower_omp_critical): Update. + * ipa-reference (analyze_variable, static_execute): Likewise. + * toplev.c (wrapup_global_declaration_2, compile_file): Update. + * cgraphunit.c: Update comments. + (cgraph_varpool_assembled_nodes_queue): Move to varpool.c under name + varpool_assembled_nodes_queue. + (cgraph_varpool_analyze_pending_decls): Move to varpool.c under name + varpool_analyze_pending_decls. + (cgraph_varpool_remove_unreferenced_decls): Move to varpool.c under name + varpool_remove_unreferenced_decls. + (record_reference): Update. + (cgraph_create_edges): Update. + (record_referneces_in_initializer): New function. + (cgraph_varpool_assemble_decl): Move to varpool.c under name + varpool_assemble_decl; make global. + (cgraph_varpool_assemble_pending_decls): Move to varpool.c under name + varpool_assemble_pending_decls. + (process_function_and_variable_attributes, cgraph_finalize_compilation_unit, + struct cgraph_order_sort, cgraph_output_in_order, + cgraph_function_and_variable_invisibility, cgraph_optimize, + cgraph_increase_alignment): Update. + * dwarf2out.c (decls_for_scope): Likewise. + * ipa-type-escape.c (analyze_variable, type_escape_execute): Likewise. + * except.c (output_ttype): Likewise. + * varasm.c (mark_decl_referenced): Likewise. + (find_decl_and_mark_referenced, assemble_alias): update. + * Makefile.in: Add varpool.c, gt-varpool.c and remove gt-cgraphunit.c + * passes.c (rest_of_decl_compilation): Update. + +2006-12-11 Ira Rosen + + * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Use + GIMPLE_STMT_OPERAND. + * tree-vect-transform.c (vect_permute_store_chain): Likewise. + (vect_setup_realignment): Likewise. + +2006-12-11 Sa Liu + Ben Elliston + + * config/spu/spu-elf.h (STARTFILE_SPEC): Update. + (ENDFILE_SPEC): Likewise. + * config/spu/spu.opt (mstdmain): New option. + * config/spu/crti.asm: Remove. + * config/spu/crtn.asm: Likewise. + * config/spu/crt0.c: Likewise. + * config/spu/crtend.c: Likewise. + * config/spu/t-spu-elf (EXTRA_MULTILIB_PARTS): Remove crt0 files + listed above. + ($(T)crti.o, $(T)crtn.o, $(T)crt1.o, $(T)crtend1.o): Remove. + * doc/invoke.texi (SPU Options): Document -mstdmain. + +2006-12-10 Zdenek Dvorak + + * doc/loop.texi: Document number_of_latch_executions and + number_of_cond_exit_executions. + * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop, + chrec_is_positive, number_of_iterations_for_all_loops, + scev_const_prop): Use number_of_latch_executions. + (set_nb_iterations_in_loop): Do not increase the value of the + number of iterations. + (number_of_iterations_in_loop): Renamed to ... + (number_of_latch_executions): ... this. + (number_of_exit_cond_executions): New function. + * tree-scalar-evolution.h (number_of_iterations_in_loop): Declaration + removed. + (number_of_latch_executions, number_of_exit_cond_executions): Declare. + * tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variables): Use + number_of_latch_executions. + * tree-data-ref.c (get_number_of_iters_for_loop): Use + number_of_exit_cond_executions. + * tree-vect-analyze.c (vect_get_loop_niters): Ditto. + * cfgloop.h (struct loop): Improve description of the nb_iterations + field. + +2006-12-10 Daniel Berlin + + * tree-ssa-alias.c (compact_name_tags): Use sort_tags_by_id. + (tree_pointer_compare): Remove. + +2006-12-10 Zdenek Dvorak + + * tree-vrp.c (adjust_range_with_scev): Use get_chrec_loop. + * loop-unswitch.c (unswitch_loops): Use FOR_EACH_LOOP. + * tree-loop-linear.c (linear_transform_loops): Ditto. + * tree-ssa-loop-im.c (determine_lsm): Ditto. + * tree-ssa-loop-niter.c (estimate_numbers_of_iterations, + free_numbers_of_iterations_estimates): Ditto. + * tree_ssa_unswitch_loops (tree_ssa_unswitch_loops): Ditto. + * tree-ssa-loop-ch.c (copy_loop_headers): Ditto. + * tree-ssa-loop-ivopts.c (tree_ssa_iv_optimize): Ditto. + * modulo-sched.c (sms_schedule): Ditto. + * tree-ssa-loop-ivcanon.c (canonicalize_induction_variables, + tree_unroll_loops_completely): Ditto. + * predict.c (predict_loops): Ditto. + * tree-if-conv.c (main_tree_if_conversion): Ditto. + * loop-unroll.c (unroll_and_peel_loops, peel_loops_completely, + decide_unrolling_and_peeling): Ditto. + * cfgloopmanip.c (unloop): Use delete_loop. + (place_new_loop): Access larray vector instead of parray. + (create_preheaders, force_single_succ_latches, + fix_loop_structure): Use FOR_EACH_LOOP and delete_loop.. + * loop-doloop.c (doloop_optimize_loops): Ditto. + * loop-invariant.c (move_loop_invariants): Ditto. + * tree-cfg.c (replace_uses_by): Ditto. + * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Ditto. + * tree-chrec.h (CHREC_VAR, CHREC_LEFT, CHREC_RIGHT, CHREC_VARIABLE): + Moved to ... + * tree.h (CHREC_VAR, CHREC_LEFT, CHREC_RIGHT, CHREC_VARIABLE): + ... here. + * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop, + compute_overall_effect_of_inner_loop, chrec_is_positive): Use + get_loop and get_chrec_loop. + (number_of_iterations_for_all_loops): Use number_of_loops. + (scev_initialize, scev_reset, scev_const_prop): Use FOR_EACH_LOOP. + * tree-scalar-evolution.h (get_chrec_loop): New inline function. + * cfgloopanal.c (mark_irreducible_loops): Use number_of_loops, + and FOR_EACH_LOOP. + * tree-chrec.c (evolution_function_is_invariant_rec_p, + chrec_convert_1): Use get_loop and get_chrec_loop. + * loop-init.c (loop_optimizer_init): Use number_of_loops. + (loop_optimizer_init): Use FOR_EACH_LOOP. + * tree-vectorizer.c (vect_loops_num): Removed. + (vectorize_loops): Store number of loops locally. Use + FOR_EACH_LOOP and get_loop. + * tree-vectorizer.h (vect_loops_num): Removed. + * tree-data-ref.c (get_number_of_iters_for_loop): Use get_loop. + (find_data_references_in_loop): Do not set parallel_p. + * tree-data-ref.h: Do not declare VEC(loop_p). + * cfgloop.c (flow_loops_dump, mark_single_exit_loops, + verify_loop_structure): Use FOR_EACH_LOOP. + (flow_loops_free): Use FOR_EACH_LOOP, free larray vector. + (initialize_loops_parallel_p): Removed. + (flow_loops_find): Push the loops into a vector. + (delete_loop): New function. + (cancel_loop): Use delete_loop. + * cfgloop.h: Declare VEC(loop_p). + (struct loop): Remove parallel_p field. + (struct loops): Replace num and parray field by larray vector. + Remove shared_headers field. + (delete_loop): Declare. + (get_loop, get_loops, number_of_loops, fel_next, fel_init, + FOR_EACH_LOOP): New. + * doc/loop.tex: Document new accessor functions. + +2006-12-10 Andrew MacLeod + + * common.opt (-ftree-lrs): Remove live range splitting option. + * makefile.in: Add tree-ssa-coalesce.o and reduce header dependancies. + * opts.c (decode_options): Remove flag_tree_live_range_split. + * tree-flow.h (struct var_ann_d): Rename fields from root_ to base_. + * tree-flow-inline.h (single_imm_use_p): New. Check for single use. + * tree-outof-ssa.c: Remove header files which aren't needed. + (SSANORM_*): Remove flags. + (print_exprs_edge, coalesce_abnormal_edges, coalesce_phi_operands, + coalesce_result_decls_and_copies, coalesce_asm_operands): Remove. + (coalesce_ssa_name): Move to tree-ssa-coalesce.c. + (assign_vars): Use Basevar instead of root_var structure. + (replace_def_variable): Dont do anything if def is replaceable. + (remove_ssa_form): Integrate functional changes. + (rewrite_out_of_ssa): Remove live-range_split option. + * tree-ssa-coalesce.c: New File for ssa-name coalescing. + (coalesce_cost): Calculate the cost of a coalesce. + (coalesce_cost_bb): Calculate the coalesce cost within a BB. + (coalesce_cost_edge): Calculate the coalesce cost on an edge. + (pop_cost_one_pair): Remove the best coalesce with cost 1 from the list. + (pop_best_coalesce): Remove the best coalesce from the list. + (coalesce_pair_map_hash): Calculate coalesce pair hash. + (coalesce_pair_map_eq): Compare 2 coalesce pairs for hash function. + (create_coalesce_list): Create a coalesce list object. + (delete_coalesce_list): Free a coalesce list object. + (find_coalesce_pair): Find matching pair in the coalesce list. + (add_cost_one_coalesce): Add a coalesce to the "cost one" list. + (add_coalesce): Add a coalesce to the coalesce list. + (compare_pairs): Comparision function to determine pair sorted order. + (num_coalesce_pairs): Number of coalesced pairs. + (first_coalesce_pair, end_coalesce_pair_p, next_coalesce_pair): + Coalesce pair iterator functions. + (sort_coalesce_list): Sort coalesce pairs in order of expense. + (dump_coalesce_list): Show coalesce list. + (ssa_conflicts_new): Create an SSA conflict graph. + (ssa_conflicts_delete): Delete an SSA conflict graph. + (ssa_conflicts_test_p): Test for conflicts. + (ssa_conflicts_add_one): Add a single conflict. + (ssa_conflicts_add): Add a conflict pair. + (ssa_conflicts_merge): Merge conflicts. + (struct live_track_d): Struct for tracking live partitions. + (new_live_track): Create new live_track object. + (delete_live_track): Delete a live_track object. + (live_track_remove_partition): Remove a partition from the live list. + (live_track_add_partition): Add a partition from the live list. + (live_track_clear_var): Take VAR from the live list. + (live_track_live_p): Is var live? + (live_track_process_use): Make var come alive. + (live_track_process_def): Make var go dead, add conflicts. + (live_track_init): Initialize to a live on exit set. + (live_track_clear_base_vars): Clear live partitions. + (build_ssa_conflict_graph): Build a conflict graph. + (print_exprs): Common debug output routine. + (abnormal_corrupt): Output info about a failed coalesce across an + abnormal edge. + (fail_abnormal_edge_coalesce): Output info about a failed MUST_COALESCE. + (create_outofssa_var_map): Create a var map and coalesce list. + (attempt_coalesce): Coalesce a pair. + (coalesce_partitions): Coalesce all pairs in a coalesce list. + (coalesce_ssa_name): Entry point. Determine what ssa_names to coalesce. + * tree-ssa-live.c: Remove header files which aren't needed. + (var_map_base_init): New. Initialize a basevar list. + (var_map_base_fini): New. Finish a basevar list. + (init_var_map): Initialize new fields. + (delete_var_map): Free new fields. + (var_union): Use renamed fields. + (compact_var_map): Remove. + (partition_to_view_init): Use renamed fields, change order of an if. + (partition_view_fini): Use renamed fields. + (partition_view_normal): Create basevar list if requested. + (partition_view_bitmap): Create a view based on a bitmap of partitions. + (change_partition_var): Use renamed fields. + (create_ssa_var_map): Remove. + (tpa_init, tpa_remove_partition, tpa_delete, tpa_compact, + root_var_init): Remove. + (partition_pair_map_hash, partition_pair_map_eq, create_coalesce_list, + delete_coalesce_list, find_partition_pair, coalesce_cost, add_coalesce, + compare_pairs, num_coalesce_pairs, first_partition_pair, + end_partition_pair_p, next_partition_pair, sort_coalesce_list, + pop_best_coalesce, add_conflicts_if_valid, set_if_valid, + build_tree_conflict_graph, coalesce_tpa_members, dump_coalesce_list, + tpa_dump): Moved to tree-ssa-coalesce.c and/or renamed there. + (dump_var_map): Use renamed fields. + * tree-ssa-live.h (struct _var_map): Modify fields. + (partition_to_var, version_to_var, var_to_partition): Use renamed + fields. + (basevar_index): New. Index of the base variable of a partition. + (num_basevars): New. Number of unique base variables in partition map. + (register_ssa_partition): Use renamed fields. + (struct tree_partition_associator_d): Remove. + (tpa_num_trees, tpa_tree, tpa_first_partition, tpa_next_partition, + tpa_find_tree, tpa_decompact, root_var_init, root_var_num, + root_var, root_var_first_partition, root_var_next_partition, + root_var_dump, root_var_delete, root_var_remove_partition, + root_var_find, root_var_compact, root_var_decompact): Remove. + (struct partition_pair, struct coalesce_list_d): Moved to + tree-ssa-coalesce.c + * tree-ssa-ter.c: Remove header files which aren't needed. + +2006-12-10 Steven Bosscher + + * cse.c: (struct cse_basic_block_data): Remove LAST field. + (struct branch_path): Remove BRANCH and TAKEN fields. Add new + BB field. + (cse_visited_basic_blocks): New static bitmap. + (cse_end_of_basic_block, cse_basic_block): Remove. + (cse_find_path, cse_dump_path, cse_prescan_path, + cse_extended_basic_block): New static functions. + (cse_insn): Don't CSE over setjmp calls. Use the CFG to find + basic block boundaries. Don't record jump equivalences here. + Update the CFG after doing in-place replacement of the SET_SRC. + (cse_main): Rewrite. Look for extended basic block headers + and call cse_extended_basic_block on them until all paths that + start at this header are exhausted. + (rest_of_handle_cse): Verify that the CFG is incrementally updated + and correct after cse_main. + Don't call delete_trivially_dead_insns, let cfgcleanup do that. + (rest_of_handle_cse2): Verify the CFG here, too, after cse_main. + (pass_cse): Add TODO_verify_flow. + (pass_cse2): Likewise. + +2006-12-10 Rask Ingemann Lambertsen + + * reload1.c (choose_reload_regs): Don't set byte offset when + resolving subregs of hard regs. + +2006-12-09 Zack Weinberg + + * c-opts.c (c_common_parse_file): Unconditionally give a warning, + suitable for the language, if set_yydebug is true. + * c-pragma.h: Define enum pragma_omp_clause here. Don't define + YYDEBUG or declare yydebug. + * c-parser.c (yydebug, enum pragma_omp_clause): Delete. + +2006-12-09 Jan Hubicka + + * cgraph.c: Update copyright. + * cgraph.h: Likewise + (cgraph_update_pending_function): Remove prototype. + * cgraphunit.c: Update copyright; update overall comment. + (cgraph_assemble_pending_functions): Make local. + +2006-12-09 Maxim Kuvyrkov + + * haifa-sched.c (schedule_block): Remove excessive sanity check. + +2006-12-08 Trevor Smigiel + + * config/spu/spu-protos.h (spu_split_immediate): Renamed from + spu_split_address. + (cpat_const_p, gen_cpat_const): Add. + * config/spu/spu.c (immediate_class): New enum. + (cpat_info, classify_immediate): New. + (print_operand): Use S, D, T instead of F, G, H. Use + classify_immediate. Handle cpat cases. + (spu_split_immediate): Renamed from spu_split_address. Split all + immediates that can be split. + (immediate_load_p): Use classify_immediate. + (spu_legitimate_constant_p): Accept everything except some cases of + CONST_VECTOR. + (spu_expand_move): Use spu_split_immedate. + (fsmbi_const_p): Use classify_immediate. + (cpat_const_p): New. + (gen_cpat_const: New. + * config/spu/constraints.md (j,k,l): New constraints for cpat + instructions. + * config/spu/spu.md (unnamed splitter): Change address splitter to + handle all immediates. + (_mov, _movdi, _movti): Handle i, j, k constraints for cpat + instructions. + (cpat, _cpat, splitter): Generate a TImode constant for cpat patterns + when possible. + +2006-12-08 John David Anglin + + PR target/30039 + * pa.md (high:DI and lo_sum:DI): Handle 64-bit CONST_INTs in 32-bit + patterns. Correct length of high:DI instruction sequence. + +2006-12-08 Mike Stump + + * config/rs6000/t-darwin (TARGET_LIBGCC2_CFLAGS): Build + libgcc with -mmacosx-version-min=10.4. + * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Default to + G4 for 10.5+ unless doing kernel builds. + +2006-12-08 Uros Bizjak + + PR target/30120 + * reg-stack.c (convert_regs_entry): Mark current argument passing + registers as live. + + * config/i386/i386.h (X87_REGPARM_MAX): Set to 0 to disable passing + of float arguments in x87 registers. + +2006-12-08 John David Anglin + + * pa.h (LEGITIMATE_CONSTANT_P): Simplify. + +2006-12-08 Mark Shinwell + + * recog.c (mode_dependent_address_p): Identify pre-increment, + pre-decrement, post-increment and post-decrement addressing as always + being mode-dependent. + * config/m32c/m32c.c (m32c_mode_dependent_address): Delete. + * config/m32c/m32c.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op. + * config/m32c/m32c-protos.h (m32c_mode_dependent_address): Delete. + * config/m32r/m32r.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete PRE_DEC, + PRE_INC and POST_INC checks. + * config/i386/i386.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op. + * config/sh/sh.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op. + * config/pdp11/pdp11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op. + * config/avr/avr.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op. + * config/c4x/c4x.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete PRE_DEC, + PRE_INC, POST_DEC and POST_INC cases. + * config/stormy16/stormy16.c (xstormy16_mode_dependent_address_p): + Delete POST_INC and PRE_DEC cases. + * config/m68hc11/m68hc11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to + no-op. + * config/cris/cris.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op. + * config/mn10300/mn10300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to + no-op. + * config/ia64/ia64.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op. + * config/m68k/m68k.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op. + * config/rs6000/rs6000.c (rs6000_mode_dependent_address): Delete + PRE_INC and PRE_DEC cases. + * config/arc/arc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op. + * config/mcore/mcore.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op. + * config/arm/arm.h (ARM_GO_IF_MODE_DEPENDENT_ADDRESS): Delete. + (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op. + * config/pa/pa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op. + * config/vax/vax.c (vax_mode_dependent_address_p): Delete + auto-increment cases. + * config/h8300/h8300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete + auto-increment cases. + * config/bfin/bfin.h (GO_IF_MODE_DEPENDENT_ADDRESS): Change to no-op. + +2006-12-08 Andrew MacLeod + + * Makefile.in: Add new file tree-ssa-ter.c. + * tree-outof-ssa.c (struct temp_expr_table_d, new_temp_expr_table, + free_temp_expr_table, add_value_to_version_list, + add_value_to_partition_list, remove_value_from_partition_list, + add_dependence, check_replaceable, finish_expr, mark_replaceable, + kill_expr, kill_virtual_exprs, find_replaceable_in_bb, + find_replaceable_exprs, dump_replaceable_exprs): Move to tree-ssa-ter.c. + * tree-ssa-live.h (find_replaceable_exprs, dump_replaceable_exprs): Add + prototypes. + * tree-ssa-ter.c: New file using code moved from tree-outof-ssa.c. + (struct value_expr_d): Remove. + (struct temp_expr_table_d): Rename fields, add explicit vector of + replaceable expressions instead of sharing. Change value_expr_p's to + bitmap. Delete free_list. + (new_temp_expr_table): Rename fields, count number of ssa_names in + each partition. + (free_temp_expr_table): Rename field, free new fields. + (new_value_expr, free_value_expr, find_value_in_list, add_value_to_list, + add_info_to_list, remove_value_from_list): Delete. + (version_to_be_replaced_p): New. Is an ssa-name replaceable? + (make_dependent_on_partition): New. Set bit in version list, allocating + a bitmap if need be. + (add_to_partition_kill_list): New. Set bit in the partition list, + allocating a bitmap if need be. + (remove_from_partition_kill_list): New. Remove a bit from the + partition list, free the bitmap if it is empty. + (add_dependence): Use renamed field, cleanup. Don't add a dependence + on partitions with only one member. + (is_replaceable_p): New. Split out replaceability check from + check_replaceable. + (process_replaceable): New. Code split from check_replaceable. + (check_replaceable): Removed. + (finished_with_expr): Renamed from finish_expr. + (kill_expr): Use renamed fields and less parameters. + (kill_virtual_exprs): Less parameters. + (mark_replaceable): Use renamed fields. + (find_replaceable_in_bb): Use renamed fields, cleanup. + (find_replaceable_exprs): Use renamed routines, cleanup. + (dump_replaceable_exprs): Don't go past end of ssa_names list. + (debug_ter): New. Debug routine to dump state. + +2006-12-08 Bernd Schmidt + + * config/bfin/bfin.c (effective_address_32bit_p): Return true for + anything involving the GOT. + (bfin_adjust_cost): Don't take the REGNO of a MEM. + (trapping_loads_p): Look inside the pattern of an insn to find the + SET. + * config/bfin/bfin.md (attr "type"): Add movcc. + (insn_reservation "alu"): Likewise. + (movsicc_insn1, movsicc_insn2): Change type to movcc. + +2006-12-07 Andrew Pinski + + * config/spu/spu-c.c (spu_build_overload_builtin): Delete. + (spu_resolve_overloaded_builtin): Check for non scalar instead + of vector type and check the function call argument type also for + non scalar. + Call build_function_call instead of spu_build_overload_builtin. + +2006-12-07 Trevor Smigiel + + * config/spu/spu.c (array_to_constant): Correct the order of arguments + to the calls of hwint_to_const_double. + +2006-12-07 Nick Clifton + + * config/elfos.h (TARGET_ASM_RECORD_GCC_SWITCHES): Set to + elf_record_gcc_switches. + +2006-12-07 Andrew Macleod + + * expr.c (string_constant): Account for non-zero lower bound arrays. + +2006-12-07 Richard Guenther + + * builtins.c (expand_builtin_pow): Adjust predicates for + pow to cbrt expansion to unsafe math and !HONOR_NANS for + negative base. + +2006-12-07 Jan Hubicka + + * i386.c (nocona_cost, pentium4_cost): Update preffered memcpy/memset + codegen. + +2006-12-07 Jan Hubicka + + * tree-vrp.c (compare_values): Short circuit INTEGER_CST; + use fold_constant_to_binary; tolerate wrong type constants. + (value_intersect_p): Do just two tests. + +2006-12-07 Bernd Schmidt + + * config/bfin/bfin.c (print_operand): New modifier 'N' for constants. + * config/bfin/bfin.md (ssashiftv2hi3, ssashifthi3, lshiftv2hi3, + lshifthi3): Use it, and fix the order of alternatives. + +2006-12-07 Nick Clifton + + * common.opt (record-gcc-switches): New command line switch. + * target.h (print_switch_type): New enum. + (print_switch_fn_type): New typedef for a function pointer. + (struct gcc_target): Add record_gcc_switches and + record_gcc_switches_section fields. + * target-def.h (TARGET_ASM_RECORD_GCC_SWITCHES): Provide a + default definition. + (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Provide a default + definition. + * toplev.c (print_single_switch): Simplify by providing a + pointer to function that will format and output the switch + appropriately. + (print_switch_values): Likewise. + (print_to_asm_out_file): New function. + (print_to_stderr): New function. + (init_asm_output): If flag_record_gcc_switches is set then if + the target supports recording the switches then emit them into + the assembler output file, otherwise tell the user that the + switch is not supported. + * varasm.c (eld_record_gcc_switches): New function. Example + handler for the record_gcc_switches target hook. + * doc/tm.texi (TARGET_ASM_RECORD_GCC_SWITCHES): Document the new + target hook. + (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Likewise. + * doc/invoke.texi (-frecord-gcc-switches): Document. + +2006-12-07 Maxim Kuvyrkov + + PR target/29794 + * sched-rgn.c (add_block1): Use correct initializer. + +2006-12-07 Richard Guenther + + * tree-vect-transform.c (vectorizable_call): Fix leftover of + TREE_OPERAND to GIMPLE_STMT_OPERAND conversion. + +2006-12-06 Aldy Hernandez + + PR/30079 + * config/pa/pa.c (hppa_gimplify_va_arg_expr): Build MODIFY_EXPR + not GIMPLE_MODIFY_STMT. + +2006-12-06 Jan Hubicka + + * tree-vrp.c (operand_less_p): New. + (compare_values, value_inside_range): Rewrite in terms of + operand_less_p. + +2006-12-06 Uros Bizjak + + * config/i386/i386.md (DIRFLAG_REG): Remove constant. + (type): Remove cld. + (length_immediate): Do not depend on cld type attribute. + (length_address): Ditto. + (modrm): Ditto. + (memory): Ditto. + (cld): Remove insn pattern. + (strmov_singleop): Do not use DIRFLAG_REG. + (*strmovdi_rex_1): Ditto. + (*strmovsi_1): Ditto. + (*strmovsi_rex_1): Ditto. + (*strmovhi_1): Ditto. + (*strmovhi_rex_1): Ditto. + (*strmovqi_1): Ditto. + (*strmovqi_rex_1): Ditto. + (rep_mov): Ditto. + (*rep_movdi_rex64): Ditto. + (*rep_movsi): Ditto. + (*rep_movsi_rex64): Ditto. + (*rep_movqi): Ditto. + (*rep_movqi_rex64): Ditto. + (strset_singleop): Ditto. + (*strsetdi_rex_1): Ditto. + (*strsetsi_1): Ditto. + (*strsetsi_rex_1): Ditto. + (*strsethi_1): Ditto. + (*strsethi_rex_1): Ditto. + (*strsetqi_1): Ditto. + (*strsetqi_rex_1): Ditto. + (rep_stos): Ditto. + (*rep_stosdi_rex64): Ditto. + (*rep_stossi): Ditto. + (*rep_stossi_rex64): Ditto. + (*rep_stosqi): Ditto. + (*rep_stosqi_rex64): Ditto. + (cmpstrnsi): Do not generate cld insn. + (cmpstrnqi_nz_1): Do not use DIRFLAG_REG. + (*cmpstrnqi_nz_1): Ditto. + (*cmpstrnqi_nz_rex_1): Ditto. + (cmpstrnqi_1): Ditto. + (*cmpstrnqi_1): Ditto. + (*cmpstrnqi_rex_1): Ditto. + (strlenqi_1): Ditto. + (*strlenqi_1): Ditto. + (*strlenqi_rex_1): Ditto. + + * config/i386/geode.md (shift): Do not depend on cld type attribute. + * config/i386/pentium.md (pent_cld): Remove insn reservation. + * config/i386/athlon.md (athlon_decode): Do not depend on cld + type attribute. + * config/i386/ppro.md (ppro_cld): Remove insn reservation. + * config/i386/k6.md (k6_alux_only): Do not depend on cld type + attribute. + (k6_alux_only_load): Ditto. + (k6_alux_only_store): Ditto. + + * config/i386/i386.c (ix86_expand_movmem): Remove cld_done boolean. + Do not emit cld instruction. + (ix86_expand_setmem): Ditto. + (ix86_expand_strlen): Do not emit cld instruction. + +2006-12-06 Bernd Schmidt + + * config/bfin/bfin.c (bfin_rtx_costs): Add a number of new cases, tweak + old ones. + +2006-12-06 Diego Novillo + + * gdbinit.in: Set complaints to 0. + +2006-12-06 Jan Hubicka + + * statistics.h (ALONE_PASS_MEM_STAT, ALONE_MEM_STAT_INFO, + ALONE_MEM_STAT_DECL): New macros. + * bitmap.h: Include statistics.h + (struct bitmap_head_def): Add variant with pointer to bitmap descriptor. + (bitmap_initialize_stat): Rename from bitmap_initialize; add statistics. + (bitmap_obstack_alloc_stat, bitmap_gc_alloc_stat): Declare. + * bitmap.c: Include hashtab.h + (bitmap_descriptor): New. + (bitmap_hash): New static variable + (hash_descriptor, eq_descriptor, bitmap_descriptor, register_overhead): + New static functions. + (bitmap_register): New. + (bitmap_element_free, bitmap_element_allocate, bitmap_elt_clear_from, + bitmap_obstack_release): Do accounting. + (bitmap_obstack_alloc_stat): Rename from bitmap_obstack_alloc ; do + accounting. + (bitmap_gc_alloc_stat): Likewise. + (bitmap_obstack_free, bitmap_find_bit): Do statictics. + (print_statistics, dump_bitmap_statistics): New functions. + * toplev.c (finalize): Dump bitmap statistics. + +2006-12-06 Bernd Schmidt + + * reload1.c (delete_output_reload): Count occurrences in + CALL_INSN_FUNCTION_USAGE. + * rtlanal.c (count_occurrences): Handle EXPR_LIST nodes without + crashing at the end of the list. + +2006-12-05 Daniel Berlin + + * tree-ssa-structalias.c (set_used_smts): Re-fix pr29156. + Optimize to avoid marking more SMT's as used when they aren't. + +2006-12-05 Eric Christopher + + * config/i386/i386.c (x86_output_aligned_bss): Move out + of COMMON_ASM_OP ifdef. + +2006-12-05 Eric Christopher + + * config/darwin.h (DARWIN_EXTRA_SPECS): New. + (STARTFILE_SPEC): Use. + (DARWIN_DYLIB1_SPEC): New. + (DARWIN_CRT1_SPEC): New. + * config/i386/darwin64.h (SUBTARGET_EXTRA_SPECS): Use + DARWIN_EXTRA_SPECS. + * config/i386/darwin.h: Ditto. + * config/rs6000/darwin.h: Ditto. + +2006-12-05 Daniel Berlin + + * tree-vrp.c (pass_vrp): Remove PROP_smt_usage. + * tree-complex.c (pass_lower_complex): Ditto. + * tree-ssa-ccp.c (pass_ccp): Ditto. + (pass_store_ccp): Ditto. + * tree-ssa-dom.c (pass_dominator): Ditto. + (pass_phi_only_cprop): Ditto. + * tree-sra.c (pass_sra): Ditto. + * tree-ssa-forwprop.c (pass_forwprop): Ditto. + * tree-flow.h (updating_used_alone): Remove. + (updating_used_alone): Ditto. + * tree-ssa-alias.c (updating_used_alone): Remove variable. + (lhs_may_store_to): Remove function. + (recalculate_used_alone): Ditto. + (compute_may_aliases): Remove used_alone calculation. + * tree.h (struct tree_memory_tag): Remove is_used_alone and + old_used_alone. Remove SMT_USED_ALONE and SMT_OLD_USED_ALONE. + * tree-pass.h (PROP_smt_usage): Remove. + * passes.c (execute_todo): Remove used alone recalculation. + (execute_one_pass): Ditto. + * tree-ssa-operands.c (add_virtual_operand): Remove used_alone + stuff. + +2006-12-05 Brooks Moses + + * doc/include/texinfo.tex: Update to version 2006-11-08.17. + +2006-12-05 Zdenek Dvorak + + PR tree-optimization/14784 + * tree-ssa-operands.c (access_can_touch_variable): Unrevert the fix. + +2006-12-05 Aldy Hernandez + + Merge from gimple-tuples-branch. + + 2006-12-04 Aldy Hernandez + + * config/s390/s390.c (s390_va_start): Replace MODIFY_EXPR with + GIMPLE_MODIFY_STMT. + (s390_gimplify_va_arg): Same. + * config/sparc/sparc.c (sparc_gimplify_va_arg): Same. + * config/sh/sh.c (sh_va_start): Same. + (sh_gimplify_va_arg_expr): Same. + * config/xtensa/xtensa.c (xtensa_va_start): Same. + (xtensa_gimplify_va_arg_expr): Same. + * config/ia64/ia64.c (ia64_gimplify_va_arg): Same. + * config/pa/pa.c (hppa_gimplify_va_arg_expr): Same. + * config/mips/mips.c (mips_va_start): Same. + (mips_gimplify_va_arg_expr): Same. + + 2006-12-04 Aldy Hernandez + + * Merge from mainline at revision 119445. + + 2006-12-04 Aldy Hernandez + + * config/spu/spu.c (spu_va_start): Change MODIFY_EXPR to + GIMPLE_MODIFY_STMT. + (spu_gimplify_va_arg_expr): Same. + + 2006-12-04 Aldy Hernandez + + * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start): + Change uses of MODIFY_EXPR to GIMPLE_MODIFY_STMT. + (xstormy16_expand_builtin_va_arg): Same. + + 2006-12-04 Aldy Hernandez + + * config/frv/frv.c (frv_expand_builtin_va_start): Change MODIFY_EXPR + to GIMPLE_MODIFY_STMT. + + 2006-12-04 Aldy Hernandez + + * config/alpha/alpha.c (va_list_skip_additions): Change all + occurrences of MODIFY_EXPR to GIMPLE_MODIFY_STMT. + (alpha_va_start): Same. + (alpha_gimplify_va_arg_1): Same. + (alpha_gimplify_va_arg): Same. + + 2006-12-01 Aldy Hernandez + + * gimplify.c (gimplify_modify_expr): Remove FIXME comment. + + 2006-12-01 Aldy Hernandez + + * tree-ssa-loop-im.c: Rename all PROTECTED_TREE_OPERAND to + GENERIC_TREE_OPERAND, and all PROTECTED_TREE_TYPE to + GENERIC_TREE_TYPE. + * tree-complex.c: Same. + * tree-pretty-print.c: Same. + * tree.c: Same. + * tree.h: Same. + * builtins.c: Same. + * fold-const.c: Same. + * tree-ssa-dom.c: Same. + * tree-ssa-propagate.c: Same. + * tree-ssa-alias.c: Same. + * gimple-low.c: Same. + * dwarf2out.c: Same. + * c-pretty-print.c: Same. + * gimplify.c: Same. + * tree-inline.c: Same. + * tree-outof-ssa.c: Same. + * tree-ssa-structalias.c: Same. + * tree-ssa-reassoc.c: Same. + * stmt.c: Same. + + 2006-11-16 Aldy Hernandez + + * tree.c (build2_stat): Fix comment. + + 2006-11-13 Aldy Hernandez + + * tree-ssa-propagate.c (get_rhs): Use GIMPLE_MODIFY_STMT and + TREE_OPERAND when appropriate. + + 2006-11-04 Aldy Hernandez + + * java/java-tree.h (lang_tree_node): Handle gimple tuples. + (EXPR_WFL_EMIT_LINE_NOTE): Look inside base. + (EXPR_WFL_LINECOL): Use EXPR_LOCUS macro instead of exp.locus. + * java/java-gimplify.c (java_gimplify_expr): Comment on why we do + not handle GIMPLE_MODIFY_STMT in the switch statement. + (java_gimplify_modify_expr): Call build2 with GIMPLE_MODIFY_STMT. + (java_gimplify_new_array_init): Same. + + 2006-11-03 Aldy Hernandez + + * gimplify.c (gimplify_omp_for): Allow gimple statements. + * tree-outof-ssa.c (check_replaceable): Use PROTECTED_TREE_OPERAND. + * fold-const.c (fold_binary): Allow gimple statements. + (fold): Same. + * fortran/trans-array.c (gfc_conv_descriptor_data_set_internal): + Rename from gfc_conv_descriptor_data_set. + Call gfc_add_modify instead of gfc_add_modify_expr. + * fortran/trans-array.h (gfc_conv_descriptor_data_set_internal): + Rename from gfc_conv_descriptor_data_set. + (gfc_conv_descriptor_data_set): New macro. + (gfc_conv_descriptor_data_set_tuples): New macros. + * fortran/trans-openmp.c (gfc_omp_clause_default_ctor): Call + gfc_conv_descriptor_data_set_tuples. + * fortran/trans.c (gfc_add_modify): Rename from gfc_add_modify_expr. + Generate GIMPLE_MODIFY_STMT when appropriate. + * fortran/trans.h (gfc_add_modify): Rename from gfc_add_modify_expr. + (gfc_add_modify_expr): New macro. + (gfc_add_modify_stmt): New macro. + * fortran/f95-lang.c (lang_tree_node): Handle gimple statements. + + 2006-11-01 Aldy Hernandez + + * Merge from mainline at revision 118200. + + 2006-10-09 Aldy Hernandez + + * tree-inline.c (copy_bb): Check for GIMPLE_MODIFY_STMT, and adjust + accordingly. + + 2006-10-09 Aldy Hernandez + + * tree.h (TREE_CHAIN, TREE_TYPE): Add versions for non GCC or not + enable checking. + Also, add __extension__ to GCC versions. + * tree-mudflap.c (mf_xform_derefs_1): Add parentheses around TREE_TYPE. + * tree-inline.c (copy_tree_r): Initialize chain to assuage the warning + patrol. + + 2006-10-05 Aldy Hernandez + + * tree-complex.c (expand_complex_libcall): Adjust for + GIMPLE_MODIFY_STMT. + (expand_complex_comparison): Same. + * tree-pretty-print.c (dump_generic_node): Is_expr should include + GIMPLE_STMT_P statements. + * value-prof.c (tree_divmod_fixed_value_transform): Adjust for + GIMPLE_MODIFY_STMT. + (tree_mod_pow2_value_transform): Same. + (tree_mod_subtract_transform): Same. + * tree.c (build2_stat): Check for gimplified function in cfun. + * tree.h (DECL_GIMPLIFIED): Delete. + (struct tree_function_decl): Remove gimplified_flag. + * omp-low.c (lower_omp_for): Adjust for GIMPLE_MODIFY_STMT. + * cp/cp-gimplify.c (cp_gimplify_expr): Adjust for GIMPLE_MODIFY_STMT. + (cxx_omp_clause_apply_fn): Adjust for GIMPLE_MODIFY_STMT. + (cxx_omp_clause_copy_ctor): Same. + (cxx_omp_clause_assign_op): Same. + * c-pretty-print.c (pp_c_conditional_expression): Same. + (pp_c_expression): Same. + * langhooks.c (lhd_omp_predetermined_sharing): Same. + * function.h (struct function): Add gimplified field. + * tree-if-conv.c (add_to_dst_predicate_list): Adjust for + GIMPLE_MODIFY_STMT. + (find_phi_replacement_condition): Same. + * gimplify.c (gimplify_modify_expr_to_memcpy): Same. + (gimplify_modify_expr_to_memset): Same. + (gimplify_init_ctor_eval_range): Same. + (gimplify_modify_expr_complex_part): Same. + (tree_to_gimple_tuple): Same. + (gimplify_modify_expr): Same. + (gimple_push_cleanup): Same. + (gimplify_omp_for): Same. + (gimplify_omp_atomic_pipeline): Same. + (gimplify_omp_atomic_mutex): Same. + (gimplify_expr): Same. + (gimplify_one_sizepos): Same. + (gimplify_function_tree): Same. + * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Same. + (vect_recog_widen_sum_pattern): Same. + * tree-vect-transform.c (get_initial_def_for_reduction): Same. + (vect_create_epilog_for_reduction): Same. + (vectorizable_reduction): Same. + + 2006-09-28 Aldy Hernandez + + * tree-ssa-math-opts.c (replace_reciprocal): Use GIMPLE_STMT_OPERAND. + * tree-if-conv.c (if_convertible_gimple_modify_stmt_p): Same. + (ifc_temp_var): Same. + * tree-vect-analyze.c (vect_determine_vectorization_factor): Check + for gimple statements. + (vect_analyze_operations): Same. + (exist_non_indexing_operands_for_use_p): Use GIMPLE_STMT_OPERAND. + * gimplify.c (gimplify_return_expr): Handle gimple statements. + * lambda-code.c (can_put_in_inner_loop): Same. + (can_put_after_inner_loop): Same. + * tree-vect-transform.c (vect_create_addr_base_for_vector_ref): Same. + (vect_create_data_ref_ptr): Same. + (vect_init_vector): Same. + (vect_get_vec_def_for_operand): Same. + (vect_create_epilog_for_reduction): Same. + (vectorizable_reduction): Same. + (vectorizable_assignment): Same. + (vectorizable_operation): Same. + (vectorizable_load): Same. + (vectorizable_condition): Same. + * config/rs6000/rs6000.c (rs6000_va_start): Do not create MODIFY_EXPRs. + (rs6000_gimplify_va_arg): Same. + + 2006-09-25 Aldy Hernandez + + * tree-vrp.c (simplify_div_or_mod_using_ranges): Use + GIMPLE_STMT_OPERAND. + (simplify_abs_using_ranges): Same. + * tree-complex.c (expand_complex_operations_1): Use + PROTECTED_TREE_OPERAND. + * tree-ssa-loop-niter.c (simplify_replace_tree): Check for gimple + stmt. + (get_val_for): Use GIMPLE_STMT_OPERAND. + * tree-tailcall.c (adjust_accumulator_values): Same. + (adjust_return_value): Same. + * tree.c (walk_tree): Use IS_GIMPLE_STMT_CODE_CLASS on default + case. Remove special case for tcc_gimple_stmt. + * tree.h (CAN_HAVE_LOCATION_P): New. + * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Check for + GIMPLE_STMT_P. + * tree-stdarg.c (va_list_counter_bump): Use GIMPLE_STMT_OPERAND. + * tree-ssa-dom.c (propagate_rhs_into_lhs): Same. + * tree-nrv.c (execute_return_slot_opt): Same. + * tree-ssa-alias.c (count_uses_and_derefs): Check for GIMPLE_STMT_P. + * tree-vn.c (set_value_handle): Same. + (get_value_handle): Same. + * c-decl.c (add_stmt): Use CAN_HAVE_LOCATION_P. + * tree-vectorizer.c (find_loop_location): Same. + * c-typeck.c (c_process_expr_stmt): Same. + (c_finish_stmt_expr): Same. + * gimplify.c (should_carry_locus_p): Same. + (tree_to_gimple_tuple): Delete definition and use of unecessary + variable save_tree_block. + * tree-ssa-pre.c (phi_translate): Check for GIMPLE_STMT_P. + (create_expression_by_pieces): Use GIMPLE_STMT_OPERAND. + (realify_fake_stores): Same. + * tree-ssa-forwprop.c (forward_propagate_addr_into_variable_arr): + Use TREE_OPERAND. + * tree-inline.c (copy_body_r): Check for EXPR_P and GIMPLE_STMT_P. + (copy_tree_r): Check for IS_GIMPLE_STMT_CODE_CLASS. + * tree-cfg.c (move_stmt_r): Use EXPR_P. Check for GIMPLE_STMT_P. + * c-parser.c (c_parser_typeof_specifier): Use CAN_HAVE_LOCATION_P. + (c_parser_statement_after_labels): Same. + (c_parser_paren_condition): Same. + (c_parser_for_statement): Same. + (c_parser_omp_for_loop): Same. + * tree-ssa-reassoc.c (linearize_expr): Use GIMPLE_STMT_OPERAND. + (linearize_expr_tree): Same. + * dwarf2out.c (reference_to_unused): Check for GIMPLE_STMT_P. + * function.c (instantiate_expr): Same. + + 2006-09-22 Aldy Hernandez + + * tree.c (expr_location): Use GIMPLE_STMT_LOCUS. + (set_expr_location): Same. + (expr_locus): Same. + (set_expr_locus): Same. + (expr_filename): Same. + (expr_lineno): Same. + (tree_block): Use GIMPLE_STMT_BLOCK. + (protected_tree_operand): Use GIMPLE_STMT_OPERAND. + * tree.h (struct gimple_stmt): Remove prev and next. + (GIMPLE_STMT_OPERAND_CHECK): New. + (TREE_TO_GIMPLE_STMT): Delete. + (GIMPLE_STMT_TO_TREE): Delete. + (GIMPLE_STMT_OPERAND): Use union, not cast. + (GIMPLE_STMT_LOCUS): New. + (GIMPLE_STMT_BLOCK): New. + * gimplify.c (tree_to_gimple_tuple): Use union. Do not cast + to tree_base. + * tree-cfg.c (verify_gimple_tuples_1): Call gcc_unreachable. + + 2006-09-21 Aldy Hernandez + + * tree-into-ssa.c (REGISTER_DEFS_IN_STMT): Change common.base + to base. + * tree-tailcall.c (adjust_return_value): Same. + * tree.c (tree_code_size): Remove GIMPLE_STATEMENT_LIST case. + (copy_node_stat): Change common.base to base. + (tree_node_structure): Return TS_GIMPLE_STATEMENT for tcc_gimple_stmt. + Remove GIMPLE_STATEMENT_LIST case. + * tree.h (struct gimple_stmt): Make operands of type tree. + (TREE_CODE, TREE_SET_CODE, TREE_ADDRESSABLE, CALL_EXPR_TAILCALL, + CASE_LOW_SEEN, TREE_STATIC, CLEANUP_EH_ONLY, CASE_HIGH_SEEN, + TREE_NO_WARNING, TREE_CONSTANT_OVERFLOW, TREE_SYMBOL_REFERENCED, + TYPE_REF_CAN_ALIAS_ALL, TREE_OVERFLOW, TREE_PUBLIC, + TYPE_CACHED_VALUES_P, TREE_SIDE_EFFECTS, FORCED_LABEL, + TREE_THIS_VOLATILE, TREE_THIS_NOTRAP, TREE_READONLY, + TREE_CONSTANT, TYPE_SIZES_GIMPLIFIED, DECL_UNSIGNED, + BIT_FIELD_REF_UNSIGNED, TYPE_UNSIGNED, TREE_ASM_WRITTEN, TREE_USED, + TREE_NOTHROW, CALL_EXPR_RETURN_SLOT_OPT, DECL_BY_REFERENCE, + CALL_FROM_THUNK_P, TYPE_ALIGN_OK, TREE_PRIVATE, TREE_PROTECTED, + TREE_DEPRECATED, IDENTIFIER_TRANSPARENT_ALIAS, TREE_INVARIANT, + TREE_LANG_FLAG_*, SSA_NAME_OCCURS_IN_ABNORMAL_PHI, + SSA_NAME_IN_FREE_LIST, TYPE_VOLATILE, TYPE_READONLY, BINFO_VIRTUAL_P): + Change common.base to base. + (GIMPLE_STATEMENT_LIST*): Remove. + (union tree_node): Add base. Remove gimple_statement_list. + Remove pointer from gstmt. + * tree-ssa-propagate.c (set_rhs): Change common.base to base. + * treestruct.def: Add TS_BASE. Remove TS_GIMPLE_STATEMENT_LIST. + * tree-vn.c (vn_compute): Change common.base to base. + * tree-eh.c (verify_eh_throw_stmt_node): Same. + * tree-flow-inline.h (var_ann): Same. + (function_ann): Same. + (stmt_ann): Same. + (mark_non_addressable): Same. + * gimplify.c (tree_to_gimple_tuple): Same. + * tree.def (DEFTREECODE): Remove GIMPLE_STATEMENT_LIST. + * tree-dfa.c (create_var_ann): Change common.base to base. + (create_function_ann): Same. + (create_stmt_ann): Same. + (create_tree_ann): Same. + (collect_dfa_stats_r): Same. + * tree-ssa-pre.c (NECESSARY): Change common.base to base. + * tree-ssa-dce.c (NECESSARY): Same. + * tree-ssa.c (delete_tree_ssa): Same. + * tree-optimize.c (execute_free_cfg_annotations): Same. + * tree-flow.h: Same. + + 2006-09-19 Aldy Hernandez + + * tree.c (tree_code_size): Handle GIMPLE_STATEMENT_LIST. + (tree_node_structure): Handle GIMPLE_STATEMENT_LIST and + GIMPLE_MODIFY_STMT. + * tree.h (struct gimple_stmt): Add prev and next fields. + (GIMPLE_STMT_TO_TREE): Cast, do not call GIMPLE_STMT_CHECK. + (GIMPLE_STATEMENT_LIST_HEAD): New. + (GIMPLE_STATEMENT_LIST_TAIL): New. + (struct gimple_statement_list): New. + (union tree_node): Add gimple_stmt_list and gstmt. + * treestruct.def: Add TS_GIMPLE_STATEMENT_LIST, TS_GIMPLE_STATEMENT. + * tree.def: Add GIMPLE_STATEMENT_LIST. + + 2006-09-06 Aldy Hernandez + + * tree-dump.c (dequeue_and_dump): Handle GIMPLE_MODIFY_STMT. + * tree-vrp.c (build_assert_expr_for): Change uses of + MODIFY_EXPR to GIMPLE_MODIFY_STMT and adjust accordingly. + (find_assert_locations): Same. + (remove_range_assertions): Same. + (stmt_interesting_for_vrp): Same. + (vrp_visit_assignment): Same. + (vrp_visit_stmt): Same. + (simplify_cond_using_ranges): Same. + * tree-into-ssa.c (REGISTER_DEFS_IN_THIS_STMT): Adjust for new + tree structure. + * tree-ssa-loop-im.c (movement_possibility): Change uses of + MODIFY_EXPR to GIMPLE_MODIFY_STMT and adjust accordingly. + (stmt_cost): Same. + (determine_invariantness_stmt): Same. + (schedule_sm): Same. + (gather_mem_refs_stmt): Same. + * tree-complex.c (init_dont_simulate_again): Same. + (complex_visit_stmt): Same. + (set_component_ssa_name): Same. + (expand_complex_move): Same. + (expand_complex_div_wide): Same. + (expand_complex_comparison): Same. + (expand_complex_operations_1): Same. + * tree-ssa-loop-niter.c (expand_simple_operations): Same. + (chain_of_csts_start): Same. + (infer_loop_bounds_from_undefined): Same. + * tree-pretty-print.c (dump_generic_node): Same. + (op_prio): Same. + (op_symbol_1): Same. + * tree-ssa-loop-manip.c (create_iv): Same. + * value-prof.c (tree_divmod_fixed_value): Same. + (tree_divmod_fixed_value_transform): Same. + (tree_mod_pow2): Same. + (tree_mod_pow2_value_transform): Same. + (tree_mod_subtract): Same. + (tree_mod_subtract_transform): Same. + (tree_divmod_values_to_profile): Same. + * tree-tailcall.c (process_assignment): Same. + (find_tail_calls): Same. + (adjust_accumulator_values): Same. + (adjust_return_value): Same. + (eliminate_tail_call): Same. + * tree.c (tree_code_size): Handle tcc_gimple_stmt. + (make_node_stat): Same. + (copy_node_stat): Handle gimple tuples. + (expr_align): Handle GIMPLE_MODIFY_STMT. Abort on MODIFY_EXPR. + (tree_node_structure): Handle tcc_gimple_stmt. + (build2_stat): Abort on MODIFY_EXPR after gimplification. Handle + tcc_gimple_stmt. + (build2_gimple_stat): New. + (expr_location): New. + (set_expr_location): New. + (expr_has_location): New. + (expr_locus): New. + (set_expr_locus): New. + (expr_filename): New. + (expr_lineno): New. + (walk_tree): Handle tcc_gimple_stmt. + (tree_block): New. + (protected_tree_operand): New. + (protected_tree_type): New. + (tree_code_kind): Add gimple statements. + * tree.h (tree_code_class): Add tcc_gimple_stmt. + (IS_GIMPLE_STMT_CODE_CLASS): New. + (struct tree_base): New. + (struct tree_common): Shrink. + (struct gimple_stmt): New. + (struct gimple_expr): New. + (TREE_SET_CODE, TREE_ADDRESSABLE, CALL_EXPR_TAILCALL, + CASE_LOW_SEEN, TREE_STATIC, CLEANUP_EH_ONLY, CASE_HIGH_SEEN, + TREE_NO_WARNING, TREE_CONSTANT_OVERFLOW, TREE_SYMBOL_REFERENCED, + TYPE_REF_CAN_ALIAS_ALL, TREE_OVERFLOW, TREE_PUBLIC, + TYPE_CACHED_VALUES_P, SAVE_EXPR_RESOLVED_P, TREE_SIDE_EFFECTS, + FORCED_LABEL, TREE_THIS_VOLATILE, TREE_THIS_NOTRAP, TREE_READONLY, + TREE_CONSTANT, TYPE_SIZES_GIMPLIFIED, DECL_UNSIGNED, + BIT_FIELD_REF_UNSIGNED, TYPE_UNSIGNED, TREE_ASM_WRITTEN, + TREE_USED, TREE_NOTHROW, CALL_EXPR_RETURN_SLOT_OPT, + DECL_BY_REFERENCE, CALL_FROM_THUNK_P, TYPE_ALIGN_OK, + TREE_PRIVATE, TREE_PROTECTED, TREE_DEPRECATED, + IDENTIFIER_TRANSPARENT_ALIAS, TREE_INVARIANT, + TREE_LANG_FLAG_[0-6], SSA_NAME_CHECK, SSA_NAME_IN_FREE_LIST, + TYPE_VOLATILE, TYPE_READONLY, TREE_VISITED, BINFO_VIRTUAL_P): + Adjust for new `common' layout. + (struct tree_function_decl): Add gimplified_flag. + (DECL_GIMPLIFIED): NEW. + (EXPR_LOCATION, SET_EXPR_LOCUS, EXPR_FILENAME, EXPR_LOCUS, + SET_EXPR_LOCUS, SET_EXPR_LOCATION, EXPR_LINENO, + EXPR_HAS_LOCATION): Call corresponding function. + (GIMPLE_STMT_CHECK): New. + (TREE_OPERAND_CHECK, TREE_TYPE, TREE_CHAIN): Abort on gimple tuples. + (TREE_BLOCK): Call tree_block. + (GIMPLE_STMT_P): New. + (GIMPLE_TUPLE_P): New. + (TREE_TO_GIMPLE_STMT): New. + (GIMPLE_STMT_TO_TREE): New. + (GIMPLE_STMT_OPERAND): New. + (GIMPLE_TUPLE_HAS_LOCUS_P): New. + (PROTECTED_TREE_OPERAND): New. + (PROTECTED_TREE_TYPE): New. + (build2_gimple_stat): Protoize. + (build2_gimple): New. + (expr_location): Protoize. + (set_expr_location): Protoize. + (expr_has_location): Protoize. + (expr_locus): Protoize. + (set_expr_locus): Protoize. + (expr_filename): Protoize. + (expr_lineno): Protoize. + (tree_block): Protoize. + (protected_tree_operand): Protoize. + (protected_tree_type): Protoize. + (enum tree_node_kind): Add gimple_stmt_kind. + * c-decl.c (union lang_tree_node): Tuples do not have a + TREE_CHAIN. + * ipa-cp.c (constant_val_insert): Change uses of MODIFY_EXPR to + GIMPLE_MODIFY_STMT and adjust accordingly. + * tree-scalar-evolution.c (follow_ssa_edge): Same. + (interpret_condition_phi): Same. + (pointer_used_p): Same. + (analyze_scalar_evolution_1): Same. + (scev_const_prop): Same. + (interpret_rhs_modify_stmt): Rename from + interpret_rhs_modify_expr. + * builtins.c (std_expand_builtin_va_start): Change uses of + MODIFY_EXPR to GIMPLE_MODIFY_STMT and adjust accordingly. + (std_gimplify_va_arg_expr): Same. + (expand_builtin_va_copy): Same. + (integer_valued_real_p): Same. + * fold-const.c (maybe_lvalue_p): Same. + (fold_unary): Same. + (tree_expr_nonnegative_p): Same. + (tree_expr_nonzero_p): Same. + * omp-low.c (extract_omp_for_data): Same. + (lower_rec_input_clauses): Same. + (lower_reduction_clauses): Same. + (lower_copyprivate_clauses): Same. + (lower_send_clauses): Same. + (lower_send_shared_vars): Same. + (expand_parallel_call): Same. + (expand_omp_parallel): Same. + (expand_omp_for_generic): Same. + (expand_omp_for_static_nochunk): Same. + (expand_omp_for_static_chunk): Same. + (expand_omp_sections): Same. + (lower_omp_single_copy): Same. + (lower_omp_parallel): Same. + * tree-ssa-dse.c (memory_address_same): Same. + (dse_optimize_stmt): Same. + * ipa-reference.c (scan_for_static_refs): Same. + * tree-gimple.c (is_gimple_reg_rhs): Same. + (get_call_expr_in): Same. + (recalculate_side_effects): Same. + * cgraphunit.c (cgraph_create_edges): Same. + * tree-ssa-copyrename.c (rename_ssa_copies): Same. + * tree-ssa-ccp.c (get_default_value): Same. + (likely_value): Same. + (visit_assignment): Same. + (ccp_visit_stmt): Same. + (get_maxval_strlen): Same. + (ccp_fold_builtin): Same. + * tree-ssa-loop-ivopts.c (find_givs_in_stmt_scev): Same. + (find_givs_in_stmt): Same. + (find_interesting_uses_op): Same. + (find_interesting_uses_stmt): Same. + (rewrite_use_nonlinear_expr): Same. + * ipa-pure-const.c (scan_function): Same. + * tree-stdarg.c (va_list_counter_bump): Same. + (check_all_va_list_escapes): Same. + (execute_optimize_stdarg): Same. + * tree-ssa-math-opts.c (compute_merit): Same. + (insert_reciprocals): Same. + (execute_cse_reciprocals): Same. + * tree-ssa-dom.c (initialize_hash_element): Same. + (simple_iv_increment_p): Same. + (record_equivalences_from_stmt): Same. + (optimize_stmt): Same. + (remove_stmt_or_phi): Same. + (get_rhs_or_phi_arg): Same. + (get_lhs_or_phi_result): Same. + (propagate_rhs_into_lhs): Same. + * tree-nrv.c (tree_nrv): Same. + (execute_return_slot_opt): Same. + * tree-ssa-propagate.c (get_rhs): Same. + (set_rhs): Same. + (stmt_makes_single_load): Same. + (stmt_makes_single_store): Same. + (replace_vuses_in): Same. + (fold_predicate_in): Same. + (substitute_and_fold): Same. + * tree-ssa-alias.c (compute_call_clobbered): Same. + (recalculate_used_alone): Same. + (count_uses_and_derefs): Same. + (is_escape_site): Same. + (find_used_portions): Same. + * gimple-low.c (lower_stmt): Same. + (block_may_fallthru): Same. + (lower_return_expr): Same. + * tree-ssa-sink.c (is_hidden_global_store): Same. + (statement_sink_location): Same. + * dwarf2out.c (loc_descriptor_from_tree_1): Same. + * expr.c (safe_from_p): Same. + (expand_expr_real): Same. + (expand_expr_real_1): Same. + * tree-ssa-loop-ivcanon.c (empty_loop_p): Same. + * predict.c (expr_expected_value): Same. + (strip_builtin_expect): Same. + (apply_return_prediction): Same. + (tree_bb_level_predictions): Same. + (tree_estimate_probability): Same. + * tree-vn.c (vn_compute): Same. + * tree-eh.c (add_stmt_to_eh_region_fn): Same. + (remove_stmt_from_eh_region_fn): Same. + (do_return_redirection): Same. + (honor_protect_cleanup_actions): Same. + (lower_try_finally_switch): Same. + (lower_eh_constructs_1): Same. + (tree_could_throw_p): Same. + (verify_eh_throw_stmt_node): Same. + * function.c (gimplify_parameters): Same. + * tree-vectorizer.c (vect_is_simple_use): Same. + (vect_is_simple_reduction): Same. + * ipa-type-escape.c (scan_for_refs): Same. + * tree-if-conv.c (tree_if_conversion): Same. + (tree_if_convert_stmt): Same. + (if_convertible_gimplify_modify_stmt_p): Rename from + if_convertible_modify_expr_p. + (if_convertible_stmt_p): Adjust for GIMPLE_MODIFY_STMT. + (ifc_temp_var): Same. + (replace_phi_with_cond_modify_stmt): Rename from + replace_phi_with_cond_modify_expr. + (process_phi_nodes): Call replace_phi_with_cond_modify_stmt. + * tree.def (DEFTREECODE): Add GIMPLE_MODIFY_STMT. + * tree-data-ref.c (find_data_references_in_loop): Adjust for + GIMPLE_MODIFY_STMT. + * tree-flow-inline.h (var_ann): Same. + (function_ann): Same. + (stmt_ann): Same. + (mark_non_addressable): Same. + * tree-vect-analyze.c (vect_determine_vectorization_factor): Same. + * gimplify.c (tree_to_gimple_tuple): New. + (build_stack_save_restore): Adjust for GIMPLE_MODIFY_STMT. + (gimplify_return_expr): Same. + (gimplify_decl_expr): Same. + (gimplify_self_mod_expr): Same. + (gimplify_cond_expr): Same. + (gimplify_init_constructor): Same. + (gimplify_modify_expr): Same. + (gimplify_expr): Same. + (gimplify_function_tree): Same. + (force_gimple_operand): Same. + * tree-ssa-phiopt.c (conditional_replacement): Same. + (minmax_replacement): Same. + (abs_replacement): Same. + * tree-dfa.c (create_var_ann): Same. + (create_function_ann): Same. + (create_stmt_ann): Same. + (create_tree_ann): Same. + (collect_dfa_stats_r): Same. + * tree-ssa-pre.c (find_or_generate_expression): Same. + (create_expression_by_pieces): Same. + (try_look_through_load): Same. + (insert_fake_stores): Same. + (realify_fake_stores): Same. + (compute_avail): Same. + (eliminate): Same. + (init_pre): Same. + (poolify_modify_stmt): Rename from poolify_modify_stmt. + Adjust for GIMPLE_MODIFY_STMT. + (NECESSARY): Adjust for new `common' layout. + * tree-ssa-live.c (build_tree_conflict_graph): Adjust for + GIMPLE_MODIFY_STMT. + * tree-sra.c (sra_walk_modify_stmt): Rename from + sra_walk_modify_expr. + (sra_walk_function): Adjust for GIMPLE_MODIFY_STMT. + (generate_copy_inout): Same. + (generate_element_copy): Same. + (generate_element_zero): Same. + (scalarize_copy): Same. + * tree-mudflap.c (mf_decl_cache_locals): Same. + (mf_build_check_statement_for): Same. + (mf_xform_derefs): Same. + * ipa-prop.c (ipa_method_modify_stmt): Same. + * print-tree.c (print_node): Handle gimple tuples. + Add case for tcc_gimple_stmt. + * tree-ssa-copy.c (stmt_may_generate_copy): Adjust for + GIMPLE_MODIFY_STMT. + (copy_prop_visit_assignment): Same. + (copy_prop_visit_stmt): Same. + (init_copy_prop): Same. + * tree-ssa-forwprop.c (ssa_name_defined_by_comparison_p): Same. + (forward_propagate_into_cond_1): Same. + (find_equivalent_equality_comparison): Same. + (tidy_after_forward_propagate_addr): Same. + (forward_propagate_addr_expr_1): Same. + (simplify_not_neg_expr): Same. + (simplify_switch_expr): Same. + * tree-ssa-dce.c (find_pdom): Same. + (mark_stmt_if_obviously_necessary): Same. + (NECESSARY): Adjust for new `common' layout. + * tree-flow.h: Same. + * tree-vect-patterns.c (widened_name_p): Adjust for + GIMPLE_MODIFY_STMT. + (vect_recog_dot_prod_pattern): Same. + (vect_recog_widen_sum_pattern): Same. + (vect_pattern_recog_1): Same. + * tree-nested.c (init_tmp_var): Same. + (save_tmp_var): Same. + (walk_stmts): Same. + (convert_call_expr): Same. + (finalize_nesting_tree_1): Same. + * tree-ssa.c (verify_ssa): Same. + (delete_tree_ssa): Same. + * lambda-code.c (lbv_to_gcc_expression): Same. + (lle_to_gcc_expression): Same. + (lambda_loopnest_to_gcc_loopnest): Same. + (can_put_in_inner_loop): Same. + (can_convert_to_perfect_nest): Same. + (perfect_nestify): Same. + * tree-ssa-loop-prefetch.c (gather_memory_references): Same. + * tree-inline.c (copy_body_r): Same. + (setup_one_parameter): Same. + (initialize_inlined_parameters): Same. + (estimate_num_insns_1): Same. + (expand_call_inline): Same. + (gimple_expand_calls_inline): Same. + (copy_tree_r): Same. + * tree-optimize.c (execute_free_cfg_annotations): Same. + * tree-vect-transform.c (vect_create_addr_base_for_vector_ref): Same. + (vect_align_data_ref): Same. + (vect_create_data_ref_ptr): Same. + (vect_init_vector): Same. + (vect_create_epilog_for_reduction): Same. + (vectorizable_reduction): Same. + (vectorizable_assignment): Same. + (vectorizable_operation): Same. + (vectorizable_store): Same. + (vectorizable_load): Same. + (vectorizable_live_operation): Same. + (vectorizable_condition): Same. + (vect_generate_tmps_on_preheader): Same. + (vect_create_cond_for_align_checks): Same. + * tree-object-size.c (collect_object_sizes_for): Same. + (check_for_plus_in_loops_1): Same. + (check_for_plus_in_loops): Same. + * tree-outof-ssa.c (insert_copy_on_edge): Same. + (replace_use_variable): Same. + (check_replaceable): Same. + (rewrite_trees): Same. + (identical_copies_p): Same. + (insert_backedge_copies): Same. + * tree-profile.c (tree_gen_edge_profiler): Same. + * tree-vect-generic.c (expand_vector_operations_1): Same. + * tree-ssa-structalias.c (update_alias_info): Same. + (find_func_aliases): Same. + * tree-cfg.c (factor_computed_gotos): Same. + (make_edges): Same. + (make_goto_expr_edges): Same. + (tree_merge_blocks): Same. + (remove_useless_stmts_cond): Same. + (remove_useless_stmts_1): Same. + (tree_find_edge_insert_loc): Same. + (verify_expr): Same. + (gimplify_val): Same. + (verify_gimple_tuples_1): New. + (verify_gimple_tuples): New. + (verify_stmts): Call verify_gimple_tuples. + * tree-ssa-reassoc.c (get_rank): Adjust for GIMPLE_MODIFY_STMT. + (get_unary_op): Same. + (linearize_expr): Same. + (get_single_immediate_use): Same. + (negate_value): Same. + (should_break_up_subtract): Same. + (break_up_subtract): Same. + (repropagate_negates): Same. + (break_up_subtract_bb): Same. + (reassociate_bb): Same. + * config/i386/i386.c (ix86_va_start): Same. + (ix86_gimplify_va_arg): Same. + * stmt.c (expand_expr_stmt): Same. + (warn_if_unused_value): Same. + (expand_return): Same. + * tree-ssanames.c (make_ssa_name): Same. + * tree-ssa-threadedge.c (lhs_of_dominating_assert): Same. + * tree-ssa-operands.c (finalize_ssa_defs): Same. + (add_virtual_operand): Same. + (get_expr_operands): Same. + (parse_ssa_operands): Same. + (get_modify_stmt_operands): Rename from get_modify_expr_operands. + +2006-12-05 H.J. Lu + + * config.host: Remove extra blank line. + +2006-12-05 Bernd Schmidt + + * config.host (i[34567]86-*-*, x86-64-*-*): Use driver-i386.o only if + target is also an x86 variant. + +2006-12-05 Richard Guenther + + * config/i386/i386.c (ix86_builtin_vectorized_function): Declare. + (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Define. + (ix86_builtin_vectorized_function): New function to vectorize + sqrt. + +2006-12-05 Bernd Schmidt + + * config/bfin/bfin.c (output_file_start): Fix comment which referred to + ia64_override_options. + +2006-12-04 Jan Hubicka + + * cfgexpand.c (expand_one_var): Guard expand_one_stack_var by + really_expand. + +2006-12-04 Bernd Schmidt + + * rtlanal.c (note_uses): Deal with SEQUENCEs. + * config/bfin/bfin.c: Include "timevar.h". + (bfin_flag_schedule_insns2, splitting_for_sched, + bfin_flag_var_tracking): New variables. + (print_operand): Handle '%!'. + (override_options): Disable normal sched2 pass, instead set + bfin_flag_schedule_insns2 for reorg to handle it. + (output_file_start): Likewise for var-tracking. + (bfin_optimize_loop): Take some care not to stumble over SEQUENCEs. + (gen_one_bundle, bfin_gen_bundles, type_for_anomaly, trapping_loads_p): + New functions. + (bfin_reorg): Do second scheduling pass here, and call + bfin_gen_bundles. Use type_for_anomaly and trapping_loads_p instead + of examining insns directly. If bfin_flag_var_tracking, call + var-tracking pass when done with everything else. + * config/bfin/bfin.h (PRINT_OPERAND_PUNCT_VALID_P): '!' is valid. + * config/bfin/bfin.md (UNSPEC_32BIT): New constant. + (movsi_insn32): New pattern, with two new splits to create it + before the final scheduling pass. + (neghi2): Not a dsp32 insn, rather alu0. + (movbi, pushsi_insn, popsi_insn, movsi_insn, movv2hi_insn, movhi_insn, + movqi_insn, movsf_insn, movsi_insv, extendhisi2, zero_extendhisi2, + extendqihi2, extendqisi2, zero_extendqihi2, zero_extendqisi2, + mulhisi3, umulhisi3, ssadsi3, sssubsi3, smaxsi3, sminsi3, abssi2, + ssnegsi2, signbitssi2, smaxhi3, sminhi3, abshi2, ssneghi2, signbitshi2, + movhi_low2high, movhi_high2high, movhi_low2low, movhi_high2low, + movhiv2hi_low, movhiv2hi_high, composev2hi, packv2hi, movv2hi_hi, + ssaddhi3, sssubhi3, addv2hi3, ssaddv2hi3, subv2hi3, sssubv2hi3, + addsubv2hi3, subaddv2hi3, ssaddsubv2hi3, sssubaddv2hi3, sublohiv2hi3, + subhilov2hi3, sssublohiv2hi3, sssubhilov2hi3, addlohiv2hi3, + addhilov2hi3, ssaddlohiv2hi3, ssaddhilov2hi3, sminv2hi3, smaxv2hi3, + flag_mulhi, flag_mulhisi, flag_mulhisi_parts, flag_machi, + flag_machi_acconly, flag_macinithi, flag_macinit1hi, mulv2hi3, + flag_mulv2hi, flag_mulv2hi_parts, flag_macv2hi_parts, + flag_macv2hi_parts_acconly, flag_macinitv2hi_parts, + flag_macinit1v2hi_parts, mulhisi_ll, mulhisi_lh, mulhisi_hl, + mulhisi_hh, ssnegv2hi2, absv2hi2, ssashiftv2hi3, ssashifthi3, + lshiftv2hi3, lshifthi3): Use '%!' to terminate all dsp32/load/store + variants instead of ';'. + (ror_one, rol_one): Likewise. Make them dsp32 insns. + (ashlsi3_insn, ashrsi3, lshrsi3): Add dsp32 variants. + (align8, align16, align24): Now named patterns; also using '%!'. + (mnop): New insn. + +2006-12-05 Kazu Hirata + + * config/i386/darwin.h, config/spu/spu.c, tree-ssa-live.c, + tree-vect-generic.c, tree-vect-transform.c: Fix comment typos. + +2006-12-04 Trevor Smigiel + + * config/spu/spu-protos.c (spu_split_address): Add. + * config/spu/spu.c (spu_split_address): Add. + (print_operand): Handle HIGH. + (spu_legitimate_address): Don't test for aligned CONST. + (spu_expand_mov): Don't split addresses here. + * config/spu/constraints.md (A): Don't test legitimate_const. + * config/spu/spu.md: Add split of movsi patterns for PIC mode. + (ceq_di): Use correct predicates. + +2006-12-04 Eric Christopher + + * config/darwin.h: Update copyright notice. + * config/i386/darwin.h: Ditto. + +2006-12-04 Jan Hubicka + + * builtins.c (fold_builtin_memory_op): Check that expr_size match. + * explow.c (expr_size, int_expr_size): Assert that size is non_NULL. + +2006-12-04 Daniel Berlin + + * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Call + set_used_smts. + * tree-ssa-structalias.c (set_used_smts): Export. + (find_what_p_points_to): Don't call set_used_smts here. + * tree-ssa-structalias.h (set_used_smts): Add prototype. + +2006-12-04 Daniel Berlin + + * tree-ssa-alias.c (compute_may_aliases): + Compute flow sensitive before flow insensitive. + (compute_flow_sensitive_aliasing): Don't try to add + a symbol memory tag to itself. + + * alias.h (alias_set_subset_of): New prototype. + + * alias.c (alias_set_subset_of): New function. + + * tree-ssa-structalias.c: Update comments. + (struct variable_info): Add finished_solution. + (new_varinfo): Set finished solution to NULL. + (var_escaped_vars): Remove. + (escaped_vars_tree): Remove. + (escaped_vars_id): Remove. + (nonlocal_vars_id): Remove. + (constraint_expr_type): Add INCLUDES. + (graph_size): Removed. + (dump_constraint): Support INCLUDES. + (build_constraint_graph): Ditto. + (collapse_nodes): Add merge_solutions argument. + Don't merge attributes. + (process_unification_queue): Just use collapse_nodes. + (perform_var_substitution): Update call to collapse_nodes. + (get_constraint_exp_from_ssa_var): Use INCLUDES. + (process_constraint): Fix non-field sensitive handling + Handle includes. + (get_constraint_for): Use INCLUDES. + (make_constraint_from_anything): Renamed from + make_constraint_from_escaped. + (make_constraint_to_escaped): Removed. + (find_global_initializers): Removed. + (create_variable_info_for): Do not make constraints to escaped + vars anymore. + (dump_solution_for_var): Don't print out the equivalent points-to + sets, just use the name of the variable it shares it with. + (intra_create_variable_infos): Use INCLUDES. + Change nonlocal variable sets to anything sets. + (init_base_vars): Remove escaped_vars and nonlocal_var + initialization. + (find_escape_constraints): Removed. + (delete_points_to_sets): Remove dead code. + (used_smt_calculated): New variable. + (set_used_smts): New function. + (merge_smts_into): New function. + (find_what_p_points_to): Modify to use SMTs. + (create_nonlocal_var): Remove. + + * tree-ssa-operands.c (access_can_touch_variable): Remove + reference to nonlocal_all. + + * tree-ssa.c (verify_name_tags): Remove. + +2006-12-04 Carlos O'Donell + + * config/arm/unwind-arm.c: Adjust __cxa_type_match declaration. + (__gnu_unwind_pr_common): Pass is_reference to __cxa_type_match. + +2006-12-04 Andrew MacLeod + + * tree-outof-ssa.c (coalesce_ssa_name): Use calculate_live_ranges. + * tree-ssa-live.c (new_tree_live_info, delete_tree_live_info): Update. + (add_livein_if_notdef): Delete. + (loe_visit_block): New. Propogate live on entry info for a block into + each predecessor. If it changes, make sure it is visited again. + (live_worklist): Visit every block and update the live on entry info + for preds. Iterate over any that changed. + (set_var_live_on_entry): Populate the live on entry blocks with bits + based on the immediate uses of a var. + (calculate_live_on_entry): Remove. + (calculate_live_on_exit): Calculate live on exit based on the newly + oriented live on entry bits. + (calculate_live_ranges): Build live on entry and exit vectors. + (dump_live_info): Use new orientation of live on entry bitmaps. + (verify_live_on_entry): New. Split out verification code from old + calculate_live_on_entry routine. + * tree-ssa-live.h (struct tree_live_info_d): Add Working stack. + (live_entry_blocks): Rename to live_on_entry and return bitmap for a + basic_block instead of for a partition. + (live_merge_and_clear): Add asserts. + (make_live_on_entry): Set partition bit in basic block vector. + +2006-12-04 Jakub Jelinek + + PR libgomp/29947 + * omp-low.c (expand_omp_for_static_nochunk, + expand_omp_for_static_chunk): Do all arithmetics in signed rather than + unsigned type. + + PR middle-end/29965 + * omp-low.c (determine_parallel_type): Don't try to optimize combined + parallels if region->exit or region->inner->exit is NULL. + (expand_omp_parallel): Handle NULL region->exit even if cfg is already + built. + (expand_omp_for_generic): Handle NULL region->cond and region->exit. + (expand_omp_for): Use expand_omp_for_generic if either region->cond + or region->exit is NULL. + (expand_omp_sections): Handle NULL region->cond or region->exit. + (expand_omp_synch): + +2006-12-04 Eric Botcazou + + * config/sparc/sp64-elf.h (JUMP_TABLES_IN_TEXT_SECTION): Delete. + * config/sparc/sysv4.h (JUMP_TABLES_IN_TEXT_SECTION): Likewise. + +2006-12-04 Eric Botcazou + + * tree.c (walk_type_fields): Do not handle TYPE_MIN_VALUE and + TYPE_MAX_VALUE for scalar types here but... + (walk_tree): ...there instead. Return NULL_TREE if the TYPE_DECL + is attached an error mark, and the return value of the callback + if it is not NULL_TREE. + +2006-12-04 Ben Elliston + + * config/spu/spu.md (_mulv4si3): Remove unused local variables. + +2006-12-03 Eric Christopher + + PR target/24598 + * config/t-slibgcc-darwin: Pass -install_name. + * config/darwin.h (LINK_COMMAND_SPEC): Remove use of + libtool. Only pass through options that the linker recognizes. + (LINK_SPEC): Update comment. Translate options. + (STARTFILE_SPEC): Add dylib1.o for shared libraries. + * config/darwin9.h (LINK_COMMAND_SPEC): Ditto above. + +2006-12-03 Dorit Nuzman + + * config/spu/spu.md (smaxv4sf3, sminv4sf3): New. + +2006-12-03 Uros Bizjak + + PR target/30041 + * config/i386/sse.md ("*sse3_movddup"): Use operands[0] and + operands[1] in insn constraint. Correct type attribute to sselog1. + +2006-12-02 H.J. Lu + + PR target/30040 + * config/i386/driver-i386.c: Include "coretypes.h" and "tm.h". + (bit_SSSE3): New. + (host_detect_local_cpu): Check -mtune= vs. -march=. Rewrite + processor detection. + + * config/i386/i386.h (CC1_CPU_SPEC): Add -mtune=native for + -march=native if there is no -mtune=*. + + * config/i386/x-i386 (driver-i386.o): Also depend on $(TM_H) + coretypes.h. + +2006-12-02 Kaveh R. Ghazi + + * doc/install.texi: Update recommended MPFR version. Remove + obsolete reference to cumulative patch. + +2006-12-02 Lee Millward + + PR c/27953 + * c-decl.c (store_parm_decls_oldstyle): Robustify. + +2006-11-30 Jan Hubicka + Uros Bizjak + + * config/i386/i386.c (pentium4_cost, nocona_cost): Update + 32bit memcpy/memset decriptors. + (decide_alg): With -minline-all-stringops and sizes that are best + to be copied via libcall still work hard enough to pick non-libcall + strategy. + +2006-12-02 Kazu Hirata + + * doc/extend.texi, doc/invoke.texi, doc/md.texi: Fix typos. + + * builtins.c, cfgloop.h, cgraph.h, config/arm/arm.c, + config/i386/i386.c, config/i386/i386.h, config/mips/mips.h, + config/rs6000/cell.md, config/rs6000/rs6000.c, config/sh/sh.c, + config/sh/sh4-300.md, config/spu/spu-builtins.def, + config/spu/spu-c.c, config/spu/spu-modes.def, + config/spu/spu.c, config/spu/spu.md, + config/spu/spu_internals.h, config/spu/vmx2spu.h, + fold-const.c, fwprop.c, predict.c, tree-data-ref.h, + tree-flow.h, tree-ssa-loop-manip.c, tree-ssa-loop-niter.c, + tree-ssa-pre.c, tree-vect-analyze.c, tree-vect-transform.c, + tree-vectorizer.c, tree-vrp.c: Fix comment typos. Follow + spelling conventions. + + * config/i386/i386.c: Fix a comment typo. + +2006-12-01 Trevor Smigiel + + * config/spu/spu.c (spu_immediate): Remove trailing comma. + (reloc_diagnostic): Call warning when -mwarn-reloc is specified. + * config/spu/spu.md: (zero_extendhisi2): Expand instead of split for + better optimization. + (floatv4siv4sf2): New. + (fix_truncv4sfv4si2): New. + (floatunsv4siv4sf2): New. + (fixuns_truncv4sfv4si2): New. + (addv16qi3): New. + (subv16qi3): New. + (negv16qi2): New. + (mulv8hi3): New. + (mulsi3): Remove. + (mul3): New. + (_mulv4si3): New. + (cmp): Don't accept constant arguments for DI, TI and SF. + * config/spu/spu_internals.h: Handle overloaded intrinsics in C++ with + spu_resolve_overloaded_builtin instead of static inline functions. + +2006-12-01 Eric Botcazou + + * fold-const.c (fold_binary) : Use the precision of the + type instead of the size of its mode to compute the highest and + lowest possible values. Still check the size of the mode before + flipping the signedness of the comparison. + +2006-12-01 Trevor Smigiel + + * config/spu/predicates.md (spu_mov_operand): Add. + * config/spu/spu.c (spu_expand_extv): Remove unused code. + (print_operand_address, print_operand): Handle addresses containing AND. + (spu_split_load, spu_split_store): Use updated movti pattern. + * config/spu/spu.md: (_mov, _movdi, _movti): Handle loads and + stores in mov patterns for correct operation of reload. + (lq, lq_, stq, stq_): Remove. + +2006-12-01 Volker Reichelt + + PR c++/30021 + * c-common.c (check_main_parameter_types): Check for error_mark_node. + +2006-12-01 Andrew MacLeod + + * common.opt (ftree-combine-temps): Remove. + * tree-outof-ssa.c (SSANORM_COMBINE_TEMPS): Remove. + (coalesce_ssa_name): Don't check for combine-temps. + (coalesce_vars): Remove. + (check_replaceable): Use num_imm_uses. + (remove_ssa_form, insert_backedge_copies, rewrite_out_of_ssa): Don't + check for combine-temps. + (rewrite_out_of_ssa): Never create a ref_count in the var_map. + * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Change parms + to register_ssa_partition calls. + * tree-ssa-live.c (register_ssa_partition): Remove prototype. + (init_var_map, delete_var_map): remove refernces to ref_count. + (create_ssa_var_map): Never calculate a ref count. + (type_var_init): Remove. + * tree-ssa-live.h (typedef struct _var_map): Remove ref_count. + (SSA_VAR_MAP_REF_COUNT): Delete. + (create_ssa_var_map): Change Prototype to have no parameters. + (version_ref_count): Delete. + (register_ssa_partition): Remove 'is_use' paramater and don't set the + ref_count vector. + (type_var_num, type_var, type_var_first_partition, + type_var_next_partition, type_var_dump, type_var_delete, + type_var_remove_partition, type_var_find, type_var_compact, + type_var_decompact): Remove. + +2006-12-01 Bernd Schmidt + + * config/bfin/bfin.md (pushsi_insn, popsi_insn): Set correct addrtype + attribute. + +2006-12-01 Richard Guenther + + PR c++/29433 + * dwarf2out.c (struct pubname_struct): Make name const. + (add_pubtype): Do not xstrdup identifiers. + +2006-12-01 Bernd Schmidt + + * config/bfin/bfin.c (bfin_valid_add): Fix the logic that ensures + multiword accesses are in range. + +2006-12-01 Zdenek Dvorak + + PR tree-optimization/29921 + * tree-ssa-ccp.c (canonicalize_float_value): New function. + (set_lattice_value): Use canonicalize_float_value. + +2006-11-30 Andrew Pinski + + * config/spu/spu.c (spu_builtin_range): Move from spu-c.c + (TARGET_RESOLVE_OVERLOADED_BUILTIN): Delete. + (spu_cpu_cpp_builtins): Remove. + (spu_override_options): Don't set warn_main. + (spu_force_reg): Move from spu-c.c. + (spu_check_builtin_parm): Likewise. + (expand_builtin_args): Likewise. + (spu_expand_builtin_1): Likewise. + (spu_expand_builtin): Likewise. + * config/spu/spu.h (REGISTER_TARGET_PRAGMAS): Define, set + warn_main and targetm.resolve_overloaded_builtin. + * config/spu/spu-c.c (spu_builtin_range): Remove. + (spu_check_builtin_parm): Remove. + (expand_builtin_args): Remove. + (spu_expand_builtin_1): Remove. + (spu_expand_builtin): Remove. + (spu_cpu_cpp_builtins): Moved from spu.c + (spu_force_reg): Remove. + +2006-12-01 Joseph Myers + David Edelsohn + + PR target/24036 + * doc/tm.texi (HARD_REGNO_NREGS_HAS_PADDING, + HARD_REGNO_NREGS_WITH_PADDING): Document new target macros. + * defaults.h (HARD_REGNO_NREGS_HAS_PADDING, + HARD_REGNO_NREGS_WITH_PADDING): Define. + * config/i386/i386.h (HARD_REGNO_NREGS_HAS_PADDING, + HARD_REGNO_NREGS_WITH_PADDING): Define. + * rtlanal.c (subreg_regno_offset, subreg_offset_representable_p): + Use new macros to detect modes with holes; do not look at integer + units. + (subreg_offset_representable_p): Check for and disallow cases + where the modes use different numbers of bits from registers. + * config/rs6000/rs6000.c (rs6000_emit_move): Handle TFmode + constant for soft-float. + (rs6000_hard_regno_nregs): Use UNITS_PER_FP_WORD for e500 GPRs + containing doubles. + (rs6000_split_multireg_move): Use DFmode reg_mode for TFmode moves + in E500 double case. + * config/rs6000/rs6000.md (movtf): Allow soft-float. + (movtf_softfloat): New. + +2006-11-30 Richard Sandiford + + * simplify-rtx.c (simplify_rtx): Use simplify_subreg rather than + simplify_gen_subreg. + +2006-11-30 Andrew Macleod + + * tree-ssa-live.c (create_coalesce_list): Create a hash table. + (COALESCE_HASH_FN): New. Define hash function. + (partition_pair_map_hash): New. Hash value for a partition pair. + (partition_pair_map_eq): New. Equality for hash pairs. + (create_coalesce_list): Create hash table. + (delete_coalesce_list): Free hash table. + (find_partition_pair): Find/create pairs in hash table. + (compare_pairs): Sort pairs in ascending order now. + (num_coalesce_pairs): New. Number of pairs in hash table. + (struct partition_pair_iterator): Iterator struct for pair table. + (first_partition_pair): Iterator function for first pair. + (end_partition_pair_p): Iterator function for end of iteration. + (next_partition_pair): Iterator function for next pair. + (FOR_EACH_PARTITION_PAIR): Macro for iterating over pairs. + (sort_coalesce_list): Sort pairs from hash table into an array. + (pop_best_coalesce): Take pairs from the array. + (dump_coalesce_list): Update to use hash table or sorted array. + * tree-ssa-live.h (struct partition_pair_d): Remove next field. + (struct coalesce_list_d): Add hash table related fields. + +2006-11-30 Jan Hubicka + + PR middle-end/30028 + * builtins.c (fold_builtin_memory_op): Fix typo in the check for + memmove/bcopy->memcpy conversion. + +2006-11-30 Carlos O'Donell + + * doc/tm.texi (MAX_OFILE_ALIGNMENT): Document default. + * config/elfos.h [!MAX_OFILE_ALIGNMENT] (MAX_OFILE_ALIGNMENT): + Default is the largest alignment supported for 32-bit ELF and + representable on a 32-bit host. + +2006-11-30 Janis Johnson + + * config/dfp-bit.c (DFP_TO_INT): Use wider precision. + +2006-11-30 Jan Hubicka + + * tree-ssa-operands.h (struct ssa_operands): New. + * tree-flow-inline.h (gimple_ssa_operands): New function. + * tree-flow.h: (struct gimple_df): Add ssa_operands. + * Makefile.in: Remove gt-tree-ssa-operands.h + * tree-ssa-operands.c: Do not include gt-tree-ssa-operands.h + (free_defs, free_uses, free_vuses, free_maydefs, free_mustdefs, + operand_memory, operand_memory_index, ops_active): Remove statics. + (ALLOC_OPTYPE): Update. + (operand_build_sort_virtual): Update. + (ssa_operands_active): Update. + (init_ssa_operands): Update. + (fini_ssa_operands): Update. + (ssa_operand_alloc): Update. + (INITIALIZE_USE): Update. + (finalize_ssa_use_ops): Update. + (finalize_ssa_v_may_def_ops): Update. + (finalize_ssa_vuse_ops): Update. + (finalize_ssa_v_must_def_ops): Update. + +2006-11-30 Richard Guenther + + * tree-vectorizer.h (vectorizable_function): Export. + * tree-vect-transform.c (vectorizable_function): Likewise. + * tree-vect-patterns.c (vect_recog_pow_pattern): Set + type_in to scalar type in recognition of squaring. + Make sure the target can vectorize sqrt in recognition + of sqrt, set type_in to vector type in this case. + +2006-11-30 Uros Bizjak + + * config/i386/i386.md (R10_REG): New constant. + * config/i386/i386.c (pro_epilogue_adjust_stack): Use R11_REG. + (ix86_emit_restore_regs_using_mov): Ditto. + (ix86_expand_call): Ditto. + (x86_output_mi_thunk): Ditto. Also use R10_REG. + +2006-11-30 Steven Bosscher + + * cselib.c (cselib_init): Use special MEM rtx form for callmem. + * alias.c (canon_true_dependence): Update comment. + +2006-11-30 Steven Bosscher + + * cgraphunit.c (cgraph_finalize_compilation_unit): Add a newline + at the end of a diagnostics message. + + * alloc-pool.c (pool_free): Postpone clearing the pool entry + until after asserting that it was allocated in the right pool. + + * cfgrtl.c (print_rtl_with_bb): Print predecessor and + successor edge information as well. Make output of live regs + on exit consistent with live regs on entry. + +2006-11-30 Uros Bizjak + + PR target/29852 + * config/i386/i386.md (*truncxfsf2_mixed, *truncxfdf2_mixed): Enable + insn patterns for TARGET_80387. + (*truncxfsf2_i387, *truncxfdf2_i387): Remove. + (*truncxfsf2_i387_1): Rename to *truncxfsf2_i387. + (*truncxfdf2_i387_1): Rename to *truncxfdf2_i387. + (fmod3, remainder3): Enable expaders for SSE math. + Generate truncxf2 insn patterns for strict SSE math. + +2006-11-30 Uros Bizjak + + * config/i386/i386.md (movsf_1): Enable pattern for standard + 80387 constants before reload when optimizing for size. + (*movdf_nointeger, *movdf_integer): Ditto. + (*movxf_nointeger, *movxf_integer): Disable patterns for standard + 80387 constants before reload when not optimizing for size. + + (*fop_xf_4_i387, *fop_xf_5_i387, *fop_xf_6_i387): Avoid float + extension of XFmode input operands. + +2006-11-29 Andrew Pinski + + * config/spu/crt0.c (__dso_handle): Define. + +2006-11-30 Kaz Kojima + + * emit-rtl.c (verify_rtl_sharing): Handle SEQUENCE specially + when clearing the used flags. + +2006-11-29 Andrew Pinski + + * config/spu/spu.md (extend_compare): Fix whitespace formatting. + +2006-11-29 Andrew Pinski + + PR target/29945 + * config/spu/spu.md (extend_compare): New pattern. + (extend_compare): Change to expand and use the above pattern. + +2006-11-29 Janis Johnson + + * config/dfp-bit.c (DFP_TO_INT): Fix rounding mode. + + * config/dfp-bit.h (CONTEXT_ROUND): Delete. + (DFP_INIT_ROUNDMODE): Define. + * config/dfp-bit.c: Replace CONTEXT_ROUND with DFP_INIT_ROUNDMODE. + * mklibgcc.in: Fix dependencies for dfp-bit.c. + +2006-11-29 Tehila Meyzels + + * haifa-sched.c: Remove define LINE_NOTE(INSN). Remove line_note_head. + Update documentation. + (associate_line_notes_with_blocks): Kill. + (extend_bb): Remove basic block argument, put void instead. + Remove line number handling for each bb. + (save_line_notes): Kill. + (restore_line_notes): Kill. + (sched_init): Remove line_note_head initialization. + Change extend_bb call. + (sched_finish): Remove free of line_note_head. + (add_block): Change extend_bb call. + * sched-ebb.c (schedule_ebb): Remove save_line_notes, + rm_line_notes and restore_line_notes calls. + (schedule_ebbs): Remove rm_redundant_line_notes. + * sched-int.h (struct haifa_insn_data): Remove line_note. + (save_line_notes): Remove declaration. + (restore_line_notes): Remove declaration. + * modulo-sched.c (loop_canon_p): Update debug info printing + by using insn locators instead of line note. + (sms_schedule): Update debug info printing, by using insn + locators instead of line note. + * sched-rgn.c (debug_dependencies): Remove handling of case + n>0 (line number), since it's a dead code. + (schedule_region): Remove save_line_notes and + restore_line_notes calls. + +2006-11-29 Joseph Myers + + * config/rs6000/predicates.md (gpc_reg_operand): Check + invalid_e500_subreg. + * config/rs6000/rs6000.c (invalid_e500_subreg): Don't allow any + SImode subregs of SPE vectors. + * config/rs6000/rs6000.md (insv): Fail for invalid E500 subregs. + * jump.c (true_regnum): Require subregs to satisfy + subreg_offset_representable_p. + +2006-11-29 Daniel Berlin + Steven Bosscher + + * Makefile.in (tree-ssanames.o): Remove gt-tree-ssanames.h, + since it no longer exists. + +2006-11-29 Duncan Sands + + PR tree-optimization/23744 + * tree-vrp.c (vrp_meet): do not require ranges to intersect. + +2006-11-29 Duncan Sands + + PR tree-optimization/23744 + * testsuite/gcc.dg/tree-ssa/pr23744.c: new test. + +2006-11-29 Duncan Sands + + PR tree-optimization/23744 + * testsuite/gcc.dg/tree-ssa/update-threading.c: xfail. + +2006-11-29 Jie Zhang + + * doc/tm.texi (NO_PROFILE_COUNTERS): Document more accurately. + +2006-11-29 J"orn Rennecke + + * sh.opt (minline-ic_invalidate): New option. + (musermode): Adjust comment. + * sh.c (sh_initialize_trampoline): Emit library call unless + is set; if it is set, don't emit library call if we can use icbi + instead. + * sh.md (ic_invalidate_line, ic_invalidate_line_sh4a): Also use + icbi for TARGET_SH4_300. + * t-sh (LIB1ASMFUNCS_CACHE): Set. + * doc/invoke.texi: Document -minline-ic_invalidate; Update + -musermode documentation. + +2006-11-29 Jim Tison + + * gthr-tpf.h (__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION, + __gthread_recursive_mutex_init): Define. + +2006-11-29 Joseph Myers + + * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): If + STRICT_ALIGNMENT and the type is more aligned than the saved + registers, copy via a temporary. + +2006-11-28 Andrew Pinski + + PR tree-opt/29984 + * tree-ssa-reassoc.c (eliminate_duplicate_pair): Handle MAX_EXPR + and MIN_EXRP. + +2006-11-28 Bob Wilson + + * config/xtensa/lib1funcs.asm (__umulsidi3): Restore a12-a15 on exit. + +2006-11-28 Jan Hubicka + + Privatize SSA variables into gimple_df. + * tree-flow-inline.h + (gimple_in_ssa_p, gimple_aliases_computed_p, gimple_addressable_vars, + gimple_call_clobbered_vars, gimple_referenced_vars, gimple_global_var, + gimple_nonlocal_all): New accessors. + (first_referenced_var): Update. + (mark_stmt_modified): Update. + (is_call_clobbered): Update. + (mark_call_clobbered): Update. + (clear_call_clobbered): Update. + (mark_non_addressable): Update. + * tree-vrp.c (get_value_range): Update. + * tree-into-ssa.c (in_ssa_p): Kill. + (get_default_def_for): Update. + (rewrite_into_ssa): Update. + * tree-complex.c (init_parameter_lattice_values): Update. + (update_complex_assignment): Update. + (update_parameter_components): Update. + (expand_complex_libcall): Update. + (expand_complex_operations_1): Update. + * tree-tailcall.c (arg_needs_copy_p): Update. + (add_virtual_phis): Update. + (tree_optimize_tail_calls_1): Update. + * tree-ssa-dse.c (memory_ssa_name_same): Update. + * tree-ssa-copyrename.c + (copy_rename_partition_coalesce): Update. + * tree-ssa-math-opts.c (execute_cse_reciprocals): Update. + * tree-ssa-propagate.c (set_rhs): Update. + * tree-ssa-alias.c (aliases_computed_p, call_clobbered_vars, + addressable_vars, global_var):Kill. + (set_initial_properties): Update. + (init_alias_info): Update. + (finalize_ref_all_pointers): Update. + (setup_pointers_and_addressables): Update. + (maybe_create_global_var): Update. + (create_global_var): Update. + (dump_points_to_info): Update. + * function.h (struct gimple_df): Forward declare. + (struct function): Add GIMPLE_DF field. + * gimplify.c (force_gimple_operand): Update. + * tree-dfa.c (referenced_vars, default_defs): KIll. + (make_rename_temp): Update. + (dump_variable): Update. + (referenced_var_lookup): Update. + (referenced_var_check_and_insert): Update. + (default_def): Rename to ... + (gimple_default_def): ... this one; accept cfun argument. + (set_default_def): Update. + * tree-cfgcleanup.c (modified_noreturn_calls): Kill. + (cleanup_control_flow): Update. + * tree-ssa-pre.c (compute_avail): Update + * tree-ssa-live.c (calculate_live_on_entry): Update. + * tree-ssa.c (verify_use): Update. + (verify_call_clobbering): Update. + (verify_call_clobbering): Update. + (init_tree_ssa): Update. + (delete_tree_ssa): Update. + * tree-outof-ssa.c (coalesce_ssa_name): Update. + (rewrite_out_of_ssa): Update. + * tree-flow.h (gimple_df): New structure collecting dataflow variables. + (FREE_SSANAMES, SSANAMES, MODIFIED_NORETURN_CALLS, DEFAULT_DEFS): New + private accessors. + (in_ssa_p, modified_noreturn_calls, referenced_vars, default_defs, + ssa_names, global_var, nonlocal_all, call_clobbered_vars, + addressable_vars, aliases_computed_p): Kill. + (default_def): Rename to... + (gimple_default_def): ... this one. + (defaule_def_fn): Kill. + (num_referenced_vars, ssa_names, num_ssa_names): Update. + * tree-ssa-structalias.c (nonlocal_all): Kill. + (get_constraint_exp_from_ssa_var): Update. + (create_nonlocal_var): Update. + (get_constraint_for): Update. + (update_alias_info): Update. + (find_global_initializers): Update. + (intra_create_variable_infos): Update. + (intra_create_variable_infos): + (find_what_p_points_to): Update. + (init_alias_heapvars): Update. + * tree-cfg.c (remove_bb): Update. + (gimplify_val): Update. + * tree-ssa-reassoc.c (get_rank): Update. + (init_reassoc): Update. + * tree-ssanames.c: Do not include gt-tree-ssanames.h + (ssa_names, free_ssanames): Kill. + (init_ssanames): Update. + (make_ssa_name): Update. + (release_ssa_name): Update. + (release_defs): Update. + (replace_ssa_name_symbol): Update. + * tree-ssa-operands.c (access_can_touch_variable): Update. + (add_virtual_operand): Update. + (add_call_clobber_ops): Update. + (add_call_read_ops): Update. + (get_call_expr_operands): Update. + (get_asm_expr_operands): Update. + +2006-11-28 Jan Hubicka + + * builtins.c: Include tree-flow.h. + (fold_builtin_memory_op): Be more aggressive on converting memcpy to + assignment; convert memmove to memcpy for sizes greater than 1 where + alignment of operands prohibit the partial overlap. + +2006-11-28 Jan Hubicka + + * invoke.texi (large-stack-frame, large-stack-frame-growth): New params. + * cgraph.c (dump_cgraph_node): Dump stack usage. + * cgraph.h (cgraph_local_info): Add estimated_self_stack_size. + (cgraph_global_info): Add estimated_stack_size and stack_frame_offset. + * cgraphunit.c (cgraph_analyze_function): Analyze stack sizes. + * ipa-inline.c (cgraph_clone_inlined_nodes): Propagate stack usage. + (cgraph_check_inline_limits): Limit stack growth. + * cfgexpand.c: Include tree-inline.h. + (account_stack_vars): New function. + (expand_one_var): New param to just account the stack; return estimated + size. + (expand_used_vars_for_block): Update call of expand_one_var. + (account_used_vars_for_block): New function. + (estimated_stack_frame_size): Likewise. + (init_vars_expansion, fini_vars_expansion): Break out from.. + (expand_used_vars): ... here. + * tree-inline.h (estimated_stack_frame_size): Declare. + * params.def (PARAM_LARGE_STACK_FRAME, PARAM_STACK_FRAME_GROWTH): New. + +2006-11-28 Richard Guenther + + * ggc-page.c (ggc_print_statistics): Use %ul and a cast to + unsigned long for printing OBJECT_SIZE. + +2006-11-27 Steven Bosscher + + * alias.c (init_alias_analysis): Remove simplification loop + after propagating pointers. + +2006-11-27 Uros Bizjak + + * config/i386/i386.c (x86_ext_80387_constants): Add m_K8, m_CORE2 + and m_GENERIC64. + +2006-11-27 Bob Wilson + + * config/xtensa/xtensa.h (XCHAL_HAVE_MUL32_HIGH): Provide default. + +2006-11-27 Roger Sayle + Manuel Lopez-Ibanez + + * c-common.c (constant_fits_type_p): Delete. + (unsigned_conversion_warning): Delete. + (conversion_warning): Integrate Wconversion warning from + unsigned_conversion_warning. + (convert_and_check): Integrate Woverflow warning from + unsigned_conversion_warning. Reorganize and simplify to avoid + dependence upon the middle-end setting TREE_OVERFLOW on integral + conversions, by using int_fits_type_p directly. + +2006-11-27 Tobias Burnus + + * doc/invoke.texi: Fixed typo. + +2006-11-27 Michael Matz + Andreas Krebbel + + PR target/29319 + * config/s390/predicates.md (larl_operand): Check addend of larl + operand to be in range of -/+2GB. + * config/s390/s390.c (legitimize_pic_address): Likewise. + Changed type of variable even to HOST_WIDE_INT. + +2006-11-27 Jan Hubicka + + * expr.c (emit_block_move_via_libcall): Export. + (clear_storage_via_libcall): Rename to ... + (set_storage_via_libcall): ... this one; handle arbitrary value to set. + (clear_storage): Update to set_storage_via_libcall. + * expr.h (emit_block_move_via_libcall): Declare + * config/i386/i386.h (stringop_alg): New enum. + (MAX_STRINGOP_ALGS): New constant. + (stringop_algs): New struct. + (processor_costs): Add memcpy/memset descriptors. + (TARGET_REP_MOVEL_OPTIMAL): Remove. + * config/i386/i386.md (movsi_insv_1_rex64): New pattern. + (strmovsi, strmovdi, strsetsi, strsetdi): Update; accept all operands + for memset. + * config/i386/i386.opt (minline-stringops-dynamically, + mstringop-strategy): New + parameters. + * config/i386/i386-prostos.h (ix86_expand_movmem): Update prototype. + (ix86_expand-clrmem): Rename to ... + (ix86_expand_setmem): ... this one; update prototype. + * config/i386/i386.c (DUMMY_STRINGOP_ALGS): New constant. + (size_cost, i386_cost, i486_cost, pentium_cost, pentiumpro_cost, + geode_cost, k6_cost, athlon_cost, k8_cost, pentium4_cost, + nocona_cost, core2_cost, generic_cost, generic64_cost, + generic32_cost): Add memcpy/memset descriptors. + (x86_rep_movl_optimal): Remove. + (stringop_alg): New static variable. + (ix86_expand_aligntest): Handle predictions. + (override_options): Add strgop_alg handling. + (predict_jump): New function. + (scale_counter): New function. + (expand_set_or_movmem_via_loop): New function. + (expand_movmem_via_rep_mov): New function. + (expand_setmem_via_rep_stots): New function. + (emit_strmov): New function. + (expand_movmem_epilogue): New function. + (expand_setmem_epilogue_via_loop): New function. + (expand_setmem_epilogue): New function. + (expand_movmem_prologue): New function. + (expand_setmem_prologue): New function. + (decide_alg): New function. + (decide_alignment): New function. + (ix86_exand_movmem): Rewrite. + (promote_duplicated_reg): New function. + (ix86_expand_clrmem): Rename to ... + (ix86_expand_setmem): ... this one. Rewrite. + + * invoke.texi (minline-stringops-dynamically): New command line option. + (mstringop-strategy): Likewise. + +2006-11-27 Jan Hubicka + + * cfgexpand.c (construct_exit_block): Don't disturb end of last BB. + * rtl.texi (NOTE_INSN_FUNCTION_END): Remove. + * final.c (final_scan_insn): Don't scan NOTE_INSN_FUNCTION_END. + * insn-notes.def (FUNCTION_END): Remove. + * jump.c (delete_related_insns): Don't worry about FUNCTION_END. + (redicect_jump_2): Don't accept -1 parameter to remove FUNCTION_END + note. + * ifcvt.c (dead_or_predictable): Update call of redirect_jump_2. + * function.c (expand_function_end): Don't emit NOTE_INSN_FUNCTION_END + * cfglayout.c (duplicate_insn_chain): Don't worry about + NOTE_FUNCTION_END. + +2006-11-27 Richard Guenther + Zdenek Dvorak + + * target.h (struct gcc_target): Add builtin_vectorized_function + target hook. + * target-def.h (TARGET_VECTORIZE): Likewise. + * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): + Document new target hook. + * targhooks.h (default_builtin_vectorized_function): Declare. + * targhooks.c (default_builtin_vectorized_function): Define. + * tree-vectorizer.h (stmt_vec_info_type): Add call_vec_info_type. + (vectorizable_call): Declare. + * tree-vect-analyze.c (vect_analyze_operations): Call + vectorizable_call. + * tree-vect-transform.c (vectorizable_function): New static function. + (build_vectorized_function_call): Likewise. + (vectorizable_call): New function. + (vect_transform_stmt): Handle vectorizable calls. + +2006-11-27 Richard Guenther + + PR middle-end/25620 + * builtins.c (expand_builtin_pow): Optimize non integer valued + constant exponents using sqrt or cbrt if possible. Always fall back + to expanding via optabs. + +2006-11-27 Ira Rosen + + PR tree-optimization/22372 + * tree-vect-transform.c (vect_create_addr_base_for_vector_ref): Convert + the type of the base address. + (vect_create_data_ref_ptr): Add an argument, type of the data-ref. Use + it in the data-ref pointer creation. + (vect_init_vector): Add an argument, type of the init vector. Use it in + the stmt creation. + (vect_get_vec_def_for_operand): Fix calls to vect_init_vector. + (get_initial_def_for_reduction): Likewise. + (vect_create_epilog_for_reduction): Change type of MODIFY_EXPR to + void_type_node. + (vectorizable_assignment, vect_permute_store_chain): Likewise. + (vectorizable_store): Fix call to vect_create_data_ref_ptr. Use the + correct type in stmt creation. + (vect_setup_realignment): Use the correct type in stmt creation. + (vect_permute_load_chain): Change type of MODIFY_EXPR to + void_type_node. + (vectorizable_load): Fix calls to vect_create_data_ref_ptr. Change type + of MODIFY_EXPR to void_type_node. + (vectorizable_condition): Change type of MODIFY_EXPR to + void_type_node. + (vect_update_ivs_after_vectorizer): Use the correct type in stmt + creation. + +2006-11-27 Uros Bizjak + + Revert: + 2006-05-08 Uros Bizjak + * config/i386/i386.c (ix86_rtx_costs) [FLOAT_EXTEND]: For + standard 80387 constants, raise the cost to prevent + compress_float_constant() to generate load from memory. + + * config/i386/i386.md: Add new splitter pattern to split + float_extended load of constant from constant pool into + pure constant load. + +2006-11-26 Kaveh R. Ghazi + + * doc/install.texi: Move GMP/MPFR configure options from Fortran + section to general section. Remove documentation for + --with-mpfr-dir and --with-gmp-dir, add documentation for + --with-mpfr-include, --with-mpfr-lib, --with-gmp-include and + --with-gmp-lib. + + * builtins.c (fold_builtin_fmin_fmax): Handle NaN arguments. + +2006-11-26 Razya Ladklesky + + * testsuite/gcc.dg/ipa/ipa-6.c: New. + +2006-11-26 Razya Ladklesky + + PR tree-optimization/29122 + * tree-inline.c (tree_function_versioning): Update DECL_ASSEMBLER_NAME + for the new version. Assign NULL to DECL_RTL of the new version. + +2006-11-25 Uros Bizjak + + * reg-stack.c (get_true_reg): Fix UNSPEC_TRUNC_NOOP handling. + +2006-11-25 Steven Bosscher + + * cse.c (cse_altered): Remove. + (record_jump_equiv): Make true/false argument a bool instead + of an int. + (cse_insn): Don't set cse_altered. Use delete_insn_and_edges + where appropriate. Emit a new jump before the existing one + instead of after so that delete_insn_and_edges removes the + dead edges properly. Check any_condjump_p before calling + record_jump_equiv. + (cse_basic_block): Check any_condjump_p before calling + record_jump_equiv. + (cse_main): Don't set/check cse_altered. Remove USE_C_ALLOCA. + +2006-11-25 Brooks Moses + + * c.opt: Remove -ffixed-form, -ffixed-line-length-none, and + -ffixed-line-length-* options. + +2006-11-25 Uros Bizjak + + * config/i386/i386.md (fpremxf4): Rename to fpremxf4_i387. + (fprem1xf4): Rename to fprem1xf4_i387. + + (fmodsf3, fmoddf3): Macroize patterns using X87MODEF12 mode macro. + Rename patterns to fmod3. Use general_operand operand + constraint for operands 1 and 2. Use SSE_FLOAT_MODE_P to disable + patterns for SSE math. + (remaindersf3, remainderdf3): Ditto. + +2006-11-25 Joseph Myers + + * function.c (instantiate_virtual_regs_in_insn): Call force_reg + inside start_sequence / end_sequence pair. + +2006-11-25 Steven Bosscher + + * jump.c (mark_all_labels): Work in cfglayout mode. + * cfgcleanup.c (cleanup_cfg): Do not call delete_dead_jumptables + when in cfglayout mode, because there are no dead jumptables + visible. + * cfgrtl.c (commit_one_edge_insertion): Don't set bb->aux when + in cfglayout mode. + (commit_edge_insertions): Do not allow insertion of instructions + with control flow insns when in cfglayout mode. + +2006-11-25 Zdenek Dvorak + + * tree-vrp.c (execute_vrp): Do not pass loops structure through + arguments. + * loop-unswitch.c (unswitch_loops, unswitch_single_loop, + unswitch_loop): Ditto. + * tree-loop-linear.c (linear_transform_loops): Ditto. + * tree-ssa-loop-im.c (determine_lsm, tree_ssa_lim_initialize, + tree_ssa_lim): Ditto. + * tree-ssa-loop-niter.c (estimate_numbers_of_iterations, + free_numbers_of_iterations_estimates): Ditto. + * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops, + tree_unswitch_single_loop, tree_unswitch_loop): Ditto. + * cfgloopmanip.c (fix_bb_placement, fix_bb_placements, + remove_path, add_loop, loopify, unloop, fix_loop_placements, + place_new_loop, duplicate_loop, duplicate_subloops, + update_single_exit_for_duplicated_loops, copy_loops_to, + duplicate_loop_to_header_edge, create_preheaders, + force_single_succ_latches, loop_version, fix_loop_structure): + Ditto. + * tree-ssa-loop-manip.c (tree_duplicate_loop_to_header_edge, + tree_unroll_loop): Ditto. + * tree-ssa-loop-ch.c (copy_loop_headers): Ditto. + * tree-scalar-evolution.c (select_loops_exit_conditions, + scev_initialize, scev_analysis): Ditto. + * tree-scalar-evolution.h (scev_initialize): Ditto. + * cfghooks.c (cfg_hook_duplicate_loop_to_header_edge): Ditto. + * cfgloopanal.c (mark_irreducible_loops, mark_loop_exit_edges): Ditto. + * tree-ssa-loop-ivopts.c (tree_ssa_iv_optimize): Ditto. + * modulo-sched.c (sms_schedule): Ditto. + * tree-ssa-dom.c (tree_ssa_dominator_optimize): Ditto. + * loop-init.c (loop_optimizer_init, rtl_move_loop_invariants, + rtl_unswitch, rtl_unroll_and_peel_loops, rtl_doloop): Ditto. + * ifcvt.c (if_convert): Ditto. + * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely, + canonicalize_loop_induction_variables, + canonicalize_induction_variables, + tree_unroll_loops_completely, remove_empty_loops): Ditto. + * tree-ssa-loop.c (tree_ssa_loop_init, tree_ssa_loop_im, + tree_ssa_loop_unswitch, tree_vectorize, tree_linear_transform, + tree_ssa_loop_ivcanon, tree_ssa_empty_loop, tree_ssa_loop_bounds, + tree_complete_unroll, tree_ssa_loop_prefetch, tree_ssa_loop_ivopts, + tree_ssa_loop_done): Ditto. + * predict.c (predict_loops, tree_estimate_probability, estimate_loops, + estimate_bb_frequencies): Ditto. + * tree-vectorizer.c (slpeel_tree_duplicate_loop_to_edge_cfg, + slpeel_tree_peel_loop_to_edge, vectorize_loops): Ditto. + * loop-unroll.c (unroll_and_peel_loops, peel_loops_completely, + decide_unrolling_and_peeling, peel_loop_completely, + unroll_loop_constant_iterations, unroll_loop_runtime_iterations, + peel_loop_simple, unroll_loop_stupid): Ditto. + * loop-doloop.c (doloop_optimize_loops): Ditto. + * tree-cfgcleanup.c (cleanup_tree_cfg_loop): Ditto. + * loop-invariant.c (move_loop_invariants): Ditto. + * tree-ssa-dce.c (tree_ssa_dce_loop): Ditto. + * tree-ssa-loop-prefetch.c (loop_prefetch_arrays, + tree_ssa_prefetch_arrays): Ditto. + * lambda-code.c (gcc_loopnest_to_lambda_loopnest, perfect_nestify): + Ditto. + * tree-vect-transform.c (vect_do_peeling_for_loop_bound, + vect_do_peeling_for_alignment, vect_transform_loop): Ditto. + * cfgloop.c (flow_loops_cfg_dump, flow_loops_dump, + mark_single_exit_loops, cancel_loop, cancel_loop_tree, + verify_loop_structure): Ditto. + * tree-flow.h (vectorize_loops, tree_ssa_lim, tree_ssa_unswitch_loops, + canonicalize_induction_variables, tree_unroll_loops_completely, + tree_ssa_prefetch_arrays, remove_empty_loops, tree_ssa_iv_optimize, + estimate_numbers_of_iterations, free_numbers_of_iterations_estimates, + tree_duplicate_loop_to_header_edge, tree_ssa_loop_version, + tree_unroll_loop, linear_transform_loops): Declaration changed. + * basic-block.h: Remove declaration of struct loops. + * cfghooks.h (struct cfg_hooks): Change type of + cfg_hook_duplicate_loop_to_header_edge. + (cfg_hook_duplicate_loop_to_header_edge): Declaration changed. + * tree-vectorizer.h (slpeel_tree_peel_loop_to_edge, + vect_transform_loop): Declaration changed. + * lambda.h (gcc_loopnest_to_lambda_loopnest): Declaration changed. + * cfgloop.h (flow_loops_dump, fix_loop_structure, + mark_irreducible_loops, mark_single_exit_loops, mark_loop_exit_edges, + cancel_loop_tree, create_preheaders, force_single_succ_latches, + verify_loop_structure, duplicate_loop, duplicate_loop_to_header_edge, + loopify, loop_version, remove_path, unswitch_loops, + unroll_and_peel_loops, doloop_optimize_loops, move_loop_invariants): + Declaration changed. + +2006-11-24 Uros Bizjak + + * config/i386/i386.md (UNSPEC_TRUNC_NOOP): New unspec definition. + (X87MODEF): New mode macro. + (ssemodefsuffix): New mode attribute. + (truncxf2_i387_noop_unspec): New insn pattern. + (sqrt_extendxf2_i387): New insn pattern. + (sqrt2): For non-SSE sqrt, emit sqrt_extendxf2_i387 + insn and truncate result back to original mode using + UNSPEC_TRUNC_NOOP truncation. + (*sqrt2_sse): Implement using SSEMODEF mode macro and + ssemodefsuffix mode attribute. + (*sqrtsf2_mixed, *sqrtsf2_i387, *sqrtdf2_mixed, *sqrtdf2_i387) + (*sqrtextendsfdf2_i387, *sqrtextendsfxf2_i387) + (*sqrtextenddfxf2_i387): Remove insn patterns. + + (fmodsf3, fmoddf3, remaindersf3, remainderdf3): Use noop + truncation patterns. + + * reg-stack.c (get_true_reg): Handle UNSPEC_TRUNC_NOOP. + +2006-11-24 Jakub Jelinek + + PR c/29955 + * c-tree.h (c_maybe_initialize_eh): New prototype. + * c-decl.c (finish_decl): Move EH initialization... + (c_maybe_initialize_eh): ... here. New function. + * c-parser.c (c_parser_omp_construct): Call c_maybe_initialize_eh + if not #pragma omp atomic. + + PR c/29736 + * c-common.c (handle_vector_size_attribute): Disallow VECTOR_TYPE + or UNION_TYPE inner types. + +2006-11-24 Andrew Pinski + + PR tree-opt/29964 + * ipa-pure-const.c (check_tree): If the original tree + is volatile return early and say the function is not pure + nor const. Remove the volatile check for writes. + (analyze_function): Print out the result of the local + analysis pass. + +2006-11-24 Joseph Myers + + * config/rs6000/eabispe.h (TARGET_DEFAULT): Include + MASK_STRICT_ALIGN. + * config/rs6000/linuxspe.h (TARGET_DEFAULT): Likewise. + * config/rs6000/rs6000.c (rs6000_override_options): Use + MASK_STRICT_ALIGN for 8540 and 8548. Add MASK_STRICT_ALIGN to + POWERPC_MASKS. + +2006-11-24 Andreas Krebbel + + * config/s390.c (s390_emit_compare_and_swap): New function. + (s390_expand_cs_hqi, s390_expand_atomic): Call + s390_emit_compare_and_swap. + +2006-11-23 John David Anglin + + * pa.c (return_addr_rtx): Change 0xe0400002 to -532676606. + +2006-11-24 Manuel Lopez-Ibanez + + PR c/2707 + PR c++/26167 + * c-common.c (conversion_warning): New. + (convert_and_check): Call conversion_warning unless there is an + overflow warning. + * doc/invoke.texi (-Wconversion): Update description. + +2006-11-23 Daniel Berlin + + * tree-ssa-alias.c (tree_pointer_compare): New function. + (compact_name_tags): New function. + (group_aliases): Call compact_name_tags. + +2006-11-23 Manuel Lopez-Ibanez + + * real.h (real_isinteger): Declare. + * real.c (real_isinteger): Define. + * builtins.c (integer_valued_real_p): Use it. + +2006-11-23 Manuel Lopez-Ibanez + + PR c/9072 + * c.opt (Wtraditional-conversion): New. + (Wconversion): Update description. + * c-typeck.c (convert_arguments): Warnings for prototypes causing + type conversions different from what would happen in the absence + of prototype are now handled by Wtraditional-conversion. + * doc/invoke.texi (Wtraditional-conversion): New. + (Wconversion): Update description. + * doc/trouble.texi (Wconversion): Replace Wconversion by + Wtraditional-conversion. + +2006-11-23 Andrew Pinski + + * predict.c (tree_estimate_probability): Check to make + sure current_loops is non null before calling flow_loops_dump. + +2006-11-23 Bernd Schmidt + + * var-tracking.c (emit_note_insn_var_location): Revert previous patch. + +2006-11-23 David Ung + + * config/mips/mips.h (ISA_HAS_FP4): Add MIPS32R2 + 64bit fpu + combination. + (ISA_HAS_MXHC1): True if ISA supports mfhc1 and mthc1 opcodes. + (ASM_SPEC): Pass along -mfp32 and -mfp64. + * config/mips/mips.c (mips_split_64bit_move): Use gen_mthc1 to set + high part of FP register when in 64-bit FP register mode. Similarly + use gen_mfhc1 to load high part of FP register. + (override_options): Allow -mgp32 and -mfp64 combination if + ISA_HAS_MXHC1 (currently for O32 only). + (mips_cannot_change_mode_class): If floating-point registers are + bigger than word size. disallow conversion of float register from a + large integer mode to a float mode smaller than the float register + size. + (mips_class_max_nregs): Handle float registers case seperately. + * config/mips/mips.md (define_constants): Add UNSPEC_MFHC1, + UNSPEC_MTHC1. + (movdi_32bit): Use !TARGET_FLOAT64 in condition pattern. + (movdf_hardfloat_32bit): Similarly. + (movdi_gp32_fp64): New DImode pattern for MIPS32R2 which optionally + support a full 64-bit fpu. + (mthc1): New pattern to generate MTHC1 instruction. + (mfhc1): New pattern to generate MFHC1 instruction. + * doc/invoke.texi (MIPS Options): Document the -mgp32 -mfp64 + option for the MIPS32R2 and mention its use under O32 ABI. + +2006-11-23 Bernd Schmidt + + * var-tracking.c (emit_note_insn_var_location): Take care not to + cause verify_flow_info failures. + +2006-11-22 Daniel Berlin + + * tree-ssa-structalias.c: Remove edge weights in favor of just + processing them as complex constraints. + (struct constraint_graph): Remove weighted succs and preds. Rename + nonweighted succs and preds. + (constraint_edge): Removed. + (constraint_edge_t): Ditto. + (constraint_edge_pool): Ditto. + (new_constraint_edge): Ditto. + (constraint_edge_equal): Ditto. + (constraint_edge_less): Ditto. + (constraint_edge_vec_find): Ditto. + (erase_self_graph_edge): Ditto. + (add_graph_edge): Removed. + (get_graph_weights): Ditto. + (allocate_graph_weights): Ditto. + (valid_weighted_graph_edge): Ditto + (bitmap_other_than_zero_bit_set): Ditto. + (int_add_graph_edge): Renamed to add_graph_edge. + (clear_edges_for_node): Remove support for weighted edges. + (merge_graph_nodes): Ditto. + (valid_graph_edge): Ditto. + (build_constraint_graph): Ditto. + (scc_visit): Ditto. + (collapse_nodes): Ditto. + (process_unification_queue): Ditto. + (topo_visit): Ditto. + (do_ds_constraint): Ditto. + (perform_var_subsitution): Ditto. + (solve_graph): Ditto. + (init_alias_vars): Ditto. + (delete_points_to_sets): Ditto. + (do_complex_constraint): Support offsetted copies here. + +2006-11-23 Ulrich Weigand + + * config/spu/spu_intrinsics.h (SPU_RdEventStatMask): Rename to + SPU_RdEventMask. + * config/spu/spu_mfcio.h (spu_read_event_mask): Update. + + * config/spu/spu_mfcio.h (struct mfc_list_element): Change width + of size bitfield. + +2006-11-23 Ben Elliston + + * config/spu/spu-elf.h (LIB_SPEC): Do not link with -lc_p. + +2006-11-23 Zdenek Dvorak + + PR tree-optimization/29921 + * fold-const.c (operand_equal_p): Without HONOR_SIGNED_ZEROS, consider + signed and unsigned zero equal. + +2006-11-22 Peter Bergner + + * config/rs6000/rs6000.c (get_store_dest): New. + (adjacent_mem_locations): Use get_store_dest() to get + the rtl of the store destination. + +2006-11-22 Joseph Myers + + * config/rs6000/spe.md (SPE64): New mode macro. + (mov_sidf_e500_subreg0): Change to mov_si_e500_subreg0. Add + memory load. + (mov_si_e500_subreg0_2): New. + (mov_sidf_e500_subreg4): Change to mov_si_e500_subreg4. Add + memory load. + (mov_si_e500_subreg4_2): New. + * config/rs6000/predicates.md (input_operand): Do not allow + invalid E500 subregs. + (rs6000_nonimmediate_operand): Check for invalid E500 subregs also + if TARGET_SPE. + * config/rs6000/rs6000.c (invalid_e500_subreg): Check for subregs + involving DFmode if TARGET_E500_DOUBLE. Check for subregs + involving vector modes if TARGET_SPE. + +2006-11-22 Kaz Kojima + + Revert + 2006-11-12 Kaz Kojima + * reorg.c (emit_delay_sequence): Copy the delay slot insn. + +2006-11-22 Bernd Schmidt + + * config/bfin/predicates.md (d_register_operand, mem_p_address_operand, + mem_i_address_operand): New predicates. + * config/bfin/bfin.c (bfin_issue_rate): New function. + (TARGET_SCHED_ISSUE_RATE): New macro. + * config/bfin/bfin.md (addrtype): New attribute. + (slot0, slot1, slot2, store, pregs): New cpu_units. + (core): Now a define_reservation. + (alu): Remove some insn types from this reservation. + (dsp32, load32, loadp, loadi, store32, storep, storei, multi): New + insn reservations. + (dummy reservation): Don't trigger for mcld insns. + (absence_sets): Two new absence sets to enforce slot ordering. + (popsi_insn): Set addrtype. + +2006-11-22 Ira Rosen + + * doc/c-tree.texi: Document new tree codes. + * doc/md.texi: Document new optabs. + * tree-pretty-print.c (dump_generic_node): Handle print of new tree + codes. + * optabs.c (optab_for_tree_code, init_optabs): Handle new optabs. + * optabs.h (optab_index): Add new. + (vec_extract_even_optab, vec_extract_odd_optab, + vec_interleave_high_optab, vec_interleave_low_optab): New optabs. + * genopinit.c (vec_extract_even_optab, vec_extract_odd_optab, + vec_interleave_high_optab, vec_interleave_low_optab): Initialize + new optabs. + * expr.c (expand_expr_real_1): Add implementation for new tree codes. + * tree-vectorizer.c (new_stmt_vec_info): Initialize new fields. + * tree-vectorizer.h (stmt_vec_info): Add new fields for interleaving + along with macros for their access. + * tree-data-ref.h (first_location_in_loop, data_reference): Update + comment. + * tree-vect-analyze.c (toplev.h): Include. + (vect_determine_vectorization_factor): Fix indentation. + (vect_insert_into_interleaving_chain, + vect_update_interleaving_chain, vect_equal_offsets): New functions. + (vect_analyze_data_ref_dependence): Add argument for interleaving + check. Check for interleaving if it's true. + (vect_check_dependences): New function. + (vect_analyze_data_ref_dependences): Call vect_check_dependences for + every ddr. Call vect_analyze_data_ref_dependence with new argument. + (vect_update_misalignment_for_peel): Update for interleaving. + (vect_verify_datarefs_alignment): Check only first data-ref for + interleaving. + (vect_enhance_data_refs_alignment): Update for interleaving. Check + only first data-ref for interleaving. + (vect_analyze_data_ref_access): Check interleaving, update + interleaving data. + (vect_analyze_data_refs): Call compute_data_dependences_for_loop + with different parameters. + * tree.def (VEC_EXTRACT_EVEN_EXPR, VEC_EXTRACT_ODD_EXPR, + VEC_INTERLEAVE_HIGH_EXPR, VEC_INTERLEAVE_LOW_EXPR): New tree codes. + * tree-inline.c (estimate_num_insns_1): Add cases for new codes. + * tree-vect-transform.c (vect_create_addr_base_for_vector_ref): + Update step in case of interleaving. + (vect_strided_store_supported, vect_permute_store_chain): New + functions. + (vectorizable_store): Handle strided stores. + (vect_strided_load_supported, vect_permute_load_chain, + vect_transform_strided_load): New functions. + (vectorizable_load): Handle strided loads. + (vect_transform_stmt): Add argument. Handle strided stores. Check + that vectorized stmt exists for patterns. + (vect_gen_niters_for_prolog_loop): Update calculation for + interleaving. + (vect_transform_loop): Remove stmt_vec_info for strided stores after + whole chain vectorization. + * config/rs6000/altivec.md (UNSPEC_EXTEVEN, UNSPEC_EXTODD, + UNSPEC_INTERHI, UNSPEC_INTERLO): New constants. + (vpkuhum_nomode, vpkuwum_nomode, vec_extract_even, + vec_extract_odd, altivec_vmrghsf, altivec_vmrglsf, + vec_interleave_high, vec_interleave_low): Implement. + +2006-11-22 Steven Bosscher + + * cse.c (enum taken): Remove PATH_AROUND. + (addr_affects_sp_p, invalidate_skipped_set, + invalidate_skipped_block): Remove. + (cse_end_of_basic_block): Remove skip_blocks and related code. + (cse_main): Don't test for flag_cse_skip_blocks. + Update cse_end_of_basic_block call. + (cse_basic_block): Likewise. Remove PATH_AROUND case. Remove + code to lengthen the path if a jump was simplified. + +2006-11-22 Zdenek Dvorak + + PR rtl-optimization/29924 + * loop-unroll.c (split_edge_and_insert): Handle the case insns is NULL. + (unroll_loop_runtime_iterations): Assert that the argument passed to + split_edge_and_insert is not NULL. + * loop-doloop.c (add_test): Ditto. + +2006-11-22 Zdenek Dvorak + + * tree-loop-linear.c (linear_transform_loops): Use single_exit accessor + functions. + * tree-ssa-loop-niter.c (loop_only_exit_p): Ditto. + * cfgloopmanip.c (update_single_exits_after_duplication, + update_single_exit_for_duplicated_loop, loop_version): Ditto. + * tree-scalar-evolution.c (get_loop_exit_condition, + get_exit_conditions_rec, loop_closed_phi_def, + number_of_iterations_in_loop, scev_const_prop): Ditto. + * tree-ssa-loop-ivopts.c (single_dom_exit): Ditto. + * modulo-sched.c (generate_prolog_epilog, loop_canon_p, sms_schedule): + Ditto. + * tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variables): + Ditto. + * tree-vectorizer.c (slpeel_update_phis_for_duplicate_loop, + slpeel_update_phi_nodes_for_guard1, slpeel_update_phi_nodes_for_guard2, + slpeel_make_loop_iterate_ntimes, + slpeel_tree_duplicate_loop_to_edge_cfg, slpeel_can_duplicate_loop_p, + slpeel_verify_cfg_after_peeling, slpeel_tree_peel_loop_to_edge): + Ditto. + * tree-if-conv.c (if_convertible_loop_p): Ditto. + * tree-vect-analyze.c (vect_analyze_operations, vect_stmt_relevant_p, + vect_analyze_loop_form): Ditto. + * lambda-code.c (lambda_loopnest_to_gcc_loopnest, exit_phi_for_loop_p, + can_convert_to_perfect_nest, perfect_nestify): Ditto. + * tree-vect-transform.c (vect_create_epilog_for_reduction, + vect_update_ivs_after_vectorizer, vect_do_peeling_for_loop_bound, + vect_transform_loop): Ditto. + * cfgloop.c (mark_single_exit_loops, verify_loop_structure): Ditto. + (single_exit, set_single_exit): New functions. + * cfgloop.h (struct loop): Rename single_exit field to single_exit_. + (single_exit, set_single_exit): Declare. + * doc/loop.texi: Undocument single_exit field. Document single_exit + accessor function. + +2006-11-22 Zdenek Dvorak + + PR tree-optimization/29902 + * tree-ssa-loop-manip.c (can_unroll_loop_p): Return false if + any involved ssa name appears in abnormal phi node. + +2006-11-21 Bob Wilson + + * config/xtensa/xtensa.c (xtensa_char_to_class): Delete. + (xtensa_const_ok_for_letter_p): Delete. + (xtensa_extra_constraint): Delete. + (override_options): Delete xtensa_char_to_class initialization. + * config/xtensa/xtensa.h (REG_CLASS_FROM_LETTER): Delete. + (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete. + (EXTRA_CONSTRAINT): Delete. + * config/xtensa/xtensa.md: Include constraints.md. + (call_internal): Combine alternatives. + (call_value_internal): Likewise, and remove invalid constraints. + * config/xtensa/constraints.md: New file. + * config/xtensa/xtensa-protos.h (xtensa_const_ok_for_letter_p): Delete. + (xtensa_extra_constraint): Delete. + * doc/md.texi (Machine Constraints): Refer to constraints.md for + Xtensa constraints. + +2006-11-21 Janis Johnson + + * config/dfp-bits.c (DFP_TO_INT): Remove code to saturate result + of conversion that doesn't fit. + + * config/dfp-bit.h (CONTEXT_TRAPS, CONTEXT_ERRORS, DFP_RAISE): Delete. + * config/dfp-bit.c (dfp_unary_op, dfp_binary_op, dfp_compare_op, + DFP_TO_DFP, INT_TO_DFP, BFP_TO_DFP): Remove calls to DFP_RAISE. + + * config/dfp-bit.c (dfp_binary_func): Fix typedef. + +2006-11-21 Douglas Gregor + + * c-common.h (enum rid): Add RID_STATIC_ASSERT. + +2006-11-21 Richard Guenther + + * tree-vectorizer.h (NUM_PATTERNS): Increase. + * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Add + vect_recog_pow_pattern. + (vect_recog_pow_pattern): New function. + +2006-11-21 Bernd Schmidt + + * config/bfin/bfin.opt (mstack-check-l1): New. + * doc/invoke.texi (Blackfin Options): Document it. + * config/bfin/bfin.c (bfin_expand_prologue): Generate code to use + stack bounds in L1 memory if the new option is enabled. + (override_options): Don't allow combinations of -fstack-limit and + -mstack-check-l1. + (add_to_reg): Renamed from add_to_sp. All callers changed. Lose some + dead code. + + * config/bfin/bfin.c (hard_regno_mode_ok): Only allow first 31 + regs for DImode. + (bfin_register_move_cost): Bump costs if trying to move plain + integer values through accumulators. + +2006-11-21 Ben Elliston + + * config/spu/spu.c (spu_expand_vector_init): Initialise x. + +2006-11-20 Trevor Smigiel + Russell Olsen + Dmitri Makarov + Yukishige Shibata + Nobuhisa Fujinami + Takeaki Fukuoka + Andrew Pinski + + * config.gcc: Add target for SPU. + * config/spu/constraints.md: New file. + * config/spu/crt0.c: New file. + * config/spu/crtend.c: New file. + * config/spu/crti.asm: New file. + * config/spu/crtn.asm: New file. + * config/spu/float_unsdidf.c: New file. + * config/spu/float_unssidf.c: New file. + * config/spu/predicates.md: New file. + * config/spu/spu-builtins.def: New file. + * config/spu/spu-builtins.h: New file. + * config/spu/spu-builtins.md: New file. + * config/spu/spu-c.c: New file. + * config/spu/spu-elf.h: New file. + * config/spu/spu-modes.def: New file. + * config/spu/spu-protos.h: New file. + * config/spu/spu.c: New file. + * config/spu/spu.h: New file. + * config/spu/spu.md: New file. + * config/spu/spu.opt: New file. + * config/spu/spu_internals.h: New file. + * config/spu/spu_intrinsics.h: New file. + * config/spu/spu_mfcio.h: New file. + * config/spu/t-spu-elf: New file. + * config/spu/vec_types.h: New file. + * config/spu/vmx2spu.h: New file. + * doc/contrib.texi: Document SPU contributor. + * doc/extend.texi: Document SPU extensions. + * doc/invoke.texi: Document SPU options. + * doc/md.texi: Document SPU constraints. + +2006-11-21 Zdenek Dvorak + + * cfgloopmanip.c (add_loop, duplicate_loop): Do not set level + of the loop. + * cfgloop.c (flow_loop_level_compute, flow_loops_level_compute): + Removed. + (flow_loop_dump): Do not dump loop level. + (flow_loops_find): Do not call flow_loops_level_compute. + * cfgloop.h (struct loop): Remove level field. + +2006-11-21 Zdenek Dvorak + + * tree-ssa-loop-im.c (schedule_sm, determine_lsm_ref, + hoist_memory_references, loop_suitable_for_sm, determine_lsm_loop): + Use vector of edges instead of array. + * tree-ssa-loop-niter.c (find_loop_niter, find_loop_niter_by_eval, + estimate_numbers_of_iterations_loop): Ditto. + * predict.c (predict_loops): Ditto. + * loop-unroll.c (analyze_insns_in_loop): Ditto. + * tree-ssa-threadupdate.c: Remove declaration of heap allocation for + edge vectors. + * basic-block.h: Declare heap allocation for edge vectors. + * tree-outof-ssa.c: Ditto. + * cfgloop.c (get_loop_exit_edges): Return vector of edges. + * cfgloop.h (get_loop_exit_edges): Declaration changed. + +2006-11-20 Zack Weinberg + + * gengtype.c (process_gc_options): Remove unnecessary forward decl. + Add another out parameter, "skip". + (set_gc_used_type): Adjust calls to process_gc_options. If a field + is tagged "skip", do not mark its type used. + +2006-11-20 Andrew Pinski + + PR tree-opt/25500 + * tree-sra.c (single_scalar_field_in_record_p): New function. + (decide_block_copy): Use it. + +2006-11-20 David Daney + + * config/mips/linux-unwind.h (mips_fallback_frame_state): Adjust + PC to point to following instruction. + +2006-11-20 Anatoly Sokolov + + PR target/18553 + PR target/29449 + * config/avr/avr.h (OBJECT_FORMAT_ELF): Define. + + * config/avr/avr.h (DWARF2_DEBUGGING_INFO): Define. + +2006-11-20 J"orn Rennecke + + * config.gcc (sh*-superh-elf): Add t-superh to tmake_file. + Add sh/superh.h to tm_file. + +2006-11-20 Carlos O'Donell + Mark Mitchell + + * cppdefault.c: Define cpp_PREFIX, cpp_PREFIX_len, and + gcc_exec_prefix. + (cpp_relocated): New function. + * cppdefault.h: Declare cpp_PREFIX, cpp_PREFIX_len, gcc_exec_prefix + and cpp_relocated. + * Makefile.in (PREPROCESSOR_DEFINES): Add -DPREFIX option. + * c-incpath.c (add_standard_paths): Call cpp_relocated. If relocated, + replace configured prefix with gcc_exec_prefix. + +2006-11-20 Bernd Schmidt + + * config/bfin/bfin.h (LEGITIMATE_CONSTANT_P): Call + bfin_legitimate_constant_p. + * config/bfin/bfin.md (movsi expander): Check return value of + expand_mvoe. + * config/bfin/bfin-protos.h (bfin_legitimate_constant_p): Declare. + (expand_move): Adjust prototype. + * config/bfin/bfin.c (expand_move): Now returns bool. Handle + invalid constants specially. + (bfin_cannot_force_const_mem, bfin_legitimate_constant_p): New + functions. + (TARGET_CANNOT_FORCE_CONST_MEM): New macro. + + * config/bfin/bfin.md (call_symbol, call_value_symbol, sibcall_symbol, + sibcall_value_symbol): Allow these patterns if + TARGET_LEAF_ID_SHARED_LIBRARY. + * config/bfin/bfin.c (bfin_expand_call): Allow them here as well. + (override_options): Turn on id shared library flags if -msep-data, + but disallow the combination of these options on the command line. + * config/bfin/bfin.h (TARGET_LEAF_ID_SHARED_LIBRARY, MASK_SEP_DATA + MASK_LEAF_ID_SHARED_LIBRARY, TARGET_SEP_DATA): New macros. + (DRIVER_SELF_SPECS): -mleaf-id-shared-library implies + -mid-shared-library. + (TARGET_SWITCHES): Add -mleaf-id-shared-library and -msep-data. + * doc/invoke.texi (Blackfin Options): Document new switches. + + * config/bfin/bfin.c (bfin_function_ok_for_sibcall): Handle some + edge cases with local functions and TARGET_ID_SHARED_LIBRARY. + + * tree-ssa-loop-ivopts.c (get_address_cost): Do not artificially + inflate costs for addresses with an out-of-bounds address. + +2006-11-19 Andrew Pinski + + PR rtl-opt/29879 + * fwprop.c (loops): Remove. + (forward_propagate_into): Use current_loops instead of + loops. + (fwprop_init): Call loop_optimizer_init instead of + flow_loops_find. + (fwprop_done): Call loop_optimizer_finalize instead of + flow_loops_free. + (fwprop): Use current_loops instead of loops. + +2006-11-19 Gabriel Dos Reis + + PR c++/8586 + * c-opts.c (c_common_handle_option): Enable -Wwrite-strings if -Wall. + +2006-11-19 John David Anglin + + PR target/29114 + * pa.c (emit_move_sequence): Don't split constants with PLUS for modes + larger than BITS_PER_WORD. + +2006-11-18 John David Anglin + + PR fortran/27885 + PR middle-end/28176 + * stor-layout.c (set_sizetype): Limit precision of *bitsizetypes types + to MAX_FIXED_MODE_SIZE. + +2006-11-18 Kaveh R. Ghazi + + * builtins.c (integer_valued_real_p): Handle fmin/fmax. + (fold_builtin_fmin_fmax): New. + (fold_builtin_1): Use it. + + * fold-const.c (fold_strip_sign_ops): Handle copysign. + +2006-11-18 Richard Guenther + + * config/i386/i386.c (ix86_builtins): New array for ix86 + builtin function decls. + (def_builtin): New function. + (def_builtin_const): Likewise. + (ix86_init_mmx_sse_builtins): Mark sqrt and cvt builtins const. + +2006-11-18 Vladimir Makarov + + * doc/invoke.texi (core2): Add item. + + * config/i386/i386.h (TARGET_CORE2, TARGET_CPU_DEFAULT_core2): New + macros. + (TARGET_CPU_CPP_BUILTINS): Add code for core2. + (TARGET_CPU_DEFAULT_generic): Change value. + (TARGET_CPU_DEFAULT_NAMES): Add core2. + (processor_type): Add new constant PROCESSOR_CORE2. + + * config/i386/i386.md (cpu): Add core2. + + * config/i386/i386.c (core2_cost): New initialized variable. + (m_CORE2): New macro. + (x86_use_leave, x86_push_memory, x86_movx, x86_unroll_strlen, + x86_deep_branch, x86_partial_reg_stall, x86_use_simode_fiop, + x86_use_cltd, x86_promote_QImode, x86_sub_esp_4, x86_sub_esp_8, + x86_add_esp_4, x86_add_esp_8, x86_integer_DFmode_moves, + x86_partial_reg_dependency, x86_memory_mismatch_stall, + x86_accumulate_outgoing_args, x86_prologue_using_move, + x86_epilogue_using_move, x86_arch_always_fancy_math_387, + x86_sse_partial_reg_dependency, x86_rep_movl_optimal, + x86_use_incdec, x86_four_jump_limit, x86_schedule, + x86_pad_returns): Add m_CORE2. + (override_options): Add entries for Core2. + (ix86_issue_rate): Add case for Core2. + +2006-11-18 Aldy Hernandez + + * doc/invoke.texi: Fix mno-isel typo. + +2006-11-18 Joseph Myers + + * config/rs6000/spe.md (movv4hi_internal): Add alternative for + easy vector constant loads. + +2006-11-18 Joseph Myers + + * config/rs6000/rs6000.h (TARGET_NO_LWSYNC): Define. + * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define + __NO_LWSYNC__ if TARGET_NO_LWSYNC. + * config/rs6000/sync.md (lwsync): Emit plain sync if + TARGET_NO_LWSYNC. + +2006-11-17 DJ Delorie + + * reload1.c (reloads_unique_chain): New. + (reloads_conflict): Call it. + +2006-11-17 Bob Wilson + + * config/xtensa/predicates.md (addsubx_operand): New. + * config/xtensa/xtensa.c (xtensa_emit_branch): New. + (xtensa_emit_bit_branch): New. + (xtensa_emit_movcc): New. + * config/xtensa/xtensa.md (any_minmax): New code macro. + (minmax): New code attribute. + (any_cond, any_scc, any_scc_sf): New code macros. + (*addx2, *addx4, *addx8): Delete. + (*addx): New. + (*subx2, *subx4, *subx8): Delete. + (*subx): New. + (sminsi3, uminsi3, smaxsi3, umaxsi3): Use any_minmax macro. + (beq, bne, bgt, bge, blt, ble, bgtu, bgeu, bltu, bleu): Use any_cond. + (*btrue, *bfalse, *ubtrue, *ubfalse): Use xtensa_emit_branch. + (*bittrue, *bitfalse): Use xtensa_emit_bit_branch. + (seq, sne, sgt, sge, slt, sle): Use any_scc macro. + (movsicc_internal0, movsicc_internal1): Use xtensa_emit_movcc. + (movsfcc_internal0, movsfcc_internal1): Likewise. + (seq_sf, slt_sf, sle_sf): Use any_scc_sf macro. + * config/xtensa/xtensa-protos.h: (xtensa_emit_branch): New. + (xtensa_emit_bit_branch): New. + (xtensa_emit_movcc): New. + (function_arg_boundary): Add missing prototype. + +2006-11-17 Bob Wilson + + * config/xtensa/xtensa.md (tstsi): Delete + +2006-11-17 Bob Wilson + + * config/xtensa/xtensa.md (entry): Do not emit .frame directive. + +2006-11-17 Bob Wilson + + * config/xtensa/elf.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define. + +2006-11-17 Bob Wilson + + * config/xtensa/lib1funcs.asm (__umulsidi3): Restore a0 on exit. + +2006-11-17 Zdenek Dvorak + + * tree-vrp.c (execute_vrp): Do not update current_loops. + * loop-unswitch.c (unswitch_loop): Do not use loop_split_edge_with. + * doc/loop.texi: Remove documentation for cancelled functions. + * tree-ssa-loop-im.c (loop_commit_inserts): Removed. + (move_computations, determine_lsm): Use bsi_commit_edge_inserts + instead. + * cfgloopmanip.c (remove_bbs): Do not update loops explicitly. + (remove_path): Ensure that in delete_basic_blocks, the loops + are still allocated. + (add_loop): Work on valid loop structures. + (loopify): Modify call of add_loop. + (mfb_update_loops): Removed. + (create_preheader): Do not update loops explicitly. + (force_single_succ_latches, loop_version): Do not use + loop_split_edge_with. + (loop_split_edge_with): Removed. + * tree-ssa-loop-manip.c (create_iv, determine_exit_conditions): + Do not use bsi_insert_on_edge_immediate_loop. + (split_loop_exit_edge, tree_unroll_loop): Do not use + loop_split_edge_with. + (bsi_insert_on_edge_immediate_loop): Removed. + * tree-ssa-loop-ch.c (copy_loop_headers): Use current_loops. Do not + use loop_split_edge_with. + * cfghooks.c: Include cfgloop.h. + (verify_flow_info): Verify that loop_father is filled iff current_loops + are available. + (redirect_edge_and_branch_force, split_block, delete_basic_block, + split_edge, merge_blocks, make_forwarder_block, duplicate_block): + Update cfg. + * cfgloopanal.c (mark_irreducible_loops): Work if the function contains + no loops. + * modulo-sched.c (generate_prolog_epilog, canon_loop): Do not use + loop_split_edge_with. + (sms_schedule): Use current_loops. + * tree-ssa-dom.c (tree_ssa_dominator_optimize): Use current_loops. + * loop-init.c (loop_optimizer_init, loop_optimizer_finalize): Set + current_loops. + (rtl_loop_init, rtl_loop_done): Do not set current_loops. + * tree-ssa-sink.c (execute_sink_code): Use current_loops. + * ifcvt.c (if_convert): Ditto. + * predict.c (predict_loops): Do not clear current_loops. + (tree_estimate_probability): Use current_loops. + (propagate_freq): Receive head of the region to propagate instead of + loop. + (estimate_loops_at_level): Do not use shared to_visit bitmap. + (estimate_loops): New function. Handle case current_loops == NULL. + (estimate_bb_frequencies): Do not allocate tovisit. Use + estimate_loops. + * tree-ssa-loop.c (current_loops): Removed. + (tree_loop_optimizer_init): Do not return loops. + (tree_ssa_loop_init, tree_ssa_loop_done): Do not set current_loops. + * tree-vectorizer.c (slpeel_update_phi_nodes_for_guard1, + slpeel_update_phi_nodes_for_guard2, slpeel_tree_peel_loop_to_edge): + Do not update loops explicitly. + * function.h (struct function): Add x_current_loops field. + (current_loops): New macro. + * tree-if-conv.c (combine_blocks): Do not update loops explicitly. + * loop-unroll.c (split_edge_and_insert): New function. + (unroll_loop_runtime_iterations, analyze_insns_in_loop): Do not + use loop_split_edge_with. + * loop-doloop.c (add_test, doloop_modify): Ditto. + * tree-ssa-pre.c (init_pre, fini_pre): Do not set current_loops. + * cfglayout.c (copy_bbs): Do not update loops explicitly. + * lambda-code.c (perfect_nestify): Do not use loop_split_edge_with. + * tree-vect-transform.c (vect_transform_loop): Do not update loops + explicitly. + * cfgloop.c (flow_loops_cfg_dump): Do not dump dfs_order and rc_order. + (flow_loops_free): Do not free dfs_order and rc_order. + (flow_loops_find): Do not set dfs_order and rc_order in loops + structure. Do not call loops and flow info verification. + (add_bb_to_loop, remove_bb_from_loops): Check whether the block + already belongs to some loop. + * cfgloop.h (struct loops): Remove struct cfg. + (current_loops, loop_split_edge_with): Declaration removed. + (loop_optimizer_init, loop_optimizer_finalize): Declaration changed. + * tree-flow.h (loop_commit_inserts, bsi_insert_on_edge_immediate_loop): + Declaration removed. + * Makefile.in (cfghooks.o): Add CFGLOOP_H dependency. + * basic-block.h (split_edge_and_insert): Declare. + * tree-cfg.c (remove_bb): Do not update loops explicitly. + +2006-11-17 Zdenek Dvorak + + PR tree-optimization/29801 + * tree-ssa-ccp.c (get_symbol_constant_value): New function. + (get_default_value): Use get_symbol_constant_value. + (set_lattice_value): ICE when the value of the constant is + changed. + (visit_assignment): Ignore VDEFs of read-only variables. + +2006-11-17 Zdenek Dvorak + + * tree-vect-transform.c (vect_create_epilog_for_reduction): Fix + formating. + (vect_generate_tmps_on_preheader, vect_update_ivs_after_vectorizer, + vect_gen_niters_for_prolog_loop): Fold the emited expressions. + +2006-11-17 Zdenek Dvorak + + * tree-ssa-alias.c (new_type_alias): Do not use offset of expr to + select subvars of var. + +2006-11-17 Jakub Jelinek + + PR middle-end/29584 + * tree-ssa-forwprop.c (simplify_switch_expr): Don't + optimize if DEF doesn't have integral type. + +2006-11-16 Mike Stump + + * config/darwin.h (LINK_COMMAND_SPEC): Don't do dwarf stuff on + pre-darwin9 system, unless the user asks for it directly. + (PREFERRED_DEBUGGING_TYPE): Likewise. + * config/i386/darwin.h (PREFERRED_DEBUGGING_TYPE): Likewise. + * config.gcc: Add suppport for darwin9.h. + * config/darwin9.h: Add. + * doc/install.texi (Specific): Clarify darwin documentation. + +2006-11-16 Richard Earnshaw + + * arm.h (CONSTANT_ALIGNMENT): Don't over-align strings when + optimizing for size. + +2006-11-16 Mike Stump + + * Makefile.in (targhooks.o): Add $(OPTABS_H). + +2006-11-16 Dirk Mueller + + * tree-vrp.c (get_value_range): Use XCNEW instead + of XNEW and memset. + (insert_range_assertions): Use XCNEWVEC instead + of XNEWVEC and memset. + (vrp_initialize): Same. + (vrp_finalize): Same. + * tree-ssa-ccp.c (ccp_initialize): Same. + * predict.c (tree_bb_level_predictions): Same. + * calls.c (expand_call): Same. + * tree-ssa-copy.c (init_copy_prop): Same. + (fini_copy_prop): Same. + * tree-ssa-alias.c (get_ptr_info): Use GGC_CNEW instead + of GGC_NEW and memset. + +2006-11-16 Eric Botcazou + + PR middle-end/26306 + * gimplify.c (gimplify_expr): Only force a load for references to + non-BLKmode volatile values. + * doc/implement-c.texi (Qualifiers implementation): Document the + interpretation of what a volatile access is. + * doc/extend.texi (C++ Extensions): Rework same documentation. + +2006-11-16 Joseph Myers + + * config/rs6000/spe.md (frob_di_df_2): Handle non-offsettable + memory operand. + +2006-11-16 Richard Earnshaw + + * arm.md (abssi2): Allow Thumb as well. Use an SImode scratch for + Thumb. + (arm_neg_abssi2): Renamed from neg_abssi2. + (thumb_abssi2, thumb_neg_abssi2): New patterns with splitters. + +2006-11-16 Uros Bizjak + + * config/i386/i386.c (ix86_function_sseregparm): Fix comment: + number of arguments passed to local functions in SSE registers is 3. + + * doc/invoke.texi (Function Attributes) [sseregparm]: Correct + number of arguments passed in SSE registers to 3. + +2006-11-16 Maxim Kuvyrkov + + PR target/29201 + * cfgrtl.c (rtl_delete_block): Move the code for getting last insn of + bb to ... + (get_last_bb_insn): ... new global function. + (basic_block.h): Declare it. + * haifa-sched.c (create_recovery_block): Use it. + +2006-11-15 H.J. Lu + + PR middle-end/29862 + * real.c (mpfr_from_real): Call mpfr_set_str before gcc_assert. + +2006-11-15 Paul Brook + + * config/arm/unwind-arm.c (_Unwind_GetDataRelBase, + _Unwind_GetTextRelBase): Move from here ... + * config/arm/pr-support.c (_Unwind_GetDataRelBase, + _Unwind_GetTextRelBase): ... To here. + +2006-11-15 Bernd Schmidt + + * tree-ssa-loop-ivopts.c (get_address_cost): Make sure memory + addresses we generate for testing are aligned. + +2006-11-15 Andrew Pinski + + PR tree-opt/29788 + * fold-const.c (fold_indirect_ref_1): Fold *&CONST_DECL down + to what is the const decl is a place holder for. + +2006-11-15 Uros Bizjak + + * config/i386/i386.opt: New target option -mx87regparm. + + * config/i386/i386.h (struct ix86_args): Add x87_nregs, x87_regno + and float_in_x87 variables. mmx_words, sse_words: Remove. + (X87_REGPARM_MAX): Define. + + * config/i386/i386.c (override_options): Error out for + -mx87regparm but no 80387 support. + (ix86_attribute_table): Add x87regparm. + (ix86_handle_cconv_attribute): Update comments for x87regparm. + (ix86_comp_type_attributes): Check for mismatched x87regparm types. + (ix86_function_x87regparm): New function. + (ix86_function_arg_regno_p): Add X87_REGPARM_MAX 80387 floating + point registers. + (init_cumulative_args): Initialize x87_nregs and float_in_x87 + variables. + (function_arg_advance): Process x87_nregs and x87_regno when + floating point argument is to be passed in 80387 register. + (function_arg): Pass XFmode arguments in 80387 registers for local + functions. Pass SFmode and DFmode arguments to local functions + in 80387 registers when flag_unsafe_math_optimizations is set. + + * reg-stack.c (convert_regs_entry): Disable NaN load for + stack registers that are used for argument passing. + + * doc/extend.texi: Document x87regparm function attribute. + * doc/invoke.texi: Document -mx87regparm. + +2006-11-15 Bernd Schmidt + + * tree-flow.h (multiplier_allowed_in_address_p): Adjust prototype. + * tree-ssa-loop-ivopts.c (multiplier_allowed_in_address_p): New + arg MODE; all callers changed. Use it to determine validity per + machine mode instead of using Pmode for all memory references. + (get_address_cost): Likewise add and use new arg MEM_MODE. + +2006-11-15 Rask Ingemann Lambertsen + J"orn Rennecke + + * combine.c (likely_spilled_retval_1): Fix masking operation. + (likely_spilled_retval_p): Use proper pattern for call to + likely_spilled_retval_1. + +2006-11-15 Bernd Schmidt + + * tree-ssa-loop-ivopts.c (determine_iv_costs): Fix formatting. + + * config/bfin/bfin.c (legitimize_pic_address): Lose dead code + that tests for CONSTANT_POOL_ADDRESS_P. + +2006-11-15 Jakub Jelinek + + PR tree-optimization/29581 + * lambda-code.c (replace_uses_equiv_to_x_with_y): Add YINIT, + REPLACEMENTS, FIRSTBSI arguments. If initial condition or + type is different between Y and USE, create a temporary + variable, initialize it at the beginning of the body bb + and use it as replacement instead of Y. + +2006-11-15 Paolo Bonzini + + PR middle-end/29753 + * gimplify.c (fold_indirect_ref_rhs): Use + STRIP_USELESS_TYPE_CONVERSION rather than STRIP_NOPS. + +2006-11-14 Richard Earnshaw + + * expmed.c (emit_store_flag_1): New function. + (emit_store_flag): Call it. If we can't find a suitable scc insn, + try a cstore insn. + * expr.c (do_store_flag): If we can't find a scc insn, try cstore. + Use do_compare_rtx_and_jump. + * arm.h (BRANCH_COST): Increase to 2 on Thumb. + * arm.md (cstoresi4): New define_expand. + (cstoresi_eq0_thumb, cstoresi_ne0_thumb): Likewise. + (cstoresi_eq0_thumb_insn, cstore_ne0_thumb_insn): New patterns. + (cstoresi_nltu_thumb, thumb_addsi3_addgeu): New patterns. + +2006-11-14 Caroline Tice + + * dwarf2out.c (debug_pubtypes_section): New static global variable. + (pubname_entry): Add DEF_VEC_O and DEF_VEC_ALLOC_O statements for + this type. + (pubname_table): Redefine as a vector. + (pubtype_table): New static global variable, defined as a vector. + (pubname_table_allocated): Remove static global variable. + (pubname_table_in_use): Remove static global variable. + (PUBNAME_TABLE_INCREMENT): Remove constant. + (size_of_pubnames): Add parameter to deal with either pubnames or + pubtypes, and change code to deal with table being a vector. + (add_pubname): Change to deal with table being a vector. + (add_pubtype): New function. + (output_pubnames): Add parameter to deal with either pubnames or + pubtypes, and change code to deal with table being a vector. + (gen_array_type_die): Add call to add_pubtype. + (gen_enumeration_type_die): Add call to add_pubtype. + (gen_struct_or_union_type_die): Add call to add_pubtype. + (gen_subroutine_type_die): Add call to add_pubtype. + (gen_typedef_die): Add call to add_pubtype. + (dwarf2out_init): Add code to initialize pubname_table and + pubtype_table vectors; also initialize debug_pubtypes_section. + (prune_unused_types): Change to deal with pubnames being a vector. + (dwarf2out_finish): Change to deal with pubnames being a vector; add + pubnames table to call to output_pubnames; Add code to output pubtypes + table if DEBUG_PUBTYPES_SECTION is defined. + * config/darwin.c (darwin_file_start): Add DEBUG_PUBTYPES_SECTION to + debugnames. + * config/darwin.h (DEBUG_PUBTYPES_SECTION): Define new global variable. + +2006-11-14 Joseph Myers + + * config/arm/arm.h (FUNCTION_ARG_ADVANCE): Only adjust + iwmmxt_nregs if TARGET_IWMMXT_ABI. + * config/arm/iwmmxt.md (movv8qi_internal, movv4hi_internal, + movv2si_internal): Support moves between core registers. + +2006-11-14 Eric Christopher + + * configure: Regenerate with autoconf 2.59. + +2006-11-14 Daniel Berlin + + Fix PR tree-optimization/27755 + + * tree-ssa-pre.c: Update comments. + (bb_bitmap_sets): Add pa_in and deferred member. + (BB_DEFERRED): New macro. + (maximal_set): New variable. + (pre_stats): Add pa_insert member. + (bitmap_set_and): Short circuit orig == dest. + (bitmap_set_subtract_values): New function. + (bitmap_set_contains_expr): Ditto. + (translate_vuses_through_block): Add phiblock argument. + (dependent_clean): New function. + (compute_antic_aux): Update for maximal_set changes. + (compute_partial_antic_aux): New function. + (compute_antic): Handle partial anticipation. + (do_partial_partial_insertion): New function. + (insert_aux): Handle partial anticipation. + (add_to_sets): Add to maximal set. + (compute_avail): Ditto. + (init_pre): Initialize maximal_set. + (execute_pre): Do partial anticipation if -O3+. + +2006-11-14 Paolo Bonzini + + PR rtl-optimization/29798 + + * fwprop.c (use_killed_between): Check that DEF_INSN dominates + TARGET_INSN before any other check. + (fwprop_init): Always calculate dominators. + (fwprop_done): Always free them. + +2006-11-14 Kaveh R. Ghazi + + * fold-const.c (fold_strip_sign_ops): Handle COMPOUND_EXPR and + COND_EXPR. + +2006-11-13 DJ Delorie + + * config/m32c/m32c.c (m32c_prepare_shift): Use a separate + temporary for intermediates. + +2006-11-13 Kaz Kojima + + * config/sh/sh.c (expand_cbranchdi4): Initialize skip_label. + (sh_optimize_target_register_callee_saved): #if 0 the code + using NOTE_INSN_LOOP_{BEG,END}. + +2006-11-13 Roger Sayle + + * fold-const.c (optimize_bit_field_compare): Recursively call + fold when simplifying non-constant comparisons between bit-fields. + +2006-11-13 Jakub Jelinek + + * configure.ac: Add changequote around __LONG_DOUBLE_MATH_OPTIONAL + test. + * configure: Rebuilt. + +2006-11-13 Andrew Pinski + + * config/rs6000/cell.md: New file. + * config/rs6000/rs6000.c (rs6000_cell_dont_microcode): New + variable. + (ppccell_cost): New cost matrix. + (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD): Define. + (rs6000_override_options): Set rs6000_always_hint to false + for cell. Also align functions/lables/loops to 8byte + for the Cell. Use PROCESSOR_CELL. + (rs6000_emit_epilogue): Rename using_mfcr_multiple to + using_mtcr_multiple. + (rs6000_variable_issue): If the insn is a nonpipelined instruction + on the Cell, return 0. + (rs6000_adjust_cost): Add Cell cost adjustments. + (is_microcoded_insn): Return true for Cell microcoded + instructions. + (is_nonpipeline_insn): New function. + (rs6000_issue_rate): Add PROCESSOR_CELL. + (rs6000_use_sched_lookahead): If Cell, then we should look ahead 8 + instructions. + (rs6000_use_sched_lookahead_guard): New function. + (rs6000_sched_reorder): Reorder the ready list, if the second + to last ready insn is a nonepipeline insn on the Cell. + * config/rs6000/rs6000.h (processor_type): Add PROCESSOR_CELL. + (ASM_CPU_SPEC): Add Cell. + * config/rs6000/rs6000.md (cpu): Add Cell. + (cell_micro): New Attr. + Include cell.md + +2006-11-13 Jakub Jelinek + + * configure.ac (ld_vers): Parse GNU ld version 2.17.50.0.3-6 20060715 + style versions. + * configure: Rebuilt. + +2006-11-13 Richard Guenther + + * config/i386/i386.c (ix86_expand_lround): Handle expand_simple_binop + return value. + (ix86_expand_lfloorceil): Likewise. + (ix86_expand_rint): Likewise. + (ix86_expand_floorceildf_32): Likewise. + (ix86_expand_floorceil): Likewise. + (ix86_expand_rounddf_32): Likewise. + (ix86_expand_truncdf_32): Likewise. + (ix86_expand_round): Likewise. + +2006-11-13 Carlos O'Donell + Mark Mitchell + + * gcc.c: Organize search path variables into $prefix relative, + and well-known native. Add comments. + (add_sysrooted_prefix): Add comment. + (process_command): If !gcc_exec_prefix add $prefix based paths. + If *cross_compile == '0', add native well-known paths. + Assert tooldir_base_prefix is always relative. + (main): If print_search_dirs, and if gcc_exec_prefix is set, + use this value for 'install:' path. + * Makefile.in: Add GCC_EXEC_PREFIX to generated site.exp. + +2006-11-13 H.J. Lu + + * config/i386/i386.c: Fix a typo in comment. + +2006-11-13 Michael Matz + + * genemit.c (gen_expand): Allocate enough memory. + +2006-11-13 Joseph Myers + + * config/arm/bpapi.h (TARGET_BPABI_CPP_BUILTINS): Define + __GXX_TYPEINFO_EQUALITY_INLINE but not + __GXX_MERGED_TYPEINFO_NAMES. + * config/arm/symbian.h (TARGET_OS_CPP_BUILTINS): Define + __GXX_MERGED_TYPEINFO_NAMES. + * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Define + __GXX_TYPEINFO_EQUALITY_INLINE. + +2006-11-13 H.J. Lu + Zdenek Dvorak + + PR tree-optimization/29680 + * tree-ssa-operands.c (access_can_touch_variable): Revert fix for + PR 14784. + +2006-11-12 Jason Merrill + Andrew Pinski + + PR middle-end/28915 + * gimplify.c (gimplify_init_constructor): Don't reduce TREE_CONSTANT + vector ctors. + * tree-cfg.c (verify_expr): Don't look into TREE_CONSTANT + vector ctors. + * expmed.c (make_tree): Handle CONST, SYMBOL_REF. + * tree.c (build_vector): Handle non-_CST elements. + +2006-11-12 Kaz Kojima + + * genemit.c (gen_insn): Call gen_exp with a non-null used + when handling multiple insns. + (gen_expand): Likewise. + * reorg.c (emit_delay_sequence): Copy the delay slot insn. + * config/sh/sh.md (ashrsi2_31+1): Copy operands[0]. + (movsi_const_16bit+1): Copy operands[1]. + (call_pcrel): Copy the call_site pattern. + (call_value_pcrel, sibcall_pcrel, GOTaddr2picreg): Likewise. + +2006-11-12 Roger Sayle + + * fold-const.c (negate_expr_p) : Correct/refine + condition for transformations. Use !HONOR_SIGN_DEPENDENT_ROUNDING + && !HONOR_SIGNED_ZEROS instead of flag_unsafe_math_optimizations. + (fold_negate_expr) : Likewise. + +2006-11-12 Daniel Berlin + + Fix PR tree-optimization/29587 + * tree-ssa-structalias.c (process_constraint): Don't + mark address taken due only to escaped vars constraint. + +2006-11-12 Michael Matz + Roger Sayle + + PR rtl-optimization/29797 + * ifcvt.c (noce_try_bitop): Correct calculation of bitnum on + BITS_BIG_ENDIAN targets. + +2006-11-12 Kaveh R. Ghazi + + * builtins.c (fold_builtin_cosh): New. + (fold_builtin_1): Use it. + * fold-const.c (negate_mathfn_p): Add llround, lround, round, + trunc to the list of "odd" functions. Also add llrint, lrint, + rint and nearbyint when flag_rounding_math is false. + +2006-11-12 Zdenek Dvorak + + * tree-flow.h (name_mappings_registered_p): Declare. + * tree-into-ssa.c (name_mappings_registered_p): New function. + * tree-cfg.c (tree_can_merge_blocks_p): Check + name_mappings_registered_p instead of need_ssa_update_p. + +2006-11-12 Zdenek Dvorak + + * tree-ssa-loop.c (tree_vectorize): Return the result of + vectorize_loops. + * tree-vectorizer.c (vectorize_loops): Return TODO_cleanup_cfg + if anything changed. + * tree-vectorizer.h (vectorize_loops): Declaration removed. + * tree-flow.h (vectorize_loops): Declaration changed. + +2006-11-12 Zdenek Dvorak + + * tree-ssa-loop-prefetch.c (schedule_prefetches): Cleanup and improve + comments. + (issue_prefetch_ref): Move assignment to write_p out of loop. + (determine_unroll_factor): Do not take PARAM_MAX_UNROLL_TIMES and + SIMULTANEOUS_PREFETCHES into account. + (loop_prefetch_arrays): Do not pass ahead to determine_unroll_factor. + * lambda-code.c (lcm): Renamed to ... + (least_common_multiple): ... and exported. + * tree-flow.h (least_common_multiple): Declare. + +2006-11-12 Zdenek Dvorak + + * Makefile.in (tree-data-ref.o): Add langhooks.h dependency. + * tree-ssa-loop-niter.c (derive_constant_upper_bound): Follow + ud-chains. Handle AND_EXPR. + (record_estimate): Record whether the estimate is realistic + and whether it is derived from a loop exit. + (record_nonwrapping_iv, idx_infer_loop_bounds, infer_loop_bounds_from_ref, + infer_loop_bounds_from_array, infer_loop_bounds_from_signedness): New + functions. + (compute_estimated_nb_iterations): Take only realistic bounds into + account. Set estimate_state. Use double_ints. + (infer_loop_bounds_from_undefined): Call infer_loop_bounds_from_array + and infer_loop_bounds_from_signedness. Do not consider basic blocks + that do not have to be always executed. + (estimate_numbers_of_iterations_loop): Set estimate_state, and use it + to determine whether to call infer_loop_bounds_from_undefined + and compute_estimated_nb_iterations. + (n_of_executions_at_most): Use double_ints. + (free_numbers_of_iterations_estimates_loop): Set estimate_state. + (substitute_in_loop_info): Do not replace in estimated_nb_iterations. + * double-int.c (double_int_to_tree): Improve comment. + (double_int_fits_to_tree_p): New function. + * double-int.h (double_int_fits_to_tree_p): Declare. + * tree-data-ref.c: Include langhooks.h. + (estimate_niter_from_size_of_data, estimate_iters_using_array): Removed. + (analyze_array_indexes): Do not call estimate_niter_from_size_of_data. + (analyze_array): Do not pass estimate_only argument to + analyze_array_indexes. + (get_number_of_iters_for_loop): Build tree from the stored double_int + value. + (get_references_in_stmt, find_data_references_in_stmt): New functions. + (find_data_references_in_loop): Use find_data_references_in_stmt. + * tree-data-ref.h (struct data_ref_loc_d): New. + (get_references_in_stmt): Declare. + (estimate_iters_using_array): Declaration removed. + * cfgloop.h (struct nb_iter_bound): Change type of bound to + double_int. Improve comments. Add is_exit and realistic + fields. + (struct loop): Changed type of estimated_nb_iterations to double_int. + Added estimate_state field. + (record_estimate): Declaration removed. + +2006-11-12 Zdenek Dvorak + + * params.c (set_param_value): Initialize the "set" field. + * params.h (struct param_info): Add "set" field. + (PARAM_SET_P): New macro. + (PREFETCH_LATENCY, SIMULTANEOUS_PREFETCHES, L1_CACHE_SIZE, + L1_CACHE_LINE_SIZE): New macros. + * toplev.c (DEFPARAM): Initialize the "set" field. + * tree-ssa-loop-prefetch.c (PREFETCH_LATENCY, + SIMULTANEOUS_PREFETCHES): Removed. + (PREFETCH_BLOCK): Use L1_CACHE_LINE_SIZE. + (tree_ssa_prefetch_arrays): Dump the values of the parameters. + * config/sparc/sparc.c: Include params.h. + (sparc_override_options): Set SIMULTANEOUS_PREFETCHES and + L1_CACHE_LINE_SIZE parameters. + * config/sparc/sparc.h (PREFETCH_BLOCK, SIMULTANEOUS_PREFETCHES): + Removed. + * config/i386/i386.h (PREFETCH_BLOCK, SIMULTANEOUS_PREFETCHES): + Removed. + * config/i386/i386.c: Include params.h. + (k8_cost): Change default value for SIMULTANEOUS_PREFETCHES. + (override_options): Set SIMULTANEOUS_PREFETCHES and + L1_CACHE_LINE_SIZE parameters. + * config/sh/sh.h (SIMULTANEOUS_PREFETCHES): Removed. + (OPTIMIZATION_OPTIONS): Set SIMULTANEOUS_PREFETCHES and + L1_CACHE_LINE_SIZE parameters. + * config/ia64/ia64.c (ia64_optimization_options): Set + SIMULTANEOUS_PREFETCHES and L1_CACHE_LINE_SIZE parameters. + * config/ia64/ia64.h (SIMULTANEOUS_PREFETCHES, PREFETCH_BLOCK): + Removed. + * params.def (PARAM_PREFETCH_LATENCY, PARAM_SIMULTANEOUS_PREFETCHES, + PARAM_L1_CACHE_SIZE, PARAM_L1_CACHE_LINE_SIZE): New params. + * doc/invoke.texi: Document new params. + +2006-11-12 Roger Sayle + + PR tree-optimization/13827 + * fold-const.c (fold_binary) : Fold (X&C) op (Y&C) + as ((X^Y)&C) op 0. + +2006-11-12 Zdenek Dvorak + + * cfgloopmanip.c (update_single_exit_for_duplicated_loop, + update_single_exit_for_duplicated_loops): New functions. + (duplicate_loop_to_header_edge): Use + update_single_exit_for_duplicated_loops. + * tree-ssa-loop-manip.c (tree_unroll_loop): Call verification + functions only with ENABLE_CHECKING. + +2006-11-12 Andreas Schwab + + * except.c (sjlj_emit_function_enter): Remove unused variable. + +2006-11-11 Roger Sayle + + * fold-const.c (int_binop_types_match_p): New function. + (size_binop): Relax constraint that both arguments must both have + exactly the same sizetype type. Instead use int_binop_types_match_p. + (size_diffop): Likewise. + + (make_range): Use build_int_cst instead of fold_convert. + (fold_cond_expr_with_comparison): Use build_int_cst to construct + integer constants of the correct type. + (fold_div_compare): Likewise. + (fold_single_bit_test): Likewise. + (fold_binary): Likewise. + * stor-layout.c (layout_type) : Ensure that TYPE_SIZE + has type bitsizetype and TYPE_SIZE_UNIT has type sizetype. + +2006-11-11 Andrew Pinski + + PR rtl-opt/28812 + * alias.c (fixed_scalar_and_varying_struct_p): Don't return a + non null value if the struct memory access is in the 0th + aliasing set. + +2006-11-12 Jie Zhang + + Revert + 2006-11-11 Jie Zhang + * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define __bfin__ + and __BFIN__. + + * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Use builtin_define_std + instead of builtin_define for bfin and BFIN. + +2006-11-11 Jie Zhang + + * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define __bfin__ + and __BFIN__. + +2006-11-11 Jan Hubicka + + * extend.texi (__builtin_expect): We no longer require second argument + to be constant. + * gengtype.c (adjust_field_rtx_def): Drop NOTE_INSN_EXPECTED_VALUE. + * builtins.c (expand_builtin_expect): Simplify. + (expand_builtin_expect_jump): Kill. + * final.c (final_scan_insn): Do not skip the removed notes. + * insn-notes.def (LOOP_BEG, LOOP_END, REPEATED_LINE_NUMBER, + EXPECTED_VALUE): Remove. + * dojump.c (do_jump): Do not care about __builtin_expect. + * predict.c (expected_value_to_br_prob): Kill. + * function.c (expand_function_end): Do not expand + NOTE_INSN_REPEATED_LINE_NUMBER. + * print-rtl.c (print_rtx): Do not pretty print the removed notes. + * expect.c (sjlj_emit_function_enter): Emit directly branch probability. + * cfgexpand.c (add_reg_br_prob_note): Export. + * cfgcleanup.c (rest_of_handle_jump2): Do not call + expected_value_to_br_prob. + * cfglayout.c (duplicate_insn_chain): Do not deal with removed notes. + * rtl.h (add_reg_br_prob_note): Declare. + +2006-11-11 Kaveh R. Ghazi + + * tree-pretty-print.c (dump_generic_node): Print sign of Inf. + +2006-11-11 Jan Hubicka + + * predict.c (predict_loops): Kill RTL variant. + +2006-11-11 Jan Hubicka + + * tree-pass.h (pass_purge_lineno_notes): Remove declaration. + * modulo-sched.c (find_line_note): Remove. + (loop_canon_p): Do not worry about line number notes. + (sms_schedule): Likewise. + * cse.c (cse_main): Likewise. + * regmove.c (fixup_match_1): Likewise + * function.c (emit_return_info_block): Likewise. + (expand_function_end): Likewise. + (thread_prologue_an_epilogue_insns): Likewise. + * cfgrtl.c (try_redirect_by_replacing_jump, rtl_tidy_fallthru_edge): + Likewise. + * emit-rtl.c (find_line_note, emit_insn_after_with_line_notes, + emit_note_copy_after): Kill. + (emit_note_copy): Do not worry about line numbers. + * jump.c (purge_line_number_notes): Kill. + (pass_purge_lineno_notes): Kill. + * cfgcleanup.c (rest_of_handle_jump2): Kill purge_line_number_notes + call. + * rtl.h (emit_note_copy_after, emit_insn_after_with_line_notes): Kill. + * passes.c (init_optimization_passes): Don't purge_lineno_notes. + * sched-ebb.c (schedule_ebbs): Don't do rm_redundant_line_notes. + * tree-pass.h (pass_purge_lineno_notes): Kill. + * sched-ebb.c (schedule_ebb): Don't rm_line_notes, + rm_redundant_line_notes. + * sched-rgb.c (schedule_region): Don't rm_line_notes, + rm_redundant_line_notes. + * sched-int.h (rm_line_notes, rm_redundant_line_notes): Kill. + * haifa-sched.c: Update comment about handling notes. + (unlink_line_notes): Kill. + (rm_line_notes): Kill. + (save_line_notes): Simplify. + (rm_redundant_line_notes): Kill. + +2006-11-11 Richard Guenther + + * tree.def (FIX_CEIL_EXPR, FIX_FLOOR_EXPR, FIX_ROUND_EXPR): + Remove unused tree codes. + * tree-vrp.c (extract_range_from_unary_expr): Remove handling + of FIX_CEIL_EXPR, FIX_FLOOR_EXPR and FIX_ROUND_EXPR. + * tree-pretty-print.c (dump_generic_node, op_prio): Likewise. + * tree.c (stabilize_reference): Likewise. + * fold-const.c (fold_convert_const_int_from_real, operand_equal_p, + fold_unary): Likewise. + * tree-gimple.c (is_gimple_cast): Likewise. + * dwarf2out.c (loc_descriptor_from_tree_1): Likewise. + * expr.c (expand_expr_real_1): Likewise. + * tree-eh.c (tree_could_trap_p): Likewise. + * gimplify.c (gimplify_expr): Likewise. + * tree-inline.c (estimate_num_insns_1): Likewise. + * tree-cfg.c (verify_expr): Likewise. + +2006-11-11 Zdenek Dvorak + + * tree-ssa-loop.c (pass_loop_prefetch): Change name to aprefetch. + * tree-ssa-loop-prefetch.c (dump_mem_ref): Fix target file. + (tree_ssa_prefetch_arrays): Do not dump for removed loops. + +2006-11-11 Richard Sandiford + + PR middle-end/27528 + * stmt.c (expand_asm_operands): Use EXPAND_INITIALIZER if the + constraints accept neither registers or memories. + +2006-11-11 Jie Zhang + + * config/bfin/bfin.h (FUNCTION_PROFILER): Don't use LABELNO. + (NO_PROFILE_COUNTERS): Define as 1. + +2006-11-10 Roger Sayle + + * fold-const.c (operand_equal_p) : + Don't check for TREE_CONSTANT_OVERFLOW when comparing constants. + +2006-11-10 Peter Bergner + + * rtl.h (MEM_COPY_ATTRIBUTES): Copy MEM_POINTER. + +2006-11-10 Kaveh R. Ghazi + + * builtins.c (fold_builtin_cos): Use fold_strip_sign_ops(). + (fold_builtin_hypot): Likewise. + * fold-const.c (fold_strip_sign_ops): Handle "odd" builtins. + + * fold-const.c (negate_mathfn_p): Add BUILT_IN_ERF. + +2006-11-10 Roger Sayle + + * tree.c (build_int_cst_wide): Add an assertion (gcc_unreachable) + when attempting to build INTEGER_CSTs of non-integral types. + * expmed.c (make_tree): Use the correct type, i.e. the inner + type, when constructing the individual elements of a CONST_VECTOR. + +2006-11-10 Jan Hubicka + + * cse.c (cse_process_notes): Copy the propagated value. + * local-alloc.c (update_equiv_regs): Copy the memory RTX to be used + in REG_EQUIV notes. + * gcse.c (try_replace_reg): Copy the replacement. + * i386.c (emit_i387_cw_initialization): Copy stored_mode. + (assign_386_stack_local): Always return copied memory expression + * function.c (instantiate_virtual_regs_in_insn): Copy the operand + duplicates. + +2006-11-10 Jan Hubicka + + * final.c (final): Walk from first instruction. + * cfglayout.c (insn_locators_initialize): Remove line number notes. + +2006-11-10 Uros Bizjak + + PR target/29777 + * config/i386/sse.md (smulv8hi3_highpart): Change from define_insn + to define_expand. + (umulv8hi3_highpart): Ditto. + (vec_widen_smult_hi_v8hi): New expander. + (vec_widen_smult_lo_v8hi): Ditto. + +2006-11-09 Kaveh R. Ghazi + + PR middle-end/29335 + * builtins.c (do_mpfr_arg3): New. + (fold_builtin_1): Handle builtins fma, fmin and fmax. + +2006-11-09 Eric Christopher + + PR bootstrap/26892 + PR bootstrap/27814 + PR other/28994 + * configure.ac: Match powerpc*-*-darwin* for powerpc darwin checks. + * config.gcc (powerpc64-*-darwin*): New target. + * config.host: Ditto. + * config/rs6000/darwin64.h: New file. + * config/rs6000/x-darwin64: Ditto. + * config/rs6000/host-ppc64-darwin.c: Ditto. + +2006-11-09 Steve Ellcey + + * config/ia64/ia64.c (ia64_hpux_init_libfuncs): Use HP-UX millicode + routines for integer division. + +2006-11-09 Daniel Jacobowitz + + * config/arm/t-linux (LIBGCC2_DEBUG_CFLAGS): Delete. + +2006-11-09 Serge Belyshev + + PR middle-end/29726 + * fold-const.c (fold_binary) : Fix typo in variable name. + +2006-11-09 Andreas Krebbel + + * simplify-rtx.c (avoid_constant_pool_reference): Avoid calling + simplify_subreg with BLKmode outer mode. + +2006-11-08 Brooks Moses + + * doc/invoke.texi: Minor formatting fixes in option lists. + +2006-11-08 Zdenek Dvorak + + PR tree-optimization/29738 + * tree-ssa-ccp.c: Remove UNKNOWN_VAL from comments. + (ccp_lattice_t): Remove UNKNOWN_VAL. + (dump_lattice_value, ccp_lattice_meet, ccp_visit_phi_node): + Do not handle UNKNOWN_VAL. + (get_default_value): Set initial value of virtual operands to + VARYING. + (get_value): Always use get_default_value on uninitialized + operands. + (set_value_varying, surely_varying_stmt_p): New functions. + (set_lattice_value): Do not pass argument to get_value. + Do not handle UNKNOWN_VAL. + (likely_value): Follow the semantics described in the comment. + (ccp_initialize): Use surely_varying_stmt_p. Do not mark + phi nodes DONT_SIMULATE_AGAIN. + (ccp_fold): Do not pass argument to get_value. + (fold_const_aggregate_ref, visit_assignment): Ditto. Do not + handle UNKNOWN_VAL. + +2006-11-08 Andrew Pinski + + * tree-pretty-print.c (dump_generic_node) : Use + HOST_WIDE_INT_PRINT_DOUBLE_HEX instead of format buffer. + +2006-11-08 Roger Sayle + + * tree-ssa-propagate.c (set_rhs): Restructure validity tests as a + test for inclusion rather than as a test for exclusion. + * tree-ssa-ccp.c (fold_stmt_r) : Use set_rhs to modify + the condition after calling fold_binary. + * fold-const.c (fold_inf_compare): Remove in_gimple_form check. + (fold_binary) : Likewise. + * builtins.c (fold_builtin_isascii): Likewise. + (fold_builtin_isdigit): Likewise. + +2006-11-08 Carlos O'Donell + + * configure.ac: Do not set PREFIX_INCLUDE_DIR if $prefix is NONE. + * configure: Regenerate. + +2006-11-08 Dorit Nuzman + + * tree-vect-analyze.c (vect_mark_relevant, vect_stmt_relevant_p): Take + enum argument instead of bool. + (vect_analyze_operations): Call vectorizable_type_promotion. + * tree-vectorizer.h (type_promotion_vec_info_type): New enum + stmt_vec_info_type value. + (supportable_widening_operation, vectorizable_type_promotion): New + function declarations. + * tree-vect-transform.c (vect_gen_widened_results_half): New function. + (vectorizable_type_promotion): New function. + (vect_transform_stmt): Call vectorizable_type_promotion. + * tree-vect-analyze.c (supportable_widening_operation): New function. + * tree-vect-patterns.c (vect_recog_dot_prod_pattern): + Add implementation. + * tree-vect-generic.c (expand_vector_operations_1): Consider correct + mode. + + * tree.def (VEC_WIDEN_MULT_HI_EXPR, VEC_WIDEN_MULT_LO_EXPR): + (VEC_UNPACK_HI_EXPR, VEC_UNPACK_LO_EXPR): New tree-codes. + * tree-inline.c (estimate_num_insns_1): Add cases for above new + tree-codes. + * tree-pretty-print.c (dump_generic_node, op_prio): Likewise. + * expr.c (expand_expr_real_1): Likewise. + * optabs.c (optab_for_tree_code): Likewise. + (init_optabs): Initialize new optabs. + * genopinit.c (vec_widen_umult_hi_optab, vec_widen_smult_hi_optab, + vec_widen_smult_hi_optab, vec_widen_smult_lo_optab, + vec_unpacks_hi_optab, vec_unpacks_lo_optab, vec_unpacku_hi_optab, + vec_unpacku_lo_optab): Initialize new optabs. + * optabs.h (OTI_vec_widen_umult_hi, OTI_vec_widen_umult_lo): + (OTI_vec_widen_smult_h, OTI_vec_widen_smult_lo, OTI_vec_unpacks_hi, + OTI_vec_unpacks_lo, OTI_vec_unpacku_hi, OTI_vec_unpacku_lo): New + optab indices. + (vec_widen_umult_hi_optab, vec_widen_umult_lo_optab): + (vec_widen_smult_hi_optab, vec_widen_smult_lo_optab): + (vec_unpacks_hi_optab, vec_unpacku_hi_optab, vec_unpacks_lo_optab): + (vec_unpacku_lo_optab): New optabs. + * doc/md.texi (vec_unpacks_hi, vec_unpacks_lo, vec_unpacku_hi): + (vec_unpacku_lo, vec_widen_umult_hi, vec_widen_umult_lo): + (vec_widen_smult_hi, vec_widen_smult_lo): New. + * doc/c-tree.texi (VEC_LSHIFT_EXPR, VEC_RSHIFT_EXPR): + (VEC_WIDEN_MULT_HI_EXPR, VEC_WIDEN_MULT_LO_EXPR, VEC_UNPACK_HI_EXPR): + (VEC_UNPACK_LO_EXPR, VEC_PACK_MOD_EXPR, VEC_PACK_SAT_EXPR): New. + + * config/rs6000/altivec.md (UNSPEC_VMULWHUB, UNSPEC_VMULWLUB): + (UNSPEC_VMULWHSB, UNSPEC_VMULWLSB, UNSPEC_VMULWHUH, UNSPEC_VMULWLUH): + (UNSPEC_VMULWHSH, UNSPEC_VMULWLSH): New. + (UNSPEC_VPERMSI, UNSPEC_VPERMHI): New. + (vec_vperm_v8hiv4si, vec_vperm_v16qiv8hi): New patterns used to + implement the unsigned unpacking patterns. + (vec_unpacks_hi_v16qi, vec_unpacks_hi_v8hi, vec_unpacks_lo_v16qi): + (vec_unpacks_lo_v8hi): New signed unpacking patterns. + (vec_unpacku_hi_v16qi, vec_unpacku_hi_v8hi, vec_unpacku_lo_v16qi): + (vec_unpacku_lo_v8hi): New unsigned unpacking patterns. + (vec_widen_umult_hi_v16qi, vec_widen_umult_lo_v16qi): + (vec_widen_smult_hi_v16qi, vec_widen_smult_lo_v16qi): + (vec_widen_umult_hi_v8hi, vec_widen_umult_lo_v8hi): + (vec_widen_smult_hi_v8hi, vec_widen_smult_lo_v8hi): New widening + multiplication patterns. + + * target.h (builtin_mul_widen_even, builtin_mul_widen_odd): New. + * target-def.h (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_EVEN): + (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_ODD): New. + * config/rs6000/rs6000.c (rs6000_builtin_mul_widen_even): New. + (rs6000_builtin_mul_widen_odd): New. + (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_EVEN): Defined. + (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_ODD): Defined. + * tree-vectorizer.h (enum vect_relevant): New enum type. + (_stmt_vec_info): Field relevant chaned from bool to enum + vect_relevant. + (STMT_VINFO_RELEVANT_P): Updated. + (STMT_VINFO_RELEVANT): New. + * tree-vectorizer.c (new_stmt_vec_info): Use STMT_VINFO_RELEVANT + instead of STMT_VINFO_RELEVANT_P. + * tree-vect-analyze.c (vect_mark_relevant, vect_stmt_relevant_p): + Replace calls to STMT_VINFO_RELEVANT_P with STMT_VINFO_RELEVANT, + and boolean variable with enum vect_relevant. + (vect_mark_stmts_to_be_vectorized): Likewise + update documentation. + * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_EVEN): New. + (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_ODD): New. + + 2006-11-08 Richard Henderson + + * config/i386/sse.md (vec_widen_umult_hi_v8hi, + vec_widen_umult_lo_v8hi): New. + (vec_widen_smult_hi_v4si, vec_widen_smult_lo_v4si, + vec_widen_umult_hi_v4si, vec_widen_umult_lo_v4si): New. + + * config/i386/i386.c (ix86_expand_sse_unpack): New. + * config/i386/i386-protos.h (ix86_expand_sse_unpack): New. + * config/i386/sse.md (vec_unpacku_hi_v16qi, vec_unpacks_hi_v16qi, + vec_unpacku_lo_v16qi, vec_unpacks_lo_v16qi, vec_unpacku_hi_v8hi, + vec_unpacks_hi_v8hi, vec_unpacku_lo_v8hi, vec_unpacks_lo_v8hi, + vec_unpacku_hi_v4si, vec_unpacks_hi_v4si, vec_unpacku_lo_v4si, + vec_unpacks_lo_v4si): New. + + 2006-11-08 Dorit Nuzman + + * tree-vect-transform.c (vectorizable_type_demotion): New function. + (vect_transform_stmt): Add case for type_demotion_vec_info_type. + (vect_analyze_operations): Call vectorizable_type_demotion. + * tree-vectorizer.h (type_demotion_vec_info_type): New enum + stmt_vec_info_type value. + (vectorizable_type_demotion): New function declaration. + * tree-vect-generic.c (expand_vector_operations_1): Consider correct + mode. + + * tree.def (VEC_PACK_MOD_EXPR, VEC_PACK_SAT_EXPR): New tree-codes. + * expr.c (expand_expr_real_1): Add case for VEC_PACK_MOD_EXPR and + VEC_PACK_SAT_EXPR. + * tree-iniline.c (estimate_num_insns_1): Likewise. + * tree-pretty-print.c (dump_generic_node, op_prio): Likewise. + * optabs.c (optab_for_tree_code): Likewise. + + * optabs.c (expand_binop): In case of vec_pack_*_optabs the mode + compared against the predicate of the result is not 'mode' (the input + to the function) but a mode with half the size of 'mode'. + (init_optab): Initialize new optabs. + * optabs.h (OTI_vec_pack_mod, OTI_vec_pack_ssat, OTI_vec_pack_usat): + New optab indices. + (vec_pack_mod_optab, vec_pack_ssat_optab, vec_pack_usat_optab): New + optabs. + * genopinit.c (vec_pack_mod_optab, vec_pack_ssat_optab): + (vec_pack_usat_optab): Initialize new optabs. + * doc/md.texi (vec_pack_mod, vec_pack_ssat, vec_pack_usat): New. + * config/rs6000/altivec.md (vec_pack_mod_v8hi, vec_pack_mod_v4si): New. + + 2006-11-08 Richard Henderson + + * config/i386/sse.md (vec_pack_mod_v8hi, vec_pack_mod_v4si): + (vec_pack_mod_v2di, vec_interleave_highv16qi, vec_interleave_lowv16qi): + (vec_interleave_highv8hi, vec_interleave_lowv8hi): + (vec_interleave_highv4si, vec_interleave_lowv4si): + (vec_interleave_highv2di, vec_interleave_lowv2di): New. + + 2006-11-08 Dorit Nuzman + + * tree-vect-transform.c (vectorizable_reduction): Support multiple + datatypes. + (vect_transform_stmt): Removed redundant code. + + 2006-11-08 Dorit Nuzman + + * tree-vect-transform.c (vectorizable_operation): Support multiple + datatypes. + + 2006-11-08 Dorit Nuzman + + * tree-vect-transform.c (vect_align_data_ref): Removed. + (vect_create_data_ref_ptr): Added additional argument - ptr_incr. + Updated function documentation. Return the increment stmt in ptr_incr. + (bump_vector_ptr): New function. + (vect_get_vec_def_for_stmt_copy): New function. + (vect_finish_stmt_generation): Create a stmt_info to newly created + vector stmts. + (vect_setup_realignment): Call vect_create_data_ref_ptr with additional + argument. + (vectorizable_reduction, vectorizable_assignment): Not supported yet if + VF is greater than the number of elements that can fit in one vector + word. + (vectorizable_operation, vectorizable_condition): Likewise. + (vectorizable_store, vectorizable_load): Support the case that the VF + is greater than the number of elements that can fit in one vector word. + (vect_transform_loop): Don't fail in case of multiple data-types. + * tree-vect-analyze.c (vect_determine_vectorization_factor): Don't fail + in case of multiple data-types; the smallest type determines the VF. + (vect_analyze_data_ref_dependence): Don't record datarefs as same_align + if they are of different sizes. + (vect_update_misalignment_for_peel): Compare misalignments in terms of + number of elements rather than number of bytes. + (vect_enhance_data_refs_alignment): Fix/Add dump printouts. + (vect_can_advance_ivs_p): Fix a dump printout + +2006-11-07 Eric Christopher + + * libgcc2.c (__bswapdi2): Rename from bswapDI2. + (__bswapsi2): Ditto. + * libgcc2.h: Remove transformation of bswap routines. + * config/i386/i386.md (bswapsi2): New. + (bswapdi2): Ditto. + +2006-11-07 Jakub Jelinek + + * c-common.c (c_common_attributes): Add gnu_inline attribyte. + (handle_gnu_inline_attribute): New function. + * c-decl.c (diagnose_mismatched_decls): Handle gnu_inline attribute. + (merge_decls, start_decl, start_function): Likewise. + * doc/extend.texi: Document gnu_inline attribute. + +2006-11-07 Steve Ellcey + + PR other/25028 + * config/ia64/t-hpux (LIB1ASMFUNCS): Filter out _fixtfdi, + _fixunstfdi, and _floatditf + +2006-11-06 Anatoly Sokolov + + * config/avr/avr-protos.h (mask_one_bit_p, const_int_pow2_p): Remove + prototype. + * config/avr/avr.c (mask_one_bit_p, const_int_pow2_p): Remove. + (output_movhi, ashlhi3_out, ashlsi3_out, ashrhi3_out, ashrsi3_out, + lshrhi3_out, lshrsi3_out): Remove unnecessary code for handling value + which start in an odd register. + +2006-11-07 Richard Sandiford + + * config/mips/mips.h (ISA_HAS_PREFETCHX): Fix typo. + +2006-11-07 Josh Conner + + * doc/invoke.texi (fstrict-aliasing): Move implementation + details... + * doc/tree-ssa.texi (Alias analysis): ...here. + +2006-11-07 Richard Guenther + + PR tree-optimization/29610 + * tree-cfgcleanup.c (cleanup_control_flow): Honor return value + of tree_purge_dead_eh_edges as it may free dominators. + + * g++.dg/other/pr29610.C: New testcase. + +2006-11-07 David Ung + + * config/mips/mips.c (mips_rtx_cost_optimize_size): New table of + costs when optimizing for size. + (override_options): Use mips_rtx_cost_optimize_size table for cost + calculations. + +2006-11-07 Jie Zhang + + * gcc.c (process_command): Treat -b as normal switch if its argument + has no dash. + +2006-11-07 David Ung + + * config/mips/mips.h (ISA_HAS_PREFETCHX): Add ISA_MIPS32R2 to the + list. + +2006-11-06 Eric Christopher + + * config.gcc: Add x86_64-darwin host support. + * config.host: Ditto. + * config/i386/darwin64.h: New file. + * config/i386/t-darwin64: Ditto. + +2006-11-06 Janis Johnson + + * gcc/doc/sourcebuild.texi (Test Directives): Add output-exists + and output-exists-not. + +2006-11-06 Andrew Pinski + + PR tree-opt/29439 + * tree-vrp.c (vrp_int_const_binop): Use the correct tree when + checking for overflow. + +2006-11-06 Jan van Dijk + + * configure.ac: Fixed typo in case statement: :: changed to ;; + +2006-11-06 Bob Wilson + + * longlong.h (__xtensa__): Add definitions for umul_ppmm, __umulsidi3, + count_leading_zeros, and count_trailing_zeros. + * config/xtensa/xtensa.c (TARGET_INIT_BUILTINS): Define. + (TARGET_FOLD_BUILTIN): Define. + (TARGET_EXPAND_BUILTIN): Define. + (xtensa_init_builtins): New. + (xtensa_fold_builtin): New. + (xtensa_expand_builtin): New. + (xtensa_rtx_costs): Add CTZ and CLZ. Adjust costs for MULT. + * config/xtensa/xtensa.h (TARGET_MUL32_HIGH): Define. + (CLZ_DEFINED_VALUE_AT_ZERO): Define. + (CTZ_DEFINED_VALUE_AT_ZERO): Define. + * config/xtensa/xtensa.md (UNSPEC_NSAU): Remove. + (any_extend): New code macro. + (u, su): New code attributes. + (mulsidi3, mulsi3_highpart, clzsi2, ctzsi2): New. + (nsau): Remove; replaced by clzsi2. + (ffssi2): Use clzsi2. + * config/xtensa/t-xtensa (LIB1ASMFUNCS): Add _umulsidi3, + _clzsi2, _ctzsi2, and _ffssi2. Rename _nsau to _clz. + * config/xtensa/lib1funcs.asm (__mulsi3): Support Mul32 option. + (__umulsidi3, __clzsi2, __ctzsi2, __ffssi2): New. + (__nsau_data): Guard with ifdef L_clz instead of L_nsau. + +2006-11-06 Vladimir Prus + + * config/arm/t-strongarm-pe: (TARGET_LIBGCC2_CFLAGS): Do no + set inhibit_libc. + * config/arm/t-strongarm-elf: Likewise. + * config/arm/t-pe: Likewise. + * config/arm/t-arm-elf: Likewise. + * config/arm/t-xscale-elf: Likewise. + * config/arm/t-arm-coff: Likewise. + * config/arm/t-xscale-coff: Likewise. + * config/arm/t-wince-pe: Likewise. + +2006-11-05 Kaz Kojima + + * config/sh/lib1funcs-4-300.asm: Guard entire file with + #if !__SHMEDIA__ . + +2006-11-05 Jakub Jelinek + + PR middle-end/29695 + * fold-const.c (fold_ternary): Fix A < 0 ? : 0 + simplification. + +2006-11-04 Uros Bizjak + + PR target/26915 + * config/i386/i386.c (standard_80387_constant_p): Treat -0.0 and -1.0 + as a valid 80387 constant. + (standard_80387_constant_opcode): Return "#" for -0.0 and -1.0. + * config/i386/i386.md (unnamed splitter): Split the load of + constant -0.0 or -1.0 into the load of 0.0 or 1.0, followed + by negation. + +2006-11-04 Richard Earnshaw + + * arm.c (thumb_legitimate_addres_p): Allow any constant offset + from the soft-frame, argument and virtual registers. + +2006-11-04 Uros Bizjak + + * config/i386/i386.md (*movxf_nointeger, *movxf_integer): Enable + patterns for standard 80387 constants. + +2006-11-03 Paolo Bonzini + Steven Bosscher + + * fwprop.c: New file. + * Makefile.in: Add fwprop.o. + * tree-pass.h (pass_rtl_fwprop, pass_rtl_fwprop_with_addr): New. + * passes.c (init_optimization_passes): Schedule forward propagation. + * rtlanal.c (loc_mentioned_in_p): Support NULL value of the second + parameter. + * timevar.def (TV_FWPROP): New. + * common.opt (-fforward-propagate): New. + * opts.c (decode_options): Enable forward propagation at -O2. + * gcse.c (one_cprop_pass): Do not run local cprop unless touching jumps. + * cse.c (fold_rtx_subreg, fold_rtx_mem, fold_rtx_mem_1, find_best_addr, + canon_for_address, table_size): Remove. + (new_basic_block, insert, remove_from_table): Remove references to + table_size. + (fold_rtx): Process SUBREGs and MEMs with equiv_constant, make + simplification loop more straightforward by not calling fold_rtx + recursively. + (equiv_constant): Move here a small part of fold_rtx_subreg, + do not call fold_rtx. Call avoid_constant_pool_reference + to process MEMs. + * recog.h (canonicalize_change_group): New. + + * doc/invoke.texi (Optimization Options): Document fwprop. + * doc/passes.texi (RTL passes): Document fwprop. + +2006-11-03 Geoffrey Keating + + * c-decl.c (WANT_C99_INLINE_SEMANTICS): New, set to 1. + (merge_decls): Implement WANT_C99_INLINE_SEMANTICS. + (grokdeclarator): Likewise. + +2006-11-03 Steven Bosscher + + * tree-dump.c (dump_enable_all): Rename local variable + ir_type to avoid name conflicts. + * cfgloopmanip.c (lv_adjust_loop_entry_edge): Check for IR_GIMPLE + instead of using ir_type(). + * profile.c (tree_register_profile_hooks): Likewise. + * value-prof.c (tree_register_value_prof_hooks): Likewise. + * basic-block.h (struct edge_def): Likewise. + * config/arm/arm.c (legitimize_pic_address): Likewise. + * coretypes.h (ir_type): New enum of all intermediate languages + used in GCC. + * cfghooks.c (ir_type): Rename to... + (current_ir_type): ...this. Distinguish between cfgrtl and + cfglayout mode when the current IR is RTL. Return enum ir_type. + * cfghooks.h (ir_type): Replace with current_ir_type prototype. + +2006-11-03 Paul Brook + + * config/arm/arm.c (arm_file_start): New function. + (TARGET_ASM_FILE_START): Define. + (arm_default_cpu): New variable. + (arm_override_options): Set arm_default_cpu. + +2006-11-03 David Ung + + * config/mips/mips.h (processor_type): Removed PROCESSOR_24K, add + PROCESSOR_24KC and PROCESSOR_24KF. + * config/mips/mips.c (mips_cpu_info_table): Add processor names + and aliases for 4kec/4kem/4kep/24kec/24kef/24kex/34kc/34kf/34kx. + (mips_rtx_cost_data): Add costs for the 24kc. + * config/mips/mips.md ("cpu"): Remove 24k, add 24kc and 24kf. + * config/mips/24k.md: Remove references to 24k and replace with + uses of 24kc/24kf in the appropriate reservations. + * doc/invoke.texi (MIPS Options): Updated. + +2006-11-03 J"orn Rennecke + + * config/sh/crt1.asm: Fix #ifdef indent. + +2006-11-03 J"orn Rennecke + Merged from STMicroelectronics sources: + 2006-10-06 Andrew Stubbs + * config/sh/crt1.asm (vbr_600): Add missing #if. + 2006-08-03 J"orn Rennecke + * sh.opt (mfused-madd): New option. + * sh.md (mac_media, macsf3): Make conditional on TARGET_FMAC. + 2006-07-04 Andrew Stubbs + * config/sh/crt1.asm (vbr_start): Move to new section .test.vbr. + Remove pointless handler at VBR+0. + (vbr_200, vbr_300, vbr_500): Remove pointless handler. + (vbr_600): Save and restore mach and macl, fpul and fpscr and fr0 to + fr7. Make sure the timer handler is called with the correct FPU + precision setting, according to the ABI. + 2006-06-14 J"orn Rennecke + * config/sh/sh.opt (m2a-single, m2a-single-only): Fix Condition. + * config/sh/sh.h (SUPPORT_SH2A_NOFPU): Fix condition. + (SUPPORT_SH2A_SINGLE_ONLY, SUPPORT_SH2A_SINGLE_ONLY): Likewise. + 2006-06-09 J"orn Rennecke + * sh.md (cmpgeusi_t): Change into define_insn_and_split. Accept + zero as second operand. + 2006-04-28 J"orn Rennecke + * config/sh/divtab-sh4-300.c, config/sh/lib1funcs-4-300.asm: + Fixed some bugs related to negative values, in particular -0 + and overflow at -0x80000000. + * config/sh/divcost-analysis: Added sh4-300 figures. + 2006-04-27 J"orn Rennecke + * config/sh/t-sh (MULTILIB_MATCHES): Add -m4-300* / -m4-340 options. + 2006-04-26 J"orn Rennecke + * config/sh/t-sh (OPT_EXTRA_PARTS): Add libgcc-4-300.a. + ($(T)div_table-4-300.o, $(T)libgcc-4-300.a): New rules. + * config/sh/divtab-sh4-300.c, config/sh/lib1funcs-4-300.asm: + New files. + * config/sh/embed-elf.h (LIBGCC_SPEC): Use -lgcc-4-300 for -m4-300* / + -m4-340. + 2006-04-24 J"orn Rennecke + SH4-300 scheduling description & fixes to SH4-[12]00 description: + * sh.md: New instruction types: fstore, movi8, fpscr_toggle, gp_mac, + mac_mem, mem_mac, dfp_mul, fp_cmp. + (insn_class, dfp_comp, any_fp_comp): Update. + (push_fpul, movsf_ie, fpu_switch, toggle_sz, toggle_pr): Update type. + (cmpgtsf_t, "cmpeqsf_t, cmpgtsf_t_i4, cmpeqsf_t_i4): Likewise. + (muldf3_i): Likewise. + (movsi_i): Split rI08 alternative into two separate alternatives. + Update type. + (movsi_ie, movsi_i_lowpart): Likewise. + (movqi_i): Split ri alternative into two separate alternatives. + Update type. + * sh1.md (sh1_load_store, sh1_fp): Update. + * sh4.md (sh4_store, sh4_mac_gp, fp_arith, fp_double_arith): Update. + (mac_mem, sh4_fpscr_toggle): New insn_reservations. + * sh4a.md (sh4a_mov, sh4a_load, sh4a_store, sh4a_fp_arith): Update. + (sh4a_fp_double_arith): Likewise. + * sh4-300.md: New file. + * sh.c (sh_handle_option): Handle m4-300* options. + (sh_adjust_cost): Fix latency of auto-increments. + Handle SH4-300 differently than other SH4s. Check for new insn types. + * sh.h (OVERRIDE_OPTIONS): Initilize sh_branch_cost if it has not + been set by an option. + * sh.opt (m4-300, m4-100-nofpu, m4-200-nofpu): New options. + (m4-300-nofpu, -m4-340, m4-300-single, m4-300-single-only): Likewise. + (mbranch-cost=): Likewise. + * superh.h (STARTFILE_SPEC): Take -m4-340 into account. + + * sh.md (mulsf3): Remove special expansion code. + (mulsf3_ie): Now a define_insn_and_split. + (macsf3): Allow for TARGET_SH4. + + * sh.md (cbranchsi4, cbranchdi4, cbranchdi4_i): New patterns. + * sh.c (prepare_cbranch_operands, expand_cbranchsi4): New functions. + (expand_cbranchdi4): Likewise. + (sh_rtx_costs): Give lower cost for certain CONST_INT values and for + CONST_DOUBLE if the outer code is COMPARE. + * sh.h (OPTIMIZATION_OPTIONS): If not optimizing for size, set + TARGET_CBRANCHDI4 and TARGET_EXPAND_CBRANCHDI4. + (OVERRIDE_OPTIONS): For TARGET_SHMEDIA, clear TARGET_CBRANCHDI4. + (LEGITIMATE_CONSTANT_P): Also allow DImode and VOIDmode CONST_DOUBLEs. + Remove redundant fp_{zero,one}_operand checks. + * sh.opt (mcbranchdi, mexpand-cbranchdi, mcmpeqdi): New options. + * sh-protos.h (prepare_cbranch_operands, expand_cbranchsi4): Declare. + (expand_cbranchdi4): Likewise. + 2006-04-20 J"orn Rennecke + * sh.h (LOCAL_ALIGNMENT): Use DATA_ALIGNMENT. + +2006-11-02 Andrew Pinski + + * doc/md.texi (RS6000 constraints): Document H, Z, a, t, and W + constraints. + +2006-11-02 Brooks Moses + + * doc/invoke.texi: Fix mfp-trap-mode typo. + +2006-11-02 Carlos O'Donell + + * config/arm/linux-elf.h (NEED_INDICATE_EXEC_STACK): Define as 1. + * arm.c (arm_file_end): If NEED_INDICATE_EXEC_STACK call + file_end_indicate_exec_stack. + * arm.h [!NEED_INDICATE_EXEC_STACK] (NEED_INIDCATE_EXEC_STACK): + Define as 0. + * lib1funcs.asm [__ELF__ && __linux__]: Emit .note.GNU-stack section + for a non-executable stack. + * crti.asm: Likewise. + * crtn.asm: Likewise. + * libunwind.S: Likewise. + +2006-11-02 Ben Elliston + + * tree-ssa.c (warn_uninit): Use expand_location variables for + locus and declaration locus. + +2006-11-02 Kaz Kojima + + PR target/27405 + * config/sh/sh.md (cmp{eq,gt,gtu}{si,di}_media): Remove. + (cmpsi{eq,gt,gtu}{si,di}_media): Rename to + cmp{eq,gt,gtu}{si,di}_media. + (*cmpne0si_media): Remove. + (*movsicc_umin): Adjust gen_cmp*_media call. + (unordered): Change the mode of unordered and operands[1] to + SImode. + (seq): Adjust gen_cmp*_media calls. Make the mode of + a temporary result of compare SImode if needed. If the mode + of operands[0] is DImode, extend the temporary result to DImode. + (slt, sle, sgt, sge, sgtu, sltu, sleu, sgue, sne): Likewise. + (sunorderd): Change the mode of match_operand and unorderd to + SImode. + (cmpeq{sf,df}_media): Remove. + (cmpsieq{sf,df}_media): Rename to cmpeq{sf,df}_media. + (cmp{gt,ge,un}{sf,df}_media): Change the mode of match_operand + and compare operation to SImode. + +2006-11-02 Eric Botcazou + + * doc/install.texi (sparc-sun-solaris2*): Update GMP/MPFR build + instructions. + (sparc64-sun-solaris2*): Likewise. + +2006-11-02 Paul Brook + + * config/arm/arm.c (arm_elf_asm_constructor): Remove ATTRIBUTE_UNUSED + from priority argument. Use different section for non-default + priority. + * config/arm/elf.h: Remove definition of SUPPORTS_INIT_PRIORITY. + +2006-11-02 Eric Botcazou + + PR other/29639 + * except.c (switch_to_exception_section): Do not cache the section + if named sections are supported and HAVE_LD_EH_GC_SECTIONS is defined + and flag_function_sections is set. + +2006-11-01 Kaveh R. Ghazi + + PR middle-end/29335 + * builtins.c (do_mpfr_sincos): New. + (fold_builtin_1): Use it to fold builtin sincos. + +2006-11-01 Roger Sayle + + * config/darwin.h (CPP_SPEC): Handle -pthread, transforming + it into -D_REENTRANT. + +2006-11-01 Roger Sayle + + * configure.ac (HAVE_AS_IX86_DIFF_SECT_DELTA): New test to determine + whether the assembler supports taking the difference of symbols in + different sections. On x86/Solaris, GAS does but Solaris as doesn't. + * configure: Regenerate. + * config.in: Regenerate. + * config/i386/sol2-10.h (JUMP_TABLES_IN_TEXT_SECTION): Define if + the assembler doesn't support taking the difference of symbols in + different sections, i.e. we're using the native solaris assembler. + +2006-11-01 Pete Steinmetz + Peter Bergner + + * doc/invoke.texi: Add cpu_type power6x + (RS/6000 and PowerPC Options): Add -mmfpgpr. + * config.gcc: Add cpu_type power6x. + * configure.ac: Add test for mf{t,f}gpr instructions. + (HAVE_AS_MFPGPR): New. + * config.in: Regenerate. + * configure: Regenerate. + * config/rs6000/aix52.h (ASM_CPU_SPEC): Add power6x. + * config/rs6000/rs6000.md (define_attr "type"): Add insert_dword, + shift,trap,var_shift_rotate,cntlz,exts, var_delayed_compare, mffgpr + and mftgpr attributes. + (define_attr "cpu"): Add power6. + Change instruction sequences to use new attributes. + (floatsidf2,fix_truncdfsi2): use TARGET_MFPGPR. + (fix_truncdfsi2_mfpgpr): New. + (floatsidf_ppc64_mfpgpr): New. + (floatsidf_ppc64): Added !TARGET_MFPGPR condition. + (movdf_hardfloat64_mfpgpr,movdi_mfpgpr): New. + (movdf_hardfloat64): Added !TARGET_MFPGPR condition. + (movdi_internal64): Added !TARGET_MFPGPR and related conditions. + (fix_truncdfsi2): Use gpc_reg_operand constraint. + * config/rs6000/{6xx.md,power4.md,8540.md,603.md,mpc.md, + 7xx.md,rios2.md,7450.md,440.md,rios1.md,rs64.md,power5.md,40x.md}: + Add descriptions for insert_dword, shift,trap,var_shift_rotate, + cntlz,exts and var_delayed_compare. + * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define + _ARCH_PWR6X, if features enabled. + * config/rs6000/rs6000.opt (mmfpgpr): New. + * config/rs6000/rs6000.c (rs6000_align_branch_targets): New variable. + (cached_can_issue_more): New variable. + (processor_costs): Add power6_cost. + (rs6000_sched_init): New function. + (is_dispatch_slot_restricted): Deleted. + (set_to_load_agen): New function. + (is_load_insn,is_store_insn): New functions. + (adjacent_mem_locations): New function. + (insn_must_be_first_in_group): New function. + (insn_must_be_last_in_group): New function. + (rs6000_sched_reorder): New function. + (rs6000_sched_reorder2): New function. + (TARGET_SCHED_INIT,TARGET_SCHED_REORDER, + TARGET_SCHED_REORDER2): Define. + (processor_target_table): Use PROCESSOR_POWER6 for power6. + Add power6x. Add MASK_MFPGPR for power6x. + (POWERPC_MASKS): Add MASK_MFPGPR. + (rs6000_override_options): Set rs6000_always_hint to false + for power6. Set rs6000_align_branch_targets. Replace + rs6000_sched_groups check with rs6000_align_branch_targets. + Use PROCESSOR_POWER6. + (last_scheduled_insn): New variable. + (load_store_pendulum): New variable. + (rs6000_variable_issue): Set last_scheduled_insn and + cached_can_issue_more. + (rs6000_adjust_cost): Add power6 cost adjustments. + (rs6000_adjust_priority): Replace is_dispatch_slot_restricted + with insn_must_be_first_in_group. Add power6 priority adjustments. + (rs6000_issue_rate): Add CPU_POWER6. + (insn_terminates_group_p): Use insn_must_be_{first,last}_in_group. + * config/rs6000/rs6000.h (processor_type): Add PROCESSOR_POWER6. + (TARGET_MFPGPR): New. + (SECONDARY_MEMORY_NEEDED): Use TARGET_MFPGPR. + (ASM_CPU_SPEC): Add power6x. + (SECONDARY_MEMORY_NEEDED): Added mode!=DFmode and mode!=DImode + conditions. + * config/rs6000/power6.md: New file. + +2006-11-01 Adam Nemet + + * tree-pretty-print.c (dump_generic_node) : Use + HOST_WIDE_INT_PRINT to print high and low parts. Use + HOST_BITS_PER_WIDE_INT for the width of HOST_WIDE_INT. When + printing a hexadecimal number prefix it with 0x. + +2006-11-01 Chris Johns + + PR bootstrap/28400 + * Makefile.in (install-driver): Use exeext when installing + $target-gcc-$version. + +2006-11-01 Douglas Gregor + + * c-common.c (flag_cpp0x): New. + * c-common.h (flag_cpp0x): New. + * c-cppbuiltin.c (c_cpp_builtins): If C++0x extensions are + supported, define __GXX_EXPERIMENTAL_CPP0X__. + * c-opts.c (set_std_cxx0x): New. + (c_common_handle_option): Handle -std=c++0x, -std=gnu++0x. + * c.opt (std=c++0x): Document. + (std=gnu++0x): Ditto. + * doc/cpp.texi: Document __GXX_EXPERIMENTAL_CPP0X__. + * doc/invoke.texi: Document -std=c++0x, -std=gnu++0x. + +2006-11-01 Richard Guenther + + * config/i386/i386.c (ix86_expand_rint): Fix issues with + signed zeros. + (ix86_expand_floorceildf_32): Likewise. + (ix86_expand_floorceil): Likewise. + (ix86_expand_trunc): Likewise. + +2006-10-31 Andrew Pinski + + * doc/invoke.texi (-fkeep-inline-functions): Change "GNU C" + to "GNU C89". + +2006-11-01 Danny Smith + + * target.h (targetm.cxx.use_atexit_for_cxa_atexit): New target + hook. + * target-def.h: (TARGET_CXX_USE_ATEXIT_FOR_CXA_ATEXIT): Define + default. + * config/i386/mingw32.h (TARGET_CXX_USE_ATEXIT_FOR_CXA_ATEXIT): + Override default. + * doc/tm.texi (TARGET_CXX_USE_ATEXIT_FOR_CXA_ATEXIT): Document. + * configure.ac (use_cxa_atexit): As a special case, don't test + for libc definition of __cxa_atexit on mingw32 + * configure: Regenerate. + * config.gcc (i[34567]86-pc-mingw32): Default to + enable__cxa_atexit=yes. + +2006-11-01 Kaveh R. Ghazi + + * builtins.def (gamma, lgamma): Use ATTR_MATHFN_FPROUNDING_STORE. + +2006-10-31 Geoffrey Keating + + PR 23067 + * c-decl.c (start_struct): Don't create self-containing + structures. + * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align): + New. + * config/rs6000/rs6000-protos.h + (darwin_rs6000_special_round_type_align): New. + * config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Rewrite. + (ROUND_TYPE_ALIGN): Use darwin_rs6000_special_round_type_align. + +2006-10-31 Geoffrey Keating + + * toplev.c (compile_file): Call final_write_globals + even if there have been errors. + +2006-10-31 Eric Christopher + Falk Hueffner + + * doc/extend.texi (__builtin_bswap32): Document. + (__builtin_bswap64): Ditto. + * doc/libgcc.texi (bswapsi2): Document. + (bswapdi2): Ditto. + * doc/rtl.texi (bswap): Document. + * optabs.c (expand_unop): Don't widen a bswap. + (init_optabs): Init bswap. Set libfuncs explicitly + for bswapsi2 and bswapdi2. + * optabs.h (OTI_bswap): New. + (bswap_optab): Ditto. + * genopinit.c (optabs): Handle bswap_optab. + * tree.h (tree_index): Add TI_UINT32_TYPE and + TI_UINT64_TYPE. + (uint32_type_node): New. + (uint64_type_node): Ditto. + * tree.c (build_common_tree_nodes_2): Initialize + uint32_type_node and uint64_type_node. + * builtins.c (expand_builtin_bswap): New. + (expand_builtin): Call. + (fold_builtin_bswap): New. + (fold_builtin_1): Call. + * fold-const.c (tree_expr_nonnegative_p): Return true + for bswap. + * builtin-types.def (BT_UINT32): New. + (BT_UINT64): Ditto. + (BT_FN_UINT32_UINT32): Ditto. + (BT_FN_UINT64_UINT64): Ditto. + * builtins.def (BUILT_IN_BSWAP32): New. + (BUILT_IN_BSWAP64): Ditto. + * rtl.def (BSWAP): New. + * genattrtab.c (check_attr_value): New. + * libgcc2.c (__bswapSI2): New. + (__bswapDI2): Ditto. + * libgcc2.h (__bswapSI2): Declare. + (__bswapDI2): Ditto. + * mklibgcc.in (lib2funcs): Add _bswapsi2 and _bswapdi2. + * simplify-rtx.c (simplify_const_unary_operation): Return + 0 for BSWAP. + * libgcc-std.ver (__bwapsi2): Add. + (__bswapdi2): Ditto. + * reload1.c (eliminate_regs_1): Add bswap. + (elimination_effects): Ditto. + * config/i386/i386.h (x86_bswap): New. + (TARGET_BSWAP): Use. + * config/i386/i386.c (x86_bswap): Set. + +2006-10-31 Geoffrey Keating + + * coverage.c (coverage_checksum_string): Update comment. + * dwarf2out.c (switch_to_eh_frame_section): Update for removal + of get_file_function_name. + * cgraphunit.c (cgraph_build_static_cdtor): Update for rename + of get_file_function_name_long. + * tree.c (get_file_function_name): Rename from + get_file_function_name_long; improve comment; handle 'I' and 'D' + specially when the target has ctor/dtor support; remove special + handling for 'F'. + (get_file_function_name): Remove. + * tree.h (get_file_function_name): Rename from + get_file_function_name_long. + (get_file_function_name): Remove prototype. + +2006-10-31 Geoffrey Keating + + * config/i386/darwin.h (PREFERRED_DEBUGGING_TYPE): Remove. + * config/darwin.h (PREFERRED_DEBUGGING_TYPE): Set to DWARF2_DEBUG. + + * config/darwin.h (LINK_COMMAND_SPEC): Don't do weird things with -@. + Call dsymutil when compiling and linking one or more source files + in one step. + +2006-10-31 Geoffrey Keating + + PR 15834 + * config/darwin.h (NO_IMPLICIT_EXTERN_C): Define. + +2006-10-31 Geoffrey Keating + + * c-decl.c (grokdeclarator): Don't set DECL_EXTERNAL on + inline static functions in c99 mode. + + PR 16622 + * doc/extend.texi (Inline): Update. + * c-tree.h (struct language_function): Remove field 'extern_inline'. + * c-decl.c (current_extern_inline): Delete. + (pop_scope): Adjust test for an undefined nested function. + Add warning about undeclared inline function. + (diagnose_mismatched_decls): Update comments. Disallow overriding + of inline functions in a translation unit in C99. Allow inline + declarations in C99 at any time. + (merge_decls): Boolize variables. Handle C99 'extern inline' + semantics. + (grokdeclarator): Set DECL_EXTERNAL here for functions. Handle + C99 inline semantics. + (start_function): Don't clear current_extern_inline. Don't set + DECL_EXTERNAL. + (c_push_function_context): Don't push current_extern_inline. + (c_pop_function_context): Don't restore current_extern_inline. + + PR 11377 + * c-typeck.c (build_external_ref): Warn about static variables + used in extern inline functions. + * c-decl.c (start_decl): Warn about static variables declared + in extern inline functions. + +2006-10-31 Roger Sayle + + PR middle-end/23470 + * tree.h (tree_expr_nonnegative_p): Return "bool" instead of "int". + * fold-const.c (tree_expr_nonnegative_p): Likewise. Consider + pow(x,y) and powi(x,y) to be nonnegative if either x is nonnegative + or y is an even integer. + +2006-10-31 Eric Botcazou + + PR target/24071 + * gthr-posix.h (__gthread_active_p): New implementation on Solaris. + * gthr-posix95.h (__gthread_active_p): Likewise. + +2006-10-31 Richard Guenther + + * config/i386/i386.md (asindf2, asinsf2, asinxf2, acosdf2, + acossf2, acosxf2, log1psf2, log1pdf2, log1pxf2, ilogbsi2, + expsf2, expdf2, expxf2, exp10sf2, exp10df2, exp10xf2, + exp2sf2, exp2df2, exp2xf2, expm1df2, expm1sf2, expm1xf2, + ldexpdf3, ldexpsf3, ldexpxf3, rintxf2, rintdf2, rintsf2, + lrounddi2, lroundsi2, floorxf2, floordf2, floorsf2, + lfloordi2, lfloorsi2, ceilxf2, ceildf2, ceilsf2, + btruncxf2, btruncdf2, btruncsf2): Conditionalize expansion on + !optimize_size. + +2006-10-31 Steven Bosscher + + * opts.c (decode_options): Disable CSE skip blocks. + +2006-10-30 Dirk Mueller + + * c-common.h (strict_aliasing_warning): Fix whitespace. + * c-decl (start_function): Move code for main decl warning .. + * c-common.c (check_main_parameter_types): .. here. + * c-common.h (check_main_parameter_types): Declare. + +2006-10-30 Kaveh R. Ghazi + + PR middle-end/29335 + * builtins.c (fold_builtin_1): Evaluate tgamma using MPFR. + +2006-10-30 Pete Steinmetz + + * recog.c (store_data_bypass_p): Add support to allow IN_INSN to + be a PARALLEL containing sets. Return false when out_pat is not + a PARALLEL insn. + +2006-10-30 Richard Sandiford + + * config/mips/mips.md (mul3): Split into... + (mulsi3, muldi3): ...these separate patterns. + +2006-10-30 Richard Sandiford + + * config/mips/linux64.h (DRIVER_SELF_SPECS): Use a single spec, + but with each set of options separated by spaces. + +2006-10-30 J"orn Rennecke + + * unwind-dw2.c (uw_init_context_1): Fix test that checks if + dwarf_reg_size_table has been initialized. + +2006-10-30 Roger Sayle + + * builtins.c (expand_builtin_mathfn_3): Correct coding style. + * ddg.c (print_ddg_edge): Likewise. + * dwarf2out.c (prune_unused_types_walk): Likewise. + * ifcvt.c (noce_try_cmove_arith): Likewise. + * langhooks.c (add_builtin_function): Likewise. + * reg-stack.c (subst_stack_regs_pat): Likewise. + * tree.c (expanded_location): Likewise. + * tree-dump.c (dequeue_and_dump): Likewise. + +2006-10-30 David Daney + + * config/mips/linux.h (NO_SHARED_SPECS): Correct syntax error. + +2006-10-30 Jakub Jelinek + + PR tree-optimization/29637 + * tree.c (make_vector_type): Don't recurse if TYPE_MAIN_VARIANT + of the innertype is the innertype itself. + +2006-10-30 Danny Smith + + * dwarf2out.c (file_name_acquire): Correct typo. + +2006-10-29 Daniel Berlin + + * tree.h (tree_value_handle): Remove struct value_set declaration. + Change value_set to bitmap_set. + * tree-pretty-print.c (dump_generic_node): Use has_stmt_ann. + * tree-vn.c (get_value_handle): Made inline and moved to + tree-flow-inline.h. + * tree-flow-inline.h: (has_stmt_ann): New function. + * tree-ssa-pre.c (expressions): New variable. + (next_expression_id): Ditto. + (alloc_expression_id): New function. + (struct value_set): Remove. + (get_expression_id): New function. + (get_or_alloc_expression_id): Ditto. + (expression_for_id): Ditto. + (clear_expression_ids): Ditto. + (FOR_EACH_EXPR_ID_IN_SET): New macro. + (bb_value_sets): Renamed to bb_bitmap_sets. + All value sets replaced with bitmap_sets. + Add visited member. + (BB_VISITED): New macro. + (postorder): New variable. + (add_to_value): Removed. + (value_exists_in_set_bitmap): Ditto. + (value_insert_into_set_bitmap): Ditto. + (set_new): Ditto. + (set_copy): Ditto. + (set_remove): Ditto. + (set_contains_value): Ditto. + (insert_into_set): Ditto. + (set_equal): Ditto. + (find_leader): Ditto. + (bitmap_set_subtract_from_value_set): Ditto. + (value_insert_into_set): Ditto. + (print_value_set): Ditto. + (debug_value_set): Ditto. + (constant_expr_p): New function. + (bitmap_remove_from_set): Ditto. + (bitmap_insert_into_set): Ditto. + (bitmap_set_free): Ditto. + (vh_compare): Ditto. + (sorted_array_from_bitmap_set): Ditto. + (bitmap_set_subtract): Ditto. + (bitmap_set_equal): Ditto. + (debug_bitmap_set): Ditto. + (find_leader_in_sets): Ditto. + (bitmap_set_replace_value): Modify for bitmapped sets. + (phi_translate): Ditto. + (phi_translate_set): Ditto. + (bitmap_find_leader): Ditto. + (valid_in_sets): Ditto. + (union_contains_value): Ditto. + (clean): Ditto. + (compute_antic_aux): Ditto. Mark changed blocks. + (compute_antic): Ditto. Iterate in postorder and only over + changing blocks. + (compute_rvuse_and_antic_safe): Reuse postorder. + (create_component_ref_by_pieces): Modify for bitmapped sets. + (find_or_generate_expression): Ditto. + (create_expression_by_pieces): Ditto. + (insert_into_preds_of_block): Ditto. + (changed_blocks): New variable. + (do_regular_insertion): Broken out from insert_aux. + (insert_aux): Modified for bitmapped sets. + (find_existing_value_expr): New function. + (create_value_expr_from): Use it. + (insert_extra_phis): Removed. + (print_bitmap_set): Renamed from bitmap_print_value_set. + (compute_avail): Handle RETURN_EXPR. + (init_pre): Modify for bitmapped sets. + * tree-flow.h (has_stmt_ann): New function. + +2006-10-29 Roger Sayle + + * builtins.c (fold_builtin_floor): Check for the availability of + the C99 trunc function before transforming floor into trunc. + +2006-10-29 Kaveh R. Ghazi + + * builtins.c (fold_builtin_hypot): Rearrange recursive + transformation before others, and also do ABS_EXPR. When + necessary, check flag_unsafe_math_optimizations. When necessary, + add fabs. + +2006-10-29 Roger Sayle + + * fold-const.c (fold_comparison): Fold ~X op ~Y as Y op X. + Fold ~X op C as X op' ~C, where op' is the swapped comparison. + (fold_binary): ~X eq/ne C is now handled in fold_comparison. + Fold -X eq/ne -Y as X eq/ne Y. + +2006-10-29 Richard Sandiford + + * config/mips/mips.md (mul3): Check ISA_HAS_MUL3 rather than + GENERATE_MULT3_. Restrict the test to SImode. Use ISA_HAS_MUL3 + rather than GENERATE_MULT3_SI in the various define_peephole2s. + (mulsi3_mult3): Depend on ISA_HAS_MUL3 rather than GENERATE_MULT3_SI. + Use an inclusive test for "mult" rather than "mul". + (rotr3): Depend on ISA_HAS_ROR. + * config/mips/mips.h (GENERATE_MULT3_SI): Delete in favor of + ISA_HAS_MUL3. + (GENERATE_MULT3_DI): Delete. + (ISA_HAS_64BIT_REGS): Use consistent formatting. + (ISA_HAS_MUL3): New macro. + (ISA_HAS_CONDMOVE, ISA_HAS_8CC): Use consistent formatting. + (ISA_HAS_FP4, ISA_HAS_MADD_MSUB, ISA_HAS_NMADD_NMSUB): Likewise. + (ISA_HAS_CLZ_CLO): Likewise. + (ISA_HAS_DCLZ_DCLO): Delete. + (ISA_HAS_MULHI, ISA_HAS_MULS, ISA_HAS_MSAC): Require !TARGET_MIPS16. + (ISA_HAS_MACC): Require !TARGET_MIPS16 for all ISAs, not just + the VR4120 and VR4130. + (ISA_HAS_MACCHI): Use consistent formatting. + (ISA_HAS_ROTR_SI, ISA_HAS_ROTR_DI): Delete in favor of... + (ISA_HAS_ROR): ...this new macro. + (ISA_HAS_PREFETCH, ISA_HAS_PREFETCHX): Use consistent formatting. + (ISA_HAS_SEB_SEH, ISA_HAS_EXT_INS): Likewise. + (ISA_HAS_LOAD_DELAY): Use ISA_MIPS1. + +2006-10-29 Roger Sayle + + PR tree-optimization/15458 + * fold-const.c (fold_binary): Optimize ~X ^ C as X ^ ~C, where C + is a constant. + +2006-10-29 Richard Guenther + + * config/i386/i386-protos.h (ix86_expand_trunc): Declare. + (ix86_expand_truncdf_32): Likewise. + * config/i386/i386.c (ix86_expand_trunc): New function expanding + trunc inline for SSE math and -fno-trapping-math and if not + optimizing for size. + (ix86_expand_truncdf_32): Same for DFmode on 32bit archs. + * config/i386/i386.md (btruncsf2, btruncdf2): Adjust expanders + for expanding btrunc inline for SSE math. + +2006-10-29 Joseph Myers + + * config.gcc (i[34567]86-*-linux*): Handle --enable-targets=all. + Handle tuning for bi-arch i[34567]86-*-linux* like that for + i[34567]86-*-solaris2.1[0-9]*. + * config/i386/linux64.h (TARGET_VERSION, MULTILIB_DEFAULTS): + Define conditionally depending on TARGET_64BIT_DEFAULT. + (SPEC_32, SPEC_64): Define. + (LINK_SPEC): Use them. + * doc/install.texi (--enable-targets=all): Document for x86-linux. + +2006-10-29 Richard Guenther + + * config/i386/i386-protos.h (ix86_expand_round): Declare. + (ix86_expand_rounddf_32): Likewise. + * config/i386/i386.c (ix86_expand_round): New function expanding + round inline for SSE math and -fno-trapping-math and if not + optimizing for size. + (ix86_expand_rounddf_32): Same for DFmode on 32bit archs. + * config/i386/i386.md (rounddf2, roundsf2): New pattern expanding + round via ix86_expand_round. + +2006-10-29 Richard Guenther + + * config/i386/i386-protos.h (ix86_expand_floorceil): Declare. + (ix86_expand_floorceildf_32): Likewise. + * config/i386/i386.c (ix86_expand_sse_compare_mask): New + static helper function. + (ix86_expand_floorceil): Expander for floor and ceil to SSE + math. + (ix86_expand_floorceildf_32): Same for DFmode on 32bit archs. + * config/i386/i386.md (floordf2): Adjust to enable floor + expansion via ix86_expand_floorceil if TARGET_SSE_MATH and + -fno-trapping-math is enabled and if not optimizing for size. + (floorsf2, ceildf2, ceilsf2): Likewise. + * config/i386/sse.md (sse_maskcmpsf3): New insn. + (sse2_maskcmpdf3): Likewise. + +2006-10-29 Richard Guenther + + * builtins.c (expand_builtin_mathfn): Expand nearbyint as + rint in case -fno-trapping-math is enabled. + * config/i386/i386-protos.h (ix86_expand_rint): Declare. + * config/i386/i386.c (ix86_gen_TWO52): New static helper function. + (ix86_expand_sse_fabs): Likewise. + (ix86_expand_rint): New function expanding rint to x87 or SSE math. + * config/i386/i386.md (rintdf2): Enable for SSE math if + -fno-trapping-math is enabled, use ix86_expand_rint for expansion. + (rintsf2): Likewise. + +2006-10-29 Richard Guenther + + * genopinit.c (optabs): Change lfloor_optab and lceil_optab + to conversion optabs. + * optabs.c (init_optabs): Initialize lfloor_optab and lceil_optab + as conversion optab. + * optabs.h (enum optab_index): Remove OTI_lfloor and OTI_lceil. + (enum convert_optab_index): Add COI_lfloor and COI_lceil. + (lfloor_optab, lceil_optab): Adjust defines. + * builtins.c (expand_builtin_int_roundingfn): Adjust for + lfloor and lceil optabs now being conversion optabs. + * config/i386/i386-protos.h (ix86_expand_lfloorceil): Declare. + * config/i386/i386.c (ix86_expand_sse_compare_and_jump): + New static helper function. + (ix86_expand_lfloorceil): New function to expand lfloor and + lceil inline. + * config/i386/i386.md (lfloor2): Split into ... + (lfloorxf2): ... x87 variant + (lfloordi2, lfloorsi2): ... and SSE variants + using ix86_expand_lfloorceil. + (lceil2, lceilxf2, lceildi2, lceilsi2): + Likewise. + * doc/md.texi (lfloorMN, lceilMN): Document. + +2006-10-29 Richard Sandiford + + * configure.ac (HAVE_AS_NO_SHARED): New AC_DEFINE. Test for the + -mno-shared assembler option on mips targets. + * configure, config.in: Regenerate. + * config/mips/linux.h (NO_SHARED_SPECS): New macro. + (DRIVER_SELF_SPECS): Define to NO_SHARED_SPECS if non-empty. + * config/mips/linux64.h (DRIVER_SELF_SPECS): Include NO_SHARED_SPECS. + +2006-10-29 Richard Sandiford + + * config/mips/mips.c (mips_classify_symbol): Test DECL_WEAK as well + as TREE_PUBLIC when deciding whether to return SYMBOL_GOT_GLOBAL. + +2006-10-29 Kazu Hirata + + * config/darwin.c, config/darwin.opt, config/ia64/itanium1.md, + config/ia64/itanium2.md, real.c, tree-ssa-structalias.c: Fix + comment typos. + +2006-10-28 Kaveh R. Ghazi + + PR middle-end/29335 + * builtins.c (do_mpfr_arg2, fold_builtin_hypot): New. + (fold_builtin_pow): Evaluate constant arguments at compile-time + using MPFR. + (fold_builtin_1): Handle BUILT_IN_ATAN2 and BUILT_IN_HYPOT. + (do_mpfr_ckconv): New helper function. + (do_mpfr_arg1): Use do_mpfr_ckconv. + (do_mpfr_arg2): New. + +2006-10-28 Andrew Pinski + + PR tree-opt/29271 + * doc/invoke.texi (-fdump-rtl-sched2) Fix file extension number. + (-fdump-rtl-sched): Rename to .. + (-fdump-rtl-sched1): here. Also fix file extension number. + +2006-10-28 Richard Guenther + + * fold-const.c (maybe_canonicalize_comparison): Fix code + to match comment. + +2006-10-28 Uros Bizjak + + * config/i386/i386.h (GENERAL_REGNO_P): Use STACK_POINTER_REGNUM. + (NON_QI_REG_P): Use IN_RANGE. + (REX_INT_REGNO_P): Use IN_RANGE. + (FP_REGNO_P): Use IN_RANGE. + (SSE_REGNO_P): Use IN_RANGE. + (REX_SSE_REGNO_P): Use IN_RANGE. + (MMX_REGNO_P): Use IN_RANGE. + (STACK_REGNO_P): New macro. + (STACK_REG_P): Use STACK_REGNO_P. + (NON_STACK_REG_P): Use STACK_REGNO_P. + (REGNO_OK_FOR_INDEX_P): Use REX_INT_REGNO_P. + (REGNO_OK_FOR_BASE_P): Use GENERAL_REGNO_P. + (REG_OK_FOR_INDEX_NONSTRICT_P): Use REX_INT_REGNO_P. + (REG_OK_FOR_BASE_NONSTRICT_P): Use GENERAL_REGNO_P. + (HARD_REGNO_RENAME_OK): Use !IN_RANGE. + +2006-10-28 Eric Botcazou + + * except.h (output_function_exception_table): Add 'const char*' param. + * except.c (switch_to_exception_section): Add 'const char*' param. + If named sections are supported and HAVE_LD_EH_GC_SECTIONS is defined + and flag_function_sections is set, use a function-specific section. + (output_function_exception_table): Add 'const char*' param. + Adjust call to switch_to_exception_section. + * final.c (rest_of_handle_final): Adjust calls to + output_function_exception_table. + * configure.ac (HAVE_LD_EH_GC_SECTIONS): New check. + * config.in: Regenerate. + * configure: Likewise. + +2006-10-28 Richard Guenther + + PR middle-end/26899 + * fold-const.c (maybe_canonicalize_comparison_1): Helper + for maybe_canonicalize_comparison. + (maybe_canonicalize_comparison): New function for canonicalizing + comparison trees. + (fold_comparison): Call it to canonicalize comparisons with + constants involved. + +2006-10-28 Richard Guenther + + PR target/28806 + * builtins.c (expand_builtin_int_roundingfn_2): Expand + BUILT_IN_LROUND and BUILT_IN_LLROUND from here. + (expand_builtin): Adjust likewise. + * genopinit.c (optabs[]): Add lround optab. + * optabs.c (init_optabs): Initialize lround_optab. + * optabs.h (enum convert_optab_index): Add COI_lround. + (lround_optab): Define. + * config/i386/i386-protos.h (ix86_expand_lround): Declare. + * config/i386/i386.c (ix86_sse_copysign_to_positive): New + static function. + (ix86_expand_lround): New function. + * config/i386/i386.md (lrounddi2, lroundsi2): + New expanders. + * doc/md.texi (lroundMN2): Document. + +2006-10-28 Uros Bizjak + + PR target/29377 + * config/h8300/h8300.c (h8300_emit_stack_adjustment): Change "size" + argument to HOST_WIDE_INT. Update function prototype. + (round_frame_size): Change return type to HOST_WIDE_INT. Change + "size" argument to HOST_WIDE_INT. Update function prototype. + +2006-10-28 Uros Bizjak + + * config/i386/i386.c (output_387_ffreep): Create output from a + template string for !HAVE_AS_IX86_FFREEP. + +2006-10-27 Eric Christopher + + * config/darwin.c: Fix formatting and grammar. + +2006-10-27 Jan Hubicka + + * builtins.c (fold_builtin): Don't generate NOP_EXPR that is going + to be thrown away soon when IGNORE is set. + * tree-ssa-ccp.c (convert_to_gimple_builtin): Add IGNORE argument + indicating when return value shall not be computed. + * gimplify.c (internal_get_tmp_var): Avoid random tree sharing. + +2006-10-27 Vladimir Makarov + + * config/i386/i386.h (TARGET_GEODE): + (TARGET_CPU_CPP_BUILTINS): Add code for geode. + (TARGET_CPU_DEFAULT_geode): New macro. + (TARGET_CPU_DEFAULT_k6, TARGET_CPU_DEFAULT_k6_2, + TARGET_CPU_DEFAULT_k6_3, TARGET_CPU_DEFAULT_athlon, + TARGET_CPU_DEFAULT_athlon_sse, TARGET_CPU_DEFAULT_k8, + TARGET_CPU_DEFAULT_pentium_m, TARGET_CPU_DEFAULT_prescott, + TARGET_CPU_DEFAULT_nocona, TARGET_CPU_DEFAULT_generic): Increase + the macro values. + (TARGET_CPU_DEFAULT_NAMES): Add geode. + (processor_type): Add PROCESSOR_GEODE. + + * config/i386/i386.md: Include geode.md. + (cpu): Add geode. + + * config/i386/i386.c (geode_cost): New initialized global + variable. + (m_GEODE, m_K6_GEODE): New macros. + (x86_use_leave, x86_push_memory, x86_deep_branch, x86_use_sahf, + x86_use_himode_fiop, x86_promote_QImode, x86_add_esp_4, + x86_add_esp_8, x86_rep_movl_optimal, x86_ext_80387_constants, + x86_schedule): Use m_K6_GEODE instead of m_K6. + (x86_movx, x86_cmove): Set up m_GEODE. + (x86_integer_DFmode_moves): Clear m_GEODE. + (processor_target_table): Add entry for geode. + (processor_alias_table): Ditto. + + * config/i386/geode.md: New file. + + * doc/invoke.texi: Add entry about geode processor. + +2006-10-27 Mike Stump + + * config/darwin-c.c (darwin_cpp_builtins): Move __STATIC__ and + __DYNAMIC__ from here back to ... + * config/darwin.h (CPP_SPEC): ... here. + +2006-10-26 Nathan Froyd + Nathan Sidwell + + * ggc-common.c (ggc_min_heapsize_heuristic): Be more conservative + when choosing the minimum heapsize. + +2006-10-26 Nathan Froyd + + * gcc/unwind-dw2.h: Move cfa-related variables into + struct frame_state_reg_info to ensure that the CFA is properly + handled when executing DW_CFA_{remember,restore}_state. + * gcc/unwind-dw2.c, gcc/config/alpha/linux-unwind.h, + gcc/config/alpha/vms-unwind.h, gcc/config/s390/tpf-unwind.h + gcc/config/s390/linux-unwind.h, gcc/config/sparc/linux-unwind.h + gcc/config/i386/linux-unwind.h, gcc/config/sh/linux-unwind.h + gcc/config/rs6000/linux-unwind.h, + gcc/config/rs6000/darwin-fallback.c, gcc/config/pa/linux-unwind.h, + gcc/config/pa/hpux-unwind.h, gcc/config/mips/linux-unwind.h: + Modify to use new cfa_* fields. + +2006-10-26 Andreas Krebbel + + * config/s390/s390.c (s390_init_frame_layout): Check positive + frame_size. + +2006-10-26 Ben Elliston + + * gimplify.c (get_name): Remove extraneous break. + (gimplify_omp_for): Initialise ret with GS_OK. + +2006-10-25 Steve Ellcey + + * config/ia64/hpux.h: Define _INCLUDE__STDC_A1_SOURCE in C++. + Add unix98.o to link line. + +2006-10-25 Kaveh R. Ghazi + + PR middle-end/29335 + * builtins.c (fold_builtin_cbrt, fold_builtin_logarithm): + Calculate compile-time constants using MPFR. + (fold_builtin_1): Likewise handle BUILT_IN_ERF, BUILT_IN_ERFC, + BUILT_IN_EXPM1 and BUILT_IN_LOG1P. + +2006-10-25 Bob Wilson + + * config/xtensa/lib2funcs.S: Use C-style comments. + +2006-10-24 Nathan Froyd + + * dwarf2out.c (gen_compile_unit_die): Use IS_ABSOLUTE_PATH. + (file_table_relative_p): Likewise. + (dwarf2out_finish): Likewise. + (file_name_acquire): Use DIR_SEPARATOR and DIR_SEPARATOR_2. + +2006-10-25 Daniel Berlin + + * tree-ssa-structalias.c (intra_create_variable_infos): + Don't recreate nonlocal_all if it already exists. + +2006-10-25 Richard Guenther + + PR target/28803 + * optabs.h (enum optab_index): Remove OTI_lrint. + (enum convert_optab_index): Add COI_lrint. + (lrint_optab): Adjust. + (expand_sfix_optab): Declare. + * optabs.c (expand_sfix_optab): New function. + (init_optabs): Init lrint_optab as conversion optab. + * genopinit.c (lrint_optab): Change to a conversion optab. + * builtins.c (expand_builtin_int_roundingfn_2): Adjust to + expansion via conversion optab. + * config/i386/i386.md (*fistdi2_1): Remove + flag_unsafe_math_optimizations guard. + (fistdi2, fistdi2_with_temp, *fist2_1, fist2, + fist2_with_temp): Likewise. + (lrint2): Split into... + (lrintxf2): ... x87 part + (lrintdi2, lrintsi2): ... and SSE parts. + * config/i386/sse.md (sse_cvtss2si_2, sse_cvtss2_siq_2, + sse2_cvtsd2si_2, sse2_cvtsd2siq_2): New insns for + UNSPEC_FIX_NOTRUNC matching non-vector float modes. + * doc/md.texi (lrintMN2): Document. + +2006-10-25 Uros Bizjak + + PR target/28909 + * config/i386/sync.md ("sync_add", "sync_sub"): + Use inc and dec instructions for TARGET_USE_INCDEC. + ("*sync_compare_and_swap"): Fix -masm=intel template. + ("sync_double_compare_and_swap"): Likewise. + ("*sync_double_compare_and_swapdi_pic"): Likewise. + ("*sync_compare_and_swap_cc"): Likewise. + ("sync_double_compare_and_swap_cc"): Likewise. + ("*sync_double_compare_and_swap_ccdi_pic"): Likewise. + ("sync_old_add"): Likewise. + ("sync_lock_test_and_set"): Likewise. + ("sync_lock_test_and_set"): Likewise. + ("sync_add"): Likewise. + ("sync_sub"): Likewise. + ("sync_ior"): Likewise. + ("sync_and"): Likewise. + ("sync_xor"): Likewise. + +2006-10-25 Uros Bizjak + + * optabs.h (enum optab_index): Rename OTI_drem to OTI_remainder. + (remainder_optab): Define corresponding macro. + (drem_optab): Remove. + * optabs.c (init_optabs): Initialize remainder_optab. Remove + drem_optab initialization. + * genopinit.c (optabs): Implement remainder_optab using + remainder?f3 patterns. Remove drem_optab. + * builtins.c (expand_builtin_mathfn_2): Handle + BUILT_IN_REMAINDER{,F,L} using remainder_optab. + (expand_builtin): Expand BUILT_IN_REMAINDER{,F,L} using + expand_builtin_mathfn_2. + + (expand_builtin) [BUILT_IN_FMOD, BUILT_IN_DREM]: Do not + depend on flag_unsafe_math_optimizations. + + * config/i386/i386.md ("remaindersf3", "remainderdf3") + ("remainderxf3"): Renamed from "drem{s,d,x}f3" expanders. + Do not depend on flag_unsafe_math_optimizations. Use + truncxf?f expander instead of truncxf?f_i387_noop. + + ("fpremxf4", "fprem1xf4"): Do not depend on + flag_unsafe_math_optimizations. + ("fmodsf3", "fmoddf3", "fmodxf3"): Do not depend on + flag_unsafe_math_optimizations. Use truncxf?f expander + instead of truncxf?f_i387_noop. + + * doc/md.texi (fmod, remainder): Document standard named pattern. + +2006-10-24 Richard Sandiford + David Daney + + PR middle-end/29519 + * rtlanal.c (nonzero_address_p): Remove check for values wrapping. + +2006-10-25 Ben Elliston + + * doc/extend.texi (Variable Attributes): Typo fix. + +2006-10-24 Uros Bizjak + + * config/i386/i386.h (FIRST_PSEUDO_REGISTER): Define to 54. + (FIXED_REGISTERS, CALL_USED_REGISTERS): Add fpcr register. + (REG_ALLOC_ORDER): Add one element to allocate fpcr register. + (FRAME_POINTER_REGNUM): Update register number to 21. + (REG_CLASS_CONTENTS): Update contents for added fpcr register. + (HI_REGISTER_NAMES): Add "fpcr" for fpcr register. + + * config/i386/i386.c (regclass_map): Add fpcr entry. + (dbx_register_map, dbx64_register_map, svr4_dbx_register_map): + Add fpcr entry. + (print_reg): Assert REGNO (x) != FPCR_REG. + + * config/i386/i386.md (FPCR_REG, R11_REG): New constants. + (DIRFLAG_REG): Renumber. + (x86_fnstcw_1, x86_fldcw_1): Use FPCR_REG instead of FPSR_REG. + (*sibcall_1_rex64_v, *sibcall_value_1_rex64_v): Use R11_REG. + (sse_prologue_save, *sse_prologue_save_insn): Renumber + hardcoded SSE register numbers. + + * config/i386/mmx.md (mmx_emms, mmx_femms): Renumber + hardcoded MMX register numbers. + +2006-10-24 Kaveh R. Ghazi + + PR middle-end/29335 + * builtins.c (fold_builtin_sin, fold_builtin_atan): Remove. + (do_mpfr_arg1): Add `min', `max' and `inclusive' arguments. + Update all callers. + (BUILT_IN_SIN, BUILT_IN_ATAN): Handle in main switch. + (BUILT_IN_ASIN, BUILT_IN_ACOS, BUILT_IN_ATAN, BUILT_IN_ASINH, + BUILT_IN_ACOSH, BUILT_IN_ATANH, BUILT_IN_SINH, BUILT_IN_COSH, + BUILT_IN_TANH): Calculate compile-time arguments using MPFR. + +2006-10-24 Richard Guenther + + PR middle-end/28796 + * builtins.c (fold_builtin_classify): Use HONOR_INFINITIES + and HONOR_NANS instead of MODE_HAS_INFINITIES and MODE_HAS_NANS + for deciding optimizations in consistency with fold-const.c + (fold_builtin_unordered_cmp): Likewise. + +2006-10-24 Richard Guenther + + * builtins.c (fold_builtin_floor): Fold floor (x) where + x is nonnegative to trunc (x). + (fold_builtin_int_roundingfn): Fold lfloor (x) where x is + nonnegative to FIX_TRUNC_EXPR. + +2006-10-24 Richard Guenther + + PR tree-optimization/29567 + * tree-vrp.c (register_edge_assert_for_1): Fix wrong logic + for TRUTH_NOT_EXPR. Clarify comments. + +2006-10-24 Kaveh R. Ghazi + + PR middle-end/29335 + * builtins.c (fold_builtin_exponent): Evaluate constant arguments + at compile-time using MPFR. Change parameter VALUE to FUNC, + update all callers. + (do_mpfr_arg1): Rename `exact' to `inexact'. Carefully check + for overflow and underflow at all times and avoid folding in + those cases. + +2006-10-24 Ben Elliston + + * reload1.c: Formatting fixes. + +2006-10-23 Zdenek Dvorak + + PR tree-optimization/14784 + * tree-flow.h (struct var_ann_d): Add is_heapvar bit. + * tree-ssa-structalias.c (get_constraint_for, + intra_create_variable_infos): Set is_heapvar. + * tree-ssa-operands.c (access_can_touch_variable): Do not handle + non-heapvar pointer variables specially. + +2006-10-23 Kaveh R. Ghazi + + PR middle-end/29335 + * builtins.c (fold_builtin_sin, fold_builtin_cos, + fold_builtin_tan): Fold all constant arguments. Take a "type" + argument as necessary. + (do_mpfr_arg1): New. + * real.c, real.h (real_from_mpfr, mpfr_from_real): New. + +2006-10-23 Bob Wilson + + * config/xtensa/lib1funcs.asm: Use C-style comments. + +2006-10-23 Rafael Avila de Espindola + + * tree.c (local_define_builtin): Replace calls to + lang_hooks.builtin_function with add_builtin_function. + * c-objc-common.h (LANG_HOOKS_BUILTIN_FUNCTION): Define as + c_builtin_function. + * c-tree.h (builtin_function): Rename to c_builtin_function. Change + the signature. + * c-decl.c (builtin_function): Rename to c_builtin_function. Move + common code to add_builtin_function. + * langhooks.c (add_builtin_function): New function. + (lhd_builtin_function): New function. + * langhooks.h (struct lang_hooks): Change the signature of + builtin_function. + (add_builtin_function): New function. + * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Replace + calls to lang_hooks.builtin_function with add_builtin_function. + * c-common.c (decl_builtin_1): Replace calls to + lang_hooks.builtin_function with add_builtin_function. + * config/alpha/alpha.c (alpha_init_builtins): Replace calls to + lang_hooks.builtin_function with add_builtin_function. + * config/frv/frv.c (def_builtin): Replace calls to + lang_hooks.builtin_function with add_builtin_function. + * config/s390/s390.c (s390_init_builtins): Replace calls to + lang_hooks.builtin_function with add_builtin_function. + * config/sparc/sparc.c (def_builtin): Replace calls to + lang_hooks.builtin_function with add_builtin_function. + * config/i386/i386.c (def_builtin): Replace calls to + lang_hooks.builtin_function with add_builtin_function. + * config/sh/sh.c (sh_media_init_builtins): Replace calls to + lang_hooks.builtin_function with add_builtin_function. + * config/c4x/c4x.c (c4x_init_builtins): Replace calls to + lang_hooks.builtin_function with add_builtin_function. + * config/stormy16/stormy16.c (xstormy16_init_builtins): + Replace calls to lang_hooks.builtin_function with + add_builtin_function. + * config/iq2000/iq2000.c (def_builtin): + Replace calls to lang_hooks.builtin_function with + add_builtin_function. + * config/ia64/ia64.c (def_builtin): Replace calls to + lang_hooks.builtin_function with add_builtin_function. + * config/rs6000/rs6000.c (def_builtin): Replace calls to + lang_hooks.builtin_function with add_builtin_function. + (altivec_init_builtins): Replace calls to + lang_hooks.builtin_function with add_builtin_function. + * config/arm/arm.c (def_mbuiltin): Replace calls to + lang_hooks.builtin_function with add_builtin_function. + (arm_init_tls_builtins): Replace calls to + lang_hooks.builtin_function with add_builtin_function. + * config/mips/mips.c (mips_init_builtins): Replace calls to + lang_hooks.builtin_function with add_builtin_function. + * config/bfin/bfin.c (def_builtin): Replace calls to + lang_hooks.builtin_function with add_builtin_function. + * langhooks-def.h (lhd_builtin_function): New function. + (LANG_HOOKS_BUILTIN_FUNCTION): Define as lhd_builtin_function. + +2006-10-23 Jakub Jelinek + + * builtins.c (expand_builtin, maybe_emit_chk_warning): Handle + BUILT_IN_STRNCAT_CHK. + +2006-10-23 Jan Hubicka + + * builtins.c (expand_builtin_memmove): Remove ORIG_EXP argument; + don't do conversion from memmove to memcpy here. + (expand_builtin_bcopy, expand_builtin): Update call of + expand_builtin_memmove. + (fold_builtin_memory_op): Do folding of memmove to memcpy here. + +2006-10-23 Paul Brook + + * stor-layout.c (start_record_layout): maximum_field_alignment + overrides STRUCTURE_SIZE_BOUNDARY. + +2006-10-23 Ulrich Weigand + + * config/s390/predicates.md ("bras_sym_operand"): Do not accept + nonlocal function symbols if flag_pic. + +2006-10-23 Richard Guenther + + PR middle-end/27132 + PR middle-end/23295 + * builtins.c (fold_binary): Remove checks for flag_wrapv + and flag_trapv where negate_expr_p covers these cases. + +2006-10-23 Richard Guenther + + PR middle-end/29548 + * fold-const.c (fold_plusminus_mult_expr): Check exact power + of two on the absolute value. + (fold_binary): Fold x * -C to -x * C if x is easily negatable + and negating -C does not overflow. + +2006-10-23 Richard Guenther + + PR middle-end/21032 + * convert.c (convert_to_real): Fold (float)-x to -(float)x + only if not flag_rounding_math. + +2006-10-22 Richard Sandiford + Kaz Kojima + + PR target/28232 + * config/sh/sh.c (expand_block_move): Use a BLKmode rather than + SImode memory reference for the source of a movua. + * config/sh/sh.md (UNSPEC_MOVUA): New macro. + (movua): Use an unspec instead of sign_extract. Expect the source + to have mode BLKmode. + (extv, insv): Use a BLKmode rather than SImode memory reference + for the source of a movua. + +2006-10-22 Jeff Law + Richard Guenther + + PR tree-optimization/15911 + * tree-vrp.c (extract_code_and_val_from_cond): New function. + (register_edge_assert_for_1): Likewise. + (register_edge_assert_for): Handle &&/&/||/| in conditionals. + (find_conditional_asserts): Adjust for new function signature. + (find_assert_locations): Likewise. + +2006-10-22 H.J. Lu + + * config/i386/tmmintrin.h: Remove the duplicated content. + +2006-10-22 H.J. Lu + + * config.gcc (i[34567]86-*-*): Add tmmintrin.h to extra_headers. + (x86_64-*-*): Likewise. + + * config/i386/i386.c (pta_flags): Add PTA_SSSE3. + (override_options): Check SSSE3. + (ix86_builtins): Add IX86_BUILTIN_PHADDW, IX86_BUILTIN_PHADDD, + IX86_BUILTIN_PHADDSW, IX86_BUILTIN_PHSUBW, IX86_BUILTIN_PHSUBD, + IX86_BUILTIN_PHSUBSW, IX86_BUILTIN_PMADDUBSW, + IX86_BUILTIN_PMULHRSW, IX86_BUILTIN_PSHUFB, + IX86_BUILTIN_PSIGNB, IX86_BUILTIN_PSIGNW, IX86_BUILTIN_PSIGND, + IX86_BUILTIN_PALIGNR, IX86_BUILTIN_PABSB, IX86_BUILTIN_PABSW, + IX86_BUILTIN_PABSD, IX86_BUILTIN_PHADDW128, + IX86_BUILTIN_PHADDD128, IX86_BUILTIN_PHADDSW128, + IX86_BUILTIN_PHSUBW128, IX86_BUILTIN_PHSUBD128, + IX86_BUILTIN_PHSUBSW128, IX86_BUILTIN_PMADDUBSW128, + IX86_BUILTIN_PMULHRSW128, IX86_BUILTIN_PSHUFB128, + IX86_BUILTIN_PSIGNB128, IX86_BUILTIN_PSIGNW128, + IX86_BUILTIN_PSIGND128, IX86_BUILTIN_PALIGNR128, + IX86_BUILTIN_PABSB128, IX86_BUILTIN_PABSW128 and + IX86_BUILTIN_PABSD128. + (bdesc_2arg): Add SSSE3. + (bdesc_1arg): Likewise. + (ix86_init_mmx_sse_builtins): Support SSSE3. + (ix86_expand_builtin): Likewise. + * config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): Likewise. + + * config/i386/i386.md (UNSPEC_PSHUFB): New. + (UNSPEC_PSIGN): Likewise. + (UNSPEC_PALIGNR): Likewise. + Include mmx.md before sse.md. + + * config/i386/i386.opt: Add -mssse3. + + * config/i386/sse.md (ssse3_phaddwv8hi3): New pattern for SSSE3. + (ssse3_phaddwv4hi3): Likewise. + (ssse3_phadddv4si3): Likewise. + (ssse3_phadddv2si3): Likewise. + (ssse3_phaddswv8hi3): Likewise. + (ssse3_phaddswv4hi3): Likewise. + (ssse3_phsubwv8hi3): Likewise. + (ssse3_phsubwv4hi3): Likewise. + (ssse3_phsubdv4si3): Likewise. + (ssse3_phsubdv2si3): Likewise. + (ssse3_phsubswv8hi3): Likewise. + (ssse3_phsubswv4hi3): Likewise. + (ssse3_pmaddubswv8hi3): Likewise. + (ssse3_pmaddubswv4hi3): Likewise. + (ssse3_pmulhrswv8hi3): Likewise. + (ssse3_pmulhrswv4hi3): Likewise. + (ssse3_pshufbv16qi3): Likewise. + (ssse3_pshufbv8qi3): Likewise. + (ssse3_psign3): Likewise. + (ssse3_psign3): Likewise. + (ssse3_palignrti): Likewise. + (ssse3_palignrdi): Likewise. + (abs2): Likewise. + (abs2): Likewise. + + * config/i386/tmmintrin.h: New file. + + * doc/extend.texi: Document SSSE3 built-in functions. + + * doc/invoke.texi: Document -mssse3/-mno-ssse3 switches. + +2006-10-22 Ira Rosen + + * tree-vect-transform.c (vectorizable_load): Use the type of the + return value of the mask_for_load builtin to create realign_load + stmt. + +2006-10-22 Richard Sandiford + + * config/mips/mips.c (mips_split_const): Don't accept bare PLUS + expressions. + +2006-10-21 H.J. Lu + + * config/i386/i386.md (UNSPEC_LDQQU): Renamed to ... + (UNSPEC_LDDQU): This. + * config/i386/sse.md (sse3_lddqu): Updated. + +2006-10-21 Richard Guenther + + * builtins.c (expand_builtin_int_roundingfn_2): New function. + (expand_builtin): Use it to expand lrint instead of + expand_builtin_mathfn. + +2006-10-21 Uros Bizjak + + PR middle-end/28252 + * builtins.c (fold_builtin): Fold pow(x,1.0/3.0) as cbrt(x) if + flag_unsafe_math_optimizations is set. + +2006-10-21 Uros Bizjak + + PR target/19398 + * config/i386/i386.md (fix_trunc?f?i_sse): Add peephole2 + patterns to use memory input operand in x87->mem->XMM + reload sequences. Skip transformation for TARGET_K8. + +2006-10-21 Uros Bizjak + + * config/i386/i386.md (extendsfdf2, extendsfxf2, extenddfxf2): Do not + force operand1 to register if both operands are memory operands. + (*extendsfdf2_mixed, *extendsfdf2_sse, *extendsfdf2_i387) + (*extendsfxf2_i387, *extenddfxf2_i387): Do not disable pattern + if both operands are memory operands. + (truncdfsf2): Do not force operand1 to register if both operands + are memory operands. + +2006-10-21 Kaveh R. Ghazi + + * Makefile.in (LIBS): Add $(GMPLIBS). + * doc/install.texi: Update GMP and MPFR requirements. + * doc/sourcebuild.texi (need_gmp): Delete. + +2006-10-21 Richard Guenther + + PR tree-optimization/3511 + * tree-ssa-pre.c (phi_translate): Fold CALL_EXPRs that + got new invariant arguments during PHI translation. + +2006-10-21 Richard Guenther + + PR middle-end/26898 + * fold-const.c (fold_comparison): Fold signed comparisons + of the form X +- C1 CMP Y +- C2. + +2006-10-21 Richard Guenther + + PR target/19116 + * config/i386/i386.c (override_options): Do not set MASK_IEEE_FP + if flag_unsafe_math_optimizations is specified. We have + flag_finite_math_only for that. + * config/i386/i386.md (sqrtxf2): Do not require TARGET_IEEE_FP + or flag_unsafe_math_optimizations. + +2006-10-21 Richard Guenther + + * builtins.c (fold_builtin_classify): Fix typo. + +2006-10-21 Richard Guenther + + PR middle-end/28796 + * simplify-rtx.c (simplify_const_relational_operation): + Do not constant-fold ORDERED and UNORDERED for + flag_unsafe_math_optimizations but only we do not need to + honor NaNs for the given mode. + +2006-10-21 Richard Guenther + + PR target/29512 + * config/i386/i386.c (classify_argument): Remove redundant + walking of the BINFOs. + (contains_128bit_aligned_vector_p): Likewise. + +2006-10-20 Mark Mitchell + + * BASE-VER: Set to 4.3.0. + +2006-10-20 Daniel Berlin + + * tree.h (DECL_PTA_ARTIFICIAL): Remove. + (tree_decl_with_vis): Remove artificial_pta_var flag. + * tree-flow.h (referenced_var_check_and_insert): Expose. + (nonlocal_all): New prototype. + * tree-ssa-structalias.c (nonlocal_for_type): Remove. + (nonlocal_all): Make global. + (nonlocal_lookup): Remove. + (nonlocal_insert): Ditto. + (create_nonlocal_var): Do not call nonlocal_insert. + (get_nonlocal_id_for_type): Remove. + (find_global_initializers): Mark new vars we find for renaming. + (intra_create_variable_infos): Only create one nonlocal. + (expand_nonlocal_solutions): Remove. + (compute_points_to_sets): Don't call it. + (ipa_pta_execute): Ditto. + (init_alias_heapvars): Don't create nonlocal_for_type. + (delete_alias_heapvars): Don't remove it. + * tree-ssa-operands.c (access_can_touch_variable): Don't prune + nonlocal_all. + +2006-10-19 Brooks Moses + + * doc/install.texi (Downloading GCC): Clarify mention of + Fortran in the "full distribution" description. + +2006-10-19 Daniel Berlin + + Fix PR tree-optimization/28778 + Fix PR tree-optimization/29156 + Fix PR tree-optimization/29415 + * tree.h (DECL_PTA_ARTIFICIAL): New macro. + (tree_decl_with_vis): Add artificial_pta_var flag. + * tree-ssa-alias.c (is_escape_site): Remove alias info argument, + pushed into callers. + * tree-ssa-structalias.c (nonlocal_for_type): New variable. + (nonlocal_all): Ditto. + (struct variable_info): Add directly_dereferenced member. + (var_escaped_vars): New variable. + (escaped_vars_tree): Ditto. + (escaped_vars_id): Ditto. + (nonlocal_vars_id): Ditto. + (new_var_info): Set directly_dereferenced. + (graph_size): New variable + (build_constraint_graph): Use graph_size. + (solve_graph): Don't process constraints that cannot change the + solution, don't try to propagate an empty solution to our + successors. + (process_constraint): Set directly_dereferenced. + (could_have_pointers): New function. + (get_constraint_for_component_ref): Don't process STRING_CST. + (nonlocal_lookup): New function. + (nonlocal_insert): Ditto. + (create_nonlocal_var): Ditto. + (get_nonlocal_id_for_type): Ditto. + (get_constraint_for): Allow results vector to be empty in the case + of string constants. + Handle results of calls properly. + (update_alias_info): Update alias info stats on number and type of + calls. + (find_func_aliases): Use could_have_pointers. + (make_constraint_from_escaped): Renamed from + make_constraint_to_anything, and changed to make constraints from + escape variable. + (make_constraint_to_escaped): New function. + (find_global_initializers): Ditto. + (create_variable_info_for): Make constraint from escaped to any + global variable, and from any global variable to the set of + escaped vars. + (intra_create_variable_infos): Deal with escaped instead of + pointing to anything. + (set_uids_in_ptset): Do type pruning on directly dereferenced + variables. + (find_what_p_points_to): Adjust call to set_uids_with_ptset. + (init_base_vars): Fix comment, and initialize escaped_vars. + (need_to_solve): Removed. + (find_escape_constraints): New function. + (expand_nonlocal_solutions): Ditto. + (compute_points_to_sets): Call find_escape_constraints and + expand_nonlocal_solutions. + (delete_points_to_sets): Don't fall off the end of the graph. + (init_alias_heapvars): Initialize nonlocal_for_type and + nonlocal_all. + (delete_alias_heapvars): Free nonlocal_for_type and null out + nonlocal_all. + +2006-10-19 Eric Botcazou + + * fold-const.c (add_double): Rename to add_double_with_sign. + Add 'unsigned_p' parameter and take it into account for the overflow. + (mul_double): Rename to mul_double_with_sign. + Add 'unsigned_p' parameter and take it into account for the overflow. + (fold_div_compare): Call add_double_with_sign instead of add_double + and mul_double_with_sign instead of mul_double, passing them the + unsignedness of the type. + * tree.h (add_double): Macroize. + (add_double_with_sign): New prototype. + (mul_double): Macroize. + (mul_double_with_sign): New prototype. + +2006-10-19 Chen Liqin + + * config/score/crti.asm: New file. + * config/score/crtn.asm: New file. + * config/score/elf.h: New file. + * config/score/mac.md: New file. + * config/score/misc.md: New file. + * config/score/mul-div.S: New file. + * config/score/predicates.md: New file. + * config/score/score7.md: New file. + * config/score/score.c: New file. + * config/score/score-conv.h: New file. + * config/score/score.h: New file. + * config/score/score.md: New file. + * config/score/score-mdaux.c: New file. + * config/score/score-mdaux.h: New file. + * config/score/score-modes.def: New file. + * config/score/score.opt: New file. + * config/score/score-protos.h: New file. + * config/score/score-version.h: New file. + * config/score/t-score-elf: New file. + * config.gcc: Add score*-*-* configurations(Update before). + * doc/invoke.texi (Score Options): New section. + * doc/md.texi (Score family): New section to document constraints. + +2006-10-19 Nick Clifton + + * config/arm/arm.c: Fix spelling typo. + +2006-10-18 Tom Tromey + + * doc/install.texi (Prerequisites): Mention automake 1.9.6. + +2006-10-18 Jan Hubicka + + PR middle-end/29299 + * cfgexpand.c (expand_used_vars_for_block): Vars marked used by user + are used. + +2006-10-18 Marcin Dalecki + + * omp-low.c (expand_parallel_call): Use BSI_SAME_STMT instead of + TSI_SAME_STMT, since that's the desired entity. + +2006-10-17 Wolfgang Gellerich + + * config/s390/contraints.md: New file. + * config/s390/s390-protos.h (s390_mem_constraint, + s390_O_constraint_str, s390_N_constraint_str, + s390_float_const_zero_p): Function prototypes added. + * config/s390/s390.c (s390_extra_constraint_str, + s390_const_double_ok_for_constraint_p, + s390_const_ok_for_constraint_p): Functions removed. + (s390_mem_constraint, s390_O_constraint_str, s390_N_constraint_str, + s390_float_const_zero_p): New functions. + * config/s390/s390.h (REG_CLASS_FROM_LETTER, CONST_OK_FOR_CONSTRAINT_P, + CONST_DOUBLE_OK_FOR_CONSTRAINT_P, EXTRA_CONSTRAINT_STR, + EXTRA_MEMORY_CONSTRAINT, EXTRA_ADDRESS_CONSTRAINT, CONSTRAINT_LEN): + Macro definitions removed. + (s390_const_ok_for_constraint_p, s390_const_double_ok_for_constraint_p, + s390_extra_constraint_str): Functions removed. + +2006-10-17 Andrew Pinsiki + Richard Sandiford + + PR target/29413 + * config/mips/linux.h (SUBTARGET_CC1_SPEC): Override. + * config/mips/mips.h (CC1_SPEC): Override any earlier definition. + +2006-10-16 Geoffrey Keating + + * config/rs6000/sysv4.h (DBX_REGISTER_NUMBER): Move to rs6000.h. + (DWARF2_FRAME_REG_OUT): Likewise. + * config/rs6000/rs6000.h (DBX_REGISTER_NUMBER): Move from sysv4.h. + (DWARF2_FRAME_REG_OUT): Likewise. + +2006-10-17 Paul Brook + + * config/arm/arm.c (arm_rtx_costs_1): Handle multiply-accumulate. + +2006-10-16 Brooks Moses + + * doc/contrib.texi, doc/install.texi, doc/standards.texi: + Standardize on "GNU Fortran" as the official name of the Fortran + compiler. + +2006-10-16 Mike Stump + + * doc/invoke.texi (Darwin Options): Document -mkernel. + * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Add + -mkernel support. + (C_COMMON_OVERRIDE_OPTIONS): Add -mkernel support. Add + SUBTARGET_C_COMMON_OVERRIDE_OPTIONS callout. + (CC1_SPEC): Don't turn on -fPIC when -mkernel is given. + (OS_MISSING_ALTIVEC): Add. + * config/i386/i386.c (override_options): Add + SUBSUBTARGET_OVERRIDE_OPTIONS callout. + * config/i386/darwin.h (CC1_SPEC): Don't turn on -fPIC when + -mkernel, -static or -mdynamic-no-pic is given. + (C_COMMON_OVERRIDE_OPTIONS): Add. + * config/darwin.opt (fapple-kext): Add. + (mkernel): Add. + * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Add + -fapple-kext, -findirect-virtual-calls, -fterminated-vtables and + -mkernel support. + (SUBSUBTARGET_OVERRIDE_OPTIONS): Add. + (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): Add. + (CPP_SPEC): Move defines for __DYNAMIC__ and __STATIC__ from here... + (SUBTARGET_ATTRIBUTE_TABLE): Add apple_kext_compatibility. + (TARGET_CXX_CDTOR_RETURNS_THIS): Add. + (flag_mkernel): Add. + (flag_apple_kext): Add. + (TARGET_KEXTABI): Add. + * config/darwin.c (darwin_handle_kext_attribute): Add. + (DARWIN_VTABLE_P): Add. + (darwin_binds_local_p): Add partial support for rebinding vtables + in kexts. + (darwin_kextabi_p): Add. + (darwin_override_options): Add. + * config/darwin-protos.h (darwin_handle_kext_attribute): Add. + (darwin_kextabi_p): Add. + (darwin_override_options): Add. + * config/darwin-c.c (darwin_cpp_builtins): ... move defines for + __DYNAMIC__ and __STATIC__ here. + +2006-10-16 Brooks Moses + + * doc/sourcebuild.texi, doc/makefile.texi, doc/install.texi: + Added mention of "make pdf" target, and Texinfo requirements for + same. + +2006-10-16 DJ Delorie + + * config/s390/s390.c (s390_decompose_address): Allow symbol+offset + into the GOT in case we need a subreg of the address. + +2006-10-16 Richard Guenther + + PR target/25519 + * doc/extend.texi (X86 Built-in Functions): Fix typos in + SSE builtin documentation. Document SSE2 builtins. + +2006-10-15 John David Anglin + + * pa64-hpux.h (LINK_SPEC): Force __cxa_finalize to be an undefined + symbol in the output file for non-shared links when -nostdlib or + -nodefaultlibs isn't specified. + + * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*): Default to + posix thread support. + +2006-10-15 Jan Hubicka + + PR middle-end/29241 + * cgraphunit.c (cgraph_preserve_function_body_p): Preserve functions + declared always_inline even when not inlining. + +2006-10-15 Eric Botcazou + John David Anglin + Andrew Pinski + + PR middle-end/29111 + * builtins.c (get_pointer_alignment): Return 0 if TER is not run. + +2006-10-15 Jan Hubicka + Richard Guenther + + PR middle-end/29299 + * cgraphunit.c (cgraph_finalize_compilation_unit): Call + process_function_and_variable_attributes on all variables, including + those discovered during cgraph construction phase. + +2006-10-15 Bernhard Fischer + + * final.c: Update Copyright year. Commentary typo fix. Fix whitespace + +2006-10-14 Uros Bizjak + + * config/i386/athlon.md (athlon_fist): Add fisttp. + +2006-10-13 David Edelsohn + Ian Lance Taylor + + PR middle-end/29250 + * expr.c (expand_expr_real_1) : Change EXPAND_SUM modifier to EXPAND_NORMAL when + recursing. + +2006-10-14 Kazu Hirata + + * config/score/score.c, config/score/score.h: Fix comment + typos. + +2006-10-13 Kaveh R. Ghazi + + PR bootstrap/29402 + * Makefile.in (ALL_GTFILES_H): Use $(sort ...) instead of + shell pipeline. + +2006-10-13 Eric Christopher + + * config/darwin.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define. + +2006-10-13 Carlos O'Donell + + Revert this change: + 2006-10-13 Carlos O'Donell + * config/elfos.h (MAX_OFILE_ALIGNMENT): Default to largest + alignment supported by 32-bit ELF. + +2006-10-13 Eric Christopher + + * config/darwin.c (darwin_emit_unwind_label): Strip + name encoding. Use DECL_ASSEMBLER_NAME_SET_P. + +2006-10-13 Richard Guenther + + PR tree-optimization/29446 + * tree-vrp.c (fix_equivalence_set): Remove. + (extract_range_from_assert): Do not call fix_equivalence_set. + (debug_value_range): Print a newline. + (compare_name_with_value): For equivalence sets with + inconsistent value ranges conservatively bail out. + (compare_names): Likewise. + +2006-10-13 David Edelsohn + + * doc/install.texi (*-ibm-aix*): Add comment about 32-bit GMP + and MPFR for gfortran. + +2006-10-13 Carlos O'Donell + + * config/elfos.h (MAX_OFILE_ALIGNMENT): Default to largest + alignment supported by 32-bit ELF. + +2006-10-13 Paolo Bonzini + + PR c/29092 + + * c-typeck.c (digest_init): Always allow initializing vectors + that have static storage duration with compound literals. + * tree.c (build_type_attribute_qual_variant): New, based on + build_type_attribute_variant. + (build_type_attribute_variant): Rewrite using the former. + (make_vector_type): Use build_type_attribute_qual_variant to build + type variants. Use type_hash_canon on the others. + +2006-10-13 Daniel Berlin + Ramana Radhakrishnan + + * tree-flow-inline.h (zero_ssa_operands): Fix comment. + +2006-10-12 Jan Hubicka + + PR c/28419 + * c-decl.c (c_make_fname_decl): Do not segfault in case where + current_function_decl is set but current_function_scope is not. + +2006-10-12 Jie Zhang + + * config/bfin/bfin.md (eh_return): Call emit_jump_insn instead of + emit_insn to emit eh_return_internal instruction. + (eh_return_internal): Explicitly set pc. + +2006-10-11 Richard Guenther + + PR tree-optimization/28230 + * tree-vrp.c (vrp_int_const_binop): Move flag_wrapv handling + to the correct place. + +2006-10-11 Richard Guenther + + PR inline-asm/29119 + * gimplify.c (gimplify_asm_expr): Mark the gimplified lvalue + addressable. + +2006-10-10 Brooks Moses + + * configure.ac: Added pdf to "Make-hooks" + * Makefile.in: Added TEXI2PDF definition, and various pdf-file + targets and *.pdf file patterns in cleanup targets. + * configure: Regenerated. + +2006-10-10 Anatoly Sokolov + + * config/avr/predicates.md: New file. + * config/avr/avr.md: Include it. + (REG_SP): New constant. + (peepholes): Use predicates. + (sbrx_branch, sbrx_and_branchhi, sbrx_and_branchsi, branch, rvbranch, + difficult_branch, difficult_rvbranch, cbi, sbi, sbix_branch, + sbix_branch_bit7, sbix_branch_tmp, sbix_branch_tmp_bit7): Ditto. + +2006-10-10 Adam Nemet + + * config/mips/mips.c (mips_save_restore_reg): Use gen_frame_mem to + avoid alias set 0. + +2006-10-10 Jakub Jelinek + + PR middle-end/29272 + * builtins.c (var_decl_component_p): New function. + (fold_builtin_memset, fold_builtin_memory_op): Restrict + single entry optimization to variables and components thereof. + +2006-10-10 Richard Guenther + + PR rtl-optimization/29323 + * except.c (set_nothrow_function_flags): For functions + that do not bind local bail out early. + +2006-10-10 Ben Elliston + + * doc/invoke.texi (RS/6000 and PowerPC Options): Add -m to the + -mdlmzb option. + +2006-10-09 Richard Henderson + + Revert emutls patch. + +2006-10-09 Richard Guenther + + PR middle-end/29254 + * cgraphunit.c (verify_cgraph_node): Bail out on earlier + errors. + +2006-10-09 Steve Ellcey + + PR target/27880 + * unwind-c.c (PERSONALITY_FUNCTION): Ifdef use of _Unwind_GetIPInfo. + * configure.ac (HAVE_GETIPINFO): Check for _Unwind_GetIPInfo. + * configure: Regenerate. + * config.in: Regenerate. + +2006-10-09 Aldy Hernandez + + * tree-mudflap.c (mf_xform_derefs_1): Add parentheses around TREE_TYPE. + +2006-10-08 Richard Sandiford + + * config/mips/mips.c (mips_legitimize_tls_address): Implement + all TLS models in the same way as local exec if !TARGET_ABICALLS. + Remove stray newline. + +2006-10-08 Richard Sandiford + + * config/mips/mips.c (mips_classify_symbol): Do not return + SYMBOL_SMALL_DATA if SYMBOL_REF_WEAK. + (mips_in_small_data_p): Tweak comments. + +2006-10-08 Richard Sandiford + + * config/mips/elf.h (HANDLE_PRAGMA_PUSH_POP): Define. + +2006-10-07 Kazu Hirata + + * gimplify.c, sched-int.h: Fix comment typos. + + * sched-int.h: Fix comment typos. + +2006-10-06 Maxim Kuvyrkov + + * sched-int.h (IS_SPECULATION_CHECK_P, IS_SPECULATION_SIMPLE_CHECK_P): + New macros. + * sched-ebb.c (begin_schedule_ready): Use them. + * haifa-sched.c (schedule_insn, move_insn, try_ready, + add_to_speculative_block, create_check_block_twin, speculate_insn, + fix_jump_move, move_block_after_check): Ditto. + * sched-rgn.c (new_ready): Ditto. + +2006-10-06 Maxim Kuvyrkov + + PR rtl-optimization/29128 + * sched-int.h (IS_SPECULATION_BRANCHY_CHECK_P): New macro. + * sched-ebb.c (advance_target_bb): Use it to fix condition to + allow interblock movement of speculation checks. + +2006-10-06 Zdenek Dvorak + + PR middle-end/29256 + * tree-ssa-loop-ivopts.c (determine_base_object): Handle pointers + casted to integer type. + (get_address_cost): Decrease cost of [symbol + index] addressing modes + if they are significantly more expensive than [reg + index] ones. + +2006-10-06 Jakub Jelinek + + PR tree-optimization/29330 + * tree-data-ref.c (free_data_ref): Use DR_FREE_ACCESS_FNS macro. + (initialize_data_dependence_relation): Clear DDR_LOOP_NEST pointer + on newly allocated ddrs. + (find_loop_nest_1, find_loop_nest): Change LOOP_NEST to a pointer + to VEC (loop_p, heap) pointer. + (compute_data_dependences_for_loop): Adjust caller. + (free_dependence_relations): Free DDR_LOOP_NEST. + + * tree-loop-linear.c (linear_transform_loops): Don't forget to + free DEPENDENCE_RELATIONS and DATAREFS. + + PR target/28924 + * builtins.c (expand_builtin_sync_operation, + expand_builtin_compare_and_swap, expand_builtin_lock_test_and_set): + Use convert_to_mode to handle promoted arguments. + +2006-10-06 J"orn Rennecke + + * print-tree.c (print_node_brief, print_node): Print sign of Inf. + +2006-10-06 J"orn Rennecke + + * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Define. + +2006-10-05 Uros Bizjak + + * config/i386/sync.md ("sync_add", "sync_sub", + "sync_ior", "sync_and", "sync_xor"): + Use instead of "r" as operand 1 constraint. + +2006-10-06 Olivier Hainque + + * gimplify.c (gimplify_type_sizes) [POINTER_TYPE, REFERENCE_TYPE]: + Don't recurse on the pointed-to type. + * c-decl.c (grokdeclarator) [cdk_pointer]: If we are in a NORMAL or + DECL context, attach an artificial TYPE_DECL to anonymous pointed-to + types with components of variable size. + +2006-10-06 Danny Smith + + * config/i386/mingw32.h (GOMP_SELF_SPECS): Add -mthreads for openmp. + +2006-10-06 Jakub Jelinek + + PR tree-optimization/29290 + * tree-loop-linear.c (linear_transform_loops): Bail if loop_nest has + multiple exits. + + PR target/29198 + * config/i386/i386.c (legitimize_pic_address): Reject TLS symbols. + * config/i386/predicates.md (local_symbolic_operand): Likewise. + + PR c/29091 + * varasm.c (output_constant): If TREE_VECTOR_CST_ELTS chain is shorter than + the number of vector elements fill the rest with zeros. + +2006-10-05 Richard Sandiford + + * config/mips/mips.c (mips_pass_by_reference): Do not return false + for EABI if type is NULL. Use a size check based on GET_MODE_SIZE + instead. + +2006-10-05 Bernd Schmidt + + * config/bfin/bfin.md (subsi3): Lose expander, change previously + unnamed pattern into subsi3. Use correct constraints/predicates. + * config/bfin/bfin.h (CONST_OK_FOR_K): Handle "KN7". + * config/bfin/predicates.md (reg_or_neg7bit_operand_p): New. + +2006-10-05 Ira Rosen + + * doc/loop.texi: Add data references analysis description. + +2006-10-04 Brooks Moses + + * doc/gcov.texi: Add formatting to "Invoking gcov" section head. + +2006-10-04 Richard Henderson + Jakub Jelinek + + * Makefile.in (libgcc.mk, LIBGCC_DEPS): Add emutls.c. + * builtin-types.def (BT_WORD): Make unsigned. + (BT_FN_VOID_PTR_WORD_WORD_PTR): New. + * builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS): New. + (BUILT_IN_EMUTLS_REGISTER_COMMON): New. + * c-decl.c (grokdeclarator): Don't error if !have_tls. + * c-parser.c (c_parser_omp_threadprivate): Likewise. + * cgraph.c (decide_is_variable_needed): Look at force_output. + Recurse for emulated tls. + * cgraphunit.c (cgraph_varpool_remove_unreferenced_decls): Remove + checks redundant with decide_is_variable_needed. + (cgraph_build_static_cdtor): Do cgraph_varpool_assemble_pending_decls. + * dwarf2out.c (loc_descriptor_from_tree_1): Don't do anything for + emulated tls. + * expr.c (emutls_var_address): New. + (expand_expr_real_1): Expand emulated tls. + (expand_expr_addr_expr_1): Likewise. + * libgcc-std.ver: Add __emutls_get_address, __emutls_register_common. + * output.h (emutls_finish): Declare. + * toplev.c (compile_file): Call it. + * tree-ssa-address.c (gen_addr_rtx): Check for const-ness of the + address before wrapping in CONST. + * varasm.c (emutls_htab, emutls_object_type): New. + (EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): New. + (get_emutls_object_name, get_emutls_object_type): New. + (get_emutls_init_templ_addr, emutls_decl): New. + (emutls_common_1, emutls_finish): New. + (assemble_variable): When emulating tls, swap decls; generate + constructor for the emutls objects. + (do_assemble_alias): When emulating tls, swap decl and target name. + (default_encode_section_info): Don't add SYMBOL_FLAG_TLS_SHIFT + for emulated tls. + * emutls.c: New file. + * config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): Only emit + tls_object for real tls. + +2006-10-04 Zack Weinberg + + Fix bug in constraint-check generator, reported by Rask Ingemann + Lambertsen: + * genpreds.c (add_constraint): Don't remove anything from the + expression here. + (write_tm_constrs_h): Detect whether "op" argument is used, and + mark it ARG_UNUSED if it isn't. + (write_insn_const_int_ok_for_constraint): Skip the part of the + expression that would test whether "op" (which is not available + here) is a CONST_INT. + +2006-10-04 Ryan Mansfield + + PR c++/28448 + * doc/invoke.texi (fdiagnostics-show-option): Fix typos. + +2006-10-03 Geoffrey Keating + + * config/i386/darwin-libgcc.10.5.ver: Update to symbol list for + current Leopard versions. + * config/rs6000/darwin-libgcc.10.5.ver: Likewise. + +2006-10-03 Kazu Hirata + + * doc/install.texi: Fix typos. + +2006-10-03 Eric Botcazou + + * builtins.c (expand_builtin_return_addr): Deal with FRAME_ADDR_RTX. + * doc/tm.texi (Basic Stack Layout): Document FRAME_ADDR_RTX. + * config/sparc/sparc.h (FRAME_ADDR_RTX): Define. + +2006-10-02 Jack Howarth + + * unwind-dw2-fde-darwin.c (getsectdatafromheader_64): Fix first + arg to be struct mach_header_64* instead. + +2006-10-02 Jakub Jelinek + + PR c/29154 + * gimplify.c (gimplify_self_mod_expr): Run inner expression's post + side effects after the outer expression's post side effects. + +2006-10-01 Sandra Loosemore + + * tree.h (DECL_FIELD_OFFSET, DECL_FIELD_BIT_OFFSET): Fix + comments to reflect actual behavior and relationship between + DECL_FIELD_OFFSET, DECL_FIELD_BIT_OFFSET, and DECL_OFFSET_ALIGN. + + * doc/c-tree.texi (Working with declarations): Fix documentation + of FIELD_DECL likewise. + +2006-10-01 Ryan Mansfield + + PR c/20533 + * doc/extend.texi: Add used variable attribute description. + +2006-09-30 Joseph S. Myers + + PR c/24010 + * c.opt (Woverride-init): New. + * c-opts.c (c_common_post_options): Default warn_override_init to + extra_warnings. + * c-typeck.c (add_pending_init, output_init_element): Warn for + overriding initializers without side effects. + * doc/invoke.texi (-Woverride-init): Document. + (-Wextra): Update. + +2006-09-30 Eric Botcazou + + PR rtl-optimization/28096 + * ifcvt.c (check_cond_move_block): Return FALSE if the source of an + assignment has already been used as a destination earlier in the block. + +2006-09-29 Eric Botcazou + + * builtins.c (expand_builtin_setjmp): Delete. + (expand_builtin) : Mark as unreachable. + : New case. + : Likewise. + : Likewise. + * builtins.def (BUILT_IN_SETJMP_SETUP): New built-in stub. + (BUILT_IN_SETJMP_DISPATCHER): Likewise. + (BUILT_IN_SETJMP_RECEIVER): Likewise. + * gimple-low.c (struct lower_data): New field calls_builtin_setjmp. + (lower_function_body): Initialize it to false. If it is set to true + at the end of the processing, emit the setjmp dispatcher. + (lower_stmt) : Invoke lower_builtin_setjmp if the callee + is __builtin_setjmp and set calls_builtin_setjmp to true as well. + : Fall through to above case if there is a CALL_EXPR + on the rhs of the assignment. + (lower_builtin_setjmp): New function. + * tree.c (build_common_builtin_nodes): Build BUILT_IN_SETJMP_SETUP, + BUILT_IN_SETJMP_DISPATCHER and BUILT_IN_SETJMP_RECEIVER nodes. + * tree-cfg.c (make_exit_edges) : Use specific predicate + to detect calls that can go to non-local labels. Use specific + helper to create the abnormal edges associated with them. + : Likewise. + (make_abnormal_goto_edges): New function extracted from... + (make_goto_expr_edges): ...here. Call it for computed gotos. + (simple_goto_p): Minor tweak. + (tree_can_make_abnormal_goto): New predicate. + (tree_redirect_edge_and_branch): Return zero on all abnormal edges. + (tree_purge_dead_abnormal_call_edges): New function. + * tree-flow.h (tree_can_make_abnormal_goto): Declare. + (tree_purge_dead_abnormal_call_edges): Likewise. + (make_abnormal_goto_edges): Likewise. + * tree-inline.c (expand_call_inline): Simplify statement frobbing. + Purge all dead abnormal edges if the call was in the last statement. + * tree-optimize.c (has_abnormal_outgoing_edge_p): New predicate. + (execute_fixup_cfg): If there are non-local labels in the function, + scan the basic blocks and split them at calls that can go to non-local + labels or add missing abnormal call edges. Write down the CFG in the + dump file. + (pass_fixup_cfg): Remove TODO_dump_func flag. + * unwind-sjlj.c: Poison setjmp. + * doc/install.texi (enable-sjlj-exceptions): Use more general wording. + * doc/tm.texi (DWARF2_UNWIND_INFO): Likewise. + (TARGET_UNWIND_TABLES_DEFAULT): Fix typo. + (DONT_USE_BUILTIN_SETJMP): Document it. + +2006-09-28 Geoffrey Keating + + PR target/28617 + * config/rs6000/rs6000.h [IN_LIBGCC2] (TARGET_POWERPC64): Define + to 1 when __ppc64__ is defined. + * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Add ppc64-fp.c and + darwin-64.c. + * config/rs6000/ppc64-fp.c: Also compile when __ppc64__ is defined. + +2006-09-28 Steve Ellcey + + * config/ia64/t-hpux (LIB2FUNCS_EXTRA): Remove unwind-hpux.c. + * config/ia64/unwind-hpux.c: Delete. + +2006-09-28 Eric Botcazou + + * gimplify.c (gimplify_init_ctor_preeval): Call maybe_with_size_expr + on the element before gimplifying it, instead of punting if it is of + variable size. + +2006-09-28 Zdenek Dvorak + + * doc/loop.texi: New file. + * doc/gccint.texi: Reference loop.texi. + * Makefile.in (loop.texi): Add. + +2006-09-27 Geoffrey Keating + + * config/darwin.h (ENABLE_EXECUTE_STACK): New, use getpagesize not + __sysctl. + * config/rs6000/darwin.h (ENABLE_EXECUTE_STACK): Remove. + * config/i386/darwin.h (ENABLE_EXECUTE_STACK): Remove. + +2006-09-28 Kaz Kojima + + * config/sh/sh.md (divsi_inv_m0): Remove unused variable. + +2006-09-27 Steven G. Kargl + + * doc/install.texi: Document required versions of GMP and MPFR. + +2006-09-27 Paul Brook + + PR target/29230 + * config/arm/arm.md (arith_adjacentmem): Handle large offsets. + +2006-09-27 Richard Sandiford + + * reload1.c (alter_reg): Require the alignment of the stack slot to + be at least reg_max_ref_width bytes. + (scan_paradoxical_subregs): Record the largest width in + reg_max_ref_width. + +2006-09-26 Jakub Jelinek + + PR middle-end/25261 + PR middle-end/28790 + * tree-nested.c (struct nesting_info): Added static_chain_added. + (convert_call_expr): Set static_chain_added when adding static + chain. Handle OMP_PARALLEL and OMP_SECTION. + +2006-09-25 Matthias Klose + + * doc/invoke.texi: Add missing full stop. + +2006-09-25 Richard Henderson + + * cgraph.c (dump_cgraph_varpool_node): Don't crash if called + before cgraph_function_flags_ready. + +2006-09-24 Zdenek Dvorak + Adam Nemet + + * tree-ssa-loop-ivopts.c (aff_combination_convert, + determine_common_wider_type): New functions. + (get_computation_aff): Use them to simplify arithmetic between + UBASE and CBASE if they are shortened from the same type. + +2006-09-24 Kazu Hirata + + PR target/28911 + * config/m68k/m68k.md (negsf2, negdf2, negxf2): Use + -2147483647 - 1 instead of 0x80000000. + +2006-09-23 Revital1 Eres + + * flags.h (HONOR_NANS): Fix typo in comment. + +2006-09-23 Uros Bizjak + + * config/i386/driver-i386.c (host_detect_local_cpu): Add prototype. + +2006-09-23 Jakub Jelinek + + PR c/28706 + PR c/28712 + * tree.c (merge_attributes, attribute_list_contained): If both + TREE_VALUEs are TREE_LISTs, use simple_cst_list_equal instead of + simple_cst_equal. + * c-typeck.c (comptypes_internal): Don't consider aggregates + in different TUs as compatible if there one set of attributes is + not a subset of the other type's attributes. + (composite_type): Try harder not to create a new aggregate type. + +2006-09-22 Geoffrey Keating + + * config/i386/driver-i386.c: Always define host_detect_local_cpu. + * config/i386/i386.h: Define EXTRA_SPEC_FUNCTIONS on any i386 + or x86_64 host. Define HAVE_LOCAL_CPU_DETECT. + (CC1_CPU_SPEC): Make conditional on HAVE_LOCAL_CPU_DETECT rather + than replicating condition above. + * config.host (i[34567]86-*-*): Always use driver-i386.o. + + * config/darwin.h (LINK_SYSROOT_SPEC): New. + (LINK_SPEC): If TARGET_SYSTEM_ROOT is defined, pass it to + the linker by default. + +2006-09-22 Mike Stump + + * config/rs6000/darwin.h (PROFILE_HOOK): Reassociate comment with + code. + +2006-09-22 Richard Guenther + + PR middle-end/28964 + * cfgexpand.c (stack_var_size_cmp): Use DECL_UID to make + sort of stack variables stable. + +2006-09-22 Peter Bergner + + PR middle-end/28690 + * explow.c (force_reg): Set REG_POINTER flag according to + MEM_POINTER flag. + +2006-09-22 Zdenek Dvorak + + PR tree-optimization/28888 + * tree-if-conv.c (combine_blocks): Rewritten. + * tree-cfg.c (tree_verify_flow_info): Check that edges with + EDGE_TRUE/FALSE_VALUE follow COND_EXPR. + +2006-09-22 Jakub Jelinek + + * tree-ssa-propagate.c (set_rhs): Copy EXPR_LOCATION if + needed. + +2006-09-21 Richard Sandiford + + * varasm.c (copy_constant): Fix reversed gcc_assert check. + +2006-09-21 Janis Johnson + + * ginclude/decfloat.h (DEC*_DEN): Define using the correct builtins. + +2006-09-21 Roger Sayle + + PR debug/29132 + * dwarf2out.c (dwarf2out_begin_prologue): Initialise the current label, + dw_fde_current_label, to be the start of the function, i.e. the same + value as dw_fde_begin. + +2006-09-20 Richard Sandiford + + * config/mips/mips.c (CODE_FOR_mips_abs_ps): Delete. + * config/mips/mips.md (UNSPEC_ABS_PS): New constant. + (UNSPEC_RSQRT1, UNSPEC_RSQRT2, UNSPEC_RECIP1, UNSPEC_RECIP2) + (UNSPEC_SINGLE_CC, UNSPEC_SCC): Bump values by 1. + (*nmadd, *nmadd_fastmath): Require !HONOR_NANS. + (*nmsub, *nmsub_fastmath): Likewise. + (abs2, neg2): Likewise. + * config/mips/mips-ps-3d.md (mips_abs_ps): New define_expand. + (*mips_abs_ps): New define_insn. + +2006-09-20 Josh Conner + + PR middle-end/25505 + * calls.c (expand_call): Allow reuse of structure return stack + temp. + +2006-09-20 Paul Brook + + * config/arm/unwind-arm.c (selfrel_offset31): Clear top bit for + positive offsets. + +2006-09-20 Janis Johnson + + * doc/extend.texi (Decimal Float): Update for latest draft TR, + clean up terminology. + +2006-09-20 Steve Ellcey + + PR target/28574 + * ifcvt.c (dead_or_predicable): Don't predicate then blocks + with tablejumps in them. + +2006-09-20 Jakub Jelinek + + PR middle-end/28046 + * c-omp.c (c_finish_omp_atomic): If ADDR is not simple enough, + wrap it into TARGET_EXPR. + +2006-09-20 Eric Christopher + + * config/i386/i386.c (x86_fisttp): Remove. + * config/i386/i386.h (x86_fisttp): Ditto. + (TARGET_FISTTP): Ditto. + +2006-09-19 Eric Christopher + + * doc/tm.texi (OBJC_JBLEN): Describe. + * config/i386/darwin.h (OBJC_JBLEN): Define. + * config/rs6000/darwin.h: Ditto. + +2006-09-19 Steven Bosscher + + PR rtl-optimization/21299 + * reload1.c (reload): Purge invalid ASMs in the final pass. + +2006-09-19 Steve Ellcey + + PR 28490 + * config/ia64/ia64.c (ia64_legitimate_constant_p): Allow function + pointers as legitimate constants. + +2006-09-19 Paul Brook + + PR target/28516 + * config/arm/arm.c (arm_unwind_emit_set): Handle reg = sp + const. + +2006-09-17 Zdenek Dvorak + + PR tree-optimization/28887 + * tree-ssa-loop-prefetch.c (analyze_ref): Strip nonaddressable + component parts from the reference. + (gather_memory_references_ref): Record the reference without the + nonaddressable component parts. + +2006-09-17 Steven Bosscher + + PR c/25993 + * c-opts.c (c_common_handle_option): Ignore the -std options + if the input language is assembly. + +2006-09-17 Ira Rosen + + PR tree-opt/21591 + * tree-data-ref.c (ptr_decl_may_alias_p): Look for the name memory + tag first. + (ptr_ptr_may_alias_p): Likewise. + (record_record_differ_p): New function. + (base_object_differ_p): Call record_record_differ_p. + +2006-09-16 Andrew Pinski + + PR tree-opt/29059 + * tree-ssa-propagate.c (set_rhs): Reject MODIFY_EXPR right + away for the expr argument. + +2006-09-16 Steven Bosscher + + PR tree-opt/27742 + * tree-vectorizer.c (vectorize_loops): Clear vect_loop_location + before using it for dumping after vectorizing loops. + +2006-09-16 Andrew Pinski + Jack Howarth + + PR target/29030 + * config/rs6000/rs6000.c (rs6000_darwin64_record_arg_advance_recurse) + skip on error_mark_node. + (rs6000_darwin64_record_arg_recurse): Likewise. + +2006-09-16 Steven Bosscher + + * rtl.h (LABEL_OUTSIDE_LOOP_P): Remove. + * doc/rtl.texi: Remove related documentation. + +2006-09-16 Bernd Schmidt + + * loop-doloop.c (doloop_optimize): Remove bogus arg from debugging + printf. + +2006-09-15 Jim Wilson + + * config/ia64/ia64.c (ia64_legitimate_constant_p, cast CONST): + Handle symbol offsets same as they are handled in ia64_expand_move + and move_operand. + +2006-09-16 Andreas Tobler + + * loop-doloop.c (doloop_optimize): Change type of max_cost to int. + Add forgotten parameter to the fprintf call. + +2006-09-15 Steve Ellcey + + * config/ia64/hpux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Add define. + +2006-09-15 Uros Bizjak + + * doc/contrib.texi: Add my entry. + +2006-09-15 Nick Clifton + + * doc/md.texi (Processor pipeline description): Fix typo in + example of how to use the absence_set directive and reword the + description to make it slightly easier to read. + +2006-09-15 Bernd Schmidt + + * params.def (PARAM_MAX_ITERATIONS_COMPUTATION_COST): New. + * loop-doloop.c (doloop_optimize): Use it to limit costs of + expanding the number of iterations. + * config/bfin/bfin.c (bfin_rtx_costs): Handle UDIV, UMOD. + + * cfgrtl.c (emit_insn_at_entry): New function. + * rtl.h (emit_insn_at_entry): Declare it. + * integrate.c (emit_initial_value_sets): Use it. + + * cfgrtl.c (emit_insn_at_entry): Use gcc_assert, not abort. + + * config/bfin/bfin.c (struct loop_info): New members block_bitmap and + bad. + (struct loop_work and related VEC declarations): Delete. + (bfin_dump_loops): Print out new member bad. + (bfin_bb_in_loop): Use plain bitmap test. Don't recurse. + (bfin_scan_loop): Don't recurse. + (bfin_optimize_loop): Don't use a loop depth of -1 to indicate bad + loops. No longer need to update outer loops if the current one is + found bad. Move some validitiy checks to bfin_discover_loop. + (bfin_discover_loop): New function, mostly split from bfin_reorg_loops, + but changed not to check for nesting. Also changed to use the new bad + flag. + (bfin_reorg_loops): Use bfin_discover_loop to find single loops one at a + time. Use bitmap based test to discover loop nesting. + +2006-09-15 Kazu Hirata + + * doc/tm.texi (TARGET_FUNCTION_VALUE): Put @deftypefn all in + one line. + +2006-09-14 Richard Guenther + Kazu Hirata + + PR middle-end/28884. + * doc/tm.texi (TARGET_FUNCTION_VALUE): Document. + (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE): Deprecate. + Replace mentions of FUNCTION_VALUE and FUNCTION_OUTGOING_VALUE + with TARGET_FUNCTION_VALUE. + +2006-09-14 Anatoly Sokolov + + PR target/26504 + * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Define. + +2006-09-13 Aldy Hernandez + + * doc/tree-ssa.texi (Jumps): RESULT_DECL can also be an operand + of a RETURN_EXPR + +2006-09-13 Andrew Pinski + + PR debug/28980 + * dwarf2out.c (loc_descriptor_from_tree_1): Handle + FUNCTION_DECL. + +2006-09-13 Andreas Krebbel + + * basic_block.h (bb_has_eh_pred): Fix comment. + +2006-09-13 Andreas Krebbel + + * flow.c (calculate_global_regs_live): Invalidate eh registers + on eh edges. Renamed invalidated_by_call to invalidated_by_eh_edge. + (propagate_block): Handle eh registers as if they were set at basic + block start. + * except.c (dw2_build_landing_pads): Don't emit clobbers for eh + registers. + * global.c (global_conflicts): Make eh registers to conflict with + pseudos live at basic block begin. + * basic_block.h (bb_has_eh_pred): New function. + +2006-09-13 Richard Sandiford + + PR rtl-optimization/28982 + * reload.c (find_reloads_address_1): Use RELOAD_OTHER for the + index of a PRE_MODIFY or POST_MODIFY address. + * reload1.c (inc_for_reload): Use find_replacement on the original + base and index registers. + +2006-09-12 H.J. Lu + + * doc/invoke.texi (mpreferred-stack-boundary): Remove exception + for -Os. Update __m128 alignment requirement. + +2006-09-13 Jan Hubicka + + * cfganal.c (compute_dominance_frontiers_1): Don't be quadratic. + +2006-09-12 Eric Botcazou + + PR rtl-optimization/28243 + * combine.c (distribute_notes) : Do not consider SETs past + the insn to which the note was originally attached. + +2006-09-12 Andrew Pinski + Roger Sayle + + * dwarf2out.c (file_table_last_lookup): Move this GC'd declaration + outside of #ifdef DWARF2_DEBUGGING_INFO to fix bootstrap failure + on platforms that don't use dwarf for debug info. + +2006-09-12 Jason Merrill + + PR middle-end/28493 + * builtins.c (expand_builtin_setjmp_receiver): Clobber + hard_frame_pointer_rtx after using it to update the frame pointer. + +2006-09-12 Roger Sayle + + * target-def.h (TARGET_ASM_OPEN_PAREN): Guard with an #ifndef. + (TARGET_ASM_CLOSE_PAREN): Likewise. + * config/alpha/osf5.h (TARGET_ASM_OPEN_PAREN): Define. + (TARGET_ASM_CLOSE_PAREN): Likewise. + +2006-09-12 Roger Sayle + + PR target/22223 + * config/alpha/alpha.c (alpha_start_function): Don't emit stack + frame information for frames larger than 512 Kbytes on Tru64 when + using the native assembler. + +2006-09-12 Roger Sayle + + PR middle-end/4520 + PR bootstrap/28784 + * cselib.c (cselib_hash_rtx): Avoid hashing on the address of labels + and symbols. Instead use the implementation from cse.c's hash_rtx. + +2006-09-12 Jan Hubicka + + PR rtl-optimization/28071 + * tree-vect-transform.c (vect_create_data_ref_ptr): Kill cast. + (vect_transform_loop): Likewise. + * tree-vectorizer.c (new_loop_vec_info): Likewise. + (new_loop_vec_info): Likewise. + (destroy_loop_vec_info): Likewise. + * tree-dfa.c (create_var_ann): Use GCC_CNEW. + (create_stmt_ann): Likewise. + (create_tree_ann): Rename to ... + (create_tree_common_ann): ... this one; allocate only the common part + of annotations. + * tree-vn.c (set_value_handle): Use get_tree_common_ann. + (get_value_handle): Likewise. + * tree-ssa-pre.c (phi_translate): Delay annotation allocation for + get_tree_common_ann. + * tree-vectorizer.h (set_stmt_info): Take stmt annotation. + (vinfo_for_stmt): Use stmt annotations. + * tree-flow.h (tree_ann_common_t): New type. + (tree_common_ann, get_tree_common_ann, create_tree_common_ann): New. + (tree_ann, get_tree_ann, create_tree_ann): New. + * tree-flow-inline.h (get_function_ann): Do more type checking. + (stmt_ann): Likewise. + (tree_ann): Rename to ... + (tree_common_ann): ... this one; return ony common_ann + (get_tree_ann): Rename to ... + (tree_common_ann): This one; return only common_ann. + * tree-vect-patterns.c (vect_pattern_recog_1): Update call + of set_stmt_info. + +2006-09-11 Geoffrey Keating + + * config.gcc (i[34567]86-*-darwin*): Set with_arch and + with_cpu by default. + + * dwarf2out.c (dwarf_file_data): New. + (enum dw_val_class): Add dw_val_class_file. + (struct dw_val_struct): Add val_file. + (file_table): Change to a hash table. + (file_table_emitted): Delete. + (file_table_last_lookup_index): Delete. + (emitcount): Delete. + (last_emitted_file): New. + (lookup_filename): Change prototype to return a struct dwarf_file_data. + (init_file_table): Delete. + (maybe_emit_file): Change prototype to take a struct dwarf_file_data. + (AT_addr): Add comment. + (add_AT_file): New. + (AT_file): New. + (get_AT_file): New. + (print_die): Handle dw_val_class_file. + (print_dwarf_line_table): Update for new file table structure. + (attr_checksum): Do checksum a filename. + (same_dw_val_p, same_attr_p): Do compare a filename. + (size_of_die): Handle dw_val_class_file. + (value_format): Likewise. + (output_die): Likewise. Also, call maybe_emit_file here. + (struct file_info): Constify filenames. Make file_idx a pointer + to a struct dwarf_file_data. + (struct dir_info): Constify directory names. Remove 'used' field. + (struct file_name_acquire_data): New. + (file_name_acquire): New. + (output_file_names): Modify to handle new file data structures. + (add_src_coords_attributes): Use add_AT_file. + (add_call_src_coords_attributes): Likewise. + (dwarf2out_imported_module_or_decl): Likewise. + (gen_subprogram_die): Modify for new file data structures. + (gen_variable_die): Likewise. + (file_table_eq): New. + (file_table_hash): New. + (file_table_last_lookup): New. + (lookup_filename): Rewrite to handle new file data structures. + (maybe_emit_file): Rewrite to handle new file data structures. + (dwarf2out_source_line): Always call lookup_filename and + maybe_emit_file. + (dwarf2out_init): Create file_table here. + (prune_unused_types_walk_attribs): Don't call maybe_emit_file here. + (file_table_relative_p): New. + (dwarf2out_finish): Change detection of relative filenames + to work with new file data structures. Move output_line_info call + after debug_info output. + +2006-09-11 H.J. Lu + + PR target/13685 + PR target/27537 + PR target/28621 + * config/i386/i386.c (override_options): Always default to 16 + byte stack boundary. + +2006-09-11 Alexandre Oliva + + PR target/28672 + * var-tracking.c (dump_dataflow_set): Start dumping at + register zero. + (clobber_variable_part): Kill only the variable part in + registers holding it, leaving other variables alone. + +2006-09-11 Josh Triplett + + * doc/extend.texi (Other Builtins): Actually use the macro + argument in the documentation example for + __builtin_types_compatible_p. + +2006-09-11 Eric Botcazou + + PR rtl-optimization/28726 + * sched-deps.c (sched_analyze_reg): New function extracted from... + (sched_analyze_1): ...here. Call it to analyze references to + registers. Treat again writes to a stack register as writing to the + register. + (sched_analyze_2): ...and here. Call it to analyze references to + registers. Treat again reads of a stack register as reading the + register. + +2006-09-11 Guenter Roeck + David Edelsohn + + PR target/27287 + * config/rs6000/spe.md (frob_df_di): Remove %H. + (frob_di_df): Remove %H. Change evmergelo to mr. + (frob_di_df_2): Remove %H. Change evldd to two loads. + +2006-09-11 Hideki Iwamoto + + * doc/cpp.texi: Fix names of charset options. + +2006-09-10 Andrew Pinski + + PR target/29009 + * config/i386/i386.c (override_options): Use 128-bit + stack boundary always for 64bits. + +2006-09-10 Eric Botcazou + + PR rtl-optimization/28636 + * combine.c (force_to_mode): Test for side-effects before + substituting by zero. + (simplify_shift_const): Likewise for zero or other constants. + +2006-09-10 Steven Bosscher + + PR middle-end/26983 + * builtins.c (expand_builtin_setjmp): Force next_lab to be + preserved. + +2006-09-10 Richard Sandiford + + PR target/29006 + * config/mips/mips-protos.h (mips_mem_fits_mode_p): Declare. + * config/mips/mips.c (mips_expand_unaligned_store): Use the mode + returned by mode_for_size, rather than the mode of src itself, + to choose between 32-bit and 64-bit patterns. + (mips_mem_fits_mode_p): New function. + * config/mips/mips.md (mov_l, mov_r): Use it to check + that the size of the source matches the size of the destination. + (mov_l, mov_r): Likewise. + +2006-09-10 Eric Christopher + + * config/darwin.c (machopic_select_rtx_section): Add CONST_VECTOR + for literal16. + +2006-09-09 Eric Christopher + + PR target/28995 + * config/darwin.c (machopic_select_rtx_section): Add TARGET_64BIT + for literal16. + +2006-09-09 Roger Sayle + Nicolas Setton + + * dwarf2out.c (convert_cfa_to_fb_loc_list): Handle DW_CFA_set_loc. + +2006-09-10 Andreas Schwab + + * config/m68k/m68k.md (bungt_rev): New pattern. + +2006-09-09 Paolo Bonzini + Dale Johannesen + + PR target/26778 + * regclass.c (struct reg_pref): Update documentation. + (regclass): Set prefclass to NO_REGS if memory is the best option. + (record_reg_classes): Cope with a prefclass set to NO_REGS. + +2006-09-08 Eric Christopher + + * config.gcc (i?86-*-darwin): Add 64-bit HWI support. + * config/t-slibgcc-darwin: Support x86_64 multilib. + * config/i386/i386.h (JUMP_TABLES_IN_TEXT_SECTION): + Return 1 for x86_64-darwin. + * config/i386/t-darwin: Add m64 multilib. + (LIB2_SIDITI_CONV_FUNCS): Use. + (LIB2FUNCS_EXTRA): Ditto. + * config/i386/darwin.h: Support x86_64. + * config/i386/i386.c (override_options): Turn on flag_pic + for x86_64-darwin. Disable flag_omit_pointer. + (get_pc_thunk_name): Assert !TARGET_64BIT. + (legitimate_address_p): Disable machopic addressing for + x86_64. + (legitimize_pic_address): Ditto. + (ix86_expand_move): Ditto. + (ix86_expand_call): Ditto. + (machopic_output_stub): Ditto. + * config/darwin.c (machopic_select_section): Support literal16. + (machopic_select_rtx_section): Ditto. + * config/darwin-sections.def: Ditto. + * config/darwin-64.c: New. + +2006-09-08 Joseph S. Myers + + PR c/28504 + * c-tree.h (struct c_arg_info): Add pending_sizes. + * c-parser.c (c_parser_parms_declarator, + c_parser_parms_list_declarator): Initialize pending_sizes. + * c-decl.c (get_parm_info): Initialize pending_sizes. + (get_parm_info): Set pending_sizes. + (grokdeclarator): Call put_pending_sizes for parameters for + function definition only. + +2006-09-07 Jason Merrill + + PR middle-end/27724 + * varasm.c (output_constant): Only strip actual no-op conversions. + + PR target/13685 + * config/i386/i386.c (override_options): Use 128-bit + stack boundary if -msse. + +2006-09-07 Eric Christopher + + * config/darwin.h (MACHO_SYMBOL_FLAG_VARIABLE): Update + comment. + * config/i386/darwin.h (MACHO_SYMBOL_FLAG_VARIABLE): + Redefine. + +2006-09-07 Geoffrey Keating + + * dwarf2out.c: Remove strange characters from comment above + dwarf2out_frame_debug_expr. + +2006-09-07 Eric Christopher + + * config/rs6000/darwin.h (HANDLE_SYSV_PRAGMA): Move from here... + * config/darwin.h: ... to here. + +2006-09-07 H.J. Lu + + * config/i386/i386.c (x86_partial_flag_reg_stall): New. + + * config/i386/i386.h (x86_partial_flag_reg_stall): New. + (TARGET_PARTIAL_FLAG_REG_STALL): New. + + * config/i386/i386.md (*ashldi3_cmp_rex64): Disabled for + TARGET_PARTIAL_FLAG_REG_STALL. + (*ashldi3_cconly_rex64): Likewise. + (*ashlsi3_cmp): Likewise. + (*ashlsi3_cconly): Likewise. + (*ashlsi3_cmp_zext): Likewise. + (*ashlhi3_cmp): Likewise. + (*ashlhi3_cconly): Likewise. + (*ashlqi3_cmp): Likewise. + (*ashlqi3_cconly): Likewise. + (*ashrdi3_cmp_rex64): Likewise. + (*ashrdi3_cconly_rex64): Likewise. + (*ashrsi3_cmp): Likewise. + (*ashrsi3_cconly): Likewise. + (*ashrsi3_cmp_zext): Likewise. + (*ashrhi3_cmp): Likewise. + (*ashrhi3_cconly): Likewise. + (*ashrqi3_cmp): Likewise. + (*ashrqi3_cconly): Likewise. + (*lshrdi3_cmp_rex64): Likewise. + (*lshrdi3_cconly_rex64): Likewise. + (*lshrsi3_cmp): Likewise. + (*lshrsi3_cconly): Likewise. + (*lshrsi3_cmp_zext): Likewise. + (*lshrhi3_cmp): Likewise. + (*lshrhi3_cconly): Likewise. + (*lshrqi2_cmp): Likewise. + (*lshrqi2_cconly): Likewise. + +2006-09-07 Uros Bizjak + + PR target/28946 + * config/i386/i386.md ("*ashldi3_cconly_rex64", "*ashlsi3_cconly", + "*ashlhi3_cconly", "*ashlqi3_cconly", "*ashrdi3_one_bit_cconly_rex64", + "*ashrdi3_cconly_rex64", "*ashrsi3_one_bit_cconly", "*ashrsi3_cconly", + "*ashrhi3_one_bit_cconly", "*ashrhi3_cconly", + "*ashrqi3_one_bit_cconly", "*ashrqi3_cconly", + "*lshrdi3_cconly_one_bit_rex64", "*lshrdi3_cconly_rex64", + "*lshrsi3_one_bit_cconly", "*lshrsi3_cconly", + "*lshrhi3_one_bit_cconly", "*lshrhi3_cconly", + "*lshrqi2_one_bit_cconly", "*lshrqi2_cconly": New patterns to + implement only CC setting effects of shift instructions. + +2006-09-07 Martin Michlmayr + + * doc/contrib.texi: Add myself. + +2006-09-07 Andrew Pinski + + PR middle-end/28862 + * stor-layout.c (relayout_decl): Don't zero the alignment if it + was set by the user. + +2006-09-07 Paolo Bonzini + + PR target/27117 + * config/sh/sh.md (divsi_inv_qitable, divsi_inv_hitable): New patterns. + (divsi_inv_m1): Use them. + (UNSPEC_DIV_INV_TABLE): New constant. + +2006-09-06 James E Wilson + + PR rtl-opt/27883 + * flow.c (update_life_info): If UPDATE_LIFE_LOCAL and PROP_DEATH_NOTES + then call count_or_remove_death_notes. + +2006-09-06 Jason Merrill + + PR c++/27371 + * tree-inline.c (copy_result_decl_to_var): New fn. + (declare_return_variable): Use it. Call declare_inline_vars here. + (expand_call_inline): Not here. + +2006-09-06 Diego Novillo + + * doc/contrib.texi: Update my entry. + +2006-09-06 Nick Clifton + + * config/frv/frv.h (EXTRA_MEMORY_CONSTRAINT): Define. + +2006-09-05 Andrew Pinski + + PR tree-opt/28937 + * tree-flow.h (tree_ssa_unswitch_loops): Return unsigned int. + (canonicalize_induction_variables): Likewise. + (tree_unroll_loops_completely): Likewise. + (tree_ssa_prefetch_arrays): Likewise. + (remove_empty_loops): Likewise. + * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Return + TODO_cleanup_cfg instead of directly calling + cleanup_tree_cfg_loop. + * tree-ssa-loop-ivcanon.c (canonicalize_induction_variables): + Likewise. + (tree_unroll_loops_completely): Likewise. + (remove_empty_loops): Likewise. + * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Likewise. + * tree-ssa-loop.c (tree_ssa_loop_unswitch): Use the return value + of tree_ssa_unswitch_loops. + (tree_ssa_loop_ivcanon): Use the return value of + canonicalize_induction_variables. + (tree_ssa_empty_loop): Use the return value of + remove_empty_loops. + (tree_complete_unroll): Use the return value of + tree_unroll_loops_completely. + (tree_ssa_loop_prefetch): Use the return value of + tree_ssa_prefetch_arrays. + * passes.c (execute_todo): Before Cleanup CFG, set + updating_used_alone and after cleanup CFG, call + recalculate_used_alone. + +2006-09-05 Andrew Pinski + + PR tree-opt/28952 + * tree-vect-transform.c (vectorizable_condition): Move the check + for the type after the check for simple condition. + +2006-09-05 J"orn Rennecke + Kaz Kojima + + PR target/28764 + * mode-switching.c (optimize_mode_switching): Make the destination + block of an abnormal edge have no anticipatable mode. Don't + insert mode switching code at the end of the source block of + an abnormal edge. + +2006-09-05 Paolo Bonzini + + PR rtl-optimization/26847 + * simplify-rtx.c (struct simplify_plus_minus_op_data): Remove ix. + (simplify_plus_minus_op_data_cmp): For REGs, break ties on the regno. + (simplify_plus_minus): Count n_constants while filling ops. Replace + qsort with insertion sort. Before going through the array to simplify + pairs, sort it. Delay early exit until after the first sort, exiting + only if no swaps occurred. Simplify pairs in reversed order, without + special-casing the first iteration. Pack ops after simplifying pairs. + +2006-09-05 Anatoly Sokolov + + * config/avr/avr.c (avr_mcu_types): Add support for at90pwm1 device. + * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.). + * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.). + (avr_rtx_costs): Mark 'outer_code' argument with ATTRIBUTE_UNUSED. + +2006-09-05 Richard Guenther + + PR tree-optimization/28900 + * tree-if-conv.c (find_phi_replacement_condition): Gimplify + compound conditional before creating COND_EXPR condition. + +2006-09-05 Richard Guenther + + PR tree-optimization/28905 + * tree-vrp.c (fix_equivalence_set): Manually implement + !value_ranges_intersect_p to also handle symbolic ranges. + +2006-09-05 Richard Guenther + + PR middle-end/28935 + * tree-ssa-ccp.c (fold_stmt_r): Make sure to fold the condition + of a COND_EXPR. + +2006-09-04 Eric Botcazou + + PR rtl-optimization/27616 + * cse.c (table_size): New static variable. + (new_basic_block): Initialize it to 0. + (remove_from_table): Decrement it. + (insert): Increment it. + (fold_rtx_mem_1): New function, renamed from fold_rtx_mem. + (fold_rtx_mem): Enforce a cap on the recursion depth. Call + fold_rtx_mem_1 if under the cap. + (fold_rtx) : In the associative case, delay a little + the lookup of the equivalent expression and test for equality of the + first operand of the equivalent expression before in turn looking up + an equivalent constant for the second operand. + +2006-09-02 Geoffrey Keating + + Revert this change: + 2006-03-17 Alexandre Oliva + * dwarf2out.c (dwarf2out_stack_adjust): Always track the stack + pointer, instead of assuming it is possible to derive the + correct args size from a call insn. + +2006-09-02 Jakub Jelinek + + PR middle-end/27567 + * builtins.c (fold_builtin_memcpy, fold_builtin_memmove): Remove. + (fold_builtin_mempcpy): Rename to... + (fold_builtin_memory_op): ... this. Optimize one element copy + into an assignment. + (fold_builtin_memset, fold_builtin_bzero, fold_builtin_bcopy): New + functions. + (expand_builtin_strcpy, expand_builtin_strncpy): Handle COMPOUND_EXPR. + (expand_builtin_memcpy, expand_builtin_mempcpy, + expand_builtin_memmove): Likewise. Use fold_builtin_memory_op. + (fold_builtin_1): Handle BUILT_IN_MEMSET, BUILT_IN_BZERO and + BUILT_IN_BCOPY. Use fold_builtin_memory_op for + BUILT_IN_MEM{CPY,PCPY,MOVE}. + +2006-09-01 DJ Delorie + + * config/m32c/cond.md (cbranch4): Defer splitting until after reload. + (stzx_16): Likewise. + ("stzx_24_"): Likewise. + ("stzx_reversed_"): Likewise, and make mode-specific. + ("cmp_op"): New. + (cmp): Change to expander; just save operands. + (b_op): New. + (b): Change to expander, emit compare here. + (s_op): Change to use split and expander. + (s_24_op): Likewise. + (s_): New. + (s__24): New. + (movqicc___): New. + (s): New. + (s_24): New. + * config/m32c/m32c.c (compare_op0, compare_op1): New. + (m32c_pend_compare): New. + (m32c_unpend_compare): New. + (m32c_expand_scc): New. + (m32c_expand_movcc): Emit the compare also. + * config/m32c/predicates.md (mra_nopp_operand): New. + +2006-09-01 J"orn Rennecke + Richard Guenther + Adam Nemet + + PR middle-end/27226 + * builtins.c (get_pointer_alignment): Handle more forms + of base addresses that can be used to derive more precise + information about alignment. + +2006-09-01 Jason Merrill + + PR c++/28899 + * gimplify.c (gimplify_modify_expr_rhs) [BIND_EXPR]: Handle + want_value. + + * gimplify.c (voidify_wrapper_expr): Handle null type. + +2006-09-01 Josh Conner + + PR c++/25505 + * tree-nrv.c (dest_safe_for_nrv_p): New function. + (execute_return_slot_opt): Use it. + +2006-08-31 Josh Conner + + PR c++/25505 + * tree-gimple.c (is_gimple_mem_rhs): Recognize functions + returning aggregates. + +2006-08-31 Zdenek Dvorak + + PR tree-optimization/28839 + * tree-into-ssa.c (prune_unused_phi_nodes): Take into account kills in + blocks in that phi arguments appear. + +2006-08-31 Roger Sayle + + PR other/22313 + * dwarf2out.c (add_fde_cfi): Use a set_loc if the current label is + NULL, otherwise use an advance_loc4 to adjust relative to the + current label. + (output_cfi) : Update the current label. + (dwarf2out_switch_text_section): Reset the current label to avoid + using advance_loc4 over section boundaries. + +2006-08-31 Andreas Krebbel + + PR target/24367 + * config/s390/s390.md ("movsi", "movdi" expander): Accept rtxes like + r12 + SYMBOLIC_CONST. + +2006-08-30 Richard Guenther + + * Makefile.in (see.o): Add $(EXPR_H) dependency. + +2006-08-30 Zdenek Dvorak + + PR rtl-optimization/27735 + * cfgloopmanip.c (fix_loop_placements, fix_bb_placements, unloop): + Add new argument to keep track of whether an irreducible region + was affected. All callers changed. + (fix_irreducible_loops): Removed. + (remove_path): Call mark_irreducible_loops if EDGE_IRREDUCIBLE_LOOP + flags were invalidated. + +2006-08-29 H.J. Lu + + * config/i386/i386.md (*fop_df_comm_mixed): Match DF operands + instead of SF operands. + (*fop_df_comm_sse): Likewise. + (*fop_df_comm_i387): Likewise. + (*fop_df_1_mixed): Likewise. + (*fop_df_1_sse): Likewise. + +2006-08-29 Andrew Pinski + J"orn Rennecke + + PR tree-optimization/17506 + * tree-ssa.c (warn_uninit): If warning about a location outside of + the current function, note where the variable was declared. + +2006-08-28 Zdenek Dvorak + + PR tree-optimization/28411 + * double-int.c (double_int_div): Use double_int_divmod. + (double_int_divmod, double_int_sdivmod, double_int_udivmod, + double_int_mod, double_int_smod, double_int_umod): New functions. + * double-int.h (double_int_divmod, double_int_sdivmod, + double_int_udivmod, double_int_mod, double_int_smod, double_int_umod): + Declare. + * tree-ssa-loop-ivopts.c (constant_multiple_of): Returns the result + in double_int. + (get_computation_aff, get_computation_cost_at): Handle double_int + return type of constant_multiple_of. + +2006-08-28 Kazu Hirata + + PR middle-end/26632 + * convert.c (convert_to_integer): Set TREE_NO_WARNING to 1 on + an implicit conversion. + +2006-08-28 Prafulla Thakare + + * config/h8300/h8300.c (TARGET_DEFAULT_TARGET_FLAGS): New. + +2006-08-27 Roger Sayle + + * ifcvt.c (cheap_bb_rtx_cost_p): Don't speculatively execute + x87 instructions. + +2006-08-27 Kazu Hirata + + * config/i386/crtfastmath.c: Fix a comment typo. + +2006-08-26 Roger Sayle + + * tree.h (CASE_LOW_SEEN, CASE_HIGH_SEEN): New macros for manipulating + temporary visit flags on CASE_LABEL_EXPRs. + * c-common.c (match_case_to_enum): Add function comment. Avoid + O(N) loop, by looking up both CASE_LOW_SEEN and CASE_HIGH_SEEN. + (c_do_switch_warnings): Reorganize to record CASE_LOW_SEEN and + CASE_HIGH_SEEN for enumerated types. If the switch expression is + a constant, only warn if that constant value isn't handled. + +2006-08-26 Joseph S. Myers + + PR c++/24009 + * input.h (restore_input_file_stack): Declare. + (INPUT_FILE_STACK_BITS): Define. + * toplev.c (fs_p, input_file_stack_history, + input_file_stack_restored, restore_input_file_stack): New. + (push_srcloc, pop_srcloc): Check for input_file_stack_tick + overflowing INPUT_FILE_STACK_BITS bits. Save new state of stack. + (pop_srcloc): Don't free old state of stack. + +2006-08-26 David Edelsohn + + PR target/27544 + * doc/extend.texi (PowerPC Variable Attributes): Mention altivec. + (PowerPC Type Attributes): New. + +2006-08-26 Bob Wilson + + * config/xtensa/xtensa.c (function_arg_boundary): New. + (function_arg, xtensa_gimplify_va_arg_expr): Limit alignment to + STACK_BOUNDARY. + * config/xtensa/xtensa.h (FUNCTION_ARG_BOUNDARY): Move code to new + function_arg_boundary function that limits alignment to STACK_BOUNDARY. + +2006-08-26 Jakub Jelinek + + PR middle-end/28683 + * cfgexpand.c (add_reg_br_prob_note): Check if last has exactly + 3 following insns. + +2006-08-25 Volker Reichelt + + * flow.c (verify_wide_reg): Use internal_error for consistency failure. + (verify_local_live_at_start): Likewise. + +2006-08-25 Joseph S. Myers + + PR c/27893 + * gimplify.c (gimplify_decl_expr, gimplify_init_ctor_preeval, + omp_add_variable): Treat sizes as variable whenever not + INTEGER_CST. + +2006-08-26 Richard Guenther + + PR middle-end/28814 + * fold-const.c (fold_binary): Fold temporary to correct + type before constructing new comparison. + +2006-08-25 Fariborz Jahanian + + PR c/28418 + * c-gimplify.c (gimplify_compound_literal_expr): Don't add + variable again if DECL_SEEN_IN_BIND_EXPR_P. + +2006-08-25 Joseph S. Myers + + PR c/28299 + * c-decl.c (start_function): Don't try to process prototype + information from old declaration that isn't a function. + +2006-08-25 Jan Hubicka + + PR target/28621 + * config/i386/crtfastmath.c (set_fast_math): Force stack alignment. + +2006-08-25 Alan Modra + + PR target/27075 + * config/rs6000/rs6000.c (print_operand): Only use e500 %y syntax + for 8 byte objects. + +2006-08-25 J"orn Rennecke + + PR tree-optimization/16876 + * c-typeck.c (c_convert_parm_for_inlining): Don't take early + exit if PARM doesn't match VALUE. + +2006-08-25 Bob Wilson + + * config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Do not emit a + literal_prefix directive. + (XTENSA_DECLARE_FUNCTION_SIZE): Delete. + * config/xtensa/linux.h (ASM_DECLARE_FUNCTION_SIZE): Delete. + * config/xtensa/elf.h (ASM_DECLARE_FUNCTION_SIZE): Delete. + +2006-08-25 David Edelsohn + + PR target/28753 + * config/rs6000/rs6000.md (movcc_internal1): Change operand 1 + predicate to general_operand. Add 0->y and I->r alternatives. + +2006-08-25 Kazu Hirata + + * doc/tm.texi: Fix a typo. + * predict.c: Fix comment typos. + +2006-08-25 Nick Clifton + + * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add + assertions of "cpu" and "machine". + +2006-08-24 Andrew Pinski + + PR tree-opt/28807 + * tree-ssa-operands.c (access_can_touch_variable): Don't say + the access through a base which has an alias set of 0 cannot + touch the variable. + +2006-08-24 Bill Wendling + + * doc/tm.texi (TARGET_DEFAULT_PACK_STRUCT): Fixed English. + +2006-08-24 Jan Hubicka + + * reload1.c (emit_reload_insns): Fix yet another typo in my patch. + +2006-08-24 Jan Hubicka + + PR debug/26881 + * cgraph.c: Fix comments. + (cgraph_varpool_mark_needed_node): Mark only variables not already + output to file. + * cgraphunit.c: Update comments; include gt-cgraphunit.h + (cgraph_varpool_assembled_nodes_queue): New static variable. + (cgraph_varpool_assemble_decl): Record output decls for debug out code. + (cgraph_varpool_output_debug_info): New function. + (cgraph_finalize_compilation_unit, cgraph_optimize): Call it. + * Makefile.in: Add gt-cgraphunit.h + +2006-08-24 Jan Hubicka + + * predict.c (probability_reliable_p): New predicate. + (edge_probability_reliable_p, br_prob_note_reliable_p): Likewise. + (predict_loops): Do not predict loop exit with less than 2% + probability. + * basic-block.h (edge_probability_reliable_p, + br_prob_note_reliable_p): Declare. + * ia64.h (ia64_print_operand): Do not disable on-chip branch + prediction when static predictor is not reliable. + * rs6000.c (output_cbranch): Likewise. + +2006-08-23 Stuart Hastings + + PR 28825 + * gcc/config/i386/i386.c (ix86_expand_vector_init_duplicate, + ix86_expand_vector_init_one_nonzero): Remove TARGET_SSE test. + +2006-08-21 Geoffrey Keating + + PR debug/28692 + * dwarf2out.c (rtl_for_decl_init): Don't try to create RTL for + complex values, nor for generic vector values. + +2006-08-22 Richard Guenther + + PR middle-end/28776 + * tree-scalar-evolution.c (fold_used_pointer): Add at_stmt + parameter. Convert arguments to arithmetic expression to the + chrecs type. + (analyze_scalar_evolution_1): Adjust caller. + +2006-08-22 Jan Hubicka + + Patch by Paolo Bonzini + * reload1.c (emit_reload_insns): Fix incorrect bracketing introduced by + my previous patch. + +2006-08-22 Daniel Berlin + + PR tree-optimization/28003 + * tree-ssa-alias.c (compute_may_aliases): Compute call clobbered + before grouping aliases. + +2006-08-22 Roger Sayle + + * config/i386/i386.c (ix86_value_regno): Don't return FIRST_MMX_REG + if !TARGET_MMX, and don't return FIRST_SSE_REG if !TARGET_SSE. + +2006-08-21 Jason Merrill + + PR c++/27115 + * gimplify.c (voidify_wrapper_expr): Handle STATEMENT_LIST as a + wrapper. Loop to handle nested wrappers. + (gimplify_bind_expr): Remove temp parameter. + (gimplify_modify_expr_rhs): Handle CLEANUP_POINT_EXPR, BIND_EXPR + and STATEMENT_LIST on the rhs. + (gimplify_statement_list): Voidify the STATEMENT_LIST. + (gimplify_expr): Pass pre_p to gimplify_statement_list. + (gimplify_target_expr): Remove special BIND_EXPR handling. + +2006-08-21 J"orn Rennecke + + * config/sh/lib1funcs-Os-4-200.asm: Guard entire file with + #if !__SHMEDIA__ . + +2006-08-21 Olivier Hainque + + * gimplify.c (gimplify_init_constructor) : + Arrange for the temporary captures of components overlapping the lhs + to happen before the lhs is possibly cleared. + +2006-08-21 Mark Shinwell + + * config/arm/pr-support.c (__gnu_unwind_execute): Insert " + 1" in + necessary places to pass the correct "number of registers" values + to _Unwind_VRS_Pop. + +2006-08-20 Jan Hubicka + + * tree-ssa-alias.c (eq_ptr_info, ptr_info_hash): New function. + (create_name_tags): Instead of quadratic checking use hashtable. + * bitmap.h: Include hashtab.h. + (bitmap_hash): Declare. + * bitmap.c (bitmap_hash): New function. + +2006-08-20 Jan Hubicka + + PR rtl-optimization/28071 + * tree-optimize.c (tree_rest_of_compilation): Do not remove edges + twice. + * tree-inline.c (copy_bb): Use cgraph_set_call_stmt. + * ipa-inline.c (cgraph_check_inline_limits): Add one_only argument. + (cgraph_decide_inlining, cgraph_decide_inlining_of_small_function, + cgraph_decide_inlining_incrementally): Update use of + cgraph_check_inline_limits. + * cgraph.c (edge_hash, edge_eq): New function. + (cgraph_edge, cgraph_set_call_stmt, cgraph_create_edge, + cgraph_edge_remove_caller, cgraph_node_remove_callees, + cgraph_remove_node): Maintain call site hash. + * cgraph.h (struct cgraph_node): Add call_site_hash. + (cgraph_set_call_stmt): New function. + +2006-08-20 Jan Hubicka + + PR rtl-optimization/28071 + * reload1.c (reg_has_output_reload): Turn into regset. + (reload_as_needed, forget_old_reloads_1, forget_marked_reloads, + choose_reload_regs, emit_reload_insns): Update to new + reg_has_output_reload. + +2006-08-20 Jan Hubicka + + PR middle-end/28779 + * ipa-inline.c (cgraph_decide_inlining, cgraph_early_inlining): Compute + function body sizes. + * cgraphunit.c (cgraph_analyze_function): Don't do so. + +2006-08-20 Danny Smith + + PR target/28648 c: + * tree.c (handle_dll_attribute): Return early if not a + var or function decl. + +2006-08-18 Joseph Myers + + PR target/27565 + * config/rs6000/rs6000.h (LOCAL_ALIGNMENT): For SPE, only adjust + alignment of SPE vector types. + +2006-08-18 Christophe Jaillet + + * tree.c (is_attribute_with_length_p): Remove a duplicated assert. + +2006-08-17 Jakub Jelinek + + PR c/28744 + * cgraph.h (struct cgraph_node): Remove externally_visible + bitfield. + * cgraphunit.c (process_function_and_variable_attributes): Set + local.externally_visible rather than externally_visible. + + PR c/28744 + * c-common.c (handle_externally_visible_attribute): First look + at TREE_CODE and only if it is function or var decl, check for + non-public objects. Don't warn for DECL_EXTERNAL. + * cgraphunit.c (process_function_and_variable_attributes): Warn + if externally_visible attribute is used on non-public object. + +2006-08-17 Jan Hubicka + + PR tree-optimization/27865 + * reload1.c (forget_marked_reloads): New function. + (forget_old_reloads_1): When data are passed, just mark the registers + for later removal. + (reload_as_needed): Use the new mechanizm. + +2006-08-17 Alexandre Oliva + + PR target/28146 + * reload.h (reg_equiv_alt_mem_list): New declaration. + * reload1.c (reg_equiv_alt_mem_list): New definition. + (reload): Initialize it and release it. + (delete_output_reload): Use it. + * reload.c (push_reg_equiv_alt_mem): New function. + (find_reloads_toplev): Call it. + (find_reloads_address, find_reloads_address_1): Likewise. + (find_reloads_subreg_address): Likewise. + +2006-08-17 Maxim Kuvyrkov + + PR rtl-optimization/28489 + * sched-ebb.c (begin_schedule_ready): Create basic block + at the right place. + (advance_target_bb): Skip empty blocks. + * haifa-sched.c (bb_note): Make global. + * sched-int.h (bb_note): Add prototype. + +2006-08-16 Zdenek Dvorak + + PR tree-optimization/27865 + * tree-vrp.c (adjust_range_with_scev): Do not use TYPE_{MIN,MAX}_VALUE + for pointer types. + * tree-scalar-evolution.c (fold_used_pointer_cast, pointer_offset_p, + fold_used_pointer, pointer_used_p): New functions. + (analyze_scalar_evolution_1): Use fold_used_pointer. + * tree-chrec.c (convert_affine_scev): Convert no-op casts correctly. + * tree-ssa-loop-ivopts.c (generic_type_for): Return integral type + for pointers. + +2006-08-17 Paolo Bonzini + + PR c++/28573 + * c-common.c (fold_offsetof_1): Add an argument and recurse down to it + or the INTEGER_CST. Fail on a CALL_EXPR. + (fold_offsetof): Pass new argument to fold_offsetof_1. + * c-parser.c (c_parser_postfix_expression): Don't include a NULL + operand into an INDIRECT_REF. + * c-typeck.c (build_unary_op): Adjust call to fold_offsetof. + +2006-08-16 Zdenek Dvorak + + PR gcov/profile/26570 + * value-prof.c (static_values): Removed. + (tree_find_values_to_profile): Do not set static_values. + (find_values_to_profile): Do not free static_values. + * profile.c (instrument_values): Do not free the values. + (branch_prob): Free the values. + +2006-08-16 Naveen.H.S + + * config/m32c/m32c_lib1.S (__mulsi3): Use only registers for dest. + +2006-08-16 Joseph S. Myers + + PR c/27697 + * c-typeck.c (build_component_ref): Combine qualifiers of + structure or union and field. + +2006-08-16 Zdenek Dvorak + + PR rtl-optimization/28071 + * basic-block.h (bb_dom_dfs_in, bb_dom_dfs_out): Declare. + * dominance.c (bb_dom_dfs_in, bb_dom_dfs_out): New functions. + * tree-into-ssa.c (struct dom_dfsnum): New. + (cmp_dfsnum, find_dfsnum_interval, prune_unused_phi_nodes): New + functions. + (insert_phi_nodes_for): Use prune_unused_phi_nodes instead of + compute_global_livein. + (prepare_block_for_update, prepare_use_sites_for): Mark the uses + in phi nodes in the correct blocks. + +2006-08-16 Zdenek Dvorak + + PR tree-optimization/28364 + * tree-ssa-loop-ivopts.c (aff_combination_to_tree): Handle zero + correctly. + (fold_affine_expr): New function. + (may_eliminate_iv): Use fold_affine_expr. + +2006-08-16 Volker Reichelt + + PR c/27489 + * c-typeck.c (c_start_case): Handle invalid orig_type correctly. + Clean up. + +2006-08-16 Mike Stump + + * doc/invoke.texi (-Wno-deprecated-declarations): Fixup use of pxref. + * doc/cppopts.texi (-MD): Likewise. + +2006-08-15 Danny Smith + + PR c/28287 + * c-common.c (handle_weak_attribute): Ignore and warn if + not a FUNCTION_ or VAR_DECL. + +2006-07-15 Mike Stump + + PR c/28280 + * c-parser.c (c_parser_typeof_specifier): Don't use + c_finish_expr_stmt, open code desired semantics instead. + +2006-08-15 Nick Clifton + + * config.gcc (x86-mingw32): Add a gthr-win32.h including makefile + fragment to tmake_file only if threads are enabled. + * config/i386/t-mingw32 (LIB2FUNCS_EXTRA): Move to... + * config/i386/t-gthr-win32: New file. ... here. + +2006-08-15 Volker Reichelt + + PR c/28649 + * c-parser.c (c_parser_compound_statement_nostart): Reset + parser->error after each statement. + +2006-08-15 Jakub Jelinek + + PR middle-end/28713 + * omp-low.c (lower_omp_parallel): Convert t to + receiver_decl's type. + (expand_omp_parallel): STRIP_NOPS from the MODIFY_EXPR + source before comparison. + + PR middle-end/28724 + * gimplify.c (gimplify_omp_atomic_pipeline): Convert oldival + to itype in assignment to oldival2. + +2006-07-14 Andrew Pinski + + PR c/27490 + PR c/27489 + * c-typeck.c (build_compound_expr): If the second expression + is an error mark, then just return an error mark instead of + creating a COMPOUND_EXPR. + +2006-07-14 Mike Stump + + * Makefile.in (LIBGCC_DEPS): Don't depend on LANGUAGES. + +2006-08-14 Kazu Hirata + + * c-decl.c, var-tracking.c: Fix comment typos. + +2006-08-14 Richard Sandiford + + PR rtl-optimization/28634 + * reorg.c (fill_slots_from_thread): Do not assume A + X - X == A + for floating-point modes unless flag_unsafe_math_optimizations. + +2006-08-13 Alexandre Oliva + Andrew Pinski + + PR c/27184 + * tree.c (build_array_type): Unify array types with + unspecified index_type. + * c-decl.c (grokdeclarator): Make sure we do not modify a + unified incomplete array type. + * c-typeck.c (store_init_value): Create distinct type before + filling in the index type in an initializer from a compound + literal. + + * c-decl.c (grokdeclarator): Remove code where we copy the + array type over. + +2006-08-13 Andrew Pinski + + * tree-pass.h (TODO_update_ssa): Fix which bit is used to take + into account for TODO_dump_cgraph. + (TODO_update_ssa_no_phi): Likewise. + (TODO_update_ssa_full_phi): Likewise. + (TODO_update_ssa_only_virtuals): Likewise. + (TODO_remove_unused_locals): Likewise. + (TODO_set_props): Likewise. + (TODO_update_stmt_usage): Likewise. + +2006-08-13 Dirk Mueller + + * c-common.c (strict_aliasing_warning): Fix formatting. + +2006-08-13 Matthias Klose + + * doc/invoke.texi: Fix spelling errors. + +2006-08-11 Eric Botcazou + + PR rtl-optimization/23454 + * reorg.c (relax_delay_slots): Update comment. + +2006-08-11 Richard Guenther + + PR middle-end/28651 + * simplify-rtx.c (simplify_const_relational_operation): + Simplify A CMP B to A - B CMP 0 only for EQ and NE comparison + codes. + +2006-08-10 Eric Botcazou + + * tree.c (build1_stat): Also propagate the TREE_CONSTANT and + TREE_INVARIANT flags for a VIEW_CONVERT_EXPR. + +2006-08-10 Paul Brook + + * final.c (final_scan_insn): Clear current_insn_predicate before + outputting inline asm. + +2006-08-10 Dorit Nuzman + + PR tree-optimization/26197 + * tree-ssa-alias.c (new_type_alias): Takes additional argument. Calls + get_ref_base_and_extent and overlap_subvar to add only relevant + subvars as may-aliases. + (add_may_alias_for_new_tag): New function, factored out of + new_type_alias. + * tree-vect-transform.c (vect_create_data_ref_ptr): Call new_type_alias + with additional argument. + * tree-flow.h (new_type_alias): Takes additional argument. + +2006-08-09 Nathan Sidwell + + * gcov.c (no_data_file): New flag. + (read_count_file): Set it if data file not present. Assume counts + zero if not found. + (output_lines): Don't name the data file, if there wasn't one. + +2006-08-09 Eric Botcazou + + * config/rs6000/rs6000.c (print_operand) : Fix comment and adjust. + (rs6000_generate_compare): Tweak comments. + * config/rs6000/rs6000.md (UNSPEC_MV_CR_GT): Fix comment. + +2006-08-09 Alexandre Oliva + + * var-tracking.c (enum micro_operation_type): Add MO_COPY. + (var_debug_decl): New function. + (var_reg_set): Follow debug decl link. Add location even if + reg is already known to hold some other variable. + (var_mem_set): Follow debug decl link. + (var_reg_delete_and_set, var_mem_delete_and_set): Follow debug + decl link. Delete other known locations of the variable part + if requested. + (var_reg_delete, var_mem_delete): Delete other known locations + of the variable part if requested. + (same_variable_part_p): New function. + (add_stores): Select MO_COPY when appropriate. + (vt_initialize): Handle it. + (compute_bb_dataflow, emit_notes_in_bb): Likewise. Delete + known locations for MO_SET and MO_CLOBBER. + (find_variable_location_part): New function. + (set_variable_part, delete_variable_part): Use it. + (clobber_variable_part): New function. + * dwarf2out.c (dwarf2out_var_location): Do not follow debug + decl link. + +2006-08-07 Victor Kaplansky + + PR tree-optimization/26969 + * tree-vect-analyze.c (vect_analyze_loop_form): Add check of latch + with an empty list of PHIs. + +2006-08-06 Paolo Bonzini + + PR target/27827 + + * conffig/i386/i386.md: Add peephole2 to avoid "fld %st" + instructions. + +2006-08-06 Andreas Schwab + + * config/m68k/m68k.c (m68k_output_function_epilogue): Fix format + string. Whitespace and comment fixup. + +2006-08-05 Volker Reichelt + + PR c/28502 + * c-decl.c (validate_proto_after_old_defn): Return false on invalid + argument. + + PR c/27721 + * c-typeck.c (build_modify_expr): Test earlier for non-lvalues. + + PR c/28136 + * c-parser.c (c_parser_postfix_expression_after_paren_type): Robustify. + +2006-08-04 Jan Hubicka + + PR target/26655 + PR target/28270 + * reload.c (push_reload): Patch out the mismatching instruction; + return early. + (find_reload): Bail out if the instruction was patched out. + +2006-08-04 Jan Hubicka + + PR tree-optimization/24888 + * tree-inline.c (expand_call_inline): Do not re-record variables. + (declare_inline_vars): Add variable to unexpanded_var_list. + +2006-08-04 John David Anglin + Roger Sayle + + PR rtl-optimization/26244 + * cse.c (fold_rtx): Correctly associate shifts when const_arg1 and/or + inner_const are negative or greater than or equal to the bitsize of + MODE. If SHIFT_COUNT_TRUNCATED is false, the values aren't associated. + Otherwise, the values are masked using GET_MODE_BITSIZE (mode) - 1. + Simplify complicated if statement. For ASHIFT and LSHIFTRT, return + CONST0_RTX (mode) when the new shift count is greater than or equal to + to the bitsize of the object being shifted and XEXP (y, 0) has no side + effects. + +2006-08-04 Kazu Hirata + + * tree-cfg.c: Fix a comment typo. + +2006-08-03 Mark Mitchell + + PR c++/28148 + * varasm.c (output_constant): Give the front end another chance to + expand constants, after stripping NOPs. + +2006-08-03 Jan Hubicka + + * domwalk.c (walk_dominator_tree): Reorganize to non-recursive + implementation. + +2006-08-03 Dorit Nuzman + + PR tree-optimization/27770 + * tree-vectorizer.h (get_vectype_for_scalar_type): Function + declaration removed (moved to tree-flow.h). + (vect_can_force_dr_alignment_p): Likewise. + * tree-flow.h (get_vectype_for_scalar_type): New function declaration + (moved from tree-vectorizer.h). + (vect_can_force_dr_alignment_p): Likewise. + * tree-vectorizer.c (vect_print_dump_info): Allow calling this function + from outside the vectorizer - in particular from cgraph stage. + * tree-vect-analyze.c (vect_compute_data_ref_alignment): Don't increase + the alignment of global arrays when -fsection-anchors is enabled. + * cgraphunit.c (cgraph_increase_alignment): New function. + (cgraph_optimize): Call cgraph_increase_alignment. + +2006-08-03 David Edelsohn + + PR target/27566 + * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Do + not reload a SPE symbol_ref into a lo_sum address. + +2006-08-02 Daniel Jacobowitz + + PR debug/28063 + * dwarf2out.c (prune_unused_types_prune): Move call to + prune_unused_types_update_strings to cover the parent DIE also. + +2006-08-02 Jan Hubicka + + PR gcov/profile/28480 + * tree-cfg.c (change_bb_for_stmt): New function. + (tree_merge_blocks, tree_split_blocks): Use it. + +2006-08-01 Volker Reichelt + + PR c++/28250 + PR c++/28257 + PR c++/28259 + PR c++/28267 + * toplev.c (compile_file): Return early on errorcount or sorrycount. + * cgraphunit.c (cgraph_finalize_compilation_unit): Likewise. + (cgraph_optimize): Likewise. + +2006-08-01 Stuart Hastings + + * rtl.h (UINTVAL) New. + * config/rs6000/rs6000.c (SMALL_INT) Use it. + * testsuite/gcc.dg/20060801-1.c: New. + +2006-08-01 Daniel Jacobowitz + + PR debug/23336 + * c-typeck.c (build_external_type): Mark used enum types. + * dwarf2out.c (dwarf2out_abstract_function): Save and restore + cfun also. + (gen_subprogram_die): Whitespace fix. + +2006-08-01 Jan Hubicka + + * tree-outof-ssa.c (check_replaceable): Do not allocate def_vars + bitmap when not needed. + * tree-ssa-pre.c (bitmap_set_and, bitmap_set_and_compl): Free temporary + bitmaps. + +2006-08-01 Dirk Mueller + + * tree-vrp.c (fix_equivalence_set): Avoid bitmap memory leak. + +2006-07-31 Volker Reichelt + + * Makefile.in: Revert part of previous patch: + Replace $(VARRAY_H) by varray.h in definition of BASIC_BLOCK_H + and REGS_H. + +2006-07-30 Eric Christopher + + PR target/27543 + * doc/extend.texi (i386 Variable Attributes): Add anchor. + (PowerPC Variable Attributes): New section. + +2006-07-30 Atsushi Nemoto + + PR target/28126 (partial fix) + * config/mips/mips.md (tls_get_tp_): Set can_delay to no. + +2006-07-28 Jan Hubicka + + PR rtl-optimization/28071 + * cfgrtl.c (rtl_delete_block): Free regsets. + * flow.c (allocate_bb_life_data): Re-use regsets if available. + +2006-07-28 Volker Reichelt + + * Makefile.in: Use $(HEADER_H) instead of header.h in dependencies + and variables used in dependencies. + +2006-07-27 Arjan van de Ven + + * config/i386/i386.md (stack_tls_protect_set_di) Use %gs rather than + %fs for -mcmodel=kernel. + (stack_tls_protect_test_di): Likewise. + +2006-07-27 Carlos O'Donell + + * Makefile.in: Use mkinstalldirs. + +2006-07-27 H.J. Lu + + PR driver/28437 + * opts-common.c (prune_options): Skip joined switches. + +2006-07-27 Jan Hubicka + + PR rtl-optimization/28071 + * cselib.c (cselib_process_insn): Don't remove useless values too + often for very large hashtables. + +2006-07-27 Jan Hubicka + + PR rtl-optimization/28071 + * global.c (greg_obstack): New obstack. + (allocate_bb_info): Use it. + (free_bb_info): Likewise. + (modify_reg_pav): Likewise. + +2006-07-27 Roger Sayle + + * builtins.c (fold_fixed_mathfn): When long and long long are the + same size, canonicalize llceil*, llfloor*, llround* and llrint* + functions to their lceil*, lfloor*, lround* and lrint* forms. + +2006-07-27 Kazuhiro Inaoka + + PR gcc/28508 + * config/m32r/m32r.md (branch_insn): Reduce pc range for short + branch. + (rev_branch_insn): Likewise. + +2006-07-27 Jan Hubicka + + PR rtl-optimization/28071 + * regmove.c (reg_is_remote_constant_p): Avoid quadratic behaviour. + (reg_set_in_bb, max_reg_computed): New static variables. + (regmove_optimize): Free the new array. + (fixup_match_1): Update call of reg_is_remote_constant_p. + +2006-07-26 Jan Hubicka + + PR tree-optimization/27882 + * cgraph.c (cgraph_remove_node): Clear needed, reachable, next, previous + and decl fields. + * cgraphunit.c (cgraph_reset_node): Expect cgraph_remove_node to kill + next pointer + (cgraph_analyze_compilation_unit): Likewise. + * ipa.c (cgraph_remove_unreachable_nodes): Likewise. + * ipa-inline.c (cgraph_decide_recursive_inlining): Likewise. + (cgraph_early_inlinine): Make order garbage collected. + * Makefile.in (gt-ipa-inline): New garbagecollected file. + +2006-07-26 Daniel Jacobowitz + + * dbxout.c (output_types_sort): Add a comment. + (output_used_types): Free the VEC. + +2006-07-26 Daniel Jacobowitz + + * function.c (reorder_fix_fragments): Delete. + (reorder_blocks): Don't call it. + (reorder_blocks_1): Put all subblocks under the origin block. + +2006-07-26 Zdenek Dvorak + + PR rtl-optimization/27907 + * expr.c (force_operand): Use convert_move to handle FLOAT_EXTEND and + FLOAT_TRUNCATE. + +2006-07-25 Roger Sayle + + PR middle-end/28473 + * convert.c (convert_to_integer): When transforming (T)foo(x) into + bar(x) check that bar's result type can represent all the values of T. + +2006-07-25 Zdenek Dvorak + + * tree-chrec.c (chrec_convert_aggressive): Return NULL on failure. + +2006-07-25 Nick Clifton + + * ggc-page.c (NUM_SIZE_LOOKUP): New constant - the length of the + size_lookup[] array. + (ggc_alloc_stat): Use NUM_SIZE_LOOKUP. + (ggc_pch_count_object): Likewise. + (ggc_pch_alloc_object): Likewise. + (ggc_pch_write_object): Likewise. + (init_ggc): Do not attempt to initialize entries in the + size_lookup[] array for objects whose size is greater than than + the length of the array. + +2006-07-25 Daniel Jacobowitz + + * dbxout.c (output_used_types_helper): Push queued types + on a VEC. + (output_types_sort): New. + (output_used_types): Collect used types on a VEC and sort them + before emission. + +2006-07-24 Richard Guenther + + PR middle-end/28463 + * cgraph.c (cgraph_remove_node): Do not check if dumps + are enabled. + * cgraphunit.c (cgraph_optimize): Likewise. + +2006-07-24 Jan Hubicka + + PR rtl-optimization/28071 + * tree-cfg.c (tree_split_block): Do not allocate new stmt_list nodes. + * tree-iterator.c (tsi_split_statement_list_before): Do not crash when + splitting before first stmt. + +2006-07-24 Jan Hubicka + + PR rtl-optimization/28071 + * ipa-inline.c (update_caller_keys): Remove edges that + are no longer inline candidates. + +2006-07-23 Daniel Jacobowitz + + PR debug/27473 + * dbxout.c (output_used_types_helper, output_used_types): New. + (dbxout_symbol): Call output_used_types. + +2006-07-23 Jan Hubicka + + PR c/25795 + PR c++/27369 + * cgraph.c (cgraph_varpool_nodes): Export. + (decide_is_variable_needed): Ignored "used" attribute in + unit-at-a-time mode. + * cgraph.h (cgraph_varpool_nodes): Declare. + * cgraphunit.c (decide_is_function_needed): Ignored "used" attribute in + unit-at-a-time mode. + +2006-07-23 Roger Sayle + + PR target/28247 + * gthr-solaris.h: Prototype __gthrw forms of thr_self, mutex_init and + mutex_destroy even when !_LIBOOBJC. Remove duplicate prototype of + the __gthrw form of thr_keycreate. + (__gthread_key_delete): Silence the unused argument warning. + +2006-07-23 Steven Bosscher + + PR debug/25468 + * config/elfos.h (ASM_OUTPUT_ASCII): Remove 'register' marks. + Cache the last found '\0' marker to avoid quadratic behavior. + +2006-07-23 Jan Hubicka + + * i386.md (subsi_3_zext): Fix output template. + +2006-07-21 Mike Stump + + * doc/invoke.texi (C++ Dialect Options): Note that + -fvisibility-inlines-hidden doesn't affect explicitly + instantiationed inline methods. + +2006-07-20 Roger Sayle + + * config.gcc (i[34567]86-*-solaris2*): Add usegas.h to $tm_file + if the target assembler is GNU binutils' gas. + * config/i386/sol2-10.h (ASM_SPEC): Check USE_GAS to determine + whether to pass GNU gas or native as command line options. + +2006-07-20 Jason Merrill + + * tree.c (remove_attribute): New fn. + * tree.h: Declare it. + +2006-07-20 Paul Brook + + PR 27363 + * cse.c (cse_insn): Add destination addresses to hash table. Check if + they are invalidated by this instruction. + +2006-07-21 Danny Smith + + PR target/28427 + * config/i386/cygming.h (MAX_OFILE_ALIGNMENT): Define. + +2006-07-20 Eric Christopher + + PR target/26877 + * config/i386/i386.h (OPTION_DEFAULT_SPECS): Reorder. + +2006-07-19 Eric Christopher + + * config/t-slibgcc-darwin (stmp-lipo): Remove. + Rewrite dependencies for libgcc_s.1.dylib. + +2006-07-19 Jakub Jelinek + + * except.c (duplicate_eh_regions_1): Clear next_peer. + +2006-07-17 Nathan Sidwell + + * doc/invoke.texi (RS/6000 and PowerPC Options): Document that + -mlongcall does not guarantee all calls will be long. + * doc/extend.texi (long_call/short_call): Document that longcall + does not guarantee a long call will be used. + (longcall/shortcall): Likewise. + +2006-07-18 Roger Sayle + + PR middle-end/28283 + * expmed.c (expand_shift): Additionally check that the shift_cost + is not MAX_COST and that INTVAL(op1) is less than MAX_BITS_PER_WORD + before implementing a LSHIFT_EXPR as a sequence of additions. + * config/sh/sh.c (shift_costs): Return MAX_COST to inform the + middle-end that DImode shifts need to be synthesized by expand. + +2006-07-18 Diego Novillo + + PR 28410 + * tree-ssa-operands.c (access_can_touch_variable): Update + comment. + Return true if ALIAS is .GLOBAL_VAR. + +2006-07-18 David Daney + + * gcc.c (display_help): Fix typo in help text. + +2006-07-18 Olivier Hainque + + * tree.h (categorize_ctor_elements): Adjust prototype and add + descriptive comment, both in accordance with the interface change + described below. + * varasm.c (constructor_static_from_elts_p): New function. + Whether a constructor node is a valid static constant initializer + if all its elements are. + (initializer_constant_valid_p) : Use it. + * output.h: Declare it. + * expr.c (categorize_ctor_elements_1): Return whether the constructor + is a valid constant initializer instead of computing the number of + non-constant elements. Use constructor_static_from_elts_p for this + purpose. Replace the head comment with an indication that this is a + helper for categorize_ctor_elements. + (categorize_ctor_elements): Same interface change as for the _1 + helper. Former head comment from this helper moved here, adjusted to + account for the interface changes. + (mostly_zeros_p): Adjust call to categorize_ctor_elements. + (all_zeros_p): Likewise. + * gimplify.c (gimplify_init_constructor): Decide whether we can make + static versions of the constructor from the categorize_ctor_elements + return value instead of the formerly computed number of non-constant + elements. + +2006-07-18 Paolo Bonzini + + * configure: Regenerate. + * Makefile.in (build_libsubdir): New configure substitution + (build_libobjdir): New variable. + (BUILD_LIBIBERTY): Use it. + +2006-07-18 Volker Reichelt + + PR c/28286 + * c-pragma.c (handle_pragma_pack): Handle invalid constants. + +2006-07-18 Alexandre Oliva + + PR c/26993 + * c-common.c (handle_weakref_attribute): Ignore attribute in + the same conditions the alias attribute is ignored. + +2006-07-17 Carlos O'Donell + + * dbxout.c (dbxout_function_end): Do not increment scope_labelno. + (dbxout_begin_prologue): Increment scope_labelno. + +2006-07-17 Richard Henderson + + PR 27889 + * tree-nested.c (create_tmp_var_for): Set DECL_COMPLEX_GIMPLE_REG_P + if needed. + +2006-07-17 Roger Sayle + Rainer Orth + + * config/i386/gmon-sol2.c: Silence compilation warnings by partially + synchronizing code with config/sparc/gmon-sol2.c. Remove #if 0 + blocks. #include "tconfig.h" and "tsystem.h" to prototype system + functions such as sbrk, write, etc.. Add function prototypes. + Convert function declarations from K&R to ISO C. Cast pointers + to "long" and "unsigned long" instead of "int" and "unsigned int". + Convert tokens following #endif into comments. + +2006-07-17 Toon Moene + + * invoke.texi: Remove mention of f77; Reformat table for + inline parameter options correctly; mention that -malign-double + is default on x86-64 targets. + +2006-07-17 Zdenek Dvorak + + * tree-chrec.c (avoid_arithmetics_in_type_p): New. + (convert_affine_scev, chrec_convert_aggressive): Use + avoid_arithmetics_in_type_p. Do not check for the subtypes + separately. + +2006-07-17 Richard Sandiford + + PR middle-end/28403 + * optabs.c (expand_doubleword_shift): Wrap the call to + do_compare_rtx_and_jump with NO_DEFER_POP and OK_DEFER_POP. + +2006-07-17 Richard Sandiford + + PR middle-end/28402 + * optabs.c (expand_binop): Pass next_methods rather than methods + to expand_doubleword_shift. + +2006-07-17 J"orn Rennecke + + PR other/28251 + * tree.h (dump_addr): Declare. + * print-tree.c (dump_addr): New function. + (print_node_brief, print_node): Use it. + * print-rtl.c (print_rtx): Likewise. + * common.opt (-fdump-noaddr): New option. + * doc/invoke.texi (-fdump-noaddr): Document. + * loop-unroll.c (si_info_hash): Make hash independent of addresses. + (ve_info_hash): Likewise. + +2006-07-13 Andrew Haley + + PR tree-optimization/19505 + * tree-cfgcleanup.c (tree_forwarder_block_p): If we have an EH + edge leaving this block, make sure that the destination of this + block has only one predecessor. + +2006-07-17 Richard Guenther + + PR tree-optimization/28238 + * tree-inline.c (copy_bb): Check if we produced valid + gimple copying and substituting a stmt. If not, gimplify + it. + +2006-07-16 Eric Botcazou + + * optabs.c (maybe_encapsulate_block): New function extracted from... + (emit_libcall_block): ...here. Invoke it on the block of insns to + maybe emit REG_LIBCALL/REG_RETVAL notes around the block. + (emit_no_conflict_block): Likewise. + +2006-07-16 Eric Botcazou + + * doc/install.texi (sparc-sun-solaris2*): Add GMP version number. + +2006-07-15 Roger Sayle + + * tree-gimple.c (is_gimple_stmt): Sink test of IS_EMPTY_STMT into + a new NOP_EXPR case of the switch statement. + +2006-07-15 Kaz Kojima + + PR middle-end/28160 + * stor-layout.c (place_field): Take the bit field with + an excessive size into account in the ms-bitfiled case. + + PR middle-end/28161 + * stor-layout.c (place_field): Use DECL_BIT_FIELD_TYPE of + the previous bit field. + +2006-07-14 Eliot Dresselhaus + + PR target/27287 + * config/rs6000/spe.md (frob_di_df_2): Add m->r alternative. + +2006-07-14 Ulrich Weigand + + * config/s390/linux-unwind.h (s390_fallback_frame_state): Detect + signal frames correctly even when the signal was installed with + sa_restorer set. + +2006-07-14 Carlos O'Donell + + * dbxout.c (dbxout_begin_prologue): Emit LFBB label at function start. + (dbxout_function_end): Use local label LFBB. Remove hook + DBX_OUTPUT_NFUN. + (dbxout_source_line): Use local label LFBB. + (dbxout_block): Likewise. + (dbx_output_lbrac): Remove hook DBX_OUTPUT_LBRAC. + (dbx_output_rbrac): Remove hook DBX_OUTPUT_RBRAC. + * config/rs6000/linux64.h: Remove DBX_OUTPUT_LBRAC, DBX_OUTPUT_RBRAC, + and DBX_OUTPUT_NFUN. + +2006-07-13 Janis Johnson + + * doc/sourcebuild.texi (Test Directives): Document dg-shouldfail. + +2006-07-13 Jan Hubicka + + * cgraphunit.c (cgraph_varpool_analyze_pending_decls): Call + align_variable. + * output.h (align_variable): Declare. + * varasm.c (align_variable): Export. + * value-prof.c (tree_value_profile_transformations): Recompute iterator + when basic block changed. + +2006-07-13 Nick Clifton + + * config/sh/sh.c (sh_reorg): Ignore deleted insns whilst + walking the LOG_LINKS chain. + +2006-07-12 Geoffrey Keating + + * doc/invoke.texi (C++ Dialect Options): Explain difference + between -fvisibility-inlines-hidden and setting hidden + visibility explicitly. + +2006-07-12 Eric Christopher + + * config/t-slibgcc-darwin (SHLIB_LINK): Don't munge stmp-lipo. + (stmp-lipo): Depend on libgcc.a. + +2006-07-12 Kazu Hirata + + * tree.c: Fix a comment typo. + +2006-07-12 Naveen.H.S + + * config/m32c/muldiv.md (umulhisi3_c): Use only registers for + dest. + (umulhisi3_r): Likewise. + +2006-07-12 Paolo Carlini + + PR libstdc++/27878 + * doc/install.texi (mips-sgi-irix6): Add note about IRIX 6.5.x, + x < 19, vs wchar_t support. + +2006-07-12 Nick Clifton + + * config/sh/sh.h (SUBTARGET_ASM_RELAX_SPEC): Use -isa=sh4-up + instead of -isa=sh4. + +2006-07-12 Mike Stump + + * protoize.c (edit_fn_definition): Add volatile to clean_text_p. + +2006-07-10 Eric Christopher + + * config/t-slibgcc-darwin: Rewrite. + +2006-07-10 Laurynas Biveinis + + PR bootstrap/20437 + * Makefile.in (configure): add missing aclocal.m4 and acinclude.m4 + dependencies. + +2006-07-08 Matthias Klose + + * doc/sourcebuild.texi: Fix typo. + +2006-07-07 Mike Stump + + * toplev.c (process_options): Don't give -ffunction-sections may + affect debugging warning for Mach-O. + +2006-07-07 James E Wilson + + * config/mips/mips.md (cpu): Add sb1a. + * config/mips/sb1.md: Modify almost all patterns to accept sb1a in + addition to sb1. Adjust comments to clarify SB-1A differences from + SB-1. + (ir_sb1a_load): New. Modify bypasses to use it. + (ir_sb1a_simple_alu): Likewise. + * config/mips/mips.c (mips_cpu_info_table): Add sb1a. + (mips_rtx_cost_data): Add PROCESSOR_SB1A support. + (mips_issue_rate): Add PROCESSOR_SB1A. + (mips_multipass_dfa_lookahead): Use TUNE_SB1 instead of PROCESSOR_SB1. + * config/mips/mips.h (processor_type): Add PROCESSOR_SB1A. + (TARGET_SB1): Add PROCESSOR_SB1A check. + (TUNE_SB1): Likewise. + + * config/mips/mips-protos.h (mips_store_data_bypass_p): New. + * config/mips/mips.c (mips_store_data_bypass_p): New. + * config/mips/sb1.md: Use mips_store_data_bypass_p instead of + store_data_bypass_p. + +2006-07-08 Paul Brook + + PR target/27991 + * config/m68k/m68k.md: Add r-m patterns for 68881 movxf. + +2006-07-07 Richard Guenther + + PR middle-end/28268 + * tree.h (build_one_cst): Declare. + * tree.c (build_one_cst): New function. + * tree-ssa-math-opts.c (get_constant_one): Remove. + (insert_reciprocals): Use build_one_cst. + * fold-const.c (fold_plusminus_mult): Likewise. + +2006-07-07 Roger Sayle + + * pointer-set.c (pointer_set_destroy): Correct whitespace. + * cfgloopanal.c (dump_graph): Likewise. + * dojump.c (discard_pending_stack_adjust): Likewise. + * fix-header.c (TARGET_EXTRA_INCLUDE, TARGET_EXTRA_PRE_INCLUDES): + Likewise. + * alloc-pool.c (dump_alloc_pool_statistics): Likewise. + * function.c (finalize_block_changes): Likewise. + * gcc-common.c (ggc_free_overhead, dump_gcc_loc_statistics): Likewise. + * tree-ssa-dce.c (clear_control_dependence_bitmap): Likewise. + * rtl.c (dump_rtx_statistics): Likewise. + * tree-ssa-structalias.c (sort_fieldstack, init_alias_heapvars): + Likewise. + * varray.c (dump_varray_statistics): Likewise. + * dfp.c (encode_decimal32, decode_decimal32, encode_decimal64, + decode_decimal64, encode_decimal128, decode_decimal128, + decimal_real_to_decimal): Likewise. + +2006-07-07 Richard Guenther + + PR tree-optimization/28187 + * tree-vrp.c (vrp_operand_equal_p): New function. + (vrp_bitmap_equal_p): Likewise. + (update_value_range): Use them to compare old and new + max and min values. + +2006-07-06 Roger Sayle + + * c-parser.c (c_parser_skip_to_end_of_block_or_statement): Add + a default case to switch statement to silence compiler warnings. + +2006-07-06 Roger Sayle + + PR target/27968 + * configure.ac (HAVE_AS_IX86_FFREEP): On x86 targets check whether + the configured assembler supports the x87's ffreep mnemonic. + * configure: Regenerate. + * config.in: Regenerate. + + * config/i386/i386.c (output_387_ffreep): New function. + (output_fp_compare): Use output_387_ffreep to emit ffreep insns. + (output_387_reg_move): Likewise. + +2006-07-06 Paul Eggert + + Port to hosts whose 'sort' and 'tail' implementations + treat operands with leading '+' as file names, as POSIX + has required since 2001. However, make sure the code still + works on pre-POSIX hosts. + * Makefile.in (slowcompare): Port to POSIX 1003.1-2001, + which says you should use "tail -c +N" rather than "tail +Nc". + Fix a bug: the old code incorrectly skipped 15 bytes, not 16. + +2006-07-06 Zdenek Dvorak + + * tree-ssa-loop-niter.c (scev_probably_wraps_p): Fix typo in + argument name. + +2006-07-06 David Edelsohn + + PR target/28150 + * config/rs6000/rs6000.c (rs6000_legitimate_address): Do not allow + PRE_{INC,DEC} of TFmode. + +2006-07-06 David Edelsohn + Alan Modra + + PR target/28170 + * config/rs6000/rs6000.c (insvdi_rshift_rlwimi_p): Correct shiftop + bounds. Simplify. + +2006-07-06 Rainer Orth + + PR target/28285 + * config/alpha/predicates.md (alpha_swapped_comparison_operator): + Remove duplicate gtu. + +2006-07-05 Jason Merrill + + PR c++/13983 + PR c++/17519 + * stor-layout.c (finish_record_layout): Copy TYPE_PACKED to variants. + * c-common.c (handle_packed_attribute): So don't copy it here. + * c-decl.c (finish_struct): Don't copy TYPE_ALIGN. + +2006-07-05 Mike Stump + + * doc/invoke.texi (Invoking G++): Clarify prose for g++. + +2006-07-05 H.J. Lu + + PR target/26146 + * config.gcc: Check with_cpu for i[34567]86--*-solaris2.1[0-9]*. + +2006-07-05 Richard Guenther + + PR target/28158 + * config/i386/i386.md (*negdf2_1): Restrict pattern to + TARGET_SSE2 targets if using SSE math. + (*absdf2_1): Likewise. + +2006-07-05 Richard Guenther + + PR tree-optimization/28162 + * fold-const.c (fold_binary): For (-A) * (-B) -> A * B + make sure to convert the operands to the correct type. + +2006-07-04 Paolo Bonzini + + PR tree-optimization/28218 + + * tree-ssa-math-opts.c (execute_cse_reciprocals): Fix calls + to calculate and free the dominator information. + +2006-07-04 Peter O'Gorman + + * mklibgcc.in: chmod 644 before ranlib during install. + +2006-07-04 Andrew Stubbs + J"orn Rennecke + + * configure.ac (.eh_frame data check): Use diff -b. + +2006-07-04 Eric Botcazou + + PR bootstrap/18058 + * Makefile.in (BUILD_RTL): Add build/vec.o. + (build/gencondmd.o): Filter out -fkeep-inline-functions. + (build/genextract): Delete. + (build/genautomata): Likewise. + +2006-07-04 Alan Modra + + PR target/28207 + * config/rs6000/rs6000.c (function_arg_boundary): Double-word align + 128-bit IBM long doubles for ABI_V4. + +2006-07-03 Eric Botcazou + + * tree.c (range_in_array_bounds_p): New predicate. + * tree.h (range_in_array_bounds_p): Declare it. + * tree-eh.c (tree_could_trap_p) : Use it to + return a less conservative answer. + * tree-sra.c (struct sra_elt): Add new pointer field 'groups' + and flag 'is_group'. + (IS_ELEMENT_FOR_GROUP): New macro. + (FOR_EACH_ACTUAL_CHILD): Likewise. + (next_child_for_group): New helper function. + (can_completely_scalarize_p): Take into account groups. + (sra_hash_tree): Handle RANGE_EXPR. + (sra_elt_eq): Likewise. + (lookup_element): Be prepared for handling groups. + (is_valid_const_index): Delete. + (maybe_lookup_element_for_expr) : Use in_array_bounds_p + instead of is_valid_const_index. + : New case. + (sra_walk_expr) : Use in_array_bounds_p instead of + is_valid_const_index. + : Do not unconditionally punt. + (scan_dump): Dump info for groups too. + (decide_instantiation_1): Likewise. + (decide_block_copy): Assert that the element is not a group. + Propagate decision to groups. + (generate_one_element_ref): Handle RANGE_EXPR. + (mark_no_warning): Iterate over actual childs. + (generate_copy_inout): Likewise. + (generate_element_copy): Likewise. + (generate_element_zero): Likewise. + (generate_element_init_1): Likewise. + (dump_sra_elt_name): Handle RANGE_EXPR. + +2006-07-03 Roger Sayle + + PR tree-optimization/26251 + * tree-ssa-threadupdate.c (redirection_block_p): New function. + (thread_block): When optimizing for size refuse to thread jumps + that would require duplication of blocks other than redirection + blocks. + +2006-07-03 Paolo Bonzini + + * configure.ac: Fix thinko in previous check-in. + * configure: Regenerate. + +2006-07-03 Paolo Bonzini + + PR other/27063 + * configure.ac (for lang...): Simplify nesting of conditionals. + Test subdir_requires for non-enabled languages. Move processing + of lang_opt_files and lang_tree_fiels below that test. + * configure: Regenerate. + * doc/sourcebuild.texi (Front End Config): Document subdir_requires. + +2006-07-01 Martin Michlmayr + + * doc/gcov.texi (Invoking Gcov): Add a missing word. + +2006-06-30 Kazu Hirata + + * cfgexpand.c, config/i386/i386.c, genpreds.c, tree-cfg.c: Fix + comment typos. + +2006-06-29 Jason Merrill + + PR c++/26905 + PR c++/26612 + PR c++/27000 + PR c++/26984 + PR c++/19134 + * tree.c (build_decl_stat): Don't hande #pragma visibility here. + * c-common.c (c_determine_visibility): Handle it here. + * c-decl.c (finish_decl): Call c_determine_visibility for + functions, too. + * flags.h (enum symbol_visibility): Sort from most to least visibility. + * tree.h: Likewise. + * varasm.c (default_assemble_visibility): Likewise. + * c-common.c (handle_visibility_attribute): Complain about trying + to give visibility to an already defined class, or trying to change + declared visibility. Always attach the attribute. + + PR c++/26905 + PR c++/21675 + PR c++/17470 + * attribs.c (decl_attributes): Ignore type-in-place attributes + once the type has been defined. + +2006-06-29 Roger Sayle + + PR middle-end/27428 + * c-lex.c (c_lex_with_flags) : Increment errorcount + to indicate the cpplib has issued an error message for us. + +2006-06-29 Asher Langton + + PR target/25765 + * config/i386/i386.c (ix86_output_function_epilogue): Don't + insert a label at the end of an function under Mach-O. + +2006-06-29 Eric Christopher + Evan Cheng + + * predicates.md (vector_all_ones_operand): New. + (nonimmediate_or_sse_const_operand): Ditto. + * config/i386/i386-protos.h (standard_sse_constant_opcode): Declare. + * config/i386/i386.c (standard_sse_constant_opcode): Define. + (standard_sse_mode_p): Ditto. + (standard_sse_constant_p): Add case for -1 vector. + (ix86_expand_vector_move): Try to use. + * sse.md (*mov_internal): Use nonimmediate_or_sse_const_operand. + Call standard_sse_constant_opcode. + (*movv4sf_internal): Ditto. + (*movv2df_internal): Ditto. + +2006-06-29 Roger Sayle + + * genpreds.c (write_match_code_switch): Correctly use XSTR instead + of XEXP to extract the operands of a MATCH_CODE rtx. + +2006-06-28 Andrew Pinski + + * tree.c (tree_size): Do not waste tail padding in + struct tree_string and make the size be the same as + build_string will generate. + +2006-06-28 Jason Merrill + + PR c++/27768 + * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Add + may_aliases already in the tag's annotations to the bitmap. + +2006-06-28 Roger Sayle + + * genpreds.c (write_predicate_stmts) : Add missing break. + +2006-06-28 Roger Sayle + + * genpreds.c (generate_switch_p): New function. + (add_mode_tests): Push the new mode test down inside an AND expr + if this allows the switch-suitable MATCH_CODE to be near the root. + (write_match_code_switch): New function to write a MATCH_CODE as + a switch statement. + (write_predicate_stmts): New function to write a predicate RTX + expression as a sequence of statements. + (write_one_predicate_function): Use write_predicate_stmts. + (write_tm_constrs_h): Likewise. + +2006-06-26 Fred Fish + + * config/mips/t-sb1: New file. + * config.gcc (mipsisa64sb1-*-elf*): Add mips/t-sb1 to + tmake_file list. + +2006-06-26 DJ Delorie + + * config/m32c/m32c.c (m32c_print_operand): Fix sign-merging logic. + +2006-06-26 Naveen H.S + Jayant Sonar + Jaydeep Vipradas + + * config/m32c/addsub.md (addsi3, addsi3_1, addsi3_2): New. + (subsi3, subsi3_1, subsi3_2): New. + * config/m32c/bitops.md (andsi3, iorsi3, xorsi3): New. + * config/m32c/mov.md (SI mov peephole): New. + * config/m32c/m32.c (m32c_immd_dbl_mov): New. + * config/m32c/m32c-protos.h (m32c_immd_dbl_mov): New. + +2006-06-26 Olivier Hainque + + * function.c (aggregate_value_p): Honor DECL_BY_REFERENCE on + a CALL_EXPR target function declaration. + +2006-06-26 Richard Guenther + + * tree.c (build_string): Do not waste tail padding in + struct tree_string. + +2006-06-26 Richard Guenther + + * ggc-page.c (init_ggc): Add missing element to size_lookup + table. + + Revert + 2006-06-23 Richard Guenther + + * ggc-page.c (init_ggc): Do not round up the extra_order_size_table + sizes to MAX_ALIGNMENT. Fix the size_lookup table to honour + alignment requests instead. Add verification code. + Add struct tree_function_decl and struct tree_binfo size to + extra_order_size_table. Add missing element to size_lookup + table. + +2006-06-25 Eric Botcazou + + PR middle-end/28151 + * fold-const.c (const_binop): Be prepared for self returning zero. + Simplify code handling complex values. + +2006-06-24 Olivier Hainque + + * gimplify.c (gimplify_scalar_mode_aggregate_compare): New function. + (gimplify_expr): Use it for tcc_comparison of operands of non BLKmode + aggregate types. + +2006-06-24 Olivier Hainque + + * tree-ssa-loop-im.c (for_each_index): Handle ARRAY_RANGE_REF as + ARRAY_REF, so have the callback called for the low bound expression. + +2006-06-23 Janis Johnson + + * tree.h (DECIMAL_FLOAT_TYPE_P): New. + * c-typeck.c (c_common_type): Disallow operations on decimal float + types and other float types. + * convert.c (convert_to_real): Don't ignore conversions involving + decimal float types. + +2006-06-23 Olivier Hainque + + * tree.c (max_int_size_in_bytes): New function, inspired from + code in function.c:assign_temp. + * tree.h (max_int_size_in_bytes): Declare. + * function.c (assign_temp): Use it. + * gimplify.c (create_tmp_var): Relax the assertions on the type + properties, not mandating constant size any more. + (force_constant_size): New static function. + (gimple_add_tmp_var): Use it, forcing variable size to a + constant upper bound if it is not constant on entry. + +2006-06-23 Danny Smith + + PR target/27789 + * config/i386/winnt.c (ix86_handle_selectany_attribute): Move check + for initialization and setting of one_only flag to ... + (i386_pe_encode_section_info): ...here. + (i386_pe_dllimport_p): Check for DECL_DLLIMPORT_P also. + Recheck that the symbol has not been defined. + +2006-06-23 Richard Guenther + + * ggc-page.c (init_ggc): Do not round up the extra_order_size_table + sizes to MAX_ALIGNMENT. Fix the size_lookup table to honour + alignment requests instead. Add verification code. + Add struct tree_function_decl and struct tree_binfo size to + extra_order_size_table. Add missing element to size_lookup + table. + +2006-06-22 Roger Sayle + John David Anglin + + PR middle-end/28131 + * expr.c (expand_expr_real_1) : Check whether the + call to lang_hooks.types.type_for_mode returned NULL_TREE. + +2006-06-23 Ben Elliston + + * dfp.c (decimal_to_decnumber): Do not use decNumberNegate to + negate dn -- manipulate it directly. + +2006-06-22 Roger Sayle + Steven Bosscher + + PR target/27531 + * reload1.c (gen_reload): Call mark_jump_label on the new insns + generated by gen_move_insn to add REG_LABEL notes if necessary. + +2006-06-22 Bob Wilson + + * config/xtensa/lib1funcs.asm (MIN_ESA): Delete. + (leaf_entry): Remove use of MIN_ESA. + +2006-06-22 Zdenek Dvorak + + PR rtl-optimization/28121 + * cfgexpand.c (tree_expand_cfg): Clean EDGE_EXECUTABLE flag from + the entry edge. + +2006-06-21 DJ Delorie + + * config/m32c/muldiv.md (mulhisi3_i): Only use registers for dest + (TN-16C-A156A/E). + (mulhisi3_r): Likewise. + +2006-06-21 Richard Sandiford + + PR middle-end/28034 + * coverage.c (coverage_counter_alloc): Leave the index type + unspecified. + (coverage_counter_alloc): Use null arguments for operands 2 and 3 + of the ARRAY_REF. + +2006-06-21 Andrew Pinski + + * doc/invoke.texi (-fopenmp) Move to "Options Controlling C Dialect" + section from the "Options for Code Generation Conventions". + +2006-06-21 Richard Henderson + + PR target/26347 + PR target/27082 + * config/alpha/predicates.md (small_symbolic_operand): Deny weak + symbols. + (global_symbolic_operand): Allow weak symbols, even if local_p. + +2006-06-21 Eric Botcazou + + * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): New function. + (find_interesting_uses_address): Punt if above function returns true. + +2006-06-21 Richard Guenther + + * configure: Regenerated. + +2006-06-21 Joseph Myers + + * config/mips/mips.c (function_arg): Where one part of a + complex argument is in registers and the other part in the stack, + return a REG not a PARALLEL. + +2006-06-21 Mark Mitchell + + * configure.ac: Set gcc_gxx_include_dir to $target/include/c++ + when cross-compiling. Do not substitute libstdcxx_incdir. + * configure: Regenerated. + +2006-06-21 Jakub Jelinek + + * varasm.c (mergeable_string_section): Check for embedded NULs and + NUL termination in the first int_size_in_bytes (TREE_TYPE (decl)) + rather than TREE_STRING_LENGTH bytes. + +2006-06-21 Richard Guenther + + * ggc-page.c (extra_order_size_table): Add var_ann_d, + tree_ssa_name, bitmap_element and phi_node with 4 arguments + sizes. + +2006-06-21 Richrad Guenther + + * tree-ssa-loop-niter.c (simplify_using_initial_conditions): + Limit iteration over the dominators. + +2006-06-20 Roger Sayle + + * config/mips/iris6.h (LIB_SPEC): Add support for -pthread. + (SUBTARGET_CPP_SPEC): Define _REENTERANT if -pthread specified. + +2006-06-20 Richard Guenther + Michael Matz + + * alloc-pool.h (free_alloc_pool_if_empty): Prototype new + function. + * alloc-pool.c (free_alloc_pool_if_empty): New function. + * et-forest.h (et_free_pools): Prototype new function. + * et-forest.c (et_free_tree_force): Free parent occurrence. + (et_free_pools): New function. + * dominance.c (free_dominance_info): Free et-forest alloc + pools. + +2006-06-20 Roger Sayle + + * expr.c (expand_expr_real_1) : For vector constants with + integer modes, attempt to directly construct an integer constant. + + * fold-const.c (native_encode_vector): Determine the size of each + element from the vector type instead of the first vector element. + + * tree.c (build_constructor_single): Mark a CONSTRUCTOR as constant, + if all of its elements/components are constant. + (build_constructor_from_list): Likewise. + +2006-06-20 Zdenek Dvorak + + PR tree-optimization/27331 + * tree-data-ref.c (free_data_ref): New function. + (create_data_ref): Fail if the data reference has unknown access + function. + (free_data_refs): Use free_data_ref. + +2006-06-19 Andrew Pinski + + PR middle-end/28075 + * tree-inline.c (setup_one_parameter): Strip useless + type conversion before adding it to the IR. + (declare_return_variable): Likewise. + +2006-06-19 Martin Michlmayr + + PR c/27149 + * c-common.c (c_common_truthvalue_conversion): Fix grammar in warning. + +2006-06-19 Mike Stump + + * tree.c (variably_modified_type_p): VM arguments don't make the + type a VM type. + +2006-06-19 Richard Guenther + + * tree-ssa-pre.c (try_combine_conversion): Strip useless + type conversions after folding. + +2006-06-19 Richard Guenther + + * ggc-page.c (extra_order_size_tab): Add entries with + size of struct function and basic_block. + (size_lookup): Extend to cover sizes up to 511. + (ggc_alloc_stat): Adjust user. + (ggc_pch_count_object): Likewise. + (ggc_pch_alloc_object): Likewise. + (ggc_pch_write_object): Likewise. + +2006-06-19 Zdenek Dvorak + + * tree-ssa-loop-niter.c (implies_ge_p): New function. + (derive_constant_upper_bound): Handle OP0 - CST in unsigned types + correctly. + +2006-06-19 Denis Chertykov + + * config/avr/libgcc.S : Correct my wrong previous commit. + +2006-06-19 Roger Sayle + + PR target/27861 + * expmed.c (expand_shift): On SHIFT_COUNT_TRUNCATED targets, we may + have stripped a SUBREG from the shift count, so we may need to + convert_to_mode back to the type's mode before calling make_tree. + Use new_amount instead of amount to avoid expanding a tree twice. + +2006-06-19 Richard Guenther + + PR middle-end/28045 + * fold-const.c (operand_equal_p): Check if the argument types + have the same precision before stripping NOPs. + +2006-06-19 Daniel Berlin + + Fix PR tree-optimization/27341 + * tree-cfg.c (gimplify_val): Call mark_new_vars_to_rename on the + statement we get. + * tree-complex.c (pass_lower_complex): Update SMT usage. + +2006-06-19 Andreas Krebbel + + * config/s390/s390.md ("doloop_si64", "doloop_si31", "doloop_di"): + Add a new alternative to the constraint strings. Add move of + operand 1 to 3 to the splitter definition. + ("doloop_si_long"): Second contraint alternative removed. + +2006-06-08 Anatoly Sokolov + + * config/avr/avr.h (avr_have_movw_lpmx_p): Declare. + (TARGET_CPU_CPP_BUILTINS): Add __AVR_HAVE_MOVW__ and + __AVR_HAVE_LPMX__. + (AVR_HAVE_MOVW) Define. + (ASSEMBLER_DIALECT): Use AVR_HAVE_MOVW. + (ASM_SPEC): Add avr25. + (LINK_SPEC): Add avr25. + * config/avr/avr.c (avr_have_movw_lpmx_p): Add. + (base_arch_s): Add new member 'have_movw_lpmx'. + (avr_arch_types): Init 'have_movw_lpmx'. + (avr_mcu_types): Add 'avr25'. Move attiny13, attiny2313, attiny24, + attiny44, attiny84, attiny25, attiny45, attiny85, attiny261, + attiny461, attiny861 and at86rf401 in 'avr25' arhitecture. + (avr_override_options): Init 'avr_have_movw_lpmx_p'. + (output_movhi, output_movsisf, ashlsi3_out, avr_rtx_costs): Use + AVR_HAVE_MOVW. + (avr_file_start): Do not output '.arh' derective. + * config/avr/libgcc.S (mov_l): Use __AVR_HAVE_MOVW__. + (__do_copy_data): Use __AVR_HAVE_LPMX__. + * config/avr/avr.md (mcu_enhanced): Delete. + (mcu_have_movw): Define. + (negsi2, extendhisi2, zero_extendhisi2): Use 'mcu_have_movw'. + (call_insn, call_value_insn): Use 'call_insn' and __AVR_HAVE_MOVW__. + * config/avr/t-avr(MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Add avr25. + (MULTILIB_MATCHES): Add attiny13, attiny2313, attiny24, attiny44, + attiny84, attiny25, attiny45, attiny85, attiny261, attiny461, + attiny861 and at86rf401 devices. + +2006-06-18 Jie Zhang + + * config/bfin/bfin.c (MAX_LOOP_LENGTH): Define to be 2042 instead + of 4096. + +2006-06-17 Karl Berry + + * doc/cpp.texi, doc/cppinternals.texi, doc/gcc.texi, + doc/gccint.texi, doc/install.texi (@dircategory): Use + "Software development" instead of "Programming", following + the Free Software Directory. + +2006-06-17 Alexandre Oliva + + * config/i386/i386.c (legitimate_tls_address) + : Add tp after DTPOFF. + * config/i386/i386.md (*tls_dynamic_gnu2_combine_32): Adjust. + (*tls_dynamic_gnu2_combine_64): Likewise. + +2006-06-16 Richard Guenther + + PR middle-end/27116 + * fold-const.c (negate_expr_p): Do not introduce undefined + overflow in negating INTEGER_CSTs. + (fold_negate_expr): Rename from negate_expr. Revert last + change for folding BIT_NOT_EXPR. Change semantics to + return NULL_TREE for non-simplified negations. Do not + strip type conversions and unify type handling. + (negate_expr): New function, wrap around fold_negate_expr + but ensure building a tree always. Strip type conversions + here, fold to result type. + (fold_unary): Use fold_negate_expr for folding NEGATE_EXPR. + +2006-06-16 Roger Sayle + + PR middle-end/27802 + * reg-stack.c (subst_stack_regs): Handle noreturn function calls + that (would) return their results in stack registers. + +2006-06-16 Michael Matz + Richard Guenther + + * fold-const.c (fold_truthop): Only return new tree node if + we canonicalized something. + +2006-06-16 Richard Guenther + + * function.h (enum function_frequency): Move declaration + out of struct function. + (struct function): Move bool fields and the enum to the bitfield + section. Reorder elements to avoid padding. Remove unused + fields left over from the RTL inliner removal. + * function.c (free_after_compilation): Do not zero removed fields. + * Makefile.in (ipa-reference.o): Add $(FUNCTION_H) dependency. + (ipa-type-escape.o): Likewise. + +2006-06-16 Richard Guenther + + * cgraph.h (struct cgraph_local_info): Turn bool elements + into a bitfield. + (struct cgraph_node): Likewise. + (struct cgraph_varpool_node): Likewise. + +2006-06-15 Richard Guenther + + * fold-const.c (fold_truth_not_expr): Rename from + invert_truthvalue. Give it fold_* semantics to avoid + generating garbage. + (invert_truthvalue): New function. Wrapper around + fold_truth_not_expr. + (optimize_minmax_comparison): Avoid creating garbage. + (fold_unary): Use fold_truth_not_expr for folding + TRUTH_NOT_EXPR. + (fold_ternary): Replace uses of invert_truthvalue with + fold_truth_not_expr where applicable. + * tree.h (fold_truth_not_expr): Prototype. + +2006-06-16 Richard Guenther + + PR tree-optimization/27781 + * Makefile.in (ipa-pure-const.o): Add $(TARGET_H) dependency. + * ipa-pure-const.c (target.h): Include. + (analyze_function): Do not analyze functions that do not + bind locally. + +2006-06-15 Andrew MacLeod + + PR middle-end/27793 + * tree-dfa.c (referenced_vars_dup_list): Remove. + (find_referenced_vars): Remove assert. + (referenced_var_check_and_insert): Replace dup list with assert. + * tree-ssa.c (delete_tree_ssa): Remove dup list processing. + * tree-flow.h (referenced_vars_dup_list): Remove extern decl. + +2006-06-15 Richard Guenther + + * tree-ssa-structalias.c (alias_get_name): Avoid creating + extra unused identifiers if not dumping. + (create_variable_info_for): Likewise. + +2006-06-15 Zdenek Dvorak + + * tree-ssa-loop-niter.c (implies_nonnegative_p): New function. + (derive_constant_upper_bound): Derive more precise upper bound in + common cases. Return type changed to double_int. + (record_estimate): Reflect the changed return type of + derive_constant_upper_bound. + * double-int.c (double_int_zext, double_int_sext): Fix. + +2006-06-15 Paolo Bonzini + + * configure.ac (CFLAGS): Get them from the toplevel or from the + configure invocation. + * configure: Regenerate. + * Makefile.in (CFLAGS): Substitute value provided by configure. + +2006-06-14 Mark Mitchell + + PR c++/26559 + * c-common.h (c_finish_omp_atomic): Adjust declaration. + * c-omp.c (c_finish_omp_atomic): Return the expression to perform, + rather than calling add_stmt on it. + * c-parser.c (c_parser_omp_atomic): Adjust accordingly. + +2006-06-14 Andreas Krebbel + + PR middle-end/27959 + * reload1.c (reload): Remove registers returned by update_eliminables + from used_spill_regs. + +2006-06-13 DJ Delorie + + * config/m32c/muldiv.md (mulpsi3): Expect arbitrary constants. + +2006-06-13 Carlos O'Donell + + * Makefile.in: Define HTMLS_BUILD, HTMLS_INSTALL, + html__strip_dir, html__mkdir_p. Enhance install-html target. + * configure.ac: AC_SUBST datarootdir, docdir and htmldir. + * configure: Regenerate. + +2006-06-13 Fariborz Jahanian + + * fold-const.c (fold_cond_expr_with_comparison): Check for + Objective-C++ as language in deciding COND_EXPR transformation. + +2006-06-06 J"orn Rennecke + + PR target/28014: + * config/sh/t-sh (LIB1ASMFUNCS): Add _udiv_qrnnd16 + * config/sh/sh.c (print_operand): Add !SHMEDIA functionality to 'M'. + * config/sh/lib1funcs.h (SL, SL1): Define. + * config/sh/lib1funcs.asm (__udiv_qrnnd16): New hidden function. + * longlong.h (__sh__): Define umul_ppmm, udiv_qrnnd and sub_ddmmss. + * config/sh/t-sh ($(T)unwind-dw2-Os-4-200.o): New rule. + (OBJS_Os_4_200): New variable. + ($(T)libgcc-Os-4-200.a): Use it. + * sh.md (udivsi3): For TARGET_DIVIDE_CALL_TABLE, avoid function call + when dividing 1 and/or by 0. + +2006-06-13 Roger Sayle + + * configure.ac (HAS_MCONTEXT_T_UNDERSCORES): Include + before to define sigset_t required by . + * configure: Regenerate. + +2006-06-13 Jie Zhang + + * config/bfin/bfin.c (bfin_reorg_loops): Only call recog_memoized () + for real instruction. + +2006-06-13 Maxim Kuvyrkov + + PR middle-end/26807 + * haifa-sched.c (check_cfg): Handle special case. + +2006-06-13 Eric Botcazou + + PR debug/26754 + * gimplify.c (declare_tmp_vars): Rename into declare_vars. + Add debug_info parameter. Chain the vars to the BLOCK instead + of the BIND_EXPR if debug info are requested for them. + (pop_gimplify_context): Adjust for above change. + (gimple_add_tmp_var): Likewise. + * tree-gimple.h (declare_tmp_vars): Rename into declare_vars. + Add bool parameter. + * tree-nested.c (convert_nonlocal_reference): Adjust for above change. + (convert_local_reference): Likewise. + (get_local_debug_decl): Set DECL_IGNORED_P on the original variable. + (finalize_nesting_tree_1): Request that debug info be emitted + for debug_var_chain. + +2006-06-13 Maxim Kuvyrkov + + * haifa-sched.c (unlink_other_notes, unlink_line_notes): Fix the patch + for PR target/27863. + +2006-06-13 Richard Guenther + + PR middle-end/27536 + * except.c (output_ttype): Expand type with EXPAND_INITIALIZER. + +2006-06-13 Richard Guenther + + PR tree-optimization/27830 + * tree-inline.c (copy_body_r): For copying the operand + of an ADDR_EXPR make sure to fold &* afterwards. + +2006-06-12 Eric Botcazou + + * gimplify.c (gimplify_expr): Treat VIEW_CONVERT_EXPR like other + lvalues in the fb_none case with side-effects. + +2006-06-12 Kazu Hirata + + * tree-flow.h: Remove the prototype for + compute_phi_arg_on_exit. + * tree-ssa-loop-ivopts.c (protect_loop_closed_ssa_form_use, + protect_loop_closed_ssa_form, compute_phi_arg_on_exit): + Remove. + +2006-06-12 Mark Shinwell + + * builtins.c (expand_builtin_return_addr): Only use + frame_pointer_rtx when count == 0 and we are expanding + __builtin_return_address. + +2006-06-12 Fred Fish + + * config/mips/mips.c (mips_file_start): Create special section + ".gcc_compiled_longXX" for o64 ABI as well as EABI. + +2006-06-11 Eric Christopher + + PR middle-end/27948 + * stor-layout.c (place_field): Remove check for + remaining_in_alignment when aligning at the end of a run. + +2006-06-11 Eric Christopher + + PR 27542 + * doc/extend.texi (Structure-Packing Pragmas): Document ms_struct + pragma. + +2006-06-11 Roger Sayle + + PR target/27858 + Revert incorrect fix for PR target/27158 + 2006-05-08 Roger Sayle + * reload.c (find_reloads_toplev): Only return the simplified SUBREG + of a reg_equiv_constant if the result is a legitimate constant. + +2006-06-11 Roger Sayle + + PR target/27158 + * config/rs6000/rs6000.c (const_vector_elt_as_int): New function to + extract a CONST_VECTOR element and interpret it as an integer. + (vspltis_constant): Use const_vector_elt_as_int instead of the + macro CONST_VECTOR_ELT in order to handle FP vector modes. + * config/rs6000/predicates.md (easy_vector_const): Consider + floating point ALTIVEC_VECTOR_MODEs via easy_altivec_constant. + +2006-06-11 Kaz Kojima + + PR middle-end/27942 + * stor-layout.c (update_alignment_for_field): Don't add extra + alignment for packed non-bitfield fields in ms_bitfield_layout_p + code. + +2006-06-09 Ralf Corsepius + + * config/mips/t-rtems: Add EL/EB multilib variants. + +2006-06-09 Mike Stump + + * c-typeck.c (c_begin_vm_scope): Fix file_scope processing. + +2006-06-09 David Daney + + * doc/install.texi: Add binutils version recommendation for mips-*-*. + +2006-06-09 Andreas Krebbel + + * reload.c (find_reloads): Unset force_reload for 'X' constraint. + +2006-06-09 Richard Guenther + + PR tree-optimization/26998 + * tree-vrp.c (extract_range_from_unary_expr): For NEGATE_EXPR + of signed types, only TYPE_MIN_VALUE is special, but for both, + minimum and maximum value. Likewise VR_ANTI_RANGE is special + in this case, as is -fwrapv. + +2006-06-08 Mike Stump + + PR target/26427 + * config/darwin.c (darwin_asm_output_anchor): Disable + -fsection-anchors on darwin for now. + * config/darwin.h (TARGET_ASM_OUTPUT_ANCHOR): Likewise. + * rs6000/rs6000.c (optimization_options): Likewise. + +2006-06-08 Volker Reichelt + + PR target/27421 + * config/i386/i386.c (classify_argument): Skip fields with invalid + types in unions. + +2006-06-08 Steven Bosscher + + * cse.c (flush_hash_table): Use VOIDmode to invalidate a REG. + (cse_insn): Likewise for the stack_pointer_rtx. + +2006-06-08 Roger Sayle + + * tree-ssa-dom.c (record_conditions): Only record "unordered" + conditions from floating point comparisons. + +2006-06-08 Paolo Bonzini + + PR middle-end/27733 + * expmed.c (struct alg_hash_entry): Fix type of field T + to match synth_mult argument. + (NUM_ALG_HASH_ENTRIES): Make it bigger for 64-bit HOST_WIDE_INT. + +2006-06-08 Maxim Kuvyrkov + + PR target/27863 + * haifa-sched.c (unlink_other_notes, unlink_line_notes): Update basic + block boundaries. + +2006-06-08 Richard Guenther + + PR middle-end/27116 + * fold-const.c (negate_expr_p): We can negate BIT_NOT_EXPR + only, if overflow is defined and not trapping. + (negate_expr): Likewise. + +2006-06-07 Zdenek Dvorak + + PR tree-optimization/27872 + * tree-ssa-loop-manip.c (tree_unroll_loop): Set EDGE_IRREDUCIBLE_LOOP + flag on the new exit edge of the unrolled loop. + +2006-06-07 Zdenek Dvorak + + PR rtl-optimization/26449 + * loop-invariant.c (move_invariant_reg): Fail if force_operand fails. + +2006-06-07 Andrew MacLeod + + PR middle-end/27793 + * tree-dfa.c (referenced_vars_dup_list): New. List of duplicate + referenced_variables with matching DECL_UID's. + (find_referenced_vars): Make sure duplicate list is empty to start. + (referenced_var_p): Remove. + (referenced_var_check_and_insert): Renamed from referenced_var_insert. + Check if var is in the list, and add if needed. Update the duplicate + list if a different var is in the list with the same DECL_UID. + (add_referenced_var): Call routine to check and insert. + * tree-ssa.c (delete_tree_ssa): Clear var_ann's on duplicates. + * tree-flow.h (referenced_vars_dup_list): External declaration. + +2006-06-07 Fred Fish + + * config/mips/t-elf (MULTILIB_MATCHES): Combine two entries + into single entry. + +2006-06-07 Paolo Bonzini + + PR target/27390 + * reg-stack.c (subst_stack_regs_pat): Reorder resetting of + the imaginary and real parts of a clobbered register. + Emit insn to set the imaginary part. + +2006-06-06 Peter Lemieszewski + + * config/s390/t-tpf (LIB2ADDEH): Include unwind-dw2-fde-glibc.c + in lieu of unwind-dw2-fde.c. + +2006-06-06 Francois-Xavier Coudert + + * config/i386/mingw32.h (GOMP_SELF_SPECS): Define. + +2006-06-06 Ulrich Weigand + + PR target/27842 + * config/rs6000/altivec.md (UNSPEC_VSLW): Remove. + ("altivec_vspltisw_v4sf", "altivec_vslw_v4sf"): Remove. + ("mulv4sf3", "absv4sf3", "negv4sf3"): Adapt users to use + V4SImode temporaries and operations instead. + +2006-06-06 Joseph S. Myers + + * config/mips/t-linux64 (tp-bit.c): Append to tp-bit.c, not + dp-bit.c. + +2006-06-06 Mike Stump + + * Makefile.in: Rename to htmldir to build_htmldir to avoid + installing during build. + +2006-06-06 Maxim Kuvyrkov + + * params.def (PARAM_MAX_SCHED_EXTEND_REGIONS_ITERS): Change default + value to 0. + * doc/invoke.texi (max-sched-extend-regions-iters): Document. + * config/ia64/ia64.c (params.h): New header. + (ia64_optimization_options): New function to adjust parameters. + * config/ia64/ia64-protos.h (ia64_optimization_options): New prototype. + * config/ia64/ia64.h (OPTIMIZATION_OPTIONS): New macro. + * config/ia64/t-ia64 (ia64.o): Add dependence from params.h . + +2006-06-05 Kazu Hirata + + * stor-layout.c (debug_rli): Fix a typo in a debug message. + +2006-06-05 Steve Ellcey + + PR target/27051 + * config/ia64/ia64.c (ia64_select_rtx_section): Check TARGET_NO_SDATA. + +2006-06-05 Dorit Nuzman + Victor Kaplansky + + PR tree-optimization/26360 + * tree-vectorizer.c (destroy_loop_vec_info): Remove (dead) pattern + stmts. + +2006-06-04 Roger Sayle + Andrew Pinski + + PR middle-end/27382 + * c-common.c (c_common_truthvalue_conversion): Explicitly check + for LABEL_DECL before calling DECL_WEAK. + + PR c/27150 + * c-typeck.c (build_binary_op): Likewise, explicitly check for + LABEL_DECL and PARM_DECL. + +2006-06-05 Joseph S. Myers + + PR c/25161 + PR c/27020 + * c-decl.c (grokdeclarator): Disallow variably modified types at + file scope. Avoid marking shared array type of constant size as + VLA. + +2006-06-04 Volker Reichelt + + PR c++/27601 + * c-common.c (fold_offsetof_1): Handle static members. + +2006-06-04 Eric Christopher + + * stor-layout.c (start_record_layout): Initialize remaining_in_alignment. + (debug_rli): Output value for remaining_in_alignment. + (update_alignment_for_field): Unconditionalize + ms_bitfield_layout_p code. Handle non-bitfield fields. Remove + extra alignment code. + (place_field): Don't realign if ms_bitfield_layout_p. Unconditionalize + ms_bitfield_layout_p code. Rewrite handling of structure fields. + * tree.h (record_layout_info_s): Remove prev_packed. + * doc/extend.texi (ms_struct): Add documentation of format. + +2006-06-04 Mark Shinwell + + * tree.h: Declare folding_initializer. + * builtins.c (fold_builtin_constant_p): Give definite answer + if folding inside an initializer. + * fold-const.c: Define folding_initializer. + (START_FOLD_INIT): Save and then set folding_initializer. + (END_FOLD_INIT): Restore folding_initializer. + +2006-06-04 Richard Guenther + + PR tree-optimization/27039 + * fold-const.c (fold_comparison): Handle pointer comparison + again for all comparison codes. Compare offsets in signed + size type. + (fold_binary): Move code from here. + +2006-06-03 Roger Sayle + + PR target/26223 + * config/i386/i386.c (construct_container): Split static issued_error + flag into issued_sse_arg_error, issued_sse_ret_error and + issued_x87_ret_error. Issue a daignostic if the x86-64 ABI + requires the use of x87 registers and the user explicitly + specified the -mno-80387 command line option. + +2006-06-02 Geoffrey Keating + + * config/rs6000/host-darwin.c (sigaltstack): Protect prototype with + HAVE_DECL_SIGALTSTACK. + (MC_FLD): New. + (segv_handler): Use MC_FLD. + * configure.ac: Check for a sigaltstack declaration. + Compute HAS_MCONTEXT_T_UNDERSCORES on Darwin. + * configure: Regenerate. + * config.in: Regenerate. + +2006-06-03 J"orn Rennecke + + PR other/27850 + * Makefile.in (stmp-fixinc): Fix typo. + +2006-06-02 Roger Sayle + + * fold-const.c (fold_unary) : Ensure folded expressions + are type correct. Clean-up. + : Likewise. Optimize creal(~z) as creal(z). + : Likewise. Optimize cimag(~z) as -cimag(z). + +2006-06-01 DJ Delorie + + * config/v850/v850.h (ASM_OUTPUT_ADDR_DIFF_ELT): Disabled the + shift, as we've disabled the "switch" insn that needs it. + +2006-06-01 Per Bothner + + Suppress extra '#1 or '#1 ' on -dD output. + * c-opts.c (finish_options): Use internal line 0 for . + * c-ppoutput.c (cb_define): Don't increment line 0. + +2006-06-01 Pete Steinmetz + + * doc/invoke.texi: Add cpu_type power6. + * config.gcc: Add cpu_type power6. + * config/rs6000/rs6000.c (rs6000_override_options): Alias power6 + to power5+ with Altivec. + * config/rs6000/aix52.h (ASM_CPU_SPEC): Add power6. + * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add power6. + +2006-05-30 Anatoly Sokolov + + * config/avr/avr.h (SET_ASM_OP): Define. + +2006-06-01 Kazu Hirata + + * config/bfin/bfin.c: Fix comment typos. + +2006-06-01 Paolo Bonzini + + PR 25453 + * doc/install.texi: Document --enable-bootstrap and + --disable-bootstrap. + +2006-06-01 Paolo Bonzini + + * doc/install.texi: Document that InfoZIP can replace jar. + +2006-05-31 Roger Sayle + + * config/i386/i386.c (ix86_expand_fp_absneg_operator): When SSE + isn't available, directly generate the simpler x87 patterns without + the (use (const_int 0)). + * config/i386/i386.md (*negsf2_1): Enable pre-reload if the SSE + implementation isn't available. + (*negdf2_1): Likewise. + (*negxf2_1): XF mode negation is always done using the x87. + (*abssf2_1, *absdf2_1, *absxf2_1): Likewise^3 for fabs. + +2006-05-31 Roger Sayle + + * builtins.c (fold_builtin_cabs): Delete prototype. Require an + additional FNDECL argument. Optimize cabs(-z) and cabs(~z) as + cabs(z). + (fold_builtin_decl) : Update fold_builtin_cabs call. + +2006-05-31 Jie Zhang + + * config/bfin/bfin-protos.h (bfin_hardware_loop): Declare. + * config/bfin/bfin.c (basic-block.h): Include. + (struct machine_function): New. + (bfin_init_machine_status): New. + (override_options): Initialize init_machine_status. + (bfin_hardware_loop): New. + (MAX_LOOP_DEPTH, MAX_LOOP_LENGTH): Define. + (DEF_VEC_P (loop_info)): New. + (DEF_VEC_ALLOC_P (loop_info,heap)): New. + (struct loop_info): New. + (loop_info): New typedef. + (struct loop_work): New. + (loop_work): New typedef. + (DEF_VEC_O (loop_work)): New. + (DEF_VEC_ALLOC_O (loop_work,heap)): New. + (bfin_dump_loops): New. + (bfin_bb_in_loop): New. + (bfin_scan_loop): New. + (bfin_optimize_loop): New. + (bfin_reorg_loops): New. + (bfin_reorg): Use bfin_reorg_loops. + * config/bfin/bfin.h (FIRST_PSEUDO_REGISTER): Adjust for adding + loop registers. + (I_REGNO_P): Simplify. + (DP_REGNO_P, DPREG_P): New macros. + (REGISTER_NAMES, FIXED_REGISTERS, CALL_USED_REGISTERS, + REG_ALLOC_ORDER): Add LT0, LT1, LC0, LC1, LB0, LB1. + (enum reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): + Add LT_REGS, LC_REGS, LB_REGS. + (REG_CLASS_FROM_LETTER): Add 't' for LT_REGS, 'k' for LC_REGS, + 'l' for LB_REGS. + (REGNO_REG_CLASS): Deal with loop registers. + * config/bfin/bfin.md: Add comment for 't', 'k', 'l' constraint + letters. + (REG_LT0, REG_LT1, REG_LC0, REG_LC1, REG_LB0, REG_LB1): + New constants for loop registers. + (UNSPEC_LSETUP_END): New. + (seq_insns): New define_attr. Set it for appropriate insns. + (movsi_insn): Add alternatives for move from/to + loop count registers. + (doloop_end): New define_expand. + (loop_end): New define_insn. + (define_split for bad doloop_end): New. + (lsetup_with_autoinit): New define_insn. + (lsetup_without_autoinit): New define_insn. + (rep_movsi, rep_movhi): Clobber LT1, LC1, LB1. + * config/bfin/predicates.md (lc_register_operand): New. + (lt_register_operand): New. + (lb_register_operand): New. + (nondp_register_operand): New. + (nondp_reg_or_memory_operand): New. + * doc/md.texi: Document Blackfin new 't', 'k', 'l' constraint letters. + +2006-05-31 Jie Zhang + + * config/bfin/bfin.c (bfin_delegitimize_address): New. + (TARGET_DELEGITIMIZE_ADDRESS): Define. + +2006-05-31 Daniel Jacobowitz + + * Makefile.in (CATALOGS): Add po/ prefix. + * configure: Regenerated. + +2006-05-31 Richard Earnshaw + + PR target/27829 + * arm.c (arm_print_operand case 'S'): Validate that the operand is + a shift operand before calling shift_op. Avoid redundant call of + shift_op. + +2006-05-30 Naveen.H.S + DJ Delorie + + * config/m32c/m32c.c (m32c_expand_insv): Check that the value + we're inserting is a singlt-bit constant. + +2006-05-30 Roger Sayle + + * simplify-rtx.c (simplify_binary_operation_1) : Cast + width to HOST_WIDE_INT to avoid comparison warnings on some targets. + +2006-05-30 Roger Sayle + + PR tree-optimization/23452 + * fold-const.c (fold_mult_zconjz): New subroutine of fold_binary, + to optimize z * conj(z) as realpart(z)^2 + imagpart(z)^2. + (fold_binary) : Call fold_mult_zconjz for integral + complex values and with -ffast-math for FP complex values. + +2006-05-30 Kazu Hirata + + * c-common.h: Remove the prototype for yyparse. + * rtl.h: Remove the prototype for init_loop. + +2006-05-30 Andreas Krebbel + + * cse.c (validate_canon_reg, cse_insn): Don't change insns without + calling recog. + +2006-05-30 Roger Sayle + + * simplify-rtx.c (simplify_binary_operation): Unfactor the shift + and rotate cases. + : Optimize (lshiftrt (clz X) C) as (eq X 0) where C is + log2(GET_MODE_BITSIZE(X)) on targets with the appropriate semantics. + +2006-05-30 Dirk Mueller + + PR c/27273 + * c-common.c (convert_and_check): Only track TREE_CONSTANT_OVERFLOW + for CONSTANT_CLASS_P expresisons. + +2006-05-30 Volker Reichelt + + PR c/27718 + * c-typeck.c (c_expr_sizeof_type): Handle invalid types. + +2006-05-30 Zdenek Dvorak + + PR tree-optimization/27779 + * tree-data-ref.c (analyze_siv_subscript_cst_affine): Use + initial_condition instead of CHREC_LEFT. + +2006-05-30 Steven Bosscher + + * config/m32r/m32r.h (DBX_OUTPUT_SOURCE_LINE): Fix type of begin_label. + * config/m32r/initfini.c (__do_global_dtors, __do_global_ctors): + Make prototypes ISO C90. + +2006-05-30 Mircea Namolaru + Leehod Baruch + + * see.c (see_analyze_one_def): Correct check. + (see_get_extension_data): Check if extension is parallel. + (see_get_extension_reg): Likewise. + +2006-05-30 Uros Bizjak + + PR target/27790 + * config/i386/i386.c (ix86_expand_int_vcond): Force cop0 + into register for (code == GTU). + +2006-05-29 Roger Sayle + + PR tree-optimization/24964 + * simplify-rtx.c (simplify_binary_operation_1): Add function comment. + : Minor clean-up. Don't convert x*-1.0 into -x if we honor + signaling NaNs. Optimize -x*-x as x*x for all float modes, and + abs(x)*abs(x) as x*x for scalar floating point modes. + +2006-05-29 Sebastian Pop + + PR middle-end/27745 + * lambda-code.c (perfect_nestify): Don't copy statements + in the inner loop: move them to the inner loop header. + +2006-05-29 Diego Novillo + + PR 26237 + * c-tree.texi: Document OpenMP directives and clauses. + +2006-05-29 Kazu Hirata + + * varasm.c (globalize_decl): Fix indentation. + +2006-05-29 Diego Novillo + + PR 26242 + * doc/passes.texi: Add documentation for pass_vrp, pass_ipa_pta, + pass_fre, pass_store_ccp, pass_copy_prop, + pass_store_copy_prop, pass_merge_phi, pass_nrv, + pass_return_slot, pass_object_size, pass_lim, + pass_linear_transform, pass_empty_loop, pass_complete_unroll, + pass_loop_prefetch and pass_stdarg. + +2005-05-29 Bernd Schmidt + + * config/bfin/bfin.opt (mfdpic): New option. + * config/bfin/t-bfin-elf (EXTRA_PARTS): Add crtbeginS.o and crtendS.o. + (EXTRA_MULTILIB_PARTS): Likewise. + (CRTSTUFF_T_CFLAGS, TARGET_LIBGCC2_CFLAGS): Use -fpic. + (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Build one extra -mfdpic + multilib. + * config/bfin/elf.h (STARTFILE_SPEC): Don't link in crt0.o if -shared. + (CRT_CALL_STATIC_FUNCTION): New. + * config/bfin/uclinux.h (STARTFILE_SPEC): Don't link in crt0.o if + -shared. + (CRT_CALL_STATIC_FUNCTION): New. + * config/bfin/bfin.c (legitimize_pic_address): Now static. Handle + FD-PIC moves. + (n_pregs_to_save): PIC register doesn't need to be saved with FD-PIC. + (print_operand): Handle UNSPEC_MOVE_FDPIC and UNSPEC_FUNCDESC_GOT17M4. + (initialize_trampoline): Changed to handle FD-PIC code generation. + (expand_move): If TARGET_FDPIC, use emit_pic_move as needed. + (bfin_expand_call): Generate FD-PIC calls if TARGET_FDPIC. + (override_options): Disallow -mid-shared-library -mfdpic combination. + Can't do unaligned ops if FD-PIC. + Turn off flag_pic if trying to generate non-id-shared-library + non-fdpic code, since it's not supported. + (bfin_assemble_integer): New function. + (TARGET_ASM_INTEGER): Define. + * config/bfin/crti.s (__init, __fini): Save P3 on the stack if + __BFIN_FDPIC__. + * config/bfin/crtn.s: Restore them. + * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define __BFIN_FDPIC__ + if TARGET_FDPIC. + (DRIVER_SELF_SPECS, SUBTARGET_DRIVER_SELF_SPECS, + LINK_GCC_C_SEQUENCE_SPEC, ASM_SPEC, LINK_SPEC): New macros. + (FDPIC_FPTR_REGNO, FDPIC_REGNO, OUR_FDPIC_REG): New macros. + (TRAMPOLINE_SIZE, TRAMPOLINE_TEMPLATE): Adjust for FD-PIC. + (CONDITIONAL_REGISTER_USAGE): If TARGET_FDPIC, FDPIC_REGNO is + call-used. + (enum reg_class, REG_CLASS_CONTENTS, REG_CLASS_NAMES): Add + FDPIC_REGS and FDPIC_FPTR_REGS. + (REG_CLASS_FROM_LETTER): Use 'Z' and 'Y' for them. + * config/bfin/bfin.md (UNSPEC_MOVE_FDPIC, UNSPEC_FUNCDESC_GOT17M4, + UNSPEC_VOLATILE_LOAD_FUNCDESC): New constants. + (load_funcdescsi): New pattern. + (call_symbol_fdpic, sibcall_symbol_fdpic, call_value_symbol_fdpic, + sibcall_value_symbol_fdpic, call_insn_fdpic, sibcall_insn_fdpic, + call_value_insn_fdpic, sibcall_value_insn_fdpic): New patterns. + +2006-05-29 Kazu Hirata + + * gcse.c, rtlanal.c: Remove obsolete comments associated with + loop.c. + + * config/bfin/bfin.h (PARM_BOUNDRY, STACK_BOUNDRY): Remove. + + * tree-flow.h: Remove the prototype for add_type_alias. + * tree-ssa-alias.c (add_type_alias): Remove. + +2006-05-28 Kazu Hirata + + * cfgcleanup.c, cfgexpand.c, cgraphunit.c, config/arm/arm.c, + config/fr30/fr30.md, config/i386/i386-interix.h, + config/i386/i386.c, config/i386/i386.md, config/sh/superh.h, + config/sh/superh64.h, config/v850/v850.c, df-core.c, + df-problems.c, df.h, except.c, final.c, haifa-sched.c, + lambda-code.c, libgcc2.h, omp-low.c, optabs.c, predict.c, + reload.c, tree-flow.h, tree-outof-ssa.c, tree-ssa-dce.c, + tree-ssa-pre.c, tree-vect-transform.c: Fix comment typos. + Follow spelling conventions. + * doc/invoke.texi, doc/rtl.texi, doc/tm.texi: Fix typos. + Follow spelling conventions. + +2006-05-27 Richard Guenther + + PR middle-end/27773 + * fold-const.c (fold_plusminus_mult_expr): Use fold_convert + to produce a constant of value 1 of generic type. + +2006-05-27 Dirk Mueller + + * cgraphunit.c (decide_is_function_needed): Fix wrong + PR reference. + +2006-05-26 Ulrich Weigand + + PR rtl-optimization/27661 + * reload.c (find_reloads): When reloading a VOIDmode constant + as address due to an EXTRA_MEMORY_CONSTRAINT or 'o' constraint, + use Pmode as mode of the reload register. + +2006-05-26 Eric Botcazou + + * doc/invoke.texi (Optimize Options): Document that -funit-at-a-time + is enabled at -O and above. + +2006-05-26 Steven Bosscher + + PR target/27571 + * config/alpha/alpha.c (alpha_does_function_need_gp): Skip jump + table data. + +2006-05-25 Mark Mitchell + + PR c++/20103 + * gimplify.c (gimplify_decl_expr): Do not call gimple_add_tmp_var + for anonymous variables explicitly declared by front ends. + +2006-05-25 Eric Botcazou + + * tree-ssa-structalias.h (PTR_IS_REF_ALL): New macro. + (struct alias_info): Add new field ref_all_symbol_mem_tag. + * tree-ssa-alias.c (compute_may_aliases): If the program contains + ref-all pointers, run a finalization pass for them. + (compute_flow_insensitive_aliasing): Skip ref-all pointers. + (finalize_ref_all_pointers): New function. + (is_escape_site): Return ESCAPE_BAD_CAST for conversion from a + regular pointer type to a ref-all pointer type. + (get_tmt_for): Return the special memory tag for ref-all pointers. + +2006-05-25 Richard Guenther + + PR middle-end/27743 + * fold-const.c (fold_binary): Do not look at the stripped + op0 for (a OP c1) OP c2 to a OP (c1+c2) shift optimization. + +2006-05-25 Eric Botcazou + + * tree-vrp.c (extract_range_from_assert): Set the range to VARYING + for LT and GT if the computed range is effectively empty. + +2006-05-24 John David Anglin + + PR target/27627 + * pa/pa-modes.def: Use mips_single_format, mips_double_format and + mips_quad_format formats instead of ieee_single_format, + ieee_double_format and ieee_quad_format formats, respectively. + +2006-05-24 Zdenek Dvorak + + PR tree-optimization/27639 + PR tree-optimization/26719 + * tree-vrp.c (adjust_range_with_scev): Use scev_direction and adjust + call to scev_probably_wraps_p. + * tree-ssa-loop-niter.c (compare_trees, convert_step_widening, + used_in_pointer_arithmetic_p, convert_step): Removed. + (nowrap_type_p): New function. + (scev_probably_wraps_p): Rewritten. + * tree-scalar-evolution.c (instantiate_parameters_1): Do not call + chrec_convert if chrec_convert_aggressive might have been used. + * tree-chrec.c (convert_affine_scev, chrec_convert_1, + scev_direction): New functions. + (chrec_convert): Changed to a wrapper over chrec_convert_1. + * tree-ssa-loop-ivopts.c (idx_find_step): Use convert_affine_scev + instead of convert_step. + * tree-flow.h (scev_probably_wraps_p): Declaration changed. + (convert_step): Declaration removed. + (convert_affine_scev, nowrap_type_p, scev_direction): Declare. + +2006-05-23 Kenneth Zadeck + + * df-core.c: Added to header comments. + * df.h (df_ru_bb_info, df_rd_bb_info, df_lr_bb_info, + df_ur_bb_info, df_urec_bb_info): Added comments. + * df-problems (df_ref_bitmap, ru, rd, lr, ur, + urec, ri problems): Fixed header comments. + (df_ru_transfer_function): Fixed in-out set dyslexia when copying + code from df_rd_transfer_function. + +2006-05-23 Richard Sandiford + + * libgcc2.c (LIBGCC2_MAX_UNITS_PER_WORD): New macro. + (LIBGCC2_UNITS_PER_WORD): Use LIBGCC2_MAX_UNITS_PER_WORD rather than + MIN_UNITS_PER_WORD to set the default. Also use it in the guard. + +2006-05-23 Joseph Myers + + * expr.c (undefined_operand_subword_p): New. + (emit_move_multi_word): Do not generate move from undefined bits + of a paradoxical subreg. + +2006-05-23 Richard Sandiford + + PR rtl-optimization/27736 + * combine.c (replaced_rhs_value): New variable. + (combine_instructions): Set it. + (distribute_notes): When distributing a note in replaced_rhs_insn, + check whether the value was used in replaced_rhs_value. + +2006-05-23 Andrew MacLeod + + PR c++/26757 + * tree-ssa-loop-im.c (determine_invariantness_stmt): Use + add_referenced_var instead of add_referenced_tmp_var. + * tree-complex.c (create_one_component_var): Use add_referenced_var. + * tree-ssa-loop-manip.c (create_iv, tree_unroll_loop): Use + add_referenced_var. + * tree-tailcall.c (adjust_accumulator_values, adjust_return_value, + tree_optimize_tail_calls_1): Use add_referenced_var. + * tree-ssa-loop-ivopts.c (create_new_iv): Use add_referenced_var. + * tree-ssa-alias.c (create_memory_tag, create_global_var, create_sft): + Use add_referenced_var. + * tree-if-conv.c (ifc_temp_var): Use add_referenced_var. + * gimplify.c (force_gimple_operand): Use add_referenced_var. + * tree-ssa-phiopt.c (conditional_replacement, abs_replacement): + Use add_referenced_var. + * tree-dfa.c (struct walk_state): Remove. + (find_referenced_vars): Remove walk state and vars_found hash table. + (make_rename_temp): Use add_referenced_var. + (find_vars_r): Pass less parameters to add_referenced_var. + (referenced_var_p): New. Is var in referenced_var hash table. + (referenced_var_insert): Assert var isn't already in hash table. + (add_referenced_var): Don't need walk_state parameter. Add var if it + isn't already in the hash table. + (add_referenced_tmp_var): Remove. + (find_new_referenced_vars_1): Use add_referenced_var. + * tree-ssa-pre.c (create_expression_by_pieces, + insert_into_preds_of_block, insert_extra_phis, realify_fake_stores): + Use add_referenced_var. + * tree-vect-patterns.c (vect_pattern_recog_1): Use add_referenced_var. + * lambda-code.c (lbv_to_gcc_expression, lle_to_gcc_expression, + lambda_loopnest_to_gcc_loopnest, perfect_nestify): Use + add_referenced_var. + * tree-vect-transform.c (vect_create_addr_base_for_vector_ref, + vect_create_data_ref_ptr, vect_create_destination_var, + vect_init_vector, vect_build_loop_niters, + vect_generate_tmps_on_preheader, vect_update_ivs_after_vectorizer, + vect_gen_niters_for_prolog_loop, vect_create_cond_for_align_checks): + Use add_referenced_var. + * tree-outof-ssa.c (create_temp): Use add_referenced_var. + * tree-flow.h (add_referenced_tmp_var): Remove prototype + (add_referenced_var): Add prototype. + * tree-ssa-structalias.c (get_constraint_for, + intra_create_variable_infos): Use add_referenced_var. + +2006-05-23 Alexandre Oliva + + * simplify-rtx.c (simplify_subreg): Adjust REG_OFFSET for + big-endian paradoxical subregs. + * var-tracking.c (struct micro_operation_def): Document that, + for modify micro operations, insn is the subsequent instruction. + (var_reg_delete_and_set, var_mem_delete_and_set): Split into... + (var_reg_set, var_mem_set): ... new functions. + (add_stores): Record subsequent insn. + (compute_bb_dataflow): Use new functions for MO_USE. + (emit_notes_in_bb): Use new functions for MO_USE. Emit use + notes after the insn, and modify notes before the insn known + to be the subsequent one. + (vt_initialize): Invert sorting of MO_CLOBBERs and MO_SETs. + +2006-05-23 Kazu Hirata + + PR target/27696 + * config/i386/i386.c (ix86_expand_builtin): Use + gen_sse3_monitor64 for TARGET_64BIT. + +2006-05-22 Kenneth Zadeck + + PR rtl-optimization/26375 + PR rtl-optimization/26855 + * df-problems (df_ru_bb_local_compute_process_def): Removed update + to gen set. + (df_ru_bb_local_compute): Reversed statements and removed bogus + comment explaining why they should be in wrong order. + (df_ru_dump, df_rd_dump): Enhanced debug info. + * modulo-sched.c (sms_schedule, tree_opt_pass pass_sms): Enhanced + debug info. + * ddg.c (add_deps_for_def): Converted use of reaching defs to + reaching uses and fixed space problem. + +2006-05-23 Jan Hubicka + + * cgraphunit.c (decide_is_function_needed): Also nested functions + and functions declared inline can be optimized out at -O0. + +2006-05-22 Gerald Pfeifer + + * doc/install.texi (Configuration): Remove reference to CrossGCC + FAQ which was gone. + (Building): Ditto. + +2006-05-22 Kazu Hirata + + PR target/27266 + * config/i386/i386.c (ix86_expand_branch): Jump to simple if + ix86_compare_emitted is non-NULL. + +2006-05-22 Volker Reichelt + + PR c++/27451 + * stmt.c (expand_asm_operands): Skip asm statement with erroneous + clobbers. + +2006-05-22 Richard Sandiford + + PR rtl-optimization/25514 + * combine.c (replaced_rhs_insn): New variable. + (combine_instructions): Set replaced_rhs_insn when trying to replace + a SET_SRC with a REG_EQUAL note. + (distribute_notes): Use replaced_rhs_insn when determining the live + range of a REG_DEAD register. + +2006-18-05 Joerg Wunsch + Anatoly Sokolov + + * config/avr/avr.c (avr_mcu_types): Add support for attiny261, + attiny461, attiny861, attiny25, attiny45, attiny85, attiny24, + attiny44, attiny84, at90pwm2, at90pwm3, atmega165p, atmega169p, + atmega164p, atmega324p, atmega644p, atmega644, atmega329, + atmega3290, atmega649, atmega6490, atmega406, atmega640, + atmega1280, atmega1281, at90can32, at90can64, at90usb646, + at90usb647, at90usb1286 and at90usb1287 devices. + * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.). + * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.). + +2006-05-22 Richard Sandiford + + * mklibgcc.in (lib2funcs): Remove _floatdidf from initial assignment. + +2006-05-22 Richard Guenther + + Revert + 2006-01-31 Richard Guenther + Paolo Bonzini + + * doc/install.texi (--disable-libgcc-math): Document. + +2006-05-22 Richard Guenther + + Revert + 2006-01-31 Richard Guenther + + * doc/invoke.texi (-msselibm): Document. + * target.h (expand_library_builtin): New target hook. + * builtins.c (expand_builtin): Use expand_library_builtin. + (default_expand_library_builtin): New function. + * gcc.c (LINK_GCC_MATH_SPEC): Define. + (LINK_COMMAND_SPEC): Handle %(link_gcc_math). + (link_gcc_math_spec): Declare. + (static_specs): Add link_gcc_math_spec. + * expr.h (default_expand_library_builtin): Declare. + * target-def.h (TARGET_EXPAND_LIBRARY_BUILTIN): Define. + (TARGET_INITIALIZER): Add TARGET_EXPAND_LIBRARY_BUILTIN. + * config/i386/i386.h: Provide LINK_GCC_MATH_SPEC. + * config/i386/i386.opt (msselibm): New target option. + * config/i386/i386.c (ix86_builtin_function_variants): New array. + (ix86_init_sse_abi_builtins): New function. + (ix86_expand_library_builtin): Likewise. + (TARGET_EXPAND_LIBRARY_BUILTIN): Define. + (override_options): Handle error conditions wrt -msselibm. + (ix86_builtins): Add function codes for SSE2 ABI builtins. + (ix86_init_builtins): Call ix86_init_sse_abi_builtins. + * doc/extend.texi (__builtin_sse2_*): Document new target specific + builtins. + +2006-05-22 Volker Reichelt + + PR c/27420 + * c-common.c (self_promoting_args_p): Skip erroneous args. + + PR c/26818 + * c-decl.c (finish_struct): Skip erroneous fields. + +2006-05-22 Nick Clifton + + * config/cris/cris.opt (march): Remove VarExists attribute. + (max-stackframe=): Likewise. + +2006-05-22 Kazu Hirata + + * doc/rtl.texi: Fix a typo. + * see.c: Fix comment typos. + + * tree-ssa-structalias.h (alias_info): Remove num_references. + +2006-05-21 Mike Stump + + * config/darwin-c.c (BAD): Conditionalize on OPT_Wpragmas. + (BAD2): Add. + (darwin_pragma_options): Use BAD instead. + (darwin_pragma_unused): Likewise. + (darwin_pragma_ms_struct): Likewise. + +2006-05-21 David Edelsohn + + * config/rs6000/rs6000.md (floatsitf2): Remove constraints. + +2006-05-21 Kazu Hirata + + PR rtl-optimization/27671 + * simplify-rtx.c (simplify_relational_operation_1): Fix + simplifications of (eq/ne (xor x y) y) and + (eq/ne (xor x y) x). + + PR tree-optimization/26622. + * fold-const.c (fold_ternary) : Call fold_convert + on arg1. + +2006-05-21 Bernhard Fischer + + * tree-cfg.c: Prune whitespace. + (debug_tree_cfg): Point to correct header containing the + TDF_* defines. + +2006-05-21 Bernhard Fischer + + PR middle-end/25776 + * cgraphunit.c (verify_cgraph_node): Typo in error message. + +2006-05-20 Andrew Pinski + + PR middle-end/25776 + * cgraphunit.c (cgraph_optimize): Don't run ipa passes if error + or sorry count is non zero. + +2006-05-20 Andreas Schwab + + * config/pa/pa-linux.h (STRING_ASM_OP): Prepend and append a tab. + +2006-05-19 Daniel Berlin + Kenneth Zadeck + + PR rtl-optimization/26855 + + * df-scan.c (mw_reg_pool, mw_link_pool): New allocation pools for + multiword refs. + (df_scan_alloc): Added code to properly handle multiword hard + registers and add all_blocks parameter. + (df_scan_free_internal, df_insn_refs_delete, df_ref_record): Added + code to properly handle multiword hard registers. + (df_rescan_blocks): Added code to remove deleted blocks from + bitmap. + (df_ref_create_structure, df_ref_record): Added code to properly + handle subregs. + (df_ref_record_1): Changed DF_REF_CLOBBER into DF_REF_MUST_CLOBBER + and set DF_REF_PARTIAL. + (df_defs_record): Changed DF_REF_CLOBBER into DF_REF_MUST_CLOBBER. + (df_uses_record): Added DF_REF_PARTIAL for subreg. + (df_scan_add_problem): Added flags parameter. + (df_ref_create_structure): Changed switching structure. + (df_bb_refs_record): Fixed case where duplicate artificial refs + were created. Changed location of flags. + (df_record_entry_block_defs): Added code to make stack pointer + live in entry block. Refined cases where frame pointer is needed. + Changed location of flags. + (df_record_exit_block_uses, df_insn_refs_record): Changed location of flags. + (df_set_state): Removed function. + (df_grow_reg_info, df_reg_chain_unlink, df_ref_remove, + df_insn_create_insn_record, df_insn_refs_delete, + df_ref_create_structure): Formatting changes. + * df-core.c (df_mvs_dump, df_set_flags, df_clear_flags, + df_delete_basic_block): New function. + (df_init): Changed location of flags. + (df_add_problem): Added flags parameter and the way flags are + processed. + (df_insn_uid_debug, df_ref_debug, debug_df_defno, debug_df_ref, + debug_df_chain): Improved debugging output. + (df_insn_debug, df_insn_uid_debug): Added multiword reg support. + (df_refs_chain_dump): Removed df parameter. + (df_iterative_dataflow): Added consistency check. + (df_prune_to_subcfg): Made public. + (df_analyze_problem): Added blocks_to_init parameter and made + public. + (df_ref_record, df_bb_refs_record, df_mark_reg, + df_record_exit_block_uses): Whitespace changes. + (df_dump): Whitespace changes. + * df.h: Some reordering to remove forward references. + (df_ref_flags.DF_REF_MW_HARDREG, DF_REF_PARTIAL, + DF_REF_MUST_CLOBBER, DF_REF_MAY_CLOBBER): New fields. + (df_ref_flags.DF_REF_CLOBBER): Deleted field. + (dataflow.flags): New field. + (df.flag): Deleted field. + (df_alloc_function): Added additional bitmap parameter. + (df_dependent_problem_function): New type. + (df_problem.changeable_flags): New field. + (df_ref_flags.DF_REF_DIES_AFTER_THIS_USE, DF_SCAN_INITIAL, + DF_SCAN_GLOBAL, DF_SCAN_POST_ALLOC, df_state): Removed. + (df_mw_hardreg): New struct. + (DF_INSN_UID_MWS): New macro. + (df_refs_chain_dump, df_ref_debug, df_chain_dump): Removed df + parameter. + (df_add_problem, df_ru_add_problem, df_rd_add_problem, + df_lr_add_problem, df_ur_add_problem, df_urec_add_problem, + df_ri_add_problem, df_scan_add_problem): Added flags parameter. + (df_set_state): Removed function. + (df_set_flags, df_clear_flags, df_delete_basic_block) New functions. + * df-problems.c (df_chain_dump): Removed df parameter. + (df_ru_alloc, df_rd_alloc, df_lr_alloc, df_ur_alloc, + df_urec_alloc, df_chain_alloc, df_ri_alloc): Added all blocks + parameter. + (df_ru_alloc, df_rd_alloc): Now resets all blocks. + (df_rd_bb_local_compute_process_def, df_ur_bb_local_compute, + df_chain_create_bb, df_create_unused_note, df_ri_bb_compute): + Split DF_REF_CLOBBER into DF_REF_MAY_CLOBBER and + DF_REF_MUST_CLOBBER cases. + (df_ru_bb_local_compute_process_def, + df_rd_bb_local_compute_process_def, df_lr_bb_local_compute, + df_lr_bb_local_compute, df_ur_bb_local_compute, + df_chain_create_bb): Made subreg aware. + (df_ru_bb_local_compute, df_rd_bb_local_compute, + df_lr_bb_local_compute, df_lr_bb_local_compute, + df_chain_create_bb): Cleanup to use proper macros. + (df_ur_local_finalize, df_urec_local_finalize): Removed unnecessary + code to fixup bitvectors. + (df_ri_alloc): Cleared lifetime. + (df_ignore_stack_reg, df_kill_notes, df_set_notes_for_mw, + df_create_unused_note): New function. + (df_ri_bb_compute, df_ri_compute): Added code to create/update + REG_DEAD and REG_UNUSED notes as well as register information. + (df_ru_dump, df_rd_dump, df_lr_dump, df_ur_dump, df_urec_dump, + df_chains_dump): Fixed crash if problem was never run. + (df_ru_add_problem, df_rd_add_problem, df_lr_add_problem, + df_ur_add_problem, df_urec_add_problem, df_chain_add_problem, + df_ri_add_problem): Processes flags in uniform manner. + (df_ru_alloc, df_ru_local_compute, df_ru_confluence_n, df_ru_free, + df_ru_dump, df_rd_local_compute, df_rd_confluence_n, df_rd_free, + df_rd_dump, df_urec_free_bb_info): Formatting changes. + (df_ru_free_bb_info, df_ru_bb_local_compute, df_ru_dump, + df_rd_free_bb_info, df_rd_bb_local_compute_process_def, + df_rd_bb_local_compute, df_rd_dump, df_lr_free_bb_info, + df_lr_bb_local_compute, df_lr_local_compute, df_ur_free_bb_info, + df_ur_dump, df_urec_free_bb_info, df_urec_dump, + df_chain_create_bb, df_ri_bb_compute): Whitespace changes. + * modulo-sched.c (sms_schedule): Added flag parameter to calls. + * see.c (see_initialize_data): Ditto. + * final.c (rest_of_clean_state) Added regstack_completed. + * rtl.h (regstack_completed): Ditto. + * reg-stack.c (regstack_completed): Ditto. + +2006-05-19 Mike Stump + + * c-tree.h (default_conversion): Remove. + * c-common.h (default_conversion): Add. + +2006-05-19 Zdenek Dvorak + + * tree-vrp.c (valid_value_p): New function. + (adjust_range_with_scev): Fail if the value of bound is not + simple. + +2006-05-19 Richard Sandiford + + * config/mips/linux-unwind.h: Include + (mips_fallback_frame_state): Use syscall numbers to determine + the appropriate li instruction for the current ABI. Only use + __NR_sigreturn for o32. + +2006-05-19 Nicolas Setton + + * langhooks.h (struct lang_hooks): Add dwarf_name language hook. + * langhooks.c (lhd_dwarf_name): New function. + * langhooks-def.h (lhd_dwarf_name): Declare. + (LANG_HOOKS_DWARF_NAME): New macro, defaults to lhd_dwarf_name. + * dwarf2out.c (dwarf2_name): Use the dwarf_name language hook. + +2006-05-19 Richard Sandiford + + * libgcc2.c (MIN_UNITS_PER_WORD): Move default definition from + libgcc2.h. + (LIBGCC2_UNITS_PER_WORD): Provide default definition, using old + MIN_UNITS_PER_WORD logic from libgcc2.h. Do nothing if + LIBGCC2_UNITS_PER_WORD > MIN_UNITS_PER_WORD. + * libgcc2.h (MIN_UNITS_PER_WORD): Remove definition from here. + Use LIBGCC2_UNITS_PER_WORD rather than MIN_UNITS_PER_WORD to + determine the size of Wtype, etc. + * mklibgcc.in (LIB2_SIDITI_CONV_FUNCS): New argument. + (swfloatfuncs): New variable. + (dwfloatfuncs): Likewise. + (lib2funcs): Remove floating-point conversion functions from + initial assignment. Use LIB2_SIDITI_CONV_FUNCS to determine + the set of conversion routines needed. Allow entries to specify + an object name, filename and word size. Update users accordingly. + * Makefile.in (libgcc.mk): Pass LIB2_SIDITI_CONV_FUNCS. + * config/mips/t-mips (LIB2_SIDITI_CONV_FUNCS): Define. + + Revert: + + 2006-02-08 Roger Sayle + + PR target/22209 + * config/fixtfdi.c: New libgcc source file. + * config/fixunstfdi.c: New source file. + * config/floatditf.c: New source file. + * config/floatunditf.c: New souce file. + * config/mips/t-iris6 (LIB2FUNCS_EXTRA): Include the new source + files above instead of config/mips/_tilib.c. + * config/mips/t-linux64 (LIB2FUNCS_EXTRA): Likewise. + +2006-05-18 John David Anglin + + * pa/t-hpux-shlib (SHLIB_LINK): Remove `-lc'. + * pa/pa-hpux11.h (LIB_SPEC): Update comment. + +2006-05-18 Mike Stump + + Fix up vla, vm and [*] sematics. + + PR c/18740 + PR c/7948 + PR c/25802 + PR c/27673 + * c-tree.h (struct c_arg_info): Add had_vla_unspec. + (c_vla_unspec_p): Add. + (c_vla_type_p): Add. + * c-decl.c (struct c_scope): Add had_vla_unspec. + (build_array_declarator): Add support for [*]. + (grokdeclarator): Likewise. + (grokparms): Likewise. + (get_parm_info): Likewise. + * c-objc-common.c (c_vla_unspec_p): Likewise. + * c-objc-common.h (LANG_HOOKS_TREE_INLINING_VAR_MOD_TYPE_P): Likewise. + * c-parser.c (c_parser_typeof_specifier): Evaluate arguments to + typeof when argument is a variably modified type not inside sizeof or alignof. + (c_parser_direct_declarator_inner): Propagate errors. + (c_parser_sizeof_expression): Add support for [*]. + (c_parser_parms_declarator): Initialize had_vla_unspec. + (c_parser_parms_list_declarator): Likewise. + * c-typeck.c (c_vla_type_p): Add. + (composite_type): Add support for vla compositing. + (comptypes_internal): Add support for vla compatibility. + (c_expr_sizeof_expr): Evaluate vla arguments. + * tree.c (variably_modified_type_p): Update comment for [*]. + +2006-05-18 Michael Matz + + PR target/27599 + * config.host: Make assignments to host_xmake_file cumulative. + * config.host (*-darwin*): Test $host, not $target. + +2006-05-12 Stuart Hastings + + * config/i386/i386.opt (-mstackrealign): New flag. + * config/i386/i386.c (force_align_arg_pointer): New attribute. + (ix86_handle_cconv_attribute): Emit error when + force_align_arg_pointer attribute collides with too many regparms. + (ix86_function_regparm): Limit regparms when used with + force_align_arg_pointer attribute. (ix86_internal_arg_pointer): + Support stack-realigning prologue in non-main functions. Emit + warning for nested functions under -mstackrealign, emit error for + nested functions with force_align_arg_pointer attribute. + * doc/extend.texi (force_align_arg_pointer): Document it. + * doc/invoke.texi (-mstackrealign): Document it. + +2006-05-17 Kazu Hirata + + PR rtl-optimization/27477 + * combine.c (try_combine): Don't split a parallel consisting + of two sets into two individual sets if both sets reference + cc0. + +2006-05-17 H.J. Lu + + * config/arm/arm.opt (target_fpe_name): Remove VarExists. + * config/rs6000/rs6000.opt (TARGET_NO_FP_IN_TOC): Likewise. + + * doc/options.texi (VarExists): Updated. + +2006-05-17 John David Anglin + + * unwind-dw2.c: Add declarations for uw_update_context and + uw_frame_state_for. + * pa/hpux-unwind.h (pa_fallback_frame_state): When an export stub is + detected, advance frame state and context once to skip over stub. + +2006-05-17 Sebastian Pop + + PR middle-end/20256 + PR middle-end/26435 + * tree-loop-linear.c (linear_transform_loops): Don't test perfect_nest_p. + Call rewrite_into_loop_closed_ssa only when something changed. + * lambda.h (gcc_loopnest_to_lambda_loopnest): Update declaration. + * lambda-code.c (can_convert_to_perfect_nest): Declared. + (gcc_loopnest_to_lambda_loopnest): Removed need_perfect_nest parameter. + Test for perfect_nest_p here. Fix formating. + (replace_uses_equiv_to_x_with_y): Fix formating. + (stmt_uses_op): Removed. + (can_convert_to_perfect_nest): Removed loopivs parameter. + Complete the test by checking the scalar dependences. + (perfect_nestify): Remove the test for can_convert_to_perfect_nest. + Fix formating. + +2005-05-17 Bernd Schmidt + + PR bootstrap/22541 + From Dan Kegel : + * Makefile.in: Strip "dir/../" combinations from SYSTEM_INCLUDE_DIR. + +2006-05-17 Eric Botcazou + + * tree.c (variably_modified_type_p) : Return true + if the element type is variably modified without recursing. + +2006-05-17 Sebastian Pop + + PR middle-end/27332 + * tree-loop-linear.c (try_interchange_loops): Test for + no data dependences. + +2006-05-17 Zdenek Dvorak + + PR tree-optimization/27548 + * tree-scalar-evolution.c (scev_const_prop): Do not prolong life + range of ssa names that appear on abnormal edges. + * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Export. + * tree-flow.h (contains_abnormal_ssa_name_p): Declare. + +2005-05-17 Bernd Schmidt + + PR middle-end/27620 + * expr.c (safe_from_p): Handle CONSTRUCTOR again. + +2006-05-17 Jakub Jelinek + + PR middle-end/27415 + * tree.h (OMP_PARALLEL_COMBINED): Define. + * gimplify.c (struct gimplify_omp_ctx): Add is_combined_parallel field. + (new_omp_context): Add is_combined_parallel argument. + (gimplify_scan_omp_clauses): Add in_combined_parallel argument, adjust + new_omp_context caller. + (gimplify_omp_parallel, gimplify_omp_for, gimplify_omp_workshare): + Adjust gimplify_scan_omp_clauses callers. + (omp_is_private): Issue errors if iteration variable is firstprivate + or reduction in the current context. + * c-parser.c (c_parser_omp_parallel): Set OMP_PARALLEL_COMBINED + on combined parallel workshare constructs. + +2006-05-16 H.J. Lu + + * Makefile.in (GCC_OBJS): Replace options.o with gcc-options.o. + (gcc-options.o): New rule. + + * optc-gen.awk: Protect variables for gcc-options.o with + #ifdef GCC_DRIVER/#endif. + +2006-05-16 Daniel Berlin + + Fix PR tree-optimization/27373 + * tree-ssa-forwprop.c: (forward_propagate_addr_expr_1): Add argument. + (forward_propagate_addr_expr): Update call. + +2006-05-16 H.J. Lu + + * doc/options.texi: Move the Negative option. + +2006-05-16 Richard Guenther + + PR tree-optimization/22303 + * tree-ssa-ccp.c (fold_const_aggregate_ref): Handle reads + from STRING_CSTs. + (evaluate_stmt): Fall back to fold_const_aggregate_ref, if + ccp_fold did not simplify the statement. + +2006-05-16 H.J. Lu + + PR driver/26885 + * Makefile.in (GCC_OBJS): New. + (OBJS-common): Add opts-common.o. + (xgcc$(exeext)): Replace gcc.o with $(GCC_OBJS). + (cpp$(exeext)): Likewise. + (gcc.o): Also depend on opts.h. + (opts-common.o): New. + + * common.opt (gcoff): Add Negative(gdwarf-2). + (gdwarf-2): Add Negative(gstabs). + (gstabs): Add Negative(gstabs+). + (gstabs+): Add Negative(gvms). + (gvms): Add Negative(gxcoff). + (gxcoff): Add Negative(gxcoff+). + (gxcoff+): Add Negative(gcoff). + * config/i386/i386.opt (m32): Add Negative(m64). + (m64): Add Negative(m32). + + * doc/options.texi: Document the Negative option. + + * gcc.c: Include "opts.h". + (main): Call prune_options after expandargv. + + * optc-gen.awk: Generate common declarations for all flag + variables in options.c. Output the neg_index field. + + * opts.c (find_opt): Moved to ... + * opts-common.c: Here. New file. + + * opts.h (cl_option): Add a neg_index field. + (find_opt): New. + (prune_options): Likewise. + +2006-05-16 Jakub Jelinek + + PR middle-end/27573 + * omp-low.c (expand_omp_parallel): Don't assert + .OMP_DATA_I = &.OMP_DATA_O is the first statement in the block, + instead search for it. + + PR c/27499 + * gimplify.c (gimplify_omp_for): Remove assertion that iteration var + is signed. + +2006-05-16 Andreas Schwab + + * doc/tm.texi (TARGET_LIBGCC_SDATA_SECTION): Add missing @end + defmac. + +2006-05-15 Roger Sayle + + PR target/26600 + * config/i386/i386.c (legitimate_constant_p) : TImode + integer constants other than zero are only legitimate on TARGET_64BIT. + Only zero vectors are legitimate. + (ix86_cannot_force_const_mem): Integral and vector constants can + always be put in the constant pool. + +2006-05-16 DJ Delorie + + * crtstuff.c (__dso_handle): Set section from + TARGET_LBIGCC_SDATA_SECTION if defined. + * doc/tm.texi (TARGET_LIBGCC_SDATA_SECTION): Document. + * config/mips/mips.h (TARGET_LIBGCC_SDATA_SECTION): Define. + +2006-05-16 Danny Smith + + PR target/27599 + * config.host (i[34567]86-*-mingw*): Append i386/x-mingw32 to + host_xmake_file. + +2006-05-16 Ben Elliston + + * tree-cfg.c (split_edge_bb_loc): Remove unused variable `src'. + +2006-05-15 Per Bothner + + * tree.c: (last_annotated_node): Use source_locus typedef. + This permits bootstrapping with --enable-mapped-location. + +2006-05-15 Zdenek Dvorak + + PR tree-optimization/26830 + * tree-into-ssa.c (struct ssa_name_info): Add age field. + (info_for_ssa_name, current_info_for_ssa_name_age, + blocks_to_update): New variables. + (get_ssa_name_ann): Use info_for_ssa_name instead of SSA_NAME_AUX. + (clear_ssa_name_info, initialize_flags_in_bb, + mark_block_for_update): New functions. + (mark_def_sites, rewrite_stmt): Assert that blocks_to_update is NULL. + (insert_phi_nodes_for, mark_use_interesting, prepare_block_for_update, + prepare_def_site_for): Use mark_block_for_update. + (mark_def_interesting): Assert that the processed block is marked in + blocks_to_update. Do not take blocks argument. + (prepare_use_sites_for, prepare_names_to_update): Do not take blocks + argument. + (rewrite_update_init_block, rewrite_update_stmt): Only process + blocks with statements to rewrite. + (delete_update_ssa): Do not clear SSA_NAME_AUX. + (update_ssa): Initialize and free blocks_to_update. Do not + clear flags on statements. Do not use blocks bitmap. + * tree.h (SSA_NAME_AUX): Removed. + (struct tree_ssa_name): Removed aux field. + * print-tree.c (print_node): Do not print SSA_NAME_AUX. + +2006-05-15 Richard Guenther + + PR tree-optimization/27603 + * tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined): + Do computations in original type. + +2006-05-15 Mircea Namolaru + + * see.c: Code style changes such as redundant paranthesis, + redundant intialization of local variables etc. + (see_main): Declared now as static. + * doc/invoke.texi: Update that -fsee is not enabled by + default at -O3. + +2006-05-15 Jakub Jelinek + + * omp-low.c (check_omp_nesting_restrictions): New function. + (scan_omp_1): Call it. + + PR middle-end/27416 + * omp-low.c (build_outer_var_ref): If VAR is reference in orphaned + construct, return *VAR. + +2006-05-14 Kaz Kojima + + PR rtl-optimization/27406 + * bt-load.c (migrate_btr_def): Skip the block having abnormal + edges. + +2006-05-14 Roger Sayle + + PR rtl-optimization/27538 + * combine.c (expand_compound_operation): Call gen_lowpart + before calling simplify_shift_const. + +2006-05-14 Roger Sayle + + PR rtl-optimization/22563 + * expmed.c (store_fixed_bit_field): When using AND and IOR to store + a fixed width bitfield, always force the intermediates into psuedos. + +2006-05-14 Bernhard Fischer + + PR 27501 + * mkconfig.sh: Use operator = instead of == for test. + +2006-05-13 Nick Clifton + + * dwarf2out.c (dbx_reg_number): Check return value from + LEAF_REG_REMAP and only use it if it is valid. + (multiple_reg_loc_descriptor): Likewise. + +2006-05-13 Richard Guenther + + * config.host : Append i386/x-cygwin to + host_xmake_file. + +2006-05-13 Steven Bosscher + + * df-core.c (df_bb_regno_last_use_find): Do not look for dataflow + information attached to non-INSNs such as NOTEs. + (df_bb_regno_first_def_find, df_bb_regno_last_def_find): Likewise. + +2006-05-12 Andreas Krebbel + + * config/s390/s390.c (s390_const_ok_for_constraint_p): Disallow -4G for + On contraint. + * config/s390/s390.md: Adjust comment describing On constraint. + +2006-05-11 Jan Hubicka + + * cgraphunit.c (decide_is_function_needed): Don't force always_inline + to be output at -O0. + +2006-05-11 Volker Reichelt + + PR middle-end/27384 + * fold-const.c (size_binop): Move sanity check for arguments to + the beginning of the function. + + PR middle-end/27488 + * fold-const.c (tree_expr_nonnegative_p): Return early on invalid + expression. + +2006-05-11 Richard Guenther + + PR middle-end/27529 + * fold-const.c (fold_unary): Handle intermediate conversion + to a pointer type like intermediate conversion to an integer + type in folding of (T1)(T2)var to var. + Match the code to the comment in the final conversion for + (T1)(T2)var to (T1)var regarding to type precision. Rather + than disallow T1 being of pointer type, assert that both T1 + and var are of pointer type or not. Make sure not to fall + over the frontends lazyness wrt array to pointer decay though. + +2006-05-10 Richard Earnshaw + + * arm.c (arm_struct_value_rtx): Delete. + (TARGET_STRUCT_VALUE_RTX): Use the default definition. + (arm_init_cumulative_args): Always initialize nregs to zero. + +2006-05-10 Richard Guenther + + PR tree-optimization/27532 + * tree-object-size.c (plus_expr_object_size): Fix typo. + +2006-05-10 Kazu Hirata + + PR target/24949 + * config/m68k/m68k.md (ashrdi_const32, ashrdi_const32_mem, + ashrdi_const, ashrdi3): Use a scratch register. + +2006-05-10 Richard Guenther + + PR tree-optimization/27302 + * fold-const.c (operand_equal_p): For two comparisons, + try comparison of one comparison code swapped if that yields + the same code. + +2006-05-10 Ben Elliston + + * tree-pretty-print.c (pretty_print_string): No need to handle + '\0' as a special character. + + * tree.h: Include "hashtab.h". + (iterative_hash_expr): Use hashval_t in its prototype. + * Makefile.in (TREE_H): Add $(HASHTAB_H). + +2006-05-09 Steve Ellcey + + PR bootstrap/26872 + * config.gcc (hppa[12]*-*-hpux10*): Set gas to yes. + (hppa*64*-*-hpux11*): Ditto. + (hppa[12]*-*-hpux11*): Ditto. + +2006-05-09 David Edelsohn + + PR target/26545 + * config/rs6000/aix41.h (TARGET_64BIT): Define. + +2006-05-09 Michael Matz + + * config.host (): Set + host_extra_gcc_objs and host_xmake_file. + (<*-*-linux*>): Don't overwrite host_xmake_file. + * gcc.c (static_spec_functions): Add EXTRA_SPEC_FUNCTIONS. + * config/i386/i386.h (EXTRA_SPEC_FUNCTIONS): Define. + (host_detect_local_cpu): Declare. + (CC1_CPU_SPEC): Add -march=native and -mtune=native cases. + * config/i386/i386.c (override_options): Handle -mtune=native + as -mtune=generic. + * config/i386/x-i386: New file. + * config/i386/driver-i386.c: New file. + * doc/invoke.texi (): Describe + cpu-type "native". + +2006-05-09 Dirk Mueller + Richard Guenther + + PR middle-end/27498 + * fold-const.c (fold_read_from_constant_string): Relax check + for matching types to matching modes. + +2006-05-09 Zdenek Dvorak + + PR rtl-optimization/27335 + * loop-unroll.c (peel_loops_completely): Use loops->parray to walk the + loops. + +2006-05-08 Chao-ying Fu + Richard Sandiford + + * config/mips/mips-ps-3d.md (scc_ps, s_ps): New patterns. + (vcondv2sf, sminv2sf3, smaxv2sf3): Likewise. + * config/mips/mips.md (UNSPEC_SCC): New constant. + * config/mips/mips-protos.h (mips_expand_vcondv2sf): Declare. + * config/mips/mips.c (mips_reverse_fp_cond_p): New function. + (mips_emit_compare): Use it. + (mips_expand_vcondv2sf): New function. + +2006-05-08 Daniel Berlin + + Fix PR tree-optimization/27093 + * tree-ssa-alias.c (recalculate_used_alone): Mark variables for + renaming when they become not-used_alone. + +2006-05-08 John David Anglin + + * hpux-unwind.h (pa_fallback_frame_state): Handle return parameter + relocation and relocation stubs. + +2006-05-08 Eric Christopher + + * unwind-dw2-fde-darwin.c (examine_objects): Only check data + section for ppc. + +2006-05-08 Jan Hubicka + + PR middle-end/24561 + * cgraphunit.c (decide_is_function_needed): When not optimizing even + unused static functions are needed. + +2006-05-08 Roger Sayle + + PR target/27158 + * reload.c (find_reloads_toplev): Only return the simplified SUBREG + of a reg_equiv_constant if the result is a legitimate constant. + +2006-05-08 Uros Bizjak + + PR target/27277 + * config/i386/i386.c (ix86_rtx_costs) [FLOAT_EXTEND]: For + standard 80387 constants, raise the cost to prevent + compress_float_constant() to generate load from memory. + +2006-05-08 Kazu Hirata + + * config/arm/constraints.md (c): Fix a typo. + + * see.c, tree-flow-inline.h, tree-phinodes.c: Fix comment + typos. + +2006-05-07 H.J. Lu + + PR target/24879 + * config/i386/pmmintrin.h (_mm_monitor): Remove macro. Use + inline function. + (_mm_mwait): Likewise. + + * config/i386/sse.md (sse3_mwait): Replace "mwait\t%0, %1" with + "mwait". + (sse3_monitor): Make it 32bit only. + (sse3_monitor64): New. 64bit monitor. + +2006-05-07 Volker Reichelt + + PR target/27421 + * config/i386/i386.c (classify_argument): Skip fields with invalid + types. + +2006-05-07 Richard Guenther + + PR tree-optimization/27409 + * tree-ssa-structalias.c (get_constraint_for_component_ref): + Do not try to find zero-sized subvars. + +2006-05-07 Richard Guenther + + PR tree-optimization/27136 + * tree-ssa-loop-niter.c (get_val_for): Correct function + comment, assert requirements. + (loop_niter_by_eval): Stop processing if the iterated + value did not simplify. + +2006-05-07 Mircea Namolaru + + * opts.c (flag_see): remove its setting at -O3. + +2006-05-07 Richard Earnshaw + + * genpeep.c (main): Make insn-peep.c depend on flags.h. + * arm/constraints.md: New file. + * arm.h (REG_CLASS_FROM_LETTER_P): Delete. + (CONST_OK_FOR_ARM_LETTER, CONST_OK_FOR_THUMB_LETTER) + (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_ARM_LETTER) + (CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT_STR_ARM) + (CONSTRAINT_LEN, EXTRA_CONSTRAINT_THUMB, EXTRA_CONSTRAINT_STR) + (EXTRA_MEMORY_CONSTRAINT): Likewise. + * arm.md: Include constraints.md. + (thumb_movsi_insn): Use satisfies_constraint_J. + (movhi, movqi): Use satisfies_constraint_I. + +2006-04-29 Anatoly Sokolov + + * config/avr/avr.h (CRT_BINUTILS_SPECS): Fixed crt* file name + for atmeg a645 device. + +2006-05-06 Richard Guenther + + PR tree-optimization/27151 + * tree-vect-transform.c (vectorizable_condition): Punt on + values that have a different type than the condition. + +2006-05-03 Aldy Hernandez + + PR/21391 + * c-parser.c (c_parser_cast_expression): Only insert casts into + hash table if pointer. + * function.c (used_types_insert_helper): Rename from + used_types_insert. + (used_types_insert): Call used_types_insert_helper. + * function.h (used_types_insert): Accept only one argument. + +2006-05-05 David Edelsohn + + * config/rs6000/rs6000.md: Mark all "X" constraints for clobbered + scratch with output modifier. + +2006-05-04 David Edelsohn + + PR target/26481 + * config/rs6000/rs6000.md (stmsi_power): Mark clobber constraint + with output modifier. + +2006-05-04 Richard Sandiford + + PR target/26765 + * config/mips/mips.c (mips_symbolic_address_p): Return true + for SYMBOL_TLSGD, SYMBOL_TLSLDM, SYMBOL_DTPREL, SYMBOL_TPREL, + SYMBOL_GOTTPREL, and SYMBOL_TLS. + +2006-05-04 Richard Guenther + + PR tree-optimization/14287 + PR tree-optimization/14844 + PR tree-optimization/19792 + PR tree-optimization/21608 + PR tree-optimization/27090 + * tree-ssa-pre.c (try_combine_conversion): New function. + (compute_avail): After constructing the value-handle + expression, use try_combine_conversion to combine NOP_EXPRs + with previous value-handle expressions and use the result if it + is available. + +2006-05-04 Joseph S. Myers + + * config/mips/linux64.h (DWARF_OFFSET_SIZE): Remove. + +2006-05-04 Jan Hubicka + + PR middle-end/25962 + * cgraphunit.c (verify_cgraph_node): Fix cgraph_hash testing. + +2006-05-04 Bernd Schmidt + + * config/bfin/predicates.md (const01_rtx): Tell generator programs + that this only matches CONST_INTs. All users changed to VOIDmode + operands. + + * config/bfin/bfin.c: Include "optabs.h". + (bfin_rtx_costs): Some costs for vector operations, to allow combine + to do more work. + (enum bfin_builtins): Add a number of fractional and vector builtins. + (bfin_init_builtins): Likewise. + (struct builtin_description, bdesc_2arg, bdesc_1arg): New. + (safe_vector_operand, bfin_expand_binop_builtin, + bfin_expand_unop_builtin): New functions. + (bfin_expand_builtin): Handle the new builtins. + * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define + __ADSPBLACKFIN__. + +2006-05-04 Leehod Baruch + + * see.c: New file. + * Makefile.in (OBJS-common): Add see.o. + (see.o): Add dependencies. + * common.opt (fsee): New flag for the see optimization was added. + * opts.c (flag_see): Initialized. + * passes.c (init_optimization_passes, pass_see): New pass. + * rtl.h (see_main): Declaration as extern. + * timevar.def (TV_SEE): New. + * tree-pass.h (pass_see): Declaration as extern. + * invoke.texi (-fsee): Document. + * recog.c (validate_simplify_insn): New function. + * recog.h (validate_simplify_insn): Declaration as extern. + * df-problems.c (df_chain_dump): Check for NULL. + +2006-05-04 Kenneth Zadeck + Daniel Berlin + + * cfgrtl.c (insert_insn_bb_end_new): New function. + * basic-block.h (insert_insn_bb_end_new): Declaration as extern. + +2006-05-04 Leehod Baruch + + * df.h (struct web_entry): Moved from web.c. + (union_defs): Declaration as extern. + (unionfind_root): Likewise. + (unionfind_union): Likewise. + * web.c (struct web_entry): Moved to df.h. + (unionfind_root): Remove static declaration. + (unionfind_union): Likewise. + (union_defs): Likewise and generalize to use callback function. + (web_main): Update arguments for union_defs function call. + +2006-05-04 Richard Guenther + + PR tree-optimization/26447 + * tree-ssa-pre.c (realify_fake_stores): For necessary loads + produce SSA_NAME copies before the store stmt to avoid + breaking exception handling. + +2006-05-04 Jakub Jelinek + + PR middle-end/27388 + * gimplify.c (omp_is_private): If var is shared in some outer context, + return false instead of true. Stop searching on parallel context + boundary. + +2006-05-03 Alexandre Oliva + + PR java/8260 + * coverage.c: Use get_gcov_unsigned_t() instead of + unsigned_type_node all over. + +2006-05-02 Andrew MacLeod + + PR tree-optimization/27381 + * tree-phinodes.c (remove_phi_arg_num): When moving a phi argument, + maintain the same immediate_use links. + * tree-ssa-operands.c (dump_immediate_uses_for): Show iteration marker + node rather than segfaulting. + +2006-05-03 Jakub Jelinek + + PR fortran/27395 + * gimplify.c (gimplify_scan_omp_clauses): Compare OMP_CLAUSE_CODE + rather than TREE_CODE to OMP_CLAUSE_REDUCTION. Set also GOVD_SEEN + bit for OMP_CLAUSE_REDUCTION_PLACEHOLDER. + +2006-05-02 Daniel Berlin + + Fix PR tree-optimization/26626 + * tree-ssa-structalias.c (compute_points_to_sets): For now, solve + always. + * tree-ssa-operands.c (access_can_touch_variable): Allow + typecasting through union pointers. + +2006-05-02 Jakub Jelinek + + PR c++/26943 + * omp-low.c (maybe_lookup_decl_in_outer_ctx): New function. + (build_outer_var_ref): Use maybe_lookup_decl_in_outer_ctx + to find if var will be a global variable even in the nested context. + (omp_copy_decl): Only check for global variable at the end, it might + be overridden in outer contexts. + (scan_sharing_clauses): For global variables don't create a field. + (lower_rec_input_clauses): Do nothing for global shared variables. + Emit a barrier at the end of ILIST if there were any decls in both + firstprivate and lastprivate clauses. + (lower_send_clauses): Do nothing for global variables except for + COPYIN. + +2006-05-02 Zdenek Dvorak + + * tree.c (unsigned_type_for, signed_type_for): Make sure a type + of the correct signedness is returned. + +2006-05-02 Jeff Law + + PR tree-optimization/27364 + * tree-vrp.c (vrp_int_const_binop): Fix detection of overflow from + multiply expressions. + +2006-05-02 Tom Tromey + + * tree-flow-inline.h (op_iter_init_phiuse): Fixed typo. + +2006-05-02 Kazu Hirata + + PR target/27387 + * arm.c (arm_output_mi_thunk): Use pc-relative addressing when + -mthumb -fPIC are used. + +2006-05-02 Stanislaw Skowronek + Joshua Kinard + + PR target/25871 + * config/mips/mips.h (TRAMPOLINE_TEMPLATE): Avoid 32-bit moves + with 64-bit pointers. + +2006-05-02 Paul Brook + + * config/arm/arm.c (add_minipool_forward_ref): Check if insn + and pool overlap. + (create_fix_barrier): Check that a suitable barrier location is + found. + (arm_reorg): Include ftmp->address in allowable range of addresses. + +2006-05-02 David Billinghurst + + PR ada/27366 + * ada/env.c (__gnat_clearenv): Use unsetenv() to clear environment + on Cygwin. + +2006-05-02 Jakub Jelinek + + PR middle-end/27337 + * gimplify.c (gimplify_scan_omp_clauses): Handle INDIRECT_REF + around RESULT_DECL for result passed by reference. + (gimplify_expr): Call omp_notice_variable when RESULT_DECL is seen. + * omp-low.c (use_pointer_for_field): Don't look at + DECL_HAS_VALUE_EXPR_P for RESULT_DECLs. + (scan_omp_1): Call remap_decl on RESULT_DECLs. + (lower_rec_input_clauses): Don't allocate VLA memory for the second + time or var for passing by reference for + OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE clauses. Allow creation of + TREE_ADDRESSABLE variables when passing by reference. + + * omp-low.c (dump_omp_region): Fix output formatting. + + PR middle-end/27328 + * omp-low.c (remove_exit_barrier): Handle NULL exit_bb. + (expand_omp_parallel): Likewise. + * tree-cfg.c (move_sese_region_to_fn): Likewise. + + PR middle-end/27325 + * omp-low.c (lower_omp_sections): Call maybe_catch_exception + on statement list containing also constructors and destructors. + (lower_omp_single, lower_omp_for, lower_omp_parallel): Likewise. + + PR middle-end/27310 + * except.c (duplicate_eh_regions): Fix clearing of + cfun->eh->region_array entries. + +2006-05-01 DJ Delorie + + * configure.ac (gcc_cv_nm): Don't use an in-tree nm if + build!=host. + (gcc_cv_objdump): Likewise. + * configure: Regenerated. + +2006-05-01 Kazu Hirata + + PR target/27374 + * config/arm/vfp.md (*arm_movdi_vfp): Correct the output + templates for case 3 and 4. + +2006-05-01 DJ Delorie + + * vec.c: Include bconfig.h when appropriate. + * Makefile.in (build/vec.o): Adjust dependencies. + * mkconfig.sh: Make sure config.h isn't used for build machine + compiles. + +2006-05-01 Zdenek Dvorak + + * tree-into-ssa.c (phis_to_rewrite, blocks_with_phis_to_rewrite): New + variables. + (mark_phi_for_rewrite): New function. + (insert_phi_nodes_for, mark_use_interesting): Call + mark_phi_for_rewrite. + (rewrite_update_phi_arguments): Traverse only phis in phis_to_rewrite. + (update_ssa): Initialize and free phis_to_rewrite. + +2006-05-01 Zdenek Dvorak + + PR rtl-optimization/27291 + * loop-doloop.c (add_test, doloop_modify): Handle the case condition is + folded to a constant. + +2006-05-01 Zdenek Dvorak + + PR tree-optimization/27283 + * tree-ssa-loop-ivopts.c (struct nfe_cache_elt): Store just trees, + not whole # of iteration descriptions. + (niter_for_exit): Return just # of iterations. Fail if # of iterations + uses abnormal ssa name. + (niter_for_single_dom_exit): Ditto. + (find_induction_variables, may_eliminate_iv): Expect niter_for_exit to + return just the number of iterations. + +2006-05-01 Zdenek Dvorak + + PR tree-optimization/27144 + * tree-ssa-loop-niter.c (derive_constant_upper_bound): New function. + (record_estimate): Only record constant upper bound. + (infer_loop_bounds_from_undefined): Call + compute_estimated_nb_iterations just once. + (proved_non_wrapping_p): Renamed to ... + (n_of_executions_at_most): ... this. Expect bound to be a constant. + (convert_step_widening, scev_probably_wraps_p): Call + n_of_executions_at_most instead of proved_non_wrapping_p. + (substitute_in_loop_info): Do not replace values in bounds. + * cfgloop.h (struct nb_iter_bound): Remove "additional" field. Update + comments. + +2006-05-01 Richard Henderson + + PR c/27358 + * c-parser.c (c_parser_skip_to_end_of_block_or_statement): Move after + c_parser_skip_to_pragma_eol. Convert to switch statement. Handle + CPP_PRAGMA. + +2006-05-01 Roger Sayle + + * c-typeck.c (parser_build_binary_op): Don't call the function + unsigned_conversion_warning to spot operand/result type overflow. + (build_binary_op): Instead, call convert_and_check instead of + convert to report the problem when the operands are promoted. + * c-common.c (unsigned_conversion_warning): Make static. + * c-common.h (unsigned_conversion_warning): Delete prototype. + +2006-05-01 Richard Guenther + + PR tree-optimization/26726 + * tree-ssa-loop-ivopts.c (idx_find_step): Mark source of the + problem ... + (find_interesting_uses_address): ... we work around here + by folding INDIRECT_REFs in the substituted base. + +2006-05-01 Diego Novillo + + * omp-low.c (dump_omp_region): Add newlines. + +2006-04-30 Roger Sayle + + * common.opt (Woverflow): New command line option. + * c-common.c (constant_expression_warning): Check warn_overflow. + (overflow_waring): Pass OPT_Woverflow to warning. + (unsigned_conversion_warning): Likewise. + (convert_and_check): Likewise. + * doc/invoke.texi: Document new command line option. + +2006-04-30 David Edelsohn + + * config/rs6000/rs6000.c (rs6000_override_options): Enable + TARGET_NO_FP_IN_TOC for section anchors. + (optimization_options): Enable section anchors for all + non-"Objective" languages. + +2006-04-28 Eric Christopher + + * config/darwin-c.c (darwin_ms_struct): Move this + (darwin_set_default_type_attributes): and this... + * config/darwin.c: ... here. + * config/darwin.h (darwin_ms_struct): Declare. + +2006-04-28 Andrew MacLeod + + * tree-ssa-dom.c (propagate_rhs_into_lhs): Fix assert clause. + +2006-04-28 Roger Sayle + + PR c/25309 + * c-typeck.c (struct spelling): Make I an unsigned HOST_WIDE_INT. + (push_array_bounds): Delete prototype. Change BOUNDS argument to + an unsigned HOST_WIDE_INT. + (print_spelling): Use HOST_WIDE_INT_PRINT_UNSIGNED to output the + array index. + (really_start_incremental_init): No need to call convert because + bitsize_zero_node is already of type bitsizetype. + (push_init_level): Extract the value of constructor_index as an + unsigned HOST_WIDE_INT quantity, using tree_low_cst. + (process_init_element): Likewise. + +2006-04-28 Joseph S. Myers + + * gcc.c (process_command): Add program name to GCC_EXEC_PREFIX + value before passing to make_relative_prefix. + +2006-04-28 Alan Modra + + PR middle-end/27260 + * builtins.c (expand_builtin_memset): Expand val in original mode. + +2006-04-27 Eric Christopher + + * target-def.h (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Bracket + with #ifndef/#endif. + * config/darwin-c.c (darwin_ms_struct): New. + (darwin_pragma_ms_struct): Ditto. + (darwin_set_default_type_attributes): Ditto. + * config/darwin-protos.h (darwin_pragma_ms_struct): Declare. + * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): + Register ms_struct pragma. + * config/i386/darwin.h (REGISTER_TARGET_PRAGMAS): Declare. + (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Ditto. + * config/rs6000/rs6000.c (rs6000_set_default_type_attributes): Call + darwin_set_default_type_attributes if TARGET_MACHO. + +2006-04-27 Andrew MacLeod + + PR tree-optimization/26854 + * tree-vrp.c (remove_range_assertions): Use new Immuse iterator. + * doc/tree-ssa.texi: Update immuse iterator documentation. + * tree-ssa-math-opts.c (execute_cse_reciprocals_1): Use new iterator. + * tree-ssa-dom.c (propagate_rhs_into_lhs): Use new iterator. + * tree-flow-inline.h (end_safe_imm_use_traverse, end_safe_imm_use_p, + first_safe_imm_use, next_safe_imm_use): Remove. + (end_imm_use_stmt_p): New. Check for end of immuse stmt traversal. + (end_imm_use_stmt_traverse): New. Terminate immuse stmt traversal. + (move_use_after_head): New. Helper function to sort immuses in a stmt. + (link_use_stmts_after): New. Link all immuses in a stmt consescutively. + (first_imm_use_stmt): New. Get first stmt in an immuse list. + (next_imm_use_stmt): New. Get next stmt in an immuse list. + (first_imm_use_on_stmt): New. Get first immuse on a stmt. + (end_imm_use_on_stmt_p): New. Check for end of immuses on a stmt. + (next_imm_use_on_stmt): New. Move to next immuse on a stmt. + * tree-ssa-forwprop.c (forward_propagate_addr_expr): Use new iterator. + * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Use new iterator. + (perfect_nestify): Use new iterator. + * tree-vect-transform.c (vect_create_epilog_for_reduction): Use new + iterator. + * tree-flow.h (struct immediate_use_iterator_d): Add comments. + (next_imm_name): New field in struct immediate_use_iterator_d. + (FOR_EACH_IMM_USE_SAFE, BREAK_FROM_SAFE_IMM_USE): Remove. + (FOR_EACH_IMM_USE_STMT, BREAK_FROM_IMM_USE_STMT, + FOR_EACH_IMM_USE_ON_STMT): New immediate use iterator macros. + * tree-cfg.c (replace_uses_by): Use new iterator. + * tree-ssa-threadedge.c (lhs_of_dominating_assert): Use new iterator. + * tree-ssa-operands.c (correct_use_link): Remove. + (finalize_ssa_use_ops): No longer call correct_use_link. + +2006-04-27 Stuart Hastings + + * config/rs6000/t-darwin (DARWIN_EXTRA_CRT_BUILD_CFLAGS): New. + * config/t-darwin (crt3.o): Use it. + * config/rs6000/rs6000.c (rs6000_initialize_trampoline): Remove + 'pmode', use Pmode instead of SImode for SYMBOL_REF. + * config/rs6000/rs6000.md (call_indirect_nonlocal_sysv, + call_nonlocal_sysv, call_value_indirect_nonlocal_sysv, + call_value_nonlocal_sysv): Suffix with the "P" macro for 32/64 + support. + +2006-04-27 Roger Sayle + + * expmed.c (store_fixed_bit_field): If we're not optimizing for + size, force the intermediate into a new pseudo rather instead of + performing both a bitwise AND and a bitwise IOR in memory. + +2006-04-27 Richard Guenther + + PR rtl-optimization/26685 + * params.def (PARAM_MAX_CSE_INSNS): Correct typo that named + this one "max-flow-memory-locations". + +2006-04-27 Richard Guenther + + PR tree-optimization/25148 + * tree-vrp.c (compare_values): Remove code dealing with + comparisons against type min/max value. Honour overflow + and negative constants in code dealing with comparisons + of plus and minus expressions. + (value_inside_range): Use fold_binary with LE_EXPR and + GE_EXPR rather than compare_values. + +2006-04-27 Dirk Mueller + + * config/i386/xmmintrin.h (_mm_shuffle_pi16): Declare + prototype for SSE. + +2006-04-26 Kenneth Zadeck + + * basic-block.h (safe_insert_insn_on_edge): Removed. + * cfgrtl.c (mark_killed_regs, safe_insert_insn_on_edge): Removed. + +2006-04-26 David Edelsohn + Paolo Bonzini + + PR middle-end/27282 + * combine.c (simplify_and_const_int_1): Use gen_int_mode. + (simplify_and_const_int): Same. + +2006-04-26 Aldy Hernandez + + * tree-ssa-dse.c (dse_optimize_stmt): Remove unused variable USE. + +2006-04-26 Jakub Jelinek + + PR c/26171 + * cgraph.c (cgraph_varpool_finalize_decl): Don't call + cgraph_varpool_assemble_pending_decls if -fopenmp, unless + cgraph_global_info_ready. + + PR middle-end/26913 + * tree-cfg.c (find_outermost_region_in_block): Handle RESX_EXPR. + + PR c/25996 + * c-parser.c (c_parser_omp_for_loop): Don't call c_finish_omp_for if + either decl or init is error_mark_node. + + PR middle-end/25989 + * tree-flow.h (struct omp_region): Add sched_kind. + * omp-low.c (expand_parallel_call): Use region->inner->sched_kind + instead of extracting omp for data. + (expand_omp_for): Save extracted sched_kind. + +2006-04-25 Roger Sayle + + * expmed.c (store_bit_field): Also check whether the bitsize is + valid for the machine's "insv" instruction before moving the + target into a pseudo for use with the insv. + * config/i386/predicates.md (const8_operand): New predicate. + * config/i386/i386.md (extv, extzv, insv): Use the new + const8_operand predicate where appropriate. + +2006-04-25 DJ Delorie + + * doc/install.texi (Specific): Clarify that this is not a list of + supported hosts or targets. + +2006-04-25 Richard Sandiford + + PR rtl-optimization/26725 + * cfgrtl.c (rtl_redirect_edge_and_branch_force): Set the source + block's BB_DIRTY flag. + +2006-04-25 Geoffrey Keating + + * dwarf2out.c (size_of_locs): Don't fill dw_loc_addr if there + are no branches. + + * dwarf2asm.c (dw2_asm_output_data): Don't generate RTL just + to print an integer. + +2006-04-25 David Edelsohn + + * varasm.c (align_variable): New function. + (get_block_for_decl): Apply align_variable to DECL before + calculating section information. + (assemble_variable): Split out alignment computation. + +2006-04-25 Andreas Krebbel + + * expmed.c (store_bit_field): Handle paradoxical subregs on big endian + machines. + +2006-04-25 Bernd Schmidt + + * genmodes.c (make_vector_mode): Allow making VECTOR_MODE_INT of a + MODE_PARTIAL_INT mode. + * config/bfin/bfin-modes.def: Add V2PDI and V2SI. + * config/bfin/bfin.c (print_operand): Add macflag and mac/msu modifiers + for CONST_INTs. + (hard_regno_mode_ok): V2PDImode is ok for accumulators. + * config/bfin/bfin.h (CLASS_MAX_NREGS, HARD_REGNO_NREGS): Handle + V2PDImode. + * config/bfin/predicates.md (const01_operand, vec_shift_operand): + New predicates. + * config/bfin/bfin.md (UNSPEC_MUL_WITH_FLAG, UNSPEC_MAC_WITH_FLAG): + New constants. + (MACFLAG_NONE, MACFLAG_T, MACFLAG_FU, MACFLAG_TFU, MACFLAG_IS, + MACFLAG_IU, MACFLAG_W32, MACFLAG_M, MACFLAG_S2RND, MACFLAG_ISS2, + MACFLAG_IH): Likewise. + (movstricthi_1): Renamed from "*movstricthi". + (load_accumulator, load_accumulator_pair, movsi_insv, insv, + ssaddsi3, sssubsi3, ssnegsi2, signbitssi2, smaxhi3, sminhi3, + abshi2, neghi2, ssneghi2, signbitshi2, movhi_low2high, + movhi_high2high, movhi_low2low, movhi_high2low, movhiv2hi_low, + movhiv2hi_high, composev2hi, movv2hi_hi, movv2hi_hi_low, + movv2hi_hi_high, ssaddhi3, sssubhi3, ssaddv2hi3, sssubv2hi3, + addsubv2hi3, subaddv2hi3, ssaddsubv2hi3, sssubaddv2hi3, + sublohiv2hi3, subhilov2hi3, sssublohiv2hi3, sssubhilov2hi3, + addlohiv2hi3, addhilov2hi3, ssaddlohiv2hi3, ssaddhilov2hi3, + mulhisi_ll, mulhisi_lh, mulhisi_hl, mulhisi_hh, ssnegv2hi2, + ssashiftv2hi3, ssashifthi3, lshiftv2hi3, lshifthi3, packv2hi, + flag_mulhi, flag_mulhisi_parts, flag_machi, flag_machi_acconly, + flag_macinithi, flag_macinit1hi, flag_mulv2hi, flag_mulv2hi_parts, + flag_macv2hi_parts, flag_macv2hi_parts_acconly, + flag_macinitv2hi_parts, flag_macinit1v2hi_parts): New patterns. + + * doc/rtl.texi (ss_ashift): Improve wording. + +2006-04-24 Geoffrey Keating + + * dwarf2out.c (verify_marks_clear): New. + (prune_unused_types): Call verify_marks_clear initially, not + prune_unmark_dies. + +2006-04-24 Bernd Schmidt + + * rtl.def (SS_ASHIFT, SS_NEG): New codes. + * doc/rtl.texi: Document them. + * simplify-rtx.c (simplify_unary_operation, + simplify_binary_operation_1): Don't abort when we see them. + +2006-04-24 Mark Mitchell + + Revert: + 2006-04-23 Mark Mitchell + * configure.ac: Completely disregard languages that are not + enabled. + * configure: Regenerated. + +2006-04-24 Andrew Pinski + Richard Guenther + + PR tree-optimization/27236 + * tree-inline.c (copy_body_r): Make sure to copy + TREE_THIS_VOLATILE flag. + +2006-04-24 Richard Guenther + + PR middle-end/26869 + * tree-complex.c (update_parameter_components): Don't handle + unused parameters which have no default def. + +2006-04-24 Andrew Pinski + Richard Guenther + + PR tree-optimization/27218 + * tree-inline.c (expand_call_inline): Strip useless type + conversions for the return slot address. + +2006-04-24 Richard Guenther + + * cfgloop.h (struct loops): Remove unused field array. Reorder + state after num. + (LOOP_PREFETCH): Remove. + +2006-04-24 Richard Guenther + + PR tree-optimization/22525 + * value-prof.c (tree_mod_pow2): Remove unnecessary temporary + variable, adjust types of generated expressions. + +2006-04-23 H.J. Lu + + * Makefile.in (c-convert.o): Add dependency on $(TARGET_H) + (tree-vect-patterns.o): Likewise. + (jump.o): Likewise. + (cselib.o): Likewise. + (loop-doloop.o): Likewise. + (regclass.o): Likewise. + (reload1.o): Likewise. + (explow.o): Replace target.h with $(TARGET_H). + (ipa-prop.o): Likewise. + (ipa-cp.o): Likewise. + (ipa-inline.o): Likewise. + (reorg.o): Likewise. + (reg-stack.o): Likewise. + +2006-04-23 Eric Botcazou + + * tree-tailcall.c (pass_tail_recursion): Use gate_tail_calls too. + +2006-04-23 Mark Mitchell + + * print-tree.c (print_node): Print DECL_BIT_FIELD_TYPE. + + * configure.ac: Completely disregard languages that are not + enabled. + * configure: Regenerated. + + PR c++/26534 + * c-common.h (c_build_bitfield_integer_type): Declare. + * c-decl.c (c_build_bitfield_integer_type): Move to ... + * c-common.c (c_build_bitfield_integer_type): ... here. + +2006-04-23 Roger Sayle + + PR target/21283 + * config/fr30/fr30.md (define_split): Avoid calling gen_lowpart on + a SImode SUBREG of a floating point register after no_new_pseudos. + +2006-04-23 Roger Sayle + + * config/fr30/fr30.md (addsi_small_int): Use REGNO_PTR_FRAME_P to + identify potentially eliminable registers to additionally catch + VIRTUAL_INCOMING_ARGS_REGNUM. + (addsi3): Update the conditions on when to use addsi_small_int. + +2006-04-23 Roger Sayle + + PR target/16641 + * config/fr30/fr30.h (GO_IF_LEGITIMATE_ADDRESS): Check REGNO for + STACK_POINTER_RTX and FRAME_POINTER_RTX instead of comparing the + rtx to stack_pointer_rtx or frame_pointer_rtx directly. + +2006-04-23 Eric Botcazou + + * fold-const.c (range_predecessor): Use operand_equal_p + as the predicate for equality. + (range_successor): Likewise. + +2006-04-22 Kazu Hirata + + Revert: + * config/soft-fp/op-common.h: Fix a typo. + +2006-04-22 Frank Ch. Eigler + + PR libmudflap/26864 + * common.opt (flag_mudflap_threads): Overload flag_mudflap. + * tree-mudflap.c (flag_mudflap_threads): Derive from flag_mudflap. + +2006-04-22 Kazu Hirata + + * config/soft-fp/op-common.h, double-int.h, tree-ssa-dom.c: + Fix comment typos. + * doc/tm.texi: Fix a typo. + +2006-04-21 Geoffrey Keating + + * dwarf2out.c (struct die_struct): Document that die_sib makes + a circular linked list. + (FOR_EACH_CHILD): New. + (reverse_die_lists): Delete. + (reverse_all_dies): Delete. + (add_dwarf_attr): Correct documentation. + (remove_child_with_prev): New. + (remove_child_TAG): Update for change to die_struct, use + remove_child_with_prev. + (add_child_die): Update for change to die_struct. + (splice_child_die): Use remove_child_with_prev and add_child_die. + (print_die): Use FOR_EACH_CHILD. + (die_checksum): Likewise. + (assign_symbol_names): Likewise. + (output_location_lists): Likewise. + (build_abbrev_table): Likewise. + (calc_die_sizes): Likewise. + (mark_dies): Likewise. + (unmark_dies): Likewise. + (unmark_all_dies): Likewise. + (output_die): Likewise. + (prune_unused_types_mark): Likewise. + (prune_unused_types_walk): Likewise. + (same_die_p): Update for change to die_struct. + (break_out_includes): Likewise. + (prune_unused_types_prune): Likewise. + (add_sibling_attributes): Use FOR_EACH_CHILD, simplify logic. + (prune_unmark_dies): Use FOR_EACH_CHILD, don't clear die_mark if + it's already clear. + (dwarf2out_finish): Don't call reverse_all_dies. + +2006-04-21 Eric Christopher + + * df-core.c, tree-outof-ssa.c, config/i386/i386.c: Fix typos + in comments and function names. + +2006-04-21 Volker Reichelt + + PR c/25875 + * c-typeck.c (digest_init): Robustify. + + * c-typeck.c (pop_init_level): Simplify. + +2006-04-21 Steve Ellcey + + * config/pa/t-pa64: Add dependencies on $(GCC_PASSES). + +2006-04-21 Paul Brook + + * config/arm/arm.c (arm_override_options): Error on iWMMXt and + hardware floating point. + +2006-04-21 David Edelsohn + + * config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Add sfp to + NON_FLOAT_REGS. + +2006-04-21 Nick Clifton + + * config/sh/t-elf (EXTRA_MULTILIB_PARTS): Include + OPT_EXTRA_PARTS. + +2006-04-21 Alan Modra + + PR target/27230 + * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Use + C++ lang type in traceback table for Objective-C++. + + * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Update comment. + +2006-04-20 H.J. Lu + + * config/i386/i386.c (asm_preferred_eh_data_format): Reformat. + +2006-04-20 Volker Reichelt + + PR mudflap/26789 + * tree-mudflap.c (mudflap_finish_file): Skip function when there + were errors. Remove check for erroneous objects. + +2006-04-20 Jeff Law + + PR tree-optimization/26854 + * tree-ssa-dse.c (dse_optimize_stmt): Avoid num_imm_uses when + checking for zero or one use. + * tree-ssa-dom.c (propagate_rhs_into_lhs): Similarly. + * tree-cfgcleanup.c (merge_phi_nodes): Similarly. + * tree-ssa-reassoc.c (negate_value): Similarly. + (reassociate_bb): Similarly. + +2006-04-20 Jakub Jelinek + + PR C/27558 + * c-pretty-print.c (pp_c_direct_abstract_declarator): Print + TYPE_MAX_VALUE (TYPE_DOMAIN (t)) + 1 for ARRAY_TYPE rather + than plain TYPE_MAX_VALUE (TYPE_DOMAIN (t)). + +2006-04-20 Alan Modra + + * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Consume all + fp regs if the last fp arg doesn't fit in regs. + +2006-04-20 Kaz Kojima + + PR target/27182 + * config/sh/sh.md (movsicc_true+3): Tweak condition for the case + that the last insn has the REG_INC note. + +2006-04-19 Carlos O'Donell + Nathan Sidwell + + PR c/26774 + * stor-layout.c (update_alignment_for_field): Do not align + ERROR_MARK nodes. + (place_union_field): Place union field at the start of the union. + (place_field): Move ERROR_MARK check later, and use the current + allocation position to maintain monotonicity. + +2006-04-19 Zdenek Dvorak + + * dominance.c: Include timevar.h. + (calculate_dominance_info): Use TV_DOMINANCE. + * timevar.def (TV_DOMINANCE): New timevar. + * Makefile.in (dominance.o): Add TIMEVAR_H dependency. + +2006-04-19 Andreas Krebbel + + PR rtl-optimization/14261 + * ifcvt.c (noce_emit_move_insn): Call store_bit_field if the resulting + move would be an INSV insn. + (noce_process_if_block): Don't optimize if the destination is a + ZERO_EXTRACT which can't be handled by noce_emit_move_insn. + +2006-04-19 Andreas Krebbel + + * config/s390/s390.md: Add comments with the instructions emitted + by an insn pattern if macros are used. + +2006-04-19 Alan Modra + + PR rtl-optimization/26026 + * fold-const.c (fold_binary): Optimize div and mod where the divisor + is a known power of two shifted left a variable amount. + +2006-04-18 Geoffrey Keating + + * dwarf2out.c (prune_unused_types_update_strings): Don't add strings + to hash table twice when the debug_str section has SECTION_MERGE. + +2006-04-18 Joseph S. Myers + + * config/soft-fp: New directory. From glibc. + * config/soft-fp/t-softfp: New. + * config/soft-fp/README: New. + * mklibgcc.in: Handle LIB2FUNCS_EXCLUDE. + * Makefile.in (LIB2FUNCS_EXCLUDE, SFP_MACHINE): New. + (libgcc.mk): Pass LIB2FUNCS_EXCLUDE. + (LIBGCC_DEPS): Add $(SFP_MACHINE). + * config.gcc: Use rs6000/t-fprules-fpbit or + rs6000/t-fprules-softfp and soft-fp/t-softfp together with + rs6000/t-fprules. + * config/rs6000/sfp-machine.h: New. Based on glibc. + * config/rs6000/t-fprules-fpbit, config/rs6000/t-fprules-softfp: + New. + * config/rs6000/t-fprules: Remove fp-bit rules. + * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Use +=. + * config/rs6000/t-linux64: Likewise. Remove duplicates from + LIB2FUNCS_EXTRA. Remove fp-bit rules. + (softfp_wrap_start, softfp_wrap_end): New. + +2006-04-18 DJ Delorie + + * config/m32c/m32c.h (PTRDIFF_TYPE): Define. + +2006-04-18 Devang Patel + + * doc/invoke.texi (-Wuninitialized): Clarify -O connection. + +2006-04-18 Nick Clifton + + * config/sh/t-symbian: Add rule to build sh-c.o + * config/sh/symbian.c (sh_symbian_mark_dllexport): Replace use + of DECL_NON_ADDR_CONST_P with DECL_DLLIMPORT_P. + (sh_symbian_encode_section_info): Likewise. + +2006-04-18 Andreas Krebbel + + * builtins.c (expand_builtin_strcmp): Cover label definition of + do_libcall with HAVE_cmpstrnsi. + +2006-04-18 Kazu Hirata + + * function.c (temp_slots_at_level, max_slot_level): Use VEC + instead of VARRAY. + * function.h (temp_slot_p): New. + (function): Change the type of x_used_temp_slots to + VEC(temp_slot_p,gc) *. + +2006-04-18 Nick Clifton + + * config/mmix/mmix.h (OPTIMIZATION_OPTIONS): Remove reference to + flag_strength_reduce. + + * doc/tm.texi (TARGET_SECTION_TYPE_FLAGS): Fix typo. + +2006-04-18 Paolo Bonzini + + PR target/27117 + + Partial revert of revision 112637 + 2006-04-03 Paolo Bonzini + Dale Johannesen + + PR target/19653 + * regclass.c (struct reg_pref): Update documentation. + (regclass): Set prefclass to NO_REGS if memory is the best option. + (record_reg_classes): Cope with a prefclass set to NO_REGS. + +2006-04-18 Paolo Bonzini + + PR tree-optimization/26821 + * tree-ssa-math-opts.c (get_constant_one): New. + (insert_reciprocals): Use it. + +2006-04-17 Geoffrey Keating + + * dwarf2out.c (free_AT): Delete. + (remove_AT): Update string ref counts. + (remove_child_TAG): Don't call free_die. + (free_die): Delete. + (break_out_includes): Don't call free_die on DW_TAG_GNU_BINCL + or DW_TAG_GNU_EINCL. + (prune_unused_types_walk_attribs): Reset string refcounts. + (prune_unused_types_update_strings): New. + (prune_unused_types_prune): Don't make unnecessary stores. Don't + call free_die. Do call prune_unused_types_update_strings. + (prune_unused_types): Empty debug_str_hash. + +2006-04-17 Roger Sayle + + * expr.c (expand_assignment): Optimize away no-op moves where the + source and destination are equal and have no side-effects. + +2006-04-17 Richard Guenther + + PR target/26826 + * reload.c (push_reload): Guard calls to get_secondary_mem + for memory subregs. + +2006-04-16 Kazu Hirata + + * alias.c (reg_base_value, old_reg_base_value): Change the + type to VEC(rtx,gc) *. + (REG_BASE_VALUE, find_base_value, record_set, + init_alias_analysis): Use VEC instead of VARRAY. + + * alias.c (alias_sets): Change the type to + VEC(alias_set_entry,gc) *. + (get_alias_set_entry, new_alias_set, record_alias_subset): Use + VEC instead of VARRAY. + (last_alias_set): Remove. + + * cgraph.h (cgraph_edge_p): New. + Update the prototype of cgraph_function_versioning. + * cgraphunit.c (cgraph_copy_node_for_versioning, + cgraph_function_versioning): Use VEC instead of VARRAY. + * ipa-cp.c (ipcp_insert_stage): Likewise. + +2006-04-16 Roger Sayle + + PR target/26961 + * fold-const.c (fold_ternary): When converting "A ? B : C" into either + "A op B" or "A op C", we may need to convert A to the type of B and C. + +2006-04-16 Adam Nemet + + * target.h (struct gcc_target): Add mode_rep_extended. + * rtlanal.c (num_sign_bit_copies_in_rep): New global. + (init_num_sign_bit_copies_in_rep): Initialize it using + mode_rep_extended. + (truncate_to_mode): Use it. + (init_rtlanal): Call init_num_sign_bit_copies_in_rep. + * targhooks.h (default_mode_rep_extended): Declare it. + * targhooks.c (default_mode_rep_extended): Define it. + * target-def.h (TARGET_MODE_REP_EXTENDED): New macro. Default to + default_mode_rep_extended. + (TARGET_INITIALIZER): Include it. + * doc/tm.texi (Misc): Document it. + * config/mips/mips.c (TARGET_TRUNCATED_TO_MODE): Override it. + (mips_truncated_to_mode): New function. + +2006-04-16 Roger Sayle + + PR middle-end/25474 + * expr.c (compress_float_constant): Copy the narrow constant into + a new pseudo before extending it to its final width. + +2006-04-16 Roger Sayle + Andrew Pinski + Dale Johannesen + + PR target/24076 + * config/i386/i386.c (ix86_expand_vector_init_duplicate): Add + special case code to implement V8HImode and V16QImode with SSE2. + +2006-04-15 Roger Sayle + + * config/i386/i386.c (ix86_va_start): Ensure all integer constant + trees are constructed with a suitable tree type. + +2006-04-15 Roger Sayle + + * tree.c (integer_zerop): Ignore TREE_CONSTANT_OVERFLOW. + (integer_onep): Likewise. + (integer_all_onesp): Likewise. + (integer_pow2p): Likewise. + (integer_nonzerop): Likewise. + (real_zerop): Likewise. + (real_onep): Likewise. + (real_twop): Likewise. + (real_minus_onep): Likewise. + (int_size_in_bytes): Likewise. + (host_integerp): Likewise. + +2006-04-15 Kazu Hirata + + * cfgcleanup.c, config/dfp-bit.c, expr.c, fold-const.c, + jump.c, mips-tfile.c, omp-low.c, sched-int.h, + tree-ssa-loop-prefetch.c, tree-vrp.c: Fix comment typos. + + * tree-ssa-structalias.h (alias_info): Remove num_references. + +2006-04-15 John David Anglin + + * pa.md (output_bb patterns): Shorten long branch alternatives by 4. + (output_bvb patterns): Likewise. + * pa.c (output_bb): Use 'bb' insn for long branch case. + (output_bvb): Likewise use '{bvb|bb}' for long branch case. + (output_dbra): Use '{comb|cmpb}' for long branch case for alternative + 1. Correct length operand for alternatives 1 and 2. + (output_movb): Use '{comb|cmpb}' for long branch case for alternatives + 1, 2 and 3. Correct length operand for alternatives 1, 2 and 3. + +2006-04-14 Roger Sayle + + * tree-cfg.c (make_edges, make_omp_sections_edges, move_stmt_r, + is_ctrl_altering_stmt): Reinstate RTH's changes from r112935 that + were accidentally reverted by r112959. + +2006-04-15 Jakub Jelinek + + PR middle-end/26823 + * except.h (eh_region_outermost): New prototype. + * except.c (eh_region_outermost): New function. + * tree-cfg.c (find_outermost_region_in_block): Use it. + +2006-04-14 Kazu Hirata + + * local-alloc.c (rest_of_handle_local_alloc): Use VEC instead + of VARRAY. + * reload1.c (reg_equiv_memory_loc_varray): Rename to + reg_equiv_memory_loc_vec. Change the type to VEC(rtx,gc) *. + (init_reload, reload): Use VEC instead of VARRAY. + * reload.h: Update the prototype for + reg_equiv_memory_loc_varray. + +2006-04-14 Alexey Starovoytov + Eric Botcazou + + * config/sparc/sparc.c (emit_and_preserve): Allocate space for the + register save area. + +2005-04-13 Uros Bizjak + + PR middle-end/27134 + * builtins.c (expand_builtin_int_roundingfn): Use expand_normal() + to expand fallback builtin function call. + +2006-04-14 Alan Modra + + PR middle-end/27095 + * builtins.c: (expand_builtin_memset): Stabilize args before expansion + and emit libcall here in case the builtin fails. + (expand_builtin_strcmp): Always emit the libcall here on failure. + +2006-04-14 Kazu Hirata + + * basic-block.h (REG_BASIC_BLOCK): Use VEC instead of VARRAY. + * flow.c (reg_n_info): Change the type to + VEC(reg_info_p,heap) *. + * regclass.c (allocate_reg_info, free_reg_info): Use VEC + instead of VARRAY. + * regs.h (reg_info_p): New. + (REG_N_REFS, REG_FREQ, REG_N_SETS, REG_N_DEATHS, + REG_N_CALLS_CROSSED, REG_N_THROWING_CALLS_CROSSED, + REG_LIVE_LENGTH, REGNO_FIRST_UID, REGNO_LAST_UID): Use VEC + instead of VARRAY. + +2006-04-13 Eric Botcazou + + * params.def (PARAM_MAX_SCHED_READY_INSNS): New parameter, + defaulting to 100. + * params.h (MAX_SCHED_READY_INSNS): New macro. + * haifa-sched.c: (queue_to_ready): Re-queue insns for the next cycle + past MAX_SCHED_READY_INSNS during the first scheduling pass. + (schedule_block): Delay insns past MAX_SCHED_READY_INSNS in + the ready list for 1 cycle during the first scheduling pass. + * doc/invoke.texi (--param): New parameter max-sched-ready-insns. + +2006-04-13 Richard Henderson + + PR libgomp/26651 + * gimple-low.c (lower_omp_directive): Remove dead code. + (lower_stmt): Do nothing except for openmp, except for OMP_PARALLEL. + * gimplify.c (gimplify_expr): Update for OMP_RETURN, OMP_CONTINUE. + * omp-low.c (struct omp_region): Move to tree-flow.h. + (root_omp_region): Export. + (omp_regions, lookup_omp_region): Remove. + (determine_parallel_type): Update for struct omp_region changes. + (dump_omp_region): Dump regions with block numbers. + (new_omp_region): Take type and block instead of stmt; malloc + instead of ggc. + (free_omp_region_1, free_omp_regions): New. + (expand_parallel_call): Take entry_stmt as argument; update for + changes to omp_region. + (remove_exit_barrier): Rewrite to update OMP_RETURN_NOWAIT. + (remove_exit_barriers): New. + (expand_omp_parallel): Update for struct omp_region changes. + (expand_omp_synch): Likewise. + (expand_omp): Likewise. + (expand_omp_for_static_nochunk): Likewise; update for OMP_CONTINUE. + (expand_omp_for_static_chunk): Likewise. + (expand_omp_for): Likewise. + (expand_omp_for_generic): Likewise; emit the proper GOMP_loop_end call. + (expand_omp_sections): Similarly, with GOMP_sections_end. + (expand_omp_single): New. + (build_omp_regions_1): Update for OMP_CONTINUE. + (execute_expand_omp): Call remove_exit_barriers, free_omp_regions. + (lower_omp_sections): Expand with OMP_CONTINUE, do not collect + OMP_SECTIONS_SECTIONS. + (lower_omp_single_simple): Don't emit barrier here. + (lower_omp_single_copy): Likewise. + (lower_omp_single): Fix bindings, and lower to straightline now. + (lower_omp_master, lower_omp_ordered): Likewise. + (lower_omp_critical): Likewise. + (lower_omp_for): Likewise. Emit OMP_CONTINUE. + * tree-cfg.c (make_edges): Collect an omp_region tree, use it for + omp edges, free it afterward. + (make_omp_sections_edges): Remove. + (is_ctrl_altering_stmt): Don't bother checking flag_openmp. + (move_stmt_r): Handle OMP_CONTINUE. + * tree-flow.h (struct omp_region): Move from omp-low.c. Switch + statement pointers to basic blocks. Add type member. + (root_omp_region, new_omp_region, free_omp_regions): Declare. + * tree-gimple.c (is_gimple_stmt): Handle OMP_RETURN, OMP_CONTINUE. + * tree-inline.c (estimate_num_insns_1): Likewise. + * tree-pretty-print.c (dump_generic_node): Likewise. + * tree-ssa-operands.c (get_expr_operands): Likewise. + * tree.def (OMP_SECTIONS): Remove OMP_SECTIONS_SECTIONS operand. + (OMP_RETURN): Rename from OMP_RETURN_EXPR. + (OMP_CONTINUE): New. + * tree.h (OMP_DIRECTIVE_P): Add OMP_CONTINUE. + (OMP_SECTIONS_SECTIONS): Remove. + (OMP_SECTION_LAST): New. + (OMP_RETURN_NOWAIT): New. + +2006-04-13 Roger Sayle + + * fold-const.c (native_encode_vector, native_interpret_real): + Correct obvious mistakes in the previous check-in. + +2006-04-13 Roger Sayle + + * fold-const.c (native_encode_expr): New function to encode + the target representation of an INTEGER_CST, REAL_CST, COMPLEX_CST + or VECTOR_CST into a specified buffer. + (native_encode_int): New function. + (native_encode_real): New function. + (native_encode_complex): New function. + (native_encode_vector): New function. + (native_interpret_expr): Inverse of native_encode_expr to convert + a target representation into an INTEGER_CST, REAL_CST etc... + (native_interpret_int): New function. + (native_interpret_real): New function. + (native_interpret_complex): New function. + (native_interpret_vector): New function. + (fold_view_convert_expr): New function to constant fold/evaluate + a VIEW_CONVERT_EXPR of a suitable constant expression. + (fold_unary) : Call fold_view_convert_expr. + Change call of build1 to fold_build1 when constructing a + VIEW_CONVERT_EXPR. + +2006-04-13 Paolo Bonzini + Ulrich Weigand + + PR target/27006 + * config/rs6000/rs6000.h (EASY_VECTOR_15_ADD_SELF): Require n + to be even. + +2006-04-13 Alan Modra + + PR target/26459 + * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't + optimize to lo_sum for DFmode if !TARGET_FPRS. + +2006-04-12 Kazu Hirata + + * tree-ssa-alias.c (set_initial_properties, init_alias_info, + delete_alias_info, compute_flow_sensitive_aliasing, + group_aliases): Use VEC instead of VARRAY. + * tree-ssa-structalias.c (update_alias_info): Likewise. + * tree-ssa-structalias.h (alias_info): Change the type of + processed_ptrs to VEC(tree,heap) *. + +2006-04-12 J"orn Rennecke + + PR target/27060 + * config/sh/lib1funcs.h: New file, broken out of: + * config/sh/lib1funcs.asm. + * config/sh/lib1funcs.h (DR00, DR01, DR20, DR21, DR40, DR41): + New macros. + * config/sh/lib1funcs.asm (udivsi3_i4): Use them. + * config/sh/lib1funcs-Os-4-200.asm: New file. + * config/sh/embed-elf.h (LIBGCC_SPEC): Use -lgcc-Os-4-200. + * config/sh/t-sh (OPT_EXTRA_PARTS): New variable. + (EXTRA_MULTILIB_PARTS): Include it. + ($(T)sdivsi3_i4i-Os-4-200.o): New rule. + ($(T)udivsi3_i4i-Os-4-200.o, $(T)libgcc-Os-4-200.a): Likewise. + * config/sh/t-superh (EXTRA_MULTILIB_PARTS): Include OPT_EXTRA_PARTS. + * config/sh/sh.h (OVERRIDE_OPTIONS): Recognize -mdiv=call-table for + TARGET_SH2. + +2006-04-12 Kazu Hirata + + * Makefile.in (TREE_SSA_LIVE_H): Add vecprim.h. + * tree-ssa-live.c (tpa_init, tpa_remove_partition, tpa_delete, + tpa_compact, root_var_init, type_var_init): Use VEC instead of + VARRAY. + * tree-ssa-live.h: Include vecprim.h. + (tree_partition_associator_d): Change the type of + first_partition to VEC(int,heap) *. + (tpa_first_partition): Use VEC instead of VARRAY. + + * Makefile.in (GTFILES): Move functions.h after tree.h. + * function.c (reset_block_changes, record_block_change, + check_block_change, free_block_changes): Use VEC instead of + VARRAY. + * function.h (function): Change the type of + ib_boundaries_block to VEC(tree,gc) *. + * tree-inline.c (copy_cfg_body): Initialize + ib_boundaries_block to NULL instead of (varray_type) 0. + +2006-04-12 Roger Sayle + + * expr.c (emit_group_store): Correct operand order in call to + subreg_lowpart_offset. Always create paradoxical SUBREGs with + a SUBREG_BYTE of zero. + +2006-04-12 Richard Guenther + + * profile.c (compute_branch_probabilities): Remove code + encapsulated in !ir_type (), which are remanents of the + removed RTL profiling code. + * rtl-profile.c: Remove. + +2006-04-12 Alan Modra + + * config/rs6000/rs6000.c (rs6000_mixed_function_arg): Update + magic NULL_RTX comment. + (function_arg): Store entire fp arg to mem if any part should go + on stack. + (rs6000_arg_partial_bytes): Adjust for above change. + +2006-04-11 Roger Sayle + + * dwarf2out.c (output_call_frame_info): Create debug_frame_section + if it hasn't been initialized by dwarf2out_init. + +2006-04-11 John David Anglin + + * pa.md (MAX_12BIT_OFFSET, MAX_17BIT_OFFSET): Define and use new + symbolic constants in branch patterns. + +2006-04-11 Roger Sayle + + * caller-save.c: #include "addresses.h" after #include "tm_p.h". + +2006-04-11 Richard Sandiford + + PR rtl-optimization/27073 + * gcse.c (try_replace_reg): Revert last change. Continue to search + for both REG_EQUAL and REG_EQUIV notes, but only perform replacements + on the former. + +2006-04-11 Eric Botcazou + + * config/sparc/sparc.c (function_arg_slotno) : Handle + aggregate types other than record and union types. + (function_arg): Likewise. + (function_arg_pass_by_reference): In 64-bit mode, return 0 for + small arrays. + (function_value): In 64-bit mode, return objects that require it + in FP registers. + +2006-04-11 Roger Sayle + + * dwarf2out.c (premark_used_types): Remove problematic prototype. + +2006-04-11 Jakub Jelinek + + * gcc.c (LINK_COMMAND_SPEC): Move link_gomp after %o. + +2006-04-03 Jeff Law + + PR/27087 + * tree-ssa-copy.c (may_propagate_copy): Test flow sensitive + alias information too. + +2006-04-10 Mike Frysinger + + * Makefile.in (gcc-cross): Add $(exeext) to target name. + +2006-04-10 Aldy Hernandez + + PR/21391 + * dwarf2out.c (struct die_struct): Add die_perennial_p field. + (premark_used_types_helper): New. + (premark_used_types): New. + (gen_subprogram_die): Call premark_used_types. + (prune_unused_types_walk): Do not prune perennial dies. + * function.c (used_types_insert): New. + * function.h (struct function): Add used_types_hash field. + (used_types_insert): Add prototype. + * Makefile.in (FUNCTION_H): Depend on HASHTAB_H. + * c-parser.c (c_parser_cast_expression): Save casted types in used + types hash table. + +2006-04-11 Mark Mitchell + + PR target/26459 + * config/rs6000/e500-double.h (SUB3TARGET_OVERRIDE_OPTIONS): Test + rs6000_explicit_options.float_gprs. + +2006-04-10 Roger Sayle + + * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Renamed + from ix86_expand_vector_init_low_nonzero. Take an additional + one_var argument indicating which element is non-zero. Support + one_var != 0 for V4SFmode and V4SImode by permuting the result. + (ix86_expand_vector_init): Call ix86_expand_vector_init_one_nonzero + with one_var instead of ix86_expand_vector_init_low_nonzero. + +2006-04-10 Kazu Hirata + + * Makefile.in (tree-into-ssa.o, tree-outof-ssa.o, + tree-ssa-live.o, tree-ssa-alias.o, function.o, df-problems.o, + global.o, cfglayout.o, lambda-code.o, reg-stack.o, + build/genextract.o): Depend on vecprim.h. + * cfglayout.c, df-problems.c, function.c, genextract.c, + global.c, lambda-code.c, reg-stack.c, tree-into-ssa.c, + tree-outof-ssa.c, tree-ssa-alias.c, tree-ssa-live.c: Include + vecprim.h. + * vecprim.h: New. + +2006-04-10 Geoffrey Keating + + * dwarf2out.c (struct dw_attr_struct): Remove dw_attr_next. + Declare VECs of this type. + (struct die_struct): Make field die_attr a VEC of dw_attr_struct. + (remove_children): Delete. + (add_dwarf_attr): Use VEC routines. + (add_AT_flag): Update for changes to add_dwarf_attr. + (add_AT_int): Likewise. + (add_AT_unsigned): Likewise. + (add_AT_long_long): Likewise. + (add_AT_vec): Likewise. + (add_AT_string): Likewise. + (add_AT_die_ref): Likewise. + (add_AT_fde_ref): Likewise. + (add_AT_loc): Likewise. + (add_AT_loc_list): Likewise. + (add_AT_addr): Likewise. + (add_AT_lbl_id): Likewise. + (add_AT_lineptr): Likewise. + (add_AT_macptr): Likewise. + (add_AT_offset): Likewise. + (add_AT_range_list): Likewise. + (get_AT): Use VEC_iterate. + (remove_AT): Use VEC_ordered_remove. + (free_die): Fold remove_children into here; have it use VEC_iterate. + (print_die): Use VEC_iterate on attrs. + (reverse_die_lists): Don't reverse attr lists. + (die_checksum): Use VEC_iterate on attrs. + (same_die_p): Likewise. + (output_location_lists): Likewise. + (build_abbrev_table): Likewise. + (size_of_die): Likewise. + (unmark_all_dies): Likewise. + (output_abbrev_section): Likewise. + (output_die): Likewise. + (prune_unused_types_walk_attribs): Likewise. + +2006-04-10 Eric Botcazou + + * doc/install.texi (*-*-solaris2*): Point to the configure page. + +2006-04-10 Jakub Jelinek + + PR debug/27057 + * dwarf2out.c (is_symbol_die): Return true also for namespaces. + +2006-04-09 Roger Sayle + + * expr.c (store_constructor): Don't bother clearing target if + we're about to assign a vector to it using vec_init_optab. + +2006-04-10 Daniel Berlin + + * tree-ssa-alias.c (lhs_may_store_to): New function. + (recalculate_used_alone): Handle LHS of calls. + +2006-04-09 John David Anglin + + PR target/27034 + PR target/26508 + * config.gcc (hppa*64*-*-hpux11*): Add 'libgcc_stub.a' to extra_parts. + * pa64-hpux.h (LIB_SPEC): Correct typo. Don't append milli.a. + (LINK_GCC_C_SEQUENCE_SPEC): Define. Append milli.a here. + (PA_CXA_FINALIZE_STUB, PA_JV_REGISTERCLASSES_STUB): Delete defines. + (PA_INIT_FINI_HACK): Rename to PA_CRTBEGIN_HACK. + (PA_CRTBEGIN_HACK): Ensure __do_global_ctors_aux is placed in text + section. Delete PA_CXA_FINALIZE_STUB and PA_JV_REGISTERCLASSES_STUB + stubs. Add ".align 8" directives before all ".dword" directives. + (GTHREAD_USE_WEAK): Revise comment. + (TARGET_ATTRIBUTE_WEAK): Define. + * pa/t-pa64 (LIBGCCSTUB_OBJS): Add new rules for stublib.c, rfi-stub.o, + dfi-stub.o, cxaf-stub.o and jvrc-stub.o. + * stublib.c: New file. + + PR target/26743 + PR target/11254 + PR target/10274 + * pa.md (cbranch patterns): Revise arguments used in calls to + output_cbranch, output_bb and output_bvd. Add long branch length + attributes. + (fbranch patterns): Handle long branches. + (jump): Revise length check. Revise arguments for output_lbranch call. + Add long branch length attributes. + (decrement_and_branch_until_zero): Add long branch length attributes. + (output_movb, output_parallel_addb and output_parallel_movb patterns): + Likewise. Revise arguments for output_parallel_addb and + output_parallel_movb calls. + * pa-protos.h (output_cbranch, output_lbranch, output_bb, output_bvb, + output_parallel_movb and output_parallel_addb): Update prototypes. + * pa.c (output_cbranch): Revise arguments. Correct handling of + nullification in long branches. + (output_lbranch): Add new argument to control extraction of delay + instruction. + (output_bb): Handle long branches. + (output_bvb, output_dbra, output_movb, output_parallel_movb, + output_parallel_addb): Likewise. + +2006-04-09 Richard Sandiford + + PR rtl-optimization/27073 + * gcse.c (try_replace_reg): Just propagate into REG_EQUAL notes, + not REG_EQUIVs. + +2006-04-08 Daniel Berlin + + * tree.h (tree_memory_tag): Add old_used_alone. + (SMT_OLD_USED_ALONE): New macro. + * tree-ssa-alias.c (recalculate_used_alone): Stop + marking things for renaming unnecessarily. + +2006-04-08 Kazu Hirata + + * builtins.c, config/arm/arm.c, config/i386/cygwin.h, + config/i386/i386.c, config/ia64/ia64.c, config/s390/fixdfdi.h, + config/sh/sh.c, config/sh/sh.h, df-scan.c, except.c, + haifa-sched.c, optabs.c, rtl.h, sched-deps.c, sched-int.h, + sched-rgn.c, tree-inline.h, tree-ssa-dom.c, + tree-ssa-loop-prefetch.c, tree-ssa-operands.c, + tree-vect-patterns.c, tree-vrp.c: Fix comment typos. Follow + spelling convensions. + * config/ia64/ia64.opt, doc/contrib.texi, doc/invoke.texi, + doc/passes.texi, doc/tm.texi, doc/tree-ssa.texi: Fix comment + typos. Follow spelling conventions. + +2006-04-07 DJ Delorie + + * config/m32c/m32c.c (m32c_function_arg): Structures are always + passed on the stack. + (m32c_init_cumulative_args): When a function returns a structure, + always pass the pointer to that return area on the stack. + (m32c_function_arg_advance): Don't increment the parameter number + if we're processing the returned structure pointer. + (pushm_info): Reverse order of registers. + +2006-04-07 Sebastian Pop + + * tree-ssa-loop-niter.c (inverse, number_of_iterations_ne, + assert_no_overflow_lt, assert_loop_rolls_lt, number_of_iterations_lt, + number_of_iterations_le, number_of_iterations_cond, find_loop_niter, + estimate_numbers_of_iterations_loop): Use build_int_cst instead of + build_int_cst_type. + * tree-chrec.c (chrec_fold_multiply_poly_poly, + chrec_fold_multiply): Same. + * tree-ssa-loop-ivopts.c (strip_offset_1, force_expr_to_var_cost, + force_expr_to_var_cost): Same. + * tree-mudflap.c (mf_xform_derefs_1): Same. + * tree-ssa-loop-prefetch.c (idx_analyze_ref): Same. + +2006-04-07 David Edelsohn + + * config/rs6000/rs6000.c (rs6000_rtx_costs) : Do not + treat CONST_DOUBLE as INTVAL. and64_2_operands require an extra + insn. + +2006-04-07 Jan Hubicka + + * ipa-inline.c (cgraph_early_inlining): Collect garbage. + +2006-04-07 Richard Guenther + + PR tree-optimization/26135 + * tree-ssa-copy.c (stmt_may_generate_copy): Handle memory + loads for store copy-prop. + (copy_prop_visit_stmt): Likewise. + +2006-04-05 Robert Millan + + * config/i386/linux.h: Add a comment to mark macros that are + being overriden in config/k*bsd-gnu.h. + * config/kfreebsd-gnu.h: Redefine GLIBC_DYNAMIC_LINKER instead of + DYNAMIC_LINKER. + * config/knetbsd-gnu.h: Ditto. + +2006-04-06 Jan Hubicka + + PR profile/20815 + PR profile/26399 + * coverage.c (coverage_checksum_string): Reorganize loop to not read + after buffer. + +2006-04-06 Mike Stump + + * builtins.c (expand_builtin_longjmp):Use #ifdef instead of #if + for HAVE_nonlocal_goto to be consistent. + (expand_builtin_nonlocal_goto): Likewise. + (expand_builtin_strcmp): Use #ifdef instead of #if + for HAVE_cmpstrnsi to be consistent. + +2006-04-05 DJ Delorie + + * config/m32c/m32c.h (INCOMING_FRAME_SP_OFFSET): Adjust for m16c + vs m32c. + +2006-04-05 Bernd Schmidt + + * config/bfin/bfin.c (bfin_legitimate_address_p): Disallow + got-relative addressing for anything but SImode. + + * config/bfin/lib1funcs.asm (modsi): P1/P2 can be call-clobbered + even if the calling function doesn't modify them. + +2006-04-05 Richard Guenther + + PR tree-optimization/26919 + * ipa-inline.c (cgraph_decide_inlining_incrementally): Fix argument + to cgraph_estimate_size_after_inlining. + +2006-04-05 Alan Modra + + * reload.c (find_dummy_reload): Fix typo in 2006-04-03 change. + +2006-04-05 Sebastian Pop + + PR tree-optimization/26996 + * tree-scalar-evolution.c (analyze_scalar_evolution_1): Don't analyze + VECTOR_TYPE variables. + +2006-04-05 Richard Guenther + + PR tree-optimization/26763 + * fold-const.c (fold_comparison): Move folding of + PTR + CST CMP PTR + CST ... + (fold_binary): ... here. Fold only for EQ_EXPR and NE_EXPR. + +2006-04-05 Gerald Pfeifer + + * doc/install.texi (Prerequisites): Refine some wording on + bootstrapping and ksh. + Move the version numbers of DejaGnu here from the testing section + and fix casing of names. + Fix markup and clarify wording for autogen requirements. + Refer to GCJ instead of just java. + Refer to SVN instead of CVS. + Describe diffutils as useful instead of necessary. + (Downloading the source): Refer to SVN instead of CVS. + Adjust a link to our web site accordingly. + (Configuration): Fix casing of Bison. + (Building): Refer to SVN instead of CVS. + Fix a sentence on the use of Bison and remove duplicate (and + incorrect) version number of Bison requirement. + Remove one redundant list of packages needed for building. + (Specific): Avoid reference to CVS. + +2006-04-04 Eric Christopher + + * config/rs6000/rs6000.c (TARGET_MS_BITFIELD_LAYOUT_P): Define. + (TARGET_USE_MS_BITFIELD_LAYOUT): Ditto. + (rs6000_handle_struct_attribute): New. + (rs6000_ms_bitfield_layout_p): Ditto. + +2006-04-04 Geoffrey Keating + + * config/darwin-crt3.c (atexit): Pass &__dso_handle rather than + NULL for dso parameter to atexit_common. + +2006-04-04 Eric Christopher + + * config/i386/i386.c (machopic_output_stub): Output \t + between instructions and operands. + +2006-04-04 David Edelsohn + + * config/rs6000/rs6000.c (num_insns_constant_wide): Change + satisfies_constraint_[IL] to explicit tests on value. + +2006-04-04 Sebastian Pop + + * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop, + set_nb_iterations_in_loop): Use build_int_cst instead of + build_int_cst_type. + * tree-data-ref.c (can_use_analyze_subscript_affine_affine): Use + build_int_cst instead of convert. + +2006-04-04 Carlos O'Donell + + * doc/tm.texi (TARGET_STRUCT_VALUE_RTX): Document + new value 2 for incoming. + * function.c (expand_function_start): Call struct_value_rtx + with incoming as 2. + * config/sparc/sparc.md: Comment updated_return. + * config/sparc/sparc.opt: Add -mstd-struct-return option. + * config/sparc/sparc.c (sparc_struct_value_rtx): Use standard + struct return if sparc_std_struct_return and incoming is 2. + (print_operand): Do not adjust return if + sparc_std_struct_return. + +2006-04-04 Roger Sayle + + * builtins.c (fold_builtin_sprintf): Use fold_convert instead of + convert in the middle-end. + * expr.c (store_expr, store_constructor, get_inner_reference, + expand_expr_real_1, string_constant, try_casesi, try_tablejump): + Likewise. + * tree.c (build_range_type): Likewise. + +2006-04-04 Tom Tromey + + * doc/install.texi (Prerequisites): Mention jar. + +2006-04-04 Daniel Berlin + + * doc/tree-ssa.texi (Preserving the virtual ssa form): New + subsection. + +2006-04-04 Matthias Klose + + * Makefile.in (unprotoize.o): Same dependencies as for protoize.o. + + PR bootstrap/26764 + PR bootstrap/27334 + * Makefile.in (s-macro_list): Conform to POSIX rules in single quoted + strings. + +2006-04-03 Geoffrey Keating + + * doc/extend.texi (Function Attributes): Rewrite visibility + attribute documentation. + * doc/invoke.texi (C++ Dialect Options): Rewrite + -fvisibility-inlines-hidden documentation to describe something + entirely different, although in practise compatible. + (Code Gen Options): Warn about system headers in -fvisibility= + documentation. + + * doc/extend.texi (Other Builtins): Document that + __builtin_nan is a compile-time constant only when its argument + is valid. + +2006-04-03 Adam Nemet + + * simplify-rtx.c (simplify_unary_operation_1) : When + trying to remove TRUNCATE check if all bits outside the new mode + are identical to the sign bit. + +2006-04-03 Jeff Law + + * tree-ssa-dom.c (propagate_rhs_into_lhs): Avoid useless folding + and operand scanning in some common cases. + +2006-04-03 Paolo Bonzini + Dale Johannesen + + PR target/19653 + * regclass.c (struct reg_pref): Update documentation. + (regclass): Set prefclass to NO_REGS if memory is the best option. + (record_reg_classes): Cope with a prefclass set to NO_REGS. + * reload.c (find_reloads): Take PREFERRED_OUTPUT_RELOAD_CLASS + into account. For non-registers, equate an empty preferred + reload class to a `!' in the constraint; move the if clause to + do so after those that reject the insn. + (push_reload): Allow PREFERRED_*_RELOAD_CLASS to liberally + return NO_REGS. + (find_dummy_reload): Likewise. + * doc/tm.texi (Register Classes): Document what it means + if PREFERRED_*_RELOAD_CLASS return NO_REGS. + * config/i386/i386.c (ix86_preferred_reload_class): Force + using SSE registers (and return NO_REGS for floating-point + constants) if math is done with SSE. + (ix86_preferred_output_reload_class): New. + * config/i386/i386-protos.h (ix86_preferred_output_reload_class): New. + * config/i386/i386.h (PREFERRED_OUTPUT_RELOAD_CLASS): New. + * config/i386/i386.md: Remove # register preferences. + +2006-04-02 Sebastian Pop + + PR bootstrap/26992 + * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop, + chrec_is_positive, set_nb_iterations_in_loop): Use a variable for + the type of nb_iter. + (instantiate_parameters_1): Convert the operands before calling + chrec_fold_minus, chrec_fold_plus, or chrec_fold_multiply. + * tree-data-ref.c (can_use_analyze_subscript_affine_affine): Same. + +2006-04-02 Roger Sayle + + * builtins.c (dummy_object): Use build_int_cst instead of convert. + * tree-ssa-ccp.c (maybe_fold_stmt_addition): Use fold_convert + instead of convert. + * dojump.c (do_jump): Likewise. + * expr.h (ADD_PARM_SIZE, SUB_PARM_SIZE, ARGS_SIZE_TREE): Likewise. + * gimplify.c (gimple_boolify, gimplify_init_constructor, + gimplify_boolean_expr): Likewise. + * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise. + * varasm.c (array_size_for_constructor): Likewise. + * tree-object-size.c (compute_object_offset): Likewise. + +2006-04-02 Roger Sayle + + PR middle-end/26977 + * expr.c (emit_group_store): Check whether simplify_gen_subreg returns + NULL_RTX, indicating it couldn't create a valid paradoxical subreg. + +2006-04-02 Sebastian Pop + + PR tree-optimization/26939 + * tree-chrec.c (chrec_merge): Use eq_evolutions_p. + +2006-04-02 Sebastian Pop + + * tree-scalar-evolution.c (add_to_evolution_1): Pass an extra argument + at_stmt. Convert the type of operands before calling + build_polynomial_chrec. + (add_to_evolution): Pass an extra argument at_stmt. Adjust the call to + add_to_evolution_1. + (follow_ssa_edge_in_rhs): Adjust call to add_to_evolution. + (instantiate_parameters_1): Convert the type of operands before calling + build_polynomial_chrec. + * tree-chrec.c (chrec_fold_poly_cst, chrec_fold_plus_poly_poly, + chrec_fold_multiply_poly_poly, chrec_replace_initial_condition, + reset_evolution_in_loop): Insert asserts to check the types of the + operands. + (chrec_type): Moved... + (eq_evolutions_p): Use operand_equal_p. + * tree-chrec.h (build_polynomial_chrec): Insert an assert to check + the types of the operands. + (chrec_type): ...here. + * tree-data-ref.c (create_data_ref): Convert the operands before + calling chrec_replace_initial_condition. + (same_access_functions, analyze_subscript_affine_affine, + analyze_miv_subscript, all_chrecs_equal_p): Use eq_evolutions_p. + (compute_subscript_distance, analyze_ziv_subscript, + analyze_siv_subscript_cst_affine, compute_overlap_steps_for_affine_1_2, + analyze_miv_subscript): Convert the operands before calling + chrec_fold_minus or chrec_fold_plus. + +2006-04-02 Sebastian Pop + + * tree-data-ref.c (compute_all_dependences): Use a pointer to + the dependence_relations vector. + (compute_data_dependences_for_loop): Adjust call to + compute_all_dependences. + +2006-04-01 Roger Sayle + Richard Henderson + + * gimplify.c (gimplify_scan_omp_clauses) : Call + gimple_boolify on the condition before calling gimplify_expr. + +2006-03-31 Bob Wilson + + * config/xtensa/lib1funcs.asm: Rename abi_entry/abi_return macros + to leaf_entry/leaf_return. Change leaf_entry to add 16 bytes to + the frame size. Update to use the new macros. + * config/xtensa/ieee754-sf.S: Use new leaf_entry/leaf_return macros. + * config/xtensa/ieee754-df.S: Likewise. + +2006-03-31 Richard Henderson + + * tree-cfg.c (make_ctrl_stmt_edges, make_exit_edges): Merge into... + (make_edges): ... here. Control fallthru creation with a local + variable. Do not play with fake edges. + (make_omp_sections_edges): Don't set EDGE_ABNORMAL. + (make_goto_expr_edges): Don't play with fake edges. Make for_call + a boolean. + +2006-04-01 Joseph S. Myers + + * dwarf2.h (DW64_CIE_ID): Define. + * dwarf2out.c (DWARF_CIE_ID): Define. + (output_call_frame_info): Output 0xffffffff before standard 8-byte + length header. Use DWARF_CIE_ID. + (value_format): Use DW_FORM_data4 or DW_FORM_data8 for + dw_val_class_loc_list depending on DWARF_OFFSET_SIZE. + +2006-03-31 Kaz Kojima + + * config/sh/linux-atomic.asm: New file. + * config/sh/t-linux (LIB2FUNCS_EXTRA): Add linux-atomic.asm. + +2006-03-31 DJ Delorie + + * config/m32c/cond.md: Set condition flags properly throughout. + * config/m32c/minmax.md: Likewise. + * config/m32c/prologue.md: Likewise. + * config/m32c/bitops.md: Likewise. + * config/m32c/muldiv.md: Likewise. + * config/m32c/mov.md: Likewise. + * config/m32c/addsub.md: Likewise. + * config/m32c/m32c.md: Likewise. + * config/m32c/jump.md: Likewise. + * config/m32c/shift.md: Likewise. + + * config/m32c/cond.md (cmp): Call m32c_output_compare to + conditionally output the pattern for this. + * config/m32c/m32c.c (flags_needed_for_conditional): New. + (m32c_compare_redundant): New. + (m32c_output_compare): New. + * config/m32c/m32c-protos.h (m32c_output_compare): New. + + * config/m32c/m32c.c (m32c_prepare_shift): Fix logic to clobber + dest, not src. Allow other 4-byte modes. + +2006-03-30 Denis Chertykov + + * doc/md.texi: Refer to avr/constraints.md instead of + avr/avr.h. + +2006-03-30 Roger Sayle + + * expr.c (emit_group_store): Make BYTEPOS a HOST_WIDE_INT to + signed vs. unsigned comparison failures on some hosts. + +2006-03-31 Alan Modra + + PR target/26459 + * config/rs6000/rs6000.h (CANNOT_CHANGE_MODE_CLASS): Limit 2003-12-08 + change to FLOAT_REGS. + + * config/rs6000/rs6000.c (rs6000_explicit_options): Add ieee. + (rs6000_override_options): Use it. + (rs6000_handle_option): Set it. Set rs6000_explicit_options.abi + only for -mabi=spe/no-spe and -mabi=altivec. + +2006-03-30 Geoffrey Keating + + * config/darwin.h (LINK_COMMAND_SPEC): Don't try to protect %S with + !Zdynamiclib. + +2006-03-30 Carlos O'Donell + + * Makefile.in: Rename docdir to gcc_docdir. + +2006-03-30 Roger Sayle + + PR target/17959 + * expr.c (emit_group_store): Optimize group stores into a pseudo + register by using a paradoxical subreg to initialize the destination + if the first or last member of the group specifies a "low part". + +2006-03-30 Maxim Kuvyrkov + + PR target/26734 + * rtl.def (DEPS_LIST): Change type of the second operand to 'int'. + * target.h (struct gcc_target.speculate_insn): Change type of the + second parameter to 'int'. + * lists.c (alloc_DEPS_LIST): Change signature. Update reference to + the second operand of the DEPS_LIST. + (copy_DEPS_LIST_list): Update reference to the second operand of the + DEPS_LIST. + * rtl.h (alloc_DEPS_LIST): Update signature. + * sched-int.h (ds_t): Change typedef to 'int'. + (DEP_STATUS, BITS_PER_DEP_STATUS): Update. + +2006-03-30 Maxim Kuvyrkov + + * haifa-sched.c (try_ready): Change condition to restore + non-speculative pattern of the instruction. + (process_insn_depend_be_in_spec): Code to keep probability of the + speculative dependence non-decreasing. + +2006-03-30 Jie Zhang + + * config/bfin/bfin.c (single_move_for_strmov): Renamed to... + (single_move_for_movmem): ... this. Also change all uses. + (bfin_expand_strmov): Renamed to... + (bfin_expand_movmem): ... this. Also change all uses. + * config/bfin/bfin.md (movstrsi): Renamed to... + (movstrsi): ...this. + +2006-03-30 Paolo Bonzini + + PR tree-optimization/26830 + + * tree-ssa-copy.c (copy_prop_visit_assignment): Do not check loop depth. + (copy_prop_visit_stmt): Remove write-only variable ann. + (init_copy_prop): Check variable loop depth here. Do not simulate + memory-tag and virtual operand PHIs except for store copy prop. + +2006-03-30 Richard Guenther + + * config/i386/i386.c: Remove builtins for SSE2 ABI intrinsic + variants with double arguments. + +2006-03-29 David Edelsohn + + * genpreds.c (write_tm_constrs_h): Delete variable p. + * genconditions.c (write_header): Add tm-constrs.h to included + headers. + * genpeep.c (main): Add toplev.h to included headers. + * Makefile.in (build/gencondmd.o): Add tm-constrs.h dependency. + (build/genpeep.o): Add toplev.h dependency. + * config/rs6000/constraints.md: Add "W" constraint. + +2006-03-29 Roger Sayle + + * stor-layout.c (mode_for_size_tree): Remove restiction on type + sizes by correctly testing whether the size fits a host integer. + (initialize_sizetypes): Use set_min_and_max_values_for_integral_type + to correctly set TYPE_MIN_VALUE and TYPE_MAX_VALUE to the full + SImode range for the default sizetype and bitsizetype. + +2006-03-29 Roger Sayle + + * convert.c (convert_to_pointer): Preserve the TREE_OVERFLOW + and TREE_CONSTANT_OVERFLOW bits of the argument. Return + quickly if the argument is already of the correct type. + Call fold_build1 instead of build1. Tidy up blank lines. + +2006-03-29 David Edelsohn + + * genemit.c (main): Add tm-constrs.h to included headers. + * genoutput.c (output_prologue): Add tm-constrs.h to included headers. + * genpeep.c (main): Add tm-constrs.h to included headers. + * genpreds.c (write_satisfies_constraint_fns): Rename to ... + (write_tm_constrs_h): this and write complete file. + (write_tm_preds_h): Do not emit satisfies_constraint fns. + (write_insn_preds_c): Add tm-constrs.h to included headers. + (gen_constrs): New variable. + (parse_option): Parse "-c". + (main): Invoke write_tm_constrs_h. + * genrecog.c (write_header): Add tm-constrs.h to included headers. + * Makefile.in (STAGECOPYSTUFF): Add tm-constrs.h. + (object_out_file): Add tm-constrs.h dependency. + (insn-emit.o): Same. + (insn-output.o): Same. + (insn-peep.o): Same. + (insn-preds.o): Same. + (insn-recog.o): Same. + (tm-constsr.h): New target. + (s-constrs-h): New target. + + * config/rs6000/constraints.md: New file. + * config/rs6000/rs6000.c: Include tm-constrs.h. + (num_insn_constant_wide): Convert to satisfies_constraint. + (rs6000_rtx_costs): Convert to satisfies_constraint. + * config/rs6000/rs6000.h (REG_CLASS_FROM_LETTER): Delete. + (CONST_OK_FOR_LETTER_P): Delete. + (CONST_DOUBLE_OK_FOR_LETTER_P): Delete. + (EXTRA_CONSTRAINT): Delete. + (EXTRA_MEMORY_CONSTRAINT): Delete. + (EXTRA_ADDRESS_CONSTRAINT): Delete. + * config/rs6000/predicates.md: Convert to satisfies_constraint. + * config/rs6000/rs6000.md: Include constraints.md. Convert to + satisfies_constraint. + + * config/i386/i386.c: Include tm-constrs.h. + +2006-03-29 Sebastian Pop + + * tree-loop-linear.c (compute_data_dependences_for_loop): Adjust calls. + * tree-data-ref.c (find_data_references_in_loop, + compute_data_dependences_for_loop): Use pointers to VEC. + (analyze_all_data_dependences): Adjust calls. + * tree-data-ref.h (find_data_references_in_loop, + compute_data_dependences_for_loop): Adjust declarations. + * tree-vect-analyze.c (vect_analyze_data_refs): Adjust call to + compute_data_dependences_for_loop. + +2006-03-29 Paul Brook + + * config/arm/vfp.md (movsf_vfp): Disparage w<->r alternatives. + (movdf_vfp): Ditto. + +2006-03-29 Sebastian Pop + + PR tree-optimization/26859 + * tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined): Avoid + division by zero. + (convert_step): Remove TREE_OVERFLOW and TREE_CONSTANT_OVERFLOW flags + for the step after fold_convert. + +2006-03-29 Paul Brook + + * reload1.c (choose_reload_regs): Check for all RTX_AUTOINC operators. + (inc_for_reload): Handle PRE_MODIFY and POST_MODIFY addresses. + +2006-03-29 Paul Brook + + PR middle-end/23623 + * targhooks.c (default_narrow_bitfield): New fuction. + * targhooks.h (default_narrow_bitfield): add prototype. + * target.h (gcc_target): Add narrow_volatile_bitfield. + * target-def.h (TARGET_NARROW_VOLATILE_BITFIELD): Define. + * stor-layout.c (get_best_mode): Use targetm.narrow_volatile_bitfield. + * doc/tm.texi: Document TARGET_NARROW_VOLATILE_BITFIELDS. + * config/arm/arm.c (TARGET_NARROW_VOLATILE_BITFIELD): Define. + +2006-03-29 Andreas Krebbel + + * config.gcc (s390-*-linux-*, s390x-*-linux*): Add t-dfprules to + tmake_file. + * config/s390/s390.c (S390_scalar_mode_supported_p): New function. + (NR_C_MODES): Add TDmode, DDmode and SDmode. + (s390_output_pool_entry, ): Accept MODE_DECIMAL_FLOAT. + (s390_hard_regno_mode_ok): Disallow TDmode in integer regs. + (s390_function_arg_float): Allow SDmode and DDmode values to be + passed in floating point registers. + (s390_function_arg_integer, s390_function_value): Replace MODE_FLOAT + check with SCALAR_FLOAT_MODE_P. + (TARGET_SCALAR_MODE_SUPPORTED_P): Define target macro. + +2006-03-28 Zdenek Dvorak + + PR tree-optimization/25985 + * tree-ssa-loop-niter.c (number_of_iterations_le, + number_of_iterations_ne): Make comments more precise. + (number_of_iterations_cond): Add only_exit argument. Use the + fact that signed variables do not overflow only when only_exit + is true. + (loop_only_exit_p): New. + (number_of_iterations_exit): Pass result of loop_only_exit_p to + number_of_iterations_cond. + +2006-03-28 Zdenek Dvorak + + PR tree-optimization/26643 + * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Do not handle + bit_field_refs. + +2006-03-28 Kaz Kojima + + * config/sh/sh.md (udivsi3_i4_int): Clobber MACH_REG and MACL_REG. + (divsi3_i4_int): Likewise. + +2006-03-28 Roger Sayle + + * expr.c (emit_group_store): Only create a new pseudo reg if the + quantity it needs to hold isn't already a suitable pseudo. + +2006-03-28 Jeff Law + + * timevar.def (TV_TREE_PHI_CPROP): New timevar. + * tree-ssa-dom.c (pass_phi_only_cprop): Use it. + +2006-03-28 Roger Sayle + + * fold-const.c (fold_binary) : Fold (X & Y) ^ Y as + the equivalent ~X & Y, and the symmetry related transformations. + (fold_binary) : Similarly, fold (X ^ Y) & Y as + ~X & Y, and symmetry related transforms. + +2006-03-28 Maxim Kuvyrkov + + Revert my 2006-03-27 patches. + +2006-03-28 Roger Sayle + + * fold-const.c (fold_unary) : Fold (T1)(~(T2)X) as + ~(T1)X, when T1 and T2 are integer types of the same precision + and (T2)X isn't an extension. + +2006-03-28 Jeff Law + + PR tree-optimization/26796 + * tree-ssa-dom.c (propagate_rhs_into_lhs): Queue blocks which + need EH edge cleanups rather than purging them immediately. + (eliminate_degenerate_phis): Handle queued EH cleanups. + +2006-03-28 Daniel Berlin + + * tree-ssa-alias.c (create_sft): Initially inherit TREE_ADDRESSABLE + from parent_var. + +2006-03-27 Roger Sayle + + PR middle-end/22524 + * fold-const.c (fold_binary) : Call fold_convert to + cast BIT_NOT_EXPR operand to the correct type. + +2006-03-27 Sebastian Pop + + * tree-loop-linear.c: Don't include varray.h. + (gather_interchange_stats, try_interchange_loops, + linear_transform_loops): Use VEC instead of VARRAY. + * lambda-mat.c: Don't include varray.h. + * tree-chrec.c: Same. + * lambda-trans.c: Same. + * tree-vectorizer.c (new_loop_vec_info, destroy_loop_vec_info): Use + VEC instead of VARRAY. + * tree-vectorizer.h: Idem. + * tree-data-ref.c (dump_data_references, + dump_data_dependence_relations, dump_dist_dir_vectors, dump_ddrs, + initialize_data_dependence_relation, finalize_ddr_dependent, + compute_all_dependences, find_data_references_in_loop, + compute_data_dependences_for_loop, analyze_all_data_dependences, + free_dependence_relation, free_dependence_relations, + free_data_refs): Idem. + * tree-data-ref.h (data_reference_p, subscript_p): New. + (data_dependence_relation, DDR_SUBSCRIPT, DDR_NUM_SUBSCRIPTS): Use + VEC instead of VARRAY. + (DDR_SUBSCRIPTS_VECTOR_INIT): Removed. + (find_data_references_in_loop, compute_data_dependences_for_loop, + dump_ddrs, dump_dist_dir_vectors, dump_data_references, + dump_data_dependence_relations, free_dependence_relations, + free_data_refs): Adjust declaration. + (lambda_transform_legal_p): Move declaration here... + * tree-vect-analyze.c (vect_analyze_data_ref_dependences, + vect_compute_data_refs_alignment, vect_verify_datarefs_alignment, + vect_enhance_data_refs_alignment, vect_analyze_data_ref_accesses, + vect_analyze_data_refs): Use VEC instead of VARRAY. + * lambda.h (lambda_transform_legal_p): ...from here. + * lambda-code.c (lambda_transform_legal_p): Use VEC instead of VARRAY. + * tree-vect-transform.c (vect_update_inits_of_drs): Idem. + * Makefile.in (tree-loop-linear.o, lambda-mat.o, lambda-trans.o, + tree-chrec.o): Don't depend on VARRAY_H. + +2006-03-27 Maxim Kuvyrkov + + * rtl.def (Copyright): Update date. + (DEPS_LIST): Change type of the second operand to 'int'. + * target.h (Copyright): Update date. + (struct gcc_target.speculate_insn): Change type of the second parameter + to 'int'. + * lists.c (Copyright): Update date. + (alloc_DEPS_LIST): Change signature. Update reference to the second + operand of the DEPS_LIST. + (copy_DEPS_LIST_list): Update reference to the second operand of the + DEPS_LIST. + * rtl.h (Copyright): Update date. + (alloc_DEPS_LIST): Update signature. + * sched-int.h (Copyright): Update date. + (ds_t): Change typedef to 'int'. + (DEP_STATUS, BITS_PER_DEP_STATUS): Update. + +2006-03-27 Maxim Kuvyrkov + + * haifa-sched.c (Copyright): Update date. + (try_ready): Change condition to restore non-speculative pattern + of the instruction. + (process_insn_depend_be_in_spec): Code to keep probability of the + speculative dependence non-decreasing. + +2006-03-27 Bernd Schmidt + + * regrename.c (replace_oldest_value_addr): Initialize a variable to + shut up the compiler. + +2006-03-27 J"orn Rennecke + + * config/sh/t-sh ($(T)libic_invalidate_array_4-100.a): Fix rule + to use lib prefix for target. + ($(T)libic_invalidate_array_4-200.a): Likewise. + ($(T)libic_invalidate_array_4a.a): Likewise. + +2006-03-27 Andrew Stubbs + J"orn Rennecke + + * superh.opt: New file. + * sh.c (boardtype, osruntime): Remove. + * superh.h (SUBTARGET_OPTIONS): Remove. + * config.gcc (sh*-superh-elf): Add sh/superh.opt to extra_options. + + * config.gcc (sh*-*-*): Don't use c-c ranges for tr. Quote sed + arguments with ^ and/or []. + + * config.gcc (sh-*-*): Add quoting to account for quirk of + Solaris /bin/sh. + Replace == with = in enable_incomplete_targets test. + + * config/sh/superh.h (SUBTARGET_LINK_SPEC): Replace LITTLE_ENDIAN_BIT + with MASK_LITTLE_ENDIAN. + + * config.gcc (sh*-superh-elf): Add sh/superh.h to tm_file. + * config/sh/sh.opt: Added to some comments. + * config/sh/superh.h: Removed some chaff. + + * config/sh/sh.opt: Add m4-[1234]00* options. + * config/sh/sh.c (sh_handle_option): Likewise. + * config/sh/t-sh (IC_EXTRA_PARTS, EXTRA_MULTILIB_PARTS): Define. + (ic_invalidate_array_4-100.o): New rule. + ($(T)libic_invalidate_array_4-100.a): Likewise. + (ic_invalidate_array_4-200.o): Likewise. + ($(T)libic_invalidate_array_4-200.a): Likewise. + (ic_invalidate_array_4a.o): Likewise. + ($(T)libic_invalidate_array_4a.a): Likewise. + * config/sh/t-elf (EXTRA_MULTILIB_PARTS): Add IC_EXTRA_PARTS. + * config/sh/embed-elf.h (LIBGCC_SPEC): Add clauses for m4-100*, + m4-200*, and m4a*. + * config/sh/crt1.asm: Merged in profiling code. + * config/sh/superh.h (STARTFILE_SPEC): Override. + * config/sh/t-superh: Override EXTRA_MULTILIB_PARTS. + Add rules for $(T)crt1-mmu.o, $(T)gcrt1-mmu.o and $(T)gcrt1.o. + * config.gcc (sh*-superh-elf): Add t-superh to tmake_file. + + * t-sh (MULTILIB_MATCHES): Add sh4-[1245]00* variants. + * config/sh/t-superh: Removed now-redundant MULTILIB_OPTIONS / + MULTILIB_DIRNAMES / MULTILIB_MATCHES settings. + + * sh.opt (mpretend-cmove): New option. + * sh.h (OPERRIDE_OPTIONS): Switch it off if not TARGET_SH1. + * sh.md (movsicc_t_false, movsicc_t_tru): New patterns. + (movsicc): Add TARGET_PRETEND_CMOVE code. + +2006-03-27 Andreas Krebbel + + * config/s390/s390-protos.h (s390_hard_regno_mode_ok, + s390_class_max_nregs): New function prototypes. + * config/s390/s390.c (REGNO_PAIR_OK): New macro. + (s390_hard_regno_mode_ok, s390_class_max_nregs): New functions. + * config/s390/s390.h (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK, + CLASS_MAX_NREGS): Macro bodies replaced by function calls. + +2006-03-26 Geoffrey Keating + + * dwarf2out.c (add_location_or_const_value_attribute): Call + tree_add_const_value_attribute if nothing else works. + (reference_to_unused): New. + (rtl_for_decl_init): Use reference_to_unused to decide whether + to output an initializer. + +2006-03-27 Alan Modra + + PR target/26459 + * config/rs6000/rs6000.md (DF reg move peephole): Prevent + peephole removing spe frob_di_df_2. + +2006-03-26 Sebastian Pop + + * tree-data-ref.c: Rename DDR_SIZE_VECT to DDR_NB_LOOPS. + (subscript_dependence_tester_1): Declared. + (print_dir_vectors, print_dist_vectors): New. + (debug_data_dependence_relation): New. + (dump_data_dependence_relation): Print more details. + (initialize_data_dependence_relation): Initialize DDR_LOOP_NEST. + (analyze_subscript_affine_affine): Don't ICE when gcd_alpha_beta is 0. + (save_dist_v, save_dir_v, add_outer_distances, + build_classic_dist_vector_1): New. + (build_classic_dist_vector): Rewrite to work on DDR_LOOP_NEST. + Don't test for lambda_vector_lexico_pos. + (same_access_functions, add_multivariate_self_dist, + add_other_self_distances, dir_from_dist): New. + (build_classic_dir_vector): Replace implementation almost identical to + build_classic_dist_vector with a walk of DDR_DIST_VECTS with a call to + dir_from_dist. + (subscript_dependence_tester_1): New. + (subscript_dependence_tester): Handle the lexicographically negative + distance vectors by recomputing the dependence relation. + (compute_affine_dependence): Remove parameter loop_nest_depth. + (compute_self_dependence): Don't call compute_subscript_distance. + (compute_all_dependences): Remove parameters nb_loops, loop_nest_depth. + Add a parameter for the loop_nest. + (find_loop_nest_1, find_loop_nest): New. + (compute_data_dependences_for_loop): Compute the loop nest, and give + up if the nest is not well formed. + * tree-data-ref.h (loop_p): New. + (struct data_dependence_relation): Replace size_vect field with + loop_nest, a vec of loops. + (DDR_SIZE_VECT): Renamed DDR_NB_LOOPS. + (DDR_LOOP_NEST): New. + (print_dir_vectors, print_dist_vectors, + debug_data_dependence_relation): Declared. + (index_in_loop_nest): New. + * tree-vect-analyze.c (vect_analyze_data_ref_dependence): Use + DDR_LOOP_NEST and index_in_loop_nest to determine the dependence + distance. + +2006-03-25 Adam Nemet + + * simplify-rtx.c (simplify_relational_operation): Call + simplify_relational_operation_1 even if mode is VOIDmode. + +2006-03-25 Daniel Berlin + + PR tree-optimization/26804 + * tree.h (DECL_CALL_CLOBBERED): New macro. + (tree_decl_common): Add call_clobbered_flag. + * tree-flow-inline.h (is_call_clobbered): Use DECL_CALL_CLOBBERED. + (mark_call_clobbered): Set DECL_CALL_CLOBBERED. + (clear_call_clobbered): Clear DECL_CALL_CLOBBERED. + (mark_non_addressable): Ditto. + * tree-ssa.c (verify_call_clobbered): New function. + (verify_alias_info): Use it. + * tree-pass.h (pass_reset_cc_flags): New prototype. + * tree-ssa-alias.c (pass_reset_cc_flags): New structure. + (reset_cc_flags): New function. + * passes.c (init_optimization_passes): Call reset_cc_flags after + initializing referenced_vars. + +2006-03-25 Uros Bizjak + Roger Sayle + + PR middle-end/26717 + * fold-const.c (fold_binary) [RDIV_EXPR]: Do not optimize A / A + to 1.0 for non-real operands. Implement A / A optimization for + complex operands. + +2006-03-25 H.J. Lu + + * config/i386/i386.c (size_cost): Correct the comment for + cost of storing fp registers. + (i386_cost): Likewise. + (i486_cost): Likewise. + (pentium_cost): Likewise. + (pentiumpro_cost): Likewise. + (k6_cost): Likewise. + (athlon_cost): Likewise. + (k8_cost): Likewise. + (pentium4_cost): Likewise. + (nocona_cost): Likewise. + (generic64_cost): Likewise. + (generic32_cost): Likewise. + +2006-03-24 Denis Chertykov + + * config/avr/avr-protos.h (extra_constraint): Delete. + (extra_constraint_Q): New declaration. + * config/avr/constraints.md: New file. + * config/avr/avr.md: Include it. + (REG_X, REG_Y, REG_Z, REG_W): New constants. + (TMP_REGNO, ZERO_REGNO): Likewise. + (UNSPEC_STRLEN, UNSPEC_INDEX_JMP): Likewise. + * config/avr/avr.c (avr_reg_class_from_letter): Delete. + (extra_constraint): Delete. + (extra_constraint_Q): Test for memory constraint 'Q'. + * config/avr/avr.h (REG_X,REG_Y,REG_Z,REG_W): Delete. + (REG_CLASS_FROM_LETTER): Delete. + (CONST_OK_FOR_LETTER_P): Delete. + (CONST_DOUBLE_OK_FOR_LETTER_P): Delete. + (EXTRA_CONSTRAINT): Delete. + (TMP_REGNO): Delete. + (ZERO_REGNO): Delete. + +2006-03-24 Jeff Law + + * tree-ssa-dom.c (propagate_rhs_into_lhs): Don't call update_stmt + directly. Call mark_new_vars_to_rename slightly earlier. + +2006-03-24 Geoffrey Keating + + * dwarf2out.c (is_c_family): Understand new DWARF3 language types. + (is_cxx): Likewise. + (gen_compile_unit_die): Use new language types for Objective-C and + Objective-C++. + (dwarf2out_decl): Use is_cxx rather than testing explicitly against + DW_LANG_C_plus_plus. + + PR 26793 + * config/t-darwin (crt3.o): Work around bug 26840. + * config/darwin-crt3.c: Rewrite. + * config/darwin.h (STARTFILE_SPEC): Don't use -l for crt3.o. + +2006-03-24 Carlos O'Donell + + * doc/invoke.texi: Document -femit-class-debug-always + * common.opt: Add -femit-class-debug-always. + +2006-03-24 Andreas Krebbel + + * config/s390/s390.c (s390_decompose_address): Allow SImode for + index and base register. + (s390_expand_plug_operand, legitimate_address_p, preferred_la_operand_p, + print_operand_address, print_operand): Replaced REG_OK_FOR_BASE_STRICT_P + with REGNO_OK_FOR_BASE_P and REG_OK_FOR_INDEX_STRICT_P with + REGNO_OK_FOR_INDEX_P. + * config/s390/s390.h (REGNO_OK_FOR_INDEX_P): Replaced check with + ADDR_REGNO_P. + (REG_OK_FOR_INDEX_NONSTRICT_P, REG_OK_FOR_BASE_NONSTRICT_P, + REG_OK_FOR_INDEX_STRICT_P, REG_OK_FOR_BASE_STRICT_P, REG_OK_FOR_INDEX_P, + REG_OK_FOR_BASE_P): Definitions removed. + +2006-03-24 Jakub Jelinek + + PR middle-end/26611 + * gimplify.c (gimplify_bind_expr): Only call omp_add_variable on + non-global variables that don't have DECL_SEEN_IN_BIND_EXPR_P bit + set yet or weren't marked as local yet. + +2006-03-24 Bernd Schmidt + + * regrename.c (scan_rtx_address): Initialize a variable to shut up + the compiler. + +2006-03-24 Eric Botcazou + + * config/rs6000/rs6000-protos.h (rs6000_offsettable_memref_p): Declare. + (rs6000_legitimate_small_data_p): Delete. + * config/rs6000/rs6000.c (rs6000_offsettable_memref_p): New predicate. + (rs6000_legitimate_small_data_p): Rename to legitimate_small_data_p + and make static. Add forward declaration. Update uses. + (rs6000_split_multireg_move): Use rs6000_offsettable_memref_p instead + of offsettable_memref_p. + * config/rs6000/rs6000.md (movdf_hardfloat32): Revert 2005-08-23 fix. + Use rs6000_offsettable_memref_p instead of a less accurate predicate. + +2006-03-24 Jeff Law + + * tree-ssa-dom.c (propagate_rhs_into_lhs): Temporarily work + around bug in immediate-use iterator. + +2006-03-24 Alan Modra + + PR target/26607 + * config/rs6000/darwin-ldouble.c: Don't compile when __NO_FPRS__ + or __LITTLE_ENDIAN__. + +2006-03-23 J"orn Rennecke + + * config/sh/divtab-sh4.c, config/sh/divcost-analysis: New files. + * config/sh/lib1funcs.asm (div_table): Add !__SH5__ variant. + * config/sh/t-sh (LIB1ASMFUNCS): Add _div_table. + * config/sh/sh.opt (mdiv=): Amend description. + * config/sh/sh.h (TARGET_DIVIDE_CALL_DIV1): New macro. + (TARGET_DIVIDE_CALL_FP, TARGET_DIVIDE_CALL_TABLE): Likewise. + (sh_divide_strategy_e): Add new members SH_DIV_CALL_DIV1, + SH_DIV_CALL_FP, SH_DIV_CALL_TABLE and SH_DIV_INTRINSIC. + (OVERRIDE_OPTIONS): Also process sh_div_str for TARGET_SH1. + Calculate sh_divsi3_libfunc using TARGET_DIVIDE_* macros. + * config/sh/sh.md (udivsi3_i4_int, divsi3_i4_int): New patterns. + (udivsi3, divsi3): Use them. Check TARGET_DIVIDE_CALL_TABLE / + TARGET_DIVIDE_CALL_FP. + +2006-03-23 Maxim Kuvyrkov + + * haifa-sched.c (choose_ready): Fix type of the local variable. + Move local variables. Add comment. + (check_reg_live): Change signature. Make callable from debugger. + * sched-int.h (check_reg_live): Update signature. + * sched-ebb.c (check_reg_live): Update parameters. + * sched-rgn.c (check_reg_live): Ditto. + (region_head_or_leaf_p): Check pointer before dereferencing. + * config/ia64/ia64.c (ia64_set_sched_flags): Disable data speculation + before reload on optimization levels below 1. + +2006-03-23 Richard Henderson + + * config/alpha/alpha.c (alpha_legitimate_constant_p): Reject + tls symbols. + + PR target/26347 + * config/alpha/predicates.md (local_symbolic_operand): Reject + weak symbols. + +2006-03-23 Andrew Pinski + + PR tree-opt/26795 + * tree-ssa-pre.c (create_value_expr_from): Don't reject + expressions which have overflowed constants. + +2006-03-23 Zdenek Dvorak + + * cse.c (cse_end_of_basic_block): Do not check for LOOP_END note. + +2006-03-23 Zdenek Dvorak + + * cfgloopmanip.c (create_loop_notes): Removed. + * final.c (final_scan_insn): Do not handle loop notes. + * jump.c (squeeze_notes): Ditto. + * cfglayout.c (skip_insns_after_block, + duplicate_insn_chain): Ditto. + * cfgcleanup.c (rest_of_handle_jump2): Do not call + create_loop_notes. + * cfgloop.h (create_loop_notes): Declaration removed. + +2006-03-23 Richard Sandiford + + * varasm.c (output_constant_pool): Restore fnname and fndecl + arguments. + (assemble_start_function): Adjust call accordingly. + (assemble_end_function): Likewise. + +2006-03-22 Volker Reichelt + + PR mudflap/26789 + * tree-mudflap.c (mudflap_finish_file): Skip erroneous objects. + + PR mudflap/26790 + * tree-mudflap.c (mf_xform_derefs_1): Return early on error_mark_node. + +2006-03-22 Volker Reichelt + + PR driver/22600 + * system.h (ICE_EXIT_CODE): New macro. + * diagnostic.c (diagnostic_count_diagnostic): Exit with ICE_EXIT_CODE. + (diagnostic_action_after_output): Likewise. + * gcc.c (fatal_ice): New function. + (execute): Use it instead of fatal. + (fancy_abort): Likewise. + * doc/invoke.texi (-pass-exit-codes): Document return code for ICEs. + +2006-03-22 Jeff Law + + * loop-unroll.c (analyze_iv_to_split_insn): Handle + iv_analyze_result returning false. + +2006-03-22 Jie Zhang + + * config/bfin/bfin.h (ASM_FORMAT_PRIVATE_NAME): Remove. + +2006-03-22 Richard Henderson + + PR middle-end/26084 + * except.c (duplicate_eh_regions_0): New. + (duplicate_eh_region_1): Duplicate the children of the node as + well as the node itself. Link them up properly. + (duplicate_eh_region_2): Merge into ... + (duplicate_eh_regions): ... here. Take copy_region argument, and + copy only a sub-tree if asked. Simplify copying and fixup. + (eh_region_outer_p): New. + * except.h (duplicate_eh_regions): Update decl. + (eh_region_outer_p): Declare. + * omp-low.c (lower_omp_single): Fix eh region placement wrt OMP_RETURN. + (lower_omp_master): Likewise. + (lower_omp_ordered): Likewise. + * tree-cfg.c (struct move_stmt_d): Add new_label_map. + (move_stmt_r): Use it to remap labels. Handle recursion vs + remap_decls_p properly. + (move_block_to_fn): Pass in new_label_map. Remap RESX_EXPR. + (find_outermost_region_in_block): New. + (new_label_mapper): New. + (move_sese_region_to_fn): Copy eh information to the new function + properly. + * tree-inline.c (copy_cfg_body): Update for new duplicate_eh_regions + argument. + * tree-pretty-print.c (dump_generic_node): Dump RESX_EXPR region + number. + +2006-03-22 Richard Sandiford + + * doc/md.texi (-mshared): Mention that -mshared code can be linked + into shared libraries. + +2006-03-22 Richard Sandiford + + * doc/md.texi: Refer to i386/constraints.md instead of + i386/predicates.md. + * config/i386/constraints.md: New file, extracted from... + * config/i386/predicates.md: ...here. + * config/i386/i386.md: Include constraints.md. + +2006-03-21 Jason Merrill + + * builtins.c (expand_builtin_fork_or_exec): Fix pasto. + + PR middle-end/20297 + * expr.c (init_block_move_fn): Force default visibility. + (init_block_clear_fn): Likewise. + * builtins.c (expand_builtin_fork_or_exec): Likewise. + * targhooks.c (default_external_stack_protect_fail): Likewise. + +2006-03-21 Richard Sandiford + + * config/mips/predicates.md (const_call_insn_operand): Allow direct + calls to locally-defined functions if TARGET_ABSOLUTE_ABICALLS. + * config/mips/mips.md (jal_macro): Test TARGET_ABSOLUTE_ABICALLS. + Use TARGET_OLDABI instead of !TARGET_NEWABI. + (loadgp): Use mips_current_loadgp_style. + (loadgp_noshared): New pattern. + (sibcall_internal): Use MIPS_CALL. + (sibcall_value_internal): Likewise. + (sibcall_value_multiple_internal): Likewise. + (call_internal): Likewise. + (call_value_internal): Likewise. + (call_value_multiple_internal): Likewise. + (call_split): Use MIPS_CALL and add an 'S' constraint. + (call_value_split): Likewise. + (call_value_multiple_split): Likewise. + * config/mips/mips.opt (-mabicalls): Tweak docstring. + (-mshared): New option. + * config/mips/mips-protos.h (mips_loadgp_style): New enum. + (mips_current_loadgp_style): Declare. + * config/mips/mips.c (mips_classify_symbol): Avoid using + SYMBOL_GOT_LOCAL if TARGET_ABSOLUTE_ABICALLS. Use SYMBOL_GENERAL + rather than SYMBOL_GOT_GLOBAL for locally-binding symbols if + TARGET_ABSOLUTE_ABICALLS. + (override_options): Adjust comments. Improve the warning that is + issued when -mabicalls and -G are used together. + (mips_file_start): Remove comment. + (mips_current_loadgp_style): New function. + (mips_gnu_local_gp): New variable. + (mips_emit_loadgp): Use mips_current_loadgp_style. Handle + LOADGP_ABSOLUTE. + (mips_output_function_prologue): Use mips_current_laodgp_style. + (mips_expand_prologue): Call mips_emit_loadgp before emitting + the cprestore instruction. + (mips_extra_live_on_entry): Fix reversed test. Don't make $25 + live for TARGET_ABSOLUTE_ABICALLS. + * config/mips/mips.h (TARGET_ABSOLUTE_ABICALLS): New macro. + (ASM_SPEC): Pass down -mshared and -mno-shared. + (MIPS_CALL): New macro. + * config/mips/netbsd.h (TARGET_OS_CPP_BUILTINS): Remove __ABICALLS__ + definition. + * doc/invoke.texi (-mabicalls): Update documentation. + (-mshared): Document. + +2006-03-21 Steve Ellcey + + * config/ia64/unwind-hpux.c: New file. + * config/ia64/t-hpux: Add unwind-hpux.c to libgcc. + +2006-03-21 Steve Ellcey + + PR libgomp/26384 + * config/pa/pa64-hpux.h (LIB_SPEC): Fix for -mt and -pthread options. + +2006-03-21 Jeff Law + + * tree-vrp.c (extract_range_from_unary_expr): Derive ranges for + type conversions of a VR_VARYING source to a wider type. + +2006-03-21 Eric Botcazou + + * config.gcc (i[34567]86-*-solaris2*): Add config/sol2-10.h to + tm_file on Solaris 10 and later. + (sparc64-*-solaris2*): Likewise. + (sparc-*-solaris2*): Likewise. + * config/sol26.h: Rename to config/sol2-6.h. + * config/sol2-10.h: New file. + +2006-03-21 Andrew Pinski + + PR tree-opt/26781 + * tree-ssa-pre.c (create_component_ref_by_pieces): + Handle STRING_CST. + +2006-03-21 Jakub Jelinek + + PR c++/26690 + * tree.c (get_callee_fndecl): If CALL is error_mark_node, + return it immediately. + +2006-03-21 Michael Matz + + * genautomata.c (, num_out_arcs, presence_signature): + New members. + (remove_arc, add_arc): Update num_out_arcs member. + (set_out_arc_insns_equiv_num): Returns nothing instead of number + of out arcs. + (cache_presence): New function. + (compare_states_for_equiv): New function. + (state_is_differed): Don't take number of outargs, adjust callers. + Use new invariant for speeding up. + (init_equiv_class): Create initial classes based on sorted + input. + (partition_equiv_class): Don't track out_arcs_num. + (evaluate_equiv_classes): Call cache_presence on all states and + sort them. + +2006-03-21 Bernd Schmidt + + * config/bfin/bfin-protos.h (bfin_dsp_memref_p): Declare. + * config/bfin/bfin.c (bfin_dsp_memref_p): New function. + (bfin_valid_reg_p): Test for pseudos explicitly and use only + REGNO_MODE_CODE_OK_FOR_BASE_P. New args MODE and OUTER_CODE; all + callers changed. + * config/bfin/bfin.h (PREG_P): Use P_REGNO_P. + (IREG_P, P_REGNO_P, I_REGNO_P): New macros. + (enum reg_class, REG_CLASS_CONTENTS): Add IPREGS. + (BASE_REG_CLASS, REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, + REGNO_OK_FOR_BASE_STRICT_P, REGNO_OK_FOR_BASE_NONSTRICT_P): Delete + macros. + (IREG_POSSIBLE_P, MODE_CODE_BASE_REG_CLASS, + REGNO_MODE_CODE_OK_FOR_BASE_P): New macros. + (REGNO_REG_CLASS): ARGP is in PREGS. + * config/bfin/bfin.md (movhi_insn): Allow for addresses containing + IREGS. + (zero_extendhisi2, extendhisi2): Likewise; changed to define_and_split + to deal with those addresses. + * addresses.h: New file. + * caller-save.c: Include "addresses.h". + (init_caller_save): Use new base_reg_class function. + * rtl-factoring.c: Include "addresses.h". + (recompute_gain_for_pattern_seq): Use new function ok_for_base_p_1. + * recog.c: Include "addresses.h". + (preprocess_constraints): Use new base_reg_class function. + * regrename.c: Include "addresses.h". + (scan_rtx_address): Use new regno_ok_for_base_p and base_reg_class + functions. Keep track of a new var INDEX_CODE to compute valid + classes. + (replace_oldest_value_addr): Likewise. + (replace_oldest_value_mem): Use base_reg_class. + * reload.c: Include "addresses.h". + (REGNO_MODE_OK_FOR_BASE_P, REG_MODE_OK_FOR_BASE_P): Delete macros. + (find_reloads): Use new base_reg_class function. + (find_reloads_address): Likewise; also use regno_ok_for_base_p. + (find_reloads_address_1): Likewise. New args OUTER_CODE and INDEX_CODE; + all callers and prototype changed. + * reload1.c: Include "addresses.h". + (maybe_fix_stack_asms): Use base_reg_class. + * regclass.c: Include "addresses.h". + (ok_for_index_p_nonstrict, ok_for_base_p_nonstrict): New functions. + (init_reg_autoinc): Use new base_reg_class function. + (record_reg_classes): Likewise. + (record_address_regs): Delete arg CLASS; add args CONTEXT, MODE, + OUTER_CODE and INDEX_CODE. All callers and prototype changed. + Use new args to compute necessary class. + + * Makefile.in (regclass.o, reload.o, reload1.o, caller-save.o, recog.o, + regrename.o, rtl-factoring.o): Update dependencies. + * doc/tm.texi (MODE_CODE_BASE_REG_CLASS): Document. + (REGNO_MODE_CODE_OK_FOR_BASE_P): Likewise. + (REG_OK_FOR_BASE_P, REG_MODE_OK_FOR_BASE_P, REG_MODE_OK_FOR_REG_BASE_P, + REG_OK_FOR_INDEX_P): Delete documentation. + +2006-03-21 Alexey Starovoytov + + * config.gcc (sparc-*-solaris2*): Change the default CPU setting + from V7 to V9 for Solaris 7 and above. + +2006-03-21 Toon Moene + + * doc/invoke.texi: Document new flag -fargument-noalias-anything. + * tree-ssa-alias.c (may_alias_p): If flag_argument_noalias > 2, + argument pointers may not alias any other storage. + * common.opt: Define option -fargument-noalias-anything. + * tree-ssa-structalias.c (intra_create_variable_infos): Fortran + alias semantics is specified by flag_argument_noalias > 2. + +2006-03-20 Jeff Law + + * tree-pass.h (pass_phi_only_copy_prop): Delete. + (pass_phi_only_cprop): Declare. + * passes.c (init_optimization_passes): Replace pass_phi_only_copy_prop + with phi_only_cprop + * tree-ssa-dom.c (degenerate_phi_result): New function. + (remove_stmt_or_phi, get_lhs_or_phi_result): Likewise. + (get_rhs_or_phi_arg, propagate_rhs_into_lhs): Likewise. + (eliminate_const_or_copy, eliminate_degenerate_phis_1): Likewise. + (eliminate_degenerate_phis): Likewise. + (pass_phi_only_cprop): New pass descriptor. + * tree-ssa-copy.c (init_copy_prop): Lose PHIS_ONLY argument and + support code. Callers updated. + (execute_copy_prop, do_copy_prop): Likewise and corresponding changes. + (store_copy_prop): Likewise. + (do_phi_only_copy_prop, pass_phi_only_copy_prop): Remove. + +2006-03-20 Jason Merrill + + PR c++/21764 + * c-pragma.c (visstack): Move out of handle_pragma_visibility. + (push_visibility, pop_visibility): Likewise. + * c-pragma.h: Declare them. + +2006-03-20 Kaz Kojima + + * config/sh/sh.c (untangle_mova): Initialize n_addr and n_target. + + * config/sh/sh.c (find_regmode_weight): Change the type of the first + parameter and use get_ebb_head_tail. + (sh_md_init_global): Adjust uses of find_regmode_weight. + +2006-03-20 Steven Bosscher + + * function.h (struct function) : + Rename to x_stack_check_probe_note. + (tail_recursion_reentry): Rename to stack_check_probe_note. + * function.c: Replace tail_recursion_reentry with + stack_check_probe_note everywhere. + (expand_function_start): Only emit a note for + stack_check_probe_note with -fstack-protect. + * stmt.c (expand_case): Don't emit NOTE_INSN_DELETED notes. + + * emit-rtl.c (remove_unnecessary_notes): Remove. + (pass_remove_unnecessary_notes): Remove. + * rtl.h (remove_unnecessary_notes): Remove prototype. + * final.c (final_start_function): Don't call remove_unnecessary_notes. + * tree-pass.h (pass_remove_unnecessary_notes): Remove. + * passes.c (pass_remove_unnecessary_notes): Don't run it. + +2006-03-20 Andrew Pinski + + PR tree-opt/26629 + * tree-ssa-pre (phi_translate): Handle ARRAY_REF's operands. + (valid_in_set): Handle ARRAY_REF. + Change "if min_variant or VH" to asserts. + (create_component_ref_by_pieces): Handle ARRAY_REF. + (create_expression_by_pieces): Likewise. + (can_PRE_operation): ARRAY_REFs can now be PRE'd. + +2006-03-20 David Edelsohn + + * genpreds.c (write_insn_extra_address_constraint): Argument `c' + is operand of switch, not str[0]. + +2006-03-20 Alan Modra + + * config/rs6000/rs6000.c (rs6000_handle_option): Use + TARGET_NO_FP_IN_TOC inside #ifdef TARGET_USES_SYSV4_OPT too. + +2006-03-19 David Edelsohn + + * genpreds.c (write_tm_preds_h): Add semicolon and newline at + end of insn_extra_address_constraint declaration. + +2006-03-19 David Edelsohn + + * config/rs6000/rs6000.opt (no-fp-in-toc): Use Var not Mask. + (no-sum-in-toc): Same. + * config/rs6000/rs6000.c (rs6000_handle_option): Use new + variables. + * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Set + NO_FP_IN_TOC for -fPIC instead of mask. + + * config/rs6000/t-aix43 (T_ADAFLAGS): Delete. + (BOOT_LDFLAGS): Delete. + (LDFLAGS): Delete. + * config/rs6000/t-aix52: Same. + + * config/rs6000/rs6000.md (store_multiple_power): Delete. + (stmsi[345678]_power): New. + +2006-03-17 Steve Ellcey + + * config/ia64/ia64.opt: Add empty line to end of file. + +2006-03-17 Richard Guenther + + PR middle-end/26721 + * builtins.c (get_pointer_alignment): For component style references + adjust alignment to the component type alignment. Make sure + to adjust alignment for component access of constants. + +2006-03-17 David Edelsohn + + * config/rs6000/rs6000.md (strlensi): Emit barrier after + unconditional jump. + +2006-03-17 Paul Brook + + * doc/install.texi: Docuemnt --with-mode. + * config.gcc: Add --with-mode for arm*-*-*. + * config/arm/arm.h (OPTION_DEFAULT_SPECS): Add "mode". + +2006-03-17 J"orn Rennecke + + * sh.c (max_labelno_before_reorg): New variable. + (sh_reorg): Initialize it. + (find_barrier): Check max_labelno_before_reorg before using + label_to_alignment. Take length of explicit alignment insns + into account. When seeing a UNSPECV_CONST_END, return it. + + * sh.c (fixup_mova): Set mode of affected label to QImode. + (untangle_mova): New function. + (find_barrier): Use it. Check mode of label before decrementing + num_mova. + (sh_reorg): Likewise. + Set mode of all insns back to VOIDmode. + + * sh.c (MOVA_LABELREF): New macro. + (mova_p, fixup_mova, sh_reorg): Use it. + (find_barrier, sh_reorg): Don't count num_mova back to 0 unless + ADDR_DIFF_VEC matches mova. + +2006-03-17 Steven Bosscher + + * dwarf2asm.c (dw2_asm_output_offset): Mark 'base' argument + with ATTRIBUTE_UNUSED. + +2006-03-17 Alexandre Oliva + + * dwarf2out.c (dwarf2out_stack_adjust): Always track the stack + pointer, instead of assuming it is possible to derive the + correct args size from a call insn. + +2006-03-16 Jan-Benedict Glaw + + * rtl.h (CONST_INT_P): Define. + * config/vax/vax.c (print_operand_address): Use CONST_INT_P() + instead of GET_CODE(x) == CONST_INT. + (vax_rtx_costs): Likewise. + (vax_output_int_move): Likewise. + (vax_output_int_add): Likewise. + (legitimate_constant_address_p): Likewise. + (index_term_p): Likewise. + * config/vax/vax.h (PRINT_OPERAND): Likewise. + * config/vax/vax.md (and3): Likewise. + (ashrsi3): Likewise. + (extv): Likewise. + (movstricthi): Likewise. + (movstrictqi): Likewise. + (rotrsi3): Likewise. + (five unnamed insns): Likewise. + +2006-03-16 Geoffrey Keating + + * doc/tm.texi (SDB and DWARF): Add extra parameter to + ASM_OUTPUT_DWARF_OFFSET. Use @var to indicate metavariables. + * dwarf2asm.h (dw2_asm_output_offset): Add section parameter. + * dwarf2asm.c (dw2_asm_output_offset): Add base section parameter. + Pass to ASM_OUTPUT_DWARF_OFFSET. + * dwarf2out.c (debug_frame_section): New. + (output_call_frame_info): Use debug_frame_section. Pass it to + dw2_asm_output_offset. + (output_die): Pass appropriate section to dw2_asm_output_offset. + (output_compilation_unit_header): Likewise. + (output_pubnames): Likewise. + (output_aranges): Likewise. + (enum dw_val_class): Break dw_val_class_lbl_offset into + dw_val_class_lineptr and dw_val_class_macptr. + (add_AT_lbl_offset): Delete. + (add_AT_lineptr): New. + (add_AT_macptr): New. + (AT_lbl): Expect a lineptr or macptr. + (print_die): Handle dw_val_class_lineptr and dw_val_class_macptr. + (attr_checksum): Likewise. + (same_dw_val_p): Likewise. + (size_of_die): Likewise. + (value_format): Likewise. + (output_die): Likewise. + (dwarf2out_finish): Call add_AT_lineptr and add_AT_macptr instead of + add_AT_lbl_offset. + * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add extra parameter. + * config/i386/i386.c (x86_file_start): Call darwin_file_start. + * config/darwin-protos.h (darwin_file_start): New. + (darwin_asm_output_dwarf_offset): New. + * config/ia64/ia64.h (ASM_OUTPUT_DWARF_OFFSET): Add extra parameter. + * config/rs6000/rs6000.c (rs6000_darwin_file_start): Call + darwin_file_start. + * config/darwin.c (darwin_emit_unwind_label): Don't output label + if not EH section; simplify. + (darwin_file_start): New. + (darwin_asm_output_dwarf_offset): New. + * config/darwin.h (DEBUG_FRAME_SECTION): In __DWARF segment, + mark as 'debug'. + (DEBUG_INFO_SECTION): Likewise. + (DEBUG_ABBREV_SECTION): Likewise. + (DEBUG_ARANGES_SECTION): Likewise. + (DEBUG_MACINFO_SECTION): Likewise. + (DEBUG_LINE_SECTION): Likewise. + (DEBUG_LOC_SECTION): Likewise. + (DEBUG_PUBNAMES_SECTION): Likewise. + (DEBUG_STR_SECTION): Likewise. + (DEBUG_RANGES_SECTION): Likewise. + (FRAME_BEGIN_LABEL): Must start with 'L' in debug section. + (ASM_OUTPUT_DWARF_OFFSET): New. + +2006-03-16 Joseph S. Myers + + * config.gcc (tm_defines): Always add to previous value rather + than replacing it. + +2006-03-16 Richard Sandiford + + * config/mips/predicates.md (splittable_const_int_operand): New, + split from move_operand. + (splittable_symbolic_operand): New. + (move_operand): Add commentary. Use splittable_const_int_operand. + Inline mips_atomic_symbolic_constant_p. + * config/mips/mips.md: Add combine splitters for handling moves + of splittable_const_int_operands and splittable_symbolic_operands. + * config/mips/mips-protos.h (mips_atomic_symbolic_constant_p): Delete. + (mips_split_symbol): Declare. + (mips_move_integer): Declare. + * config/mips/mips.c (mips_split_p): Make global. + (TARGET_MIN_ANCHOR_OFFSET): Override default. + (TARGET_MAX_ANCHOR_OFFSET): Likewise. + (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Likewise. + (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Likewise. + (mips_offset_within_object_p): Handle block symbols. + (mips_atomic_symbolic_constant_p): Delete. + (mips_cannot_force_const_mem): Return false for constants that + mips_legitimize_move can handle. + (mips_use_blocks_for_constant_p): New function. + (mips_split_symbol): Make global. + (mips_move_integer): Likewise. Add a temporary register argument. + (mips_legitimize_const_move): Use splittable_const_int_operand and + splittable_symbolic_operand. + (mips_use_anchors_for_symbol_p): New function. + * config/mips/mips.h: Protect externs with !USED_FOR_TARGET. + (mips_split_p): Declare. + +2006-03-16 Richard Sandiford + + * config.gcc (mips64*-*-linux*): Keep existing tm_defines. + (mips*-*-linux*): Likewise. + +2006-03-16 Roger Sayle + Daniel Speyer + + PR middle-end/18259 + * tree-dump.c (dump_real): New function. + (dequeue_and_dump) : Use it to dump FP constants. + * Makefile.in (REAL_H): New macro for dependencies on real.h. + (tree-dump.o): Add $(REAL_H) to the dependencies. + +2006-03-16 Roger Sayle + + PR middle-end/21781 + * real.c (real_from_string): If the mantissa is zero, don't bother + parsing the exponent as the result should always be zero. + +2006-03-16 Andreas Krebbel + + * simplify-rtx.c (simplify_plus_minus): Simplify within CONST terms. + +2006-03-16 Maxim Kuvyrkov + + * config/ia64/ia64.c (stops_p): Added explicit initialization. + (ia64_first_cycle_multipass_dfa_lookahead_guard_spec, + ia64_h_i_d_extended, ia64_set_sched_flags, ia64_speculate_insn, + ia64_needs_block_p, ia64_gen_check, ia64_sched_init_global, + ia64_sched_finish_global): New static functions to implement + hooks from gcc_target.sched. + (spec_check_no, max_uid, pending_data_specs): New static variables. + (ia64_mode_to_int, ia64_gen_spec_insn, ia64_spec_check_p, + ia64_spec_check_src_p): New static functions. + (ia64_adjust_cost): Renamed to ia64_adjust_cost_2. + (TARGET_SCHED_ADJUST_COST): Removed. + (TARGET_SCHED_ADJUST_COST_2, TARGET_SCHED_INIT_GLOBAL, + TARGET_SCHED_FINISH_GLOBAL, TARGET_SCHED_H_I_D_EXTENDED, + TARGET_SCHED_SPECULATE_INSN, TARGET_SCHED_NEEDS_BLOCK_P, + TARGET_SCHED_GEN_CHECK, + TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC, + TARGET_SCHED_SET_SCHED_FLAGS): New macros. + (update_set_flags, group_barrier_needed, set_src_needs_barrier): + Fixed to handle speculation checks. + (rtx_needs_barrier): Fixed to handle speculative loads and + their checks. + (ia64_variable_issue): Added code to count speculative loads and their + checks. + (ia64_first_cycle_multipass_dfa_lookahead_guard): Fixed to handle + speculative loads. + (enum SPEC_MODES, enum SPEC_GEN_LD_MAP, SPEC_GEN_CHECK_OFFSET): + New enumerations. + (SPEC_GEN_EXTEND_OFFSET, SPEC_N, SPEC_GEN_CHECK_MUTATION_OFFSET): + New constants. + (ia64_ld_address_bypass_p): Fixed to handle speculative loads. + (ia64_reorg): Reset stops_p to NULL after it is freed. + * config/ia64/ia64.md (UNSPEC_LDA, UNSPEC_LDS, UNSPEC_LDSA, + UNSPEC_LDCCLR, UNSPEC_CHKACLR, UNSPEC_CHKS): New constants. + (itanium_class): chk_s renamed to chk_s_i. New constants: chk_s_f, + chk_a. + (data_speculative, control_speculative, check_load): New attributes. + (mov_advanced, mov_speculative, + mov_speculative_advanced, zero_extenddi2_advanced, + zero_extenddi2_speculative, + zero_extenddi2_speculative_advanced): New patterns for + data and control speculative loads. + (mov_clr, zero_extenddi2_clr): New patterns for + check loads. + (advanced_load_check_clr_, speculation_check_): + New pattern for data and control speculation checks. + (MODE, MODE_FOR_EXTEND, output_a, output_s, output_sa, output_c_clr, + ld_reg_constr, ldc_reg_constr, chk_reg_constr, mem_constr, + reg_pred_prefix, ld_class, chka_class, chks_class, attr_yes): + Auxiliary definitions for the patterns. + * config/ia64/itanium1.md (1_fldc, 1_fldpc, 1_ldc, 1_chk_s_f, 1_chk_a, + 1b_fldc, 1b_fldpc, 1b_ldc, 1b_chk_s_f, 1b_chk_a): New resource + constraints. + (1_fld, 1_fldp, 1_ld, 1b_fld, 1b_fldp, 1b_ld): Add a condition + for speculation. + (1_chk_s, 1b_chk_s): Renamed to 1_chk_s_i, 1b_chk_s_i. + * config/ia64/itanium2.md (2_flda, 2_fldc, 2_fldpc, 2_ldc, 2_chk_s_f, + 2_chk_a, 2b_flda, 2b_fldc, 2b_fldpc, 2b_ldc, 2b_chk_s_f, 2b_chk_a): + New resource constraints. + (2_fld, 2_fldp, 2_ld, 2b_fld, 2b_fldp, 2b_ld): Add a condition + for speculation. + (2_chk_s, 2b_chk_s): Renamed to 2_chk_s_i, 2b_chk_s_i. + * config/ia64/ia64.opt (msched-br-data-spec, msched-ar-data-spec, + msched-control-spec, msched-br-in-data-spec, msched-ar-in-data-spec, + msched-in-control-spec, msched-ldc, msched-control-ldc, + msched-spec-verbose, msched-prefer-non-data-spec-insns, + msched-prefer-non-control-spec-insns, + msched-count-spec-in-critical-path): New flags to tune speculative + scheduling. + * doc/invoke.texi (msched-br-data-spec, msched-ar-data-spec, + msched-control-spec, msched-br-in-data-spec, msched-ar-in-data-spec, + msched-in-control-spec, msched-ldc, msched-control-ldc, + msched-spec-verbose, msched-prefer-non-data-spec-insns, + msched-prefer-non-control-spec-insns, + msched-count-spec-in-critical-path): Document new flags. + +2006-03-16 Maxim Kuvyrkov + + * target.h (struct spec_info_def): New opaque declaration. + (struct gcc_target.sched): New fields: adjust_cost_2, h_i_d_extended, + speculate_insn, needs_block_p, gen_check, + first_cycle_multipass_dfa_lookahead_guard_spec, set_sched_flags. + * target-def.h (TARGET_SCHED_ADJUST_COST_2, + TARGET_SCHED_H_I_D_EXTENDED, TARGET_SCHED_SPECULATE_INSN, + TARGET_SCHED_NEEDS_BLOCK_P, TARGET_SCHED_GEN_CHECK, + TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC, + TARGET_SCHED_SET_SCHED_FLAGS): New macros to initialize fields in + gcc_target.sched. + (TARGET_SCHED): Use new macros. + * rtl.h (copy_DEPS_LIST_list): New prototype. + * sched-int.h (struct sched_info): Change signature of new_ready field, + adjust all initializations. New fields: add_remove_insn, + begin_schedule_ready, add_block, advance_target_bb, fix_recovery_cfg, + region_head_or_leaf_p. + (struct spec_info_def): New structure declaration. + (spec_info_t): New typedef. + (struct haifa_insn_data): New fields: todo_spec, done_spec, check_spec, + recovery_block, orig_pat. + (glat_start, glat_end): New variables declaraions. + (TODO_SPEC, DONE_SPEC, CHECK_SPEC, RECOVERY_BLOCK, ORIG_PAT): + New access macros. + (enum SCHED_FLAGS): New constants: SCHED_RGN, SCHED_EBB, + DETACH_LIFE_INFO, USE_GLAT. + (enum SPEC_SCHED_FLAGS): New enumeration. + (NOTE_NOTE_BB_P): New macro. + (extend_dependency_caches, xrecalloc, unlink_bb_notes, add_block, + attach_life_info, debug_spec_status, check_reg_live): New functions. + (get_block_head_tail): Change signature to get_ebb_head_tail, adjust + all uses in ddg.c, modulo-sched.c, haifa-sched.c, sched-rgn.c, + sched-ebb.c + (get_dep_weak, ds_merge): Prototype functions from sched-deps.c . + * ddg.c (get_block_head_tail): Adjust all uses. + * modulo-sched.c (get_block_head_tail): Adjust all uses. + (sms_sched_info): Initialize new fields. + (contributes_to_priority): Removed. + * haifa-sched.c (params.h): New include. + (get_block_head_tail): Adjust all uses. + (ISSUE_POINTS): New macro. + (glat_start, glat_end): New global variables. + (spec_info_var, spec_info, added_recovery_block_p, nr_begin_data, + nr_be_in_data, nr_begin_control, nr_be_in_control, bb_header, + old_last_basic_block, before_recovery, current_sched_info_var, + rgn_n_insns, luid): New static variables. + (insn_cost1): New function. Move logic from insn_cost to here. + (find_insn_reg_weight1): New function. Move logic from + find_insn_reg_weight to here. + (reemit_notes, move_insn, max_issue): Change signature. + (move_insn1): Removed. + (extend_h_i_d, extend_ready, extend_global, extend_all, init_h_i_d, + extend_bb): New static functions to support extension of scheduler's + data structures. + (generate_recovery_code, process_insn_depend_be_in_spec, + begin_speculative_block, add_to_speculative_block, + init_before_recovery, create_recovery_block, create_check_block_twin, + fix_recovery_deps): New static functions to support + generation of recovery code. + (fix_jump_move, find_fallthru_edge, dump_new_block_header, + restore_bb_notes, move_block_after_check, move_succs): New static + functions to support ebb scheduling. + (init_glat, init_glat1, attach_life_info1, free_glat): New static + functions to support handling of register live information. + (associate_line_notes_with_blocks, change_pattern, speculate_insn, + sched_remove_insn, clear_priorities, calc_priorities, bb_note, + add_jump_dependencies): New static functions. + (check_cfg, has_edge_p, check_sched_flags): New static functions for + consistancy checking. + (debug_spec_status): New function to call from debugger. + (priority): Added code to handle speculation checks. + (rank_for_schedule): Added code to distinguish speculative instructions. + (schedule_insn): Added code to handle speculation checks. + (unlink_other_notes, rm_line_notes, restore_line_notes, rm_other_notes): + Fixed to handle ebbs. + (move_insn): Added code to handle ebb scheduling. + (max_issue): Added code to use ISSUE_POINTS of instructions. + (choose_ready): Added code to choose between speculative and + non-speculative instructions. + (schedule_block): Added code to handle ebb scheduling and scheduling of + speculative instructions. + (sched_init): Initialize new variables. + (sched_finish): Free new variables. Print statistics. + (try_ready): Added code to handle speculative instructions. + * lists.c (copy_DEPS_LIST_list): New function. + * sched-deps.c (extend_dependency_caches): New function. Move logic + from create_dependency_caches to here. + (get_dep_weak, ds_merge): Make global. + * genattr.c (main): Code to output prototype for + dfa_clear_single_insn_cache. + * genautomata.c (DFA_CLEAR_SINGLE_INSN_CACHE_FUNC_NAME): New macros. + (output_dfa_clean_insn_cache_func): Code to output + dfa_clear_single_insn_cache function. + * sched-ebb.c (target_n_insns): Remove. Adjust all users to use + n_insns. + (can_schedule_ready_p, fix_basic_block_boundaries, add_missing_bbs): + Removed. + (n_insns, dont_calc_deps, ebb_head, ebb_tail, last_bb): + New static variables. + (begin_schedule_ready, add_remove_insn, add_block1, advance_target_bb, + fix_recovery_cfg, ebb_head_or_leaf_p): Implement hooks from + struct sched_info. + (ebb_sched_info): Initialize new fields. + (get_block_head_tail): Adjust all uses. + (compute_jump_reg_dependencies): Fixed to use glat_start. + (schedule_ebb): Code to remove unreachable last block. + (schedule_ebbs): Added code to update register live information. + * sched-rgn.c (region_sched_info): Initialize new fields. + (get_block_head_tail): Adjust all uses. + (last_was_jump): Removed. Adjust users. + (begin_schedule_ready, add_remove_insn, insn_points, extend_regions, + add_block1, fix_recovery_cfg, advance_target_bb, region_head_or_leaf_p): + Implement new hooks. + (check_dead_notes1): New static function. + (struct region): New fields: dont_calc_deps, has_real_ebb. + (RGN_DONT_CALC_DEPS, RGN_HAS_REAL_EBB): New access macros. + (BB_TO_BLOCK): Fixed to handle EBBs. + (EBB_FIRST_BB, EBB_LAST_BB): New macros. + (ebb_head): New static variable. + (debug_regions, contributes_to_priority): Fixed to handle EBBs. + (find_single_block_regions, find_rgns, find_more_rgns): Initialize + new fields. + (compute_dom_prob_ps): New assertion. + (check_live_1, update_live_1): Fixed to work with glat_start instead of + global_live_at_start. + (init_ready_list): New assertions. + (can_schedule_ready_p): Split update code to begin_schedule_ready. + (new_ready): Add support for BEGIN_CONTROL speculation. + (schedule_insns): Fixed code that updates register live information + to handle EBBs. + (schedule_region): Fixed to handle EBBs. + (init_regions): Use extend_regions and check_dead_notes1. + * params.def (PARAM_MAX_SCHED_INSN_CONFLICT_DELAY, + PARAM_SCHED_SPEC_PROB_CUTOFF): New parameters. + * doc/tm.texi (TARGET_SCHED_ADJUST_COST_2, TARGET_SCHED_H_I_D_EXTENDED, + TARGET_SCHED_SPECULATE_INSN, TARGET_SCHED_NEEDS_BLOCK_P, + TARGET_SCHED_GEN_CHECK, + TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC, + TARGET_SCHED_SET_SCHED_FLAGS): Document. + * doc/invoke.texi (max-sched-insn-conflict-delay, + sched-spec-prob-cutoff): Document. + +2006-03-16 Maxim Kuvyrkov + + * sched-int.h (struct haifa_insn_data): New fields: resolved_deps, + inter_tick, queue_index. + (struct sched_info): Change signature of init_ready_list field. + Adjust all initializations. + (RESOLVED_DEPS): New access macro. + (ready_add): Remove prototype. + (try_ready): Add prototype. + * sched-rgn.c (init_ready_list): Use try_ready. + (schedule_region): Initialize + current_sched_info->{sched_max_insns_priority, queue_must_finish_empty}. + * sched-ebb.c (new_ready): Remove. Adjust ebb_sched_info. + (init_ready_list): Use try_ready. + (schedule_ebb): Initialize current_sched_info->sched_max_insns_priority. + * lists.c (remove_list_elem): Remove `static'. + (remove_free_INSN_LIST_elem): New function. + * rtl.h (remove_list_elem, remove_free_INSN_LIST_elem): Add prototypes. + * haifa-sched.c (INTER_TICK, QUEUE_INDEX): New macros. + (INVALID_TICK, MIN_TICK, QUEUE_SCHEDULED, QUEUE_NOWHERE, QUEUE_READY): + New constants. + (readyp): New variable. + (queue_remove, ready_remove_insn, fix_inter_tick, fix_tick_ready, + change_queue_index, resolve_dep): New static functions. + (try_ready): New function. Adjust callers in sched-rgn.c and + sched-ebb.c to use it instead of ready_add. + (clock_var): Move at the begining of file. + (rank_for_schedule): Fix typo. + (queue_insn): Add assertion. Handle QUEUE_INDEX. + (ready_lastpos): Enforce assertion. + (ready_add): Make it static. Handle QUEUE_INDEX. Add new argument, + update all callers. + (ready_remove_first, ready_remove): Handle QUEUE_INDEX. + (schedule_insn): Rewrite to use try_ready and resolve_dep. + (queue_to_ready): Use free_INSN_LIST_list. + (early_queue_to_ready): Fix typo. + (schedule_block): Init readyp. Move init_ready_list call after the + initialization of clock_var. Fix error in rejecting insn by + targetm.sched.dfa_new_cycle. Add call to fix_inter_tick. Remove code + that previously corrected INSN_TICKs. Add code for handling + QUEUE_INDEX. + (set_priorities): Fix typo. + (sched_init): Initialize INSN_TICK, INTER_TICK and QUEUE_INDEX. + Clarify comment and code that keeps current_sched_info->next_tail + non-null. + +2006-03-16 Maxim Kuvyrkov + + * sched-rgn.c (extend_rgns): New static function. + (find_rgns): Use it. + (gather_region_statistics, print_region_statistics): New static + functions. + * params.def (PARAM_MAX_SCHED_EXTEND_REGIONS_ITERS): New parameter. + * doc/invoke.texi (max-sched-extend-regions-iters): Document. + +2006-03-16 Maxim Kuvyrkov + Andrey Belevantsev + + * ddg.c (build_intra_loop_deps): Adjust add_forward_dependence call. + * lists.c (unused_deps_list): New variable. + (free_list): Add assertions to verify the proper distinguishing + between INSN_LISTs and DEPS_LISTs. + (find_list_elem, remove_list_elem, remove_list_node): New static + functions. + (alloc_DEPS_LIST, free_DEPS_LIST, free_DEPS_LIST_node, + remove_free_INSN_LIST_elem, remove_free_DEPS_LIST_elem, + remove_free_INSN_LIST_node, remove_free_DEPS_LIST_node): New functions. + (alloc_INSN_LIST): Assert that the list we're working on is indeed + an INSN_LIST. + (free_INSN_LIST_node): Likewise. + * modulo-sched.c (current_sched_info): Initialize flags field. + * reg-notes.def: Exchange DEP_ANTI and DEP_OUTPUT. + * rtl.def (DEPS_LIST): Define. + * rtl.h: Declare new functions from lists.c. + * sched-deps.c (spec_dependency_cache): New static variable. + (maybe_add_or_update_back_dep_1, add_back_dep): New static functions. + (add_dependence): Change return type to void. Move the logic to ... + (add_or_update_back_dep_1): ... here. Handle speculative dependencies. + (delete_all_dependences): Add comment about forward_dependency_cache. + Handle spec_dependency_cache. Handle DEPS_LISTs. + (fixup_sched_groups): Clarify the change of priority of output + and anti dependencies. + (sched_analyze_2): Adjust add_dependence calls to create data + speculative dependence. + (add_forward_dependence): Renamed to add_forw_dep, change prototype. + Adjust all callers. Handle DEPS_LISTS. + (compute_forward_dependences): Use add_forw_dep. Sort LOG_LINKs in + presence of speculation. + (init_dependency_caches, free_dependency_caches): + Handle spec_dependency_cache. + (adjust_add_sorted_back_dep, adjust_back_add_forw_dep, delete_forw_dep, + estimate_dep_weak, get_dep_weak, ds_merge, check_dep_status): + New static functions. + (add_or_update_back_dep, add_or_update_back_forw_dep, + add_back_forw_dep, delete_back_forw_dep): New functions. + * sched-int.h (ds_t, dw_t): New typedefs. + (struct sched_info): Add new field flags. + (struct haifa_insn_data): Add new bitfield has_internal_dep. + Prototype new sched-deps.c functions. + (HAS_INTERNAL_DEP, DEP_STATUS): New access macros. + (BITS_PER_DEP_STATUS, BITS_PER_DEP_WEAK, DEP_WEAK_MASK, MAX_DEP_WEAK, + MIN_DEP_WEAK, NO_DEP_WEAK, UNCERTAIN_DEP_WEAK, BEGIN_DATA, BE_IN_DATA, + BEGIN_CONTROL, BE_IN_CONTROL, BEGIN_SPEC, DATA_SPEC, CONTROL_SPEC, + SPECULATIVE, BE_IN_SPEC, FIRST_SPEC_TYPE, LAST_SPEC_TYPE, + SPEC_TYPE_SHIFT, DEP_TRUE, DEP_OUTPUT, DEP_ANTI, DEP_TYPES, HARD_DEP): + New constants. + (enum SPEC_TYPES_OFFSETS, enum DEPS_ADJUST_RESULT, enum SCHED_FLAGS): + New enums. + * sched-rgn.c (current_sched_info): Initialize flags field. + (schedule_insns): Initialize current_sched_info before the sched_init + call. + * sched-ebb.c (current_sched_info): Initialize flags field. + (add_deps_for_risky_insns): Use control_flow_insn_p instead of JUMP_P. + Call add_or_update_back_dep instead of add_dependence. + Create control speculative dependencies. + (schedule_insns): Initialize current_sched_info before the sched_init + call. + +2006-03-16 Kaz Kojima + + * config/sh/linux-unwind.h (shmedia_fallback_frame_state): Set + fs->signal_frame. + (sh_fallback_frame_state): Likewise. + +2006-03-15 Geoffrey Keating + + * config.gcc (*-*-darwin*): Don't build crt2.o for all Darwin ports. + Do switch on default_use_cxa_atexit. + (powerpc*-*-darwin*): Build crt2.o on powerpc. + * config/darwin-crt3.o: New. + * config/darwin.h (LINK_SPEC): If -shared-libgcc, make linker default + to 10.3. Pass '-multiply_defined suppress' if crt3.o is in use. + (STARTFILE_SPEC): Add crt3.o when -shared-libgcc and appropriate + OS version. + * config/rs6000/t-darwin: Move crt2.o building to here. + * config/rs6000/darwin.h (C_COMMON_OVERRIDE_OPTIONS): Update + Mac OS version for using __cxa_get_exception_ptr. Don't test versions + of __cxa_atexit. + +2006-03-15 Jan-Benedict Glaw + + * config/vax/vax.c (nonindexed_address_p): Change logical negation + from '! xxx' to '!xxx' for coding-style conformance. + * config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Likewise. + (EXTRA_CONSTRAINT): Likewise. + * config/vax/vax.md (four unnamed insns): Likewise. + +2006-03-15 Paul Brook + + * config/arm/arm.c (minipool_pad): New. + (add_minipool_forward_ref): Include pool alignment padding in address + calculation. + (push_minipool_fix): Set minipool_pad. + (minipool_pad): Ditto. + +2006-03-15 Jan-Benedict Glaw + + * config/vax/vax.c (split_quadword_operands): Use MEM_P() + instead of GET_CODE() == MEM and REG_P() instead of + GET_CODE() == REG. + (print_operand_address): Likewise. + (vax_address_cost): Likewise. + (vax_rtx_costs): Likewise. + (vax_notice_update_cc): Likewise. + (vax_output_int_add): Likewise. + (INDEX_REGISTER_P): Likewise. + (BASE_REGISTER_P): Likewise. + (nonindexed_address_p): Likewise. + (vax_mode_dependent_address_p): Likewise. + * config/vax/vax.h (EXTRA_CONSTRAINT): Likewise. + (PRINT_OPERAND): Likewise. + * config/vax/vax.md (ashlsi3): Likewise. + (ashlsi3): Likewise. + (some more unnamed insns): Likewise. + +2006-03-15 Kazu Hirata + + * tree-ssa-dce.c (EXECUTE_IF_CONTROL_DEPENDENT): Make it an + iterator-style macro. + (mark_control_dependent_edges_necessary): Update the use of + EXECUTE_IF_CONTROL_DEPENDENT. + +2006-03-15 J"orn Rennecke + + * config/sh/predicates.md (cache_address_operand): Special. + (ua_address_operand): Likewise. + +2006-03-15 Zdenek Dvorak + + * haifa-sched.c (unlink_other_notes, reemit_notes): Do not handle + loop notes. + * sched-deps.c (sched_analyze_insn, sched_analyze): Ditto. + +2006-03-15 Andreas Schwab + + * gensupport.c (identify_predicable_attribute): Don't free p_false + when it is still in use. + +2006-03-15 Eric Botcazou + + * config.gcc (default with_cpu setting) : Do not modify + the default setting here. + +2006-03-14 Steven Bosscher + + * tree-pass.h (pass_cfg): Remove. + * alias.c (rest_of_handle_cfg, pass_cfg): Remove. + * passes.c (pass_cfg): Don't run it. + +2006-03-14 Kazu Hirata + + * Makefile.in (reg-stack.o): Don't depend on gt-reg-stack.h. + * reg-stack.c (stack_regs_mentioned_data): Change the type to + VEC(char,heap) *. + (stack_regs_mentioned): Update the uses of + stack_regs_mentioned_data. Don't access the array beyond its + end. + (reg_to_stack): Update the uses of stack_regs_mentioned_data. + Don't include gt-reg-stack.h. + + * config/bfin/bfin.h (UNALIGNED_WORD_ASM_OP): Remove. + * system.h (UNALIGNED_WORD_ASM_OP): Poison. + + * combine.c (UWIDE_SHIFT_LEFT_BY_BITS_PER_WORD): Remove. + + PR middle-end/26684 + * reg-stack.c (stack_regs_mentioned_data): Put it undef #ifdef + STACK_REGS. + +2006-03-14 John David Anglin + + * pa/pa32-linux.h (CRT_CALL_STATIC_FUNCTION): Fix typo. + +2006-03-14 Richard Guenther + + PR tree-optimization/26672 + * tree-ssa-propagate.c (set_rhs): Don't walk DEFs if not in + SSA form. + +2006-03-14 Richard Guenther + + PR tree-optimization/26667 + * ipa-inline.c (cgraph_check_inline_limits): Walk the correct + node for the callees. Always allow inlining if it will shrink + the function size. + +2006-03-14 Richard Guenther + + PR middle-end/26659 + * builtins.c (get_pointer_alignment): Prefer alignment + information from decls over that from types. + +2006-03-14 Andrew Pinski + + PR target/26657 + * config/darwin.h (LINK_COMMAND_SPEC): Handle -fopenmp. + +2006-03-14 Joseph S. Myers + + * config/rs6000/rs6000.opt (mdlmzb): New option. + (msched-prolog, msched-epilog): Use Var not Mask. + * doc/invoke.texi (-mdlmzb): Document. + * config/rs6000/rs6000.c (TARGET_DEFAULT_TARGET_FLAGS): Remove + MASK_SCHED_PROLOG. + (rs6000_override_options): Enable -mdlmzb for 405 and 440. + * config/rs6000/rs6000.md: Add dlmzb support for 405 and 440. + +2006-03-13 Uttam Pawar + + PR rtl-optimization/25739 + * bt-load.c (augment_live_range): Free tos pointer. + + * gensupport.c (identify_predicable_attribute): Free + p_false pointer. + * gcov.c (create_file_names): Free name pointer. + +2006-03-13 Roger Sayle + + PR middle-end/26557 + * stmt.c (emit_case_nodes): Handle the case where the index is a + CONST_INT, where the comparison mode is specified by the index type. + +2006-03-13 John David Anglin + + * pa/pa32-linux.h (CRT_CALL_STATIC_FUNCTION): Define when CRTSTUFFS_O + is defined. + +2006-03-13 Richard Sandiford + + * config/mips/mips.md (*branch_fp): Use %Z2 for the condition. + (*branch_fp_inverted): Likewise. + +2006-03-13 Jakub Jelinek + + PR middle-end/25989 + * omp-low.c (expand_omp_for_generic): Mark istart0 + and iend0 as addressable. + +2006-03-13 Jie Zhang + + * config/bfin/uclinux.h: Define _GNU_SOURCE in CPLUSPLUS_CPP_SPEC. + +2006-03-13 Jeff Law + + * tree-vrp.c (stmt_interesting_for_vrp): Some statements with + virtual operands are interesting. + (vrp_visit_stmt): Corresponding changes. + +2006-03-13 Bernd Schmidt + + * config/bfin/lib1funcs.asm (___umodsi3): Use stack to save contents + of RETS. + * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): If + TARGET_ID_SHARED_LIBRARY, define __ID_SHARED_LIB__. + * config/bfin/crti.S: Use it instead of __PIC__. + * config/bfin/crtn.S: Likewise. + + * config/bfin/bfin.md (call_value_symbol, sibcall_value_symbol, + call_symbol, sibcall_symbol): Disallow if TARGET_ID_SHARED_LIBRARY, + not if flag_pic. + Lose 'G' modifier for call operand. + * config/bfin/bfin.c (print_operand) : Don't + recognize 'G' modifier. + +2006-03-13 Eric Botcazou + + PR middle-end/18859 + * gimplify.c (gimplify_switch_expr): Discard empty ranges. + * stmt.c (expand_case): Likewise. + +2006-03-13 Zdenek Dvorak + + PR rtl-optimization/26254 + * loop-invariant.c (seq_insns_valid_p): New function. + (move_invariant_reg): Only emit new code if it is valid. + +2006-03-13 Zdenek Dvorak + + * cfgrtl.c (last_loop_beg_note, back_edge_of_syntactic_loop_p): + Removed. + (force_nonfallthru_and_redirect): Do not use last_loop_beg_note. + (rtl_split_edge): Do not use back_edge_of_syntactic_loop_p. + (commit_one_edge_insertion): Do not look for loop notes. + +2006-03-13 Zdenek Dvorak + + * jump.c (follow_jumps): Do not check for loop notes. Move check for + flag_test_coverage out of loop. + +2006-03-13 Zdenek Dvorak + + * final.c (shorten_branches): Remove outdated comment, and turn + the if branch that guards it to continue. + +2006-03-13 Zdenek Dvorak + + * cfgloop.c (flow_loop_dump): Do not dump loop->invalid field. + * cfgloop.h (struct loop): Remove unused fields. + +2006-03-13 Kazu Hirata + + * doc/invoke.texi (-fdump-rtl-loop): Remove. + (-dL, -fdump-rtl-loop2): Update the dump file names + + * doc/invoke.texi: Update dump file names. + +2006-03-12 Steven Bosscher + + * predict.c (estimate_probability): Remove. + * profile.c (rest_of_handle_branch_prob, pass_branch_prob): Remove. + * basic-block.h (estimate_probability): Remove prototype. + * passes.c (finish_optimization_passes): Dump branch prediction or + profiling heuristics to the .profile tree dump. + (init_optimization_passes): Unqueue pass_branch_prob. + + * doc/invoke.texi (-fdump-rtl-bp): Remove. + +2006-03-11 Steven Bosscher + + * rtl.def (LABEL_REF): Remove the field for LABEL_NEXTREF. + * rtl.h (LABEL_NEXTREF): Remove field accessor. + +2006-03-11 Eric Botcazou + + * function.h (frame_offset_overflow): Declare. + * function.c (frame_offset_overflow): New function. + (assign_stack_local_1): Call it to detect that the offset overflows. + * cfgexpand.c (alloc_stack_frame_space): Likewise. + +2006-03-11 Steven Bosscher + + * config/sh/sh.c: Include alloc-pool.h. + (label_ref_list_pool): New alloc pool. + (label_ref_list_t): New type for lists of labels. + (struct pool_node): Make wend a label_ref_list_t. + (add_constant): Use the new type, eradicate LABEL_NEXTREF + references. + (dump_table): Likewise. + (sh_reorg): Set up the alloc pool before using add_constant and + dump_table, and destroy it when finishing. + +2006-03-11 Richard Sandiford + + * config/mips/mips.c: Remove redundant comment. + +2006-03-10 Jason Merrill + + PR c/26004 + * gimplify.c (gimplify_modify_expr_rhs): Don't do return slot opt if + the target was declared 'register'. + +2006-03-10 Adam Nemet + + * genpreds.c (write_insn_constraint_len): Change definition of + insn_constraint_len to return size_t to match the declaration. + +2006-03-10 DJ Delorie + + * config/m32c/m32c.c (m32c_const_ok_for_constraint_p): Bit numbers + start at zero. + (m32c_expand_insv): Fix test for an AND mask. + +2006-03-10 Richard Guenther + + PR middle-end/26565 + * builtins.c (get_pointer_alignment): Handle component + references for field alignment. + +2006-03-10 J"orn Rennecke + + * config.gcc (sh*-superh-elf, sh*elf (newlib)): Use newlib.h + when building with libgloss. + (sh*elf): Implement --without-fp option. + (sh64-superh-linux*): Don't multilib. + +2006-03-10 J"orn Rennecke + + * struct-equiv.c (rtx_equiv_p): Fix POST_MODIFY case. + +2006-03-09 Andrew Pinski + + * tree-ssa-phiopt.c (tree_ssa_phiopt): Add cfgchanged variable. + Set it when one of the replacement functions returned true. + Return TODO_cleanup_cfg if cfgchanged is true. + (pass_phiopt) : Remove TODO_cleanup_cfg. + +2006-03-09 Adam Nemet + + * combine.c (simplify_shift_const_1): Use gen_lowpart_or_truncate + instead of gen_lowpart. + +2006-03-09 Richard Sandiford + + * config/mips/mips-protos.h (mips_output_conditional_branch): Change + interface. + (mips_output_order_conditional_branch): Declare. + * config/mips/mips.h (MIPS_BRANCH): New macro. + * config/mips/mips.c (gen_conditional_branch): Use VOIDmode + for the comparison. Use gen_condjump. + (mips_output_conditional_branch): Rework interface to take the + asm templates for a direct branch and the inverse of a direct branch. + (mips_output_order_conditional_branch): New function. + (mips_builtin_branch_and_move): New function. + (mips_expand_builtin_compare): Use it. Use VOIDmode for the + branch condition. Use gen_single_cc as the condition for + __builtin_mips_upper_* or __builtin_mips_lower_*. + (mips_expand_builtin_bposge): Use mips_builtin_branch_and_move. + Use VOIDmode for the branch condition. + * config/mips/predicates.md (order_operator): New predicate. + * config/mips/mips.md (UNSPEC_SINGLE_CC): New constant. + (branch_fp): Rename to... + (*branch_fp): ...this. Remove mode from comparison operator. + Use new mips_output_conditional_branch interface. + (branch_fp_inverted): Rename to... + (*branch_fp_inverted): ...this and update as for *branch_fp. + (*branch_zero): Rename to... + (*branch_order): ...this. Remove mode from comparison operator. + Use mips_output_order_conditional_branch. Only accept ordered + comparisons. + (*branch_zero_inverted): Rename to... + (*branch_order_inverted): ...this and update as for + *branch_order. + (*branch_equality): Accept zero as the second operand to + the equality operator. Use the new mips_output_conditional_branch + interface. + (*branch_equality_inverted): Likewise. + (condjump): New expander. + * config/mips/mips-dsp.md (mips_bposge): Remove mode from comparison + operator. + * config/mips/mips-ps-3d.md (bc1any4t, bc1any4f): Likewise. + (bc1any2t, bc1any2f): Likewise. + (single_cc): New expander. + (*branch_upper_lower, *branch_upper_lower_inverted): New patterns. + +2006-03-09 Richard Sandiford + + * doc/md.texi: Update documentation of MIPS constraints. + * config/mips/constraints.md: New file. + * config/mips/mips.md: Include it. + * config/mips/mips.c (mips_char_to_class): Delete. + (override_options): Don't initialize mips_char_to_class. + * config/mips/mips.h (mips_char_to_class): Delete. + (REG_CLASS_FROM_LETTER): Delete. + (CONST_OK_FOR_LETTER_P): Delete. + (CONST_DOUBLE_OK_FOR_LETTER_P): Delete. + (EXTRA_CONSTRAINT_Y): Delete. + (EXTRA_CONSTRAINT_STR): Delete. + (CONSTRAINT_LEN): Delete. + (EXTRA_MEMORY_CONSTRAINT): Delete. + +2006-03-09 Diego Novillo + + * tree-cfg.c (move_block_to_fn): Remove the statements from the + original fn's eh regions. + +2006-03-09 Eric Botcazou + + * fold-const.c (build_range_check): Make sure to use a valid type to + apply the "(c>=low) && (c<=high) into (c-low>=0) && (c-low<=high-low)" + transformation. + + (range_predecessor): New static function. + (range_successor): Likewise. + (merge_ranges): Use them to compute predecessors and successors of + range bounds. + +2006-03-09 Roger Sayle + + PR middle-end/26561 + * fold-const.c (fold_div_compare): When optimizing X/C1 op C2 as + X op C3, consider whether C3 overflows towards +Inf or -Inf. + +2006-03-08 DJ Delorie + + * config/m32c/addsub.md (addqi3): Disparage a0/a1. + (addpsi3): Expand to include memory operands. Remove + reload-specific splits. + * config/m32c/bitops.md (bset_qi, bset_hi, bclr_qi): New. + (andqi3_16, andhi3_16, iorqi3_16, iorhi3_16): New. + (andqi3_24, andhi3_24, iorqi3_24, iorhi3_24): New. + (andqi3, andhi3, iorqi3, iorhi3): Convert to expanders. + (shift1_qi, shift1_hi, insv): New. + * config/m32c/cond.md (cbranchqi4, cbranchhi4): Remove. + (cbranch4, stzx_16, stzx_24_, stzx_reversed, + cmp, b, s, s_24, movqicc, movhicc, + cond_to_int): New. + * config/m32c/m32c-protos.h: Update as needed. + * config/m32c/m32c.c (m32c_reg_class_from_constraint): Don't + default the Rcr, Rcl, Raw, and Ral constraints. Add Ra0 and Ra1. + Fail for unrecognized R* constraints. + (m32c_cannot_change_mode_class): Be more picky about pseudos. + (m32c_const_ok_for_constraint_p): Add Imb, Imw, and I00. + (m32c_extra_constraint_p2): Allow (mem (plus (plus fb int) int)). + Add Sp constraint. + (m32c_init_libfuncs): New. + (m32c_legitimate_address_p): Add debug wrapper. + (m32c_rtx_costs): New. + (m32c_address_cost): New. + (conversions): Add 'B' prefix. + (m32c_print_operand): 'h' and 'H' pick lower and upper halves of + operands, or word regnames for QI operands. 'B' prints bit + position. + (m32c_expand_setmemhi): New. + (m32c_expand_movmemhi): New. + (m32c_expand_movstr): New. + (m32c_expand_cmpstr): New. + (m32c_prepare_shift): Shift counts are limited to 16 bits at a time. + (m32c_expand_neg_mulpsi3): Handle non-ints. + (m32c_cmp_flg_0): New. + (m32c_expand_movcc): New. + (m32c_expand_insv): New. + (m32c_scc_pattern): New. + * config/m32c/m32c.h (reg classes): Add AO_REGS and A1_REGS. Take + a0/a1 out of SIregs. + (STORE_FLAG_VALUE): New. + * config/m32c/m32c.md: Add unspecs for string moves. Define various mode and + code macros. + (no_insn): New. + * config/m32c/mov.md: Make constraints more liberal. + (zero_extendqihi2): Optimize r0/r1 case. + * config/m32c/muldiv.md (mulpsi3): Check for intvals. + * config/m32c/predicates.md (m32c_any_operand): New. + (m32c_nonimmediate_operand): New. + (m32c_hl_operand): New. + (m32c_r3_operand): New. + (ap_operand): New. + (ma_operand): New. + (memsym_operand): New. + (memimmed_operand): New. + (a_qi_operand): New. + (m32c_eqne_operator): New. + (m32c_1bit8_operand): New. + (m32c_1bit16_operand): New. + (m32c_1mask8_operand): New. + (m32c_1mask16_operand): New. + * config/m32c/blkmov.md: New file. + * config/m32c/t-m32c (MD_FILES): Add blkmov. + +2006-03-08 Andreas Tobler + + * dwarf2out.c (expand_builtin_dwarf_sp_column): Make dwarf_regnum + unsigned to fix signed/unsigned comparison issue in + DWARF2_FRAME_REG_OUT. + (expand_builtin_init_dwarf_reg_sizes): Make i unsigned to fix signed/ + unsigned comparison issue in DWARF2_FRAME_REG_OUT. + + * tree-ssa-operands.c (finalize_ssa_def_ops): Move the declaration + of ptr into the ENABLE_CHECKING section. + +2006-03-08 Jeff Law + + * tree-vrp.c (infer_value_range): Only count pointer uses + and dereferences if -fdelete-null-pointer-checks is enabled. + + * tree-vrp.c (find_assert_locations): Infer value ranges for + single use pointers, but do not create ASSERT_EXPRs for them. + When a non-null range is inferred for a pointer, backwards + propagate that range to other equivalent pointers through the + use-def chain. + +2006-03-08 Paolo Bonzini + + PR bootstrap/26500 + * Makefile.in (dvi, html, install-info): Invoke the corresponding + language hook targets. + * ada/Make-lang.in, cp/Make-lang.in, objc/Make-lang.in, + objcp/Make-lang.in: Create stub rules for dvi, html, install-info + if language hook targets were missing. + +2006-03-07 Zdenek Dvorak + + * tree-ssa-opfinalize.h: Removed. + * Makefile.in (tree-ssa-operands.o): Remove tree-ssa-opfinalize.h + dependency. + * tree-ssa-operands.c: Do not include tree-ssa-opfinalize.h. + (ALLOC_OPTYPE, APPEND_OP_AFTER, MOVE_HEAD_AFTER, MOVE_HEAD_TO_FREELIST, + INITIALIZE_USE, add_def_op, add_use_op, add_vuse_op, add_maydef_op, + add_mustdef_op, finalize_ssa_def_ops, finalize_ssa_use_ops, + finalize_ssa_v_may_def_ops, finalize_ssa_vuse_ops, + finalize_ssa_v_must_def_ops): New. + +2006-03-07 Kenneth Zadeck + + * df-scan.c: (df_bb_refs_record): Fix obvious typo with wrong + block as parameter. + +2006-03-07 Geoffrey Keating + + * varasm.c (assemble_end_function): Say that 'fnname' is unused. + + * config/i386/i386.c (ix86_delegitimize_address): Handle Darwin + addresses with offsets; reorganize. + + * dwarf2out.c (DWARF2_FRAME_REG_OUT): Move up in file. + (expand_builtin_dwarf_sp_column): Call DWARF2_FRAME_REG_OUT. + (expand_builtin_init_dwarf_reg_sizes): Likewise. + +2006-03-08 David Billinghurst + + PR target/26588 + * config/i386/cygwin.h (GOMP_SELF_SPECS): Define. + +2006-03-08 Ben Elliston + + * config/fp-bit.h (CMPtype): Typedef to a word mode integer. + +2006-03-07 Aldy Hernandez + + PR gomp/26238 + * doc/passes.texi (Tree-SSA passes): Document omp lowering and + expansion. + +2006-03-07 Richard Guenther + + PR tree-optimization/26587 + * tree-ssa-structalias.c (handle_ptr_arith): Handle MINUS_EXPR. + +2006-03-07 Richard Sandiford + + * varasm.c (assemble_variable): Fix setting of DECL_IN_TEXT_SECTION. + +2006-03-07 Richard Sandiford + + * hooks.c (hook_bool_mode_rtx_true): New function. + * hooks.h (hook_bool_mode_rtx_true): Declare. + * toplev.c (compile_file): Call output_shared_constant_pool. + * varasm.c (shared_constant_pool): New variable. + (assemble_start_function, assemble_end_function): Remove arguments + from call to output_constant_pool. + (create_constant_pool): New function, split out from... + (init_varasm_status): ...here. + (force_const_mem): Choose between the shared and per-function constant + pools. Set current_function_uses_const_pool when reusing old entries + as well as when creating new ones. + (mark_constant): Ignore data argument. + (mark_constants): Remove pool argument. + (mark_constant_pool): Likewise. Use current_function_uses_const_pool + to decide whether the function uses a constant pool. + (output_constant_pool_contents): New function, split out from... + (output_constant_pool): ...here. + (output_shared_constant_pool): New function. + (init_varasm_once): Initialize shared_constant_pool. + * output.h (output_constant_pool): Delete. + (output_shared_constant_pool): Declare. + * config/s390/s390-protos.h (s390_output_constant_pool): Delete. + * config/i386/i386.c (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Override. + +2006-03-06 Nick Clifton + + * config/m32r/m32r.h (OPTIMIZATION_OPTIONS): Remove reference to + flag_strength_reduce. + +2006-03-06 Ben Elliston + + * config.gcc: Add t-dfprules to $tmake_file for i*86-*-linux* and + x86_64-*-linux* configurations. + + * config/dfp-bit.h (CMPtype): Typedef to a word mode integer. + (LIBGCC2_WORDS_BIG_ENDIAN): Define. + +2006-03-05 Kazu Hirata + + * tree-ssa-threadupdate.c (rediscover_loops_after_threading): + Remove. + * basic-block.h: Remove the extern for + rediscover_loops_after_threading. + + * cfgloop.c (cancel_loop): Make it static. + * cfgloop.h: Remove the prototype for cancel_loop. + + * flow.c (recompute_reg_usage): Make it static. + * rtl.h: Remove the prototype for recompute_reg_usage. + + * function.c (use_return_register): Make it static. + * function.h: Remove the prototype. + +2006-03-05 Kazu Hirata + + * recog.c (volatile_mem_p, validate_change_maybe_volatile): + Remove. + * recog.h: Remove the prototype for + validate_change_maybe_volatile. + +2006-03-05 Kazu Hirata + + * rtlanal.c (replace_reg): Remove. + * rtl.h: Remove the prototype for replace_reg. + +2006-03-05 Kazu Hirata + + * regclass.c (reg_scan_update): Remove. + (reg_scan_mark_refs): Remove the last argument. + * rtl.h: Remove the prototype for reg_scan_update. + +2006-03-04 Kazu Hirata + + * builtins.c, c-pragma.h, c-typeck.c, cgraph.c, cgraphunit.c, + combine.c, common.opt, config/dfp-bit.c, config/i386/i386.c, + config/m68k/m68k.c, config/m68k/m68k.md, config/mt/mt.c, + config/mt/mt.h, config/s390/s390.md, df-core.c, df-problems.c, + df-scan.c, df.h, diagnostic.c, expr.c, function.h, gimplify.c, + loop-invariant.c, omp-low.c, opts.c, passes.c, + rtl-factoring.c, rtlanal.c, struct-equiv.c, tree-cfgcleanup.c, + tree-ssa-loop-niter.c, tree-ssa-loop-prefetch.c, + tree-ssa-structalias.c, tree-ssa-threadedge.c, + tree-ssa-threadupdate.c, tree-vect-patterns.c, + tree-vect-transform.c, tree-vectorizer.h, tree-vrp.c, + unwind-dw2.c: Fix comment typos. Follow spelling conventions. + +2006-03-04 Kazu Hirata + + * dwarf2out.c (dwarf2out_add_library_unit_info): Remove. + * dwarf2out.h: Remove the prototype for + dwarf2out_add_library_unit_info. + +2006-03-04 Kazu Hirata + + * tree.c (add_var_to_bind_expr): Remove. + * tree.h: Remove the prototype for add_var_to_bind_expr. + +2006-03-04 Kazu Hirata + + * regclass.c (n_non_fixed_regs): Remove. + (init_reg_sets_1, globalize_reg): Remove all uses of + n_non_fixed_regs. + * hard-reg-set.h: Remove the extern for n_non_fixed_regs. + +2006-03-04 Kazu Hirata + + * rtlanal.c (insns_safe_to_move_p): Remove. + * rtl.h: Remove the prototype for insns_safe_to_move_p. + +2006-03-04 Kazu Hirata + + * expmed.c (expand_mult_add): Remove. + * expr.h: Remove the prototype for expand_mult_add. + +2006-03-04 Jakub Jelinek + + * unwind-dw2.h (_Unwind_FrameState): Add REG_SAVED_VAL_OFFSET + and REG_SAVED_VAL_EXP constants. + * unwind-dw2.c (struct _Unwind_Context): Add by_value array. + (_Unwind_GetGR, _Unwind_SetGR, _Unwind_GetGRPtr, _Unwind_SetGRPtr): + Handle regs stored by value. + (_Unwind_SetGRValue, _Unwind_GRByValue): New functions. + (execute_cfa_program): Handle DW_CFA_val_offset, + DW_CFA_val_offset_sf and DW_CFA_val_expression. + (uw_update_context_1): Handle REG_SAVED_REG with regs stored by + value specially. Handle REG_SAVED_VAL_OFFSET and REG_SAVED_VAL_EXP. + (uw_install_context_1): Handle target regs stored by value. + +2006-03-03 Daniel Berlin + + * tree-sra.c (tree_sra): Return todoflags; + (generate_one_element): Set TODO_update_smt_usage if needed. + (pass_sra): Remove TODO_update_smt_usage. + * tree-ssa-forwprop.c (forward_propagate_addr_expr): Add some + parameter. + (tree_ssa_forward_propagate_single_use_vars): Return + TODO_update_smt_usage if we need to update SMT usage. + (pass_forwprop): Remove TODO_update_smt_usage. + +2006-03-03 Diego Novillo + + * tree-ssa-operands.c: Tidy whitespace. Fix spelling. + (correct_use_link): Remove reference to get_stmt_operands. + (update_stmt_operands): Likewise. + (get_modify_expr_operands): New function factored out of + parse_ssa_operands and get_expr_operands. + Try to create V_MUST_DEFs for LHS by default. + (get_expr_operands) : Call + get_modify_expr_operands. + : Handle together with ARRAY_REF. + : Clear opf_kill_def from FLAGS. + (parse_ssa_operands) : Call + get_modify_expr_operands. + +2006-03-03 Kazu Hirata + + * tree-dfa.c (referenced_var_lookup_if_exists): Remove. + * tree-flow.h: Remove the prototype for + referenced_var_lookup_if_exists. + +2006-03-03 Steve Ellcey + + PR rtl-optimization/26345 + PR target/19061 + * config/ia64/predicates.md (basereg_operand): Don't look in subregs. + +2006-03-03 Roger Sayle + + PR tree-optimization/26524 + * tree-scalar-evolution.c (interpret_rhs_modify_expr): Use + fold_convert to create a constant of the appropriate type. + +2006-03-03 Richard Sandiford + + * doc/tm.texi: Refer to SYMBOL_REF_HAS_BLOCK_INFO_P instead of + SYMBOL_REF_IN_BLOCK_P. + * doc/rtl.texi: Likewise. Refer to SYMBOL_FLAG_HAS_BLOCK_INFO instead + of SYMBOL_FLAG_IN_BLOCK. + * gengtype.c (adjust_field_rtx_def): Use SYMBOL_REF_HAS_BLOCK_INFO_P + instead of SYMBOL_REF_IN_BLOCK_P. + * explow.c (use_anchored_address): Likewise. + * rtl.c (rtx_size): Likewise. + * varasm.c (create_block_symbol): Set SYMBOL_FLAG_HAS_BLOCK_INFO + instead of SYMBOL_FLAG_IN_BLOCK. + (make_decl_rtl): Use SYMBOL_REF_HAS_BLOCK_INFO_P instead of + SYMBOL_REF_IN_BLOCK_P. + (assemble_variable): Likewise. + (output_constant_def_contents): Likewise. + (output_constant_pool): Likewise. + (default_encode_section_info): Preserve SYMBOL_FLAG_HAS_BLOCK_INFO + instead of SYMBOL_FLAG_IN_BLOCK. + * rtl.h (block_symbol): Refer to SYMBOL_REF_HAS_BLOCK_INFO_P instead of + SYMBOL_REF_IN_BLOCK_P. + (SYMBOL_REF_BLOCK): Likewise. + (SYMBOL_REF_OFFSET): Likewise. + (BLOCK_SYMBOL_CHECK): Use SYMBOL_REF_HAS_BLOCK_INFO_P instead of + SYMBOL_REF_IN_BLOCK_P. + (SYMBOL_FLAG_IN_BLOCK): Replace with... + (SYMBOL_FLAG_HAS_BLOCK_INFO): ...this. + (SYMBOL_REF_IN_BLOCK_P): Replace with... + (SYMBOL_REF_HAS_BLOCK_INFO_P): ...this. + +2006-03-03 Jakub Jelinek + + * config/arm/unwind-arm.h (_Unwind_GetIPInfo): Fix pasto. + +2006-03-02 Roger Sayle + + * simplify-rtx.c (simplify_unary_operation): When simplifying + (neg (lt X 0)) into (ashiftrt X C) or (lshiftrt X C), make sure + that we perform the right shift in the appropriate mode, and + then extend or truncate the result to requested mode. + +2006-03-03 Zdenek Dvorak + + * gengtype.c (main): Handle double_int type. + * tree.h (struct tree_int_cst): Make type of int_cst double_int. + * double-int.c: New file. + * double-int.h: New file. + * system.h: Include doubleint.h. + * Makefile.in (SYSTEM_H): Include double-int.h. + (double-int.o): Add. + +2006-03-03 Joseph S. Myers + + PR bootstrap/26478 + * Makefile.in (stmp-int-hdrs): Remove include/unwind.h before + copying over it. + +2006-03-02 Zdenek Dvorak + + * tree-vrp.c (remove_range_assertions): Do not update statements + unnecessarily. + +2006-03-02 Zdenek Dvorak + + * cse.c (rest_of_handle_cse): Do not pass CLEANUP_PRE_LOOP to cfg + cleanup. + * gcse.c (rest_of_handle_gcse): Ditto. + * except.c (gate_handle_eh): Ditto. + * cfgcleanup.c (rest_of_handle_jump2): Ditto. + * basic-block.h (CLEANUP_PRE_LOOP): Remove. + +2006-03-02 Eric Christopher + + * config/i386/i386.c (machopic_output_stub): Add indirection to + jump. + +2006-03-02 Zdenek Dvorak + + * loop.c: Removed. + +2006-03-02 David S. Miller + + Sun Niagara specific optimizations. + * config.gcc: Recognize niagara as target. + * config/sparc/sparc.h (SPARC_RELAXED_ORDERING): Mention Niagara. + (TARGET_CPU_niagara): Define. + (CPP_CPU64_DEFAULT_SPEC): Define __sparc_v9__ for Niagara. + (ASM_CPU64_DEFAULT_SPEC): Pass -Av9b for Niagara. + (CPP_CPU_SPEC): Handle -mcpu=niagara. + (ASM_CPU_SPEC): Likewise. + (PROCESSOR_NIAGARA): New enum entry. + (REGISTER_MOVE_COST): Handle Niagara. + (BRANCH_COST, PREFETCH_BLOCK, SIMULTANEOUS_PREFETCHES): Likewise. + * config/sparc/sparc.c (niagara_costs): New processor_costs entry. + (sparc_override_options): Recognize "niagara", set appropriate + default MASK_* values for it, and align functions to 32-bytes + by default just like ULTRASPARC/ULTRASPARC3. + (sparc_initialize_trampoline): Handle niagara like ultrasparc. + (sparc64_initialize_trampoline): Likewise. + (sparc_use_sched_lookahead): Use zero for niagara. + (sparc_issue_rate): Use one for niagara. + * config/sparc/niagara.md: New file. + * config/sparc/sparc.md: Include it. + * config/sparc/sol2-bi.h (CPP_CPU64_DEFAULT_SPEC, + ASM_CPU32_DEFAULT_SPEC, ASM_CPU64_DEFAULT_SPEC): Set appropriately + when default cpu is niagara. + (CPP_CPU_SPEC): Handle -mcpu=niagara. + (ASM_CPU_SPEC): Likewise. + * config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Set appropriately + when default cpu is niagara. + (ASM_CPU_SPEC): Handle -mcpu=niagara. + * config/sparc/linux64.h: Handle a default of TARGET_CPU_niagara + just like v9/ultrasparc/ultrasparc3. + * doc/invoke.texi: Add documentation for "niagara" and improve + existing documentation for ultrasparc variants. + +2006-03-02 Diego Novillo + + * tree-ssa-operands.c (update_stmt_operands): Update documentation. + +2006-03-02 Richard Sandiford + + * doc/tm.texi (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Document. + (ASM_OUTPUT_BSS): Describe the two ways of handling global BSS, + and say that only one is needed. + * doc/rtl.texi (SYMBOL_REF_BLOCK): Say that the block can be null. + * target.h (have_switchable_bss_sections): New hook. + * explow.c (use_anchored_address): Check that the symbol is in a block. + * varasm.c (tls_comm_section, comm_section, lcomm_section) + (bss_noswitch_section): New variables. + (get_unnamed_section): Add SECTION_UNNAMED to the flags. + (get_noswitch_section): New function. + (get_block_for_section): Allow SECT to be null. + (unlikely_text_section_p): Use SECTION_STYLE. + (bss_initializer_p): New function. + (get_variable_section): Move earlier in file. Take a new argument, + prefer_noswitch_p. Move bss checks from assemble_variable to here. + Return one of the new *_sections in such cases. + (get_block_for_decl): New function, extracting some logic from + use_blocks_for_decl_p. + (change_symbol_section): Remove in favor of... + (change_symbol_block): ...this new function. + (use_blocks_for_decl_p): Remove checks now performed by + get_block_for_decl. + (make_decl_rtl): Use change_symbol_block and get_block_for_decl. + (ASM_EMIT_LOCAL, ASM_EMIT_BSS, ASM_EMIT_COMMON): Delete in favor of... + (emit_local, emit_bss, emit_common): ...these new functions. + Return true if the alignment was honored. + (emit_tls_common): New function. + (asm_emit_uninitialised): Delete. + (assemble_variable_noswitch): New function, split out from... + (assemble_variable): ...here. Don't make decisions about common + variables here. Globalize all public decls that go into non-common + sections. Check whether SYMBOL_REF_BLOCK is null. + (output_constant_def_contents): Check whether SYMBOL_REF_BLOCK is null. + (output_constant_pool): Likewise. + (init_varasm_once): Initialize the new section variables. + (have_global_bss_p): New function. + (categorize_decl_for_section): Use bss_initializer_p. + (switch_to_section): Use SECTION_STYLE. Abort for SECTION_NOSWITCH. + (place_block_symbol): Assert that the symbol must be in a block. + * target-def.h (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): New macro. + (TARGET_INITIALIZER): Include it. + * rtl.h (SYMBOL_REF_BLOCK): Document the null alternative. + * output.h (SECTION_STYLE_MASK, SECTION_COMMON): New macros. + (SECTION_MACH_DEP): Bump by two. + (SECTION_UNNAMED, SECTION_NOSWITCH): New macros. + (unnamed_section): Mention SECTION_UNNAMED in comment. + (named_section): Likewise SECTION_NAMED. + (noswitch_section_callback): New type. + (noswitch_section): New structure. + (section): Add a noswitch_section alternative. + (SECTION_STYLE): New macro. + (tls_comm_section, comm_section, lcomm_section): Declare. + (bss_noswitch_section, have_global_bss_p): Declare. + * config/elfos.h (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Override. + * config/iq2000/iq2000.c (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): + Override. + * config/v850/v850.c (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Override. + * config/stormy16/stormy16.c (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): + Override. + +2006-03-02 Daniel Berlin + + * tree-vrp.c (execute_vrp): Return value. + * regrename.c (rest_of_handle_regrename): Ditto. + * tree-into-ssa.c (rewrite_into_ssa): Ditto. + * tree-complex.c (tree_lower_complex): Ditto. + (tree_lower_complex_O0): Ditto. + * tracer.c (rest_of_handle_tracer): Ditto. + * postreload-gcse.c (rest_of_handle_gcse2): Ditto. + * postreload.c (rest_of_handle_postreload): Ditto. + * tree-tailcall.c (execute_tail_recursion): Ditto. + (execute_tail_calls): Ditto. + * tree-ssa-loop-ch.c (copy_loop_headers): Ditto. + * tree.h (init_function_for_compilation): Ditto. + * ipa-cp.c (ipcp_driver): Ditto. + * tree-scalar-evolution.c (scev_const_prop): Ditto. + * tree-scalar-evolution.h (scev_const_prop): Ditto. + * final.c (compute_alignments): Ditto. + (rest_of_handle_final): Ditto. + (rest_of_handle_shorten_branches): Ditto. + (rest_of_clean_state): Ditto. + * omp-low.c (execute_expand_omp): Ditto. + (execute_lower_omp): Ditto. + * tree-ssa-dse.c (tree_ssa_dse): Ditto. + * ipa-reference.c (static_execute): Ditto. + * tree-ssa-uncprop.c (tree_ssa_uncprop): Ditto. + * reorg.c (rest_of_handle_delay_slots): Ditto. + (rest_of_handle_machine_reorg): Ditto. + * cgraphunit.c (rebuild_cgraph_edges): Ditto. + * flow.c (recompute_reg_usage): Ditto. + (rest_of_handle_remove_death_notes): Ditto. + (rest_of_handle_life): Ditto. + (rest_of_handle_flow2): Ditto. + * tree-ssa-copyrename.c (rename_ssa_copies): Ditto. + * tree-ssa-ccp.c (do_ssa_ccp): Ditto. + (do_ssa_store_ccp): Ditto. + (execute_fold_all_builtins): Ditto. + * mode-switching.c (rest_of_handle_mode_switching): Ditto. + * modulo-sched.c (rest_of_handle_sms): Ditto. + * ipa-pure-const.c (static_execute): Ditto. + * cse.c (rest_of_handle_cse): Ditto. + (rest_of_handle_cse2): Ditto. + * web.c (rest_of_handle_web): Ditto. + * tree-stdarg.c (execute_optimize_stdarg): Ditto. + * tree-ssa-math-opts.c (execute_cse_reciprocals): Ditto. + * tree-ssa-dom.c (tree_ssa_dominator_optimize): Ditto. + * tree-nrv.c (tree_nrv): Ditto. + (execute_return_slot_opt): Ditto. + * tree-ssa-alias.c (compute_may_aliases): Ditto. + (create_structure_vars): Ditto. + * loop-init.c (rtl_loop_init): Ditto. + (rtl_loop_done): Ditto. + (rtl_move_loop_invariants): Ditto. + (rtl_unswitch): Ditto. + (rtl_unroll_and_peel_loops): Ditto. + (rtl_doloop): Ditto. + * gimple-low.c (lower_function_body): Ditto. + (mark_used_blocks): Ditto. + * tree-ssa-sink.c (execute_sink_code): Ditto. + * ipa-inline.c (cgraph_decide_inlining): Ditto. + (cgraph_early_inlining): Ditto. + * global.c (rest_of_handle_global_alloc): Ditto. + * jump.c (cleanup_barriers): Ditto. + (purge_line_number_notes): Ditto. + * ifcvt.c (rest_of_handle_if_conversion): Ditto. + (rest_of_handle_if_after_reload): Ditto. + * tree-ssa-loop.c (tree_ssa_loop_init): Ditto. + (tree_ssa_loop_im): Ditto. + (tree_ssa_loop_unswitch): Ditto. + (tree_vectorize): Ditto. + (tree_linear_transform): Ditto. + (tree_ssa_loop_ivcanon): Ditto. + (tree_ssa_empty_loop): Ditto. + (tree_ssa_loop_bounds): Ditto. + (tree_complete_unroll): Ditto. + (tree_ssa_loop_prefetch): Ditto. + (tree_ssa_loop_ivopts): Ditto. + (tree_ssa_loop_done): Ditto. + * predict.c (tree_estimate_probability): Ditto. + * recog.c (split_all_insns_noflow): Ditto. + (rest_of_handle_peephole2): Ditto. + (rest_of_handle_split_all_insns): Ditto. + * tree-eh.c (lower_eh_constructs): Ditto. + * regmove.c (rest_of_handle_regmove): Ditto. + (rest_of_handle_stack_adjustments): Ditto. + * local-alloc.c (rest_of_handle_local_alloc): Ditto. + * function.c (instantiate_virtual_regs): Ditto. + (init_function_for_compilation): Ditto. + (rest_of_handle_check_leaf_regs): Ditto. + * gcse.c (rest_of_handle_jump_bypass): Ditto. + (rest_of_handle_gcse): Ditto. + * ipa-type-escape.c (type_escape_execute): Ditto. + * alias.c (rest_of_handle_cfg): Ditto. + * tree-if-conv.c (main_tree_if_conversion): Ditto. + * profile.c (rest_of_handle_branch_prob): Ditto. + * tree-ssa-phiopt.c (tree_ssa_phiopt): Ditto. + * rtl-factoring.c (rest_of_rtl_seqabstr): Ditto. + * bt-load.c (rest_of_handle_branch_target_load_optimize): Ditto + * tree-dfa.c (find_referenced_vars): Ditto. + * except.c (set_nothrow_function_flags): Ditto. + (convert_to_eh_region_ranges): Ditto. + (rest_of_handle_eh): Ditto. + * emit-rtl.c (unshare_all_rtl): Ditto. + (remove_unnecessary_notes): Ditto. + * except.h (set_nothrow_function_flags): Ditto. + (convert_to_eh_region_ranges): Ditto. + * cfgexpand.c (tree_expand_cfg): Ditto. + * tree-cfgcleanup.c (merge_phi_nodes): Ditto. + * tree-ssa-pre.c (do_pre): Ditto. + (execute_fre): Ditto. + * cfgcleanup.c (rest_of_handle_jump): Ditto. + (rest_of_handle_jump2): Ditto. + * tree-sra.c (tree_sra): Ditto. + * tree-mudflap.c (execute_mudflap_function_ops): Ditto. + (execute_mudflap_function_decls): Ditto. + * tree-ssa-copy.c (do_copy_prop): Ditto. + (do_store_copy_prop): Ditto. + * ipa-prop.h (ipcp_driver): Ditto. + * cfglayout.c (insn_locators_initialize): Ditto. + * tree-ssa-forwprop.c + (tree_ssa_forward_propagate_single_use_vars): Ditto. + * cfglayout.h (insn_locators_initialize): Ditto. + * tree-ssa-dce.c (tree_ssa_dce): Ditto. + * tree-ssa.c (execute_early_warn_uninitialized): Ditto. + (execute_late_warn_uninitialized): Ditto. + * rtl.h (cleanup_barriers): Ditto. + (split_all_insns_noflow): Ditto. + (purge_line_number_notes): Ditto. + (unshare_all_rtl): Ditto. + (remove_unnecessary_notes): Ditto. + (recompute_reg_usage): Ditto. + (variable_tracking_main): Ditto. + * integrate.c (emit_initial_value_sets): Ditto. + * integrate.h (emit_initial_value_sets): Ditto. + * tree-optimize.c (execute_free_datastructures): Ditto + (execute_free_cfg_annotations): Ditto. + (execute_fixup_cfg): Ditto. + (execute_cleanup_cfg_pre_ipa): Ditto. + (execute_cleanup_cfg_post_optimizing): Ditto. + (execute_init_datastructures): Ditto. + * tree-object-size.c (compute_object_sizes): Ditto. + * combine.c (rest_of_handle_combine): Ditto. + * tree-outof-ssa.c (rewrite_out_of_ssa): Ditto. + * bb-reorder.c (duplicate_computed_gotos): Ditto. + (rest_of_handle_reorder_blocks): Ditto. + (rest_of_handle_partition_blocks): Ditto. + * var-tracking.c (variable_tracking_main): Ditto. + * tree-profile.c (tree_profiling): Ditto. + * tree-vect-generic.c (expand_vector_operations): Ditto. + * reg-stack.c (rest_of_handle_stack_regs): Ditto. + * sched-rgn.c (rest_of_handle_sched): Ditto. + (rest_of_handle_sched2): Ditto. + * basic-block.h (free_bb_insn): Ditto. + * tree-ssa-structalias.c (ipa_pta_execute): Ditto. + * tree-cfg.c (execute_build_cfg): Ditto. + (remove_useless_stmts): Ditto. + (split_critical_edges): Ditto. + (execute_warn_function_return): Ditto. + (execute_warn_function_noreturn): Ditto. + * tree-ssa-reassoc.c (execute_reassoc): Ditto. + * cfgrtl.c (free_bb_for_insn): Ditto. + * passes.c (execute_one_pass): Run additional + todos returned by execute function. + * tree-pass.h (struct tree_opt_pass): Make execute + return a value. + +2006-03-02 Richard Guenther + + * tree-ssa-alias.c (find_used_portions): Consider taking + the address as making the variable not write-only. + +2006-03-02 Nick Clifton + + * config.gcc (default_use_cxa_atexit): Extend the description of + this configure variable. Set its default value to "yes" for + Linux, NetBSD and ELF targets on the assumption that they will + use C libraries with the __cxa_atexit function. + +2006-03-02 Ben Elliston + + * config/rs6000/linux-unwind.h (frob_update_context): Mark `fs' + parameter as unused to suppress a build warning. + +2006-03-02 Ben Elliston + + * mklibgcc.in: Depend on config/dfp-bit.h in rules that compile + config/dfp-bit.c. + +2006-03-01 Roger Sayle + + PR other/26489 + * gthr-posix.h (__gthrw2): Define to take three parameters, the + declared name, the weak reference name, and the typeof name. + (__gthrw): Avoid expanding the declared name suffix. + (__gthrw3): New Tru64 specific macro to simplify the OSF/1 decls. + +2006-03-01 Jakub Jelinek + + * dwarf2.h (DW_TAG_condition, DW_TAG_shared_type): New constants + from DWARF 3. + (DW_AT_description, DW_AT_binary_scale, DW_AT_decimal_scale, + DW_AT_small, DW_AT_decimal_sign, DW_AT_digit_count, + DW_AT_picture_string, DW_AT_mutable, DW_AT_threads_scaled, + DW_AT_explicit, DW_AT_object_pointer, DW_AT_endianity, + DW_AT_elemental, DW_AT_pure, DW_AT_recursive): New. + (DW_OP_form_tls_address, DW_OP_call_frame_cfa, DW_OP_bit_piece): New. + (DW_ATE_packed_decimal, DW_ATE_numeric_string, DW_ATE_edited, + DW_ATE_signed_fixed, DW_ATE_unsigned_fixed): New. + (DW_DS_unsigned, DW_DS_leading_overpunch, DW_DS_trailing_overpunch, + DW_DS_leading_separate, DW_DS_trailing_separate): New. + (DW_END_default, DW_END_big, DW_END_little): New. + (DW_END_lo_user, DW_END_hi_user): Define. + (DW_LNE_lo_user, DW_LNE_hi_user): Define. + (DW_CFA_val_offset, DW_CFA_val_offset_sf, DW_CFA_val_expression): New. + (DW_LANG_PLI, DW_LANG_ObjC, DW_LANG_ObjC_plus_plus, DW_LANG_UPC, + DW_LANG_D): New. + +2006-03-01 Diego Novillo + + * tree.def (SYMBOL_MEMORY_TAG): Rename from TYPE_MEMORY_TAG. + Update all users. + * tree-pass.h (PROP_smt_usage): Rename from PROP_tmt_usage. + Update all users. + (TODO_update_smt_usage): Rename from TODO_update_tmt_usage. + Update all users. + * tree.h (SMT_USED_ALONE): Rename from TMT_USED_ALONE. + Update all users. + * tree-flow.h (struct var_ann_d): Rename field 'type_mem_tag' + to 'symbol_mem_tag'. + Update all users. + * doc/tree-ssa.texi: Update documentation to reflect TMT->SMT + rename. + +2006-03-01 Roger Sayle + + * builtins.c (fold_builtin_copysign): Delete unreachable code. + +2006-03-01 Andrew Pinski + + PR target/25761 + * config/darwin.h (MACHOPIC_JUST_INDIRECT): Check just + MACHO_DYNAMIC_NO_PIC_P. + (MACHOPIC_PURE): Check flag_pic and not MACHO_DYNAMIC_NO_PIC_P. + +2006-03-01 Andrew Pinski + + PR target/26389 + * config/darwin-protos.h (darwin_asm_output_anchor): + Declare. + * config/darwin-sections.def (cstring_section): + Add SECTION_MERGE to the flags. + (literal4_section): Likewise. + (literal8_section): Likewise. + (objc_selector_refs_section): Likewise. + (objc_cls_refs_section): Likewise. + * config/darwin.c (darwin_asm_output_anchor): New + function. + * config/darwin.h (TARGET_ASM_OUTPUT_ANCHOR): Define. + +2006-03-01 Daniel Berlin + + Fix PR tree-optimization/26443 + * tree-vrp.c (pass_vrp): Add TODO_update_tmt_usage + to todo and PROP_tmt_usage to properties_destroyed. + * tree-ssa-ccp.c (pass_ccp): Ditto. + (pass_store_ccp): Ditto. + * tree-ssa-dom.c (pass_dominator): Ditto. + +2006-03-01 Diego Novillo + + * tree-ssa-operands.c: Cleanup whitespace. + (get_asm_expr_operands): Move before first invocation. + (get_indirect_ref_operands): Likewise. + (get_tmr_operands): Likewise. + (get_call_expr_operands): Likewise. + (append_def): Likewise. + (append_use): Likewise. + (append_v_may_def): Likewise. + (append_v_must_def): Likewise. + (add_call_clobber_ops): Likewise. + (add_call_read_ops): Likewise. + (add_stmt_operand): Likewise. + (add_virtual_operand): Likewise. + (build_ssa_operands): Likewise. + +2006-03-01 Andrew Pinski + + PR middle-end/26022 + Revert: + PR middle-end/24437 + * tree-ssa-ccp.c (fold_stmt): Move folding of OBJ_TYPE_REF + with a call expr to ... + * fold-const.c (fold_ternary) : Here. + +2006-03-01 Diego Novillo + + * tree-vrp.c (extract_range_from_assert): Remove special + handling for types with super-types. + +2006-03-01 Ben Elliston + + * config.gcc: Add t-dfprules to $tmake_file for powerpc-*-linux* + and powerpc64-*-linux* configurations. + * config/t-dfprules: New file. + + * mklibgcc.in: Add logic to handle $DFP_ENABLE and $DFP_CFLAGS. + Compile dfp-bit.c from the source directory using -DWIDTH and + $DFP_CFLAGS to control the compilation of that file, rather than + generating width-specific versions in the build directory. + * Makefile.in (libgcc.mk): Pass down DFP_ENABLE and DFP_CFLAGS. + (LIBGCC_DEPS): Replace $(D32PBIT) et al with config/dfp-bit.[hc]. + +2006-02-28 Zack Weinberg + + * doc/md.texi: Avoid use of @headitem so that makeinfo <4.7 + continues to work. + +2006-02-28 Eric Christopher + + * config/rs6000/darwin.h (ENABLE_STACK_EXECUTE): Define. + Set up IN_LIBGCC definition of TARGET_64BIT. + * config/i386/darwin.h (ENABLE_STACK_EXECUTE): Define. + +2006-02-28 Roger Sayle + + PR middle-end/14752 + * c-common.c (c_common_truthvalue_conversion) : Delete. Let fold optimize these + cases via the construction of "expr != 0". + +2006-02-28 Steven Bosscher + + * alias.c (alias_invariant, alias_invariant_size): Remove. + (record_base_value): Remove. + (memrefs_conflict_p): Don't look at alias_invariant. + (end_alias_analysis): Don't free it. + * alias.h (record_base_value): Remove prototype. + +2006-02-28 Paolo Bonzini + Adam Nemet + + * rtl.h (truncated_to_mode): Declare it. + (struct rtl_hooks): Add reg_truncated_to_mode hook. + * rtlhooks-def.h (RTL_HOOKS_REG_TRUNCATED_TO_MODE): New macro. + (RTL_HOOKS_INITIALIZER): Include it. + * rtlhooks.c (reg_truncated_to_mode_general): New function. + * combine.c (RTL_HOOKS_REG_TRUNCATED_TO_MODE): Override to + reg_truncated_to_mode. + * rtlanal.c (truncated_to_mode): Define it. + * simplify-rtx.c (simplify_unary_operation_1): Use it. + +2006-02-28 Jeff Law + + * tree-chrec.c (chrec_convert_aggressive): Do not eliminate + conversions where TYPE_MIN_VALUE/TYPE_MAX_VALUE do not cover + the range allowed by TYPE_PRECISION. + + * tree.h (strct phi_arg_d): Remove unused NONZERO field. + +2006-02-28 Dorit Nuzman + + PR tree-optimization/26419 + * doc/invoke.texi (ftree-vectorizer-verbose): Add information on + values of n. + +2006-02-27 Zack Weinberg + + * doc/md.texi: Fix typo in previous change. + +2006-02-27 Kenneth Zadeck + + * df.c: Remove. + +2006-02-27 Zack Weinberg + + * rtl.def (define_constraint, define_register_constraint) + (define_memory_constraint, define_address_constraint): New MD forms. + * gensupport.c (process_rtx): Put define_constraint etc on the + predicate queue. + * genpreds.c (process_define_predicate): Adjust comment. Validate + the name, and call validate_exp to validate the expression. + (mark_mode_tests, write_extract_subexp): Can assume correct input. + (write_predicate_expr): Likewise. NAME argument no longer necessary; + all callers changed. + (validate_exp, needs_variable, struct constraint_data) + (constraints_by_letter_table, first_constraint, last_constraint_ptr) + (FOR_ALL_CONSTRAINTS, generic_constraint_letters, const_int_constraints) + (const_dbl_constraints, constraint_max_namelen) + (have_register_constraints, have_memory_constraints) + (have_address_constraints, have_address_constraints) + (have_extra_constraints, have_const_int_constraints) + (have_const_dbl_constraints, mangle, add_constraint) + (process_define_constraint, process_define_register_constraint) + (write_enum_constraint_num, write_lookup_constraint) + (write_insn_constraint_len, write_regclass_for_constraint) + (write_constraint_satisfied_p, write_insn_const_int_ok_for_constraint) + (write_insn_extra_memory_constraint) + (write_insn_extra_address_constraint) + (write_satisfies_constraint_fns): New. + (write_tm_preds_h): If we have new-style constraint definitions, + prototype the functions generated from them, and define the + old constraint interface (still used by generic code) in terms of + those functions. + (write_insn_preds_c): If we have new-style constraint definitions, + generate all relevant functions from those definitions. + (main): Handle define_constraint etc. + * genoutput.c (struct constraint_data, indep_constraints) + (mdep_constraint_letters, constraints_by_letter_table, note_constraint) + (mdep_constraint_len): New data structures and functions, defined + #ifdef USE_MD_CONSTRAINTS. + (check_constraint_len): Don't define #ifdef USE_MD_CONSTRAINTS. + (validate_insn_alternatives): If USE_MD_CONSTRAINTS is defined, + use new logic to validate operand constraints against constraint + definitions. + (main): Process define_constraint etc. if USE_MD_CONSTRAINTS is + defined. + * defaults.h: If none of the old-style constraint macros are + defined, define USE_MD_CONSTRAINTS; do not provide defaults for any + old-style macros; and poison REG_CLASS_FROM_LETTER, + CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P, and + EXTRA_CONSTRAINT. + * recog.c (reg_fits_class_p): If cl is NO_REGS, return 0 immediately. + * doc/md.texi: Document new constraint-definition mechanism and the + C interface it provides. Remove references to old mechanism + elsewhere in the document. + (Machine Constraints): Use pathnames relative to gcc directory, + i.e. config/ARCH/FILE. Change i386 section to refer to + config/i386/predicates.md; update that section to match docstrings. + * doc/tm.texi: Move all documentation of the old constraint- + definition macros to their own section, clearly mark as obsolete. + + * config/i386/predicates.md (R, q, Q, l, a, b, c, d, S, D, A, f, t) + (u, y, x, Y, I, J, K, L, M, N, O, G, C, e, Z): New constraint + definitions. + * config/i386/i386.h (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P) + (CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete. + * config/i386/i386.md (*movdf_nointeger): Remove stray 'H' from + constraint strings. + (splits and peepholes): Use satisfies_constraint_*. + * config/i386/i386.c (memory_address_length) + (ix86_attr_length_immediate_default): Use satisfies_constraint_*. + +2006-02-27 Daniel Berlin + + * lambda-code.c (can_convert_to_perfect_nest): Allow any type of + scalar operation to be put back into the loop. + +2006-02-27 Jakub Jelinek + + PR other/26208 + * unwind-dw2.c (struct _Unwind_Context): Add signal_frame field. + (extract_cie_info): Handle S flag in augmentation string. + (execute_cfa_program): If context->signal_frame, execute also + fs->pc == context->ra instructions. + (uw_frame_state_for): If context->signal_frame, don't subtract one + from context->ra to find FDE. + (uw_update_context_1): Set context->signal_frame to + fs->signal_frame. + (_Unwind_GetIPInfo): New function. + * unwind-dw2.h (_Unwind_FrameState): Add signal_frame field. + * unwind-c.c (PERSONALITY_FUNCTION): Use _Unwind_GetIPInfo instead + of _Unwind_GetIP. + * unwind-sjlj.c (_Unwind_GetIPInfo): New function. + * unwind-generic.h (_Unwind_GetIPInfo): New prototype. + * unwind-compat.c (_Unwind_GetIPInfo): New function. + * libgcc-std.ver (_Unwind_GetIPInfo): Export @@GCC_4.2.0. + * config/ia64/unwind-ia64.c (_Unwind_GetIPInfo): New function. + * config/arm/unwind-arm.h (_Unwind_GetIPInfo): Define. + * config/i386/linux-unwind.h (x86_fallback_frame_state, + x86_64_fallback_frame_state): Set fs->signal_frame. + * config/rs6000/linux-unwind.h (ppc_fallback_frame_state): Likewise. + (MD_FROB_UPDATE_CONTEXT): Define unconditionally. + (frob_update_context): Likewise. Workaround missing S flag in + Linux 2.6.12 - 2.6.16 kernel vDSOs. + * config/s390/linux-unwind.h (s390_fallback_frame_state): Likewise. + Remove the psw_addr + 1 hack. + +2006-02-27 Daniel Berlin + + * tree-ssa-structalias.c (get_constraint_for): Move code to deal + with aggregates here. + (find_func_aliases): Remove code for & from here. + +2006-02-26 Roger Sayle + + * fold-const.c (fold_binary) : Fold (~X & C) eq/ne 0 as + (X & C) ne/eq 0, where C is a single bit, i.e. a power of two. + Fold both "((X & C) ^ C) eq/ne 0" and "((X ^ C) & C) eq/ne 0" + as (X & C) ne/eq 0. + +2006-02-26 Roger Sayle + + PR middle-end/19983 + * real.c (real_nan): Allow both 0x and 0X as hexadecimal prefixes. + +2006-02-26 Zdenek Dvorak + + * opts.c (decode_options): Do not handle flag_strength_reduce. + (common_handle_option): Handle OPT_floop_optimize, OPT_frerun_loop_opt + and OPT_fstrength_reduce. + * tree-ssa-loop.c (tree_ssa_loop_prefetch): Only test + flag_prefetch_loop_arrays for being nonzero. + * common.opt (floop-optimize, frerun-loop-opt): Resurrected as + no-ops. + (fprefetch-loop-arrays-rtl): Removed. + (flag_prefetch_loop_arrays): Do not specify the value. + + * doc/passes.texi: Update documentation of loop optimizer + passes. + * doc/invoke.texi (-fstrength-reduce, -fprefetch-loop-arrays-rtl, + -frerun-loop-opt): Remove. + +2006-02-26 Richard Guenther + + PR tree-optimization/26421 + * tree-ssa-alias.c (find_used_portions): Don't treat parameters + in function calls that are ADDR_EXPRs as using the whole structure. + +2006-02-26 Steven Bosscher + + * common.opt (-floop-optimize, -frerun-loop-opt): Remove. + * tree-pass.h (pass_loop_optimize): Remove. + * passes.c (pass_loop_optimize): Never run it. + * toplev.c (backend_init): Don't call init_loop. + * opts.c (flag_loop_optimize_set): Remove. + (decode_options): Never set flag_loop_optimize or flag_rerun_loop_opt. + (common_handle_option) : Remove. Don't disable + the old RTL loop optimizer when profiling enabled. + * predict.c (tree_estimate_probability): Always strip builtin_expect. + * cfgcleanup.c (try_forward_edges): Don't avoid killing loop + pre-headers for the sake of the old RTL loop optimizer. + * Makefile.in: Remove all references to loop.o. + + * doc/invoke.texi: Remove all references to -floop-optimize + and -frerun-loop-opt. + +2006-02-26 Zack Weinberg + + * doc/md.texi (Machine Constraints): Refer to all files with paths + relative to gcc directory (i.e. config/CPU/file). Add missing + @table @code ... @end table to M32C subsection. + +2006-02-26 Roger Sayle + + * fold-const.c (fold_binary) : Fold (X & 1) ^ 1 as + (X & 1) == 0. + : Fold (X ^ 1) & 1 and ~X & 1 as (X & 1) == 0. + +2006-02-26 Roger Sayle + James A. Morrison + + PR middle-end/21137 + * fold-const.c (fold_binary) : Fold ((X>>C1)&C2) eq/ne 0, + when C2 is a power of two, as either (X&(C2< + + PR tree-optimization/26359 + * tree-ssa-alias.c (new_type_alias): Set fields for new tag. + +2006-02-25 Roger Sayle + + * simplify-rtx.c (simplify_relational_operation_1): Simplify + (X^Y) == 0 as X == Y and (X^Y) != 0 as X != Y. Simplify (X^Y) == Y + as X == 0, and some symmetry related transformations. + Simplify (X^C1) == C2 as X == (C1^C2). Split long comment line. + +2006-02-25 Roger Sayle + + PR middle-end/23673 + * fold-const.c (fold_binary) : Fold (X^Y) == 0 as X == Y + and (X^Y) != 0 as X != Y. Fold (X^Y) == Y as X == 0, and some + symmetry related transformations. Fold (X^C1) == C2 as + X == (C1^C2). + +2006-02-25 Juergen Weigert + Richard Guenther + + * scan-decls.c (scan_decls): Don't fetch new statement after CPP_EOF. + +2006-02-24 Adam Nemet + + * combine.c (gen_lowpart_or_truncate): Call + simplify_gen_unary(TRUNCATE, ...) instead of gen_rtx_TRUNCATE. + +2006-02-24 Diego Novillo + + * doc/invoke.texi: Move -fopenmp description to "Options for + Code Generation". + Remove reference to -lgomp. + +2006-02-24 David Edelsohn + + * doc/install.texi: Require GNU tar version 1.14. + +2006-02-24 Geoffrey Keating + + * doc/tm.texi (Run-time Target): Document C_COMMON_OVERRIDE_OPTIONS. + * doc/invoke.texi (C++ Dialect Options): Document + -fno-use-cxa-get-exception-ptr. + * configure.ac: Define DEFAULT_USE_CXA_ATEXIT to 2 not 1. + * configure: Regenerate. + * c.opt (fuse-cxa-get-exception-ptr): New. + * c-opts.c (c_common_handle_option): Handle + OPT_fuse_cxa_get_exception_ptr. + * c-common.c (flag_use_cxa_atexit): Update documentation. + (flag_use_cxa_get_exception_ptr): New. + * c-common.h (flag_use_cxa_get_exception_ptr): New. + * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Improve + documentation. + (C_COMMON_OVERRIDE_OPTIONS): New. + +2006-02-24 Roger Sayle + + PR middle-end/24952 + * combine.c (try_combine): Explicitly check whether GET_CODE is + a SET or a CLOBBER, instead on checking that it isn't a USE. + +2006-02-24 Roger Sayle + + * fold-const.c (fold_comparison): New subroutine of fold_binary + containing transformations common to both the equality and + ordering relational operators, factored out of fold_binary. + (fold_binary): Separate out the equality operators (EQ_EXPR + and NE_EXPR) from the ordering operators (LT_EXPR, GT_EXPR, + LE_EXPR and GE_EXPR), calling fold_comparison to perform the + transformations common to both. + (fold_div_compare): Fix latent bugs in the previously unreachable + LT_EXPR and GE_EXPR cases. + +2006-02-24 David Edelsohn + + * config/rs6000/rs6000.c (rs6000_init_builtins): Change + decl libname for clog to __clog on AIX. + + * config/rs6000/xcoff.h (MAX_OFILE_ALIGNMENT): Define. + +2006-02-24 Alan Modra + + PR target/26453 + * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Don't + output traceback table for thunks. Localise rs6000_stack_info call. + +2006-02-23 Roger Sayle + Rainer Orth + + * gthr-posix.h (__gthrw): Fix typo in comment. + +2006-02-23 Geoffrey Keating + + * doc/cpp.texi (Character sets): Document that we do support + input files to be in any character set. + +2006-02-23 Jeff Law + + * tree.h (PHI_ARG_NONZERO): Remove. + * tree-phinodes.c (add_phi_arg): No longer initialize PHI_ARG_NONZERO. + (remove_phi_arg_num): No longer copy PHI_ARG_NONZERO from the old + node to the new node. + + PR tree-optimization/26425 + * tree-vrp.c (vrp_visit_assignment): If the LHS's type has a NULL + min/max, then assume its varying. + +2006-02-23 Zdenek Dvorak + + PR rtl-optimization/26316 + * rtlanal.c (enum may_trap_p_flags): New. + (may_trap_p_1): Take flags instead of unaligned_mems argument. Ignore + MEM_NOTRAP_P if flags & MTP_AFTER_MOVE. + (may_trap_p, may_trap_or_fault_p): Pass flags to may_trap_p_1. + (may_trap_after_code_motion_p): New function. + * loop-invariant.c (find_identical_invariants): Fix dump formating. + (find_invariant_insn): Use may_trap_after_code_motion_p. + * rtl.h (may_trap_after_code_motion_p): Declare. + +2006-02-23 Zdenek Dvorak + + * emit-rtl.c (immed_double_const): Cleanup. + +2006-02-23 Daniel Berlin + + Fix PR tree-optimization/26376 + * tree-ssa-structalias.c (find_func_aliases): Use get_id_for_tree, + remove assert. + +2006-02-23 Jakub Jelinek + + PR middle-end/26412 + * gimplify.c (omp_add_variable): Guard variable size decl test with + DECL_SIZE (decl) check. + +2006-02-23 Richard Guenther + + PR middle-end/26439 + * tree-ssa-structalias.c (find_func_aliases): Handle complex types + like aggregate types. + +2006-02-23 Jakub Jelinek + + * configure.ac: Add --with{,out}-long-double-128 configure option. + (TARGET_DEFAULT_LONG_DOUBLE_128): New test. + * configure: Rebuilt. + * config.in: Rebuilt. + * doc/install.texi (Options specification): Document + --with-long-double-128. + + * config/rs6000/linux.h [TARGET_DEFAULT_LONG_DOUBLE_128] + (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Define to 128. + * config/rs6000/linux64.h [TARGET_DEFAULT_LONG_DOUBLE_128] + (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Define to 128. + +2006-02-23 Aldy Hernandez + + * config/s390/s390.c (override_options): Handle + TARGET_DEFAULT_LONG_DOUBLE_128. + + * config/alpha/alpha.c (override_options): Handle + TARGET_DEFAULT_LONG_DOUBLE_128. + + * config/sparc/sparc.c (sparc_override_options): Handle + TARGET_DEFAULT_LONG_DOUBLE_128. + +2006-02-22 Daniel Jacobowitz + + * Makefile.in (stmp-fixinc): Use real-$(INSTALL_HEADERS_DIR). + (real-install-headers-tar, real-install-headers-cpio) + (real-install-headers-cp): New targets. + +2006-02-22 Richard Sandiford + + * tree.h (variable_section): Delete. + * varasm.c (variable_section): Delete. + +2006-02-22 Paolo Bonzini + + * install.texi: Add notes on install.texi2html. + (Building in parallel): Do not use footnotes. + +2006-02-21 Aldy Hernandez + + PR libgomp/26234 + * doc/install.texi (Configuration): Document --disable-libgomp. + +2006-02-21 Geoffrey Keating + + * config/i386/darwin.h (DWARF2_FRAME_REG_OUT): New. + +2006-02-21 Alexandre Oliva + + * config/i386/sse.md (vec_extractv2df_1_sse): New. + (vec_extractv2df_0_sse): New. + +2006-02-21 Alexandre Oliva + + * defaults.h (CFA_FRAME_BASE_OFFSET): Define. + * config/ia64/ia64.h (CFA_FRAME_BASE_OFFSET): Override. + * doc/tm.texi (CFA_FRAME_BASE_OFFSET): Document. + * dwarf2out.c (build_cfa_loc): New offset parameter. Add it + to the result of the expression. + (def_cfa_1): Adjust. + (frame_pointer_cfa_offset): Rename to... + (frame_pointer_fb_offset): ... this. Adjust all uses. + (convert_cfa_to_loc_list): Rename to... + (convert_cfa_to_fb_loc_list): ... this. New offset parameter. + Pass it on to build_cfa_loc. + (compute_frame_pointer_to_cfa_displacement): Rename to... + (compute_frame_pointer_to_fb_displacement): ... this. New + offset parameter. Use it in computation. + (gen_subprogram_die): Compute cfa_fb_offset with the new + macro, and use it to compute the fb loc list and the + displacement. + +2006-02-21 Bernd Schmidt + + * config/bfin/predicates.md (cc_operand): Delete predicate. All uses + replaced with register_operand. + * config/bfin/bfin.c (bfin_register_move_cost): Moving CC to any + non-DREG is expensive. + * config/bfin/bfin.h (FIXED_REGISTERS): CC isn't fixed. + * config/bfin/bfin.md (movbi): Fix constraints and template for moves + involving memory. + +2006-02-21 Joseph S. Myers + + * doc/install.texi2html: Use set -e. + +2006-02-21 Richard Sandiford + + * doc/tm.texi (ASM_OUTPUT_SHARED_COMMON, ASM_OUTPUT_SHARED_BSS) + (ASM_OUTPUT_SHARED_LOCAL): Delete. + * doc/invoke.texi (-fshared-data): Delete. + * common.opt (fshared-data): Delete. + * varasm.c (asm_emit_uninitialised): Remove flag_shared_data handling. + (assemble_static_space): Remove #if 0 code. + * system.h (ASM_OUTPUT_SHARED_COMMON, ASM_OUTPUT_SHARED_BSS) + (ASM_OUTPUT_SHARED_LOCAL): Poison. + * config/cris/cris.h: Remove FIXME. + +2006-02-21 Paolo Bonzini + + * doc/sourcebuild.texi (Front End Directory): No more double-colon + hooks. + +2006-02-21 Jakub Jelinek + + PR middle-end/26379 + * combine.c (simplify_shift_const_1): Disable nested shifts + optimization for vector shifts. + +2006-02-20 Roger Sayle + + PR tree-optimization/26361 + * tree-vrp.c (extract_range_from_unary_expr): Handle NEGATE_EXPR + of unsigned integer types. + +2006-02-20 Sebastian Pop + + * tree-chrec.c (eq_evolutions_p): New. + * tree-chrec.h (eq_evolutions_p): Declared. + * tree-data-ref.c: Fix formatting. + (datadep_stats, dependence_stats): New. + (gcd): Moved... + (print_direction_vector): New. + (dump_data_dependence_relation): Use print_direction_vector. + (object_analysis, create_data_ref): Handle COMPONENT_REF. + (compute_subscript_distance): Static. + (initialize_data_dependence_relation): Static. Get the number + of loops surrounding the references from the callers, and initialize + DDR_SIZE_VECT to nb_loops. Use both base_addr_differ_p and + base_object_differ_p analyzers. + (analyze_ziv_subscript, analyze_siv_subscript_cst_affine, + compute_overlap_steps_for_affine_1_2, + analyze_subscript_affine_affine): Count the classified dependences. + Print a message when a test failed. + (can_use_analyze_subscript_affine_affine): New. + (analyze_siv_subscript): Compute the data dependences on symbolic + scevs that verify can_use_analyze_subscript_affine_affine. + (chrec_steps_divide_constant_p): Returns true, false, or unknown. + (analyze_miv_subscript): Update use of chrec_steps_divide_constant_p. + Handle symbolic scevs. + (analyze_overlapping_iterations): Let symbolic affine scevs to be + analyzed. + (subscript_dependence_tester): Moved... + (build_classic_dist_vector, build_classic_dir_vector): Don't use + lambda_vector_clear on newly allocated vectors. Get nb_loops from + DDR_SIZE_VECT instead of getting it in parameter. + (subscript_dependence_tester): ... here. Take as a parameter + loop_nest_depth. Call build_classic_dist_vector and + build_classic_dir_vector. + (compute_affine_dependence): Update subscript_dependence_tester + parameters. Update datadep_stats counters. Call + compute_subscript_distance. + (compute_self_dependence): Save the dist and dir vectors. Call + compute_subscript_distance. + (ddr_p, DEF_VEC_P(ddr_p), DEF_VEC_ALLOC_P(ddr_p,heap)): Moved... + (compute_all_dependences): Reorder parameters as they were before + conversion to VEC. Pass nb_loops and loop_nest_depth. Don't call + compute_subscript_distance. Update the use of + compute_affine_dependence and initialize_data_dependence_relation. + (find_data_references_in_loop): Handle COMPONENT_REF. + (compute_data_dependences_for_loop): Initialize dependence_stats. + Don't call build_classic_dist_vector and build_classic_dir_vector. + Update the parameters of initialize_data_dependence_relation and + compute_all_dependences. Print the statistics from datadep_stats. + (analyze_all_data_dependences): Static. Not used until the pass for + checking the data dependences is contributed. + * tree-data-ref.h (ddr_p, DEF_VEC_P(ddr_p), + DEF_VEC_ALLOC_P(ddr_p,heap)): ... here. + (initialize_data_dependence_relation, compute_affine_dependence, + analyze_all_data_dependences, compute_subscript_distance): Removed. + (print_direction_vector): New. + * lambda.h (gcd): ... here. + (lambda_vector_gcd): Moved here from gcd_vector. + * lambda-code.c (gcd, gcd_vector): Removed. + (lambda_compute_target_space): Use lambda_vector_gcd. Fix formatting. + * Makefile.in (tree-vect-patterns.o): Depends on TREE_DATA_REF_H. + +2006-02-20 Diego Novillo + + * ipa-type-escape.c: Tidy some comments and white space. + * tree-ssa-operands.c: Likewise. + +2006-02-20 Andrew Pinski + + PR tree-opt/25879 + * tree-pretty-print.c (debug_tree_chain): Walk the chains. + (dump_decl_name): Do not walk the decl tree chains. + * tree-pass.h (TDF_CHAIN): Remove. + +2006-02-20 Rafael Ávila de Espíndola + + * Makefile.in (C): Remove + (PROTO): Remove + (.PHONY): Remove C and PROTO + +2006-02-20 Roger Sayle + + PR middle-end/26236 + * doc/c-tree.texi (INTEGER_TYPE): Remove reference to the now + deprecated CHAR_TYPE tree code. + +2006-02-20 Paolo Bonzini + + * configure.ac (target_list): Add install-info, dvi, html. + * configure: Regenerate. + + * ada/Make-lang.in, cp/Make-lang.in, fortran/Make-lang.in, + java/Make-lang.in, objc/Make-lang.in, objcp/Make-lang.in, + treelang/Make-lang.in: Do not use double-colon rules. + +2006-02-20 Daniel Berlin + + * tree.h (struct tree_memory_tag): Add is_used_alone member. + (TMT_USED_ALONE): New macro. + * tree-pass.h (PROP_tmt_usage): New property. + (TODO_update_tmt_usage): New todo. + * tree-ssa-alias.c (updating_used_alone): New variable. + (recalculate_used_alone): New function. + (compute_may_aliases): Set updating_used_alone, call + recalculate_used_alone. + * tree-sra.c (pass_sra): Note that this pass destroys + PROP_tmt_usage, and add TODO_update_tmt_usage. + * tree-ssa-forwprop.c (pass_forwprop): Ditto. + * tree-flow.h (updating_used_alone): Prototype. + (recalculate_used_alone): Ditto. + * passes.c (execute_todo): Add code to set updating_used_alone, + and call recalculate. + * tree-ssa-operands.c (add_virtual_operand): Only append bare def + for clobber if used alone, and add assert to verify used_alone + status. + +2006-02-20 Angel Nunez Mencias + + * config/s390/s390.c (legitimize_pic_address): Assertions checking + for non tls symbols added. + (legitimize_address): Do nothing for PLUS expressions if one of the + addends is a tls symbol reference. + +2006-02-20 Paolo Bonzini + + PR bootstrap/25476 + + * Makefile.in (LDFLAGS): Define from autoconf substitution. + + * Makefile.in (BOOTSTRAPPING): New. + (quickstrap): New definition if BOOTSTRAPPING=yes. + + * Makefile.in (CONFIG_LANGUAGES): Substitute all_selected_languages. + * configure.ac: Substitute all_selected_languages with the languages + that were configured. For all the other variables except + lang_specs_files, include all the languages in the tree. + * configure: Regenerate. + + * Makefile.in (stmp-fixinc): Copy includes from the prev-gcc directory, + if there is one. Run the commands to run fixincludes in the same + subshell. + + * doc/makefile.texi: Document new makefile targets from toplevel bootstrap. + * doc/install.texi: Document exact conventions for searching target tools. + Document --with-build-time-tools. Document toplevel bootstrap. Document + something more about building an Ada cross-compiler. Don't list GNU Make + requirements which affect all platforms. + +2006-02-19 Roger Sayle + + PR middle-end/19543 + * varasm.c (compare_constant) : Integer constants are + only equivalent if the have both the same mode and precision. + +2006-02-20 Ben Elliston + + * doc/tree-ssa.texi (Interfaces): Describe low vs. high GIMPLE. + +2006-02-19 Roger Sayle + Steven Bosscher + + * gcse.c (want_to_gcse_p): On STACK_REGS targets, look through + constant pool references to identify stack mode constants. + * rtlanal.c (constant_pool_constant_p): New predicate to check + whether operand is a floating point constant in the pool. + * rtl.h (constant_pool_constant_p): Prototype here. + * loop.c (scan_loop): Avoid hoisting constants from the constant + pool on STACK_REGS targets. + (load_mems): Likewise. + * loop-invariant.c (get_inv_cost): Make hoisting constant pool + loads into x87 registers expensive in terms of register pressure. + +2006-02-19 Roger Sayle + + * gthr-posix.h: On Tru64, map __gthr_foo as a weak reference to + __foo and not foo when _PTHREAD_USE_MANGLED_NAMES_ is defined. + +2006-02-19 David Edelsohn + + * config/rs6000/xcoff.h (TARGET_ASM_OUTPUT_ANCHOR): Define. + * config/rs6000/rs6000.c (rs6000_xcoff_asm_output_anchor): Define. + +2006-02-19 Daniel Berlin + + * doc/invoke.texi: Document -fipa-pta. + * common.opt: Add ipa-pta option. + * tree-ssa-structalias.c (DONT_PROPAGATE_WITH_ANYTHING): Removed. + (do_sd_constraint): Enable DONT_PROPAGATE_WITH_ANYTHING code. + (do_ds_constraint): Ditto. + (get_constraint_for): Only add to referenced_vars if + referenced_vars exists. + (insert_into_field_list): Rewrite to do this unsorted. + (insert_into_field_list_sorted): Rename old insert_into_field_list + to this. + (create_function_info_for): Use insert_into_field_list_sorted. + (create_variable_info_for): Rewrite so it uses unsorted version, + since the field list is sorted. + (intra_create_variable_infos): Only add to referenced_vars if + referenced_vars exists. + (ipa_pta_execute): Init heapvars, and delete when done. + * passes.c (init_optimization_passes): Add call to pass_ipa_pta. + +2006-02-19 John David Anglin + + * doc/install.texi: Add missing `@samp'. + +2006-02-18 Andrew Pinski + + * config/rs6000/darwin.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): + Use the arguments. + +2006-02-18 Mark Wielaard + + * doc/contrib.texi (Contributors): Add classpath/libgcj hackers + who added new 4.1 features, bug fixes and integration support. + +2006-02-18 David Edelsohn + + PR target/26350 + * config/rs6000/rs6000.md (extenddftf2): Force 0.0 to validized + MEM for ABI_V4 pic. + +2006-02-18 Richard Sandiford + + * cselib.c (cselib_init): Change RTX_SIZE to RTX_CODE_SIZE. + * emit-rtl.c (copy_rtx_if_shared_1): Use shallow_copy_rtx. + (copy_insn_1): Likewise. Don't copy each field individually. + Reindent. + * read-rtl.c (apply_macro_to_rtx): Use RTX_CODE_SIZE instead + of RTX_SIZE. + * reload1.c (eliminate_regs): Use shallow_copy_rtx. + * rtl.c (rtx_size): Rename variable to... + (rtx_code_size): ...this. + (rtx_size): New function. + (rtx_alloc_stat): Use RTX_CODE_SIZE instead of RTX_SIZE. + (copy_rtx): Use shallow_copy_rtx. Don't copy each field individually. + Reindent. + (shallow_copy_rtx_stat): Use rtx_size instead of RTX_SIZE. + * rtl.h (rtx_code_size): New variable. + (rtx_size): Change from a variable to a function. + (RTX_SIZE): Rename to... + (RTX_CODE_SIZE): ...this. + + PR target/9703 + PR tree-optimization/17106 + * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Document. + (Anchored Addresses): New section. + * doc/invoke.texi (-fsection-anchors): Document. + * doc/rtl.texi (SYMBOL_REF_IN_BLOCK_P, SYMBOL_FLAG_IN_BLOCK): Likewise. + (SYMBOL_REF_ANCHOR_P, SYMBOL_FLAG_ANCHOR): Likewise. + (SYMBOL_REF_BLOCK, SYMBOL_REF_BLOCK_OFFSET): Likewise. + * hooks.c (hook_bool_mode_rtx_false): New function. + * hooks.h (hook_bool_mode_rtx_false): Declare. + * gengtype.c (create_optional_field): New function. + (adjust_field_rtx_def): Add the "block_sym" field for SYMBOL_REFs when + SYMBOL_REF_IN_BLOCK_P is true. + * target.h (output_anchor, use_blocks_for_constant_p): New hooks. + (min_anchor_offset, max_anchor_offset): Likewise. + (use_anchors_for_symbol_p): New hook. + * toplev.c (compile_file): Call output_object_blocks. + (target_supports_section_anchors_p): New function. + (process_options): Check that -fsection-anchors is only used on + targets that support it and when -funit-at-a-time is in effect. + * tree-ssa-loop-ivopts.c (prepare_decl_rtl): Only create DECL_RTL + if the decl doesn't have one. + * dwarf2out.c: Remove instantiations of VEC(rtx,gc). + * expr.c (emit_move_multi_word, emit_move_insn): Pass the result + of force_const_mem through use_anchored_address. + (expand_expr_constant): New function. + (expand_expr_addr_expr_1): Call it. Use the same modifier when + calling expand_expr for INDIRECT_REF. + (expand_expr_real_1): Pass DECL_RTL through use_anchored_address + for all modifiers except EXPAND_INITIALIZER. Use expand_expr_constant. + * expr.h (use_anchored_address): Declare. + * loop-unroll.c: Don't declare rtx vectors here. + * explow.c: Include output.h. + (validize_mem): Call use_anchored_address. + (use_anchored_address): New function. + * common.opt (-fsection-anchors): New switch. + * varasm.c (object_block_htab, anchor_labelno): New variables. + (hash_section, object_block_entry_eq, object_block_entry_hash) + (use_object_blocks_p, get_block_for_section, create_block_symbol) + (use_blocks_for_decl_p, change_symbol_section): New functions. + (get_variable_section): New function, split out from assemble_variable. + (make_decl_rtl): Create a block symbol if use_object_blocks_p and + use_blocks_for_decl_p say so. Use change_symbol_section if the + symbol has already been created. + (assemble_variable_contents): New function, split out from... + (assemble_variable): ...here. Don't output any code for + block symbols; just pass them to place_block_symbol. + Use get_variable_section and assemble_variable_contents. + (get_constant_alignment, get_constant_section, get_constant_size): New + functions, split from output_constant_def_contents. + (build_constant_desc): Create a block symbol if use_object_blocks_p + says so. Or into SYMBOL_REF_FLAGS. + (assemble_constant_contents): New function, split from... + (output_constant_def_contents): ...here. Don't output any code + for block symbols; just pass them to place_section_symbol. + Use get_constant_section and get_constant_alignment. + (force_const_mem): Create a block symbol if use_object_blocks_p and + use_blocks_for_constant_p say so. Or into SYMBOL_REF_FLAGS. + (output_constant_pool_1): Add an explicit alignment argument. + Don't switch sections here. + (output_constant_pool): Adjust call to output_constant_pool_1. + Switch sections here instead. Don't output anything for block symbols; + just pass them to place_block_symbol. + (init_varasm_once): Initialize object_block_htab. + (default_encode_section_info): Keep the old SYMBOL_FLAG_IN_BLOCK. + (default_asm_output_anchor, default_use_aenchors_for_symbol_p) + (place_block_symbol, get_section_anchor, output_object_block) + (output_object_block_htab, output_object_blocks): New functions. + * target-def.h (TARGET_ASM_OUTPUT_ANCHOR): New macro. + (TARGET_ASM_OUT): Include it. + (TARGET_USE_BLOCKS_FOR_CONSTANT_P): New macro. + (TARGET_MIN_ANCHOR_OFFSET, TARGET_MAX_ANCHOR_OFFSET): New macros. + (TARGET_USE_ANCHORS_FOR_SYMBOL_P): New macro. + (TARGET_INITIALIZER): Include them. + * rtl.c (rtl_check_failed_block_symbol): New function. + * rtl.h: Include vec.h. Declare heap and gc rtx vectors. + (block_symbol, object_block): New structures. + (rtx_def): Add a block_symbol field to the union. + (BLOCK_SYMBOL_CHECK): New macro. + (rtl_check_failed_block_symbol): Declare. + (SYMBOL_FLAG_IN_BLOCK, SYMBOL_FLAG_ANCHOR): New SYMBOL_REF flags. + (SYMBOL_REF_IN_BLOCK_P, SYMBOL_REF_ANCHOR_P): New predicates. + (SYMBOL_FLAG_MACH_DEP_SHIFT): Bump by 2. + (SYMBOL_REF_BLOCK, SYMBOL_REF_BLOCK_OFFSET): New accessors. + * output.h (output_section_symbols): Declare. + (object_block): Name structure. + (place_section_symbol, get_section_anchor, default_asm_output_anchor) + (default_use_anchors_for_symbol_p): Declare. + * Makefile.in (RTL_BASE_H): Add vec.h. + (explow.o): Depend on output.h. + * config/rs6000/rs6000.c (TARGET_MIN_ANCHOR_OFFSET): Override default. + (TARGET_MAX_ANCHOR_OFFSET): Likewise. + (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Likewise. + (rs6000_use_blocks_for_constant_p): New function. + +2006-02-18 John David Anglin + + * doc/install.texi (hppa*-hp-hpux*): Update for 4.1.0. + +2006-02-18 Andrew Pinski + + PR tree-opt/25680 + * tree-ssa-ccp.c (ccp_fold): Handle store CCP of REALPART_EXPR and + IMAGPART_EXPR. + +2006-02-18 Diego Novillo + + * tree-flow.h (struct var_ann_d): Rename field is_alias_tag to + is_aliased. + Update all users. + +2006-02-18 Jakub Jelinek + + PR middle-end/26334 + * stmt.c (decl_overlaps_hard_reg_set_p): Use DECL_HARD_REGISTER + instead of DECL_REGISTER. + +2006-02-18 Olivier Hainque + + PR ada/13408 + * pa.h (WIDEST_HARDWARE_FP_SIZE): Define. + +2006-02-18 Joseph S. Myers + + PR target/24837 + * config.gcc: Define UCLIBC_DEFAULT to 0 or 1. + * opth-gen.awk: Handle Var and InverseMask together. + * config/linux.opt (muclibc, mglibc): Use Var(linux_uclibc). + * config/linux.h: Use #if not #ifdef for testing UCLIBC_DEFAULT. + (TARGET_C99_FUNCTIONS): Test OPTION_GLIBC not TARGET_GLIBC. + (CHOOSE_DYNAMIC_LINKER): Give an error for -mglibc and -muclibc + used together. + (UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64, + LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64): Define. + * config/alpha/linux-elf.h (GLIBC_DYNAMIC_LINKER, + UCLIBC_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER, + LINUX_DYNAMIC_LINKER): Define. + (ELF_DYNAMIC_LINKER): Define to LINUX_DYNAMIC_LINKER. + * config/alpha/linux.h (TARGET_C99_FUNCTIONS): Define to + TARGET_GLIBC. + * config/cris/linux.h (GLIBC_DYNAMIC_LINKER): Define. + (CRIS_LINK_SUBTARGET_SPEC): Pass a -dynamic-linker option. + * config/frv/linux.h (GLIBC_DYNAMIC_LINKER): Define. + (LINK_SPEC): Use LINUX_DYNAMIC_LINKER. + (TARGET_C99_FUNCTIONS): Don't define. + * config/i386/linux.h (DYNAMIC_LINKER): Rename to + GLIBC_DYNAMIC_LINKER. + (SUBTARGET_EXTRA_SPECS): Use LINUX_DYNAMIC_LINKER. + * config/i386/linux64.h (GLIBC_DYNAMIC_LINKER32, + GLIBC_DYNAMIC_LINKER64): Define. + (LINK_SPEC): Use LINUX_DYNAMIC_LINKER32 and + LINUX_DYNAMIC_LINKER64. + * config/ia64/linux.h (GLIBC_DYNAMIC_LINKER): Define. + (LINK_SPEC): Use LINUX_DYNAMIC_LINKER. + * config/m32r/linux.h (GLIBC_DYNAMIC_LINKE): Define. + (LINK_SPEC): Use LINUX_DYNAMIC_LINKER. + * config/m68k/linux.h (GLIBC_DYNAMIC_LINKER): Define. + (LINK_SPEC): Use LINUX_DYNAMIC_LINKER. + * config/mips/linux64.h (GLIBC_DYNAMIC_LINKER32, + GLIBC_DYNAMIC_LINKER64, GLIBC_DYNAMIC_LINKERN32, + UCLIBC_DYNAMIC_LINKERN32, LINUX_DYNAMIC_LINKERN32): Define. + (LINK_SPEC): Use LINUX_DYNAMIC_LINKERN32, LINUX_DYNAMIC_LINKER64 + and LINUX_DYNAMIC_LINKER32. + * config/mn10300/linux.h (GLIBC_DYNAMIC_LINKER): Define. + (LINK_SPEC): Use LINUX_DYNAMIC_LINKER. + * config/pa/pa-linux.h (GLIBC_DYNAMIC_LINKER): Define. + (LINK_SPEC): Use LINUX_DYNAMIC_LINKER. + * config/rs6000/linux.h (TARGET_C99_FUNCTIONS): Define to + TARGET_GLIBC. + * config/rs6000/linux64.h (TARGET_C99_FUNCTIONS): Likewise. + (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64, + UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64, + CHOOSE_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER, + LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64): Define. + (LINK_OS_LINUX_SPEC32): Use LINUX_DYNAMIC_LINKER32. + (LINK_OS_LINUX_SPEC64): Use LINUX_DYNAMIC_LINKER64. + * config/rs6000/sysv4.h (GLIBC_DYNAMIC_LINKER, + UCLIBC_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER, + LINUX_DYNAMIC_LINKER): Define. + (LINK_OS_LINUX_SPEC): Use LINUX_DYNAMIC_LINKE. + * config/s390/linux.h (GLIBC_DYNAMIC_LINKER32, + GLIBC_DYNAMIC_LINKER64): Define. + (LINK_SPEC): Use LINUX_DYNAMIC_LINKER32 and + LINUX_DYNAMIC_LINKER64. + * config/sh/linux.h (GLIBC_DYNAMIC_LINKER): Define. + (SUBTARGET_LINK_SPEC): Use LINUX_DYNAMIC_LINKER. + * config/sparc/linux.h (GLIBC_DYNAMIC_LINKER, + UCLIBC_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER, + LINUX_DYNAMIC_LINKER): Define. + (LINK_SPEC): Use LINUX_DYNAMIC_LINKER. + (TARGET_C99_FUNCTIONS): Define to TARGET_GLIBC. + * config/sparc/linux64.h (GLIBC_DYNAMIC_LINKER32, + GLIBC_DYNAMIC_LINKER64, UCLIBC_DYNAMIC_LINKER32, + UCLIBC_DYNAMIC_LINKER64, CHOOSE_DYNAMIC_LINKER, + LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64): Define. + (LINK_ARCH32_SPEC): Use LINUX_DYNAMIC_LINKER32. + (LINK_ARCH64_SPEC, LINK_SPEC): Use LINUX_DYNAMIC_LINKER64. + (TARGET_C99_FUNCTIONS): Define to TARGET_GLIBC. + * config/xtensa/linux.h (GLIBC_DYNAMIC_LINKER): Define. + (LINK_SPEC): Use LINUX_DYNAMIC_LINKER. + * doc/invoke.texi (-muclibc): Remove caveat about supported + targets. + +2006-02-17 Grigory Zagorodnev + + * doc/cpp.texi (__TIMESTAMP__): Document. + +2006-02-17 Roger Sayle + + PR middle-end/25600 + * fold-const.c (fold_binary): Fold (X >> C) != 0 into X < 0 when + C is one less than the width of X (and related transformations). + * simplify-rtx.c (simplify_unary_operation_1): Transform + (neg (lt x 0)) into either (ashiftrt X C) or (lshiftrt X C) + depending on STORE_FLAG_VALUE, were C is one less then the + width of X. + +2006-02-17 Daniel Berlin + + Fix PR tree-optimization/26341 + * tree-ssa-operands.c (add_virtual_operand): Remove assert + about NAME_MEMORY_TAG's. + +2006-02-17 John David Anglin + + PR target/26255 + * pa.md: Create separate HI and QI move patterns for 32-bit and 64-bit + with hardware float support, and software float support. Add fcpy + alternative to hardware patterns. Add alternatives to copy between + general and floating-point registers to the 32-bit pattern. + * pa.c (pa_secondary_reload): Don't abort if reload tries to find a + secondary reload to load a QI or HI mode constant into a floating + point register. + * pa32-regs.h (VALID_FP_MODE_P): Allow QImode and HImode. + * pa64-regs.h (VALID_FP_MODE_P): Likewise. + +2006-02-17 Andrew Pinski + + PR target/26272 + * config/rs6000/darwin.md (load_macho_picbase_si): Add + pc to the pattern. + (load_macho_picbase_di): Likewise. + +2006-02-16 Jeff Law + + * tree-vrp.c (set_value_range_to_nonnegative): New function. + (vrp_expr_computes_nonnegative, ssa_name_nonnegative_p): Likewise. + (ssa_name_nonzero_p): Likewise. + (get_value_range): Return NULL if VRP is not running. + (extract_range_from_expr): Fallback to tree_expr_XXX_p if + VRP routines do not discover a range. + (vrp_finalize): Clear VR_VALUE to indicate VRP is not running. + * tree.h (ssa_name_nonzero_p, ssa_name_nonnegative_p): Prototype. + * fold-const.c (tree_expr_nonzero_p): For SSA_NAMEs, query VRP. + (tree_expr_nonnegative_p): Similarly. + * tree-ssa-dom.c (nonzero_vars, nonzero_vars_stack): Remove. + (restore_nonzero_vars_to_original_value): Remove. + (unsafe_associative_fp_binop): Remove. + (tree_ssa_dominator_optimize): Remove initialization and + finalization of nonzero_vars and nonzero_vars_stack. + (dom_opt_initialize_block): No longer push marker on + nonzero_vars_stack. + (dom_opt_finalize_block): No longer call + restore_nonzero_vars_to_original_value. + (record_equivalences_from_phis): No longer look for + nonzero PHI arguments. + (cprop_into_successor_phis): No longer propagate nonzero + property into PHI arguments. Lose unused argument. Caller + updated. + (record_equivalences_from_stmt): No longer record nonzero + values for SSA_NAMEs. + (lookup_avail_expr): No longer use nonzero_vars. + + * stor-layout.c (set_sizetype): Set TYPE_MAX_VALUE properly + for sizetype when sizetype is unsigned. + +2006-02-16 Denis Nagorny + + PR rtl-optimization/25603 + * reload.c (reg_inc_found_and_valid_p): New. Check REG_INC note. + (regno_clobbered_p): Use it. Reusing SETS argument for REG_INC case. + * reload1.c (choose_reload_regs): Added call of regno_clobbered_p + with new meaning of SETS. + +2006-02-16 Joseph S. Myers + + PR target/20353 + PR target/24578 + PR target/24837 + * config/linux.opt: New file. + * config/linux.h (CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER, + LINUX_DYNAMIC_LINKER): Define. + (TARGET_C99_FUNCTIONS): Define depending on TARGET_GLIBC. + * config.gcc (*-*-linux*): Define extra_options. + (*-*-*uclibc*): Define UCLIBC_DEFAULT. + (arm*-*-linux-gnueabi): Change to arm*-*-linux-*eabi. + * config/arm/linux-eabi.h (LINUX_TARGET_INTERPRETER): Change to + GLIBC_DYNAMIC_LINKER. + * config/arm/linux-elf.h (LINUX_TARGET_INTERPRETER): Likewise. + (LINUX_TARGET_LINK_SPEC): Use LINUX_DYNAMIC_LINKER. + * config/mips/linux.h (GLIBC_DYNAMIC_LINKER): Define. + (LINK_SPEC): Use LINUX_DYNAMIC_LINKER. + * doc/invoke.texi (GNU/Linux Options): New section. + +2006-02-16 Eric Botcazou + + * config/sparc/sparc.md (setjmp): Rewrite. + (setjmp_32): Delete. + (setjmp_64): Likewise. + +2006-02-16 Daniel Berlin + + * tree-ssa-operands.c (access_can_touch_variable): Fix typo in + previous change. + +2006-02-16 Zdenek Dvorak + + * loop-invariant.c (invariant_for_use, check_dependencies): Fail for + read-write uses. + +2006-02-16 Zdenek Dvorak + + PR rtl-optimization/26296 + * Makefile.in (loop-invariant.c): Add except.h dependency. + * loop-invariant.c: Include except.h. + (find_invariant_insn): Ignore insns satisfying can_throw_internal. + +2005-02-16 Paul Brook + + * reload1.c (emit_reload_insns): Invalidate dead input registers used + for reloads. + +2006-02-16 Bernd Schmidt + + PR rtl-optimization/25636 + * local-alloc.c (update_equiv_regs): Lose a bogus rtx_equal_p test + when deciding whether an insn is an initializing insn. + +2006-02-15 Daniel Berlin + + * tree.c (init_ttree): Add STRUCT_FIELD_TAG handling. + (tree_code_size): Ditto. + * tree.h (struct tree_memory_tag): Remove parent_var. + (struct tree_struct_field_tag): New. + (SFT_OFFSET): New. + (SFT_SIZE): New. + (union tree_node): Add sft member. + * tree-ssa-alias.c (get_tmt_for): Don't handle TYPE_READONLY + specially here. + (create_sft): Add size and offset argument, set SFT_OFFSET and + SFT_SIZE. + (create_overlap_variables_for): Update for SFT_OFFSET/SFT_SIZE. + * treestruct.def: Add TS_STRUCT_FIELD_TAG. + * tree-flow-inline.h (get_subvar_at): Update for + SFT_OFFSET/SFT_SIZE. + (var_can_have_subvars): Ditto. + (overlap_subvar): Ditto. + * print-tree.c (print_node): Print out interesting things for + SFT's. + * tree-flow.h (struct subvar): Remove offset and size members. + * tree-ssa-operands.c (get_expr_operands): Update for + get_indirect_ref_operands changes. + (get_indirect_ref_operands): Call add_virtual_operand instead of + add_stmt_operand. Only recurse on base var if requested. + (access_can_touch_variable): New function. + (add_stmt_operand): Split virtual operand handling into ... + (add_virtual_operand): Here. Add offset, size, and for_clobber + arguments. Prune alias sets. + (add_call_clobber_ops): Call add_virtual_operand. + +2006-02-15 Jakub Jelinek + + PR middle-end/26300 + * combine.c (make_extraction): Bail out if ORIG_POS is negative. + + * tree.h (struct tree_omp_clause): Use OMP_CLAUSE_CODE rather + than TREE_CODE as index into omp_clause_num_ops array. + +2006-02-15 Uttam Pawar + + PR rtl-optimization/26184 + * modulo-sched.c (generate_reg_moves): Free bitmap vector + uses_of_defs. + * modulo-sched.c (sms_schedule): Free g_arr pointer. + * modulo-sched.c (sms_schedule_by_order): Free bitmap pointers + must_precede, must_follow and tobe_scheduled. + + PR other/26147 + * opts.c (common_handle_option): Free new_option pointer. + * df-core.c (df_analyze): Free postorder pointer. + +2006-02-15 Rafael Ávila de Espíndola + + * Makefile.in: Fix the examples about the use of stamps + +2006-02-15 Michael Matz + + PR middle-end/22275 + + * stor-layout.c (layout_decl): Zero-width bitfields aren't + influenced by maximum_field_alignment or DECL_PACKED. + (update_alignment_for_field): Ditto. + (place_field): Ditto. + * doc/extend.texi (<#pragma pack>, ): Document + this behaviour. + +2006-02-15 Paolo Bonzini + + * cfg.c (dump_flow_info): Get dump flags as an additional parameter. + (debug_flow_info): Pass it. + * alias.c (rest_of_handle_cfg): Adjust calls to dump_flow_info. + * bb-reorder.c (reorder_basic_blocks): Likewise. + * cfgcleanup.c (rest_of_handle_jump2): Likewise. + * cse.c (rest_of_handle_cse, rest_of_handle_cse2): Likewise. + * flow.c (life_analysis, recompute_reg_usage): Likewise. + * gcse.c (gcse_main, bypass_jumps): Likewise. + * ifcvt.c (rest_of_handle_if_conversion): Likewise. + * local-alloc.c (rest_of_handle_local_alloc): Likewise. + * loop-init.c (rtl_loop_init, rtl_loop_done): Likewise. + * profile.c (compute_branch_probabilities, branch_prob): Likewise. + * rtl.h (dump_flow_info): Adjust prototype. + * tracer.c (rest_of_handle_tracer, tracer): Likewise. + * var-tracking.c (variable_tracking_main): Likewise. + * passes.c (execute_todo): Obey TDF_BLOCKS for RTL. + * tree-dump.c (enable_rtl_dump_file): Enable the details and blocks + options. + +2006-02-15 Marcin Dalecki + + * tree-ssa-dom.c (dom_thread_across_edge): fix tag expression + construction. + +2006-02-14 Zdenek Dvorak + + PR tree-optimization/26209 + * tree-ssa-loop.c (pass_scev_cprop): Add TODO_cleanup_cfg. + * tree-cfgcleanup.c (cleanup_control_flow): Remove dead + eh edges. + * tree-cfg.c (replace_uses_by): Do not alter cfg. + +2006-02-14 Roger Sayle + + PR middle-end/23670 + * fold-const.c (fold_binary) : Optimize (X&Y)|Y into + (X,Y) and the corresponding symmetry related transformations. + (fold_binary) : Likewise, optimize (X|Y)&Y into + (X,Y) and its symmetry related transformations. + +2006-02-14 Roger Sayle + + * dojump.c (do_compare_rtx_and_jump): Also handle multi-word GTU + and GEU. + +2006-02-14 Adam Nemet + + * simplify-rtx.c (simplify_subreg): Combine SUBREG and TRUNCATE. + +2006-02-14 Rainer Orth + + PR bootstrap/26053 + * configure.ac (HAVE_COMDAT_GROUP): Don't assume non-GNU linkers + support COMDAT group. + * configure: Regenerate. + +2006-02-14 Roger Sayle + + PR middle-end/26279 + PR middle-end/26280 + PR middle-end/26283 + * dojump.c (do_compare_rtx_and_jump): Handle multi-word LE. + +2006-02-14 Daniel Berlin + + Fix PR tree-optimization/26260 + + * doc/invoke.texi (max-fields-for-field-sensitive): Document + param. + * params.h (MAX_FIELDS_FOR_FIELD_SENSITIVE): New. + * params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Ditto. + * tree-ssa-structalias.c (create_variable_info_for): Use + MAX_FIELDS_FOR_FIELD_SENSITIVE. + +2006-02-14 Zdenek Dvorak + + * doc/invoke.texi (-fprefetch-loop-arrays, -fprefetch-loop-arrays-rtl): + Document. + * tree-ssa-loop-niter.c (number_of_iterations_ne, + number_of_iterations_lt, number_of_iterations_cond): Remember the shape + of the ending condition. + * tree-ssa-loop-manip.c: Include params.h. + (build_if_stmt, can_unroll_loop_p, determine_exit_conditions, + tree_unroll_loop): New functions. + * tree-pass.h (pass_loop_prefetch): Declare. + * loop.c (rest_of_handle_loop_optimize): Test for + -fprefetch-loop-arrays-rtl. + * tree-scalar-evolution.h (affine_iv): Moved to tree-flow.h. + * timevar.def (TV_TREE_PREFETCH): New timevar. + * tree-ssa-loop.c (tree_ssa_loop_prefetch, gate_tree_ssa_loop_prefetch, + pass_loop_prefetch): New. + * tree-cfgcleanup.c: Include tree-scalar-evolution.h. + (cleanup_tree_cfg_loop): Call scev_reset. + * common.opt (fprefetch-loop-arrays-rtl): Add. + * tree-ssa-loop-prefetch.c: New file. + * tree-outof-ssa.c (struct value_expr_d): Add expr_vars field. + (new_temp_expr_table): Initialize expr_vars. + (free_temp_expr_table): Cleanup expr_vars. + (check_replaceable, find_replaceable_in_bb): Prevent accumulating + expressions from being merged into one. + * tree-flow.h (affine_iv): Moved from tree-scalar-evolution.h. + (struct tree_niter_desc): Add control, bound and cmp fields. + (tree_ssa_prefetch_arrays, can_unroll_loop_p, tree_unroll_loop): + Declare. + * Makefile.in (tree-ssa-loop-prefetch.o): Add. + (tree-cfgcleanup.o): Add SCEV_H dependency. + (tree-ssa-loop-manip.o): Add PARAMS_H dependency. + * passes.c (init_optimization_passes): Add pass_loop_prefetch. + +2006-02-14 Richard Guenther + + PR tree-optimization/26258 + * tree-ssa-structalias.c (find_func_aliases): Handle aggregates + in PHI argument processing. + +2006-02-13 Adam Nemet + + * simplify-rtx.c (simplify_unary_operation_1) : Return + new expression in the requested machine mode. + +2006-02-13 Roger Sayle + + * optabs.c (expand_abs): Don't call do_jump_by_parts_greater_rtx + directly, instead let do_compare_rtx_and_jump handle this for us. + * expr.c (expand_expr_real_1): Likewise. + * dojump.c (do_jump_by_parts_greater_rtx): Make static. Move + before do_jump_by_parts_greater. + (do_jump_by_parts_greater): Move after do_jump_by_parts_greater_rtx. + * expr.h (do_jump_by_parts_greater_rtx): Delete prototype. + +2006-02-13 John David Anglin + + * pa/quadlib.c: Use defines instead of enum qfcmp_magic. + +2006-02-13 Zdenek Dvorak + + PR rtl-optimization/26235 + * loop-invariant.c (hash_invariant_expr_1): Handle 'i' and 'n' formats. + (invariant_expr_equal_p): Handle 'i' and 'n' formats. Fail on unknown + format. + +2006-02-13 Jeff Law + + * tree-vrp.c (extract_range_from_binary_expr): Remove handling of + TRUTH_XOR_EPR. + +2006-02-13 Jakub Jelinek + + PR middle-end/26092 + * gimplify.c (gimplify_call_expr): Don't call get_callee_fndecl + twice if decl is a builtin. When trying again, call get_callee_fndecl + first to verify it is still a builtin. + +2006-02-13 Geoffrey Keating + + * dwarf2out.c (base_type_die): Don't add AT_name here. + (subrange_type_die): Don't add AT_name here. + (modified_type_die): Rearrange code flow. Do add AT_name here. + +2006-02-13 Zdenek Dvorak + + PR rtl-optimization/26247 + PR rtl-optimization/26248 + * loop-invariant.c (may_assign_reg_p): Do not allow VOIDmode. + +2006-02-13 Richard Sandiford + + * config/floatunditf.c: Use if __LDBL_MANT_DIG__ == 113. + * config/fixtfdi.c: Likewise. + * config/fixunstfdi.c: Likewise. + * config/floatditf.c: Likewise. + +2006-02-13 Roger Sayle + + PR middle-end/24427 + * fold-const.c (fold_binary) : Transform (X&C1)|C2 + into (X,C2) if C1 is a subset of the bits of C2. Transform + (X&C1)|C2 into X|C2 if C1|C2 == ~0. Canonicalize (X&C1)|C2 as + (X&(C1&~C2))|C2. + : Canonicalize (X|C1)&C2 as (X&C2)|(C1&C2). + +2006-02-13 Josh Conner + + PR target/25376 + * varasm.c (function_section): Check for section name before + calling select_section on targets that define + USE_SELECT_SECTION_FOR_FUNCTIONS. On other targets, use + unlikely_text_section instead of hot_function_section if + first_function_block_is_cold. + +2006-02-13 J"orn Rennecke + + PR middle-end/25335 + * reload1.c (gen_reload): Also use find_replacement in UNARY_P case. + +2006-02-12 Zdenek Dvorak + + PR rtl-optimization/26222 + * function.c (assign_stack_temp_for_type): Do not reuse stack slots + after tree->rtl expansion. + * loop-invariant.c (move_invariant_reg): Use force_operand on rhs + before passing it to emit_move_insn. + +2006-02-12 Gabriel Dos Reis + + * doc/invoke.texi (-Write-strings): Document that it is enabled by + default. + * c.opt (-Wwrite-strings): Declare variable warn_write_strings. + Clarify documentation. + * c-common.h (warn_write_strings): Remove. + * c-common.c (warn_write_strings): Likewise. + * c-opts.c (c_common_init_options): Enable -Wwrite-strings by + default for C++. + +2006-02-12 Roger Sayle + + PR middle-end/25724 + * dojump.c (do_jump): Call do_compare_rtx_and_jump. + (do_jump_parts_zero_rtx): New function renamed from + do_jump_parts_equality_rtx. Made static. Add a mode argument. + (do_jump_parts_equality_rtx): New function split out from + do_jump_parts_equality. Old implementation renamed as above. + Call do_jump_parts_zero_rtx if either operand is zero. + (do_jump_parts_equality): Call do_jump_parts_equality_rtx to + do all of the heavy lifting. + (do_compare_rtx_and_jump): Handle multi-word comparisons by + calling either do_jump_by_parts_greater_rtx or + do_jump_by_parts_equality_rtx. + * expr.h (do_jump_by_parts_equality_rtx): Remove prototype. + * expmed.c (do_cmp_and_jump): Now multi-word optimization has + moved to do_compare_rtx_and_jump, call it directly. + * stmt.c (do_jump_if_equal): Remove static prototype. Add a + mode argument. Call do_compare_rtx_and_jump. + (emit_case_nodes): Update calls to do_jump_if_equal. + +2006-02-12 Zdenek Dvorak + + PR rtl-optimization/26225 + * loop-invariant.c (may_assign_reg_p): Do not allow BLKmode operands. + +2006-02-12 Zdenek Dvorak + + PR rtl-optimization/26232 + * loop-invariant.c (find_invariant_insn): Ignore insns that set CC0. + +2006-02-11 Jason Merrill + + PR tree-opt/24365 + * tree-inline.c (declare_return_variable): Just don't use the + modify target if it's a gimple complex reg and the return slot + isn't. + +2006-02-11 Kaveh R. Ghazi + + * doc/contrib.texi: Update my entry. + +2006-02-10 Geoffrey Keating + + * config/i386/darwin.h (DBX_REGISTER_NUMBER): Define. + +2006-02-10 Diego Novillo + + * tree-inline.c (estimate_num_insns_1): Make OpenMP directives + expensive. + +2006-02-10 Zdenek Dvorak + + * doc/invoke.texi (-floop-optimize2): Removed. + * toplev.c (process_options): Remove handling of flag_loop_optimize2. + * loop-init.c (gate_handle_loop2): Do not test flag_loop_optimize2. + Test flag_branch_on_count_reg only if HAVE_doloop_end. + * common.opt (floop-optimize2): Removed. + (fmove-loop-invariants): Enabled by default. + +2006-02-10 Sebastian Pop + + * tree-if-conv.c (combine_blocks): Free the result of + get_loop_exit_edges. + +2006-02-10 Jeff Law + + * fold-const.c (tree_expr_nonzero_p): Fix thinko. + + PR tree-optimization/26213 + * tree-ssa-threadedge.c (simplify_control_stmt_condition): Do not + loop trying to follow SSA_NAME_VALUE chains. + +2006-02-10 Richard Guenther + + * tree-dfa.c (get_ref_base_and_extent): When computing maxsize + deal with structures that end in implicitly variable sized arrays. + +2006-02-09 Zdenek Dvorak + + PR rtl-optimization/24762 + * df-scan.c (df_bb_refs_record): Record correct registers defined on + eh edges. + +2006-02-09 Zdenek Dvorak + + * tree-ssa-loop-ivopts.c (struct loop_data, loop_data): Removed. + (struct ivopts_data): Add regs_used field. + (tree_ssa_iv_optimize_init): Do not allocate aux fields for loops. + (ivopts_global_cost_for_size, determine_set_costs): Use data->regs_used + instead of loop_data->regs_used; + (free_loop_data): Do not free aux fields for loops. + (tree_ssa_iv_optimize): Do not pass loops to tree_ssa_iv_optimize_init + and tree_ssa_iv_optimize_finalize. + +2006-02-09 Kaz Kojima + + * config/sh/sh.h (FUNCTION_VALUE): Don't handle CHAR_TYPE. + +2006-02-09 J"orn Rennecke + + PR target/26141 + * sh.c (sh_gimplify_va_arg_expr): Don't change the result type when + computing the effective result type. + +2006-02-09 J"orn Rennecke + + PR inline-asm/16194 + * tree.h (decl_overlaps_hard_reg_set_p) Don't declare. + (tree_overlaps_hard_reg_set): Declare. + * stmt.c (decl_overlaps_hard_reg_set_p): Now static. Change return + type and signature to match function type expected by walk_tree. + (tree_overlaps_hard_reg_set): New function. + (decl_conflicts_with_clobbers_p): Rename to: + (tree_conflicts_with_clobbers_p). Take HARD_REG_SET * argument. + Use tree_overlaps_hard_reg_set. Changed caller. + * doc/tm.texi (TARGET_MD_ASM_CLOBBERS): Replace + decl_overlaps_hard_reg_set_p with tree_overlaps_hard_reg_set. + * cris.c (cris_md_asm_clobbers): Likewise. + +2006-02-09 Bernd Schmidt + + * reload1.c (emit_input_reload_insns): Delete code that tries to + inherit using find_equiv_reg. + +2006-02-09 Gabriel Dos Reis + + * c-common.h (flag_const_strings): Don't declare. + * c-common.c (flag_const_strings): Remove. + * c.opt (fconst_strings): Remove. + * c-opts.c (c_common_handle_option): Remove . + : Don't set flag_const_strings. + (c_common_init_options): Don't set flag_const_strings. + * doc/invoke.texi (-fno-const-strings): Remove documentation. + +2006-02-09 Richard Earnshaw + + * arm.md (tlobits_cbranch): New pattern. + * arm.h (arm_select_cc_mode): For thumb, only return CC_Nmode if + testing a single bit. + +2006-02-09 Andrew Pinski + + PR tree-opt/26179 + * tree-ssa-pre.c (create_component_ref_by_pieces): + Handle RETURN_DECL like VAR_DECL. + +2006-02-09 Andrew Pinski + + PR middle-end/26134 + * fold-const.c (fold_indirect_ref_1): Fold + "*(foo *)&complexfoo" to "__real__ complexfoo" + and "((foo*)&complexfoo)[1]" to "__imag__ complexfoo". + +2006-02-09 Andrew Pinski + + * tree-flow-inline.h (var_can_have_subvars): + Volatile variables should not have subvariables. + +2006-02-09 Diego Novillo + + PR 26180 + * tree-vrp.c (vrp_int_const_binop): Detect overflow when + multiplying unsigned values. + Tidy comments. + +2006-02-09 Eric Botcazou + + * config/sparc/sparc.c (tls_call_delay): Fix oversight. + +2006-02-08 Jason Merrill + + PR c++/25979 + * tree.def: Elaborate on difference from MODIFY_EXPR. + * doc/c-tree.texi (INIT_EXPR): Likewise. + * gimplify.c (internal_get_tmp_var): Use INIT_EXPR. + (gimplify_decl_expr, gimplify_init_ctor_eval): Likewise. + (gimplify_target_expr): Likewise. + (gimplify_cond_expr): Remove target handling. + (gimplify_modify_expr): Don't clobber INIT_EXPR code here. + (gimplify_expr): Clobber it here. + (gimplify_modify_expr_rhs): Push assignment into COND_EXPR here. + Do return slot optimization if we have an INIT_EXPR. + + PR tree-opt/24365 + * tree-inline.c (declare_return_variable): Also clear + DECL_COMPLEX_GIMPLE_REG_P as needed in the modify_dest case. + + PR c++/16405 + * gimplify.c (gimplify_modify_expr_rhs): Re-enable *& handling. + + PR middle-end/22439 + * gimplify.c (gimplify_one_sizepos): Fix typo. + +2006-02-08 Jeff Law + + PR tree-optimization/21417 + * tree-ssa-threadedge.c (thread_across_edge): Reject threading + across a backedge if the control statement at the end of the + block is data dependent on other statements in the same block. + (record_temporary_equivalences_from_stmts): Remove over-conservative + test for threading across backedges. + + * tree-ssa-dce.c (remove_dead_statement): When removing a dead + control statement, handle all three special cases in the same + manner as they all have the same desired solution. No longer + special case edge flag updating when the post dominator is + the exit block. + +2006-02-08 Roger Sayle + + * tree.def (CHAR_TYPE): Remove. + * dbxout.c (dbxout_type): Delete dead handling of CHAR_TYPE. + * dwarf2out.c (base_type_die, is_base_type): Likewise. + (gen_type_die) : Remove handling of CHAR_TYPE arrays. + (gen_string_type_die): Delete unreachable function. + + * tree-pretty-print.c (dump_generic_node): Don't handle CHAR_TYPE. + * tree.c (build_int_cst_wide, type_contains_placeholder_1, + type_hash_eq, variably_modified_type_p, walk_type_fields): Likewise. + * tree.h (NUMERICAL_TYPE_CHECK, INTEGRAL_TYPE_P): Likewise. + * builtins.c (type_to_class): Likewise. + * fold-const.c (fold_convert, build_range_check, + merge_ranges): Likewise. + * expr.c (count_type_elements): Likewise. + * c-pretty-print.c (pp_c_type_specifier): Likewise. + * stor-layout.c (layout_type): Likewise. + * ipa-type-escape.c (type_to_consider): Likewise. + * gimplify.c (omp_firstprivatize_type_sizes, + gimplify_type_sizes): Likewise. + * explow.c (promote_mode): Likewise. + * tree-sra.c (is_sra_scalar_type): Likewise. + * varasm.c (output_constant): Likewise. + * tree-inline.c (remap_type_1): Likewise. + * convert.c (convert_to_pointer, convert_to_real, + convert_to_integer, convert_to_complex): Likewise. + +2006-02-08 Daniel Berlin + + * df-scan.c (df_def_record_1): A set destination may + be a parallel regardless of mode. + +2006-02-08 Roger Sayle + + PR target/22209 + * config/mips/mips.h (MIN_UNITS_PER_WORD): Don't define for libgcc. + * config/mips/_tilib.c: Remove. + * config/fixtfdi.c: New libgcc source file. + * config/fixunstfdi.c: New source file. + * config/floatditf.c: New source file. + * config/floatunditf.c: New souce file. + * config/mips/t-iris6 (LIB2FUNCS_EXTRA): Include the new source + files above instead of config/mips/_tilib.c. + * config/mips/t-linux64 (LIB2FUNCS_EXTRA): Likewise. + +2006-02-08 Jeff Law + + PR tree-optimization/26169 + * tree-vrp.c (execute_vrp): Perform any queued SSA updates before + threading jumps. + +2006-02-08 Zdenek Dvorak + + * df.h (DF_REG_SIZE): Return the length of the initialized + part of the array. + +2006-02-08 Nathan Sidwell + + * config/m68k/lb1sf68.asm (__divsf3, __divdf3, __mulsf3, + __muldf3): Return a correctly signed zero. + +2006-02-08 Paolo Bonzini + + * passes.c (register_one_dump_file): Accept the current properties + instead of pass number. Adjust call to dump_register. Remove + duplicated code. + (register_dump_files): Now a wrapper around... + (register_dump_files_1): ... this one. Do not modify the pass + structure. + (next_pass_1): Cosmetic fix. + (execute_todo): Keep second parameter only. Use curr_properties + instead of fetching it from the pass structure. Check and set + last_verified. + (execute_one_pass): Handle TODO_set_props. Use curr_properties + instead of fetching it from the pass structure. Fix calls to + execute_todo. Update curr_properties and initialize .vcg RTL dump + after running the pass. Reset last_verified. + * tree-dump.c (dump_files): Renumber consecutively. Put .cgraph dump + at the beginning. + (FIRST_AUTO_NUMBERED_DUMP): New. + (dump_register): Remove "num" parameter, assign it within the + function. + (get_dump_file_name): Modify template for dumps. + * tree-dump.h (dump_register): Adjust prototype. + * tree-pass.h (enum tree_dump_index): Move cgraph at the beginning. + (PROP_trees): Add PROP_gimple_lomp. + (TODO_set_props): New. + * gimple-low.c (pass_lower_cf): Do not destroy PROP_gimple_lcf. + * tree-eh.c (pass_lower_eh): Do not destroy PROP_gimple_leh. + * cfgexpand.c (pass_expand): Destroy PROP_trees. + +2006-02-08 Jakub Jelinek + + * config.gcc (sparc-*-linux*): Add sparc/t-linux to tmake_file. + (sparc64-*-linux*): Likewise. + * config/sparc/t-linux64 (SHLIB_MAPFILES): Removed. + * config/sparc/t-linux: New file. + * config/sparc/libgcc-sparc-glibc.ver (__fixtfdi, __fixunstfdi, + __floatditf): Export at GCC_LDBL_3.0 if -m32 -mlong-double-128. + (__divtc3, __multc3, __powitf2): Export at GCC_LDBL_4.0.0 if + -m32 -mlong-double-128. + + * config.gcc (alpha*-*-linux*): Add alpha/t-linux to tmake_file. + * config/alpha/t-linux: New file. + * config/alpha/libgcc-alpha-ldbl.ver: New file. + + * config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Define + __LONG_DOUBLE_128__ if TARGET_LONG_DOUBLE_128. + (CPP_SUBTARGET_SPEC): Don't add -D__LONG_DOUBLE_128__ here. + * config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Define + __LONG_DOUBLE_128__ if TARGET_LONG_DOUBLE_128 and TARGET_ARCH32. + (CPP_ARCH32_SPEC): Remove. + +2006-02-07 Uttam Pawar + + PR tree-optimization/26145 + * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Free + bbs pointer. + +2006-02-07 John David Anglin + + PR target/26109 + * pa.c (attr_length_indirect_call): Don't return length 8 for distances + >= 240000 when generating code for SOM runtime. + (output_indirect_call): Don't use "b,l" instruction for indirect calls + to $$dyncall when generating code for SOM runtime.. + +2006-02-07 Dirk Mueller + + PR c++/18150 + * doc/invoke.texi (-Wsequence-point): Update documentation + that -Wsequence-point is implemented for C++ as well. + +2006-02-07 Eric Botcazou + + * config/sol26.h (CPP_SUBTARGET_SPEC): Accept -pthread. + * config/sol2.h (CPP_SUBTARGET_SPEC): Likewise. + (LIB_SPEC): Likewise. + * doc/invoke.texi (SPARC options): Document -pthread. + +2006-02-07 Geoffrey Keating + + * config/i386/i386.c (ix86_delegitimize_address): Support Darwin + PIC addresses. + +2006-02-07 Roger Sayle + + * config/sparc/sparc.c (sparc_type_code): Don't handle CHAR_TYPE. + Correct comment describing BOOLEAN_TYPE. + +2006-02-07 Dirk Mueller + + * c.opt: C++ frontend supports -Wdiv-by-zero. + * c-opts.c (c_common_handle_option): Remove dead case. + +2006-02-07 Eric Botcazou + + * configure.ac (TLS assembler check): Do not enable TLS by + default on SPARC/Solaris before version 10. + * configure: Regenerate. + +2006-02-07 David Edelsohn + + * doc/invoke.texi (xl-compat): Document conversion and support + routine names. + +2006-02-07 Jeff Law + + * tree-vrp.c (find_conditional_asserts): Update comments. + (simplify_stmt_for_jump_threading): New. + (identify_jump_threads, finalize_jump_threads): New. + (vrp_finalize): Call identify_jump_threads. + (execute_vrp): Call finalize_jump_threads. + * tree-ssa-dom.c (struct opt_stats_d): Remove num_iterations field. + (vrp_element, vrp_data, vrp_element_p): Remove. + (vrp_hash_elt, vrp_variables_stack): Remove. + (vrp_hash, vrp_eq, record_range): Remove. + (simplify_cond_and_lookup_avail_expr): Remove. + (extract_range_from_cond): Remove. + (thread_across_edge): Relocated into tree-ssa-threadedge.c. + (simplify_stmt_for_jump_threading): New. + (dom_thread_across_edge): New wrapper. + (tree_ssa_dominator_optimize): No longer initialize or + finalize any of the VRP datastructures. Remove iteration + step and simplify as a result of removal of iteration step. + (pass_dominator): Perform a cfg cleanup after DOM. + (dom_opt_finalize_block): Use the new common routines + for threading jumps. Simplify stack management slightly. + No longer need to unwind VRP state. + (record_equivalences_from_incoming_edge): No longer record + VRP information. + (eliminate_redundant_computations): No longer call + simplify_cond_and_lookup_avail_expr. + * tree-flow.h (potentially_threadable_block): Prototype. + (thread_across_edge): Likewise. + * Makefile.in (OBJS-common): Add tree-ssa-threadedge.o + (tree-ssa-threadedge.o): Add dependencies. + * tree-ssa-threadedge.c: New file. + * passes.c (init_optimization_passes): Merge PHIs before + calling VRP. Run VRP again late in the SSA optimization pipeline. + +2006-02-07 Eric Botcazou + + * df-core.c (df_set_blocks): Do not dereference function pointers. + (df_finish1): Likewise. + (df_hybrid_search_forward): Likewise. + (df_hybrid_search_backward): Likewise. + (df_iterative_dataflow): Likewise. + (df_analyze_problem): Likewise. + (df_compact_blocks): Likewise. + (df_dump): Likewise. + * df-scan.c (df_rescan_blocks): Likewise. + (df_record_entry_block_defs): Likewise. + + * genconditions.c (write_conditions): Guard the definition of + 'insn_conditions' with the check on GCC version. + (write_writer): Guard the traversal 'insn_conditions' with + the check on GCC version. + +2006-02-07 Richard Guenther + + PR c++/26140 + Revert + 2006-01-30 Richard Guenther + PR c++/23372 + * gimplify.c (gimplify_target_expr): Handle easy cases + without creating a temporary. + +2006-02-07 Pete Steinmetz + + * sched-rgn.c (compute_dom_prob_ps, compute_trg_info): Eradicate + use of float in probability computations. Use edge probabilities + in place of statically computed probabilities. + (min_spec_prob): New static variable. + (schedule_insns): Initialize it. + (GET_SRC_PROB): Removed. + * doc/invoke.texi (min-sched-prob): Renamed to min-spec-prob. + +2006-02-07 Alexandre Oliva + + PR debug/24444 + * config/ia64/unwind-ia64.c: Revert last change. + * config/ia64/ia64.h (ARG_POINTER_CFA_OFFSET): Removed. + (INCOMING_FRAME_SP_OFFSET): Define. + +2006-02-06 Roger Sayle + + * config/ia64/ia64.c (hfa_element_mode): Don't handle CHAR_TYPE. + +2006-02-07 Ben Elliston + + * config/i386/i386.c (ix86_scalar_mode_supported_p): New. + (TARGET_SCALAR_MODE_SUPPORTED_P): Define hook. + (classify_argument): Handle SDmode, DDmode, TDmode for 64-bit. + (ix86_return_in_memory): Handle TDmode. + (ix86_libcall_value): Handle SDmode, DDmode, TDmode. + (ix86_value_regno): Return non-TDmode decimal float modes in %eax. + +2006-02-06 Richard Sandiford + + * reorg.c (dbr_schedule): Use dump_file instead of file. + +2006-02-06 Steve Ellcey + + PR target/25917 + * config/ia64/predicates.md (extr_len_operand): New predicate. + * config/ia64/ia64.md (extv): Tighten constraints. + (extzv): Ditto. + (*tbit_and_2): Ditto. + (*tbit_and_3): Ditto. + (*tbit_or_2): Ditto. + (*tbit_or_3): Ditto. + (*bit_zero): Ditto. + (*bit_one): Ditto. + +2006-02-06 Andrew Pinski + + PR target/23359 + * config/i386/i386.md (trap): Use ASM_SHORT instead of .word. + +2006-02-06 Zdenek Dvorak + + * tree-vrp.c (execute_vrp): Do not pass dump argument to. + loop_optimizer_init and loop_optimizer_finalize + * tree-ssa-sink.c (execute_sink_code): Ditto. + * tree-ssa-loop-ch.c (copy_loop_headers): Ditto. + * tree-ssa-loop.c (tree_loop_optimizer_init, tree_ssa_loop_init, + tree_ssa_loop_done): Ditto. + * tree-ssa-pre.c (init_pre, fini_pre): Ditto. + * sched-ebb.c: Include output.h. + (schedule_ebbs): Do not use dump argument. + * value-prof.h (struct profile_hooks): Remove profile_dump_file. + * loop.c (loop_dump_stream): Removed. + (loop_optimize, rest_of_handle_loop_optimize): Do not use dump + argument. + (scan_loop, move_movables, find_and_verify_loops, mark_loop_jump, + emit_prefetch_instructions, loop_bivs_find, loop_bivs_check, + final_biv_value, loop_biv_eliminable_p, loop_givs_rescan, + loop_iterations, strength_reduce, record_biv, record_giv, + final_giv_value, check_final_value, check_ext_dependent_givs, + combine_givs, check_dbra_loop, maybe_eliminate_biv, load_mems, + try_copy_prop, loop_delete_insns, try_swap_copy_prop): Use + dump_file instead of loop_dump_stream. + * ddg.c (print_ddg_edge, print_ddg, vcg_print_ddg): Do not call + argument dump_file. + * reorg.c (dbr_schedule, rest_of_handle_delay_slots): Do not use + dump argument. + * flow.c (life_analysis, rest_of_handle_life): Ditto. + * haifa-sched.c: Include output.h + (schedule_insns, sched_init): Do not use dump argument. + * mode-switching.c (optimize_mode_switching): Ditto. + * modulo-sched.c (stats_file): Removed. + (print_node_sched_params): Do not call argument dump_file. + (sms_schedule_by_order, loop_canon_p, sms_schedule, + rest_of_handle_sms): Do not use dump argument. Use dump_file instead + of stats_file. + * cse.c (cse_main, rest_of_handle_cse, rest_of_handle_cse2): Do not + use dump argument. + * loop-init.c (loop_optimizer_init, loop_optimizer_finalize, + rtl_loop_init, rtl_loop_done): Ditto. + * global.c (global_alloc, rest_of_handle_global_alloc): Ditto. + * predict.c (combine_predictions_for_bb, tree_estimate_probability): + Ditto. + * recog.c (peephole2_optimize, rest_of_handle_peephole2): Ditto. + * lcm.c (pre_edge_lcm, pre_edge_rev_lcm): Ditto. + * regmove.c (fixup_match_1, fixup_match_2, regmove_optimize, + rest_of_handle_regmove, rest_of_handle_stack_adjustments): Ditto. + * emit-rtl.c (renumber_insns): Ditto. + * cfgexpand.c (add_reg_br_prob_note, expand_gimple_cond_expr, + expand_gimple_basic_block, tree_expand_cfg): Ditto. + * regclass.c (regclass): Ditto. + * tree-outof-ssa.c (analyze_edges_for_bb, perform_edge_inserts, + remove_ssa_form, rewrite_out_of_ssa): Ditto. + * reg-stack.c (compensate_edge, compensate_edges, convert_regs_1, + convert_regs_2, convert_regs, reg_to_stack, rest_of_handle_stack_regs): + Ditto. + * sched-rgn.c (schedule_insns, rest_of_handle_sched): Ditto. + * local-alloc.c (rest_of_handle_local_alloc): Do not pass dump_file + to regclass. + * gcse.c (gcse_file, debug_stderr): Removed. + (gcse_main, bypass_jumps, rest_of_handle_jump_bypass, + rest_of_handle_gcse): Do not use dump argument. + (cprop_jump, cprop_insn, do_local_cprop, cprop, find_implicit_sets, + one_cprop_pass, bypass_block, compute_pre_data, insert_insn_end_bb, + pre_edge_insert, pre_insert_copy_insn, pre_delete, one_pre_gcse_pass, + compute_code_hoist_vbeinout, compute_code_hoist_data, + one_code_hoisting_pass, trim_ld_motion_mems, update_ld_motion_stores, + compute_store_table, build_store_vectors, insert_insn_start_bb, + insert_store, remove_reachable_equiv_notes, replace_store_insn, + store_motion): Use dump_file instead of gcse_file. + * ipa-type-escape.c (type_escape_execute): Remove debugging comments. + * profile.c (profile_dump_file): Removed. + (branch_prob): Use dump_file instead of profile_dump_file. + * ipa.c (cgraph_remove_unreachable_nodes): Do not call argument + dump_file. + * tree-ssa-copy.c (dump_copy_of): Ditto. + * rtl-factoring.c (rtl_seqabstr, rest_of_rtl_seqabstr): Do not pass + dump file to life_analysis. + * bt-load.c (branch_target_load_optimize): Ditto. + * cfgcleanup.c (rest_of_handle_jump2): Do not pass dump_file to + renumber_insns. + * rtl.h (cse_main, renumber_insns, schedule_insns, schedule_ebbs, + regclass, dbr_schedule): Declaration changed. + * sched-int.h (sched_init): Declaration changed. + * tree-profile.c (tree_profile_dump_file): Removed. + (tree_profile_hooks): Removed profile_dump_file hook. + * rtl-profile (rtl_profile_dump_file): Removed. + (rtl_profile_hooks): emoved profile_dump_file hook. + * cfgloop.h (loop_optimizer_init, loop_optimizer_finalize): Declaration + changed. + * c-gimplify.c (c_genericize): Do not call local variable dump_file. + * tree-cfg.c (build_tree_cfg): Ditto. + * Makefile.in (haifa-sched.o, sched-ebb.o): Add output.h dependency. + * basic-block.h (life_analysis, pre_edge_lcm, pre_edge_rev_lcm): + Declaration changed. + * config/sh/sh.c (sh_output_mi_thunk): Do not pass dump_file to + life_analysis and schedule_insns. + * config/m68hc11/m68hc11.c (m68hc11_reorg): Do not pass dump_file to + life_analysis. + * config/mt/mt.c (mt_machine_reorg): Do not pass dump_file to + dbr_schedule. + * config/mips/mips.c (mips_reorg): Ditto. + * config/ia64/ia64.c (ia64_reorg): Do not pass dump_file to + schedule_ebbs. + +2006-02-06 Aldy Hernandez + + * config/s390/s390.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Define. + (s390_mangle_fundamental_type): New. + * config/s390/linux.h (TARGET_ALTERNATE_LONG_DOUBLE_MANGLING): + Define. + + * config/alpha/alpha.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Define. + (alpha_mangle_fundamental_type): New. + * config/alpha/linux.h (TARGET_ALTERNATE_LONG_DOUBLE_MANGLING): + Define. + + * config/sparc/linux.h (TARGET_ALTERNATE_LONG_DOUBLE_MANGLING): + Define. + * config/sparc/linux64.h (TARGET_ALTERNATE_LONG_DOUBLE_MANGLING): + Define. + * config/sparc/sparc.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Define. + (sparc_mangle_fundamental_type): New. + +2006-02-06 Jakub Jelinek + + * config.gcc (s390-*-linux*): Add s390/t-linux to tmake_file. + (s390x-*-linux*): Likewise. + * config/s390/t-linux64 (SHLIB_MAPFILES): Removed. + * config/s390/t-linux: New file. + +2006-02-02 Bernd Schmidt + + * config/i386/sync.md (sync_add, sync_sub, sync_ior, + sync_and, sync_xor): Operand 0 is in-out. + +2006-02-06 Daniel Berlin + + * tree-ssa-pre.c (bb_value_sets_t): Add antic_safe_loads. + (ANTIC_SAFE_LOADS): New macro. + (find_or_generate_expression): Add prototype. + (set_contains_value): Allow null set for sake of not always having + to allocate ANTIC_SAFE_LOADS. + (phi_translate): Move placement of AGGREGATE_TYPE_P check. + Allow COMPONENT_REF too. + (valid_in_set): Allow COMPONENT_REF. + Check ANTIC_SAFE_LOADS too. + (compute_antic_aux): Print out ANTIC_SAFE_LOADS. + (compute_rvuse_and_antic_safe): Add ANTIC_SAFE computation, and + rename. + (can_PRE_operation): Add COMPONENT_REF. + (create_component_ref_by_pieces): New function. + (create_expression_by_pieces): Use create_component_ref_by_pieces. + (insert_aux): Move AGGREGATE_TYPE_P check here. + (compute_avail): Set bb local stmt uids. + (pass_pre): Use TODO_update_ssa_only_virtuals. + +2006-02-06 Ben Elliston + + * configure.ac: Unconditionally disable decimal float by default. + * configure: Regenerate. + +2006-02-06 Ben Elliston + + * read-rtl.c (read_name): Terminate reading on EOF. + +2006-02-06 Ben Elliston + + * dfp.c (decimal_real_arithmetic): Change second argument type + from int to enum tree_code. Do not always return true, but now + return result of any call to decimal_do helper functions. + * dfp.h (decimal_real_arithmetic): Update prototype. + +2006-02-05 Eric Botcazou + + * config/sparc/sol2-bi.h (SPARC_DEFAULT_CMODEL): Set to CM_MEDMID. + +2006-02-05 Andrew Pinski + + PR tree-opt/25251 + * tree-cfg.c (cleanup_dead_labels): Also don't remove + forced labels. + +2006-02-04 Zdenek Dvorak + + * tree-vrp.c (cfg_loops): Removed. + (adjust_range_with_scev, vrp_visit_assignment, execute_vrp): + Use current_loops instead of cfg_loops. Pass flags to + loop_optimizer_init. + * cfgloopmanip.c (fix_loop_structure): Update only available + information. + * tree-ssa-loop-ch.c (copy_loop_headers): Pass flags to + loop_optimizer_init. + * modulo-sched.c (build_loops_structure): Removed. + (sms_schedule): Use loop_optimizer_init. + * loop-init.c (loop_optimizer_init): Use flags to determine + which properties of loops to prepare. + (rtl_loop_init): Pass flags to loop_optimizer_init. + * tree-ssa-sink.c (execute_sink_code): Ditto. + * tree-ssa-loop.c (tree_loop_optimizer_init): Ditto. + * tree-ssa-pre.c (init_pre): Ditto. + * cfgloop.h (LOOPS_NORMAL): New. + (loop_optimizer_init): Declaration changed. + +2006-02-05 John David Anglin + + * pa/x-ada-hpux10, pa/t-pa-hpux10, pa/t-pa-hpux11: New files. + * config.gcc (hppa[12]*-*-hpux10*): Use pa/t-pa-hpux10 instead of + pa/t-pa. + * config.gcc (hppa[12]*-*-hpux11*): Use pa/t-pa-hpux11 instead of + pa/t-pa. + * config.host (hppa*-*-hpux10*): Use pa/x-ada-hpux10 instead of + pa/x-ada. + * pa/t-pa-hpux: Add lib2funcs.asm and quadlib.c rules. + * pa/t-pa64: Delete quadlib.c rule. + * pa/x-ada: Revert last change. + * pa/t-pa: Revert last change. Delete quadlib.c rule. + +2006-02-04 Zdenek Dvorak + + PR rtl-optimization/26087 + * rtlanal.c (canonicalize_condition): Do not cross basic block + boundaries. + +2006-02-04 Alexandre Oliva + + PR debug/24444 + * config/ia64/ia64.c: Include debug.h. + (MAX_ARTIFICIAL_LABEL_BYTES): New. + (ia64_label_after_insn, ia64_dwarf2out_def_steady_cfa): New. + (IA64_CHANGE_CFA_IN_EPILOGUE): Define to 0. + (process_epilogue, process_set, process_for_unwind_directive): + Output unwind info only if requested. Add CFA info if requested. + Add new arguments as needed. Adjust callers. + * config/ia64/ia64.h (ARG_POINTER_CFA_OFFSET): Override + incorrect default. + (DWARF2_FRAME_INFO): Define to zero. + * config/ia64/unwind-ia64.c: Remove code that compensated for + the CFA offset error fixed above. + * config/ia64/t-ia64 (ia64.o): Depend on debug.h. + * dwarf2out.c (DWARF2_FRAME_INFO): Define default. + (dwarf2out_do_frame): Require nonzero DWARF2_UNWIND_INFO for + -funwind-tables and -fexceptions to enable frame info. + (dwarf2out_frame_init): Define initial CFA even if + DWARF2_UNWIND_INFO is disabled. Call initial_return_save if + DWARF2_UNWIND_INFO is nonzero, not just defined. + (dwarf2out_frame_finish): Output non-EH call frame info only + if DWARF2_FRAME_INFO is nonzero. + (convert_cfa_to_loc_list, + compute_frame_pointer_to_cfa_displacement): Define even if + unwind info is not supported. + (gen_subprogram_die): Use the above unconditionally. Remove + legacy alternate code. + * toplev.c (compile_file): Compile in call to + dwarf2out_frame_finish if DWARF2_DEBUGGING_INFO is defined. + (lang_dependent_init): Ditto for dwarf2out_frame_init. + +2006-02-04 David Edelsohn + Jakub Jelinek + + * config/rs6000/rs6000.c (rs6000_mangle_fundamental_type): Mangle + IBM extended float format long double as "g" on powerpc*-linux. + +2006-02-03 John David Anglin + + PR target/25926 + * pa/x-ada (X_ADA_CFLAGS): Define _X_HPUX10 on HP-UX 10. + * pa/t-pa (TARGET_LIBGCC2_CFLAGS): Define _T_HPUX10 on HP-UX 10. + +2006-02-03 Jason Merrill + + PR c++/25979 + * gimplify.c (gimplify_modify_expr_rhs): Disable *& optimization for now. + + PR middle-end/25977 + * gimplify.c (gimplify_modify_expr_rhs): It's not always safe to do RVO + on the return slot if it's an NRV. + +2006-02-03 Zdenek Dvorak + + * tree-ssa-loop-ivopts.c (enum use_type): Remove USE_OUTER. + (dump_use, add_derived_ivs_candidates, determine_use_iv_cost, + rewrite_use): Do not handle USE_OUTER. + (find_interesting_uses_outer_or_nonlin, find_interesting_uses_outer, + add_iv_outer_candidates, may_replace_final_value, + determine_use_iv_cost_outer, rewrite_use_outer): Removed. + (find_interesting_uses_op): Functionality of + find_interesting_uses_outer_or_nonlin moved here. + (find_interesting_uses_outside): Use find_interesting_uses_op. + +2006-02-03 Alan Modra + + PR target/25960 + * config/rs6000/darwin-ldouble.c (__gcc_qadd): Preserve -0.0 result. + +2006-02-03 Andreas Krebbel + Ulrich Weigand + + PR target/25864 + * config/s390/2084.md ("x_fsimptf", "x_fmultf", "x_fdivtf", + "x_floadtf", "x_ftrunctf", "x_ftruncdf"): New insn reservations. + * config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): New functions. + * config/s390/s390.c (struct processor_costs): Add mxbr, sqxbr, dxbr + and dxr fields. + (z900_cost, z990_cost, z9_109_cost): Values for the new fields added. + (s390_rtx_costs): Use the new fields to calculate rtx costs. + (s390_secondary_input_reload_class, s390_secondary_output_reload_class): + Define secondary reloads for TFmode moves. + (constant_modes): Add TFmode. + (NR_C_MODES): Set to 8. + * config/s390/s390.h (TARGET_CPU_CPP_BUILTINS): Add __LONG_DOUBLE_128__ + builtin define. + (LONG_DOUBLE_TYPE_SIZE): Set to 128 or 64. + (LIBGCC2_LONG_DOUBLE_TYPE_SIZE, WIDEST_HARDWARE_FP_SIZE): Define. + (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK, CLASS_MAX_NREGS, + CANNOT_CHANGE_MODE_CLASS): Consider TFmode. + * config/s390/s390.md ("type" attribute): Add fsimptf, floadtf, fmultf, + fdivtf, fsqrttf, ftrunctf, ftruncdf as possible values. + (FPR mode macro): Add TFmode. + (DSF mode macro): New. + (, mode attributes): Removed. + (, , , , mode attributes): New. + ("*cmp_ccs_0", "*cmp_ccs_0_ibm", "*cmp_ccs", + "*cmp_ccs_ibm", "fix_trunc2_ieee", + "floatdi2", "floatsi2_ieee", "*add3", + "*add3_cc", "*add3_cconly", "*add3_ibm", + "*sub3", "*sub3_cc", "*sub3_cconly", + "*sub3_ibm", "*mul3_ibm", "*fmadd", "*fmsub", + "*div3", "*div3_ibm", "*neg2_cc", + "*neg2_cconly", "*neg2", "*neg2_ibm", + "*abs2_cc", "*abs2_cconly", "*abs2", + "*abs2_ibm", "*negabs2_cc", "*negabs2_cconly", + "*negabs2", "sqrt2"): + Changed to . R constraint replaced by . + ("*mul3"): Changed to . R constraint replaced by + . + ("fix_truncdi2"): 'FPR:' removed. + ("*fmadd", "*fmsub"): FPR mode replaced by DSF. + ("*movtf_64", "*movtf_31"): New insn definitions followed by 5 + splitters. + ("movtf", "reload_outtf", "reload_intf", "trunctfdf2", "trunctfsf2", + "extenddftf2", "extendsftf2"): New expanders. + ("*trunctfdf2_ieee", "*trunctfdf2_ibm", "*trunctfsf2_ieee", + "*trunctfsf2_ibm", "*extenddftf2_ieee", "*extenddftf2_ibm", + "*extendsftf2_ieee", "*extendsftf2_ibm"): New insn patterns. + * config/s390/s390.opt (mlong-double-128, mlong-double-64): + New options. + * config/s390/t-crtstuff (TARGET_LIBGCC2_CFLAGS): Macro defined. + * config/s390/libgcc-glibc.ver (__divtc3, __multc3, __powitf2, + __fixtfti, __fixunstfti, __floattitf, __fixtfdi, __fixunstfdi, + __floatditf): Add a GCC_4.1.0 symbol version tag. + * doc/invoke.texi (-mlong-double-128, -mlong-double-64): Document + the new options. + +2006-02-02 Andrew Pinski + + PR target/25377 + * config/i386/i386.c (ix86_function_ok_for_sibcall): + Use targetm.binds_local_p instead of TREE_PUBLIC. + +2006-02-02 Roger Sayle + + * tree.h (TYPE_STRING_FLAG): Document that this field may be used + on INTEGER_TYPEs to indicate that it denotes a character type. + * tree.c (build_common_tree_nodes): Set TYPE_STRING_FLAG on + signed_char_type_node, unsigned_char_type_node and char_type_node. + * dwarf2out.c (base_type_die): Treat CHAR_TYPE identically to + INTEGER_TYPE. Use TYPE_STRING_FLAG to decide whether to emit + a DW_ATE_[un]signed_char instead of a DW_ATE_[un]signed. + +2006-02-02 Zdenek Dvorak + Daniel Berlin + + * tree-tailcall.c (arg_needs_copy_p): New function. + (eliminate_tail_call): Use arg_needs_copy_p. + (tree_optimize_tail_calls_1): Ditto. Also call add_virtual_phis. + (add_virtual_phis): New function. + +2006-02-02 Jakub Jelinek + + * config/sparc/sparc.c (sparc_output_scratch_registers): Use + #ignore instead of #scratch for %g7 .register directive. + +2006-02-02 Andreas Tobler + + * config/sparc/freebsd.h (ENDFILE_SPEC): Add space to separate + object files. + +2006-02-02 Bernd Schmidt + + * flow.c (calculate_global_regs_live): Assert that there aren't any + EDGE_FAKE edges. + +2006-02-02 Paolo Bonzini + + * tree-flow-inline.h (bsi_after_labels): Rewrite, return + what its name says. + * lambda-code.c (perfect_nestify): Use bsi_insert_before on + bsi_after_labels iterator. + * tree-if-conv.c (find_phi_replacement_condition, + replace_phi_with_cond_modify_expr): Likewise. + * tree-scalar-evolution.c (scev_const_prop): Likewise. + * tree-ssa-loop-ivopts.c (compute_phi_arg_on_exit): Likewise. + +2006-02-02 Diego Novillo + + * tree-inline.c (copy_tree_r): Also copy OMP_CLAUSE nodes. + +2006-02-02 Diego Novillo + + PR 25990 + * tree-cfg.c (move_block_to_fn): Clear out the basic block + array after growing it. + +2006-02-01 Steve Ellcey + + PR middle-end/24901 + * fold-const.c (fold_checksum_tree): Change type of buf. + +2006-02-01 Bernd Schmidt + + * reload.c (push_secondary_reload): Initialize t_icode. + +2006-02-01 Jakub Jelinek + + * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): For + -msoft-float -mlong-double-128 only issue a warning, but don't + swich to DFmode long double. + +2006-02-01 Hans-Peter Nilsson + + * cse.c (fold_rtx) : When arg1 + has a constant equivalent, iterate over equivalents for arg0, + calling simplify_relational_operation and if there's a result + cheaper than X, apply fold_rtx and return the result. + +2006-02-01 Jan Hubicka + + * opts.c (no_unit_at_a_time_default): New global variable. + (decode_options): Use it. + * opts.h (no_unit_at_a_time_default): Declare. + +2006-02-01 Paul Brook + + * function.c (assign_parm_setup_reg): Use function argument promotion + rules. + * expr.c (expand_expr_real_1): Use function argument promotion rules + for PARM_DECLs. + +2006-02-01 Steve Ellcey + + * gcc.c (process_command): Change j to 'unsigned int'. + +2006-01-31 Andrew Pinski + + PR middle-end/26001 + * expr.c (expand_expr_real_1) : + Use the corrected index for the character + out of the string constant. + +2006-01-31 Andrew Pinski + + * mode-switching.c (optimize_mode_switching): Fix size + allocated for bb_info[n_entities]. + +2006-01-31 Andrew Pinski + + * gcc.c (main): Correct type that is allocated for + explicit_link_files. + +2006-01-31 Jakub Jelinek + + * config/s390/s390.c (init_alignment_context): Set + ALIAS_SET_MEMORY_BARRIER on the MEM. + * config/sparc/sparc.c (sparc_expand_compare_and_swap_12): Likewise. + +2006-01-31 Uttam Pawar + + PR middle-end/25933 + * loop-unroll.c (unroll_loop_runtime_iterations): Free + dom_bbs pointer. + * tree-ssa-live.c (type_var_init): Allocate bitmap after + call to tpa_init. + +2006-01-31 Marcin Dalecki + + * tree-vrp.c: Use XNEW/XCNEW allocation wrappers. + * regrename.c: Ditto. + * tree-ssa-loop-im.c: Ditto. + * tree-dump.c: Ditto. + * tree-complex.c: Ditto. + * genrecog.c: Ditto. + * tree-ssa-threadupdate.c: Ditto. + * tracer.c: Ditto. + * java/class.c: Ditto. + * java/jcf-parse.c: Ditto. + * java/resource.c: Ditto. + * java/except.c: Ditto. + * java/jvspec.c: Ditto. + * java/jcf-write.c: Ditto. + * java/jcf-path.c: Ditto. + * java/gjavah.c: Ditto. + * java/zextract.c: Ditto. + * java/jcf-io.c: Ditto. + * java/jcf.h: Ditto. + * java/buffer.c: Ditto. + * java/lang.c: Ditto. + * java/parse-scan.y: Ditto. + * java/lex.c: Ditto. + * java/lex.h: Ditto. + * cfgloopmanip.c: Ditto. + * postreload-gcse.c: Ditto. + * tree-ssa-loop-manip.c: Ditto. + * postreload.c: Ditto. + * tree-ssa-loop-ch.c: Ditto. + * loop.c: Ditto. + * ipa-cp.c: Ditto. + * cppspec.c: Ditto. + * diagnostic.c: Ditto. + * final.c: Ditto. + * genoutput.c: Ditto. + * gcc.c: Ditto. + * cfghooks.c: Ditto. + * cfgloopanal.c: Ditto. + * objc/objc-act.c: Ditto. + * gcov.c: Ditto. + * genextract.c: Ditto. + * genautomata.c: Ditto. + * pretty-print.c: Ditto. + * genemit.c: Ditto. + * cgraphunit.c: Ditto. + * flow.c: Ditto. + * df-scan.c: Ditto. + * haifa-sched.c: Ditto. + * dominance.c: Ditto. + * dbxout.c: Ditto. + * tree-ssa-loop-ivopts.c: Ditto. + * df-core.c: Ditto. + * mode-switching.c: Ditto. + * modulo-sched.c: Ditto. + * graph.c: Ditto. + * ipa-pure-const.c: Ditto. + * cse.c: Ditto. + * fix-header.c: Ditto. + * web.c: Ditto. + * tree-stdarg.c: Ditto. + * ipa-utils.c: Ditto. + * loop-init.c: Ditto. + * ipa-inline.c: Ditto. + * cfganal.c: Ditto. + * global.c: Ditto. + * alloc-pool.c: Ditto. + * dwarf2out.c: Ditto. + * opts.c: Ditto. + * genattrtab.c: Ditto. + * tree-ssa-loop-ivcanon.c: Ditto. + * predict.c: Ditto. + * timevar.c: Ditto. + * lcm.c: Ditto. + * fortran/gfortranspec.c: Ditto. + * regmove.c: Ditto. + * local-alloc.c: Ditto. + * langhooks.c: Ditto. + * function.c: Ditto. + * tree-vectorizer.c: Ditto. + * gcse.c: Ditto. + * ipa-type-escape.c: Ditto. + * alias.c: Ditto. + * tree-if-conv.c: Ditto. + * profile.c: Ditto. + * ipa.c: Ditto. + * tree-data-ref.c: Ditto. + * loop-unroll.c: Ditto. + * treelang/treetree.c: Ditto. + * calls.c: Ditto. + * bt-load.c: Ditto. + * ggc-common.c: Ditto. + * except.c: Ditto. + * coverage.c: Ditto. + * cselib.c: Ditto. + * tree-cfgcleanup.c: Ditto. + * tree-ssa-pre.c: Ditto. + * cfgcleanup.c: Ditto. + * loop-invariant.c: Ditto. + * loop-iv.c: Ditto. + * ipa-prop.c: Ditto. + * print-tree.c: Ditto. + * conflict.c: Ditto. + * ggc-page.c: Ditto. + * sched-deps.c: Ditto. + * regclass.c: Ditto. + * tree-object-size.c: Ditto. + * combine.c: Ditto. + * bb-reorder.c: Ditto. + * resource.c: Ditto. + * var-tracking.c: Ditto. + * cfgloop.c: Ditto. + * df-problems.c: Ditto. + * reg-stack.c: Ditto. + * tlink.c: Ditto. + * gccspec.c: Ditto. + * sched-rgn.c: Ditto. + * tree-ssa-structalias.c: Ditto. + * tree-ssa-reassoc.c: Ditto. + * config/darwin-c.c: Ditto. + * config/darwin.c: Ditto. + * config/arm/arm.c: Ditto. + * cfgrtl.c: Ditto. + * collect2.c: Ditto. + * reload1.c: Ditto. + +2006-01-31 Nicolas Pitre + + * arm.md (smaxsi3): Make aware of smax_m1. + (smax_m1): New. + +2006-01-31 Nathan Sidwell + + * config/m68k/lb1sf68.asm: Use moveq to load small constants. + +2006-01-31 Richard Guenther + + * doc/invoke.texi (-msselibm): Document. + * target.h (expand_library_builtin): New target hook. + * builtins.c (expand_builtin): Use expand_library_builtin. + (default_expand_library_builtin): New function. + * gcc.c (LINK_GCC_MATH_SPEC): Define. + (LINK_COMMAND_SPEC): Handle %(link_gcc_math). + (link_gcc_math_spec): Declare. + (static_specs): Add link_gcc_math_spec. + * expr.h (default_expand_library_builtin): Declare. + * target-def.h (TARGET_EXPAND_LIBRARY_BUILTIN): Define. + (TARGET_INITIALIZER): Add TARGET_EXPAND_LIBRARY_BUILTIN. + * config/i386/i386.h: Provide LINK_GCC_MATH_SPEC. + * config/i386/i386.opt (msselibm): New target option. + * config/i386/i386.c (ix86_builtin_function_variants): New array. + (ix86_init_sse_abi_builtins): New function. + (ix86_expand_library_builtin): Likewise. + (TARGET_EXPAND_LIBRARY_BUILTIN): Define. + (override_options): Handle error conditions wrt -msselibm. + (ix86_builtins): Add function codes for SSE2 ABI builtins. + (ix86_init_builtins): Call ix86_init_sse_abi_builtins. + * doc/extend.texi (__builtin_sse2_*): Document new target specific + builtins. + +2006-01-31 Richard Guenther + Paolo Bonzini + + * doc/install.texi (--disable-libgcc-math): Document. + +2006-01-30 Marcin Dalecki + + * expr.h (expand_normal): new inline function. + * builtins.c: use it, use EXPAND_NORMAL explicitely. + * dojump.c: use it. + * dwarf2out.c: use it. + * expr.c: use it. + * calls.c: use it. + * expmed.c: use it. + * except.c: use it. + * config/sparc/sparc.c: use it. + * config/i386/i386.c: use it. + * config/rs6000/rs6000.c: use it. + * config/arm/arm.c: use it. + * config/mips/mips.c: use it. + * stmt.c: use it, use EXPAND_NORMAL explicitely. + +2006-01-30 Roger Sayle + + * config/i386/cygwin.h (GCC_DRIVER_HOST_INITIALIZATION): Cast + argv to the appropriate type. + +2006-01-30 Zdenek Dvorak + + * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Remove + unreachable code. + +2006-01-30 Ulrich Weigand + + PR target/26018 + * config/s390/s390.c (struct machine_function): New flag + decomposed_literal_pool_addresses_ok_p. + (s390_reorg): Set it before final stage of literal pool transforms. + (s390_decompose_address): Only accept displacements of the form + (minus (label_ref ...) (label_ref ...)) if that flag is set. + +2006-01-30 Carlos O'Donell + + * optabs.c (prepare_cmp_insn): If unbaised and unsigned then bias + the comparison routine return. + +2006-01-30 Michael Matz + + * global.c (find_reg): Only evict for global regs. + Take n_refs into account and dump more info. + +2006-01-30 J"orn Rennecke + + PR target/14798: + * sh.c (pragma_interrupt, trap_exit, sp_switch): Remove variable. + (pragma_trap, pragma_nosave_low_regs): Likewise. + (current_function_anonymous_args): Likewise. + (sh_deferred_function_attributes): New variable. + (sh_deferred_function_attributes_tail): Likewise. + (print_operand): For '@', look up trap_exit attribute. + (calc_live_regs): Look up trapa_handler attribute. For trapa + handlers, save/restore fpscr, but don't do any other + interrupt-specific saves. + Don't save r0..r7 if the nosave_low_regs attribute is in effect. + Fix check for partially saved registers to check for SHmedia. + (sh_expand_prologue, sh_expand_epilogue): Look up sp_switch attribute. + (sh_output_function_epilogue): Don't clear any of the removed + variables. + (sh_insert_attributes): Don't check pragma_interrupt. + Insert deferred attributes. Check that interrupt attribute is + present for other attributes that require its presence. + (sh_attribute_table): Add new attributes trapa_handler and + nosave_low_regs. + (sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute): + Don't check for pragma_interrupt. Don't store argument. + * sh.h (pragma_interrupt, sp_switch): Don't declare. + (sh_deferred_function_attributes): Declare. + (sh_deferred_function_attributes_tail): Likewise. + * sh.md (sp_switch_1): Add operand. Change generator caller. + (sh_pr_interrupt, sh_pr_trapa, sh_pr_nosave_low_regs): Remove. + (*return_i): Don't use when trap_exit attribute is in effect. + (*return_trapa): New insn pattern. + * sh-c.c: New file. + * config.gcc (sh[123456ble]*-* | sh-*-*): New trailer stanza, + setting c_target_objs and cxx_target_objs. + * t-sh: Add rule for sh-c.o. + +2006-01-30 Richard Guenther + + PR c++/23372 + * gimplify.c (gimplify_target_expr): Handle easy cases + without creating a temporary. + +2006-01-30 Nathan Sidwell + + * vec.h (safe_grow): Remove duplicated line. + +2006-01-29 Diego Novillo + + PR 25874 + * omp-low.c (execute_expand_omp): Move CFG cleanup code ... + (expand_omp): ... here. + (expand_omp_parallel): Only remove barriers for combined + parallel+workshare constructs. + +2006-01-29 Eric Botcazou + + Revert + + 2005-11-09 Eric Botcazou + * tree.c (build_qualified_type): Chain the new type to the original + type's TYPE_NEXT_PTR_TO or TYPE_NEXT_REF_TO linked lists if it is + a POINTER_TYPE or a REFERENCE_TYPE respectively. + (build_pointer_type_for_mode): Only return unqualified types. + (build_reference_type_for_mode): Likewise. + +2006-01-29 Gabriel Dos Reis + + * configure.ac (cxx_compat_warn): Set if -Wc++-compat is supported. + * Makefile.in (CXX_COMPAT_WARN): Define. + * configure: Regenerate. + +2006-01-29 Dorit Nuzman + + PR tree-opt/25911 + * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Change assert + to an if check. + +2006-01-29 Gabriel Dos Reis + + * toplev.c: Fix thinko. + +2006-01-29 Gabriel Dos Reis + Marcin Dalecki + + * toplev.c (floor_log2, exact_log2): Don't define if __cplusplus. + (push_srcloc): Use XNEW. + (init_asm_output, default_get_pch_validity): Use XNEWVEC. + +2006-01-29 Kenneth Zadeck + + * df-core.c (df_set_blocks): Deleted all variable. + +2006-01-28 Ian Lance Taylor + + * cgraphunit.c (cgraph_assemble_pending_functions): Call + cgraph_output_pending_asms. + +2006-01-28 Zack Weinberg + + * c.opt: Add -W(no-)overlength-strings. + * doc/invoke.texi: Document it. + * c-opts.c (c_common_handle_option): -pedantic implies + -Woverlength-strings, if not explicitly disabled already. + (c_common_post_options): -Woverlength-strings defaults to off, and + is always off for C++. + * c-common.c (fix_string_type): Issue warning about strings longer + than is portable only if warn_overlength_strings. Rearrange code + a little for clarity. + * configure.in: Check for -Wno-overlength-strings as well before + enabling -pedantic in stage 1. + * Makefile.in (STRICT2_WARN): Add -Wno-overlength-strings. + (gcc.o-warn, insn-automata.o-warn, build/gencondmd.o-warn): Delete. + + * genconditions.c (write_header, write_one_condition) + (write_conditions, write_writer): Consolidate very long strings + that were broken up to fit in C89 portable limit. Don't use + printf when fputs will do. + +2006-01-28 Adam Nemet + + * combine.c (simplify_comparison ): Check + TRULY_NOOP_TRUNCATION before start using a subreg. + + * config/mips/mips.md (*branch_zero, + *branch_zero_inverted, *branch_equality, + *branch_equality_inverted, *branch_equality_mips16): + Remove mode check from comparisons. + +2006-01-28 Kenneth Zadeck + + * config/mips/mips-protos.h (mips_set_live_on_entry): Deleted. + +2006-01-28 Kazu Hirata + + * expmed.c (const_mult_add_overflow_p): Remove. + * expr.h: Remove the prototype for const_mult_add_overflow_p. + + * recog.c (validate_replace_rtx_subexp): Remove. + * recog.h: Remove the prototype for + validate_replace_rtx_subexp. + + * integrate.h: Remove the prototype for + copy_decl_for_inlining. + * rtl.h: Remove the prototype for mark_constant_function. + * tree-vectorizer.h: Remove the prototype for + vect_strip_conversion. + + * modulo-sched.c (create_partial_schedule, + free_partial_schedule, reset_partial_schedule): Make them + static. + + * hooks.c (hook_bool_rtx_int_false): Remove. + * hooks.h: Remove the prototype for hook_bool_rtx_int_false. + +2006-01-28 David Edelsohn + + * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): -msoft-float + and -mlong-double-128 are incompatible. + * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Same. + * config/rs6000/t-aix43 (LIB2FUNCS_EXTRA): Add ppc64-fp.c. + (TARGET_LIBGCC2_CFLAGS): Define. + * config/rs6000/t-aix52 (LIB2FUNCS_EXTRA): Same. + (TARGET_LIBGCC2_CFLAGS): Same. + * config/rs6000/ppc64-fp.c: Compile for 64-bit AIX. + +2006-01-28 Kazu Hirata + + PR c/19606. + * c-typeck.c (build_binary_op): Perform implicit casts of + operands before shortening them. + + * cfgloopmanip.c (split_loop_bb): Remove. + * cfgloop.h: Remove the prototype for split_loop_bb. + + * cfgloop.c (flow_loop_outside_edge_p): Remove. + * cfgloop.h: Remove the prototype for + flow_loop_outside_edge_p. + + * emit-rtl.c (init_virtual_regs): Make it static. + * function.h: Remove the prototype for init_virtual_regs. + + * recog.c (peephole2_optimize): Make it static. + * recog.h: Remove the prototype for peephole2_optimize. + +2006-01-27 H.J. Lu + + * df-scan.c (df_record_entry_block_defs): Check if + INCOMING_RETURN_ADDR_RTX is defined. + +2006-01-27 Daniel Berlin + Kenneth Zadeck + + PR rtl-optimization/24762 + * doc/tm.texi: Added TARGET_EXTRA_LIVE_ON_ENTRY. + * targhooks.c (hook_void_bitmap): New hook prototype. + * targhoohs.h (hook_void_bitmap): Ditto. + * bitmap.h (bitmap_head_def): Moved to coretypes.h. + * coretypes.h (bitmap_head_def): Moved from bitmap.h. + * target.h (live_on_entry): New function pointer. + * df-scan.c (df_all_hard_regs): Removed. + (df_scan_dump, df_hard_reg_init): Removed df_all_hard_regs. + (df_scan_free_internal): Added df->entry_block_defs. + (df_scan_alloc): Ditto. + (df_scan_dump): Ditto. + (df_uses_record): Plumbed flag field properly thru calls. + Record EH_RETURN_DATA_REGNO in eh blocks unconditionally. + This part fixes PR24762. + (df_bb_refs_record): Added code to make the frame and arg + pointers live in EH blocks. + (df_refs_record): Added call to df_record_entry_block_defs. + (df_record_entry_block_defs): New function. + * df-core.c: Added comments to describe new artifical defs. + * df.h (DF_REF_DIES_AFTER_THIS_USE): New flag in enum df_ref_flags. + (entry_block_defs): New field in struct df. + (df_all_hard_regs): Deleted. + * target-def.h: Added TARGET_EXTRA_LIVE_ON_ENTRY. + * df-problems.c (df_ru_bb_local_compute_process_def): + Added code to handle artifical defs in the entry to a function. + (df_ru_bb_local_compute): Ditto. + (df_rd_bb_local_compute_process_def): Ditto. + (df_rd_bb_local_compute): Ditto. + (df_lr_bb_local_compute): Ditto. + (df_ur_bb_local_compute): Ditto. + (df_urec_bb_local_compute): Ditto. + (df_chain_create_bb): Ditto. + (df_ur_local_finalize): Removed entry. + (df_urec_init): Ditto. + (df_urec_local_finalize): Ditto. + (df_ri_bb_compute): Added detection of last use of pseudos. + * Makefile.in (df-scan.o): Updated dependencies. + * config/mips/mips-protos.h (mips_set_live_on_entry): Added. + * config/mips/mips.c (mips_set_live_on_entry): Added. + * config/mips/mips.c (TARGET_EXTRA_LIVE_ON_ENTRY): Added value + for target hook. + * dce.c (marked_insn_p): Added code to handle artifical defs. + +2006-01-27 H.J. Lu + + * config/i386/emmintrin.h (_mm_cvtsd_f64): Add missing Intel + intrinsic. + (_mm_cvtsi128_si64): Likewise. + (_mm_cvtsd_si64): Likewise. + (_mm_cvttsd_si64): Likewise. + (_mm_cvtsi64_sd): Likewise. + (_mm_cvtsi64_si128): Likewise. + * config/i386/mmintrin.h (_m_from_int64): Likewise. + (_mm_cvtsi64_m64): Likewise. + (_m_to_int64): Likewise. + (_mm_cvtm64_si64): Likewise. + * config/i386/xmmintrin.h (_mm_cvtss_si64): Likewise. + (_mm_cvttss_si64): Likewise. + (_mm_cvtsi64_ss): Likewise. + (_mm_cvtss_f32): Likewise. + +2006-01-27 Carlos O'Donell + + * c-pragma.c (init_pragma) : Call c_register_pragma_with_expansion + for pragma redefine_extname. + +2006-01-27 Jakub Jelinek + + PR target/25864 + * libgcc-std.ver: Add GCC_4.1.0 symbol version. + * config/rs6000/t-linux64 (TARGET_LIBGCC2_CFLAGS): Only append + -mno-minimal-toc to previous content. + (bispecs): Remove goal. + * config/rs6000/ppc64-fp.c: Define TMODES before including fp-bit.h. + * config/rs6000/darwin-ldouble.c: Don't provide _xlq*@GCC_3.4 + compatibility aliases on powerpc-*-*gnu*. + * config/rs6000/libgcc-ppc-glibc.ver: New file. + * config/rs6000/t-ppccomm (SHLIB_MAPFILES): Append + libgcc-ppc-glibc.ver on powerpc*-*-*gnu*. + (TARGET_LIBGCC2_CFLAGS): Append -specs=ldblspecs. + (ldblspecs): New goal. + * config/rs6000/t-linux64 (SHLIB_MAPFILES): Removed. + * mklibgcc.in: If $TPBIT is empty, don't compile _sf_to_tf and + _df_to_tf. + * config/fp-bit.h (TMODES): Don't define if none of TFLOAT, + L_sf_to_tf or L_df_to_tf is defined. + +2006-01-27 David Edelsohn + Alan Modra + + PR target/25864 + * config/rs6000/linux.h (POWERPC_LINUX): Define. + * config/rs6000/linux64.h (POWERPC_LINUX): Define. + * config/rs6000/darwin-ldouble.c: Build on 32-bit PowerPC. + * config/rs6000/darwin.h (TARGET_IEEEQUAD): Define to zero. + * config/rs6000/aix.h (TARGET_IEEEQUAD): Define to zero. + * config/rs6000/rs6000.c (rs6000_ieeequad): New variable. + (rs6000_override_options): Initialize rs6000_ieeequad. + Initialize TFmode format to ibm_extended_format if not + TARGET_IEEEQUAD. + (rs6000_handle_option): Accept -mabi= ibmlongdouble and + ieeelongdouble. + (rs6000_emit_move): Move !TARGET_IEEEQUAD as two parts. + (rs6000_return_in_memory): Only return IEEEQUAD in memory. + (function_arg_advance): IBM long double passed in two FPRs, not + split. + (function_arg): IBM long double passed in FPRs. + (rs6000_pass_by_reference): Only IEEEQUAD passed by reference. + (rs6000_gimplify_va_arg): IBM long double passed in two FPRs. + Only multireg GPR aligned. + (rs6000_init_libfuncs): Enable IBM long double functions if not + IEEEQUAD. + (rs6000_generate_compare): Use IBM long double compare if not + TARGET_IEEEQUAD. + * config/rs6000/rs6000.h (rs6000_ieeequad): Declare. + (TARGET_IEEEQUAD): Define. + (CANNOT_CHANGE_MODE_CLASS): Any mode larger than doubleword if + not TARGET_IEEEQUAD. + * config/rs6000/rs6000.md: Enable TFmode patterns if + !TARGET_IEEEQUAD. + * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Add darwin-ldouble.c. + * config/rs6000/svr4.h (SUBTARGET_OVERRIDE_OPTIONS): -msoft-float + and -mlong-double-128 are incompatible. + * doc/invoke.texi (-mabi): Collect options together. Add + ibmlongdouble and ieeelongdouble. + +2006-01-27 Richard Sandiford + + * doc/rtl.texi (SYMBOL_REF_DATA): Adjust documentation for new + opaque type. + * optabs.c (init_one_libfunc): Use SET_SYMBOL_REF_DECL. + * varasm.c (make_decl_rtl, build_constant_desc): Likewise. + (force_const_mem): Use SET_SYMBOL_REF_CONSTANT. + * rtl.h (rtunion_def): Remove rt_ptr. + (X0PTR): Delete. + (SYMBOL_REF_DATA): Use X0ANY instead of X0PTR. + (SET_SYMBOL_REF_DECL, SET_SYMBOL_REF_CONSTANT): New macros. + * config/i386/winnt.c (i386_pe_mark_dllexport) + (i386_pe_mark_dllimport): Use SET_SYMBOL_REF_DECL. + +2006-01-27 Gabor Loki + + * cfgcleanup.c (try_crossjump_to_edge): Fix comment typo. + +2006-01-26 Alexandre Oliva + + PR other/24829 + PR target/24831 + * gthr-dce.h: Do not gthrw-ify pthread_once_init, + pthread_key_delete. From John David Anglin. gthrw-ify + pthread_getunique_np only if it it's not a macro. Delete + UNUSED macro. + (__gthread_objc_condition_allocate, __gthread_objc_condition_deallocate, + __gthread_objc_condition_wait, __gthread_objc_condition_broadcast, + __gthread_objc_condition_signal, __gthread_key_delete): Add + "__attribute__ ((__unused__))" to unused arguments. + (__gthread_recursive_mutex_init_function): Add missing return. + * gthr-dce.h, gthr-tpf.h, gthr-solaris.h, gthr-posix.h, + gthr-posix95.h: Use macro-based approach for name redirection + on targets missing weakref. + +2006-01-26 Zack Weinberg + + * genconditions.c (write_header): In generated code, #ifdef out + all includes and fake declarations, except includes of bconfig.h + and system.h, unless GCC_VERSION >= 3001. Do not include + gensupport.h in any case. + (write_conditions): Generate a definition of struct c_test. Add + a comment to the generated #endif. + (write_one_condition): Escape backslashes in string too. + (write_writer): Generated code must escape backslashes and quote + marks (but not newlines) in the strings it writes. + * Makefile.in (build/gencondmd.o): Update dependencies. + +2006-01-26 Steve Ellcey + + PR target/25961 + * Makefile.in (insn-automata.o): Add header file dependencies. + * genautomata.c: Add includes. + +2006-01-26 Steve Ellcey + + PR target/25961 + * Makefile.in (insn-automata.o): Add -Wno-error flag. + +2006-01-26 Paolo Bonzini + + * configure.ac: Expect target tools paths to be passed from the toplevel + and wrap the detection into AS_SET_VAR_IF. Extract side-effects out of + AS_SET_VAR_IF. + * acinclude.m4 (gcc_AC_TOOL_DIRS, gcc_AC_CHECK_TOOL): Remove. + +2006-01-26 Alexandre Oliva + + PR c/25892 + * c.opt (Wpointer-sign): Init to -1. + * c-opts.c (c_common_handle_option): Set to 1 on OPT_Wall and + OPT_pedantic, to 0 otherwise. + * doc/invoke.texi: Update. + +2006-01-26 Paolo Bonzini + + * config/i386/i386.md (extendsfdf2, extendsfxf2, extenddfxf2): Emit + constants provided by 80387 instructions in the destination mode. + +2006-01-26 Richard Guenther + Andrew Pinski + + PR tree-opt/21470 + partial PR tree-opt/17064 + * tree-ssa-structalias.c (intra_create_variable_infos): + Create heap variables for incoming parameters if + flag_argument_noalias > 1. + (find_what_p_points_to): Look through default defs of + parameter decls. + +2006-01-26 Jeff Law + + PR ada/25900 + * tree-vrp.c (extract_range_from_assert): When merging a VR_RANGE + with a VR_ANTI_RANGE and the VR_ANTI_RANGE is completely contained + within the VR_RANGE, use the VR_RANGE as the result, not the + VR_ANTI_RANGE. + (adjust_range_with_scev): Reject ranges from SCEV which are out of + bounds for the type. + +2006-01-26 Daniel Berlin + + * tree-ssa-alias.c (maybe_create_global_var): Change + subvar walking to an assertion that we don't have subvar'd variables. + +2006-01-26 Andrew Pinski + + PR C/25861 + * c-common.c (c_common_truthvalue_conversion) : + Use a new variable, inner. PARM_DECLs are always non-weak. + +2006-01-26 Shantonu Sen + + * tree.h (OMP_CLAUSE_SUBCODE_CHECK): Add definition for + --disable-checking. + +2006-01-26 Adam Nemet + + * config/mips/mips.md (*clear_upper32): New combiner pattern. + +2006-01-26 Richard Earnshaw + + * arm.md (smaxsi3, sminsi3): Convert to define_expand. + (smax_insn, smin_insn, smax_0, smin_0): New. + +2006-01-26 Hans-Peter Nilsson + + PR target/25947 + * config/cris/cris.c (cris_order_for_addsi3): New function. + * config/cris/cris-protos.h: Prototype it. + * config/cris/cris.md (split for "move.S1 [rx=rx+i],ry") + (split for "move.S1 ry,[rx=rx+i]", split for "clear.[bwd] [rx=rx+i]") + (split for "mov(s|u).S1 [rx=rx+i],ry", split for "op.S1 [rx=rx+i],ry") + (split for "op.S1 [rx=rx+i],ry (swapped)") + (split for "op(s|u).S1 [rx=rx+i],ry") + (split for "op(s|u).S1 [rx=rx+i],ry (swapped, plus or bound)"): + Apply cris_order_for_addsi3 when generating addsi3 insns. + +2006-01-25 Diego Novillo + + * tree.h (TREE_RANGE_CHECK): Fix range predicate. + (TREE_BLOCK): Add call to EXPR_CHECK. + +2006-01-25 Diego Novillo + + PR 25886 + * tree-dump.c (dequeue_and_dump): Handle OMP_CLAUSE. + * tree-pretty-print.c (dump_omp_clause): Extract from ... + (dump_omp_clauses): ... here. + (dump_generic_node): Handle OMP_CLAUSE. + * tree.c (omp_clause_num_ops): New. + (omp_clause_code_name): New. + (tree_code_size): Handle OMP_CLAUSE. + (tree_size): Likewise. + (make_node): Document handling of OMP_CLAUSE. + (tree_node_structure): Handle OMP_CLAUSE. + (omp_clause_check_failed): New. + (omp_clause_range_check_failed): New. + (omp_clause_operand_check_failed): New. + (build_omp_clause): New. + (walk_tree): Adjust handling of OMP_CLAUSE_* nodes. + * tree.h (enum omp_clause_code): Declare. + (OMP_CLAUSE_SUBCODE_CHECK): Define. + (OMP_CLAUSE_RANGE_CHECK): Define. + (OMP_CLAUSE_ELT_CHECK): Define. + (omp_clause_check_failed): Declare. + (omp_clause_operand_check_failed): Declare. + (omp_clause_range_check_failed): Declare. + (OMP_CLAUSE_CHAIN): Do not use TREE_RANGE_CHECK. + (OMP_CLAUSE_OPERAND): Use OMP_CLAUSE_RANGE_CHECK. + (OMP_CLAUSE_PRIVATE_DEBUG): Use OMP_CLAUSE_SUBCODE_CHECK. + (OMP_CLAUSE_LASTPRIVATE): Likewise. + (OMP_CLAUSE_IF_EXPR): Likewise. + (OMP_CLAUSE_NUM_THREADS_EXPR): Likewise. + (OMP_CLAUSE_SCHEDULE_CHUNK_EXPR): Likewise. + (OMP_CLAUSE_REDUCTION_CODE): Likewise. + (OMP_CLAUSE_REDUCTION_INIT): Likewise. + (OMP_CLAUSE_REDUCTION_MERGE): Likewise. + (OMP_CLAUSE_REDUCTION_PLACEHOLDER): Likewise. + Use tree_node.omp_clause.subcode instead of TREE_COMPLEXITY. + (OMP_CLAUSE_SCHEDULE_KIND): Likewise. + (OMP_CLAUSE_DEFAULT_KIND): Likewise. + (OMP_CLAUSE_CODE): Define. + (OMP_CLAUSE_SET_CODE): Define. + (OMP_CLAUSE_CODE): Define. + (OMP_CLAUSE_OPERAND): Define. + (struct tree_omp_clause): Declare. + (union tree_node): Add field 'omp_clause'. + * treestruct.def (TS_OMP_CLAUSE): Define. + * tree.def (OMP_CLAUSE_PRIVATE, OMP_CLAUSE_SHARED + OMP_CLAUSE_FIRSTPRIVATE, OMP_CLAUSE_LASTPRIVATE, + OMP_CLAUSE_REDUCTION, OMP_CLAUSE_COPYIN, + OMP_CLAUSE_COPYPRIVATE, OMP_CLAUSE_IF, + OMP_CLAUSE_NUM_THREADS, OMP_CLAUSE_SCHEDULE, + OMP_CLAUSE_NOWAIT, OMP_CLAUSE_ORDERED, OMP_CLAUSE_DEFAULT): Remove. + (OMP_CLAUSE): Define. + * print-tree.c (print_node): Handle OMP_CLAUSE. + * omp-low.c: Adapt all uses of OMP_CLAUSE_* nodes. + * c-typeck.c: Likewise. + * gimplify.c: Likewise. + * c-omp.c: Likewise. + * tree-nested.c: Likewise. + * tree-inline.c: Likewise. + * c-parser.c: Likewise. + * gimple-low.c (lower_omp_directive): Do not set TREE_BLOCK on + clauses. + +2006-01-25 Roger Sayle + + PR rtl-optimization/25703 + * combine.c (try_combine): Handle zero_extract and strict_low_part + of non-lowpart SUBREGs for constant reg_subword_p set optimization. + +2006-01-25 Peter Bergner + + * global.c: Fix comment typos. + +2006-01-25 Andrew Pinski + + PR target/25758 + * config/i386/i386.c (output_pic_addr_const) : + Use output_addr_const instead of assemble_name. + +2006-01-25 Paolo Bonzini + + * Makefile.in (sched-vis.o): Update dependencies. + * haifa-sched.c (sched_finish): Clear current_sched_info. + * cfg.c (dump_bb_info): New, split from dump_flow_info. + (dump_flow_info): Call it. + * passes.c (execute_todo): Call print_rtl_slim_with_bb to make + a slim RTL dump. + * basic-block.h (dump_bb_info): Declare. + * tree-dump.c (dump_enable_all): OR the flags of a -fdump-tree-all + option, and apply options only for dump files whose TDF_RTL, + TDF_TREE, or TDF_IPA bits match. + * rtl.h: Declare new functions exported from sched-vis.c. + * sched-vis.c: Enable also if scheduling is not used. + (print_value): Print the mode of registers if not inside scheduling. + (print_insn): Make it work outside the scheduler. Beautify the output + a bit. + (dump_insn_slim, debug_insn_slim, print_rtl_slim_with_bb): New. + +2006-01-25 Richard Sandiford + + * doc/rtl.texi (SYMBOL_REF_CONSTANT, SYMBOL_REF_DATA): Document. + * gengtype.c (adjust_field_rtx_def): Garbage-collect field 2 of + a SYMBOL_REF as either a tree or a constant_descriptor_rtx, + depending on the value of CONSTANT_POOL_ADDRESS_P. + * optabs.c (init_one_libfunc): Nullify SYMBOL_REF_DATA rather than + SYMBOL_REF_DECL. + * varasm.c (make_decl_rtl, build_constant_desc): Set SYMBOL_REF_DATA + rather than SYMBOL_REF_DECL. + (rtx_constant_pool): Remove const_rtx_sym_htab. + (const_desc_rtx_sym_hash, const_desc_rtx_sym_eq): Delete. + (init_varasm_status): Don't initialize const_rtx_sym_htab. + (force_const_mem): Point SYMBOL_REF_DATA to the constant pool entry. + Remove handling of const_rtx_sym_htab. + (find_pool_constant): Delete. + (get_pool_constant, get_pool_constant_mark): Use SYMBOL_REF_CONSTANT + rather than find_pool_constant. + (get_pool_constant_for_function): Delete. + (get_pool_mode, mark_constant): Use SYMBOL_REF_CONSTANT rather than + find_pool_constant. + * rtl.h (rtunion_def): Add rt_constant and rt_ptr fields. + (X0CONSTANT, X0PTR, SYMBOL_REF_DATA): New macros. + (SYMBOL_REF_DECL): Return NULL if CONSTANT_POOL_ADDRESS_P. + (SYMBOL_REF_CONSTANT): New macro. + (get_pool_constant_for_function): Delete. + * config/i386/winnt.c (i386_pe_mark_dllexport): Set SYMBOL_REF_DATA + rather than SYMBOL_REF_DECL. + (i386_pe_mark_dllimport): Likewise. + * config/rs6000/rs6000.c (rs6000_emit_move): Copy SYMBOL_REF_DATA + rather than SYMBOL_REF_DECL. + * config/darwin.c (machopic_indirect_data_reference): Likewise. + (machopic_indirect_call_target): Likewise. + +2006-01-25 Eric Botcazou + + * flow.c (delete_noop_moves): Add missing EOL to dump message. + +2006-01-25 Richard Sandiford + + * genattrtab.c (gen_bypass): Allow bypasses to contain whitespace. + +2006-01-25 Kaz Kojima + + * config/sh/predicates.md (sh_register_operand): Accept CONST_DOUBLE. + +2006-01-24 David Daney + + PR java/25816 + * configure.ac (enable_tls): New enable option. + (HAVE_AS_TLS): Don't do assembler check if enable_tls set. + * configure: Regenerate. + * doc/install.texi (--enable-tls): Document new option. + (--disable-tls): Ditto. + +2006-01-24 Richard Henderson + + * alias.h (ALIAS_SET_MEMORY_BARRIER): New. + * alias.c (true_dependence): Respect it. + (canon_true_dependence, write_dependence_p): Likewise. + * builtins.c (get_builtin_sync_mem): Set it. + +2006-01-25 Zdenek Dvorak + + * loop-iv.c (iv_analysis_loop_init): Use df analysis in a more + efficient way. + +2006-01-24 DJ Delorie + + * expmed.c (store_bit_field): Don't arbitrarily deny using insv + for storing constants in single-bit bitfields. + +2006-01-25 Ben Elliston + + * dfp.c (dfp_byte_swap): Use uint32_t and not unsigned long. + +2006-01-24 Andrew Pinski + + PR tree-opt/25860 + * tree-ssa-pre.c (phi_translate): Return NULL + for AGGREGATE_TYPE's. + +2006-01-24 Zack Weinberg + + * genautomata.c (process_state_for_insn_equiv_partition): + Use xcalloc for insn_arcs_array. + * vec.h (DEF_VEC_ALLOC_FUNC_I): New set of templates. + (DEF_VEC_ALLOC_I): Use it, not DEF_VEC_ALLOC_FUNC_P. + +2006-01-24 Richard Henderson + + * genextract.c (VEC_safe_set_locstr): Take VEC by reference; + update all callers. + +2006-01-23 Paolo Bonzini + + PR rtl-optimization/25890 + PR rtl-optimization/25905 + * combine.c (expand_compound_operation, expand_field_assignment): + Fail if the bitfield's final position is out of bounds. + +2006-01-24 Ian Lance Taylor + + PR middle-end/25930 + * cgraphunit.c (cgraph_output_in_order): Don't clear + cgraph_asm_nodes until after asm strings have been output. + +2006-01-23 Adam Nemet + + * fix-header.c (read_scan_file): Add new parameter imultilib when + calling register_include_chains. + +2006-01-23 Diego Novillo + + * omp-low.c: Update documentation. + +2006-01-23 Andrew Pinski + Daniel Berlin + + PR tree-opt/25315 + PR tree-opt/25857 + * tree-ssa-pre.c (insert_extra_phis): If an incomming edge is abnormal + return from the function. + +2006-01-22 Zack Weinberg + + * rtl.def (match_code): Add second argument. + * genpreds.c (write_extract_subexp): New function. + (write_match_code): Add path argument. Use write_extract_subexp. + (write_predicate_expr): Pass path to write_match_code. + (mark_mode_tests): MATCH_CODE applied to a subexpression does + not perform a mode test. + * genrecog.c (compute_predicate_codes): MATCH_CODE applied to + a subexpression does not constrain the top-level code set. + * read-rtl.c (read_rtx_variadic): New function. + (read_rtx_1): Use it; allow AND and IOR to be variadic. + * doc/md.texi: Document new notation. + * config/i386/predicates.md (cmpsi_operand_1): Fold into ... + (cmpsi_operand): ... here, using new notation. + +2006-01-22 Zack Weinberg + + * varray.c: Remove GENERATOR_FILE #ifdefs. + +2006-01-22 Zack Weinberg + + * genautomata.c (output_reserved_units_table): Emit nothing if + description->query_units_num is zero. Remove extra blank line. + (output_cpu_unit_reservation_p): Short circuit + if description->query_units_num is zero. + +2006-01-22 Zack Weinberg + + * genattrtab.c: Don't include genattrtab.h. Define ATTR_NONE + and ATTR_SPECIAL (from genattrtab.h). Don't define num_dfa_decls + nor any of the random handful of variables that used to be necessary + when this program was linked with rtlanal.o. Prune set of forward + function declarations. + (struct attr_desc): Remove static_p field. + (hash_obstack, temp_obstack, attr_hash_table, attr_printf) + (check_attr_test, make_internal_attr, make_numeric_value): Make static. + (attr_string): Do not read the character one past the length of + the string. + (write_attr_get, find_attr, make_internal_attr): Don't touch static_p. + (struct insn_reserv, all_insn_reservs, last_insn_reserv_p) + (n_insn_reservs, gen_insn_reserv, struct bypass_list, all_bypasses) + (n_bypasses, gen_bypass_1, gen_bypass, process_bypasses) + (make_automaton_attrs): New. + (main): Do not call into genautomata. Call local gen_bypass + and gen_insn_reserv as appropriate. Call make_automaton_attrs. + Remove special case for insn_alts. + * genautomata.c: Include gensupport.h; not genattrtab.h nor + varray.h (leftover from previous change). Prune set of forward + function declarations. Remove state_alts fields from all + structures. Remove state_alts_table from struct automaton. + Make everything except main static. Do not maintain num_dfa_decls. + Do not maintain state_alts fields of various structures. + (process_decls): Don't validate condexp for dm_insn_reserv decls. + (add_arc): Remove state_alts argument. All callers updated. + (output_reserved_units_table): Emit #ifdef here... + (output_tables): ...not here. Don't generate state_alts tables. + (expand_automata): Don't generate attributes. + (write_automata): Don't generate state_alts functions. + (main): New function. + (it_is_empty_reserv_sets, output_state_alts_full_vect_name) + (output_state_alts_comb_vect_name, output_state_alts_check_vect_name) + (AUTOMATON_STATE_ALTS_MACRO_NAME, INTERNAL_STATE_ALTS_FUNC_NAME) + (STATE_ALTS_FUNC_NAME, INSN_DEFAULT_LATENCY_FUNC_NAME) + (BYPASS_P_FUNC_NAME, output_state_alts_table) + (output_automata_list_state_alts_code, output_internal_state_alts_func) + (output_state_alts_func, make_insn_alts_attr, make_bypass_attr) + (make_internal_dfa_insn_code_attr, make_default_insn_latency_attr): + Delete. + * genattr.c: Declare internal_dfa_insn_code in insn-attr.h. + * genattrtab.h: Delete file. + * Makefile.in (OBJS-common): Add insn-automata.o. + (insn-automata.o): New rule. + (simple_generated_c): Add insn-automata.c. + (build/genattrtab.o, build/genautomata.o): Update dependencies. + (genprogmd): Add automata. + (build/genattrtab): Needs no extra objects nor libraries. + (build/genautomata): Needs build/vec.o and -lm. + +2006-01-22 Zack Weinberg + + * genautomata.c (process_state_longest_path, max_dfa_issue_rate) + (output_dfa_max_issue_rate, locked_states_num): Delete. + (struct automaton): Add locked_states field. + (output_dead_lock_vect): Save number of locked states in + automaton->locked_states. If it is zero, don't print anything. + (output_max_insn_queue_index_def): Define max_insn_queue_index const. + (output_internal_dead_lock_func): Only test the dead_lock_vect + for automata that have locked states. + (output_statistics): Always print the number of locked states for + each automaton. Calculate total number of locked states here. + (write_automata): Don't call output_dfa_max_issue_rate. + * genattrtab.c: Define length_unit_log as a const variable. + * genattr.c: Don't emit MAX_DFA_ISSUE_RATE. Declare + max_insn_queue_index const. + * final.c (length_unit_log): Declare const. + * doc/tm.texi: Remove all references to MAX_DFA_ISSUE_RATE. + +2006-01-22 Zack Weinberg + + * genautomata.c: Include vec.h, not varray.h. + Delete vla_ptr_t, all of the VLA_PTR_ macros, and all of the + VLA_HWINT_ macros. Change vla_hwint_t to a typedef for + VEC(vect_el_t,heap) *. Convert all uses of VLA_* macros to + VEC_* macros operating on appropriately typed vectors, or to + malloced arrays when the size is known in advance. Const-ify + many char* variables and function arguments. No functional changes. + * Makefile.in (build/varray.o): Delete rule. + (build/genattrtab): Depend on build/vec.o instead of build/varray.o. + (build/genautomata.o): Depend on vec.h instead of $(VARRAY_H). + +2006-01-22 Zack Weinberg + + * gensupport.c: Define get_insn_name and record_insn_name here. + (read_md_rtx): Call record_insn_name as appropriate. + * genattr.c, genattrtab.c, gencodes.c, genconfig.c, genemit.c + * genextract.c, genflags.c, genopinit.c, genoutput.c, genpeep.c + * genpreds.c, genrecog.c: Don't define get_insn_name nor + record_insn_name. + * Makefile.in (BUILD_SUPPORT, BUILD_PRINT): Fold into BUILD_RTL. + (BUILD_VARRAY): Delete. + (genprognormal): Rename genprogmd. Fold in all programs from + genprognoprint; also attrtab. + (build/genattrtab): Just mention genautomata.o and varray.o. + Reorganize a bit, add comments to make the categories clearer. + +2006-01-22 Zack Weinberg + + * genconditions.c (condition_table, add_condition): Delete. + (write_conditions): Don't emit n_insn_conditions nor + insn_elision_unavailable. Issue the gcc version #ifdef here, + inside the table, with no #else clause ... + (write_header): ...not here. + (write_writer): New function. + (main): Don't initialize condition_table. Use add_c_test. + Call write_writer. + * gensupport.c (init_md_reader_args_cb): Handle multiple input + files on the command line. + (maybe_eval_c_test): Don't check insn_elision_unavailable. + Return -1 if there is no entry in the table, don't abort. + (add_c_test, traverse_c_tests): New functions. + * gensupport.h (insn_elision_unavailable, insn_conditions) + (n_insn_conditions): Delete declarations. + (add_c_test, traverse_c_tests): Declare. + * read-rtl.c: Include gensupport.h. + (read_conditions): New function. + (read_rtx): If read_rtx_1 returns 0, treat as EOF. + (read_rtx_1): If we get EOF when we were looking for an initial + open paren, return 0. Call read_conditions when appropriate. + * Makefile.in: Kill BUILD_EARLY_SUPPORT and all references to + dummy-conditions.o. Eliminate references to insn-conditions.o, + or change them to build/gencondmd.o, as appropriate. Remove + insn-constants.h from $(simple_generated_h) and insn-conditions.c + from $(simple_generated_c). For all files remaining in those + two lists, add insn-conditions.md to the generator command line. + Give insn-constants.h/s-constants their own rules. Add rules + for build/gencondmd.c, s-conditions, insn-conditions.md, s-condmd. + (build/read-rtl.o): Depend on gensupport.h. + (genprognormal): Include preds. + (genprogearly): Rename genprognoprint; only difference is now that + they don't link with $(BUILD_PRINT). + * dummy-conditions.c: Delete. + +2006-01-22 Zack Weinberg + + * genextract.c: Don't include insn-config.h. Do include vec.h. + Declare vectors of int, char, and locstr. + (locstr): New typedef. + (struct extraction): Make all array fields into bare pointers. + (insn_name_ptr, insn_name_ptr_size): Move down by get_insn_name. + (insn_code_number): Delete. + (accum_extract): New struct. + (VEC_safe_set_locstr, VEC_char_to_string): New functions. + (gen_insn): Take insn_code_number as an argument. Use an + accum_extract structure instead of loading data directly into + a struct extraction, and having to know how big it might get. + (walk_rtx): Operate entirely on an accum_extract structure. + (print_path): Avoid unnecessary use of printf. + (print_header): New function, split out of main. Distinguish + more carefully between an unrecognizable insn and an insn that + has the code number of a define_expand. + (main): Pass insn_code_number to gen_insn. Call print_header + only after parsing. Avoid unnecessary use of printf. + * Makefile.in (build/vec.o): New rule. + (build/genextract): Depend on build/vec.o. + (build/genextract.o): Don't depend on insn-config.h. + +2006-01-22 Zack Weinberg + + * Makefile.in: Consolidate most rules that use $(CC_FOR_BUILD) and/or + $(RUN_GEN). Use pattern rules to factor out as much boilerplate as + practical. Eliminate per-generator-program link rules. + +2006-01-23 Andrew Pinski + + PR middle-end/24437 + * tree-ssa-ccp.c (fold_stmt): Move folding of OBJ_TYPE_REF + with a call expr to ... + * fold-const.c (fold_ternary) : Here. + +2006-01-23 Richard Guenther + + * cfgloopmanip.c (lv_adjust_loop_entry_edge): Add comment + before make_edge with conditional EDGE_TRUE_VALUE. + +2006-01-23 Steven Bosscher + Jan Hubicka + Richard Guenther + + PR rtl-optimization/25654 + * cfgexpand.c (aggregate_contains_union_type): New function. + (add_alias_set_conflicts): Call it. Make sure to add conflicts + for structure variables that contain a union type. + +2006-01-23 Richard Sandiford + + * gengtype.c (new_structure): Return the structure. + (create_option): Add an extra "next" argument. + (create_field): New function. + (adjust_field_rtx_def): Use create_option and create_field. + Remove a now-unnecessary call to find_structure. + (adjust_field_tree_def): Likewise. + (note_yacc_type): Remove an unnecessary call to find_structure. + * gengtype.h (new_structure): Return the structure. + (create_option): Add an extra argument. + * gengtype-yacc.y (type): Remove unnecessary calls to find_structure. + (option): Adjust calls to create_option. + +2006-01-22 David Edelsohn + + * config/rs6000/aix.h (STACK_BOUNDARY): Define. + +2006-01-22 Paul Brook + Peter Barada + + * config/m68k/m68k.md: Add Coldfire FPU support. + Define FP mode macro and associated attributes. + Use it for float mode patterns. + * config/m68k/linux.h (FUNCTION_VALUE): Use m68k_function_value. + (LIBCALL_VALUE): Use m68k_libcall_value. + * config/m68k/m68k-protos.h (m68k_libcall_value): Add prototype. + (m68k_function_value): Ditto. + (emit_move_sequence): Ditto. + * config/m68k/m68kemb.h (LIBCALL_VALUE): Use m68k_libcall_value. + * config/m68k/m68k-none.h (ASM_SPEC): Add mcfv4e. + * config/m68k/t-m68kelf (MULTILIB_OPTIONS): Add mcfv4e. + (MULTILIB_EXCEPTIONS): Ditto. + * config/m68k/m68k.opt: Add mcfv4e. + * config/m68k/m68k.c (m68k_handle_option): Handle OPT_mcfv4e. + (m68k_compute_frame_layout): Include space for ColdFire FPU regs. + (m68k_output_function_prologue): Save ColdFire FPU registers. + (m68k_output_function_epilogue): Restore ColdFire FPU registers. + (force_mode, fp_reg_operand, emit_move_sequence): New functions. + (m68k_regno_mode_ok): Don't allow types larget than 8 bytes in + ColdFire FPU registers. + (m68k_libcall_value, m68k_function_value): New functions. + * config/m68k/netbsd-elf.h (FUNCTION_VALUE): Use m68k_function_value. + (LIBCALL_VALUE): Use m68k_libcall_value. + * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Define __mcfv4e__. + (MASK_COLDFIRE): Add MASK_CFV4E. + (TARGET_COLDFIRE_FPU, TARGET_HARD_FLOAT, TARGET_FP_REG_SIZE): New. + (MODES_TIEABLE_P): Use TARGET_HARD_FLOAT. + (REG_CLASS_FROM_LETTER, PREFERRED_RELOAD_CLASS): Ditto. + (GO_IF_COLDFIRE_FPU_LEGITIMATE_ADDRESS): Define. + (GO_IF_LEGITIMATE_ADDRESS): Use it. + (LEGITIMIZE_ADDRESS): Handle ColdFire FPU addresses. + * doc/invoke.tex: Document -mcfv4e on m68k. + +2006-01-22 Ranjit Mathew + + * doc/contribute.texi: Change CVS to SVN and update the corresponding + URL. + +2006-01-21 Gabriel Dos Reis + + PR c++/16190 + * c-opts.c (c_common_handle_option): Don't include + -Wnon-virtual-dtor in -Wall; enable if -Weffc++. + * doc/invoke.texi (C++ Dialect Options): Document that + -Wnon-virtual-dtor is no longer included in -Wall. + +2006-01-21 Joseph S. Myers + + * gcov.c (print_version), gcov-dump.c (print_version), + mips-tdump.c (main), mips-tfile.c (main): Update copyright notice + dates. + +2006-01-21 Kenneth Zadeck + + * df-scan.c (problem_SCAN): Added NULL reset function. + (df_scan_reset_blocks): Added code to call reset block function + (df_bb_refs_delete) Fixed comment. + (df_insn_refs_delete): Made tolerant of deleting non existent info + for dataflow problems that need to be reset. + * df-core.c (df_set_blocks): Ditto. + * df.h (struct df_problem): Added reset_fun. + * df-problems.c (problem_RU, problem_RD, problem_LR, problem_UR, + problem_UREC, problem_CHAIN, problem_RI): Initialized reset_fun field. + (df_chain_insn_reset, df_chain_bb_reset, df_chain_reset): New + functions to clear out all references to def-use or use-def chains. + +2006-01-21 Ben Elliston + + * varasm.c (assemble_real): Initialise data array. + +2006-01-20 Paul Brook + + Merge from csl-arm-branch. + 2005-09-21 Kazu Hirata + * config/arm/arm.md (movdi): Force operands[1] to a register + if we have a non-register source. + (*arm_movdi, *movdf_soft_insn): Require that one of the + operands be a register. + * config/arm/iwmmxt.md (*iwmmxt_arm_movdi): Likewise. + * config/arm/vfp.md (*arm_movdi_vfp, *movdf_vfp): Likewise. + +2006-01-20 DJ Delorie + + * varasm.c (initializer_constant_valid_p): Allow pointers + initialized from integer constants of lesser precision. + (output_constant): Allow non-int-sized pointer modes to be + initialized from integer constants. + +2006-01-20 Joseph S. Myers + + PR libstdc++/25524 + * cppdefault.h (struct default_include): Add multilib flag. + * cppdefault.c (cpp_include_defaults): Set it. + * c.opt (-imultilib): New option. + * c-opts.c (imultilib): New. + (c_common_handle_option): Handle -imultilib. + (c_common_post_options): Likewise. + * c-incpath.c (add_standard_paths, register_include_chains): + Likewise. + * c-incpath.h (register_include_chains): Add extra parameter. + * gcc.c (do_spec_1): Generate -imultilib option. + (The Specs Language): Update %I description. + (process_command): Update copyright notice. + * doc/cppopts.texi (-imultilib): Document. + * doc/invoke.texi (-imultilib): Include in option summary. + (%I): Update specs documentation. + +2006-01-20 Zdenek Dvorak + + * loop-iv.c (iv_analysis_loop_init): Use df in more conservative way. + +2006-01-20 Richard Sandiford + + * stmt.c (case_bit_test_cmp): Stabilize the sort using code + label numbers. + +2006-01-20 Richard Guenther + Steven Bosscher + + PR rtl-optimization/24626 + * cfgloopmanip.c (lv_adjust_loop_entry_edge): Don't set + EDGE_TRUE_VALUE if in RTL mode. + + Revert + 2005-03-30 Mostafa Hagog + * cfgrtl.c (rtl_verify_flow_info_1): Fix. + +2006-01-20 Dirk Mueller + + PR c++/5520 + * c-parser.c (c_parser_if_body): Use build_empty_stmt() + instead of a special NOP marker. + * c-typeck.c (c_finish_if_stmt): Remove obsoleted special + NOP marker handling. + * c-common.h (empty_body_warning): Add forward declaration. + * c-common.c (empty_body_warning): Add (from c_finish_if_stmt). + Now uses IS_EMPTY_STMT() instead of special NOP markers. + +2006-01-20 Paul Brook + + * Makefile.in (lang_checks): Keep going if mkdir fails. + +2006-01-19 Kenneth Zadeck + + * df-scan.c (df_scan_free_bb_info): Added basic block parameter to + be able to clean out basic block when not necessary. + (df_scan_free): Fixed to properly delete information if df is + unused before calling df_finish. + (df_scan_alloc, df_rescan_blocks, df_reg_chain_unlink, + df_insn_create_insn_record, df_bb_refs_record): Fixed formatting + or comment typos. + (df_bb_refs_delete): New function. + (df_refs_delete): Moved per block code to df_bb_refs_delete. + * df-core.c (df_set_blocks): Added code to properly clean out + unused blocks if they are not part of the blocks to consider. + Added additional null check. + (df_compact_blocks): Added basic block parameter to free_bb_fun to + be able to clean out basic block when not necessary + * df.h (df_free_bb_function): Ditto. + (df_bb_refs_delete): New function. + * df-problems.c (df_ru_free_bb_info, df_rd_set_bb_info, + df_lr_set_bb_info, df_ur_free_bb_info, df_urec_free_bb_info):Added + basic block parameter to be able to clean out basic block when not + necessary. + (df_ru_alloc, df_rd_alloc): Fixed dyslexic overflow test. + (df_ru_free, df_rd_free, df_lr_free, df_ur_free, df_urec_free): + Fixed to properly delete information if df is unused before + calling df_finish. + +2006-01-19 Kenneth Zadeck + + PR rtl-optimization/25799 + * df-problems.c (df_ru_confluence_n, df_rd_confluence_n): + Corrected confluence operator to remove bits from op2 before oring + with op1 rather than removing bits from op1. + (df_ru_transfer_function): Corrected test on wrong bitmap which + caused infinite loop. Both of these problems were introduced in + the dataflow rewrite. + +2006-01-19 DJ Delorie + + * reload1.c (find_reload_regs): Note the details of reload + failures in the dump file. + (spill_failure): Likewise. + +2006-01-20 Zdenek Dvorak + + * loop-iv.c: Include df.h and hashtab.h. + (enum iv_grd_result): New enum. + (DF_REF_IV, DF_REF_IV_SET): New macros. + (struct biv_entry): New. + (df, bivs): New global variables. + (struct insn_info, insn_info, last_def, bivs, max_insn_no, max_reg_no, + assign_luids, mark_sets, kill_sets, mark_single_set, simple_set_p): + Removed. + (clear_iv_info, latch_dominating_def, record_iv, iv_analyze_expr, + iv_analyze_result, iv_analyze_def, biv_hash, biv_eq, + analyzed_for_bivness_p, record_biv): New functions. + (iv_analysis_loop_init, iv_get_reaching_def, simple_reg_p, + get_biv_step_1, get_biv_step, iv_analyze_biv, iv_analyze_op, + iv_analyze, biv_p, iv_analysis_done): Work with df representation of + UD chains. + (iv_constant, iv_subreg, iv_extend, iv_mult, iv_shift): Do not set + analysed. + (iv_number_of_iterations): Use new interface to iv analysis. + * loop-unroll.c: Do not include varray.h. + (analyze_iv_to_split_insn): Use new interface to iv + analysis. + * loop-unswitch.c (may_unswitch_on): Ditto. + * df.c (df_bitmaps_free): Only work for bbs for that structures are + allocated. + (df_bb_modify): Realloc tables to the new index. + (df_find_use): New function. + * df.h (df_find_use): Declare. + * optabs.c (expand_unop): Make the mode of the REG_EQUAL node be + outmode. + * cfgloop.h (struct rtx_iv): Remove analysed field. + (iv_get_reaching_def): Removed. + (iv_analyze_result, iv_analyze_expr, iv_current_loop_df): Declare. + * Makefile.in (loop-unroll.o): Remove VARRAY_H dependency. + (loop-iv.o): Add df.h and hashtab.h dependency. + * df-problems.c (df_ru_alloc, df_rd_alloc): Fix memory reallocation. + +2006-01-20 Alan Modra + + PR target/25668 + * libgcc2.c (__floatdisf, __floatdidf): Don't use IBM Extended + Double TFmode. + (__floatundisf, __floatundidf): Likewise. + * libgcc2.h (IS_IBM_EXTENDED): Define. + +2006-01-19 DJ Delorie + + * config/m32c/m32c.h (REG_ALLOC_ORDER): Define. + +2006-01-19 Paul Brook + + * config/arm/arm.c (arm_compute_func_type): Treat all functions + as nothrow when unwinding tables are disabled. + +2006-01-19 John David Anglin + + PR testsuite/25171 + * c-decl.c (check_bitfield_type_and_width): Don't issue pedwarn "type + of bit-field" when in system header. + +2006-01-19 DJ Delorie + + * config/m32c/m32c.c (m32c_prepare_shift): Add code to deal with + the 16 bit shift limit of the m16c. + +2006-01-19 Andrew Pinski + + PR target/22099 + * config/i386/i386.md (builtin_setjmp_receiver): Don't emit the label. + * config/i386/i386.c (output_set_got): Output the label if we have one + for the TARGET_DEEP_BRANCH_PREDICTION case. + +2006-01-19 Jan Hubicka + H.J. Lu + Evandro Menezes + + * invoke.texi (generic): Document + (i686) Update. + * config.gcc: Make x86_64-* and i686-* default to generic tunning. + * i386.h (TARGET_GENERIC32, TARGET_GENERIC64, TARGET_GENERIC, + TARGET_USE_INCDEC, TARGET_PAD_RETURNS): New macros. + (x86_use_incdec, x86_pad_returns): New variables + (TARGET_CPU_DEFAULT_generic): New constant + (TARGET_CPU_DEFAULT_NAMES): Add generic. + (enum processor_type): Add generic32 and generic64. + * i386.md (cpu attribute): Add generic32/generic64 + (movhi splitter): Behave sanely when both partial_reg_dependency and + partial_reg_stall are set. + (K8 splitters): Enable for generic as well. + * predicates.md (incdec_operand): Use TARGET_INCDEC + (aligned_operand): Avoid memory mismatch stalls. + * athlon.md: Enable for generic64, new patterns for 128bit moves. + * ppro.md: Enable for generic32 + * i386.c (generic64_cost, generic32_cost): New. + (m_GENERIC32, m_GENERIC64, m_GENERIC): New macros. + (x86_use_leave): Enable for generic64. (x86_use_sahf, + x86_ext_80387_constants): Enable for generic32. (x86_push_memory, + x86_movx, x86_unroll_strlen, x86_deep_branch, x86_use_simode_fiop, + x86_use_cltd, x86_promote_QImode, x86_sub_esp_4, x86_sub_esp_8, + x86_add_esp_4, x86_add_esp_8, x86_integer_DFmode_moves, + x86_partial_reg_dependency, x86_memory_mismatch_stall, + x86_accumulate_outgoing_args, x86_prologue_using_move, + x86_epilogue_using_move, x86_arch_always_fancy_math_387, + x86_sse_partial_reg_dependency, x86_four_jump_limit, x86_schedule): + Enable for generic. + (x86_use_incdec, x86_pad_returns): New. + (override_options): Add generic32 and generic64, translate "generic" + to generic32/generic64 and "i686" to "generic32", refuse + "generic32"/"generic64" as arch target. + (ix86_issue_rate, ix86_adjust_cost): Handle generic as athlon. + (ix86_reorg): Honor PAD_RETURNS. + +2006-01-19 Diego Novillo + + * tree-pretty-print.c (dump_generic_node): Handle + OMP_PARALLEL_FN, OMP_PARALLEL_DATA_ARG and OMP_RETURN_EXPR. + * cgraph.c (cgraph_expand_queue): Rename from + cgraph_analyze_queue. Update all users. + * cgraphunit.c (cgraph_assemble_pending_functions): Process + cgraph_expand_queue. + (cgraph_expand_all_functions): Likewise. + (cgraph_finalize_pending_functions): Remove. Update callers. + + * tree.h (OMP_DIRECTIVE_P): Define. + (OMP_PARALLEL_FN): Define. + (OMP_PARALLEL_DATA_ARG): Define. + (OMP_SECTIONS_SECTIONS): Define. + * tree-pass.h (pass_expand_omp): Declare. + * omp-low.c (struct omp_region): Declare. + (struct omp_context): Remove fields 'parallel_type', + 'parallel_start_ix' and 'parallel_start_additional_args'. + Update all users. + (struct omp_for_data): Rename from struct expand_omp_for_data. + (omp_regions): New static variable. + (root_omp_region): New static variable. + (find_omp_clause): Make static. + (is_in_combined_parallel_ctx): Remove. + (is_combined_parallel): New. + (extract_omp_for_data): Move earlier in the file. + (workshare_safe_to_combine_p): New. + (get_ws_args_for): New. + (determine_parallel_type): Move earlier in the file. + (omp_copy_decl_2): Do not set DECL_CONTEXT of new local to the + child function. + (omp_copy_decl): Likewise. + (create_omp_child_function): Likewise. + (lookup_omp_region): New. + (dump_omp_region): New. + (debug_omp_region): New. + (debug_all_omp_regions): New. + (new_omp_region): New. + (scan_omp_parallel): If parallel_nesting_level > 1, the + directive is nested within another parallel directive. + Set OMP_PARALLEL_FN. + (scan_omp_for): Do not try to handle combined parallel+for + cases. + Remove FIXME comment. + (scan_omp_nested): Remove. + (scan_omp_1): Do not call scan_omp_nested when + parallel_nesting_level is > 1. + Do not change the DECL_CONTEXT of local variables found. + (lookup_decl_in_outer_ctx): New. + (lower_rec_input_clauses): Rename from expand_rec_input_clauses. + (lower_lastprivate_clauses): Rename from expand_lastprivate_clauses. + (lower_reduction_clauses): Rename from expand_reduction_clauses. + (lower_copyprivate_clauses): Rename from expand_copyprivate_clauses. + If CTX is nested, lookup VAR in the outer context when + building copy assignment. + (lower_send_clauses): Rename from expand_send_clauses. + If CTX is nested, lookup VAR in the outer context when + building copy assignments. + (lower_send_shared_vars): Rename from expand_send_shared_vars. + If CTX is nested, lookup VAR in the outer context when + building copy assignments. + (expand_parallel_call): Rename from build_parallel_call. + Handle combined parallel+workshare cases. + Re-implement to emit code into the CFG. + (list2chain): New. + (expand_omp_parallel): Re-implement to emit code into the CFG. + Call move_sese_region_to_fn to outline the sub-graph + containing the parallel region. + (expand_omp_for_1): Remove. + (expand_omp_for_generic): Re-implement to emit code into the + CFG. + (expand_omp_for_static_nochunk): Likewise. + (expand_omp_for_static_chunk): Likewise. + (expand_omp_for): Likewise. + (expand_omp_sections): Likewise. + (remove_exit_barriers): New. + (expand_omp_synch): New. + (expand_omp): New. + (build_omp_regions_1): New. + (build_omp_regions): New. + (execute_expand_omp): New. + (gate_expand_omp): New. + (pass_expand_omp): Define. + (lower_omp_sections): Rename from expand_omp_sections. + Set OMP_SECTIONS_SECTIONS. + (lower_omp_single_simple): Rename from expand_omp_single_simple. + (lower_omp_single_copy): Rename from expand_omp_single_copy. + (lower_omp_single): Rename from expand_omp_simple. + (lower_omp_master): Rename from expand_omp_master. + (lower_omp_ordered): Rename from expand_omp_ordered. + (lower_omp_critical): Rename from expand_omp_critical. + (lower_omp_for_lastprivate): Rename from expand_omp_for_lastprivate. + (lower_omp_for): Re-implement. + (lower_omp_parallel): Re-implement. + (lower_regimplify): Rename from expand_regimplify. + (lower_omp_1): Rename from expand_omp_1. + If there are syntax errors in the program, replace every + OpenMP directive with NOP. + Call lower_omp_* instead of expand_omp_*. + (lower_omp): Rename from expand_omp. + + * tree-gimple.c (is_gimple_stmt): Handle OMP_RETURN_EXPR. + * tree-gimple.h (enum omp_parallel_type): Remove. + (gimple_boolify): Declare extern. + (find_omp_clause, determine_parallel_type): Remove. + + * gimple-low.c (lower_omp_directive): New. + (lower_stmt): Call it. + (record_vars_into): Move from ... + (record_vars): ... here. + Call record_vars_into with current_function_decl. + + * gimplify.c (struct gimplify_ctx): Remove fields + combined_pre_p and combined_ctxp. Update users. + (get_formal_tmp_var): Add documentation. + (gimple_boolify): Make extern. + (gimplify_expr_in_ctx): Remove. Update callers. + (gimplify_omp_parallel): Do not assume that OMP_PARALLEL_BODY + will always be a BIND_EXPR. + (gimplify_expr): Handle OMP_RETURN_EXPR. + * tree.def (BLOCK): Remove documentation about BLOCK_TYPE_TAGS. + (OMP_PARALLEL): Add 3 operands. + (OMP_SECTIONS): Add 1 operand. + (OMP_RETURN_EXPR): Define. + + * tree-inline.c (estimate_num_insns_1): Handle OpenMP directives. + (copy_tree_r): Restore TREE_CHAIN in OMP_CLAUSE_*. + * tree-iterator.c (alloc_stmt_list): Assert that we are not + creating a circular free list. + (free_stmt_list): Assert that we are not freeing stmt_list_cache. + + * tree-flow.h (move_sese_region_to_fn): Declare. + (record_vars_into): Declare. + * tree-cfg.c (make_omp_sections_edges): New. + (make_exit_edges): Handle OMP_PARALLEL, OMP_FOR, OMP_SINGLE, + OMP_MASTER, OMP_ORDERED, OMP_CRITICAL, OMP_RETURN_EXPR, + OMP_SECTIONS and OMP_SECTION. + (is_ctrl_altering_stmt): Return true for OMP_DIRECTIVE_P. + (set_bb_for_stmt): Undo change to check currently_expanding_to_rtl. + (verify_stmt): Do not handle OMP_DIRECTIVE_P. + (gather_blocks_in_sese_region): New. + (struct move_stmt_d): Declare. + (move_stmt_r): New. + (move_block_to_fn): New. + (move_sese_region_to_fn): New. + + * passes.c (init_optimization_passes): Schedule + pass_expand_omp after pass_init_datastructures. + + * tree-ssa-operands.c (get_expr_operands): Handle + OMP_PARALLEL, OMP_SECTIONS, OMP_FOR, OMP_RETURN_EXPR, + OMP_SINGLE, OMP_MASTER, OMP_ORDERED, OMP_CRITICAL. + +2006-01-19 Jeff Law + + * tree-vrp.c (extract_range_from_assert): Refine the result range + if the variable referenced by the ASSERT_EXPR has a range and + either the tentative result range or the previous range is a + VR_ANTI_RANGE. + +2006-01-19 Richard Sandiford + + * c-decl.c (add_flexible_array_elts_to_size): Simplify vector accesses. + +2006-01-19 Jan Hubicka + + * tree-vect-patterns.c (vect_pattern_recog_1): Prevent parse error. + +2006-01-19 Paolo Bonzini + + * combine.c (try_combine): Do not worry about MEMs wrapped by USEs. + (expand_compound_operation, expand_field_assignment): Fail if the + bit lengths of an extract operation are out of range. + (make_extraction): Compute wanted_inner_mode based on the position + and length of the extraction. Make it extraction_mode for non-constant + positions, and do not modify offset in that case. When generating a + new MEM, use a mode that can hold the extraction while keeping correct + alignment. Remove code that supported MEMs wrapped by USEs. + (simplify_shift_const_1, force_to_mode) : Remove. + +2006-01-19 Andreas Krebbel + + * config/s390/s390.md ("Y", "y"): New mode attribute. + ("*cmpdi_ccs", "*cmpsi_ccs", "*adddi3_imm_cc", "*adddi3_carry1_cc", + "*adddi3_carry1_cconly", "*adddi3_carry2_cc", "*adddi3_carry2_cconly", + "*adddi3_cc", "*adddi3_cconly", "*adddi3_cconly2", "*adddi3_64", + "*addsi3_imm_cc", "*addsi3_carry1_cc", + "*addsi3_carry1_cconly", "*addsi3_carry2_cc", "*addsi3_carr2_cconly", + "*addsi3_cc", "*addsi3_cconly", "*addsi3_cconly2", + "*subdi3_borrow_cc", "*subdi3_borrow_cconly", "*subdi3_cc", + "*subdi3_cc2", "*subdi3_cconly", "*subdi3_cconly2", "*subdi3_64", + "*subsi3_borrow_cc", "*subsi3_borrow_cconly", "*subsi3_cc", + "*subsi3_cc2", "*subsi3_cconly", "*subsi3_cconly", "*subsi3_cconly2", + "addsi3", "subsi3"): Insn patterns removed. + ("*add3_carry1_cc", "*add3_carry1_cconly", + "*add3_carry2_cc", "*add3_carry2_cconly", "*add3_cc", + "*add3_cconly", "*add3_cconly2", "*add3_imm_cc", + "*sub3_borrow_cc", "*sub3_borrow_cconly", + "*sub3_cc", "*sub3_cc2", "*sub3_cconly", + "*sub3_cconly2"): New insn patterns. + ("addsi3", "subsi3"): New expanders. + +2006-01-19 Dorit Nuzman + + * Makefile.in (tree-vect-patterns.o): Add rule for new file. + * tree-vect-analyze.c (vect_determine_vectorization_factor): Use + existing STMT_VINFO_VECTYPE if available. + (vect_mark_relevant): Add special handling for stmts that are + marked as STMT_VINFO_IN_PATTERN_P. + (vect_analyze_loop): Call vect_pattern_recog. + * tree-vectorizer.c (new_stmt_vec_info): Initialize new fields. + * tree-vectorizer.h (in_pattern_p, related_stmt): New fields in + stmt_info. + (STMT_VINFO_IN_PATTERN_P, STMT_VINFO_RELATED_STMT): New macros. + (vect_recog_func_ptr): New function-pointer type. + * tree-vect-patterns.c: New file. + (vect_recog_widen_sum_pattern, vect_recog_widen_mult_pattern): + (vect_recog_dot_prod_pattern, vect_pattern_recog): + (vect_pattern_recog_1): New functions. + (vect_pattern_recog_funcs): New array of function pointers. + + * tree-vectorizer.h (ternary_op): New enum value. + * tree-vect-transform.c (vect_create_epilog_for_reduction): Added + declaration. Revised documentation. Removed redundant dump prints. + Removed redundant argument. Added support for reduction patterns. + (vectorizable_reduction): Added support for reduction patterns. + (vect_transform_stmt): Added support for patterns. + + * expr.c (expand_expr_real_1): Added case for DOT_PROD_EXPR. + * genopinit.c (udot_prod_optab, sdot_prod_optab): Initialize. + * optabs.c (optab_for_tree_code): Added case for DOT_PROD_EXPR. + (expand_widen_pattern_expr): New function. + (init_optabs): Initialize new optabs udot_prod_optab, + sdot_prod_optab. + * optabs.h (OTI_sdot_prod, OTI_udot_prod): New. + (sdot_prod_optab, udot_prod_optab): Define new optabs. + (expand_widen_pattern_expr): New function declaration. + * tree.def (DOT_PROD_EXPR, WIDEN_SUM_EXPR, WIDEN_MULT_EXPR): New + tree-codes. + * tree-inline.c (estimate_num_insns_1): Added cases for new + tree-codes DOT_PROD_EXPR, WIDEN_SUM_EXPR, WIDEN_MULT_EXPR. + * tree-pretty-print.c (dump_generic_node): Likewise. + (op_prio): Likewise. + (op_symbol): Added cases for WIDEN_SUM_EXPR, WIDEN_MULT_EXPR. + * tree-ssa-operands.c (get_expr_operands): Added case for + DOT_PROD_EXPR. + * tree-vect-patterns.c (widened_name_p): New function. + (vect_recog_dot_prod_pattern): Added function implementation. + * tree-vect-transform.c (get_initial_def_for_reduction): Added + cases for DOT_PROD_EXPR, WIDEN_SUM_EXPR. + * config/rs6000/altivec.md (udot_prod, sdot_prodv8hi): New. + * config/i386/sse.md (sdot_prodv8hi, udot_prodv4si): New. + + * expr.c (expand_expr_real_1): Added case for WIDEN_SUM_EXPR. + * genopinit.c (widen_ssum_optab, widen_usum_optab): Initialize. + * optabs.c (optab_for_tree_code): Added case for WIDEN_SUM_EXPR. + (init_optabs): Initialize new optabs widen_ssum_optab, + widen_usum_optab. + * optabs.h (OTI_widen_ssum, OTI_widen_usum): New. + (widen_ssum_optab, widen_usum_optab): Define new optabs. + * tree-vect-generic.c: (expand_vector_operations_1): Check type of + use instead of type of def. + * tree-vect-patterns.c (vect_recog_widen_sum_pattern): Added + function implementation. + * config/rs6000/altivec.md (widen_usum, widen_ssumv16qi, + widen_ssumv8hi): New. + + * doc/tm.texi (ssum_widen, usum_widen, sdot_prod, udot_prod): New + patterns. + +2006-01-19 Richard Sandiford + + PR c/25805 + * c-decl.c (add_flexible_array_elts_to_size): New function. + (finish_decl): Use it. + +2006-01-18 Andrew Pinski + + * diagnostic.h: Include options.h. + * config/rs6000/x-darwin (host-ppc-darwin.o): Correct the + dependancies for diagnostic.h. + * Makefile.in (DIAGNOSTIC_H): Add options.h. + +2006-01-16 Daniel Berlin + + * tree-ssa-operands.h (ssa_call_clobbered_cache_valid): Remove. + (ssa_ro_call_cache_valid): Ditto. + * tree-ssa-alias.c (sort_tags_by_id): New function. + (init_transitive_clobber_worklist): Ditto. + (add_to_worklist): Ditto. + (mark_aliases_call_clobbered): Ditto. + (compute_tag_properties): Ditto. + (set_initial_properties): Ditto. + (compute_call_clobbered): Ditto. + (compute_may_aliases): Call compute_call_clobbered and grouping. + (compute_flow_sensitive_aliasing): Remove clobbering related code. + (compute_flow_insensitive_aliasing): Grouping now happens in our + caller. + (setup_pointers_and_addressables): Remove clobbering related code. + (add_may_alias): Ditto. + (replace_may_alias): Ditto. + (get_nmt_for): Ditto. + (create_global_var): + (is_escape_site): Return an escape_type enumeration. + * tree-flow-inline.h (is_call_clobbered): Global var does not + imply call clobbered. + (mark_call_clobbered): Take a reason for marking this. Remove + marking of globalness, and cache invalidation. + (clear_call_clobbered): Remove cache invalidation code. + * tree-dfa.c (dump_variable): If details is on, dump the reason + for escaping. + * tree-outof-ssa.c (create_temp): Copy escape mask from original + variable. + * tree-flow.h (struct ptr_info_def): Add escape mask member. + (struct var_ann_d): Ditto. + (enum escape_type): New. + (mark_call_clobbered): Adjust prototype. + * tree-ssa-structalias.c (update_alias_info): Unmodifiable vars + are never call clobbered. + Record reasons for escaping. + * tree-ssa-structalias.h (is_escape_site): Update prototype. + * tree-ssa-operands.c (ssa_call_clobbered_cache_valid): Remove. + (ssa_ro_call_cache_valid): Ditto. + (clobbered_v_may_defs): Ditto. + (clobbered_vuses): Ditto. + (ro_call_vuses): Ditto. + (clobber_stats): New. + (init_ssa_operands): Zero out clobber stats. + (fini_ssa_operands): Print out clobber stats. + (get_call_expr_operands): Pass callee fndecl to + add_call_read_ops). + (add_call_clobber_ops): Remove use of cache. + Add use of PURE_CONST information. + (add_call_read_ops): Remove use of cache. + Add use of static not_read information. + +2006-01-18 Alexandre Oliva + + Introduce TLS descriptors for i386 and x86_64. + * config/i386/i386.h (TARGET_GNU2_TLS): New macro. + (TARGET_ANY_GNU_TLS): New macro. + (enum tls_dialect): Added TLS_DIALECT_GNU2. + (struct machine_function): Add tls_descriptor_call_expanded_p. + (ix86_tls_descriptor_calls_expande_in_cfun): New macro. + (ix86_current_function_calls_tls_descriptor): Likewise. + * config/i386/i386.c (ix86_tls_dialect): Fix typo in comment. + (override_options): Introduce gnu2 tls dialect. + (ix86_frame_pointer_required): Functions containing TLSCALLs are + not leaves. + (ix86_select_alt_pic_regnum, ix86_compute_frame_layout): + Likewise. + (legitimize_tls_address): Adjust logic for GNU2 TLS. + (ix86_init_machine_status): Initialize new field. + (ix86_tls_get_addr): Use TARGET_ANY_GNU_TLS. + (ix86_tls_module_base): New. + * config/i386/i386-protos.h (ix86_tls_module_base): Declare it. + * config/i386/i386.md (UNSPEC_TLSDESC): New constant. + (tls_global_dynamic_32, tls_global_dynamic_64): Handle GNU2 TLS. + (tls_local_dynamic_base_32, tls_local_dynamic_base_64): Likewise. + (tls_dynamic_gnu2_32, *tls_dynamic_lea_32): New patterns. + (*tls_dynamic_call_32, *tls_dynamic_gnu2_combine_32): Likewise. + (tls_dynamic_gnu2_64, *tls_dynamic_lea_64): Likewise. + (*tls_dynamic_call_64, *tls_dynamic_gnu2_combine_64): Likewise. + * config/i386/predicates.md (tls_modbase_operand): New. + (tp_or_register_operand): New. + +2006-01-18 Daniel Berlin + + * ipa-reference.c (check_operand): Allow FUNCTION_DECL. + (look_for_address_of): Ditto. + (ipa_init): Walk the function decls. + (static_execute): Don't set readonly on FUNCTION_DECL's. + +2006-01-18 Roger Sayle + + * config/i386/i386.md (shift spliter): Fix a a typo in the splitter + for shifts where the source and destination registers are different. + +2006-01-18 Paul Brook + + Merge from csl-arm-branch. + 2005-03-14 Julian Brown + * config/arm/lib1funcs.asm (ashldi3): Don't define on SymbianOS. + (aeabi_llsl): Likewise. + (ashrdi3): Likewise. + (aeabi_lasr): Likewise. + (lshrdi3): Likewise. + (aeabi_llsr): Likewise. + 2005-03-10 Julian Brown + * config.gcc: Disable shared libgcc for SymbianOS. + * config/arm/t-symbian (LIB2ADDEH): Include config/arm/pr-support.c. + +2006-01-18 DJ Delorie + + * c-pragma.c (handle_pragma_diagnostic): New. + (init_pragma): Register it. + * doc/extend.texi: Document it. + + * diagnostic.def: Add DK_UNSPECIFIED and DK_IGNORED. + * diagnostic.h (diagnostic_classify_diagnostic): Declare. + (diagnostic_context): Add classify_diagnostic[]. + * diagnostic.c (diagnostic_count_diagnostic): Don't count warnings + as errors if they're overridden to DK_WARNING. + (diagnostic_initialize): Initialize classify_diagnostic[]. + (diagnostic_set_kind_override): New. + (diagnostic_report_diagnostic): Check for kind changes. + * opts.c (common_handle_option): Take lang_mask. Update callers. + Handle OPT_Werror_. + * common.opt (Werror=): New. + * doc/invoke.texi: Document -Werror=* + +2006-01-18 Jeff Law + + * tree-vrp.c (test_for_singularity): Correct test for new + min limit. Use operand_equal_p rather than pointer equality + for testing if new min/max values are equal. + + * tree-ssa-propagate.c (substitute_and_fold): Delay simplifications + using range information until after propagation and folding. + +2006-01-18 Richard Henderson + Aldy Hernandez + Jakub Jelinek + Diego Novillo + + * omp-low.c: New file. + * c-omp.c: New file. + +2006-01-18 Richard Henderson + Jakub Jelinek + Diego Novillo + + * doc/invoke.texi: Document -fopenmp. + * tree-dump.h (debug_function): Declare. + * hooks.c (hook_bool_tree_bool_false): New function. + (hook_tree_tree_null): Remove. + (hook_tree_tree_tree_null): New. + * hooks.h: Update to match. + * tree-pretty-print.c (debug_tree_chain): New. + (print_generic_expr): Handle TDF_CHAIN. + (dump_generic_node): Handle BLOCK. + Do not abort with incomplete SWITCH_EXPRs. + Do not dump body of an OpenMP directive if TDF_SLIM is given. + : Don't + print space after directive name. + : Handle printing OMP_FOR_PRE_BODY. + Handle OMP_MASTER and OMP_ORDERED. + Handle printing of OMP_BODY just in one place, goto + dump_omp_body in the rest of OMP_* nodes that have + OMP_BODY. + Don't handle clause nodes here. Update omp statements to + use dump_omp_clauses. + Handle OMP_SINGLE, OMP_SECTIONS, OMP_SECTION, + OMP_CLAUSE_ORDERED, OMP_CLAUSE_SCHEDULE, OMP_ATOMIC, + OMP_CRITICAL, OMP_CLAUSE_NOWAIT, GOMP_CLAUSE_IF, + GOMP_CLAUSE_NUM_THREADS, GOMP_FOR, GOMP_CLAUSE_SHARED, + GOMP_CLAUSE_FIRSTPRIVATE, GOMP_CLAUSE_LASTPRIVATE, + GOMP_CLAUSE_COPYIN and GOMP_CLAUSE_COPYPRIVATE. + Adjust output for GOMP_PARALLEL. + (dump_omp_clauses): New. + (print_declaration): Dump DECL_VALUE_EXPR. + (op_symbol_1): Split out of op_symbol. + (dumping_stmts): Remove. Update all users. + * cgraph.c (cgraph_analyze_queue): New. + (cgraph_add_new_function): New. + * cgraph.h (cgraph_analyze_queue): Declare. + (cgraph_add_new_function): Declare. + (cgraph_lower_function): Remove. + * tree.c (walk_tree): Walk OMP_CLAUSE_CHAIN of OMP_CLAUSE_* + nodes. Use switch for all nodes, handle most of IS_EXPR_CODE_CLASS + and TYPE_P nodes in its default clause. + (empty_body_p): New. + (tree_range_check_failed): New. + (build5_stat): New. + * tree.h (OMP_CLAUSE_REDUCTION_INIT, + OMP_CLAUSE_REDUCTION_MERGE, + OMP_CLAUSE_REDUCTION_PLACEHOLDER, + OMP_CLAUSE_PRIVATE_DEBUG, + OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE, OMP_FOR_PRE_BODY, + OMP_MASTER_BODY, OMP_ORDERED_BODY OMP_BODY, + OMP_CLAUSES, OMP_CLAUSE_DECL, OMP_CLAUSE_DEFAULT_KIND, + OMP_CLAUSE_CHAIN, OMP_CLAUSE_OUTER_DECL, + OMP_CLAUSE_INNER_DECL, OMP_CLAUSE_NUM_THREADS_EXPR, + OMP_CLAUSE_IF_EXPR, OMP_CLAUSE_SCHEDULE_CHUNK_EXPR, + OMP_CLAUSE_SCHEDULE_CHUNK_SIZE. OMP_PARALLEL_VAR_INIT, + OMP_PARALLEL_VAR_REDUC, OMP_FOR_VAR_INIT, + OMP_FOR_VAR_LAST, OMP_FOR_VAR_REDUC, + OMP_SECTIONS_VAR_INIT, OMP_SECTIONS_VAR_LAST, + OMP_SECTIONS_VAR_REDUC, OMP_CLAUSE_REDUCTION_CODE + OMP_SINGLE_CLAUSES, OMP_SINGLE_BODY, + OMP_CLAUSE_SCHEDULE_CHUNK_SIZE, OMP_SECTION_BODY, + OMP_CRITICAL_NAME, OMP_CRITICAL_BODY): New. + (TREE_RANGE_CHECK): New. + (empty_body_p): Declare. + (enum omp_clause_default_kind): New. + (build_string_literal): Declare. + (enum omp_clause_schedule_kind, OMP_CLAUSE_SCHEDULE_KIND): New. + (build5_stat, build5): Declare. + * tree-pass.h (TDF_CHAIN): Define. + * tree-pass.h (PROP_gimple_lomp): Define. + (pass_lower_omp): Declare. + * diagnostic.h (debug_tree_chain): Declare. + * builtins.c (get_builtin_sync_mode): Use 0 as last argument to + mode_for_size. + (expand_builtin): Handle sync BUILT_IN_*_16 builtins. + * builtins.c (build_string_literal): Make extern. + * gcc.c (include_spec_function): New. + (static_spec_functions): Add it. + (main): Move load of libgomp.spec ... + (LINK_COMMAND_SPEC): ... here. + (link_gomp_spec): New. + (static_specs): Include it. + (LINK_COMMAND_SPEC): Add link_gomp. + (GOMP_SELF_SPECS): New. + (driver_self_specs): Include it. + (switch_matches): Don't mark inline. + (main): Load libgomp.spec. + * tree-gimple.c (is_gimple_stmt): True for OMP_MASTER, + OMP_ORDERED, OMP_CRITICAL, OMP_SECTIONS, OMP_SECTION, + and OMP_SINGLE, OMP_FOR and OMP_PARALLEL. + * tree-gimple.h (enum omp_parallel): Declare. + (determine_parallel_type): Declare. + (omp_firstprivatize_variable): Declare. + (omp_reduction_init): Declare. + (diagnose_omp_structured_block_errors): Declare. + (struct walk_stmt_info): Add want_return_expr. + (struct walk_stmt_info): Add want_bind_expr, want_locations. + (find_omp_clause): Declare. + (insert_field_into_struct): Declare. + (struct walk_stmt_info): Move from tree-nested.c + (walk_stmts): Declare. + * c-cppbuiltin.c (c_cpp_builtins): If -fopenmp, #define _OPENMP + to 200505. + * cgraphunit.c (cgraph_lower_function): Make static. + (cgraph_finalize_pending_functions): New. + (cgraph_finalize_function): Call it. + (cgraph_finalize_compilation_unit): Likewise. + * builtin-types.def (BT_I16, BT_FN_I16_VPTR_I16, + BT_FN_BOOL_VPTR_I16_I16, BT_FN_I16_VPTR_I16_I16): Add. + (BT_FN_UINT_UINT): New. + (DEF_FUNCTION_TYPE_6, DEF_FUNCTION_TYPE_7, + DEF_FUNCTION_TYPE_VAR_4): Document. + (BT_PTR_LONG, BT_PTR_PTR, BT_FN_BOOL, BT_FN_INT, + BT_FN_VOID_PTRPTR, BT_PTR_FN_VOID_PTR, + BT_FN_BOOL_LONGPTR_LONGPTR, BT_FN_VOID_OMPFN_PTR_UINT, + BT_FN_VOID_OMPFN_PTR_UINT_UINT, + BT_FN_BOOL_LONG_LONG_LONG_LONGPTR_LONGPTR, + BT_FN_BOOL_LONG_LONG_LONG_LONG_LONGPTR_LONGPTR, + BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG, + BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_LONG): New. + * builtins.def: Update DEF_BUILTIN comment to include COND argument. + Move all DEF_SYNC_BUILTIN () and DEF_GOMP_BUILTIN () builtins + into separate files. + (DEF_GOMP_BUILTIN): New. + (BUILT_IN_OMP_GET_THREAD_NUM, BUILT_IN_GOMP_BARRIER, + BUILT_IN_GOMP_CRITICAL_START, BUILT_IN_GOMP_CRITICAL_END, + BUILT_IN_GOMP_CRITICAL_NAME_START, BUILT_IN_GOMP_CRITICAL_NAME_END, + BUILT_IN_GOMP_LOOP_STATIC_START, BUILT_IN_GOMP_LOOP_DYNAMIC_START, + BUILT_IN_GOMP_LOOP_GUIDED_START, BUILT_IN_GOMP_LOOP_RUNTIME_START, + BUILT_IN_GOMP_LOOP_ORDERED_STATIC_START, + BUILT_IN_GOMP_LOOP_ORDERED_DYNAMIC_START, + BUILT_IN_GOMP_LOOP_ORDERED_GUIDED_START, + BUILT_IN_GOMP_LOOP_ORDERED_RUNTIME_START, + BUILT_IN_GOMP_LOOP_STATIC_NEXT, BUILT_IN_GOMP_LOOP_DYNAMIC_NEXT, + BUILT_IN_GOMP_LOOP_GUIDED_NEXT, BUILT_IN_GOMP_LOOP_RUNTIME_NEXT, + BUILT_IN_GOMP_LOOP_ORDERED_STATIC_NEXT, + BUILT_IN_GOMP_LOOP_ORDERED_DYNAMIC_NEXT, + BUILT_IN_GOMP_LOOP_ORDERED_GUIDED_NEXT, + BUILT_IN_GOMP_LOOP_ORDERED_RUNTIME_NEXT, + BUILT_IN_GOMP_PARALLEL_LOOP_STATIC_START, + BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC_START, + BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED_START, + BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME_START, + BUILT_IN_GOMP_LOOP_END, BUILT_IN_GOMP_LOOP_END_NOWAIT, + BUILT_IN_GOMP_ORDERED_START, BUILT_IN_GOMP_ORDERED_END, + BUILT_IN_GOMP_PARALLEL_START, BUILT_IN_GOMP_PARALLEL_END, + BUILT_IN_GOMP_SECTIONS_START, BUILT_IN_GOMP_SECTIONS_NEXT, + BUILT_IN_GOMP_PARALLEL_SECTIONS_START, BUILT_IN_GOMP_SECTIONS_END, + BUILT_IN_GOMP_SECTIONS_END_NOWAIT, BUILT_IN_GOMP_SINGLE_START, + BUILT_IN_GOMP_SINGLE_COPY_START, BUILT_IN_GOMP_SINGLE_COPY_END): New. + * sync-builtins.def: New file, moved from builtins.def. + * omp-builtins.def: New file, moved from builtins.def. + * c-objc-common.h (LANG_HOOKS_OMP_PREDETERMINED_SHARING): Redefine. + * gimple-low.c (lower_function_body): Clear data. + (lower_stmt): Do not handle COMPOUND_EXPR. + Remove call to print_node_brief. + * c-tree.h (c_finish_omp_clauses): New prototype. + (C_DECL_THREADPRIVATE_P): Define. + (lookup_name_no_remap, c_omp_remap_private): Remove + (c_begin_omp_parallel, c_finish_omp_parallel): Update. + (check_for_loop_decls): Update decl. + (lookup_name_no_remap, c_omp_remap_private): Declare. + (build_indirect_ref, build_modify_expr, pushdecl, + pushdecl_top_level): Move to c-common.h. + * dwarf2out.c (loc_descriptor_from_tree_1): Don't set unsignedp + before the switch, but just in the 2 places that need it. + * c-decl.c (diagnose_mismatched_decls): Do not check for + mismatched thread-local attributes when OLDDECL is marked + threadprivate and NEWDECL has no thread-local attributes. + (merge_decls): Merge C_DECL_THREADPRIVATE_P. + (c_gimple_diagnostics_recursively): Rename from + c_warn_unused_result_recursively. Invoke + diagnose_omp_structured_block_errors. + (check_for_loop_decls): Return a singular decl found. + * langhooks.c (lhd_omp_predetermined_sharing): Return + OMP_CLAUSE_DEFAULT_SHARED for DECL_ARTIFICIAL decls. + (lhd_omp_firstprivatize_type_sizes): New. + (lhd_omp_assignment): New. + (lhd_omp_predetermined_sharing): New. + * langhooks.h (struct gimplify_omp_ctx): Forward declare. + (struct lang_hooks_for_types): Add + omp_firstprivatize_type_sizes, omp_privatize_by_reference, + omp_predetermined_sharing, omp_disregard_value_expr, + omp_private_debug_clause, omp_clause_default_ctor, + omp_clause_copy_ctor, omp_clause_assign_op, omp_clause_dtor. + (c_finish_omp_clauses): New. + (c_finish_bc_stmt): Diagnose break within omp for. + (c_begin_omp_parallel, c_finish_omp_parallel): New. + (build_unary_op): Return error_mark after reporting + a readonly_error. + (build_modify_expr): Likewise. + * gimplify.c: Include optabs.h and pointer-set.h. + (enum gimplify_omp_var_data): Declare. + (struct gimplify_omp_ctx): Declare. + (struct gimplify_ctx): Add fields prev_context, combined_pre_p + and combined_ctxp. + (gimplify_ctxp, gimplify_omp_ctxp): New local variables. + (push_gimplify_context, pop_gimplify_context): Allow nesting. + (splay_tree_compare_decl_uid): New. + (new_omp_context): New. + (delete_omp_context): New. + (gimple_add_tmp_var): Call omp_add_variable. + (gimplify_bind_expr): Likewise. + (gimplify_var_or_parm_decl): If omp_notice_variable returned + true, disregard DECL_VALUE_EXPR on the decl if any. + (gimplify_expr_in_ctx): New. + (omp_firstprivatize_variable, omp_firstprivatize_type_sizes + omp_add_variable, omp_notice_variable, omp_is_private + gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses_1 + gimplify_adjust_omp_clauses, gimplify_omp_parallel + gimplify_omp_for, gimplify_omp_workshare, goa_lhs_expr_p + gimplify_omp_atomic_fetch_op, goa_stabilize_expr + gimplify_omp_atomic_pipeline, gimplify_omp_atomic_mutex + gimplify_omp_atomic): New. + (gimplify_expr): Handle OMP_PARALLEL, OMP_FOR, OMP_SECTIONS, + OMP_SINGLE, OMP_SECTION, OMP_MASTER, OMP_ORDERED, + OMP_CRITICAL and OMP_ATOMIC. + (gimplify_body): Verify gimplify_ctxp is empty after gimplification. + * c-pragma.h (enum pragma_kind): Add + PRAGMA_OMP_ATOMIC, PRAGMA_OMP_BARRIER, + PRAGMA_OMP_CRITICAL, PRAGMA_OMP_FLUSH, PRAGMA_OMP_FOR, + PRAGMA_OMP_MASTER, PRAGMA_OMP_ORDERED, + PRAGMA_OMP_PARALLEL, PRAGMA_OMP_PARALLEL_FOR, + PRAGMA_OMP_PARALLEL_SECTIONS, PRAGMA_OMP_SECTION, + PRAGMA_OMP_SECTIONS, PRAGMA_OMP_SINGLE, + PRAGMA_OMP_THREADPRIVATE. + * tree.def (OMP_PARALLEL, OMP_FOR, OMP_SECTIONS, + OMP_SINGLE, OMP_SECTION, OMP_MASTER, OMP_ORDERED, + OMP_CRITICAL, OMP_ATOMIC, OMP_CLAUSE_PRIVATE, + OMP_CLAUSE_SHARED, OMP_CLAUSE_FIRSTPRIVATE, + OMP_CLAUSE_LASTPRIVATE, OMP_CLAUSE_REDUCTION, + OMP_CLAUSE_COPYIN, OMP_CLAUSE_COPYPRIVATE, + OMP_CLAUSE_IF, OMP_CLAUSE_NUM_THREADS, + OMP_CLAUSE_SCHEDULE, OMP_CLAUSE_NOWAIT, + OMP_CLAUSE_ORDERED, OMP_CLAUSE_DEFAULT): Define. + * print-tree.c (print_node): Dump DECL_VALUE_EXPR. + * tree-ssa-dce.c (find_control_dependence): Do not assume that + ENTRY_BLOCK_PTR->next_bb == single_succ (ENTRY_BLOCK_PTR). + * tree-nested.c (convert_call_expr): Call walk_body on OMP_BODY for + OpenMP directives. + (struct nesting_info): Add field_map, + suppress_expansion, debug_var_chain. + (create_nesting_tree): Initialize them. + (lookup_field_for_decl): Use field_map. + (get_nonlocal_debug_decl, get_local_debug_decl): New. + (convert_local_omp_clauses): New. + (finalize_nesting_tree_1): Add debug_var_chain to toplevel block. + (walk_body): Split out of walk_function. + (convert_nonlocal_omp_clauses, convert_local_omp_clauses): New. + (convert_nonlocal_reference): Handle omp statements. + (convert_local_reference): Likewise. + (unnest_nesting_tree_1): Split out of finalize_nesting_tree_1. + (unnest_nesting_tree): New. + (lower_nested_functions): Call it. + (insert_field_into_struct): Make extern. + (struct walk_stmt_info): Move to tree-gimple.h. + (walk_stmts): Make extern. + * omp-builtins.def: New file. + * tree-iterator.c (expr_only): Clarify comment. + * c-common.h (pushdecl_top_level, pushdecl, + build_modify_expr, build_indirect_ref, + c_finish_omp_master, c_finish_omp_critical, + c_finish_omp_ordered, c_finish_omp_barrier, + c_finish_omp_atomic, c_finish_omp_flush, + c_finish_omp_for, c_split_parallel_clauses, + omp_clause_default_kind, c_omp_sharing_predetermined, + c_omp_remap_decl): Declare. + * Makefile.in (BUILTINS_DEF): Add omp-builtins.def. + (OBJS-common): Add omp-low.o. + (c-omp.o, omp-low.o): Add. + (gimplify.o): Add dependency on $(OPTABS_H). + (GTFILES): Add omp-low.c. + (gt-stringpool.h): Add. + * tree-cfg.c (set_bb_for_stmt): Do not update the + block-to-labels map if we are currently expanding to RTL. + (tree_node_can_be_shared): Remove unnecessary CONSTANT_CLASS_P + checks. + Handle IDENTIFIER_NODE. + (tree_verify_flow_info): Do not ICE when emitting error + messages about invalid labels. + (dump_function_to_file): Reset CFUN before emitting the body + of the function. + (debug_function): New. + * passes.c (init_optimization_passes): Schedule + pass_lower_omp. + * langhooks-def.h (lhd_omp_predetermined_sharing, + lhd_omp_assignment, lhd_omp_firstprivatize_type_sizes): + Declare. + (LANG_HOOKS_OMP_FIRSTPRIVATIZE_TYPE_SIZES): Define. + (LANG_HOOKS_FOR_TYPES_INITIALIZER): Use it. + (LANG_HOOKS_OMP_PRIVATIZE_BY_REFERENCE, + LANG_HOOKS_OMP_PREDETERMINED_SHARING, + LANG_HOOKS_OMP_DISREGARD_VALUE_EXPR, + LANG_HOOKS_OMP_PRIVATE_DEBUG_CLAUSE, + LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR, + LANG_HOOKS_OMP_CLAUSE_COPY_CTOR, + LANG_HOOKS_OMP_CLAUSE_ASSIGN_OP, + LANG_HOOKS_OMP_CLAUSE_DTOR): Define. + (LANG_HOOK_DECLS): Use them. + +2006-01-18 Dmitry Kurochkin + Richard Henderson + Jakub Jelinek + Diego Novillo + + * c-parser.c (pragma_omp_clause): Define. + (c_parser_declaration_or_fndef): Document OpenMP syntax. + (c_parser_compound_statement): Likewise. + (c_parser_statement): Likewise. + (c_parser_pragma): Handle omp pragmas. + (OMP_FOR_CLAUSE_MASK, OMP_SECTIONS_CLAUSE_MASK, + OMP_PARALLEL_CLAUSE_MASK, OMP_SINGLE_CLAUSE_MASK): Define. + (c_parser_omp_clause_name, check_no_duplicate_clause, + c_parser_omp_variable_list, + c_parser_omp_var_list_parens, c_parser_omp_clause_copyin, + c_parser_omp_clause_copyprivate, + c_parser_omp_clause_default, + c_parser_omp_clause_firstprivate, c_parser_omp_clause_if, + c_parser_omp_clause_lastprivate, + c_parser_omp_clause_nowait, + c_parser_omp_clause_num_threads, + c_parser_omp_clause_ordered, c_parser_omp_clause_private, + c_parser_omp_clause_reduction, + c_parser_omp_clause_schedule, c_parser_omp_clause_shared, + c_parser_omp_all_clauses, c_parser_omp_structured_block, + c_parser_omp_atomic, c_parser_omp_barrier, + c_parser_omp_critical, c_parser_omp_flush, + c_parser_omp_for_loop, c_parser_omp_for, + c_parser_omp_master, c_parser_omp_ordered, + c_parser_omp_sections_scope, c_parser_omp_sections, + c_parser_omp_parallel, c_parser_omp_single, + c_parser_omp_construct, c_parser_omp_threadprivate): New. + * c-pragma.c (init_pragma): Do omp pragma registration here. + * c.opt (fopenmp): New flag. + +2006-01-18 Eric Christopher + + * gcc.c (GOMP_SELF_SPECS): Bracket in #ifndef/#endif. + * config/darwin.h (GOMP_SELF_SPECS): Define. + +2006-01-18 Kazu Hirata + + * rtl.h: Remove the prototype for reg_alloc. + +2006-01-18 John David Anglin + + PR target/25731 + * config.gcc (hppa*-*-linux*, hppa[12]*-*-hpux10*, hppa*64*-*-hpux11*, + hppa[12]*-*-hpux11*): Override default shared libgcc version for both + sjlj and dwarf2 exception handling. + * pa/t-hpux-shlib (SHLIB_SOVERSION): New make variable. + Rework to allow overriding SHLIB_EXT and SHLIB_SOVERSION. + * pa/pa.c (function_value): Treat complex and vector types as + aggregates. + (function_arg): Likewise. Only pass scalar floats in the floating + point argument registers. + * pa/t-slibgcc-dwarf-ver: New file. + * pa/t-slibgcc-sjlj-ver: New file. + * pa/t-slibgcc-elf-ver: Delete file. + +2006-01-19 Alan Modra + + * config/rs6000/rs6000.c (rs6000_assemble_integer): Correct + unlikely_test_section_p test. + +2006-01-18 Kazu Hirata + + * mode-switching.c (optimize_mode_switching): Make it static. + * basic-block.h: Remove the prototype for + optimize_mode_switching. + + * modulo-sched.c (sms_schedule): Make it static. + * rtl.h: Remove the prototype for sms_schedule. + + * postreload-gcse.c (gcse_after_reload_main): Make it static. + * rtl.h: Remove the prototype for gcse_after_reload_main. + + * reg-stack.c (reg_to_stack): Make it static. + * rtl.h: Remove the prototype for reg_to_stack. + + * regrename.c (regrename_optimize, copyprop_hardreg_forward): + Make them static. + * rtl.h: Remove the prototypes for regrename_optimize and + copyprop_hardreg_forward. + +2006-01-18 Eric Botcazou + + * config/alpha/alpha.c (alpha_split_tfmode_pair): Rename into + alpha_split_tmode_pair. Add 'mode' and 'fixup_overlap' arguments. + Test against the appropriate null constant for the mode. + If 'fixup_overlap' is true, swap the operands if they overlap. + (alpha_split_tfmode_frobsign): Adjust call to alpha_split_tfmode_pair. + * config/alpha/alpha-protos.h (alpha_split_tfmode_pair): Rename into + alpha_split_tmode_pair and adjust for above change. + * config/alpha/alpha.md (movtf_internal): Adjust call to + alpha_split_tfmode_pair and rely on it to swap the operands. + (movti_internal): New insn and post-reload splitter. + (movti): New expander. + +2006-01-18 Philippe De Muyter + + * config/m68k/m68k.md (*addsi3_5200): Allow addq/subq to memory + operands. + +2006-01-18 Kazu Hirata + + * rtlanal.c (global_reg_mentioned_p_1, + global_reg_mentioned_p): Remove. + * rtl.h: Remove the prototype for global_reg_mentioned_p. + + * flow.c (initialize_uninitialized_subregs): Make it static. + * rtl.h: Remove the prototype for + initialize_uninitialized_subregs. + + * function.c (instantiate_virtual_regs): Make it static. + * function.h: Remove the prototype for + instantiate_virtual_regs. + + * regmove.c (regmove_optimize, combine_stack_adjustments): + Make them static. + * rtl.h: Remove the prototypes for regmove_optimize and + combine_stack_adjustments. + +2006-01-17 Roger Sayle + + * config/i386/i386.c (COSTS_N_BYTES): New macro. + (size_cost): Encode costs in bytes so that a reg-reg addition is + equivalent to COSTS_N_INSNS(1). + (override_options): Use the size_cost.branch_cost as the default + ix86_branch_cost when optimizing for size. + +2006-01-18 Ben Elliston + + * Makefile.in (D32PBIT_FUNCS): New. + (D64PBIT_FUNCS, D128PBIT_FUNCS): Likewise. + (libgcc.mk): Set D32PBIT, D64PBIT, D128PBIT, D32PBIT_FUNCS, + D64PBIT_FUNCS and D128PBIT_FUNCS. + (LIBGCC_DEPS): Include $(D32PBIT), $(D64PBIT), $(D128PBIT). + * mklibgcc.in Bring in the DFP support code if D32PBIT, D64PBIT or + D128PBIT are set. + (decnumber_dep): Define. + * doc/libgcc.texi (Decimal float library routines): New node. + * config/dfp-bit.h, config/dfp-bit.c: New files. + +2006-01-18 Ben Elliston + + * expr.c (emit_move_change_mode): Always adjust addresses, not + just during reload. Copy replacements only during reload. + (emit_move_insn_1): Move MODE_DECIMAL_FLOAT modes by invoking + emit_move_via_integer. + +2006-01-17 Shantonu Sen + + * Makefile.in (check-%, check-consistency): Use $${srcdir} + instead of $(srcdir) and ${srcdir}. + +2006-01-17 Richard Earnshaw + + PR target/592 + PR middle-end/11135 + * arm.h (struct machine_function): Add pic_reg. + * arm.c (arm_pic_register): Make unsigned. + (arm_override_options): Only set arm_pic_register if + TARGET_SINGLE_PIC_BASE. + (use_return_insn): Only test for a pic register if it is fixed. + (arm_compute_save_reg0_reg12_mask): Likewise. + (thumb_compute_save_reg_mask): Likewise. + (legitimate_pic_operand): Factor out some known invariants. + (legitimize_pic_address): If we don't have a fixed pic register, + then set up a pseudo in the function entry sequence. Handle the + pic base being in a pseudo. + (arm_load_pic_register): Handle the pic register being in a pseudo. + (arm_expand_prologue): Only set up the pic register if it is fixed. + (thumb_expand_prologue): Likewise. + * arm.md (pic_load_addr_based): Handle the pic base being a pseudo. + (pic_load_addr_based_insn): Likewise. + (builtin_setjmp_receiver): Don't restore the pic base if it isn't + fixed. + +2006-01-18 Ben Elliston + + * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Reject + decimal float modes for all floating point registers. + + * config/rs6000/predicates.md (reg_or_mem_operand): Pair up + match_code "mem" with match_test "macho_lo_sum_memory_operand". + +2006-01-17 Jakub Jelinek + + PR c/25682 + * c-typeck.c (build_unary_op): Fold offsetof-like expressions + even when the pointer is not NULL. + +2006-01-16 Ian Lance Taylor + + * common.opt (ftoplevel-reorder): New option. + * cgraph.c (cgraph_asm_nodes): New global variable. + (cgraph_asm_last_node): New static variable. + (cgraph_order): New global variable. + (cgraph_create_node): Set new order field. + (cgraph_varpool_node): Likewise. + (decide_is_variable_needed): Return true if not + flag_toplevel_reorder. + (cgraph_add_asm_node): New function. + * cgraph.h (struct cgraph_node): Add order field. + (struct cgraph_varpool_node): Add order field. + (struct cgraph_asm_node): Define. + (cgraph_asm_nodes, cgraph_order): Declare. + (cgraph_add_asm_node): Declare. + * cgraphunit.c (cgraph_varpool_assemble_decl): New static + function. + (cgraph_varpool_assemble_pending_decls): Call it. + (cgraph_output_pending_asms): New static function. + (cgraph_finalize_compilation_unit): Call it. + (struct cgraph_order_sort): Define. + (cgraph_output_in_order): New static function. + (cgraph_optimize): Call cgraph_output_pending_asms. Add code for + !flag_toplevel_reorder case. + * c-parser.c: Include "cgraph.h". + (c_parser_asm_definition): Call cgraph_add_asm_node rather than + assemble_asm. + * Makefile.in (CRTSTUFF_CFLAGS): Use -fno-toplevel-reorder rather + than -fno-unit-at-a-time. + * doc/invoke.texi (Option Summary): Mention + -fno-toplevel-reorder. + (Optimize Options): Document -fno-toplevel-reorder. Mention it in + -funit-at-a-time documentation. + +2006-01-17 Hans-Peter Nilsson + Kazu Hirata + + * Makefile.in (FUNCTION_H, LAMBDA_H): Use $(TREE_H), not tree.h. + +2006-01-17 Kazu Hirata + + * Makefile.in (FUNCTION_H): New. Use it instead of + function.h throughout the file. + * function.h: Include tree.h. + +2006-01-17 Ben Elliston + + * recog.c: Separate some functions with whitespace. + +2006-01-16 Richard Henderson + + Merge from gomp branch: + * Makefile.in (TREE_INLINE_H): New. Use it as needed. + * tree-inline.h (struct copy_body_data): Move from tree-inline.c + and rename from struct inline_data. Rename callee* to dst*; + caller* to src*; add copy_decl hook, transform_call_graph_edges, + transform_new_cfg, transform_return_to_modify, and + transform_lang_insert_block flags; remove cloning_p, versioning_p, + update_clones_p. + (copy_body_r, insert_decl_map, remap_decl, remap_type): Declare. + (copy_decl_for_dup): Remove. + * tree-inline.c (struct inline_data): Move to header. + (insert_decl_map): Export. + (remap_decl): Update for member name changes. Use copy_decl hook. + Allow for replacement to be a non-decl. Remove dead code. + (remap_type_1): Check for existing mapping. + (remap_type): Export. + (remap_decls): Update for member name changes. + (remap_block, copy_bb, copy_cfg_body, copy_generic_body): Likewise. + (copy_body, setup_one_parameter, declare_return_variable): Likewise. + (expand_call_inline, optimize_inline_calls, clone_body): Likewise. + (copy_tree_r, mark_local_for_remap_r, unsave_expr_now): Likewise. + (tree_function_versioning, build_duplicate_type): Likewise. + (copy_body_r): Likewise. Export. + (copy_decl_for_dup): Split into ... + (copy_decl_for_dup_finish, copy_decl_to_var, + copy_decl_no_change, copy_decl_maybe_to_var): ... these. + (replace_ref_tree, inlining_p): Remove. + +2006-01-16 Kazu Hirata + + * ifcvt.c (if_convert): Make it static. + * rtl.h: Remove the prototype for if_convert. + + * local-alloc.c (local_alloc): Make it static. + * rtl.h: Remove the prototype for local_alloc. + + * loop.c (loop_optimize): Make it static. + * cfgloop.h: Remove the prototype for loop_optimize. + * rtl.h: Likewise. + +2006-01-16 DJ Delorie + + * reload.c (reg_overlap_mentioned_for_reload_p): Handle subregs of + mems. + +2006-01-16 John David Anglin + + * pa.md: Disparage copies between general and floating-point registers + in 32-bit move patterns. + +2006-01-16 H.J. Lu + + PR testsuite/25741 + * Makefile.in (check-%): Depend on site.exp instead of + $(TESTSUITEDIR)/site.exp. Run "runtest" in separate language + directories. + +2006-01-16 Kazu Hirata + + * global.c (global_alloc): Make it static. + * rtl.h: Remove the prototype for global_alloc. + +2006-01-16 Richard Guenther + + * tree-ssa-alias.c (struct used_part): Add write_only field. + (get_or_create_used_part_for): Initialize it to true. + (create_overlap_variables_for): Don't create structure variables + for structures that only are written to. + (find_used_portions): Handle MODIFY_EXPR to track whether a + structure is only written to. + +2006-01-16 Kazu Hirata + + * bb-reorder.c (partition_hot_cold_basic_blocks): Make it + static. + * basic-block.h: Remove the prototype for + partition_hot_cold_basic_blocks. + +2006-01-16 Rafael Ãvila de EspÃ�­ndola + + * cppspec.c (lang_specific_spec_functions): Remove. + * gcc.c (lookup_spec_function): Use static_spec_functions directly. + * gcc.h (lang_specific_spec_functions): Remove. + * gccspec.c (lang_specific_spec_functions): Remove. + +2006-01-16 Paolo Bonzini + + * combine.c (record_value_for_reg): Invalidate registers + if INSN is null. + (record_dead_and_set_regs_1): Likewise, by passing them to + record_value_for_reg. + (record_dead_and_set_regs): Invalidate stores made by a + call. We do not combine across a call, but we still + relied on equivalences. + +2006-01-16 Eric Botcazou + + * tree-vrp.c (extract_range_from_binary_expr): Cope with + vrp_int_const_binop returning non-constant nodes. + +2006-01-16 Paul Brook + + * config/m68k/m68k.c (output_move_const_into_data_reg): + Output correct mnemonic for mvz and mvs. + +2006-01-16 Gabor Loki + + * rtl-factoring.c: Add sequence abstraction algorithm. + * cfgcleanup.c (outgoing_edges_match): Extra checks. + (try_crossjump_to_edge): Avoid deleting preserve label when redirecting + ABNORMAL edges. + (block_has_preserve_label): New function. + * common.opt: Register new pass. + * Makefile.in: Ditto. + * passes.c: Ditto. + * timevar.def: Ditto. + * tree-pass.h: Ditto. + * emit-rtl.c (make_jump_insn_raw): Remove forward decl. + * rtl.h (make_jump_insn_raw): Add forward decl. + * doc/invoke.texi: Add documentation for -frtl-abstract-sequences. + +2006-01-16 Eric Botcazou + Roger Sayle + + * fold-const.c (fold_minmax): New static function. + (fold_binary) : Call it. + : Likewise. + * stor-layout.c (place_field): Use DECL_SIZE consistently + in the computation of the new record size. + +2006-01-16 Kazu Hirata + + * cse.c (cse_condition_code_reg): Make it static. + * rtl.h: Remove the prototype for cse_condition_code_reg. + + * combine.c (combine_instructions): Make it static. + * rtl.h: Remove the prototype for combine_instructions. + +2006-01-15 John David Anglin + + PR target/25168 + * tree.c (get_file_function_name_long): Concatenate the first global + object name with a string derived from the input filename of the object + for type "F". + +2006-01-16 Ben Elliston + + * config/i386/winnt-stubs.c: Update FSF address. + * config/xtensa/ieee754-df.S: Ditto. + * config/xtensa/ieee754-sf.S: Ditto. + +2006-01-14 Ian Lance Taylor + + * ifcvt.c (noce_init_if_info): New static function, broken out of + noce_process_if_block. + (noce_process_if_block): Call noce_init_if_info. + (check_cond_move_block): New static function. + (cond_move_process_if_block): New static function. + (process_if_block): Call cond_move_process_if_block. + +2006-01-15 Kazu Hirata + + * cselib.c (hash_table): Rename to cselib_hash_table. + (cselib_clear_table, discard_useless_values, + remove_useless_values, cselib_lookup_mem, cselib_lookup, + cselib_init, cselib_finish): Adjust uses of hash_table. + +2006-01-14 Kazu Hirata + + PR tree-optimization/25485 + * tree-vrp.c (extract_range_from_binary_expr): Handle cases + where one of the operands of TRUTH_AND_EXPR and TRUTH_OR_EXPR + is known to be false and true, respectively. + +2006-01-14 Richard Guenther + + PR tree-optimization/22548 + PR tree-optimization/22555 + PR tree-optimization/22501 + * Makefile.in (tree-ssa-structalias.o): Depend on $(PARAMS_H). + * params.def (salias-max-array-elements): New parameter. + * params.h (SALIAS_MAX_ARRAY_ELEMENTS): Define. + * doc/invoke.texi (salias-max-array-elements): Document. + * tree-flow-inline.h (var_can_have_subvars): We also handle + arrays now. + * tree-ssa-alias.c (find_used_portions): Handle ARRAY_REF like + COMPONENT_REF. + * tree-ssa-structalias.c (params.h): Include. + (push_fields_onto_fieldstack): Handle ARRAY_TYPE. + (find_func_aliases): Handle multiple constraints from ARRAY_REF. + (get_constraint_for): For ADDR_EXPR operating on something + containing an ARRAY_REF, add all subvars to the solution. + (handle_ptr_arith): Handle ARRAY_TYPE like RECORD_TYPE types. + * tree-ssa-operands.c (parse_ssa_operands): Handle ARRAY_REF + for creating MUST_DEFs. + (get_expr_operands): Treat ARRAY_REF like COMPONENT_REF wrt subvars. + +2006-01-14 Zdenek Dvorak + + * tree-ssa-loop-niter.c (number_of_iterations_cond): Split into several + functions. + (number_of_iterations_ne, number_of_iterations_lt_to_ne, + assert_no_overflow_lt, assert_loop_rolls_lt, number_of_iterations_lt, + number_of_iterations_le): New functions. + (number_of_iterations_special): Removed. + (number_of_iterations_exit): Do not use number_of_iterations_special. + * tree.c (unsigned_type_for): Always return integer type. + +2006-01-14 Steven Bosscher + Richard Guenther + + PR rtl-optimization/24257 + * gcse.c (find_moveable_store): Only consider a store movable + when the SET_SRC of the insn can be assigned to a register. + +2006-01-14 Ian Lance Taylor + + * tree.c (tree_not_class_check_failed): New function. + * tree.h (NON_TYPE_CHECK): Call tree_not_class_check_failed. + (tree_not_class_check_failed): Declare. + +2006-01-13 Ian Lance Taylor + + * reload1.c (do_output_reload): Add assertion rejecting a + CALL_INSN. + +2006-01-13 Adam Nemet + + * combine.c (struct reg_stat): Add new fields truncation_label and + truncated_to_mode. + (record_value_for_reg): Reset truncated_to_mode. + (record_truncated_value): New function. + (check_promoted_subreg): Call it. Rename to check_conversions. + (combine_instructions): Rename check_promoted_subreg to + check_conversions. + (reg_truncated_to_mode): New function. + (make_extraction): Use it. Check TRULY_NOOP_TRUNCATION. + (gen_lowpart_or_truncate): New function. + (force_to_mode): Use it instead of gen_lowpart. + +2006-01-13 Diego Novillo + + * tree-ssa-alias.c (add_type_alias): Fix typo. Test whether + VAR is a tag, not its type tag. + +2006-01-13 Alexandre Oliva + + * config/i386/sse.md (*vec_extractv2di_1_sse2): Reorder + alternatives to match style of other entries. + (*vec_extractv2di_1_sse): Likewise. Fix mode attr. + +2006-01-13 Daniel Berlin + + PR tree-optimization/25771 + * tree-ssa-pre.c (insert_extra_phis): Don't insert merges of abnormal + SSA_NAMES. + +2006-01-13 Andrew Pinski + + PR tree-opt/24365 + * tree-inline.c (declare_return_variable): If the return variable + was marked as a non gimple complex, set the return slot variable + to be a non gimple comple variable. + +2006-01-13 Richard Guenther + + * builtins.c (expand_builtin_sincos): New function. + (expand_builtin_mathfn_3): Remove dead code, sin and cos + do not set errno. + (expand_builtin): Expand sincos using expand_builtin_sincos. + +2006-01-12 DJ Delorie + + * config/m32c/shift.md: Rewrite: Allow arbitrary operands for + shift counts, separate SI shifts for m32c vs m16c, pass shift type + so that constant shifts can be split. + * config/m32c/m32c.c (m32c_const_ok_for_constraint_p): Add In6. + (m32c_valid_pointer_mode): Make static. + (shift_gen_func_for): New. + (m32c_prepare_shift): Use it. Split large const shifts into + multiple shifts. + * config/m32c/predicates.md (shiftcount_operand): Allow more + general operands. + (longshiftcount_operand): New. + * doc/md.texi (Machine Constraints): Document In6. + +2006-01-13 Ben Elliston + + * doc/tm.texi (Data Output): Add REAL_VALUE_TO_TARGET_DECIMAL32, + REAL_VALUE_TO_TARGET_DECIMAL64 and REAL_VALUE_TO_TARGET_DECIMAL128 + documentation. + +2006-01-12 Daniel Berlin + + * tree-ssa-operands.c (add_call_clobber_ops): Use SFT_PARENT_VAR + to try to avoid clobbering pieces of structures when we know + something about the whole structure. + * tree-ssa-alias.c (create_sft): Set SFT_PARENT_VAR + +2006-01-13 Ben Elliston + + * doc/rtl.texi (Insns): Remove statement that libcalls cannot + return in memory, as this is no limitation is no longer present. + +2006-01-12 DJ Delorie + + * config/m32c/addsub.md (addhi3): Add two more alternatives, for + mova with fb, and for fb+0 -> An. + + * config/m32c/mov.md (peephole2): Fix enabling logic. + + * config/m32c/m32c.h (CTOR_LIST_BEGIN, CTOR_LIST_END, + DTOR_LIST_BEGIN, DTOR_LIST_END, CTORS_SECTION_ASM_OP, + DTORS_SECTION_ASM_OP, INIT_ARRAY_SECTION_ASM_OP, + FINI_ARRAY_SECTION_ASM_OP): Define. + + * config/m32c/m32c.c (m32c_legitimize_address): Remove temporary + variable. + (m32c_legitimize_reload_address): New logic to reload FB to An. + (m32c_output_reg_push): Add newline. + (m32c_output_reg_pop): Likewise. + +2006-01-12 Ulrich Weigand + + * struct-equiv.c (find_dying_inputs): Fix off-by-one bug. + +2006-01-11 Andrew Pinski + + * config/i386/darwin.h (SUBTARGET_ENCODE_SECTION_INFO): Define. + +2006-01-11 Kazu Hirata + + * config/sh/predicates.md (sh_rep_vec): Add parallel to + match_code. + +2006-01-11 Ben Elliston + + * rtlanal.c (find_reg_note): Assert insn is not null. + +2006-01-11 Kenneth Zadeck + + * df-scan.c (df_hard_reg_init): Move declaration of i outside + ifdef. + +2006-01-11 Jeff Law + + * tree-ssa-threadupdate.c (threaded_edges): New VEC to + hold edge pairs. + (mark_threaded_blocks, register_jump_thread): New functions. + (thread_through_all_blocks): Remove unwanted argument. No + longer rely on e->aux to communicate thread target info. + Call mark_threaded_blocks. Release the threaded_blocks + bitmap and threaded_edges vector when complete. + * tree-ssa-dom.c (struct edge_info): Remove redirection_target field. + (threaded_blocks): Remove. + (tree_ssa_dominator_optimize): Remove initialization and + finalization of threaded_blocks. Simplify call to + thread_through_all_blocks. + (thread_across_edge): Call register_jump_thread rather than + storing thread information into e->aux. + (free_all_edge_infos): Simplify now that e->aux is no longer + used to communicate with thread_through_all_blocks. + * tree-flow.h (thread_through_all_blocks): Update prototype. + (register_jump_thread): Prototype. + +2006-01-11 Kazu Hirata + + * df-core.c (df_compact_blocks, df_bb_replace): Use + SET_BASIC_BLOCK instead of BASIC_BLOCK. + +2006-01-11 Richard Guenther + + PR tree-optimization/25734 + * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do not + stop propagation after successful propagation to the LHS. + +2006-01-11 Kazu Hirata + + * basic-block.h (control_flow_graph): Change the type of + x_basic_block_info to VEC(basic_block,gc) *. + (BASIC_BLOCK_FOR_FUNCTION, BASIC_BLOCK): Adjust the uses of + basic_block_info. + (SET_BASIC_BLOCK): New. + * cfg.c (compact_blocks, expunge_block): Use SET_BASIC_BLOCK + instead of BASIC_BLOCK when assigning to BASIC_BLOCK. + * cfgbuild.c (find_basic_blocks): Likewise. + * cfglayout.c (fixup_reorder_chain): Likewise. + * cfgrtl.c (create_basic_block_structure, + rtl_create_basic_block): Likewise. + * ifcvt.c (find_if_case_1): Likewise. + * tree-cfg.c (init_empty_tree_cfg, build_tree_cfg, create_bb): + Likewise. + +2006-01-11 Kenneth Zadeck + + * Makefile.in: Removed rotted odf.c entry. + +2006-01-11 Hans-Peter Nilsson + + PR target/25706 + * config/cris/cris.md ("*extopqihi_side", "*extopsi_side") + ("*extopsi_swap_side_biap", "*extopsi_swap_side", + ("*extopqihi", "*extopsi", "*extopsi_swap"): Use %E + output pattern modifier, not %e. + * config/cris/cris.c (cris_op_str): Update comment about pattern + modifier. + (cris_print_operand) : Clear cris_output_insn_is_bound + before falling through into... + : Redefined from old 'e' case. + +2006-01-11 Jan Hubicka + + PR target/25042 + * i386.c (ix86_init_mmx_sse_builtins): Do not delcare float128 + +2006-01-11 Jan Hubicka + + * i386.h (TARGET_DECOMPOSE_LEA): Kill. + * i386.c (x86_decompose_lea): Kill. + (ix86_rtx_costs): Kill. + +2006-01-11 Jan Hubicka + + * cgraph.c (cgraph_insert_node_to_hashtable): New function. + * cgraph.h (cgraph_node): Add inline_decl. + (cgraph_insert_node_to_hashtable): Declare. + (save_inline_function_body): Declare. + * cgraphunit.c (verify_cgraph_node): Inline edges might point to inline + clones. + (cgraph_preserve_function_body_p): Do not presrve when dump is enabled. + (cgraph_function_versioning): Update call of tree_function_versioning. + (save_inline_function_body): New function. + * function.h (struct function): Kill saved_eh, saved_cfg, saved_args, + saved_static_chain_decl, saved_blocks and saved-unexpanded_var_list. + * ipa-inline.c (cgraph_mark_inline_edge): Look for inline clones. + (cgraph_default_inline_p): Likewise. + (cgraph_decide_inlining_incrementally): Likewise. + * tree-inline.c (inline_data): Kill saving_p add update_clones_p. + (copy_bb): Kill saving; do updating of clones. + (copy_cfg_body): Kill saving. + (initialize_inlined-parameters): Likewise. + (expand_call_inline): Likewise. + (save_body): Kill. + (tree_function_versioning): New parameter "update_clones". + (inlining_p): Kill saving. + * tree-inline.h (tree_function_versioning): Update prototype. + * tree-optimize.c (tree_rest_of_compilation): Use clonning instead of + saving. + +2006-01-11 Ian Lance Taylor + + * combine.c (struct undo): Remove is_int. Enumify types of undos. + Allow undoing set of machine mode. + (do_SUBST): Use enums instead of is_int. + (do_SUBST_MODE): New function. + (SUBST_MODE): New macro. + (try_combine): Use SUBST_MODE/PUT_MODE instead of generating a new + reg and trying to replace reg_regno_rtx with a new register. + (undo_all): Use new enums, handle undoing a PUT_MODE change. + (simplify_set): Use SUBST_MODE. + (distribute_notes): Remove code that tried to update reg notes + for regno_reg_rtx changes. + +2006-01-11 Paolo Bonzini + + PR tree-optimization/23109 + PR tree-optimization/23948 + PR tree-optimization/24123 + + * Makefile.in (tree-ssa-math-opts.o): Adjust dependencies. + * tree-cfg.c (single_noncomplex_succ): New. + * tree-flow.h (single_noncomplex_succ): Declare it. + * tree-ssa-math-opts.c (enum place_reciprocal): Remove. + * tree-ssa-math-opts.c (enum place_reciprocal): Remove. + (struct occurrence, occ_head, occ_pool, is_divide_by, compute_merit, + insert_bb, register_division_in, insert_reciprocals, + replace_reciprocal, free_bb): New. + (execute_cse_reciprocals_1): Rewritten. + (execute_cse_reciprocals): Adjust calls to execute_cse_reciprocals_1. + Do not commit any edge insertion. Always compute dominators and + create the allocation pool. + * target-def.h (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): New. + * target.h (struct gcc_target): Add min_divistions_for_recip_mul. + * targhooks.c (default_min_divistions_for_recip_mul): New. + * targhooks.h (default_min_divistions_for_recip_mul): New prototype. + * passes.c (init_optimization_passes): Run recip after tree loop + optimizations. + * doc/tm.texi (Misc): Document TARGET_MIN_DIVISIONS_FOR_RECIP_MUL. + +2006-01-11 Danny Berlin + Kenneth Zadeck + + * df.h (DF_SCAN, DF_RU, DF_RD, DF_LR, DF_UR, DF_UREC, DF_CHAIN, + DF_RI, DF_LAST_PROBLEM_PLUS1, DF_DU_CHAIN, DF_UD_CHAIN, + DF_REF_TYPE_NAMES, DF_HARD_REGS, DF_EQUIV_NOTES, DF_SUBREGS, + DF_SCAN_BB_INFO, DF_RU_BB_INFO, DF_RD_BB_INFO, DF_LR_BB_INFO, + DF_UR_BB_INFO, DF_UREC_BB_INFO, DF_LIVE_IN, DF_LIVE_OUT, + DF_RA_LIVE_IN, DF_RA_LIVE_OUT, DF_UPWARD_LIVE_IN, + DF_UPWARD_LIVE_OUT, DF_REF_REAL_REG, DF_REF_REGNO, + DF_REF_REAL_LOC, DF_REF_REG, DF_REF_LOC, DF_REF_BB, DF_REF_BBNO, + DF_REF_INSN, DF_REF_INSN_UID, DF_REF_TYPE, DF_REF_CHAIN, + DF_REF_ID, DF_REF_FLAGS, DF_REF_NEXT_REG, DF_REF_PREV_REG, + DF_REF_NEXT_REF, DF_REF_DATA, DF_REF_REG_DEF_P, DF_REF_REG_USE_P, + DF_REF_REG_MEM_STORE_P, DF_REF_REG_MEM_LOAD_P, DF_REF_REG_MEM_P, + DF_DEFS_SIZE, DF_DEFS_GET, DF_DEFS_SET, DF_USES_SIZE, DF_USES_GET, + DF_USES_SET, DF_REG_SIZE, DF_REG_DEF_GET, DF_REG_DEF_SET, + DF_REG_USE_GET, DF_REG_USE_SET, DF_REGNO_FIRST_DEF, + DF_REGNO_LAST_USE, DF_INSN_SIZE, DF_INSN_GET, DF_INSN_SET, + DF_INSN_CONTAINS_ASM, DF_INSN_LUID, DF_INSN_DEFS, DF_INSN_USES, + DF_INSN_UID_GET, DF_INSN_UID_LUID, DF_INSN_UID_DEFS, + DF_INSN_UID_USES, DF_SCAN_INITIAL, DF_SCAN_GLOBAL, + DF_SCAN_POST_ALLOC): New macros. + (df_flow_dir, df_ref_type, df_ref_flags, df_alloc_function, + df_free_bb_function, df_local_compute_function, df_init_function, + df_dataflow_function, df_confluence_function_0, + df_confluence_function_n, df_transfer_function, + df_finalizer_function, df_free_function, df_dump_problem_function, + df_problem, dataflow, df_insn_info, df_reg_info, df_ref, df_link, + df_ref_info, df, df_map, df_scan_bb_info, df_ru_bb_info, + df_ru_bb_info, df_rd_bb_info, df_lr_bb_info, df_ur_bb_info, + df_urec_bb_info, ) New types. + (df_invalidated_by_call, df_all_hard_regs, df_state) New public + variables. + (df_init, df_add_problem, df_set_blocks, df_finish, df_analyze, + df_analyze_simple_change_some_blocks, + df_analyze_simple_change_one_block, df_compact_blocks, + df_bb_replace, df_bb_regno_last_use_find, + df_bb_regno_first_def_find, df_bb_regno_last_def_find, + df_insn_regno_def_p, df_find_def, df_find_use, + df_iterative_dataflow, df_dump, df_chain_dump, df_refs_chain_dump, + df_regs_chain_dump, df_insn_debug, df_insn_debug_regno, + df_regno_debug, df_ref_debug, debug_df_insn, debug_df_regno, + debug_df_reg, debug_df_defno, debug_df_useno, debug_df_ref, + debug_df_chain, df_get_dependent_problem, df_chain_create, + df_chain_unlink, df_chain_copy, df_get_live_in, df_get_live_out, + df_grow_bb_info, df_chain_dump, df_print_bb_index, + df_ru_add_problem, df_ru_get_bb_info, df_rd_add_problem, + df_rd_get_bb_info, df_lr_add_problem, df_lr_get_bb_info, + df_ur_add_problem, df_ur_get_bb_info, df_urec_add_problem, + df_urec_get_bb_info, df_chain_add_problem, df_ri_add_problem, + df_reg_lifetime, df_scan_get_bb_info, df_scan_add_problem, + df_rescan_blocks, df_ref_create, df_get_artificial_defs, + df_get_artificial_uses, df_reg_chain_create, df_reg_chain_unlink, + df_ref_remove, df_insn_refs_delete, df_refs_delete, + df_reorganize_refs, df_set_state, df_hard_reg_init, + df_read_modify_subreg_p) New public functions. + * df-core.c: The core dataflow solver and glue routines for rtl + dataflow. + (df_init, df_add_problem, df_set_blocks, df_finish, + df_hybrid_search_forward, df_hybrid_search_backward, + df_iterative_dataflow, df_prune_to_subcfg, df_analyze_problem, + df_analyze, df_get_bb_info, df_set_bb_info, df_bb_replace, + df_bb_regno_last_use_find, df_bb_regno_first_def_find, + df_bb_regno_last_def_find, df_insn_regno_def_p, df_find_def, + df_reg_defined, df_find_use, df_reg_used, df_dump, + df_refs_chain_dump, df_regs_chain_dump, df_insn_debug, + df_insn_debug_regno, df_regno_debug, df_ref_debug, debug_df_insn, + debug_df_reg, debug_df_regno, debug_df_ref debug_df_defno, + debug_df_useno, reset_df_after_reload): New functions. + * df-scan.c: The scanning fuctions, once in df.c, completely + rewritten so that they now fully model the functionality of + register usage at the backend. + (df_scan_free_internal, df_scan_get_bb_info, df_scan_set_bb_info, + df_scan_free_bb_info, df_scan_alloc, df_scan_free, df_scan_dump, + df_scan_add_problem, df_grow_reg_info, df_grow_ref_info, + df_grow_insn_info, df_rescan_blocks, df_ref_create, + df_get_artificial_defs, df_get_artificial_uses, + df_reg_chain_create, df_ref_unlink, df_reg_chain_unlink, + df_ref_remove, df_insn_create_insn_record, df_insn_refs_delete, + df_refs_delete, df_reorganize_refs, df_set_state, + df_ref_create_structure, df_ref_record, df_read_modify_subreg_p, + df_def_record_1, df_defs_record, df_uses_record, + df_insn_contains_asm_1, df_insn_contains_asm, df_insn_refs_record, + df_has_eh_preds, df_bb_refs_record, df_refs_record, df_mark_reg, + df_record_exit_block_uses, df_hard_reg_init): New functions. + + * df-problems.c: Seven concrete dataflow problems that use the + scanning in df-scan.c and are solved by the engine in df-core.c. + (df_get_dependent_problem, df_chain_create, df_chain_unlink, + df_chain_copy, df_get_live_in, df_get_live_out, df_grow_bb_info, + df_chain_dump, df_print_bb_index, df_ref_bitmap, df_set_seen, + df_unset_seen, df_ru_get_bb_info, df_ru_set_bb_info, + df_ru_free_bb_info, df_ru_alloc, + df_ru_bb_local_compute_process_def, + df_ru_bb_local_compute_process_use, df_ru_bb_local_compute, + df_ru_local_compute, df_ru_init_solution, df_ru_confluence_n, + df_ru_transfer_function, df_ru_free, df_ru_dump, + df_ru_add_problem, df_rd_get_bb_info, df_rd_set_bb_info, + df_rd_free_bb_info, df_rd_alloc, + df_rd_bb_local_compute_process_def, df_rd_bb_local_compute, + df_rd_local_compute, df_rd_init_solution, df_rd_confluence_n, + df_rd_transfer_function, df_rd_free, df_rd_dump, + df_rd_add_problem, df_lr_get_bb_info, df_lr_set_bb_info, + df_lr_free_bb_info, df_lr_alloc, df_lr_bb_local_compute, + df_lr_local_compute, df_lr_init, df_lr_confluence_0, + df_lr_confluence_n, df_lr_transfer_function, df_lr_free, + df_lr_dump, df_lr_add_problem, df_ur_get_bb_info, + df_ur_set_bb_info, df_ur_free_bb_info, df_ur_alloc, + df_ur_bb_local_compute, df_ur_local_compute, df_ur_init, + df_ur_local_finalize, df_ur_confluence_n, df_ur_transfer_function, + df_ur_free, df_ur_dump, df_ur_add_problem, df_urec_get_bb_info, + df_urec_set_bb_info, df_urec_free_bb_info, df_urec_alloc, + df_urec_mark_reg_change, df_urec_check_earlyclobber, + df_urec_mark_reg_use_for_earlyclobber, + df_urec_mark_reg_use_for_earlyclobber_1, df_urec_bb_local_compute, + df_urec_local_compute, df_urec_init, df_urec_local_finalize, + df_urec_confluence_n, df_urec_transfer_function, df_urec_free, + df_urec_dump, df_urec_add_problem, df_chain_alloc, + df_chain_create_bb_process_use, df_chain_create_bb, + df_chain_finalize, df_chain_free, df_chains_dump, + df_chain_add_problem, df_ri_alloc, df_ri_bb_compute, + df_ri_compute, df_ri_free, df_ri_dump, df_ri_add_problem, + df_reg_lifetime): New functions. + * df.c: Deleted file. + * ddg.c (create_ddg_dep_no_link, build_inter_loop_deps): Made code + consistent with new df api. + * modulo-sched.c (sms_schedule, rest_of_handle_sms, + rest_of_handle_sms): Ditto. + * web.c (unionfind_union, union_defs, entry_register, web_main): + Ditto. + * loop_invariant.c (invariant_for_use, hash_invariant_expr_1, + invariant_expr_equal_p, find_defs, check_dependencies, + find_invariant_insn, find_invariants_to_move, move_invariant_reg, + free_inv_motion_data, move_loop_invariants): Ditto. + * Makefile.in (df.c, df-scan.c df-problems.c df-core.c): + Update dependencies. + (odf.c): Added defective entry that was deleted later in day. + * sched-deps.c (sched_analyze_1): Ditto. + +2006-01-11 Zdenek Dvorak + + * tree-ssa-operands.c (get_expr_operands): Record addressable + variables directly. Do not call add_stmt_operands for CONST_DECLs + and ARRAY_DECLs. + (get_indirect_ref_operands): Remove handling of *(&a + offset) case. + (add_stmt_operands): Handle only objects satisfying SSA_VAR_P. + +2006-01-11 Ben Elliston + + * config/i386/i386.c (ix86_return_in_memory): Fix comment: this + function returns true in the positive case. + +2006-01-10 John David Anglin + + PR target/20754 + * config/pa/pa.md: Create separate 32 and 64-bit move patterns + for SI, DI, SF and DF modes. Add alternatives to copy between + general and floating point registers to the 32-bit patterns. + * config/pa/pa-64.h (SECONDARY_MEMORY_NEEDED_RTX): Delete undefine. + * config/pa/pa.h (SECONDARY_MEMORY_NEEDED_RTX): Delete define. + (SECONDARY_MEMORY_NEEDED): Secondary memory is only needed when + generating 64-bit code. + * config/pa/pa.c (output_move_double): Handle copies between general + and floating registers. + +2006-01-10 Stuart Hastings + + * config/i386/i386.md (set_got): Update. + (set_got_labelled): New. (UNSPEC_LD_MPIC): New. + (builtin_setjmp_receiver): Mach-O support. + * config/i386/darwin.h (TARGET_ASM_FILE_END) Define. + (GOT_SYMBOL_NAME): Define. + (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN): New. + (TARGET_DEEP_BRANCH_PREDICTION): Remove. + * config/i386/i386.c (override_options): Revise for Darwin. + (USE_HIDDEN_LINKONCE): Enable for Mach-O. (ix86_file_end): Mach-O + support. (darwin_x86_file_end): New. (output_set_got): Add label + parameter, revise for Mach-O. (x86_output_mi_thunk): Likewise. + * config/i386/i386-protos.h (output_set_got): Likewise. + * config/darwin.c (machopic_legitimize_pic_address): Update + regs_ever_live[]. + +2006-01-10 Kaz Kojima + + * config/sh/sh.h (SH5_WOULD_BE_PARTIAL_NREGS): Use GET_MODE_SIZE + when MODE isn't BLKmode. + +2006-01-10 Eric Botcazou + + PR rtl-optimization/25367 + * config/sparc/sparc.h (HARD_REGNO_RENAME_OK): New macro. + +2006-01-10 Hans-Peter Nilsson + + PR target/25718 + * config/cris/cris.md ("uminsi3"): Don't use 8- or 16-bit sizes + for a negative bound. + +2006-01-10 Richard Guenther + + * tree-ssa-structalias.c (get_constraint_for_component_ref): + Never override with anything constraint. + +2006-01-10 Jan Beulich + + * config/i386/i386.c (ix86_data_alignment): Don't force alignment to + 256 bits when optimize_size. + +2006-01-10 Jan Beulich + + * config/i386/netware.h (TARGET_SUBTARGET_DEFAULT): Include + MASK_ALIGN_DOUBLE. + * config/i386/nwld.h (LINK_SPEC): Add --extensions:GNU option. + * config/i386/t-nwld (SHLIB_LINK): Insert spaces between expr + arguments. + +2006-01-10 Ben Elliston + + * config/rs6000/predicates.md (easy_fp_constant): Discount decimal + float modes. + * config/rs6000/rs6000.c (rs6000_scalar_mode_supported_p): New. + (TARGET_SCALAR_MODE_SUPPORTED_P): Define. + (USE_FP_FOR_ARG): Reject decimal float modes. + (function_arg_advance): Likewise. + (output_toc): Handle emitting TDmode, DDmode and SDmode constants. + (rs6000_handle_altivec_attribute): Do not permit decimal floating + point types in AltiVec vectors. + (rs6000_function_value): Use GP_ARG_RETURN for decimal floats. + (rs6000_libcall_value): Likewise. + +2006-01-09 Bob Wilson + + * config/xtensa/ieee754-df.S: New file. + * config/xtensa/ieee754-sf.S: New file. + * config/xtensa/t-xtensa (LIB2FUNCS_EXTRA): Remove fp-bit.c & dp-bit.c. + (LIB1ASMFUNCS): Add SFmode and DFmode floating-point functions. + * config/xtensa/lib1funcs.asm: Include ieee754-df.S and ieee754-sf.S. + +2006-01-09 Kazu Hirata + + * config/sh/predicates.md (binary_float_operator, + binary_logical_operator, commutative_float_operator, + equality_comparison_operator, greater_comparison_operator, + less_comparison_operator, logical_operator, + noncommutative_float_operator, shift_operator, + symbol_ref_operand, unary_float_operator): Remove redundant + conditionals. + +2006-01-09 Jeff Law + + * tree-ssa-dom.c (simplify_cond_and_lookup_avail_expr): Remove + code to propagate the RHS of a cast into COND_EXPR_COND. Remove + now unused arguments. Callers updated. + (eliminate_redundant_computations): Remove now unused arguments, + callers updated. + (local_fold): Remove, no longer used. + (find_equivalent_equality_comparison): Removed from tree-ssa-dom.c + and moved to... + * tree-ssa-forwprop.c (find_equivalent_equality_comparison): Here. + (simplify_cond): New function. + (forward_propagate_into_cond): Call simplify_cond. + +2006-01-09 Alexandre Oliva + + * config/i386/sse.md (*vec_extractv2di_1_sse2): New. + (*vec_extractv2di_1_sse): New. + +2006-01-09 Ben Elliston + + * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Typo fix. + +2006-01-08 Richard Guenther + + * tree-ssa-structalias.c (get_constraint_for): Remove + anyoffset argument. + (get_constraint_for_component_ref): Likewise. + (do_deref): Likewise. + (get_constraint_for): Likewise. + (do_structure_copy): Likewise. + (handle_ptr_arith): Likewise. + (find_func_aliases): Likewise. Remove unused need_anyoffset + variable. + +2006-01-08 J"orn Rennecke + Kaz Kojima + + * config/sh/sh.h (CONST_OK_FOR_K16): Define. + (CONST_OK_FOR_K): Add CONST_OK_FOR_K16 case. + (EXTRA_CONSTRAINT_C16): Remove. + (EXTRA_CONSTRAINT_Css, EXTRA_CONSTRAINT_Csu): Define. + (EXTRA_CONSTRAINT_C): Remove EXTRA_CONSTRAINT_C16 case and add + EXTRA_CONSTRAINT_Css and EXTRA_CONSTRAINT_Csu cases. + * config/sh/sh.c (print_operand): Handle unsigned 16-bit symbolic + constants of SHmedia. Handle nested constant expressions of + SHmedia correctly. + (andcosts): Fix the costs for SHmedia constants. + (sh_rtx_costs): Take account of outer_code for SHmedia constants. + * config/sh/sh.md (*movsi_media): Use Css constraint instead of C16. + (*movsi_media_nofpu, *movqi_media, *movhi_media): Likewise. + (*movdi_media, *movdi_media_nofpu, movv8qi_i, movv2hi_i): Likewise. + (movv4hi_i, movv2si_i): Likewise. + (movsi_const): Adjust the second operand of ior so to match with + the Csu constraint. + (movdi_const, movdi_const_32bit): Likewise. + (movdi_const_16bit+1): Don't sign-extend LOW. + (movdi_const_16bit+2): Likewise. Remove the zero_extend and truncate + step. + (*double_shori): Fix the split condition. Use GEN_INT instead + of get_int_mode calls. Mask lower 16-bit of the argument of + the last GEN_INT. + (sym2GOTPLT): Remove. + (symGOTPLT2reg): Replace gen_sym2GOTPLT with gen_rtx_CONST and + gen_rtx_UNSPEC. + * config/sh/predicates.md (arith_operand): Use EXTRA_CONSTRAINT_Css + instead of EXTRA_CONSTRAINT_C16. + +2006-01-07 Ian Lance Taylor + David Edelsohn + + PR rtl-optimization/25662 + * optabs.c (simplify_expand_binop): Use simplify_binary_operation + for constant operands instead of simplify_gen_binary. + * simplify-rtx.c (simplify_gen_binary): Swap commutative operands + after trying simplify_binary_operation + +2006-01-06 Daniel Berlin + + * tree.c (iterative_hash_expr): Hash decls based on UID. + +2006-01-06 Eric Christopher + + * doc/tm.texi (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Document. + (TARGET_UNWIND_EMIT): Fix spelling. + * target.h (gcc_target): Add except_table_label. + * except.c (output_function_exception_table): Use. + * varasm.c (default_emit_except_table_label): New. + * target-def.h (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): New default + define. + (asm_out): Add here. + * output.h (default_emit_except_table_label): Prototype. + * config/darwin-protos.h (darwin_emit_except_table_label): Ditto. + * config/darwin.c (darwin_emit_except_table_label): Define. + * config/darwin.h (TARGET_ASM_EMIT_EXCEPT_TABLE): Ditto. + +2006-01-06 Zdenek Dvorak + + PR tree-optimization/18527 + * tree-ssa-loop-niter.c (number_of_iterations_cond, + number_of_iterations_special, number_of_iterations_exit): + Move base and step of an iv to a single structure. Add + no_overflow flag, and use it in # of iterations analysis. + * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop): Add + folded_casts argument. + (simple_iv): Pass base and step in a structure. Set no_overflow + flag. + (scev_const_prop): Add argument to analyze_scalar_evolution_in_loop. + Evaluate expensiveness of computing # of iterations instead of + the final expression. + * tree-scalar-evolution.h (affine_iv): New structure. + (simple_iv): Declaration changed. + * tree-chrec.c (chrec_apply): Handle chrecs containing symbols. + * tree-ssa-loop-ivopts.c (determine_biv_step, find_givs_in_stmt_scev, + find_givs_in_stmt): Changed due to simple_iv change. + +2006-01-06 Jeff Law + + PR ada/24994 + * tree-cfg.c (bsi_replace): Rename final argument from + PRESERVE_EH_INFO to UPDATE_EH_INFO. Fix typo in last + change (stmt -> orig_stmt). + * tree-eh.c (verify_eh_throw_stmt_node): New function. + (bsi_remove): Add new argument. Remove EH information + if requested. + (verify_eh_throw_table_statements): New function. + (bsi_remove): Add new argument REMOVE_EH_INFO. All callers + updated. + * tree-optimize.c (execute_free_cfg_annotations): Verify + the EH throw statement table after removing annotations. + * except.h (verify_eh_throw_table_statements): Prototype. + * tree-flow.h (bsi_remove): Update prototype. + * tree-vrp.c (remove_range_assertions): Add new argument to + bsi_remove call. + * tree-ssa-loop-im.c (move_computations_stmt): Likewise. + * tree-complex.c (expand_complex_div_wide): Likewise. + * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Likewise + * tree-tailcall.c (eliminate_tailcall): Likewise. + * tree-ssa-dse.c (dse_optimize_stmt): Likewise. + * tree-ssa-loop-ivopts.c (remove_statement): Likewise. + * tree-nrv.c (tree_nrv): Likewise. + * tree-vectorizer.c (slpeel_make_loop_iterate_ntimes): Likewise. + * tree-if-conv.c (tree_if_convert_cond_expr): Likewise. + (combine_blocks): Likewise. + * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Likewise. + * tree-cfgcleanup.c (cleanup_ctrl_expr_graph): Likewise. + (cleanup_control_flow): Likewise. + (remove_forwarder_block): Likewise. + * tree-ssa-pre.c (remove_dead_inserted_code): Likewise. + * tree-sra.c (sra_replace): Likewise. + * tree-ssa-forwprop.c (forward_propagate_into_cond): Likewise. + (forward_propagate_single_use_vars): Likewise. + * tree-ssa-dce.c (remove_dead_stmt): Likewise. + * tree-inline.c (expand_call_inline): Likewise. + * tree-vect-transform.c (vect_transform_loop): Likewise. + * tree-outof-ssa.c (rewrite_trees): Likewise. + * tree-cfg.c (make_goto_expr_edges): Likewise. + (cleanup_dead_labels): Likewise. + (tree_merge_blocks, remove_bb, disband_implicit_edges): Likewise. + (bsi_move_before, bsi_move_after): Likewise. + (bsi_move_to_bb_end, try_redirect_by_replacing_jump): Likewise + (tree_redirect_edge_and_branch, tree_split_block): Likewise. + +2006-01-06 Andrew Pinski + + PR tree-opt/25528 + * tree-ssa-alias.c (find_used_portions): Handle REALPART_EXPR + and IMAGPART_EXPR. + * tree-flow-inline.h (var_can_have_subvars): Handle complex types + on non gimple variables. Also add checks at the top for decls and + mtags. + * tree-ssa-structalias.c (push_fields_onto_fieldstack): Handle + complex types. + * tree-ssa-operands.c (parse_ssa_operands): Handle REALPART_EXPR + and IMAGPART_EXPR for creating MUST_DEFs. + (get_expr_operands): Handle SSA_NAME, STRUCT_FIELD_TAG, TYPE_MEMORY_TAG, + and NAME_MEMORY_TAG separately from the DECLs. + +2006-01-06 Richard Guenther + + * tree-dfa.c (mark_new_vars_to_rename): Create stmt + annotation, if necessary. + * tree-ssa-pre.c (create_expression_by_pieces): Remove + redundant calls to update_stmt. + * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr): + Likewise. + +2006-01-05 Richard Henderson + + * c-parser.c (c_parser_objc_methodprotolist): Handle CPP_PRAGMA. + +2006-01-05 Carlos O'Donell + + * c-typeck.c: Update copyright date. + +2006-01-05 Carlos O'Donell + + * c-typeck.c (build_c_cast): Always warn when casting + from a pointer to an integer of different size, even if + the node was constant. + +2006-01-05 Richard Guenther + + PR tree-optimization/22555 + * tree-ssa-alias.c (create_overlap_variables_for): Do not give up, + if one structure field is an array. + * tree-ssa-operands.c (get_expr_operands): Continue scanning + operands even if we found a subvar, but ignore VOPs in this + case. + * tree-ssa-loop-ivopts.c (rewrite_use): Mark new vars in stmt + for renaming. + * tree-ssa-loop.c (pass_iv_optimize): Schedule TODO_update_ssa. + +2006-01-05 Richard Earnshaw + + PR middle-end/24998 + * arm/t-netbsd (LIB2FUNCS_EXTRA): Define. + +2006-01-05 Richard Guenther + Diego Novillo + + * tree-pass.h (TODO_remove_unused_locals): Define. + * gimple-low.c (expand_var_p, remove_useless_vars, + pass_remove_useless_vars): Remove. Update all users. + * tree-ssa-live.c (mark_all_vars_used_1): Handle SSA names. + (remove_unused_locals): New function. + * tree-flow.h (remove_unused_locals): Declare. + * passes.c (execute_todo): Call remove_unused_locals if + TODO_remove_unused_locals is set. + * tree-into-ssa.c (pass_build_ssa): Add TODO_remove_unused_locals. + * tree-ssa-dce.c (pass_dce): Likewise. + * tree-outof-ssa.c (pass_del_ssa): Likewise. + +2006-01-05 Richard Guenther + + * tree-flow.h (struct fieldoff): Decompose field to + type, size and decl. + * tree-ssa-alias.c (create_sft): Take type as parameter. + (create_overlap_variables_for): Store type, size and decl + in the fieldoff structure. + * tree-ssa-structalias.c (fieldoff_compare): Adjust users + of struct fieldoff. + (push_fields_onto_fieldstack): Likewise. + (create_variable_info_for): Likewise. Use offset for the + SFT name if the decl is not available. + +2006-01-04 Paul Brook + + * config/m68k/m68k.c (m68k_output_mi_thunk): Use jmp, not jsr. + +2006-01-04 Daniel Berlin + + * lambda-code.c (can_put_in_inner_loop): Relax + restrictions. + (can_put_after_inner_loop): New function. + (can_convert_to_perfect_nest): Use can_put_after_inner_loop as well. + (perfect_nestify): Change to make copies and modify uses. + +2006-01-04 Richard Henderson + + Merge from gomp branch: + * c-lex.c (c_lex_with_flags) : Smuggle pragma id + via integer constant. + (pragma_lex): Remove. + * c-pch.c (c_common_pch_pragma): Accept the name as an argument, + rather than parsing it. + * c-pragma.c (handle_pragma_weak, handle_pragma_redefine_extname, + handle_pragma_extern_prefix): Add %< %> quotes. + (registered_pragmas): New. + (c_register_pragma_1): New. + (c_register_pragma): Use it. + (c_register_pragma_with_expansion): Likewise. + (c_invoke_pragma_handler): New. + (init_pragma): Use cpp_register_deferred_pragma directly for + pch_preprocess. + * c-pragma.h (enum pragma_kind): New. + (pragma_handler): New. + (c_invoke_pragma_handler): Declare. + * c-common.c (c_parse_error): Pretty print CPP_PRAGMA and + CPP_PRAGMA_EOL. + * c-common.h (c_common_pch_pragma): Update decl. + * Makefile.in (c-parser.o): Update dependencies. + (GTFILES): Add c-pragma.h. + * c-parser.c (struct c_token): Add pragma_kind. + (struct c_parser): Add in_pragma. + (c_lex_one_token): Always initialize keyword and pragma_kind. + Extract data for CPP_PRAGMA. + (c_parser_peek_2nd_token): Deny CPP_PRAGMA_EOL. + (c_parser_consume_token): Don't allow CPP_PRAGMA unless errors. + Don't allow CPP_PRAGMA_EOL if in_pragma. + (c_parser_consume_pragma): New. + (c_parser_skip_until_found): Stop on CPP_PRAGMA_EOL. + (c_parser_skip_to_end_of_parameter): Likewise. + (c_parser_skip_to_end_of_block_or_statement): Likewise. + (c_parser_skip_to_pragma_eol): New. + (c_parser_external_declaration): Handle CPP_PRAGMA. + (c_parser_compound_statement_nostart): Likewise. + (c_parser_statement_after_labels): Likewise. + (c_parser_pragma): New. + (pragma_lex): Likewise. + (c_parser_pragma_pch_preprocess): New. + (c_parser_new): Merge into ... + (c_parse_file): ... here. Call c_parser_pragma_pch_preprocess. + +2006-01-04 Jeff Law + + PR ada/24994 + * tree-cfg.c (bsi_replace): Remove the original statement + from the EH throw statement table. + +2006-01-04 Jakub Jelinek + + * config/i386/pmm_malloc.h (posix_memalign): If __cplusplus, + make the prototype extern "C" and add throw (). + + PR target/25554 + * config/i386/i386.md (testqi_ext_3): Ensure len is positive + and pos non-negative and pos + len <= 32. + (testqi_ext_3_rex64): Ensure len is positive and pos non-negative, + drop pos + len < HOST_BITS_PER_WIDE_INT test. + (testqi_ext_3* splitter): Handle pos + len == HOST_BITS_PER_WIDE_INT. + + PR c/25559 + * c-common.c (handle_vector_size_attribute): Reject zero vector size + as well as sizes not multiple of component size. + + PR debug/25562 + * function.c (instantiate_expr): New function. + (instantiate_decls_1, instantiate_decls): If DECL_HAS_VALUE_EXPR_P, + walk its DECL_VALUE_EXPR with instantiate_expr. + + * dwarf2out.c (loc_descriptor_from_tree_1): Don't add + DW_OP_deref{,_size} if address isn't going to be added. + +2006-01-04 Ben Elliston + + * config/fp-bit.h: Use top-of-file comment from libgcc2.c. + * config/fp-bit.c: Likewise. + +2006-01-03 Daniel Berlin + + * dominance.c: Add comment about why we use DFS numbering + of dominance tree. + +2006-01-03 Jakub Jelinek + Richard Henderson + + Merge from gomp-branch: + * varasm.c (assemble_variable): Handle thread-local COMMON data. + * defaults.h (ASM_OUTPUT_TLS_COMMON): Define. + +2006-01-03 Paolo Bonzini + + PR rtl-optimization/25578 + * combine.c (combine_simplify_rtx, force_to_mode): Don't + pass a parameter to simplify_shift_const if changing ASHIFTRT + to LSHIFTRT. + +2006-01-03 Adrian Straetling + + * builtins.c (get_builtin_sync_mem): New function. + (expand_builtin_sync_operation, expand_builtin_compare_and_swap, + expand_builtin_lock_test_and_set, expand_builtin_lock_release): + Call get_builtin_sync_mem to generate mem rtx. + +2006-01-03 Richard Guenther + + PR c/25183 + * stmt.c (add_case_node): Make sure to clear overflow flags + from ranges. + +2006-01-03 Jakub Jelinek + + Merge from gomp-branch. + * config/sparc/sync.md: New file. + * config/sparc/sparc.md (UNSPECV_MEMBAR, UNSPECV_CAS, UNSPECV_SWAP, + UNSPECV_LDSTUB): New constants. + * config/sparc/sparc.c (sparc_expand_compare_and_swap_12): New function. + * config/sparc/predicates.md (memory_reg_operand): New predicate. + * config/sparc/sparc-protos.h (sparc_expand_compare_and_swap_12): New + prototype. + +2006-01-03 Roger Sayle + + * combine.c (reg_subword_p): New predicate to test whether the + destination of a set refers to a subword/piece of a register. + (try_combine): Generalize the code to merge the setting of a + pseudo to a constant followed by a set of a subword of that + register to a constant. + +2006-01-03 Kazu Hirata + + * basic-block.h (control_flow_graph): Change the type of + x_label_to_block_map to VEC(basic_block,gc) *. + * tree-cfg.c (init_empty_tree_cfg, label_to_block_fn, + set_bb_for_stmt): Adjust the uses of x_label_to_block_map. + + * tree-ssa-propagate.c (cfg_blocks): Change the type to + VEC(basic_block,heap) *. + (cfg_blocks_add, cfg_blocks_get, ssa_prop_init, + ssa_prop_fini): Adjust the uses of cfg_blocks. + +2006-01-03 Steven Bosscher + + * fold-const.c (operand_equal_p): Accept a NULL operand 0 for + COMPONENT_REFs. + * emit-rtl.c (mem_attrs_htab_eq): Use iterative_hash_expr for + hashing trees instead of a pointer hash. + (mem_attrs_htab_eq): Do a deep compare instead of a pointer + compare for MEM_EXPR. + + PR rtl-optimization/25130 + * cse.c (exp_equiv_p): Compare MEM_ATTRS instead of MEM_ALIAS_SET + when comparing MEMs for GCSE + +2006-01-03 Ben Elliston + + * targhooks.h (default_decimal_float_supported_p): Declare. + * targhooks.c (default_decimal_float_supported_p): Define. + * target-def.h (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Redefine to + `default_decimal_float_supported_p'. + * doc/tm.texi (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Update. + +2006-01-02 Adam Nemet + + * combine.c (apply_distributive_law ): Check + TRULY_NOOP_TRUNCATION. + +2006-01-02 Geoffrey Keating + + * dwarf2out.c (have_switched_text_section): Delete. + (have_multiple_function_sections): New. + (have_location_lists): Make 'bool'. + (add_AT_loc_list): Use 'true' not '1'. + (dwarf2out_switch_text_section): Set have_multiple_function_sections. + (output_loc_list): Use have_multiple_function_sections. + (output_ranges): Likewise. + (dwarf2out_begin_function): Set have_multiple_function_sections if + necessary. + (dwarf2out_source_line): Don't fake separate_line_info_table_in_use. + Check function_section rather than DECL_SECTION_NAME. + (dwarf2out_finish): Use have_multiple_function_sections. + Don't clear have_location_lists. + +2006-01-02 Eric Botcazou + Jan Hubicka + + * cfglayout.c (fixup_reorder_chain): Remove kludge for the + case of conditional jump jumping to the next instruction. + * cfgrtl.c (force_nonfallthru_and_redirect): Accept all + cases of conditional jump jumping to the next instruction. + +2006-01-02 Jan Hubicka + + * i386.c (*_cost): Add COSTS_N_INSNS. + (ix86_rtx_costs): Do not use COSTS_N_INSNS. + +2006-01-02 Paolo Bonzini + + PR target/25259 + * Makefile.in (DECNUMINC): Include libdecnumber's build directory. + +2006-01-02 Volker Reichelt + + * config/arm/arm.c (all_fpus): Fix comment typo. + * config/darwin.c: Likewise. + * config/frv/frv.h (FRV_STRUCT_VALUE_REGNUM): Likewise. + * config/h8300/h8300.md (extendqisi2_h8300hs): Likewise. + * config/m68hc11/m68hc11.c (m68hc11_reload_operands): Likewise. + +2006-01-01 David Edelsohn + + * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): New. + (rs6000_split_compare_and_swapqhi): New. + * config/rs6000/sync.md (sync_compare_and_swap{hi,qi}): New. + (sync_compare_and_swapqhi_internal): New. + * config/rs6000/rs6000-protos.h: Declare. -- cgit v1.1