From: Paolo Bonzini Date: Mon, 2 Jan 2006 09:02:58 +0000 (+0000) Subject: changelog rotated for gcc X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=5f0926cd781936cc3cb73f34fcd35418f6e43880;p=gcc.git changelog rotated for gcc From-SVN: r109235 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 331c059eeac..a84ba725b2e 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -6,13163 +6,3 @@ (sync_compare_and_swapqhi_internal): New. * config/rs6000/rs6000-protos.h: Declare. -2005-12-31 Andrew Pinski - - PR tree-opt/25612 - * tree-ssa-pre.c (compute_avail): Treat the static chain decl as a - parameter and pretend that it is defined in the entry basic block. - -2005-12-30 Kazu Hirata - - * tree-outof-ssa.c (_elim_graph): Change the type of STACK to - VEC(int,heap). - (new_elim_graph, delete_elim_graph, elim_forward, - eliminate_phi): Use the VEC API on STACK. - -2005-12-29 Daniel Berlin - - * tree.h (VALUE_HANDLE_VUSES): New. - (struct tree_value_handle): Add vuses. - - * tree-vn.c (struct val_expr_pair_d): Remove stmt, add vuses. - (vn_compute): Remove stmt argument. - Don't use vuses in hash value computation. - (val_expr_pair_eq): Compare vuse lists. - (copy_vuses_from_stmt): New function. - (shared_vuses_from_stmt): Ditto. - (vn_add): Rewrite in terms of vn_add_with_vuses. - (vn_add_with_vuses): New function. - (vn_lookup): Rewrite in terms of vn_lookup_with_vuses. - (vn_lookup_with_vuses): New function. - (vuses_compare): New function. - (print_creation_to_file): Ditto. - (vn_lookup_or_add): Rewrite to handle vuses. - (sort_vuses): New function. - (vn_lookup_or_add_with_vuses): Ditto. - (vn_init): Initialize shared_lookup_vuses. - (vn_delete): Free shared_lookup_vuses. - - * tree-ssa-pre.c: Update todo list. - (bb_value_sets_t): Add rvuse_in, rvuse_out, rvuse_gen, and - rvuse_kill. - (RVUSE_IN): New macro. - (RVUSE_GEN): Ditto. - (RVUSE_KILL): Ditto. - (RVUSE_OUT): Ditto. - (modify_expr_node_pool): New function. - (pretemp): New. - (storetemp): Ditto. - (mergephitemp): Ditto. - (prephitemp): Ditto. - (struct expr_pred_trans_d): Add vuses member. - (expr_pred_trans_eq): Compare vuses. - (phi_trans_lookup): Add vuses argument. - (phi_trans_add): Ditto. - (translate_vuses_through_block): New function. - (phi_translate): Use vuses to ask about those expressions that can - have vuses. - Properly translate virtual uses through phis, and use - vn_lookup_or_add_with vuses. Handle tcc_reference. - (phi_translate_set): Don't add pointless translations to the - cache. - (get_representative): New function. - (vuses_dies_in_block_x): Ditto. - (valid_in_set): Add block argument. Check virtual use validity. - (clean): Add block argument. Update call to valid_in_set - (compute_antic_aux): Update call to clean. - (dump_bitmap_of_names): New function. - (compute_vuse_representatives): Ditto. - (compute_rvuse): Ditto. - (can_value_number_call): Modified to accept calls with vuses. - (can_value_number_operation): New function. - (can_PRE_operation): Ditto. - (need_creation): New vector of stores that may need creation. - (find_or_generate_expression): use can_PRE_operation. - (create_expression_by_pieces): Handle INDIRECT_REF. - Only create one temp until we have to change types. - Mark new vars for renaming. - (insert_into_preds_of_block): Ignore loopiness of loads. - Use can_PRE_operation. - Only create one temp until we have to chnge types. - (insert_aux): Use can_PRE_operation. - Don't pass name to insert_into_preds_of_block. - (insert_extra_phis): Only use one temp until we have to change - types. - (poolify_tree): New function. - (modify_expr_template): New var. - (poolify_modify_expr): New function. - (insert_fake_stores): Ditto. - (realify_fake_stores): Ditto. - (compute_avail): Use can_value_number_operation. - (mark_operand_necessary): Return NULL for non-SSA names. - (remove_dead_inserted_code): Update comment. - (init_pre): Initialize pretemp, need_creation, storetemp, - mergephitemp, prephitemp. - Create modify_expr_node_pool. - (fini_pre): Free modify_expr_node_pool and need_creation array. - (execute_pre): Call insert_fake_stores, compute_rvuse, and - realify_fake_stores. - * tree-flow.h (vn_compute): Fix prototype. - (vn_add): Ditto. - (vn_lookup): Ditto. - (sort_vuses): New. - (vn_lookup_or_add_with_vuses): Ditto. - (vn_add_with_vuses): Ditto. - (vn_lookup_with_vuses): Ditto. - * passes.c (pass_may_alias): Add. - -2005-12-30 Gabriel Dos Reis - - * c-pretty-print.h (struct c_pretty_print_info): Add new member - "constant". - (pp_constant): New macro. - * c-pretty-print.c (pp_c_pretty_printer_init): Set pp->constant. - -2005-12-30 John David Anglin - - PR fortran/25586 - * pa.md: Remove REG_POINTER check from REG+REG peephole2 floating-point - store patterns. - -2005-12-29 Mike Stump - - * doc/invoke.texi (Objective-C and Objective-C++ Dialect Options - -fobjc-exceptions): Don't imply this doesn't work with the GNU - runtime. - -2005-12-29 Nathan Sidwell - - * varasm.c (get_section): Use gcc_assert. - -2005-12-29 Paul Brook - - * config/m68k/m68k.h (RETURN_ADDR_RTX): Define. - * config/m68k/m68k.c (m68k_initial_elimination_offset): Remove FIXME. - Include offset due to FIRST_PARM_OFFSET. - -2005-12-29 Paul Brook - - * config/m68k/lb1sf68.asm (__cmpdf2): Fix typo in immediate mask. - Create wrapper and rename body... - (__cmpdf2_internal): ... to this. Return correct value for unordered - result. - (__cmpsf2): Create wrapper and rename body... - (__cmpsf2_internal): ... to this. Return corerct value for unordered - result. - (__eqdf2, __nedf2, __gtdf2, __gedf2, __ltdf2, __ledf2): Use - __cmpdf2_internal. - (__eqsf2, __nesf2, __gtsf2, __gesf2, __ltsf2, __lesf2): Use - __cmpsf2_internal. - -2005-12-29 Paul Brook - - * config/m68k/fpgnulib.c (__extendsfdf2): Handle negative zero. - (__truncdfsf2): Ditto. - (__extenddfxf2): Ditto. - (__truncxfdf2): Ditto. - * config/m68k/lb1sf68.asm (__addsf3): Return -0.0 for -0.0 + -0.0. - (__adddf3): Ditto. - -2005-12-29 Daniel Jacobowitz - Paul Brook - - * config/m68k/m68k.c (m68k_output_pic_call): Don't use bsr.l for - !TARGET_68020. - * config/m68k/t-m68kelf (EXTRA_PARTS): Remove. - (EXTRA_MULTILIB_PARTS): Set. - * config/m68k/t-uclinux (EXTRA_PARTS): Remove. - (EXTRA_MULTILIB_PARTS): Set. - -2005-12-29 Alan Modra - - PR target/25572 - * config/rs6000/rs6000.c (create_TOC_reference): Set regs_ever_live. - -2005-12-28 Nathan Sidwell - - * config.gcc (mt-*-*): Add --with-arch support. - (--with): Print accepted options on error. - * config/mt/mt.h (OPTION_DEFAULT_SPECS): Define. - - * config/mt/mt.c (DEF_VEC_P(basic_block), - DEF_VEC_ALLOC_P(basic_bloc,heap)): Remove from here. - -2005-12-28 Daniel Berlin - - Fix PR tree-optimization/25394 - * fold-const.c (fold_checksum_tree): Guard - portions of checksumming with correct structure checks. - -2005-12-27 Kazu Hirata - - * global.c, tree-ssa-pre.c: Move DEF_VEC_P(basic_block) and - DEF_VEC_ALLOC_P(basic_block,{gc,heap}) to ... - * basic-block.h: ... here. - -2005-12-27 Roger Sayle - - * fold-const.c (int_const_binop): Return NULL_TREE when an expression - can't be evaluated at compile-time (instead of calling abort). - Return NULL_TREE for division (and modulus) by zero. - (const_binop): Return NULL_TREE for floating point operators that - aren't handled by real_arithmetic. - (fold_binary): Eliminate "wins" variable, and "binary" label, by - folding operators with constant operands early. Assert that - operands are non-NULL. - -2005-12-27 Kazu Hirata - - * tree-vrp.c (extract_range_from_binary_expr): Use - build_int_cst instead of fold_convert. - -2005-12-26 Mark Mitchell - - PR c++/23171, c++/23172, c++/25417. - * c-decl.c (compound_literal_number): Remove. - (build_compound_literal): Use set_compound_literal_name. - * c-common.c (compound_literal_number): New variable. - (set_compound_literal_name): New function. - * c-common.h (set_compound_literal_name): Declare. - -2005-12-26 Kazu Hirata - - PR tree-optimization/25125 - * convert.c (convert_to_integer): Don't narrow the type of a - PLUX_EXPR or MINUS_EXPR if !flag_wrapv and the unwidened type - is signed. - -2005-12-26 Graham Stott - - PR middle-end/25568 - * combine.c (simplify_shift_const_1 ):Fix enable-checking - rtl bootstrap failure. - -2005-12-25 Kazu Hirata - - * final.c (compute_alignments): Make it static. - * gcse.c (gcse_main, bypass_jumps): Likewise. - * web.c (web_main): Likewise. - * output.h: Remove the prototype for compute_alignments. - * rtl.h: Remove the prototypes for web_main, gcse_main, and - bypass_jumps. - -2005-12-24 Roger Sayle - - * expr.c (force_operand): Use expand_fix and expand_float to - implement integer <-> FP conversions instead of convert_to_mode. - -2005-12-24 Mark Mitchell - - PR c++/23171 - * varasm.c (initializer_constant_valid_p): An ADDR_EXPR of a - CONSTRUCTOR is invalid. - -2005-12-23 Daniel Berlin - - * tree-pass.h (pass_eliminate_useless_stores): Remove. - * tree-ssa-pre.c (is_copy_stmt): Ditto. - (follow_copies_till_vuse): Ditto. - (do_eustore): Ditto. - (gate_eustores): Ditto. - (pass_eliminate_useless_stores): Ditto. - * passes.c (init_optimization_passes): Ditto. - -2005-12-23 Paolo Bonzini - - * combine.c (simplify_shift_const): Fix typo. Use, whenever - applicable, simplify_const_binary_operation. - - (simplify_shift_const): Leave only the fallback - case when no simplification is possible. Extract to... - (simplify_shift_const_1): ... here. Always create a new - RTX instead of substituting. Remove the signed_count variable. - Return NULL_RTX if no substitution is possible. - - (simplify_and_const_int): Leave only the fallback - case when no simplification is possible. Extract to... - (simplify_and_const_int_1): ... here. Always create a new - RTX instead of substituting. Return NULL_RTX if no substitution - is possible. - - (force_to_mode, simplify_comparison): Don't pass a non-NULL first - parameter to simplify_and_const_int and simplify_shift_const, - unless it is equal to the expected non-simplified result. - -2005-12-23 Jakub Jelinek - - PR target/25005 - * regrename.c (replace_oldest_value_reg): Use validate_change with - IN_GROUP set to 1 instead of doing direct modifications. - (copyprop_hardreg_forward_1): Likewise. If any replace_oldest_* - replacements have been performed on an instruction, use - apply_change_group (). - -2005-12-23 Hans-Peter Nilsson - - * config/cris/arit.c (do_31div): Clarify what "31" refers to. - [L_divsi3] (__Udiv): Don't use as inline function. - [L_modsi3] (__Umod): Ditto. - (__Div): Rearrange to call do_31div directly instead of __Udiv. - (__Mod): Similarly regarding __Umod. - - PR target/24342 - * config/cris/cris.c (cris_split_movdx): Add REG_INC notes for - emitted insns with post-increments. - (cris_expand_epilogue): Ditto. - -2005-12-22 Jakub Jelinek - Richard Henderson - - Merge from gomp-branch. - * builtins.def: Move all DEF_SYNC_BUILTIN to ... - * sync-builtins.def: ... new file. - (BUILT_IN_FETCH_AND_ADD_16, - BUILT_IN_FETCH_AND_SUB_16, BUILT_IN_FETCH_AND_OR_16, - BUILT_IN_FETCH_AND_AND_16, BUILT_IN_FETCH_AND_XOR_16, - BUILT_IN_FETCH_AND_NAND_16, BUILT_IN_ADD_AND_FETCH_16, - BUILT_IN_SUB_AND_FETCH_16, BUILT_IN_OR_AND_FETCH_16, - BUILT_IN_AND_AND_FETCH_16, BUILT_IN_XOR_AND_FETCH_16, - BUILT_IN_NAND_AND_FETCH_16, BUILT_IN_BOOL_COMPARE_AND_SWAP_16, - BUILT_IN_VAL_COMPARE_AND_SWAP_16, BUILT_IN_LOCK_TEST_AND_SET_16, - BUILT_IN_LOCK_RELEASE_16): New builtins. - * builtin-types.def (BT_I16, BT_FN_I16_VPTR_I16, - BT_FN_BOOL_VPTR_I16_I16, BT_FN_I16_VPTR_I16_I16): Add. - * builtins.c (expand_builtin): Handle sync BUILT_IN_*_16 builtins. - * c-common.c (enum c_builtin_type): Move to top-level from - c_common_nodes_and_builtins enum builtin_type. - (builtin_types): Move from c_common_nodes_and_builtins. - (def_fn_type): New. - (c_common_nodes_and_builtins): Use it. - (def_builtin_1): Check for error_mark_node. - (sync_resolve_size): Handle also 128 bit sync builtins. - * Makefile.in (BUILTINS_DEF): New. Use it instead of builtins.def. - - * config/i386/i386.h (x86_cmpxchg8b, x86_cmpxchg16b): New decls. - (TARGET_CMPXCHG8B, TARGET_CMPXCHG16B): Define. - * config/i386/i386.c (x86_cmpxchg8b, x86_cmpxchg16b): New variables. - * config/i386/sync.md (CASMODE, DCASMODE): New mode macros. - (doublemodesuffix, DCASHMODE): New mode attrs. - (sync_compare_and_swap): Change into expand, use CASMODE - instead of IMODE, if mode is wider than a word, expand into - sync_double_compare_and_swap*. - (*sync_compare_and_swap): New insn. - (sync_double_compare_and_swap): Likewise. - (*sync_double_compare_and_swapdi_pic): Likewise. - (sync_compare_and_swap_cc): Use CASMODE instead of IMODE, if - mode is wider than a word, expand into - sync_double_compare_and_swap_cc*. - (sync_double_compare_and_swap_cc): New insn. - (*sync_double_compare_and_swap_ccdi_pic): Likewise. - -2005-12-22 Richard Henderson - - * config/i386/mmintrin.h (_mm_add_si64): Only define for SSE2. - (_mm_sub_si64): Likewise. - * config/i386/xmmintrin.h (_mm_shuffle_pi16, _m_pshufw): Likewise. - -2005-12-23 Alan Modra - - PR rtl-optimization/25432 - * reload1.c (eliminate_regs_in_insn): Update insn code on - successfully re-recognizing modified insn. - -2005-12-22 Richard Guenther - - * tree.c (tree_fold_gcd): Use build_int_cst where appropriate. - * tree-ssa-loop-ivcanon.c (create_canonical_iv): Likewise. - * varasm.c (array_size_for_constructor): Likewise. - * fold-const.c (size_diffop, invert_truthvalue, - optimize_bit_field_compare, make_range, build_range_check, - fold_cond_expr_with_comparison, fold_truthop, - fold_single_bit_test_into_sign_test, fold_binary): Likewise. - -2005-12-22 Dale Johannesen - - * config/i386/sse.md (sse_movhlps): Reverse operands for - 2nd and 3rd alternatives. - -2005-12-22 Andrew Pinski - - PR tree-opt/25513 - * tree-dfa.c (make_rename_temp): Set DECL_COMPLEX_GIMPLE_REG_P complex - variables. - -2005-12-22 Zdenek Dvorak - Steven Bosscher - - * 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_find_def, df_reg_used): Handle subregs. - * df.h (df_find_use): Declare. - - * loop-invariant.c: Include hashtab.h. - (struct invariant): Remove processed field, add eqto and reg fields. - (struct invariant_expr_entry): New. - (invariant_for_use, hash_invariant_expr_1, invariant_expr_equal_p, - hash_invariant_expr, eq_invariant_expr, find_or_insert_inv, - find_identical_invariants, merge_identical_invariants): New functions. - (create_new_invariant): Return the new invariant. Initialize new - fields. - (find_invariants): Call merge_identical_invariants. - (get_inv_cost, best_gain_for_invariant, set_move_mark, - move_invariant_reg): Handle equivalent invariants. - * Makefile.in (loop-invariant.o): Add HASHTAB_H dependency. - -2005-12-22 Volker Reichelt - - PR c++/23333 - * c-lex.c (c_lex_with_flags): Add PURE_ZERO to cpp_flags if - number is a single digit '0'. - -2005-12-22 Kazu Hirata - - PR tree-optimization/23518 - * fold-const.c (make_range): Don't move a constant to the - other side of the comparison if the type is signed and -fwrapv - is given. - -2005-12-22 Kazu Hirata - - * tree-vrp.c (extract_range_from_binary_expr): Clean up uses - of vr0.type. - -2005-12-21 Joseph S. Myers - - PR middle-end/24998 - * config/arm/t-arm-elf (LIB1ASMFUNCS): Add _floatundidf and - _floatundisf. - -2005-12-21 Andrew Haley - - PR middle-end/25121 - * recog.c (peephole2_optimize): Don't peephole any - RTX_FRAME_RELATED_P insns. - -2005-12-21 Kazu Hirata - - * tree-data-ref.c (estimate_niter_from_size_of_data): Replace - fold_build2 with fold_binary. - * tree-ssa-ccp.c (visit_assignment, maybe_fold_stmt_addition): - Replace fold_build1 with fold_unary. - * tree-ssa-reassoc.c (optimize_ops_list): Replace fold_build2 - with fold_binary. - -2005-12-21 Steven Bosscher - - PR rtl-optimization/25196 - * postreload-gcse.c (record_last_set_info): Notice stack pointer - changes in push insns without REG_INC notes. - -2005-12-21 Kazu Hirata - - PR tree-optimization/25382. - * tree-vrp.c (extract_range_from_binary_expr): Extract a range - from BIT_AND_EXPR. - -2005-12-21 Janis Johnson - Ben Elliston - - * configure.ac: Enable C extension for decimal float if invoked - with --enable-decimal-float. - * doc/install.texi (Configuration): Document it. - * configure, config.in: Regenerate. - -2005-12-20 Mike Stump - - * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Handle the - ambiguity between -seg_addr_table and -seg_addr_table_filename. - (WORD_SWITCH_TAKES_ARG): Likewise. - (LINK_SPEC): Likewise. - -2005-12-20 Kenneth Zadeck - - * cfganal.c (flow_reverse_top_sort_order_compute): - Renamed to post_order_compute and additional parameter added which - allows the inclusion of entry and exit blocks into list. - (mark_dfs_back_edges): Fixed comment. - (flow_depth_first_order_compute): Renamed to - pre_and_rev_post_order_compute additional parameter added which - allows the inclusion of entry and exit blocks into list. - * global.c (set_up_bb_rts_numbers): Call to - flow_reverse_top_sort_order_compute renamed to - post_order_compute. - * var-tracking.c (vt_stack_adjustments): Fixed comment. - (vt_find_locations): Call to - flow_depth_first_order_compute renamed to - pre_and_rev_post_order_compute. - * cfgloop.c (flow_find_loops): Ditto. - * tree-ssa-reassoc.c (init_reassoc): Ditto. - * df.c (df_analyze_1, df_analyze_subcfg): Calls to - flow_reverse_top_sort_order_compute renamed to post_order_compute - and calls to flow_reverse_top_sort_order_compute renamed to - post_order_compute. - * basic_block.h: Ditto. - - -2005-12-20 Roger Sayle - Paolo Bonzini - - PR rtl-optimization/25115 - * gcse.c (pre_insert_copy_insn): Fall back to the sole - SET in the insn if there is no SET for an - expression that is equivalent to EXPR. - -2005-12-20 Richard Guenther - - PR middle-end/24306 - * builtins.c (std_gimplify_va_arg_expr): Do not align - va frame for zero sized types. - * config/i386/i386.c (ix86_gimplify_va_arg): Likewise. - -2005-12-20 Kazu Hirata - - PR tree-optimization/25501 - * tree-cfgcleanup.c (merge_phi_nodes): Check that RESULT is - used in the PHI argument corresponding to the edge from BB to - DEST. - -2005-12-20 Richard Guenther - - Revert - 2005-12-02 Richard Guenther - - * tree-cfg.c (mark_used_vars): New function. - (dump_function_to_file): Dump only used VAR_DECLs. - -2005-12-19 Roger Sayle - - * combine.c (try_combine): Improve splitting of binary operators - by taking advantage of reassociative transformations. - -2005-12-19 Jeff Law - - * tree-ssa-dom.c (thread_across_edge): Do not use local_fold. - Strip away all type conversions after simplifying the - condition. - - * tree-cfgcleanup.c (merge_phi_nodes): Allow merging in some - cases the forwarder block dominates the destination. - -2005-12-19 DJ Delorie - - * reload1.c (spill_failure): Dump reload data to dump file. - (find_reload_regs): Likewise. - -2005-12-19 Zdenek Dvorak - - PR tree-optimization/24793 - * tree-ssa-loop-ivopts.c (get_ref_tag): Remember the - original reference if there are subvars. - * tree-ssa-operands.c (get_tmr_operands): Handle subvars. - -2005-12-19 Kenneth Zadeck - - * df.c (df_analyze_1, df_analyze_subcfg, iterative_dataflow): - Corrected basic block number calculations for changes in entry and - exit numbering. - -2005-12-19 Zdenek Dvorak - - * tree-flow.h (struct var_ann_d): Change type of - may_aliases field to VEC(tree, gc) *. - (may_aliases): Declaration changed. - * tree-ssa-alias.c (group_aliases, add_may_alias, - replace_may_alias, dump_may_aliases_for, - is_aliased_with, add_type_alias, new_type_alias): - Work with VEC(tree, gc) * instead of varray. - * tree-flow-inline.h (may_aliases): Ditto. - * tree-ssa.c (verify_flow_insensitive_alias_info, - verify_name_tags): Ditto. - * tree-ssa-operands.c (add_stmt_operand): Ditto. - -2005-12-19 J"orn Rennecke - - * cfgcleanup.c: Temporarily revert patches for PR 20070 till Bernd - comes back. - -2005-12-19 J"orn Rennecke - - * struct-equiv.c (struct_equiv_improve_checkpoint): Fix sets_cc0_p - check. - -2005-12-19 Ben Elliston - - * doc/install.texi (Configuration): Typo in Fortran subheading. - -2005-12-19 Nathan Sidwell - - * config/mt/mt.md (decrement_and_branch_until_zero): Add another - scratch. Correct its reload split. Adjust its peephole. - (doloop_end): Add additional scratch. - (nop): Use 'nop'. - * config/mt/mt.c (MT_INT_ARG_FIRST): Remove. - (mt_asm_output_opcode, mt_print_operand): Use 'nop'. - (mt_function_arg_slotno): Use FIRST_ARG_REGNUM. - (mt_builtin_saveregs): Replace with ... - (mt_setup_incoming_varargs): ... here. Save just the varadic - args. - (mt_va_start): Remove. - (mt_reorg_hazard): Ignore USE insns. Don't call set_noop_p. - (mt_machine_reorg): Split all insns here. - (TARGET_SETUP_INCOMING_VARARGS): Override. - * config/mt/mt.h (TARGET_CPU_CPP_BUILTINS): Define __mt__ only. - Set to CPU type. - (EXPAND_BUILTIN_VA_START): Remove. - -2005-12-17 Kenneth Zadeck - - * flow.c (update_life_info, count_or_remove_death_notes): Fixed - latent bug that could happen if update_life_info was called with a - blocks parameter and the call to cleanup_cfg actually deleted one - of those blocks. - -2005-12-19 Zdenek Dvorak - - * tree-ssa-structalias.c (update_alias_info): Remove handling - of may_be_aliased (SSA_NAME_VAR (op)) case. - -2005-12-19 Zdenek Dvorak - - * tree-flow.h (struct stmt_ann_d): Remove - makes_aliased_loads and makes_aliased_stores fields. - * tree-ssa-ccp.c (likely_value): Do not use makes_aliased_stores - and makes_aliased_loads fields. - * tree-ssa-dom.c (eliminate_redundant_computations): Do not - use makes_aliased_stores. - * tree-ssa-operands.c (clobbered_aliased_loads, - clobbered_aliased_stores, ro_call_aliased_loads): Removed. - (build_ssa_operands, add_stmt_operand, add_call_clobber_ops, - add_call_read_ops): Do not set makes_aliased_stores and - makes_aliased_loads fields. - * tree-ssa.c (verify_ssa): Do not verify makes_aliased_stores - field. - -2005-12-18 Geoffrey Keating - - * config/darwin.h: Don't include darwin-sections.def to declare - global variables; instead create darwin_section_enum. - (darwin_section_enum): New. - (darwin_sections): New. - * config/darwin.c: Don't include darwin-sections.def to define - global variables. - (darwin_sections): New. - (output_objc_section_asm_op): Rewrite to take advantage of - darwin_sections. - (darwin_init_sections): Rewrite to use darwin_sections. - (machopic_output_indirection): Update for darwin_sections array. - (machopic_select_section): Likewise. - (machopic_select_rtx_section): Likewise. - (machopic_asm_out_constructor): Likewise. - (machopic_asm_out_destructor): Likewise. - (darwin_file_end): Likewise. - * config/rs6000/rs6000.c (machopic_output_stub): Likewise. - * config/i386/i386.c (machopic_output_stub): Likewise. - -2005-12-18 Richard Guenther - - PR tree-optimization/25481 - * tree-ssa-structalias.c (handle_ptr_arith): Handle accesses we - don't have a varinfo for. - -2005-12-18 Jon Grimm - Janis Johnson - Ben Elliston - - * optabs.c (init_floating_libfuncs): Handle decimal float modes. - (init_optabs): Handle libfuncs for decimal float. - * genopinit.c (gen_insn): Handle MODE_DECIMAL_FLOAT. - * stor-layout.c (int_mode_for_mode): Likewise. - * simplify-rtx.c (simplify_immed_subreg): Likewise. - (simplify_unary_operation_1): Skip optimisations for decimal float - modes. - * varasm.c (output_constant_pool_2): Handle MODE_DECIMAL_FLOAT. - * emit-rtl.c (gen_const_vector): Add assertion check. - (init_emit_once): Populate const_tiny_rtx with constants in each - decimal float mode. - * expmed.c (extract_high_half, expand_mult_highpart_optab, - expand_mult_highpart): Assert that mode is not a scalar float - mode. - * expr.c (convert_move): Handle conversion between decimal and - binary floats of the same size. - * convert.c (convert_to_real): Consider decimal float types when - folding. - * dwarf2out.c (base_type_die): Use DW_ATE_decimal_float to - describe decimal floating point types. - -2005-12-18 Ulrich Weigand - - PR rtl-optimization/21041 - * reload.c (find_reloads_subreg_address): Replace paradoxical - subreg of MEM by widened access only if the resulting memory - is properly aligned, even on !STRICT_ALIGNMENT targets. - -2005-12-18 Andreas Krebbel - - * tree-cfg.c (tree_flow_call_edges_add): Check for empty basic blocks. - -2005-12-18 Steven Bosscher - - * gcse.c (gcse_main, bypass_jumps): Fix non-GNU-isms from - the 2005-12-17 patch to renumber the entry and exit blocks. - -2005-12-18 Gabriel Dos Reis - - * doc/objc.texi (Type encoding): Fix typo. - -2005-12-17 Gabriel Dos Reis - - * tree-tailcall.c (find_tail_calls): Use XNEW. - * tree-ssa-dom.c (allocate_edge_info): Use XCNEW. - (free_all_edge_infos): Use explicit cast to convert from void *. - (vrp_free): Likewise. - (dom_opt_finalize_block): Likewise. - (record_equivalences_from_incoming_edge): Likewise. - (thread_across_edge): Likewise. Use XCNEWVEC. - (record_cond): Use XCNEW. - (record_conditions): Use XNEWVEC. - (record_edge_info): Use XCNEWVEC. - (lookup_avail_expr): Use XNEW. - (record_range): Likewise. Use GGC_NEW. - * tree-nested.c (var_map_hash): Use explicit cast to convert from - void *. - (var_map_eq): Likewise. - (lookup_field_for_decl): Likewise. - (convert_nonlocal_reference): Likewise. - (convert_local_reference): Likewise. - (convert_nl_goto_reference): Likewise. - (convert_nl_goto_receiver): Likewise. - (convert_call_expr): Likewise. - (convert_tramp_reference): Likewise. - (lookup_tramp_for_decl): Likewise.Use GGC_NEW. - (convert_nl_goto_reference): Likewise. - (lookup_field_for_decl): Use GGC_NEW. - (create_nesting_tree): Use GGC_CNEW. - * tree-ssa-phiopt.c (blocks_in_phiopt_order): Use XNEWVEC. - * tree-ssa-alias.c (init_alias_info): Use XCNEW. - (create_alias_map_for): Likewise. - (setup_pointers_and_addressables): Use XCNEWVEC. - (get_ptr_info): Use GGC_NEW. - (used_part_map_eq): Use explicit cast to convert from void *. - (up_lookup): Likewise. - (up_insert): Use XNEW. - (get_or_create_used_part_for): Use XCNEW. - (get_tmt_for): Likewise. - * tree-ssa-operands.c (ssa_operand_alloc): Use GGC_NEW. - * tree-ssa-pre.c (phi_trans_add): Use XNEW. - (bitmap_set_new): Use explicit cast to convert from void *. - (set_new): Likewise. - (insert_into_set): Likewise. - (pool_copy_list): Likewise. - (phi_translate): Likewise. - (create_value_expr_from): Likewise. - (insert_aux): Use XCNEWVEC. - (compute_avail): Use XNEWVEC. - * tree-ssa-live.c (calculate_live_on_entry): Likewise. - (sort_coalesce_list): Likewise. - (build_tree_conflict_graph): Use XCNEWVEC. - * tree-ssa-dce.c (tree_dce_init): Use XNEWVEC. - * tree-ssa-copy.c (init_copy_prop): Likewise. - (fini_copy_prop): Likewise. - * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use XNEW - and XCNEWVEC. - (record_equiv): Use XNEW. - (uncprop_into_successor_phis): Use explicit cast to convert from - void *. - (uncprop_initialize_block): Likewise. - -2005-12-18 Dorit Nuzman - - PR tree-optimization/24378 - * tree-vect-transform.c (vect_transform_loop): Create single-predecessor - basic-block after loop-versioning. - -2005-12-18 Jeff Law - - * tree-ssa-dom.c (simplify_switch_and_lookup_avail_expr): Code - to simplify SWITCH_EXPR_CODE moved from here to ... - * tree-ssa-forwprop.c (simplify_switch_expr): Here. - (tree-ssa-forward_propagate_single_use_vars): Call - simplify_switch_expr when appropriate. - -2005-12-17 Andrew Pinski - - * doc/objc.texi (Type encoding): Add documentation about encoding - complex types and _Bool. - -2005-12-17 Paul Brook - - * config/m68k/m68k.md (m68k_output_function_prologue): Always call - dwarf2out_def_cfa. Only add space for frame pointer to cfa_offset - when frame_pointer_needed. - -2005-12-17 Gabriel Dos Reis - - * tree-vn.c (vn_add): Use XNEW. - * tree-ssa-ccp.c (ccp_initialize): Use XNEWVEC. - (ccp_fold): Likewise. - (fold_stmt_r): Use explicit cast to convert from void *. - * tree-outof-ssa.c (new_temp_expr_table): Use XCNEWVEC. - (new_temp_expr_table): Likewise. - * gimplify.c (lookup_tmp_var): Use XNEW. - (gimplify_asm_expr): Use explcit cast to convert from void *. - * tree-into-ssa.c (get_ssa_name_ann): Likewise. - (get_def_blocks_for): Use XNEW. - (add_to_repl_tbl): Likewise. - (mark_def_sites): Use explicit cast to convert from void *. - (def_blocks_free): Likewise. - (mark_def_sites_initialize_block): Likewise. - (update_ssa): Use XNEWVEC. - * tree-dfa.c (create_var_ann): Use GGC_NEW. - (create_stmt_ann): Likewise. - (create_tree_ann): Likewise. - (referenced_var_insert): Likewise. - (set_default_def): Likewise. - (referenced_var_lookup_if_exists): Use explicit cast to convert - from void *. - (referenced_var_lookup): Likewise. - (default_def): Likewise. - (set_default_def): Likewise. - * tree-cfg.c (create_bb): Likewise. - (edge_to_cases_cleanup): Likewise. - (verify_node_sharing): Likewise. - (record_switch_edge): Use XNEW. - (cleanup_dead_labels): Use XCNEWVEC. - (tree_duplicate_sese_region): Use XNEWVEC. - * tree-scalar-evolution.c (get_instantiated_value): Likewise. - * tree-ssa.c (verify_ssa): Use XCNEWVEC. - (int_tree_map_eq): Use explicit cast to convert from void *. - * libgcov.c (gcov_exit): Use explicit cast to convert from void *. - (__gcov_execl): Likewise. - (__gcov_execlp): Likewise. - (__gcov_execle): Likewise. - * tree-eh.c (struct_ptr_eq): Likewise. - (struct_ptr_hash): Likewise. - (lookup_stmt_eh_region_fn): Likewise. - (outside_finally_tree): Likewise. - (find_goto_replacement): Likewise. - (make_eh_edge): Likewise. - (mark_eh_edge): Likewise. - (add_stmt_to_eh_region_fn): Use GGC_NEW. - (record_in_finally_tree): Use XNEW. - (maybe_record_in_goto_queue): Use XRESIZEVEC. - (lower_try_finally_copy): Use XCNEWVEC. - -2005-12-17 Gabriel Dos Reis - - * tree-inline.c (copy_body_r): Use explicit cast when converting - from void *. - (copy_bb): Likewise. - (copy_edges_for_bb): Likewise. - (remap_decl_1): Likewise. - (estimate_num_insns_1): Likewise. - * cgraph.c (hash_node): Use explicit cast when converting from - void *. - (eq_node): Likewise. - (cgraph_create_node): Use GGC_CNEW. - (cgraph_create_edge): Use GGC_NEW. - (cgraph_remove_node): Use explicit cast when converting from void *. - (hash_varpool_node): Likewise. - (eq_varpool_node): Likewise. - (cgraph_varpool_node): Use GGC_CNEW. - * lambda.h (lambda_vector_new): Use GGC_CNEWVEC. - * tree-scalar-evolution.c (new_scev_info_str): Use XNEW. - (eq_scev_info): Use explicit cast when converting from void *. - (find_var_scev_info): Likewise. - (set_instantiated_value): Likewise. - (gather_stats_on_scev_database_1): Likewise. - * cfgloop.h (simple_loop_desc): Use explicit cast when converting - from void *. - * c-pch.c (c_common_write_pch): Use XNEWVEC. - (c_common_read_pch): Likewise. - * prefix.c (save_string): Use XNEWVEC. - (translate_name): Use explicit cast when converting from void *. - * c-ppoutput.c (print_line): Use explicit cast when converting - from void *. - (pp_dir_change): Likewise. - * c-cppbuiltin.c (builtin_define_std): Likewise. - (builtin_define_with_value): Likewise. - (builtin_define_with_value_n): Likewise. - (builtin_define_with_int_value): Likewise. - (builtin_define_type_max): Likewise. - * c-incpath.c (add_env_var_paths): Use XNEWVEC. - (add_path): Use XNEW. - * c-format.c (check_format_info_main): Use GGC_NEW. - (format_type_warning): Use explicit cast when converting from void *. - * c-typeck.c (alloc_tagged_tu_seen_cache): Use XNEW instead of - xmalloc. - (start_init): Likewise. - * tree-flow-inline.h (first_referenced_var): Use explicit cast - when converting from void *. - (next_referenced_var): Likewise. - * c-pragma.c (push_alignment): Use GGC_NEW instead of ggc_alloc. - * gensupport.c (lookup_predicate): Use explicit cast to convert - from void *. - (init_predicate_table): Use XCNEW instead of xcalloc. - * genpreds.c (process_define_predicate): Likewise. - -2005-12-17 Danny Berlin - Kenneth Zadeck - - * basic-block.h: Changed basic block numbering so that the entry - block is 0 and the exit block is 1. Changed insn iterators so - that they are tolerant of blocks with no insns. - * regrename.c (copyprop_hardreg_forward): Changed basic block - numbering so that the entry block is 0 and the exit block is 1. - * sched-ebb.c (sehedule_ebbs): Ditto. - * tracer.c (branch_ratio_cutoff): Ditto. - * cfgloopmanip.c (fix_loop_structure): Ditto. - * cfghooks.c (verify_flow_info): Ditto. - * cfg.c (compact_blocks): Ditto. - * reorg.c (dbr_schedule): Ditto. - * flow.c (calculate_global_regs_live, libcall_dead_p): Ditto. - * dominance.c (calc_dfs_tree_nonrec, calc_dfs_tree, - calculate_dominance_info): Ditto. - * cfganal.c (create_edge_list, print_edge_list, - flow_depth_first_order_compute, flow_dfs_compute_reverse_init, - flow_dfs_compute_reverse_add_bb, flow_dfs_compute_reverse_execute, - dfs_enumerate_from): Ditto. - * global.c (global_alloc, set_up_bb_rts_numbers): Ditto. - * ifcvt.c (find_if_case_2): Ditto. - * cfgbuild.c (control_flow_insn_p, count_basic_blocks, - find_basic_blocks): Ditto. - * predict.c (predict_loops, tree_bb_level_predictions, - predict_paths_leading_to, propagate_freq): Ditto. - * lcm.c (compute_antinout_edge, compute_laterin, - compute_available): Ditto. - * function.c (thread_prologue_and_epilogue_insns): Ditto. - * gcse.c (gcse_main, bypass_jumps): Ditto. - * profile.c (compute_branch_probabilities, - compute_value_histograms, branch_prob): Ditto. - * tree-flow-inline.h (bsi_start, bsi_after_labels, - bsi_last): Ditto. - * tree-ssa-phiopt.c (tree_ssa_phiopt, - blocks_in_phiopt_order): Ditto. - * bt-load.c (compute_defs_uses_and_gen, compute_kill, - compute_out, link_btr_uses, migrate_btr_defs): Ditto. - * tree-dfa.c (collect_dfa_stats): Ditto. - * cfgcleanup.c (try_forward_edges, try_optimize_cfg): Ditto. - * cfglayout.c (fixup_reorder_chain): Ditto. - * bb-reorder.c (reorder_basic_blocks, duplicate_computed_gotos, - partition_hot_cold_basic_blocks): Ditto. - * var-tracking.c (vt_find_locations): Ditto. - * cfgloop.c (flow_loops_cfg_dump, flow_loops_find, get_loop_body): Ditto. - * sched-rgn.c (compute_trg_info, init_regions, schedule_insns): Ditto. - * tree-cfg.c (init_empty_tree_cfg, build_tree_cfg, make_edges - label_to_block_fn, print_loop_ir, tree_flow_call_edges_add): Ditto. - * tree-ssa-reassoc.c (init_reassoc): Ditto. - * cfgrtl.c (entry_of_function, rtl_verify_flow_info, - rtl_flow_call_edges_add, rtl_flow_call_edges_add): Ditto. - * df.c (df_analyze_1, hybrid_search, iterative_dataflow): Ditto - and removed unused reverse orders. - * df.h (): Ditto. - * combine.c: Fix document typo. - -2005-12-17 Jan Hubicka - - * tree-flow-inline.h (set_default_def, default_def): Kill. - * tree-dfa.c (default_defs): New global variable. - (default_def, set_default_def): New functions. - * tree-ssa.c (init_tree_ssa, delete_tree_ssa): Add default_def hash. - * tree-flow.h (struct var_ann_d): Kill default_def field. - (set_default_def, default_def): Update prototype. - (default_defs): Declare. - -2005-12-16 Jeff Law - - * tree-ssa-dom.c (update_rhs_and_lookup_avail_expr): Kill. - (simplify_rhs_and_lookup_avail_expr): Kill. Remnants moved - into tree-ssa-forwprop.c. - (eliminate_redundant_computations): Do not call - simplify_rhs_and_lookup_avail_expr anymore. - * tree-ssa-forwprop.c (simplify_not_neg_expr): New function - extracted from remnants of simplify_rhs_and_lookup_avail_expr. - (tree_ssa_forward_propagate_single_use_vars): Call - simplify_not_neg_expr appropriately. - -2005-12-16 Bernd Trog - - PR target/20016 - * config/avr/t-avr: Add -Os to TARGET_LIBGCC2_CFLAGS. - -2005-12-17 Kazu Hirata - - PR rtl-optimization/25456 - * struct-equiv.c (struct_equiv_improve_checkpoint): Replace - info->x_start with p->x_start. - -2005-12-17 Alan Modra - - * simplify-rtx.c (simplify_binary_operation_1 ): Correct bug - introduced 2005-12-16. - -2005-12-16 Steven Bosscher - - PR rtl-optimization/23837 - * optabs.c (expand_binop): For a multi-word rotate, never emit - a REG_NO_CONFLICT block. - -2005-12-16 John David Anglin - - PR middle-end/25457 - * reorg.c (mostly_true_jump): Remove unused variable 'insn'. - - PR target/25447 - * config/pa/pa.c (pa_scalar_mode_supported_p): Handle - MODE_DECIMAL_FLOAT. - -2005-12-16 Steven Bosscher - - * loop-invariant.c (move_loop_invariants): Add missing hunk from - the previous patch, to nullify df. - -2005-12-16 Steven Bosscher - - * reorg.c (mostly_true_jump): Clean up code depending on - LABEL_OUTSIDE_LOOP_P and loop notes. Remove code doing - poor man's branch prediction, instead rely on REG_BR_PROB - notes to be available. - -2005-12-16 Jakub Jelinek - - PR rtl-optimization/24899 - * loop.c (strength_reduce): Don't reduce giv that is not always - computable and where add_val or mult_val can trap. - - * doc/invoke.texi (-fdump-tree-*): Remove note about C/C++ only. - -2005-12-16 Nathan Sidwell - - * config/mt/mt.h (LIB_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Correct - names of ms1-16-002 files. - -2005-12-16 Alan Modra - - PR driver/20425 - * gcc.c (for_each_path): New function. - (add_to_obstack, file_at_path): New functions. - (struct file_at_path_info, struct add_to_obstack_info): New. - (build_search_list): Rewrite using for_each_path. Constify struct - path_prefix pointer. Add do_multi param. Adjust all callers. - (find_a_file): Similarly, but just change existing param to bool. - (putenv_from_prefixes): Add do_multi param, make "paths" const. - (do_spec_path): Delete. - (struct spec_path_info): New. - (spec_path): New function. - (do_spec_1): Use for_each_path for %D and %I. - (find_file): Adjust for find_a_file changes. - (main): Search multilibs for specs. Print multilib lib path for - -print-search-dirs. Likewise add multilibs to LIBRARY_PATH_ENV. - (read_specs): Search multilibs for %include and %include_noerr. - (is_directory): Remove second string param. Change last param - to a bool. Don't use concat. Remove SMALL_ARG_MAX test, always - check path is a dir. Update all callers. - * doc/hostconfig.texi (SMALL_ARG_MAX): Remove mention. - * system.h (SMALL_ARG_MAX): Poison. - * config.gcc: Don't define SMALL_ARG_MAX. - * config.host: Likewise. - * config.build: Likewise. - -2005-12-16 Paolo Bonzini - - * combine.c (combine_simplify_rtx , - simplify_logical): Move simplifications that do not require - additional infrastructure... - * simplify-rtx.c (simplify_unary_operation_1, - simplify_binary_operation_1): ... here. - -2005-12-16 Andreas Krebbel - - PR 24823 - * flow.c (mark_used_dest_regs): New function. - (mark_used_regs): Call mark_used_dest_regs. - -2005-12-16 Jeff Law - - * tree-ssa-dse.c (dse_optimize_stmt): Correctly handle PHI nodes which - represent a use and definition of the same SSA_NAME. - -2005-12-16 Jon Grimm - Janis Johnson - Ben Elliston - - * target-def.h (TARGET_DECIMAL_FLOAT_SUPPORTED_P): New. - (TARGET_INITIALIZER): Add TARGET_DECIMAL_FLOAT_P. - * target.h (struct gcc_target): Add decimal_float_supported_p. - * targhooks.c (default_scalar_mode_supported_p): Handle - MODE_DECIMAL_FLOAT. - * builtins.def: Add new builtins for 32, 64 and 128 bit variants - of inf, nan, finite, isinf and isnan. - * builtin-types.def (BT_DFLOAT32, BT_DFLOAT64, BT_DFLOAT128, - BT_DFLOAT32_PTR, BT_DFLOAT64_PTR, BT_DFLOAT128_PTR, - BT_FN_DFLOAT32, BT_FN_DFLOAT64, BT_FN_DFLOAT128, - BT_FN_INT_DFLOAT32, BT_FN_INT_DFLOAT64, BT_FN_INT_DFLOAT128, - BT_FN_DFLOAT32_CONST_STRING, BT_FN_DFLOAT64_CONST_STRING, - BT_FN_DFLOAT32_CONST_STRING, BT_FN_DFLOAT32_DFLOAT32, - BT_FN_DFLOAT64_DFLOAT64, BT_FN_DFLOAT128_DFLOAT128): New. - * c-decl.c (declspecs_add_type): Verify combos on type qualifiers. - Pedwarn if decimal floating point types are used. Error if - decimal floating point is not supported by the target. - (finish_declspecs): Return type from DFP typespec_word. - * c-typeck.c (c_common_type): Choose the decimal floating point - type with the greater precision when determining a common type. - (convert_arguments): Warn if there is a mismatch between argument - and prototype for decimal float types. Warn of conversions with - binary float types and of precision narrowing due to prototype. - * c-parser.c (reswords): Add _Decimal32, _Decimal64, _Decimal128. - (c_token_starts_typename): Handle RID_DFLOAT32/64/128. - (c_token_starts_declspecs): Likewise. - (c_parser_attributes): Likewise. - * c-common.h (enum rid): Add new enumeration values RID_DFLOAT32, - RID_DFLOAT64, RID_DFLOAT128. - (T_D32, TEX_D32, T_D64, TEX_D64, T_D128, TEX_D128): New macros. - * c-common.c (c_common_type_for_mode): Handle decimal float modes. - (shorten_compare): Convert DFP/BFP operands to a common type. - (c_common_modes_and_builtins): Register built-in decimal float - types if the target supports them. - (handle_mode_addtribute): Handle MODE_DECIMAL_FLOAT. - * builtins.c (fold_builtin_1): Handle 32, 64 and 128 bit cases of - inf, nan, finite, isinf and isnan builtins. - * c-cppbuiltin.c (builtin_define_decimal_float_constants): New. - (builtin_define_float_constants): Assert non-decimal radix. - (c_cpp_builtins): Register built-in __DEC_EVAL_METHOD__ define. - Call builtin_define_decimal_float_constants for each type. - * c-lex.c (interpret_float): Decode decimal float types from CPP_N - flags. Use real_from_string3, which can handle binary or decimal - floats. - * c-tree.h (enum c_typespec_keyword): Add cts_dfloat32, - cts_dfloat64, cts_dfloat128. - * tree.c (build_common_tree_nodes_2): Add decimal float types. - * tree.h (enum tree_index): Add new enumeration values - TI_DFLOAT32_TYPE, TI_DFLOAT64_TYPE, TI_DFLOAT128_TYPE, - TI_DFLOAT32_PTR_TYPE, TI_DFLOAT64_PTR_TYPE, TI_DFLOAT128_PTR_TYPE. - (dfloat32_type_node): New macro. - (dfloat64_type_node, dfloat128_type_node): Likewise. - (dfloat32_ptr_type_node, dfloat64_ptr_type_node): Likewise. - (dfloat128_ptr_type_node): Likewise. - * c-pretty-print.c (pp_c_floating_constant): Append 32, 64 and 128 - bit decimal floating point types with "df", "dd" and "dl". - * c-format.h (enum format_lengths): Add new enumeration values - FMT_LEN_H, FMT_LEN_D and FMT_LEN_DD. - * c-format.c (printf_length_specs, scanf_length_specs): Add - entries for H, D, DD. - (print_char_table, scan_char_table): Use new entries. - (asm_fprintf_char_table, gcc_diag_char_table, - gcc_cdiag_char_table, gcc_cxxdiag_char_table): Adjust for longer - length arrays. - * defaults.h (DECIMAL32_TYPE_SIZE): Define. - (DECIMAL64_TYPE_SIZE): Likewise. - (DECIMAL128_TYPE_SIZE): Likewise. - (TARGET_DEC_EVAL_METHOD): Likewise. - * doc/extend.texi (Decimal Float): New node. - (Constructing Calls): Document decimal float built-ins. - * doc/tm.texi: Document TARGET_DECIMAL_FLOAT_SUPPORTED_P hook. - * Makefile.in (USER_H): Add $(srcdir)/ginclude/decfloat.h. - * ginclude/decfloat.h: New file. - -2005-12-16 Alan Modra - - * reload.c (find_reloads): Fix comment typo. - * recog.h (recog_memoized): Correct comment. - -2005-12-16 Kazu Hirata - - * basic-block.h, config/i386/winnt.c, config/pa/pa.c, - config/s390/s390.c, dfp.c, expr.c, fold-const.c, params.def, - reload.c, struct-equiv.c, tree-ssa-ccp.c, tree-ssa-pre.c, - tree-ssa-reassoc.c, tree-ssa-structalias.c: Fix comment typos. - * doc/invoke.texi, doc/tm.texi: Fix typos. - -2005-12-16 Ben Elliston - - * real.c (decimal_quad_format): Correct values for emin, emax. - -2005-12-15 DJ Delorie - - * config/m32c/predicates.md (m32c_psi_scale): New. - * config/m32c/m32c.c (m32c_expand_neg_mulpsi3): New. - * config/m32c/muldiv.md (mulpsi3): Support negative constants. - -2005-12-16 Jan Hubicka - - PR rtl-optimization/25224 - * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Free copy - tables. - -2005-12-15 Zdenek Dvorak - Steven Bosscher - - * loop-invariant.c (df): New global variable. - (find_defs, check_dependencies, find_invariant_insn, record_uses, - find_invariants_bb, find_invariants_body, find_invariants, - find_invariants_to_move, move_invariants, free_inv_motion_data, - move_single_loop_invariants, move_loop_invariants): Do not pass df in - arguments. - -2005-12-15 Jakub Jelinek - - * varasm.c (default_unique_section_1): Use special section - names for SECCAT_DATA_REL{,_RO}{,_LOCAL}. - -2005-12-16 Ben Elliston - - * doc/invoke.texi (Warning Options): Document -Walways-true being - enabled by -Wall. - -2005-12-15 Joseph S. Myers - - PR other/25028 - * libgcc2.h (SF_SIZE, DF_SIZE, XF_SIZE, TF_SIZE): Define. - * libgcc2.c (__floatdixf, __floatundixf, __floatditf, - __floatunditf): Use #error if type sizes don't match requirements - of implementation. - (__floatdisf, __floatdidf): Unify. Possibly use XFmode or TFmode - as wider floating-point type. Use #error if type sizes don't - match requirements of implementation. Avoid overflow in computing - Wtype_MAXp1_F * Wtype_MAXp1_F. When special casing conversion, - shift one more bit. Cast 1 to DWtype or UDWtype for shifting. - (__floatundisf, __floatundidf): Likewise. - * config/ia64/hpux.h (XF_SIZE, TF_SIZE): Define. - * config/ia64/ia64.c (ia64_init_libfuncs): Use - _U_Qfcnvfxt_quad_to_quad and _U_Qfcnvxf_quad_to_quad for - TFmode-TImode conversions. - * doc/tm.texi (SF_SIZE, DF_SIZE, XF_SIZE, TF_SIZE): Document. - -2005-12-14 Craig Rodrigues - - * freebsd-spec.h (FBSD_TARGET_OS_CPP_BUILTINS): - Use builtin_define_with_int_value() instead of - adding a new check for every new major FreeBSD version. - -2005-12-14 Andrew Pinski - - * config/t-darwin (darwin-c.o): Depend on $(TREE_H) instead of tree.h. - -2005-12-15 Richard Sandiford - - * config/arm/predicates.md (call_memory_operand): New. - * config/arm/arm.md (*call_mem, *call_value_mem): Use it. - -2005-12-15 Andrew Haley - - * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Guard - against prev_cache_entry == NULL when moving a cache entry to the - head of the list. - -2005-12-15 Nathan Sidwell - - * config/mt/mt.c (mt_override_options): Require lower case - architectures. Revert accidental default to ms2. - * config/mt/mt.h (ASM_SPEC, LIBSPEC, STARTFILE_SPEC, - ENDFILE_SPEC): Require lower case architectures. Revert default - to ms2. - - * doc/invoke.texi (MT Options): Rename and update. - * doc/md.texi (MorphoTech family): Rename and update. - -2005-12-15 Olivier Hainque - - * stor-layout.c (layout_type): Don't complain about a too small - an array element type size compared to its alignment when the - size overflows. - -2005-12-15 Jan Hubicka - - PR target/24969 - * i386.c (classify_argument): Properly adjust offset of bitfield for - substructures. - -2005-12-15 Richard Sandiford - - * final.c (final_scan_insn): Flip in_cold_section_p when changing - between the hot and cold sections. Use current_function_section - to get the new section. - * dwarf2out.c (output_line_info): Use in_cold_section_p to - determine whether we are assembling hot or cold code. - (secname_for_decl, dwarf2out_var_location): Likewise. - (dwarf2out_init, dwarf2out_finish): Use switch_to_section. - * varasm.c (last_text_section): Delete. - (in_cold_section_p): New variable. - (hot_function_section): New function. - (current_function_section): Pass in_cold_section_p as the - reloc argument to select_section. Use it to decide between - unlikely_function_section and hot_function_section. - (assemble_start_function): Use switch_to_section. Set - in_cold_section_p instead of last_text_section. - (assemble_end_function): Use switch_to_section. - (switch_to_section): Don't set last_text_section. - * config/darwin/darwin.c (machopic_select_section): Trust the reloc - argument to make the right choice between hot and cold sections. - -2005-12-15 Nathan Sidwell - - Second part of MS1->MT renaming - * config/mt/mt.md (doloop_end): Call mt_add_loop. - (movqi, movhi): Call mt_set_memflags. - (*movdf_internal): Call mt_split_words. - (reload_inqi, reload_outqi, reload_inhi, reload_outhi): Call - mt_set_memflags. - (cmpsi): Store to mt_compare_op[01]. - (beq, bne, bge, bgt, ble, blt, bgeu, bgtu, bleu, bltu, bunge, - bungt, bunle, bunlt): Call mt_emit_cbranch. - (prologue): Call mt_expand_prologue. - (epilogu): Call mt_expend_epilogue. - (eh_return): Call mt_expand_eh_return. - (eh_epilogue): Call me_emit_eh_epilogue. - (conditional_trap): Store to mt_compare_op[01]. - * config/mt/crti.asm: Adjust comment. - * config/mt/crtn.asm: Adjust comment. - * config/mt/mt.c (MT_INT_ARG_FIRST): Renamed. - (mt_compare_op0, mt_compare_op1): Renamed. - (current_frame_info, zero_frame_info): Adjust type. - (mt_ucmpsi3_libcall): Renamed. - (mt_flag_delayed_branch): Renamed. - (mt_struct_value_rtx, mt_return_addr_rtx): Renamed. - (mt_nops_required, mt_nop_reasons): Renamed. - (mt_asm_output_opcode, mt_get_attr_type, mt_final_prescan_insn, - mt_debug_stack, mt_print_operand_simple_address, - mt_print_operand_address, mt_print_operand): Renamed, adjusted. - (mt_init_cumulative_args, mt_function_arg_slotno, mt_function_arg, - mt_function_arg_advance, mt_arg_partial_bytes, - mt_pass_by_reference, mt_function_arg_boundary, - mt_reg_ok_for_base_p, mt_legitimate_simple_address_p, - mt_legitimate_address_p): Renamed, adjusted. - (mt_cpu): Renamed. - (mt_init_machine_status, mt_override_options, mt_builtin_saveregs, - mt_va_start, mt_compute_frame_size, mt_emit_save_restore, - mt_emit_save_fp, mt_emit_save_regs, mt_interrupt_function_p, - mt_expand_prologue, mt_epilogue_uses, mt_expand_epilogue, - mt_expand_eh_return, mt_emit_eh_prologue, - mt_handl_interrupt_attribute): Renamed, adjusted. - (mt_attribute_table): Renamed, adjusted. - (mt_initial_elimination_offset, mt_generate_compare, - mt_emit_cbranch, mt_set_memflags_1, mt_set_memflags, - mt_secondary_reload_class, mt_function_value, mt_split_words, - mt_pass_in_stack, mt_add_loop, mt_loop_nesting, mt_block_length, - mt_scan_loop, mt_reorg_loops): Renamed, adjusted. - (mt_labels): Renamed. - (mt_add_branches, mt_check_delay_slot, mt_reorg_hazard, - mt_machine_reorg): Renamed, adjusted. - (mt_attribute_table: Renamed. - (TARGET_ATTRIBUTE_TABLE, TARGET_STRUCT_VALUE_RTX, - TARGET_PASS_BY_REFERENCE, TARGET_MUST_PASS_IN_STACK, - TARGET_ARG_PARTIAL_BYTES, TARGET_MACHINE_DEPENDENT_REORG): Adjust. - * config/mt/mt.opt (march): Set mt_cpu_string. - * config/mt/mt.h (mt_ucmpsi3_libcall, mt_cpu): Renamed. - (TARGET_CPU_CPP_BUILTINS): Adjust. - (TARGET_MS1_64_001, TARGET_MS1_16_002, TARGET_MS1_16_003, - TARGET_MS2): Adjust. - (TARGET_VERSION, OVERRIDE_OPTIONS, SECONDARY_RELOAD_CLASS): Adjust. - (MT_MIN_INT): Renamed. - (RETURN_ADDR_RTX): Adjust. - (struct mt_frame_info): Renamed. - (current_frame_info): Adjust type. - (INITIAL_ELIMINATION_OFFSET): Adjust. - (MT_NUM_ARG_REGS): Renamed. - (REG_PARM_STACK_SPACE, FUNCTION_ARG, INIT_CUMULATVE_ARGS, - FUNCTION_ARG_ADVANCE, FUNCTION_ARG_BOUNDARY, FUNCTION_VALUE, - LIBCALL_VALUE, EPILOGUE_USES, EXPAND_BUILTIN_VA_START, - GO_IF_LEGITIMATE_ADDRESS, REG_OK_FOR_BASE_P, ASM_OUTPUT_OPCODE, - FINAL_REPSCAN_INSN, PRINT_OPERAND, PRINT_OPERAND_ADDRESS): Adjust. - (mt_compare_op0, mt_compare_op1): Renamed. - * config/mt/mt-protos.h: Rename prototypes. - -2005-12-15 Richard Guenther - - * tree-flow.h (okay_component_ref_for_subvars): Remove. - (get_ref_base_and_extent): Declare. - * tree-dfa.c (okay_component_ref_for_subvars): Remove. - (get_ref_base_and_extent): New function. - * tree-ssa-alias.c (find_used_portions): Use it. - * tree-ssa-structalias.c (get_constraint_for_component_ref): - Likewise. - * tree-ssa-operands.c (get_expr_operands): Likewise. - -2005-12-15 Paolo Bonzini - - * combine.c: Remove force_to_mode's fourth parameter. - (force_to_mode): Do not handle REG. - (canon_reg_for_combine): New. - (make_field_assignment): Use it where the removed argument was non-NULL. - -2005-12-15 Alan Modra - - PR target/25406 - * config/rs6000/rs6000.c (rs6000_special_round_type_align): Handle - error_mark_node. Make alignment params unsigned. - * config/rs6000/rs6000-protos.h - (rs6000_special_round_type_align): Update prototype. - (rs6000_machopic_legitimize_pic_address): Remove arg names. - -2005-12-14 Ulrich Weigand - - PR rtl-optimization/25310 - * reload1.c (eliminate_regs_in_insn): Handle lowpart SUBREGs - of the eliminable register when substituting into a PLUS. - -2005-12-14 Jakub Jelinek - - PR debug/25023 - * config/i386/i386.c (ix86_force_to_memory): Always use - SImode push for HImode in -m32. - (ix86_free_from_memory): Likewise. - -2005-12-14 Richard Sandiford - - * gcc/config/arm/arm.md: Provide a big-endian version of the - (zero_extend:SI (subreg:QI ...)) splitter. - -2005-12-14 J"orn Rennecke - - * struct-equiv.c (note_local_live): Handle hard regs with different - hard_regno_nregs. - -2005-12-14 Jeff Law - - * tree-ssa-ccp.c (fold_stmt_r): DATA argument is now a pointer - to a structure containing state rather than a pointer to bool. - (case ARRAY_REF): New code to handle folding some array references. - (case ADDR_EXPR): Note when we are processing expressions found - within an ADDRE_EXPR. - (fold_stmt, fold_stmt_inplace): Pass in a structure to fold_stmt_r - for state variables rather than just a pointer to a boolean. - * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Remove - handling of constant string references. - -2005-12-14 Adrian Straetling - - * config/s390/s390.md ("*tstdi_extimm", "*tstsi_extimm"): Merge. - ("*tstdi_cconly_extimm", "*tstsi_cconly_extimm"): Merge. - ("*tstdi_cconly2", "*tstsi_cconly2"): Merge. - Move other tst* patterns to retain partial order. - -2005-12-14 Adrian Straetling - - * config/s390/s390.md ("d0", "1"): New mode attributes. - ("di3", "si3"): Merge. - ("*di3_and", "*si3_and"): Merge. - ("ashrdi3", "ashrsi3"): Merge. - ("*ashrdi3_cc", "*ashrsi3_cc"): Merge. - ("*ashrdi3_cc_and", "*ashrsi3_cc_and"): Merge. - ("*ashrdi3_cconly", "*ashrsi3_cconly"): Merge. - ("*ashrdi3_cconly_and", "*ashrsi3_cconly_and"): Merge. - ("*ashrdi3", "*ashrsi3"): Merge. - ("*ashrdi3_and", "*ashrsi3_and"): Merge. - -2005-12-14 Adrian Straetling - - * config/s390/s390.md ("extenddi2", "extendsi2"): Merge. - ("*extendqidi2_extimm", "*extendqisi2_extimm"): Merge. - ("*extendqidi2", "*extendqisi2") Merge. - ("*extendqidi2_short_displ", "*extendqisi2_short_displ"): Merge. - ("zero_extendhidi2", "zero_extendqidi2"): Merge. - ("*zero_extenddi2_extimm", "*zero_extendsi2_extimm"): Merge. - Move some patterns to retain partial ordering. - -2005-12-14 Adrian Straetling - - * config/s390/s390.md ("atype", "length"): Rewrite. - ("*insv_reg_imm", "*insv_reg_extimm"): Add mode. - -2005-12-14 Sebastian Pop - - * tree-ssa-operands.c (build_ssa_operands): Update leading comment. - -2005-12-14 J"orn Rennecke - - * struct-equiv.c (rtx_equiv_p): Allow arbitrary RVALUE values for - PARALLELs with a mode. - -2005-12-14 Sebastian Pop - - * cfgloopmanip.c (lv_adjust_loop_entry_edge): Adjust the type of - cond_expr parameter. - -2005-12-14 Sebastian Pop - - * loop-unswitch.c (unswitch_loop): Free zero_bitmap before returning. - -2005-12-14 J"orn Rennecke - - PR bootstrap/25397: - - * struct-equiv.c (struct_equiv_init): Fix off-by-one error in clearing - of STACK_REGS bits. - - * struct-euiv.c (rtx_equiv_p): Remove SUBREG case. - -2005-12-14 Jakub Jelinek - - PR target/25254 - PR target/24188 - * config/i386/i386.c (x86_64_elf_select_section): If DECL is not - DECL_P, call get_section rather than get_named_section. Supply - section flags to it. - -2005-12-14 Ben Elliston - - * c-common.c (c_common_truthvalue_conversion): Generalise warning - for addresses converted to booleans; not just function addresses. - * c-typeck.c (build_binary_op): Warn for address comparisons which - can never be NULL (eg. func == NULL or &var == NULL). - * common.opt (Walways-true): New option. - * c-opts.c (c_common_handle_option): Set it with -Wall. - * doc/invoke.texi: Document it. - -2005-12-13 Paul Brook - - * config/m68k/fpgnulib.c (__unordsf2, __unorddf2, __unordxf2, - __floatunsidf, __floatunsisf, __floatunsixf): New functions. - -2005-12-13 Nathan Sidwell - - * config/mt/t-mt (crti.o, crtn.o): Add multilib options. - (EXTRA_MULTILIB_PARTS): Define. - -2005-12-13 J"orn Rennecke - - PR rtl-optimization/20070 / part1 - * flow.c (update_life_info): If PROP_POST_REGSTACK is set, call - count_or_remove_death_notes with kill == -1. - (mark_set_1): Don't add REG_DEAD / REG_UNUSED notes for stack - registers if PROP_POST_REGSTACK is set. - (mark_used_reg): Likewise. - (count_or_remove_death_notes): If kill is -1, don't remove REG_DEAD / - REG_UNUSED notes for stack regs. - * cfgcleanup.c (condjump_equiv_p): Change parameters and processing - to match rtx_equiv_p machinery. Change caller. - (outgoing_edges_match): Likewise. - (try_crossjump_to_edge): Use struct_equiv_block_eq - instead of flow_find_cross_jump. - * basic-block.h (PROP_POST_REGSTACK, STRUCT_EQUIV_START): Define. - (STRUCT_EQUIV_RERUN, STRUCT_EQUIV_FINAL): Likewise. - (STRUCT_EQUIV_NEED_FULL_BLOCK, STRUCT_EQUIV_MATCH_JUMPS): Likewise. - (STRUCT_EQUIV_MAX_LOCAL): Likewise. - (struct struct_equiv_checkpoint, struct equiv_info): Likewise. - (insns_match_p): Update prototype. - (flow_find_cross_jump): Remove prototype. - (struct_equiv_block_eq, struct_equiv_init): Declare. - (rtx_equiv_p, condjump_equiv_p): Likewise. - * struct-equiv.c: Include reload.h. - (IMPOSSIBLE_MOVE_FACTOR): Define. - (assign_reg_reg_set, struct_equiv_make_checkpoint): New functions. - (struct_equiv_improve_checkpoint): Likewise. - (struct_equiv_restore_checkpoint, rtx_equiv_p): Likewise. - (set_dest_equiv_p, set_dest_addr_equiv_p, struct_equiv_init): Likewise. - (struct_equiv_merge, find_dying_input): Likewise. - (resolve_input_conflict, note_local_live): Likewise. - (death_notes_match_p): Change parameters and processing - to match rtx_equiv_p machinery. Change caller. - (insns_match_p): Likewise. - (flow_find_cross_jump): Replace with: - (struct_equiv_block_eq). - - Back out this change: - 2005-03-07 Kazu Hirata - * recog.c (verify_changes): Make it static. - * recog.h: Remove the corresponding prototype. - -2005-12-13 J"orn Rennecke - - * rtlhooks.c (gen_lowpart_general): Handle SUBREGs of floating point - values. - -2005-12-13 Nathan Sidwell - - * config/mt/t-mt (MULTILIB_OPTIONS): Add ms2 - (MULTILIB_DIRNAMES): Add ms2. Prefix ms1 dirs with 'ms1'. - * config/mt/mt.c (ms1_final_prescan): Use TARGET_MS2, - TARGET_MS1_64_001 appropriately. - (ms1_machine_reorg): Use TARGET_MS2. - -2005-12-13 Jakub Jelinek - - PR debug/25023 - PR target/25293 - * expr.c (emit_move_resolve_push): Handle PRE_MODIFY - and POST_MODIFY with CONST_INT adjustment equal to PUSH_ROUNDING. - Fix POST_INC/POST_DEC handling if PUSH_ROUNDING is not identity. - * config/i386/i386.md (pushhi2, pushqi2): Use pushl instead of pushw. - Set mode to SI, adjust constraints. - (pushhi2_rex64, pushqi2_rex64): Set mode to DI. - * config/i386/i386.h (PUSH_ROUNDING): Round up to 4 instead of 2 for - 32-bit code. - -2005-12-13 Carlos O'Donell - - * c-cppbuiltin.c (builtin_define_float_constants): Add - fp_cast parameter, pass to builtin_define_with_hex_fp_value. - Define __FLT_HAS_DENORM__, __DBL_HAS_DENORM__, __LDBL_HAS_DENORM__. - (builtin_define_with_hex_fp_value): Use fp_cast when building macro. - (c_cpp_builtins): If flag_single_precision_constant then set fp_cast - to "((double)%sL)" otherwise "%s". - -2005-12-13 Paul Brook - - * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Pass -meabi=gnu for - apcs/atpcs. - -2005-12-11 Rafael vila de Espndola - - * tree-flow.h: Allow compilation with a C++ compiler. - (struct edge_prediction): Prefix all field names with "ep_". - * predict.c (tree_predicted_by_p): Likewise for struct edge_prediction. - (tree_predict_edge, combine_predictions_for_bb): Likewise. - (remove_predictions_associated_with_edge): Likewise. - -2005-12-12 Jeff Law - - * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Remove - reassociation code. - * passes.c (init_optimization_passes): Run reassociation again - after loop optimizations. - -2005-12-12 Daniel Berlin - - * tree-ssa-dom.c (thread_across_edge): Canonicalize condition - if necessary. - (optimize_stmt): Ditto. - (canonicalize_comparison): New function. - * tree-ssa-operands.c (swap_tree_operands): Make external. - (get_expr_operands): Stop auto-canonicalization. - * tree-ssa-reassoc.c: Rewrite. - (init_optimization_passes): - * tree-flow.h (swap_tree_operands): Prototype. - * Makefile.in (tree-ssa-reassoc.o): Update dependencies. - -2005-12-12 John David Anglin - - * pa.c (pa_output_function_epilogue): Set cfun->machine->in_nsubspa to - indicate function epilogue has been output. - (pa_asm_output_mi_thunk): Likewise. - (output_deferred_plabels): Put plabels in readonly data section when - not generating PIC code. - (som_output_text_section_asm_op): Use .NSUBSPA to output debug - information. Add assert. - (som_output_comdat_data_section_asm_op): New function. - (pa_som_asm_init_sections): Use som_output_comdat_data_section_asm_op - instead of output_section_asm_op for COMDAT sections. - -2005-12-12 J"orn Rennecke - - * cfgcleanup.c (condjump_equiv_p, try_crossjump_to_edge): - Fix whitespace in vincinity of to-be-installed changes. - * struct-equiv.c (merge_memattrs, death_notes_match_p): Fix whitespace. - (insns_match_p): Likewise. - -2005-12-12 Nathan Sidwell - - * config.gcc (ms1): Replace with ... - (mt): ... this. - * config/ms1: Rename to ... - * config/mt: ... here. Rename ms1 files to mt. - * config/mt/mt.c: Adjust gt-mt.h #include. - * config/mt/t-mt (LIB1ASMSRCS, LIB2FUNCS_EXTRA): Adjust. - (crti.o, crtn.o): Adjust file names. - -2005-12-12 Gabriel Dos Reis - - * varray.h: Allow compilation with a C++ compiler. - (union varray_data_tag): Prefix all field names with "vdt_". - (VARRAY_CHAR, VARRAY_UCHAR, VARRAY_SHORT, VARRAY_USHORT, - VARRAY_INT, VARRAY_UINT, VARRAY_LONG, VARRAY_ULONG, - VARRAY_WIDE_INT, VARRAY_UWIDE_INT, VARRAY_GENERIC_PTR, - VARRAY_GENERIC_PTR_NOGC, VARRAY_CHAR_PTR, VARRAY_RTX, - VARRAY_RTVEC, VARRAY_TREE, VARRAY_BITMAP, VARRAY_REG, VARRAY_BB, - VARRAY_ELT_LIST, VARRAY_EDGE, VARRAY_TREE_PTR): Adjust definition. - (VARRAY_PUSH_CHAR, VARRAY_PUSH_UCHAR, VARRAY_PUSH_SHORT, - VARRAY_PUSH_USHORT, VARRAY_PUSH_INT, VARRAY_PUSH_UINT, - VARRAY_PUSH_LONG, VARRAY_PUSH_ULONG, VARRAY_PUSH_WIDE_INT, - VARRAY_PUSH_UWIDE_INT, VARRAY_PUSH_GENERIC_PTR, - VARRAY_PUSH_GENERIC_PTR_NOGC, VARRAY_PUSH_CHAR_PTR, - VARRAY_PUSH_RTX, VARRAY_PUSH_RTVEC, VARRAY_PUSH_TREE, - VARRAY_PUSH_BITMAP, VARRAY_PUSH_REG, VARRAY_PUSH_BB, - VARRAY_PUSH_EDGE, VARRAY_PUSH_TREE_PTR): Likewise. - (VARRAY_TOP_CHAR, VARRAY_TOP_UCHAR, VARRAY_TOP_SHORT, - VARRAY_TOP_USHORT, VARRAY_TOP_INT, VARRAY_TOP_UINT, - VARRAY_TOP_LONG, VARRAY_TOP_ULONG, VARRAY_TOP_WIDE_INT, - VARRAY_TOP_UWIDE_INT, VARRAY_TOP_GENERIC_PTR, - VARRAY_TOP_GENERIC_PTR_NOGC, VARRAY_TOP_CHAR_PTR, VARRAY_TOP_RTX, - VARRAY_TOP_RTVEC, VARRAY_TOP_TREE, VARRAY_TOP_BITMAP, - VARRAY_TOP_REG, VARRAY_TOP_BB, VARRAY_TOP_EDGE, - VARRAY_TOP_TREE_PTR): Likewise. - * varray.c (varray_grow): Likewise. - (varray_clear): Likewise. - -2005-12-12 Alan Modra - - PR target/25299 - * config/rs6000/rs6000.c (rs6000_special_round_type_align): Increase - alignment to doubleword if the first field is a double array. - * config/rs6000/linux64.h (TARGET_ALIGN_NATURAL): Define. - -2005-12-11 Daniel Berlin - - * tree-ssa-structalias.c (process_constraint): Remove code to - transform addressofs into scalar. - (create_variable_info_for): In whole-program IPA, globals don't - point to ANYTHING by default. - -2005-12-11 Daniel Berlin - - * timevar.def (TV_IPA_PTA): New. - * tree-pass.h (pass_ipa_pta): New - * tree-ssa-structalias.c: Include cgraph.h - (in_ipa_mode): New. - (predbitmap_obstack): New. - (EXECUTE_IF_IN_NONNULL_BITMAP): New. - (struct constraint_stats): Add num_edges. - (new_var_info): Don't call bitmap_clear. - (struct constraint_edge): Update docs. - (new_constraint_edge): Remove src param. - (struct constraint_graph): Add zero_weight_succs, - zero_weight_preds. Update docs. - (constraint_expr_equal): Reformat. - (constraint_edge_equal): Update for removal of src. - (constraint_edge_less): Ditto. - (constraint_edge_vec_find): Ditto. - (erase_graph_self_edge): Update for removal of src and and zero - weight bitmap. - (clear_edges_for_node): Ditto. - (add_graph_edge): Ditto. - (get_graph_weights): Ditto. - (allocate_graph_weights): Ditto. - (merge_graph_nodes): Ditto. - (int_add_graph_edge): Ditto. - (valid_graph_edge): Ditto. - (valid_weighted_graph_edge): Ditto. - (build_constraint_graph): Ditto. - (scc_visit): Ditto. - (collapse_nodes): Ditto. - (process_unification_queue): Ditto. - (topo_visit): Ditto. - (solve_graph): Ditto. - (do_structure_copy): Ditto. - (perform_var_substitution): Ditto. - Init and release obstack. - (handle_ptr_arith): Try to resolve directly. - (find_func_aliases): Don't call update_alias_info here - Handle RETURN_EXPR, and CALL_EXPR's in IPA mode. - (do_sd_constraint): Add code for propagating faster. - Update. - (do_ds_constraint): Ditto. - (count_num_arguments): New function. - (create_function_info_for): Ditto. - (create_variable_info_for): Handle FUNCTION_DECL. - (intra_create_variable_infos): Use make_constraint_to_anything. - (init_alias_vars): Init obstacks here. - (need_to_solve): Handle zero weight graph changes. - (compute_points_to_sets): Call update_alias_info here. - (delete_points_to_sets): Free zero weight preds/succs here. - (gate_ipa_pta): New. - (ipa_pta_execute): New - -2005-12-11 Daniel Berlin - - * tree-ssa-structalias.c (var_anyoffset): Removed. - (anyoffset_tree): Ditto. - (anyoffset_id): Ditto. - (do_deref): Take vector of constraints, no return value. - Update to work on vector. - (get_constraint_for): Ditto. - (get_constraint_for_component_ref): Ditto. - (do_structure_copy): Ditto. - (handle_ptr_arith): Ditto. - (find_func_aliases): Ditto. - (set_uids_in_ptset): Remove anyoffset handling. - (init_base_vars): Ditto. - -2005-12-10 Mark Mitchell - - PR c++/25010 - * ipa-inline.c (cgraph_clone_inlined_nodes): Do not assume that - DECL_EXTERNAL functions have no bodies. Tidy. - -2005-12-10 Andreas Schwab - - * except.c (switch_to_exception_section): Only define if - TARGET_UNWIND_INFO is not defined. - -2005-12-10 Richard Sandiford - - * config/darwin.h (HAS_INIT_SECTION): Remove definition. - (INIT_SECTION_ASM_OP): Restore empty definition from before 2005-12-07. - -2005-12-10 Richard Sandiford - - * output.h (init_section, fini_section): Delete. - * varasm.c (init_section, fini_section): Delete. - (init_varasm_once): Don't initialize them. - * doc/tm.texi (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP): Say that - there are no corresponding varasm.c variables. - -2005-12-10 Richard Sandiford - - * dwarf2out.c (default_eh_frame_section): Delete, moving handling - of EH_FRAME_SECTION_NAME into... - (switch_to_eh_frame_section): ...here. Try to set eh_frame_section - if it is still null. - * except.c (default_exception_section): Delete, moving most - of the code to... - (switch_to_exception_section): ...this new function. Set - exception_section if it is still null, then switch to it. - (output_function_exception_table): Use switch_to_exception_section. - * varasm.c (exception_section, eh_frame_section): Update comments. - (get_section): Hoist use of SECTION_NAMED. - (init_varasm_once): Don't set exception_section and eh_frame_section. - * output.h (default_exception_section): Delete. - (default_eh_frame_section): Delete. - -2005-12-09 Bernd Schmidt - - * config/bfin/bfin.c: Include "cgraph.h". - (bfin_load_pic_reg): Omit loading pic reg if in a local function. - Return the reg that holds the pointer to the GOT. - (bfin_expand_prologue): Use return value of bfin_load_pic_reg when - doing stack checking. - -2005-12-09 Diego Novillo - - * tree.c (recompute_tree_invariant_for_addr_expr): Rename from - recompute_tree_invarant_for_addr_expr. - Update uses everywhere. - -2005-12-09 Aldy Hernandez - - * config/ms1/t-ms1 (MULTILIB_OPTIONS): Define. - (MULTILIB_DIRNAMES): Define. - -2005-12-09 Ulrich Weigand - - PR target/25311 - * config/s390/s390.c (struct s390_address): New field literal_pool. - (s390_decompose_address): Compute literal_pool field. Do not - assume register %r13 is always (and solely) used as pool base. - (s390_extra_constraint_str): Use literal_pool field. - -2005-12-09 Thiemo Seufer - - * config/mips/mips.c (override_options): Don't allow too small - integers in FP registers. - -2005-12-09 Ulrich Weigand - - * config/s390/s390.c (s390_function_ok_for_sibcall): Use - targetm.binds_local_p to check for local function calls. - -2005-12-09 Alan Modra - - PR debug/24908 - * dwarf2out.c (dwarf2out_frame_debug_expr): Don't assert that - call_used_regs can't be used to save reg in another reg. - -2005-12-08 Volker Reichelt - Christophe Jaillet - - * ipa-type-escape.c (analyze_variable): Use gcc_assert instead of - abort. - * except.c (output_ttype): Likewise. - * tree-object-size.c (collect_object_sizes_for): Likewise. - (check_for_plus_in_loops_1): Likewise. - (check_for_plus_in_loops): Likewise. - (compute_object_sizes): Use gcc_unreachable instead of abort. - -2005-12-08 Nathan Sidwell - - * config/ms1/ms1.md (UNSPEC_LOOP): New constant. - (loop_end, loop_init, doloop_end): New insns. - * config/ms1/ms1.h (LOOP_FIRST, LOOP_LAST): New. - (SPECIAL_REG_FIRST, FIRST_PSEUDO_REGISTER): Adjust. - (FIXED_REGISTERS, CALL_USED_REGISTERS): Adjust. - (REG_CLASS_CONTENTS, REGISTER_NAMES): Adjust. - * config/ms1/ms1.c: #include basic-block.h - (struct machine_function): Add has_loops field. - (ms1_add_loop): New. - (MAX_LOOP_DEPTH, MAX_LOO_LENGTH): New. - (struct loop_info, struct loop_work): New. - (ms1_loop_nesting, ms1_block_length, ms1_scan_loop): New workers. - (ms1_reorg_loops): New loop optimization. - (ms1_machine_reorg): Call it. - * config/ms1/ms1-protos.h (ms1_add_loop): Declare. - -2005-12-08 Zdenek Dvorak - - PR tree-optimization/25248 - * tree-scalar-evolution.c (follow_ssa_edge_in_rhs): Do not use - evolution_of_loop from the failed attempt. Remove handling - of MULT_EXPR. - -2005-12-08 Gabriel Dos Reis - - * tree.h (DECL_EXTERNAL): Clarify documentation. - -2005-12-08 Andreas Krebbel - Jakub Jelinek - - PR target/25268 - * config/s390/s390.c (s390_decompose_shift_count): Remove BITS - argument. Don't drop outer ANDs. - (s390_extra_constraint_str, print_shift_count_operand): Adjust callers. - * config/s390/s390-protos.h (s390_decompose_shift_count): Adjust - prototype. - * config/s390/predicates.md (setmem_operand): Remove. - (shift_count_operand): Rename to... - (shift_count_or_setmem_operand): ... this. Adjust - s390_decompose_shift_count caller. - * config/s390/s390.md (di3_31_and, di3_64_and, - ashrdi3_cc_31_and, ashrdi3_cconly_31_and, ashrdi3_31_and, - ashrdi3_cc_64_and, ashrdi3_cconly_64_and, ashrdi3_64_and, - si3_and, ashrsi3_cc_and, ashrsi3_cconly_and, ashrsi3_and, - rotl3_and, setmem_long_and): New insns. - (di3_31, di3_64, ashrdi3_cc_31, ashrdi3_cconly_31, - ashrdi3_31, ashrdi3_cc_64, ashrdi3_cconly_64, ashrdi3_64, - si3, ashrsi3_cc, ashrsi3_cconly, ashrsi3, rotl3, - di3, ashrdi3): Use shift_count_or_setmem_operand instead - of shift_count_operand. - (setmem_long): Use shift_count_or_setmem_operand instead of - setmem_operand. - -2005-12-08 Daniel Jacobowitz - Andreas Tobler - - * Makefile.in (ALL_GTFILES_H): Replace sed statement with more portable - tr expression. - -2005-12-07 J"orn Rennecke - - * expr.c (force_operand): Use convert_to_mode for conversions. - -2005-12-07 J"orn Rennecke - - * reload.h (reg_equiv_invariant): Declare. - * reload.c (refers_to_regno_for_reload_p): Allow R to be a pseudo - register also when reg_equiv_invariant[R] is set. - -2005-12-07 Richard Sandiford - Andreas Tobler - - * config/darwin.h: Guard section variables with #ifndef USED_FOR_TARGET. - -2005-12-07 Daniel Berlin - - * tree-ssa-pre.c (bitmap_set_and): New function. - (bitmap_set_and_compl): New function. - (bitmap_set_empty_p): New function. - (insert_extra_phis): New function. - (compute_avail): Use insert_extra_phis. - -2005-12-07 Adrian Straetling - - * config/s390/s390.c (s390_expand_atomic): New function. - Adjust comment of helper functions. - * config/s390/s390-protos.h (s390_expand_atomic): Declare. - * config/s390/s390.md ("ATOMIC"): New code macro. - ("atomic"): Corresponding new code attribute. - ("sync_lock_test_and_set[hq]i", - "sync_{new_,old_,}{and,ior,xor,add,sub,nand}[hq]i"): New pattern. - -2005-12-07 Adrian Straetling - - * config/s390/s390.c (s390_expand_mask_and_shift, - struct alignment_context, init_alignment_context, - s390_expand_cs_hqi): New. - * config/s390/s390-protos.h (s390_expand_cs_hqi): Declare. - * config/s390/s390.md ("sync_compare_and_swaphi", - "sync_compare_and_swapqi"): New pattern. - -2005-12-07 Daniel Berlin - - Fix PR tree-optimization/25291 - * tree-ssa-operands.c (add_call_clobber_ops): Remove - redundant and crashing check. - -2005-12-08 Alan Modra - - PR target/25212 - * config/rs6000/rs6000.c (legitimate_indexed_address_p): Relax - tests further when !strict && reload_in_progress. - (print_operand): Check that both operands of indexed address are regs. - (print_operand_address): Likewise. - * config/rs6000/rs6000.h (INT_REG_OK_FOR_INDEX_P): Simplify. - (INT_REG_OK_FOR_BASE_P): Correct. - -2005-12-07 J"orn Rennecke - - Preparation for PR rtl-optimization/20070 / part1 - * basic-block.h (insns_match_p, flow_find_cross_jump): Declare. - * cfgcleanup.c (condjump_equiv_p): New function, broken out of - outgoing_edges_match. - (outgoing_edges_match): Use condjump_equiv_p. - (merge_memattrs, insns_match_p, flow_find_cross_jump): Move from here - into.. - * struct-equiv.c: New file. - (death_notes_match_p) New function, broken out of insns_match_p. - * Makefile.in (OBJS-common): Add struct-equiv.o. - (struct-equiv.o): New target. - -2005-12-07 Richard Sandiford - - * coretypes.h: Revert previous change. - * config/darwin.h: Revert previous reversion. - * config/avr/avr.h (progmem_section): Guard with #ifndef IN_LIBGCC2. - -2005-12-07 Richard Sandiford - - * coretypes.h (section): Provide dummy definition for target files. - * config/darwin.h: Revert previous change. - -2005-12-07 Rafael vila de Espndola - - * doc/sourcebuild.texi (all.build, install-normal): Remove. - * configure.ac: Remove all.build and install-normal from target_list - * configure: Regenerate. - * Makefile.in (install): Don't depend on install-normal. - -2005-12-07 Rafael vila de Espndola - - * Makefile.in: Document the use of stamps. - -2005-12-07 Rafael vila de Espndola - - * doc/gty.texi: Remove instructions for adding a dependency on s-gtype. - * Makefile.in: Add code to compute some dependencies on s-gtype - automatically. Remove the declaration of those dependencies. - -2005-12-07 Richard Sandiford - - * gcc/reload.c (push_secondary_reload): Fix typo: - s/insn_constraint/scratch_constraint/. - -2005-12-07 Richard Sandiford - - * config/darwin.h: Guard section variables with #ifndef IN_LIBGCC2. - -2005-12-07 Richard Sandiford - - * config/alpha/alpha.c (alpha_start_function): Use switch_to_section. - (alpha_elf_select_rtx_section): Return the selected section rather - than emitting assembly code. - (alpha_write_linkage): Emit a ".link" directive directly and then - set in_section to NULL. - (vms_asm_out_constructor): Use switch_to_section. - (vms_asm_out_destructor): Likewise. - (unicosmk_output_common): Set in_section to NULL instead of calling - the dummy common_section function. - (unicosmk_text_section): Delete in favor of... - (unicosmk_output_text_section_asm_op): ...this new function. - (unicosmk_data_section): Delete in favor of... - (unicosmk_output_data_section_asm_op): ...this new function. - (unicosmk_init_sections): New function. - (unicosmk_output_deferred_case_vectors): Use switch_to_section. - (unicosmk_output_ssib): Set in_section to NULL instead of calling - the dummy ssib_section function. - (unicosmk_section_buf): Delete. - * config/alpha/alpha-protos.h (unicosmk_text_section): Delete. - (unicosmk_data_section): Delete. - * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_LOCAL): Use switch_to_section. - (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS, sbss_section, sdata_section) - (SECTION_FUNCTION_TEMPLATE): Delete. - * config/alpha/unicosmk.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP) - (READONLY_DATA_SECTION, EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS) - (common_section, COMMON_SECTION, ssib_section, SSIB_SECTION): Delete. - (ASM_OUTPUT_ALIGNED_LOCAL): Use switch_to_section. - (TARGET_ASM_INIT_SECTIONS): Define. - * config/alpha/vms.h (LINK_SECTION_ASM_OP, LITERALS_SECTION_ASM_OP) - (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete. - (link_section, literals_section): Delete. - (ASM_OUTPUT_DEF): Emit the ".literal" directive directly and then - set in_section to NULL. - - * config/arm/aof.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP): Delete. - (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS, ZERO_INIT_SECTION): Delete. - (COMMON_SECTION): Delete. - (TARGET_ASM_INIT_SECTIONS): Define. - (ASM_OUTPUT_COMMON): Set in_section to NULL rather than calling - the dummy common_section function. - * config/arm/aout.h (ASM_OUTPUT_ALIGNED_LOCAL): Use switch_to_section. - * config/arm/arm.c (get_jump_table_size): Use pointer comparison - between readonly_data_section and text_section to check whether - read-only data is being put in the text section. - (arm_output_function_epilogue): Use switch_to_section. - (arm_elf_asm_constructor): Likewise. - (thumb_call_via_reg): Replace call to in_text_section with - a comparison between in_section and text_section. - (arm_file_end): Use switch_to_section. - (aof_text_section): Delete in favor of... - (aof_output_text_section_asm_op): ...this new function. - (aof_data_section): Delete in favor of... - (aof_output_data_section_asm_op): ...this new function. - (aof_asm_init_sections): New function. - (zero_init_section): Moved from config/arm/aof.h. - (aof_dump_imports, aof_file_start): Use switch_to_section. - * config/arm/arm.h (thumb_call_via_label): Update comment. - * config/arm/arm-protos.h (aof_text_section, aof_data_section): Delete. - (common_section): Delete. - * config/arm/pe.h (ASM_DECLARE_FUNCTION_NAME): Use switch_to_section. - (ASM_DECLARE_OBJECT_NAME): Update the type of save_section. Use the - global switch_to_section function instead of the old port-local one. - (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS, DRECTVE_SECTION_FUNCTION) - (SWITCH_TO_SECTION_FUNCTION): Delete. - (drectve_section): Redefine as a macro. - * config/arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_BSS): - (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use get_named_section and - switch_to_section. - - * config/avr/avr.c (progmem_section): New variable. - (avr_output_progmem_section_asm_op): New function. - (avr_asm_init_sections): New function. - (avr_output_addr_vec_elt): Use switch_to_section. - * config/avr/avr.h (progmem_section): Declare. - (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete. - (READONLY_DATA_SECTION): Delete. - (TARGET_ASM_INIT_SECTIONS): Define. - (ASM_OUTPUT_CASE_LABEL): Use switch_to_section. - * config/avr/avr-protos.h (progmem_section): Delete. - - * config/bfin/bfin.h (ASM_OUTPUT_LOCAL): Use switch_to_section. - - * config/c4x/c4x.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS) - (INIT_SECTION_FUNCTION, FINI_SECTION_FUNCTION): Delete. - - * config/darwin-sections.def: New file. - * config/darwin.c: Define all sections in darwin-sections.def. - (output_objc_section_asm_op, darwin_init_sections): New functions. - (machopic_output_indirection): Use switch_to_section. - (machopic_select_section): Return the selected section rather than - emitting assembly code. Replace the static function table with - inline conditional expressions. Update the tests of last_text_section - and move them into the FUNCTION_DECL block. - (machopic_select_rtx_section): Return the selected section rather than - emitting assembly code. - (machopic_asm_out_constructor, machopic_asm_out_destructor) - (darwin_file_end): Use switch_to_section. - * config/darwin.h: Use darwin-sections.def to declare sections. - (INIT_SECTION_ASM_OP): Remove empty definition. - (HAS_INIT_SECTION): Define this instead. - (SECTION_FUNCTION, EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete. - (READONLY_DATA_SECTION, TARGET_ASM_EXCEPTION_SECTION): Delete. - (TARGET_ASM_EH_FRAME_SECTION): Delete. - (TARGET_ASM_INIT_SECTIONS): Define. - * config/darwin-protos.h (darwin_init_sections): Declare. - (machopic_picsymbol_stub_section, machopic_picsymbol_stub1_section) - (machopic_symbol_stub_section, machopic_symbol_stub1_section): Delete. - (machopic_lazy_symbol_ptr_section, machopic_nl_symbol_ptr_section) - (constructor_section, destructor_section, mod_init_section): Delete. - (mod_term_section): Delete. - (darwin_exception_section, darwin_eh_frame_section): Delete. - (machopic_select_section): Return a section. - (machopic_select_rtx_section): Likewise. - (text_coal_section, text_unlikely_section, text_unlikely_coal_section) - (const_section, const_coal_section, const_data_section): Delete. - (const_data_coal_section, data_coal_section, cstring_section): Delete. - (literal4_section, literal8_section, constructor_section): Delete. - (mod_init_section, mod_term_section, destructor_section): Delete. - (objc_class_section, objc_meta_class_section, objc_category_section) - (objc_class_vars_section, objc_instance_vars_section): Delete. - (objc_cls_meth_section, objc_inst_meth_section): Delete. - (objc_cat_cls_meth_section, objc_cat_inst_meth_section): Delete. - (objc_selector_refs_section, objc_selector_fixup_section): Delete. - (objc_symbols_section, objc_module_info_section): Delete. - (objc_image_info_section, objc_protocol_section): Delete. - (objc_string_object_section, objc_constant_string_object_section) - (objc_class_names_section, objc_meth_var_names_section): Delete. - (objc_meth_var_types_section, objc_cls_refs_section): Delete. - (machopic_lazy_symbol_ptr_section, machopic_nl_symbol_ptr_section) - (machopic_symbol_stub_section, machopic_picsymbol_stub_section) - (darwin_exception_section, darwin_eh_frame_section): Delete. - * config/t-darwin (darwin.o): Depend on config/darwin-sections.def. - - * config/frv/frv.c (frv_asm_out_constructor): Use switch_to_section. - (frv_asm_out_destructor): Likewise. - * config/frv/frv.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete. - (SDATA_SECTION_FUNCTION, FIXUP_SECTION_FUNCTION): Delete. - (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use switch_to_section and - get_named_section. - (ASM_OUTPUT_CASE_LABEL): Use switch_to_section. - * config/frv/frv-protos.h (fixup_section, sdata_section, sbss_section) - (data_section): Delete. - - * config/i386/cygming.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS) - (DRECTVE_SECTION_FUNCTION): Delete. - (drectve_section): Redefine as a macro that sets in_section after - emitting the directive. - (SWITCH_TO_SECTION_FUNCTION): Delete. - * config/i386/darwin.h (ASM_OUTPUT_ALIGN): Replace call to - in_text_section with comparison between in_section and text_section. - * config/i386/i386.c (x86_64_elf_select_section): Return the section - rather than emitting assembly code. Use get_named_section. - (x86_output_aligned_bss, ix86_file_end): Use switch_to_section and - get_named_section. - (machopic_output_stub): Use switch_to_section. - * config/i386/nwld.c (nwld_named_section_asm_out_constructor) - (nwld_named_section_asm_out_destructor): Use get_section and - switch_to_section. - - * config/ia64/ia64.c (ia64_select_rtx_section): Return the section - rather than emitting assembly code. - (ia64_rwreloc_select_section): Likewise. - (ia64_rwreloc_select_rtx_section): Likewise. - * config/ia64/ia64-protos.h (sdata_section, sbss_section): Delete. - * config/ia64/sysv4.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use - switch_to_section. - (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete. - (SDATA_SECTION_FUNCTION, SBSS_SECTION_FUNCTION): Delete. - - * config/iq2000/iq2000.c (iq2000_select_rtx_section): Return the - section rather than emitting assembly code. - (iq2000_select_section): Likewise. - * config/iq2000/iq2000.h (rdata_section, sdata_section): Delete. - (sbss_section): Delete. - - * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_BSS): Use switch_to_section - and get_named_section. - * config/m32r/m32r-protos.h (sbss_section, sdata_section): Delete. - - * config/mcore/mcore-elf.h (EXPORTS_SECTION_ASM_OP): Delete. - (SUBTARGET_EXTRA_SECTIONS, SUBTARGET_EXTRA_SECTION_FUNCTIONS): Delete. - (EXPORT_SECTION_FUNCTION, SUBTARGET_SWITCH_SECTIONS): Delete. - (MCORE_EXPORT_NAME): Emit the exports directive directly, then set - in_section to NULL. - (ASM_DECLARE_FUNCTION_NAME): Use switch_to_section. - (ASM_DECLARE_OBJECT_NAME): Update the type of save_section. Use the - global switch_to_section function instead of the old port-local one. - * config/mcore/mcore.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS) - (SWITCH_SECTION_FUNCTION): Delete. - * config/mcore/mcore-pe.h (SUBTARGET_SWITCH_SECTIONS): Delete. - (DRECTVE_SECTION_ASM_OP, SUBTARGET_EXTRA_SECTIONS): Delete. - (SUBTARGET_EXTRA_SECTION_FUNCTIONS, DRECTVE_SECTION_FUNCTION): Delete. - (MCORE_EXPORT_NAME): Emit ".section .drectve" directly, then set - in_section to NULL. - (ASM_DECLARE_OBJECT_NAME): Update the type of save_section. Use the - global switch_to_section function instead of the old port-local one. - (ASM_DECLARE_FUNCTION_NAME): Use switch_to_section. - - * config/mips/mips.c (mips_file_start): Update comment. - (mips_output_aligned_bss): Use switch_to_section and get_named_section. - (mips_output_aligned_decl_common): Use switch_to_section. - (mips_select_rtx_section): Return the section rather than emitting - assembly code. Use get_named_section. - (mips_function_rodata_section: Likewise get_section. - (build_mips16_function_stub): Use switch_to_section. - * config/mips/mips.h (ASM_OUTPUT_IDENT): Use switch_to_section. - (SDATA_SECTION_ASM_OP): Delete. - * config/mips/vxworks.h (EXTRA_SECTIONS): Delete. - (EXTRA_SECTION_FUNCTIONS): Delete. - - * config/mmix/mmix.c (mmix_file_start, mmix_file_end) - (mmix_asm_output_aligned_local): Use switch_to_section. - - * config/pa/pa.c (som_readonly_data_section, som_one_only_data_section) - (som_one_only_readonly_data_section): New variables. - (pa_output_function_epilogue): Set in_section to NULL instead of - calling forget_section. - (output_deferred_plabels): Use select_section. - (pa_asm_output_mi_thunk): Likewise. Set in_section to NULL instead - of calling forget_section. - (pa_asm_output_aligned_bss, pa_asm_output_aligned_common) - (pa_asm_output_aligned_local): Use select_section. - (som_text_section_asm_op): Delete in favor of... - (som_output_text_section_asm_op): ...this new function. - (pa_som_asm_init_sections): New function. - (pa_select_section): Return the section rather than emitting - assembly code. - * config/pa/pa.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete. - (SOM_READONLY_DATA_SECTION_FUNCTION): Delete. - (SOM_ONE_ONLY_READONLY_DATA_SECTION_FUNCTION): Delete. - (SOM_ONE_ONLY_DATA_SECTION_FUNCTION, FORGET_SECTION_FUNCTION): Delete. - * config/pa/pa-protos.h (som_text_section_asm_op): Delete. - (som_readonly_data_section, som_one_only_readonly_data_section) - (som_one_only_data_section, forget_section): Delete. - * config/pa/som.h (TEXT_SECTION_ASM_OP): Delete. - (TARGET_ASM_INIT_SECTIONS): Define. - (READONLY_DATA_SECTION, TARGET_ASM_EXCEPTION_SECTION): Delete. - - * config/rs6000/rs6000.c (read_only_data_section): New variable. - (private_data_section, read_only_private_data_section): New variables. - (sdata2_section, toc_section): New variables. - (rs6000_file_start): Use switch_to_section. - (rs6000_assemble_integer): Use comparisons against in_section - instead of calling in_toc_section and in_text_section. Use - unlikely_text_section_p. - (rs6000_elf_output_toc_section_asm_op): New function, derived - from the old rs6000/sysv4.h toc_section function. - (rs6000_elf_asm_init_sections): New function. - (rs6000_elf_select_rtx_section, rs6000_elf_select_section): Return - the section rather than emitting assembly code. - (machopic_output_stub): Use switch_to_section. - (toc_section): Delete dummy function. - (rs6000_elf_asm_out_constructor, rs6000_elf_asm_out_destructor): Use - switch_to_section and get_section. - (rs6000_xcoff_output_readonly_section_asm_op): New function. - (rs6000_xcoff_output_readwrite_section_asm_op): New function. - (rs6000_xcoff_output_toc_section_asm_op): New function, derived from - the old rs6000/xcoff.h toc_section function. - (rs6000_xcoff_asm_init_sections): New function. - (rs6000_xcoff_select_section, rs6000_xcoff_select_rtx_section): Return - the section rather than emitting assembly code. - (rs6000_xcoff_file_start): Use switch_to_section. - (rs6000_xcoff_file_end): Likewise. - * config/rs6000/rs6000-protos.h (toc_section, sdata_section): Delete. - (sdata2_section, sbss_section, private_data_section): Delete. - (read_only_data_section, read_only_private_data_section): Delete. - * config/rs6000/sysv4.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS) - (TOC_SECTION_FUNCTION, SDATA_SECTION_FUNCTION, SDATA2_SECTION_FUNCTION) - (SBSS_SECTION_FUNCTION, INIT_SECTION_FUNCTION): Delete. - (FINI_SECTION_FUNCTION): Delete. - (TARGET_ASM_INIT_SECTIONS): Define. - (ASM_OUTPUT_ALIGNED_LOCAL): Use switch_to_section. - * config/rs6000/xcoff.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS) - (READ_ONLY_DATA_SECTION_FUNCTION, PRIVATE_DATA_SECTION_FUNCTION) - (READ_ONLY_PRIVATE_DATA_SECTION_FUNCTION, TOC_SECTION_FUNCTION) - (READONLY_DATA_SECTION): Delete. - (TARGET_ASM_INIT_SECTIONS): Define. - (ASM_DECLARE_FUNCTION_NAME): Use switch_to_section. Set in_section - to NULL rather than no_section. - (TARGET_ASM_EXCEPTION_SECTION): Delete. - - * config/sh/sh.c (sh_file_start): Use switch_to_section. - - * config/sparc/sparc.c (emit_pic_helper): Use switch_to_section. - (sparc_output_deferred_case_vectors): Likewise. Remove argument - from call to current_function_section. - - * config/stormy16/stormy16.c: Include ggc.h and gt-storm16.h. - (bss100_section): New variable. - (xstormy16_asm_output_aligned_common): Use switch_to_section. - (xstormy16_asm_init_sections): New function. - (xstormy16_asm_out_destructor, xstormy16_asm_out_constructor): Use - switch_to_section and get_section. - (xstormy16_output_addr_vec): Use switch_to_section. Remove argument - from calls to current_function_section. - * config/stormy16/stormy16.h (EXTRA_SECTIONS): Delete. - (XSTORMY16_SECTION_FUNCTION, EXTRA_SECTION_FUNCTIONS): Delete. - (TARGET_ASM_INIT_SECTIONS): Define. - * config/stormy16/stormy16-protos.h (bss100_section): Delete. - - * config/svr3.h (ASM_OUTPUT_LOCAL): Use switch_to_section. - (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS, INIT_SECTION_FUNCTION) - (FINI_SECTION_FUNCTION): Delete. - - * config/v850/v850.c: Include gt-v850.h. - (rosdata_section, rozdata_section, tdata_section, zdata_section) - (zbss_section): New variables. - (v850_output_aligned_bss): Use switch_to_section. - (v850_asm_init_sections): New function. - (v850_select_section): Return the section rather than emitting - assembly code. - * config/v850/v850.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS) - (ZDATA_SECTION_ASM_OP, ZBSS_SECTION_ASM_OP, TDATA_SECTION_ASM_OP) - (ROSDATA_SECTION_ASM_OP, ROZDATA_SECTION_ASM_OP): Delete. - (TARGET_ASM_INIT_SECTIONS): Define. - * config/v850/v850-protos.h (sdata_section, rosdata_section): Delete. - (sbss_section, tdata_section, zdata_section, rozdata_section): Delete. - (zbss_section): Delete. - - * config/vax/vaxv.h (ASM_OUTPUT_LOCAL): Use switch_to_section. - - * config/vx-common.h (vxworks_exception_section): Delete. - (TARGET_ASM_EXCEPTION_SECTION): Delete. - - * config/xtensa/xtensa.c (xtensa_select_rtx_section): Return the - section rather than emitting assembly code. - * config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Use - switch_to_section. - - * Makefile.in (GTFILES): Add $(srcdir)/output.h. - * coretypes.h (section): New union and typedef. - * dbxout.c (FORCE_TEXT): Use switch_to_section. Remove argument - from call to current_function_section. - (dbxout_function_end, dbxout_init, dbxout_source_file, dbxout_finish) - (dbxout_symbol_location): Use switch_to_section. - * dwarf2out.c (named_section_eh_frame_section): Delete, moving - most of the code into... - (default_eh_frame_section): ...here. Return a section. - (collect2_eh_frame_section): Delete, moving most of the code into.. - (switch_to_eh_frame_section): ...this new function. - (debug_info_section, debug_abbrev_section, debug_aranges_section) - (debug_macinfo_section, debug_line_section, debug_loc_section) - (debug_pubnames_section, debug_str_section, debug_ranges_section): New - variables. - (output_call_frame_info): Call switch_to_eh_frame_section instead of - eh_frame_section. Use switch_to_section and get_section. - (dwarf2out_begin_prologue): Use switch_to_section. - (AT_string_form): Check the flags in debug_str_section instead of - DEBUG_STR_SECTION_FLAGS. - (output_comp_unit): Use switch_to_section, get_section, and - debug_info_section. - (output_line_info, secname_for_decl): Use unlikely_text_section_p. - (dwarf2out_begin_block): Use switch_to_section. Remove argument - from call to current_function_section. - (dwarf2out_var_location): Use unlikely_text_section_p. - (dwarf2out_source_line): Use switch_to_section. Remove argument - from call to current_function_section. - (dwarf2out_start_source_file, dwarf2out_end_source_file) - (dwarf2out_define, dwarf2out_undef: Use switch_to_section and - debug_macinfo_section. - (dwarf2out_init): Initialize the new section variables. Use them - instead of calls to named_section_flags. Use switch_to_section. - (output_indirect_string): Use switch_to_section and debug_str_section. - (dwarf2out_finish): Use switch_to_section and the new section - variables. - * except.c (default_exception_section): Return the section instead - of emitting assembly code. - (output_function_exception_table): Use the global exception_section - variable instead of the target hook. Use switch_to_section. Remove - argument from call to current_function_section. - * final.c (HAVE_READONLY_DATA_SECTION): Delete. - (shorten_branches): Use pointer comparisons to detect whether the - text section is the same as readonly_data_section. - (profile_function): Use switch_to_section. Remove argument from - call to current_function_section. - (final_scan_insn): Likewise. Update use of last_text_section. - * gengtype.c (open_base_files): Add an include of output.h. - * output.h (text_section, data_section, readonly_data_section) - (ctors_section, dtors_section, bss_section, init_section) - (fini_section, sdata_section): Turn into section pointers. - (in_text_section, in_unlikely_text_section, exports_section) - (drectve_section, named_section, mergeable_string_section) - (last_text_section_name): Delete. - (default_exception_section, default_eh_frame_section): Return sections. - (SECTION_DECLARED, SECTION_NAMED): New macros. - (SECTION_MACH_DEP): Bump value. - (section_common, named_section, unnamed_section): New structures. - (unnamed_section_callback): New typedef. - (section): New union. - (sbss_section, exception_section, eh_frame_section): New variables. - (in_section, last_text_section): Turn into section pointers. - (get_unnamed_section, get_section, get_named_section): New functions. - (mergeable_constant_section, function_section): Return a section. - (unlikely_text_section): Likewise. - (current_function_section): Likewise. Remove the decl argument. - (unlikely_text_section_p, switch_to_section): New functions. - (output_section_asm_op): New function. - (set_named_section_flags, named_section_flags, named_section_real) - (named_section_first_declaration): Delete. - (default_select_section, default_elf_select_section): Return a section. - (default_elf_select_section_1, default_function_rodata_section) - (default_no_function_rodata_section, default_select_rtx_section) - (default_elf_select_rtx_section): Likewise. - * rtl.h (in_data_section): Delete. - * sdbout.c (sdbout_one_type): Use switch_to_section. - * system.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Poison. - (READONLY_DATA_SECTION, TARGET_ASM_EXCEPTION_SECTION): Poison. - (TARGET_ASM_EH_FRAME_SECTION): Poison. - * target-def.h (TARGET_ASM_INIT_SECTIONS): New macro. - (TARGET_ASM_EXCEPTION_SECTION, TARGET_ASM_EH_FRAME_SECTION): Delete. - (TARGET_ASM_OUT): Update after above changes. - * target.h (init_sections): New hook. - (exception_section, eh_frame_section): Delete. - (select_section, select_rtx_section, function_rodata_section): Return - a section rather than emitting assembly code. - * varasm.c (text_section, data_section, readonly_data_section) - (ctors_section, dtors_section, bss_section, init_section) - (fini_section): Turn into section pointers. - (sdata_section, sbss_section, exception_section): New variables. - (eh_frame_section): New variable. - (in_section): Make global and turn into a section pointer. - (last_text_section): Turn into a section pointer. - (unnamed_sections): New variable. - (in_named_name, last_text_section_name): Delete. - (EXTRA_SECTION_FUNCTIONS): Delete. - (in_named_entry): Delete. - (section_htab): New variable, replacing... - (in_named_htab): ...this deleted variable. - (section_entry_eq, section_entry_hash): New functions, based on... - (in_named_entry_eq, in_named_entry_hash): ...these deleted functions. - (get_unnamed_section, get_section): New functions. - (unlikely_text_section): Return a section instead of emitting - assembly code. - (in_text_section, in_unlikely_text_section, in_data_section): Delete. - (get_named_section_flags, named_section_first_declaration): Delete. - (unlikely_text_section_p): New function. - (named_section_real, named_section): Delete. - (get_named_section): New function. - (asm_output_bss, asm_output_aligned_bss): Use switch_to_section. - (function_section): Return a section rather than emitting - assembly code. - (current_function_section): Likewise. Remove argument. Use - last_text_section if nonnull, otherwise use function_section. - (default_function_rodata_section): Return a section rather than - emitting assembly code. Use get_section. - (default_no_function_rodata_section): Return a section rather than - emitting assembly code. - (variable_section): Use switch_to_section and get_named_section. - (mergeable_string_section): Return a section rather than emitting - assembly code. Use get_section. Make static. Don't take special - countermeasures for empty strings. - (mergeable_constant_section): Return a section rather than emitting - assembly code. Use get_section. - (default_named_section_asm_out_destructor): Use switch_to_section - and get_section. - (default_dtor_section_asm_out_destructor): Use switch_to_section. - (default_named_section_asm_out_constructor): Use switch_to_section - and get_section. - (default_ctor_section_asm_out_constructor): Use switch_to_section. - (assemble_start_function): Likewise. Set last_text_section to - NULL rather than no_section. Change the type of save_section. - (assemble_zeros, assemble_variable): Use the section flags to detect - whether or not a section is text. - (assemble_static_space): Use switch_to_section. - (assemble_trampoline_template): Likewise. - (output_constant_def_contents): Use switch_to_section and - get_named_section. - (output_constant_pool_1): Use switch_to_section. Use the section - flags to see whether sections contain mergeable data. - (init_varasm_once): Initialize section_htab instead of in_named_htab. - Initialize new section variables. Call TARGET_ASM_INIT_SECTIONS. - (default_elf_asm_named_section): Use SECTION_DECLARED to detect - whether a section has already been declared. - (default_select_section, default_elf_select_section): Return a - section rather than emitting assembly code. - (default_elf_select_section_1): Likewise. Use bss_section for - SECCAT_BSS if nonnull. Use get_named_section. - (default_select_rtx_section): Return a section rather than - emitting assembly code. - (default_elf_select_rtx_section): Likewise. Use get_named_section. - (file_end_indicate_exec_stack): Use switch_to_section and get_section. - (output_section_asm_op, switch_to_section): New functions. - * vmsdbgout.c (vmsdbgout_finish): Use switch_to_section and - get_named_section. - - * doc/tm.texi: Expand the introduction to the sections documentation. - (TRAMPOLINE_SECTION): Document new interface. - (SDATA_SECTION_ASM_OP): Document new macro. - (READONLY_DATA_SECTION): Delete. - (SDATA_SECTION_ASM_OP): Document new macro. - (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete. - (TARGET_ASM_INIT_SECTIONS): Document new hook. - (TARGET_ASM_SELECT_SECTION, TARGET_ASM_FUNCTION_RODATA_SECTION) - (TARGET_ASM_SELECT_RTX_SECTION): Adjust for new interface. - (TARGET_EXCEPTION_SECTION, TARGET_EH_FRAME_SECTION): Delete. - -2005-12-07 Alan Modra - - * gcc.c (init_gcc_specs): Match braces inside conditionally - compiled strings. - -2005-12-06 Geoffrey Keating - - * config/darwin.h (TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT): New. - -2005-12-06 Aldy Hernandez - - PR C++/24138 - * tree.c (integer_all_onesp): Always return true if all bits on. - - * testsuite/g++.dg/init/array0.C: New. - -2005-12-06 Adrian Straetling - - * doc/md.texi: Adapt to implementation. - -2005-12-06 Andreas Schwab - - * opts.c (decode_options): Fix typo in message. - -2005-12-06 Alan Modra - - PR other/13873 - * longlong.h: Merge PPC tests from upstream. - -2005-12-06 Richard Guenther - - * fold-const.c (fold_convert): Do not build and fold - CONVERT_EXPR, but always use NOP_EXPR. - -2005-12-06 Jan Beulich - - * config/i386/i386.c (builtin_description): Use MASK_SSE2 for - __builtin_ia32_paddq and __builtin_ia32_psubq. - (ix86_init_mmx_sse_builtins): Use MASK_SSE|MASK_3DNOW_A for - __builtin_ia32_pshufw. - * config/i386/i386.md (mmx_adddi3, mmx_subdi3): Depend on TARGET_SSE2. - -2005-12-05 James E Wilson - - PR target/24934 - * opts.c (decode_options): Turn off partitioning if flag_unwind_tables - is set. - -2005-12-05 Daniel Berlin - - * print-tree.c (print_node): Ditto. - * tree-dfa.c (add_referenced_var): Tag's don't have DECL_INITIAL. - * tree-dump.c (dequeue_and_dump): Check for decl_common structure - before accessing DECL_ARTIFICIAL. - Handle new tag tree codes. - * tree-flow-inline.h (clear_call_clobbered): Update for tag - changes. - (unmodifiable_var_p): Ditto. - * tree-flow.h (mem_tag_kind): Remove. - (struct var_ann_d): Remove mem_tag_kind member. - * tree-gimple.c (is_gimple_reg): Tags are not gimple registers. - * tree-pretty-print.c (dump_generic_node): Handle memory tags. - * tree-ssa-alias.c (init_alias_info): Update for memory tag changes. - (group_aliases): Ditto. - (setup_pointers_and_addressables): Ditto. - (is_escape_site): Ditto. - (may_alias_p): Ditto. - (create_tag_raw): New function. - (create_memory_tag): Use it. - (dump_alias_info): Update for tags. - (may_be_aliased): Ditto. - (add_type_alias): Ditto. - (new_type_alias): Ditto. - (create_sft): Ditto. - (create_structure_vars): Ditto. - * tree-ssa-ccp.c (get_default_value): Ditto. - * tree-ssa-operands.c (get_expr_operands): Ditto. - (add_stmt_operand): Ditto. - (add_call_clobber_ops): Remove duplicated condition. - * tree-ssa.c (verify_flow_insensitive_alias_info): Update for - tags. - * tree-tailcall.c (suitable_for_tail_opt_p): Ditto. - * tree-vect-transform.c (vect_create_data_ref_ptr): Ditto. - * tree.c (init_ttree): Update structures for new tree codes. - (tree_code_size): Update sizes for new tree codes. - (make_node_stat): Don't try to set common things on minimal - structures. - (tree_node_structure): Update for tags. - (is_global_var): Ditto. - * tree.def: Add new tree codes. - * tree.h (MTAG_P): New macro. - (TREE_MEMORY_TAG_CHECK): Ditto. - (SSA_VAR_P): Update for tags. - (struct tree_memory_tag): New structure. - (MTAG_GLOBAL): New macro. - (union tree_node): Add memory tag member. - * treestruct.def (TS_MEMORY_TAG): New. - -2005-12-05 Dale Johannesen - - * config/i386/xmmintrin.h (_MM_TRANSPOSE4_PS): Fix to match - what was approved (PR 24323). - -2005-12-05 Gabriel Dos Reis - - * doc/c-tree.texi (Function Bodies): Remove description of - RETURN_INIT. - -2005-12-05 Joseph S. Myers - - * doc/libgcc.texi (__floatunsisf, __floatunsidf, __floatunsitf, - __floatunsixf, __floatundisf, __floatundidf, __floatunditf, - __floatundixf, __floatuntisf, __floatuntidf, __floatuntitf, - __floatuntixf, __powisf2, __powidf2, __powixf2, __mulsc3, - __muldc3, __multc3, __mulxc3, __divsc3, __divdc3, __divtc3, - __divxc3): Document. - -2005-12-05 Geoffrey Keating - - * config/arm/arm.c (arm_cxx_determine_class_data_visibility): Preserve - previous behaviour. - * config/darwin.h (TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT): Define to - hook_bool_void_false. - (TARGET_CXX_DETERMINE_CLASS_DATA_VISIBILITY): Define. - * config/darwin.c (darwin_cxx_determine_class_data_visibility): New. - - * config/darwin.c (machopic_select_section): It's not defined - as weak if it's only marked as weak_import. - - * config/darwin-protos.h (darwin_cxx_determine_class_data_visibility): - Prototype. - - * varasm.c (default_binds_local_p_1): Weakrefs don't bind locally. - A hidden weak object does bind locally. Strong linkonce data - counts like any other strong symbol for binding. - (weak_finish_1): Don't specially handle weakrefs, they no longer - arrive here. - (assemble_alias): Weakrefs can't be TREE_PUBLIC yet. - * c-common.c (handle_alias_attribute): Allow static aliases - of variables. - (handle_weakref_attribute): Don't call declare_weak on weakrefs. - * gthr-dce.h: Make weakrefs static. - * gthr-tpf.h: Likewise. - * gthr-solaris.h: Likewise. - * gthr-posix.h: Likewise. - * gthr-posix95.h: Likewise. - * config/darwin.c (darwin_encode_section_info): static weakref - variables are not necessarily defined in this translation unit. - * doc/extend.texi (Function Attributes): Mention that an alias - attribute creates a definition for the thing it's attached to. - Change the documentation for weakref to say that the thing - it's attached to must be static. - - * config/rs6000/host-darwin.c (segv_handler): Unblock SEGV so - we don't go into an infinite loop. - -2005-12-05 Paolo Bonzini - - * config/rs6000/predicates.md (logical_const_operand): Split - out of logical_operand. - (logical_operand): Use it. - * config/rs6000/rs6000.md (cmp -> xor peephole2): Use - logical_const_operand. - -2005-12-05 Jan Beulich - - * config/i386/i386.c (enum ix86_builtins): Remove IX86_BUILTIN_CMPNEPS - and IX86_BUILTIN_CMPNESS. - (ix86_init_mmx_sse_builtins): Remove ti_ftype_ti_ti. - * config/i386/i386.h (ALIGN_MODE_128): Don't check TFmode explicitly. - * config/i386/i386.md (movti_internal): Correct type attribute. - Simplify mode attribute. - (movti_rex64, movsf_1, movdf_nointeger, movdf_integer, movtf_internal): - Correct type attribute. - (absxf2): Correct operator. - * config/i386/mmx.md (mov_internal_rex64, mov_internal, - movv2sf_internal_rex64, movv2sf_internal): Correct type attribute. - * config/i386/sse.md (mov_internal, movv2df_internal): Simplify - mode attribute. - (sse2_vmsqrtv2df2): Correct mode attribute. - -2005-12-05 Jan Beulich - - * config/ia64/ia64.md (rotlsi3_internal): Don't split if rotating by - 16 bits. Provide insn pattern for this case. - -2005-12-05 Jan Beulich - - * libgcc2.c (__popcountSI2): Don't use wide type for iterator and - result. - (__popcountDI2): Likewise. - -2005-12-04 John David Anglin - - PR target/25166 - * pa/pa.c (pa_hpux_init_libfuncs): Add _U_Qfcnvxf_usgl_to_quad and - _U_Qfcnvxf_udbl_to_quad to set of initialized libfuncs. - * pa/quadlib.c (_U_Qfcnvxf_usgl_to_quad, _U_Qfcnvxf_udbl_to_quad): New - functions. - -2005-12-04 Joseph S. Myers - - * c-typeck.c (null_pointer_constant_p): New function. - (build_conditional_expr, build_c_cast, convert_for_assignment, - build_binary_op): Use it. - -2005-12-04 Joseph S. Myers - - * c-common.c (binary_op_error): Do not allow NOP_EXPR. - (c_common_truthvalue_conversion): Handle NOP_EXPR the same as - CONVERT_EXPR. - (check_function_arguments_recurse): Allow both NOP_EXPR and - CONVERT_EXPR but check conversions preserve precision. - * c-typeck.c (pointer_diff): Allow both NOP_EXPR and CONVERT_EXPR - but check conversions preserve precision. - (build_unary_op): Don't allow NOP_EXPR. Use gcc_unreachable () in - default case. - -2005-12-04 Roger Sayle - - PR c/7776 - * common.opt (Wstring-literal-comparison): New command line option. - * c-opts.c (c_common_handle_option): Set it with -Wall. - * c-typeck.c (parser_build_binary_op): Issue warning if either - operand of a comparison operator is a string literal, except for - testing equality or inequality against NULL. - - * doc/invoke.texi: Document new -Wstring-literal-comparison option. - -2005-12-03 Joseph S. Myers - - * c-common.c (c_sizeof_or_alignof_type): Use fold_convert instead - of building a NOP_EXPR. - (c_alignof_expr): Likewise. Handle CONVERT_EXPR the same as - NOP_EXPR. - * c-convert.c (convert): Use fold_convert instead of building - NOP_EXPRs and CONVERT_EXPRs directly. Don't special case - c_objc_common_truthvalue_conversion returning a NOP_EXPR. Remove - #if 0 code. - * c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Handle - NOP_EXPR the same as CONVERT_EXPR. - * c-typeck.c (build_function_call): Use fold_convert instead of - building a NOP_EXPR directly. - (build_compound_expr): Handle NOP_EXPR the same as CONVERT_EXPR. - -2005-12-03 Alan Modra - - PR rtl-optimization/25197 - * dwarf2out.c (dwarf2out_frame_debug_expr ): Assert we - have a reg. - -2005-12-02 Stuart Hastings - - * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Remove -fpic - warning. - -2005-12-03 Joseph S. Myers - - * c-typeck.c (default_function_array_conversion, - build_function_call): Allow for CONVERT_EXPR as well as NOP_EXPR. - (build_conditional_expr): Apply integer_zerop to orig_op1 and - orig_op2. Don't check them for NOP_EXPR. - (build_c_cast, convert_for_assignment): Don't check for NOP_EXPR - around integer zero. - -2005-12-03 Alan Modra - - * config/rs6000/rs6000.c (rs6000_stack_t): Remove toc_save_p, - toc_save_offset, toc_size, lr_size. - (rs6000_stack_info): Use memset rather than bss struct copy to init. - Test rs6000_ra_ever_killed last in condition setting lr_save_p. - Adjust for removal of unused rs6000_stack_t fields. - (debug_stack_info): Adjust. - (rs6000_ra_ever_killed): Expand FIND_REG_INC_NOTE. Test for calls - first, and don't bother checking for set/inc of lr on sibcalls. - (rs6000_emit_epilogue): Tidy code restoring stack pointer. - -2005-12-02 Jakub Jelinek - - PR target/25199 - * config/i386/i386.md (movqi_1): Only force imovx for alternative - 5 if operand 1 is not aligned. Undo previous constraint change. - * config/i386/predicates.md (aligned_operand): Use MEM_ALIGN. - -2005-12-02 Richard Guenther - - * tree.h (build): Remove prototype. - (build, _buildN1, _buildN2, _buildC1, _buildC2): Remove macros. - * tree.c (build): Remove. - (build0_stat): Update comment. - -2005-12-02 Richard Guenther - - * tree-ssa-loop-im.c (schedule_sm): Use buildN instead of build. - * tree-complex.c (update_complex_assignment, expand_complex_div_wide): - Likewise. - * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref, - maybe_fold_offset_to_component_ref): Likewise. - * tree-ssa-dom.c (thread_across_edge, - simplify_rhs_and_lookup_avail_expr, - find_equivalent_equality_comparison, record_equivalences_from_stmt): - Likewise. - * gimple-low.c (lower_function_body, lower_return_expr): Likewise. - * tree-eh.c (do_return_redirection, honor_protect_cleanup_actions, - lower_try_finally_switch): Likewise. - * tree-if-conv.c (add_to_dst_predicate_list, - replace_phi_with_cond_modify_expr, ifc_temp_var): Likewise. - * gimplify.c (internal_get_tmp_var, gimple_build_eh_filter, - voidify_wrapper_expr, build_stack_save_restore, gimplify_bind_expr, - gimplify_return_expr, gimplify_decl_expr, gimplify_switch_expr, - gimplify_case_label_expr, gimplify_exit_expr, gimplify_self_mod_expr, - shortcut_cond_r, shortcut_cond_expr, gimplify_cond_expr, - gimplify_init_ctor_eval, gimplify_init_constructor, - gimplify_variable_sized_compare, gimplify_boolean_expr, - gimplify_cleanup_point_expr, gimple_push_cleanup, gimplify_target_expr, - gimplify_expr, gimplify_body, gimplify_function_tree, - force_gimple_operand): Likewise. - * tree-ssa-pre.c (create_expression_by_pieces): Likewise. - * tree-mudflap.c (mf_decl_cache_locals, mf_build_check_statement_for, - mx_register_decls): Likewise. - * tree-nested.c (init_tmp_var, save_tmp_var, get_static_chain, - get_frame_field, finalize_nesting_tree_1): Likewise. - * tree-inline.c (setup_one_parameter): Likewise. - * tree-vect-transform.c (vectorizable_condition): Likewise. - * tree-outof-ssa.c (insert_copy_on_edge, insert_backedge_copies): - Likewise. - * tree-profile.c (tree_gen_edge_profiler): Likewise. - * tree-cfg.c (factor_computed_gotos, gimplify_val): Likewise. - * c-parser.c (c_parser_if_body, c_parser_switch_statement): Likewise. - * tree-chrec.h (build_polynomial_chrec): Likewise. - -2005-12-02 Richard Guenther - - * config/alpha/alpha.c (alpha_va_start, alpha_gimplify_va_arg_1i, - alpha_gimplify_va_arg): Use buildN and fold_buildN where applicable. - * config/frv/frv.c (frv_expand_builtin_va_start): Likewise. - * config/s390/s390.c (s390_va_start, s390_gimplify_va_arg): Likewise. - * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise. - * config/i386/i386.c (ix86_va_start, ix86_gimplify_va_arg): Likewise. - * config/rs6000/rs6000.c (rs6000_va_start, rs6000_gimplify_va_arg): - Likewise. - * config/sh/sh.c (sh_va_start, sh_gimplify_va_arg_expr, - sh_adjust_unroll_max): Likewise. - * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Likewise. - * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise. - * config/xtensa/xtensa.c (xtensa_va_start, xtensa_gimplify_va_arg_expr): - Likewise. - * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start): - Likewise. - * config/mips/mips.c (mips_va_start, mips_gimplify_va_arg_expr): - Likewise. - -2005-12-02 Richard Guenther - - * tree-vrp.c (build_assert_expr_for, process_assert_insertions_for, - simplify_cond_using_ranges): Use buildN instead of build. - * tree-tailcall.c (adjust_accumulator_values, - adjust_return_value): Likewise. - * tree-sra.c (generate_one_element_ref, generate_copy_inout, - generate_element_copy, generate_element_zero, - generate_one_element_init): Likewise. - * tree-ssa-forwprop.c (forward_propagate_into_cond_1): Likewise. - * lambda-code.c (gcc_loop_to_lambda_loop, lbv_to_gcc_expression, - lle_to_gcc_expression, lambda_loopnest_to_gcc_loopnest, - perfect_nestify): Likewise. - -2005-12-02 John David Anglin - - * pa.c (pa_secondary_reload): Revise initialization of variable regno. - -2005-12-02 Gabriel Dos Reis - - * ggc.h (GGC_RESIZEVEC): New. - -2005-12-02 Volker Reichelt - - * gcc.c (execute): Improve readability. - -2005-12-02 Richard Guenther - - * tree-cfg.c (mark_used_vars): New function. - (dump_function_to_file): Dump only used VAR_DECLs. - -2005-12-02 Richard Guenther - - * convert.c (convert_to_integer): Fix compare for nonpositive - constant to use tree_int_cst_sgn <= 0. - -2005-12-02 Richard Guenther - - * convert.c (convert_to_integer): Use fold_convert instead - of fold_build1 (NOP_EXPR, ...). Use tree_int_cst_sgn < 0 - instead of comparing against 0. Use build_int_cst instead - of converting integer_zero_node. - -2005-12-02 Richard Guenther - - * tree-pretty-print.c (op_symbol): Handle LROTATE_EXPR - and RROTATE_EXPR. - -2005-12-02 Alan Modra - - PR target/21017 - * combine.c (simplify_logical ): Simplify more patterns to - rotates. - -2005-12-02 Alan Modra - - PR middle-end/25176 - * function.c (expand_function_end): Emit blockage for unwinder - after return label. - -2005-12-01 Roger Sayle - - * tree.h (TREE_OVERFLOW): Make this flag/predicate specific to - constant nodes, i.e. INTEGER_CST, REAL_CST, etc... - * tree-vrp.c (compare_values): Only check TREE_OVERFLOW for - integer constant comparisons. - -2005-12-02 Jon Grimm - Janis Johnson - David Edelsohn - Ben Elliston - - * dfp.h, dfp.c: New files. - * Makefile.in (DECNUM, DECNUMINC, LIBDECNUMBER): New variables. - (DECNUM_H): Likewise. - (LIBDEPS, LIBS, BACKEND): Append $(LIBDECNUMBER). - (INCLUDES): Append $(DECNUMINC). - (OBJS-common): Add dfp.o. - (dfp.o): New rule. - * real.h (EXP_BITS): Pinch one bit to .. - (struct real_value): Add decimal field. - (real_format): Change table size, update documentation. - (REAL_MODE_FORMAT): Update for to handle float, decimal float. - (real_from_string3): Declare. - (decimal_single_format): Declare. - (decimal_double_format): Declare. - (decimal_quad_format): Declare. - (REAL_VALUE_TO_TARGET_DECIMAL32): New. - (REAL_VALUE_TO_TARGET_DECIMAL64): New. - (REAL_VALUE_TO_TARGET_DECIMAL128): New. - * real.c: Include dfp.h. - (normalize): Early return for decimal floats. - (do_add): Zero decimal field. - (do_compare): Call do_decimal_compare for decimal floats. - (do_fix_trunc): Likewise, call decimal_do_fix_trunc. - (real_arithmetic): Call decimal_real_arithmetic for decimal - floating point operands. - (real_identical): If a and b are of differing radix, return false. - (real_to_integer): Call decimal_real_to_integer if the value is a - decimal float. - (real_to_integer2): Likewise, call decimal_real_to_integer2. - (real_to_decimal): Likewise, call decimal_real_to_decimal. - (real_to_hexadecimal): Place "N/A" in the return string for - decimal float. - (real_from_string3): New variant, given a mode. - (real_maxval): Use decimal_real_maxval for decimal floats. - (round_for_format): Use decimal_round_for_format for decimals. - (real_convert): Use decimal_real_convert where appropriate. - (significand_size): Handle base 10. - (encode_decimal_single, decode_decimal_single, - encode_decimal_double, decode_decimal_double, encode_decimal_quad, - decode_decimal_quad): New functions. - (decimal_single_format): New. - (decimal_double_format): New. - (decimal_quad_format): New. - * machmode.def: Add SD, DD and TD decimal floating point modes. - * machmode.h (FLOAT_MODE_P, SCALAR_FLOAT_MODE_P, MODES_WIDEN_P): - Include MODE_DECIMAL_FLOAT. - (DECIMAL_FLOAT_MODE_P): New. - * mode-classes.def (MODE_DECIMAL_FLOAT): New mode class. - * genmodes.c (struct mode_data): Add counter field. - (struct mode_data): Update comment for format. - (blank_mode): Initialise counter field. - (new_mode): Increment counter field for each mode defined. - (complete_mode): Handle MODE_DECIMAL_FLOAT, update check for mode - using a format. - (make_complex_modes): Handle modes containing `D'. - (DECIMAL_FLOAT_MODE, FRACTIONAL_DECIMAL_FLOAT_MODE): New. - (make_decimal_float_mode): New. - (reset_float_format): Handle MODE_DECIMAL_FLOAT. - (cmp_modes): Compare counter field if other characteristics - similar. - (emit_real_format_for_mode): Support formats for decimal floats. - * doc/rtl.texi (Machine Modes): Document SD, DD and TDmodes. - Document MODE_DECIMAL_FLOAT. - -2005-12-02 Alan Modra - - * simplify-rtx.c (simplify_plus_minus): Do simplify constants. - Delete dead code. - -2005-12-01 Richard Henderson - - * optabs.c (expand_vec_cond_expr): Use EXPAND_NORMAL. - -2005-12-01 Kaveh R. Ghazi - - * builtins.def (BUILT_IN_PUTC, BUILT_IN_PUTC_UNLOCKED): New. - - * config/pa/pa.c (pa_init_builtins): If we detect - DONT_HAVE_FPUTC_UNLOCKED, set builtin fputc_unlocked to - putc_unlocked. - -2005-12-01 Richard Guenther - - * fold-const.c (fold_binary): Use fold_build2, not - fold (build (...)). - -2005-12-01 Nathan Sidwell - - * config/ms1/ms1.c (ms1_reorg_hazard): Don't count noop moves. - - * vec.h (VEC_block_remove): New. - -2005-12-01 Gabriel Dos Reis - - PR c/13384 - * c-common.c (lvalue_error): Fix wording. - -2005-12-01 Richard Guenther - - * tree-ssa-forwprop.c (forward_propagate_addr_expr): Fix - thinko in last patch. - -2005-12-01 Geoffrey Keating - - * config/t-slibgcc-darwin (SHLIB_LINK): Use -single_module rather - than -flat_namespace. - -2005-12-01 Ben Elliston - - * mklibgcc.in: Parameterise the script to build soft float - functions by iterating over each type, rather than cloning the - code for each type. - -2005-11-30 Kaveh R. Ghazi - - PR middle-end/25158 - * builtins.c (fold_builtin_fputs): Defer check for missing - replacement functions. - -2005-11-30 Kean Johnston - - * config/i386/i386.c: Check the value of SUPPORTS_ONE_ONLY, not - simply its presense in case targets #define SUPPORTS_ONE_ONLY 0. - -2005-11-30 Richard Guenther - - PR tree-optimization/22501 - * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): New - function split out from ... - (forward_propagate_addr_expr): ... here. Use it to propagate - ADDR_EXPRs to all uses. - -2005-11-30 Volker Reichelt - - * tree.h (CASE_FLT_FN, CASE_INT_FN): New macros. - * builtins.c (expand_builtin_mathfn): Use them. - (expand_builtin_mathfn_2): Likewise. - (expand_builtin_mathfn_3): Likewise. - (expand_builtin_int_roundingfn): Likewise. - (expand_builtin): Likewise. - (integer_valued_real_p): Likewise. - (fold_builtin_int_roundingfn): Likewise. - (fold_builtin_bitop): Likewise. - (fold_builtin_logarithm): Likewise. - (fold_builtin_1): Likewise. - * convert.c (convert_to_integer): Likewise. - * fold-const.c (negate_mathfn_p): Likewise. - (tree_expr_nonnegative_p): Likewise. - -2005-11-30 Dale Johannesen - Andrew Pinski - - * combine.c (find_split_point): Sign extend bitmask - when changing bitfield assignment to IOR of AND. - -2005-11-30 Nathan Sidwell - - * config/ms1/ms1.md (decrement_and_branch_until_zero): Add early - clobber to scratch reg. - (*decrement_and_branch_until_zero_no_clobber): Remove. - (decrement_and_branch peephole): Add dummy scratch reg to pattern. - (mulhish3): Use TARGET_MS1_16_003, TARGET_MS2. - * config/ms1/ms1.opt (mmul): Remove. - * config/ms1/ms1.h (ASM_SPEC): Cope with uppercase arch names. - (LINK_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Default to 16-002. - -2005-11-30 John David Anglin - Bernd Schmidt - - * pa/predicates.md (symbolic_operand): Add comment. - * pa/pa.md (reload_insi_r1, reload_indi_r1): New reload expanders. - * pa/pa-protos.h (pa_secondary_reload_class): Delete. - * pa/pa.c (TARGET_SECONDARY_RELOAD): Define. - (pa_secondary_reload_class): Delete. - (pa_secondary_reload): New function derived from SECONDARY_RELOAD_CLASS - and pa_secondary_reload_class. Reorder some checks. Update inline - copy of symbolic operand. - * pa/pa.h (SECONDARY_RELOAD_CLASS): Delete. - -2005-11-30 Nathan Sidwell - - * loop-doloop.c (add_test): Only add jump notes if we did emit a - jump. - -2005-11-30 Jeff Law - - * tree-ssa-uncprop.c (associate_equivalences_with_edges): Properly - handle SSA_NAME_OCCURS_IN_ABNORMAL_PHI. - -2005-11-30 Jakub Jelinek - - * config/ia64/ia64.c (ia64_expand_tls_address): Add ORIG_OP1 argument. - Move ADDEND_{HI,LO} computation into TLS_MODEL_INITIAL_EXEC case. - (ia64_expand_move): Adjust caller. - - * config/ia64/ia64.c (ia64_expand_atomic_op): Only use - fetchadd{4,8}.acq instruction if CODE is PLUS or MINUS, for MINUS - negate VAL. - -2005-11-30 Paolo Bonzini - - * simplify-rtx.c (simplify_plus_minus): Remove final parameter. - Always produce an output if we can remove NEGs or canonicalize - (minus (minus ...)) expressions. Provide a fast path for the - two-operand case. - (simplify_gen_binary): Do not call simplify_plus_minus. - (simplify_binary_operation_1): Reassociate at the end of the - function. - -2005-11-29 Evan Cheng - - * config/i386/xmmintrin.h (_MM_TRANSPOSE4_PS): Rewrite using high/low - moves and unpack to speed up. - -2005-11-29 David S. Miller - - * config/sparc/sparc.c (gen_compare_reg): Kill 2nd and 3rd - argument, they are always sparc_compare_op0 and sparc_compare_op1. - (gen_v9_scc): Update callers. - * config/sparc/sparc.md: Likewise. - * config/sparc/sparc-protos.h: Update extern declaration. - - * tree-into-ssa.c (rewrite_into_ssa): Fix comment typo. - -2005-11-29 Andrew Pinski - - * fold-const.c (negate_expr) : Add break after - the if. - -2005-11-29 Andrew Pinski - - * fold-const.c (negate_expr_p): Return true for BIT_NOT_EXPR. - (fold_unary) : Move -(~a) transformation to ... - (negate_expr): Here. - -2005-11-29 Ben Elliston - - * config/i386/i386.h (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN): - Fix typo in comment. - -2005-11-29 Ben Elliston - - * Makefile.in (clean-target): Depend on clean-target-libgcc. - (clean-target-libgcc): Import rule from the top-level Makefile.in. - -2005-11-29 Kaveh R. Ghazi - - PR middle-end/20109 - PR middle-end/25120 - * builtins.c (init_target_chars): New. - (expand_builtin_printf, expand_builtin_fprintf, - expand_builtin_sprintf, fold_builtin_sprintf, - maybe_emit_sprintf_chk_warning, fold_builtin_sprintf_chk, - fold_builtin_snprintf_chk, fold_builtin_printf, - fold_builtin_fprintf): Check for matching format strings using - the target charset. - -2005-11-29 Paul Brook - - * config.gcc: Do not use fixproto on m68k-elf. - -2005-11-28 Roger Sayle - - * expmed.c (div_cost): Replace with... - (sdiv_cost, udiv_cost): New. - (init_expmed): Initialize sdiv_cost and udiv_cost, not div_cost. - Rename the div and mod fields, used to initialize sdiv_pow2_cheap - and smod_pow2_cheap, to sdiv_32 and smod_32 to avoid confusion. - (expand_divmod): Replace use of div_cost with either sdiv_cost - or udiv_cost depending upon the signedness of the operation. - -2005-11-28 Alexandre Oliva - - PR libfortran/24991 - * config/darwin.c (machopic_indirection_name, - machopic_output_indirection): Follow transparent alias chain. - -2005-11-28 Alexandre Oliva - - * varasm.c (ultimate_transparent_alias_target): Add comment. - -2005-11-28 Kazu Hirata - - * config/m68k/m68k.c (notice_update_cc): Use SET_DEST and - SET_SRC instead of XEXP where appropriate. - -2005-11-28 Joseph S. Myers - - * config/fp-bit.c (isnan, isinf, pack_d, unpack_d): Use - __builtin_expect. - -2005-11-28 Joseph S. Myers - - * config/fp-bit.h (LSHIFT): Take shift count parameter. - * config/fp-bit.c (_fpadd_parts): Shift in one go instead of one - bit at a time. - -2005-11-28 Bernd Schmidt - - * config/bfin/bfin.c (bfin_secondary_reload): Renamed from - secondary_input_reload_class, made static. Adapt to new - infrastructure. - (secondary_output_reload_class): Delete. - (TARGET_SECONDARY_RELOAD): New macro. - * config/bfin/bfin.h (SECONDARY_INPUT_RELOAD_CLASS, - SECONDARY_OUTPUT_RELOAD_CLASS): Delete. - -2005-11-28 Nathan Sidwell - - PR c++/21166 - * c-decl.c (finish_struct): Only set DECL_PACKED on a field - when its natural alignment is > BITS_PER_UNIT. - * stor-layout.c (finalize_type_size): Revert my patch of 2005-08-08. - * c-common.c (handle_packed_attribute): Ignore packing on a field - whose type is naturally char aligned. - -2005-11-28 Richard Guenther - - * c-common.c (strict_aliasing_warning): Handle all - component-ref like accesses. - -2005-11-28 Roger Sayle - Uros Bizjak - - PR middle-end/20219 - * fold-const.c (fold binary) : Optimize - sin(x)/tan(x) as cos(x) and tan(x)/sin(x) as 1.0/cos(x) - when flag_unsafe_math_optimizations is set and - we don't care about NaNs or Infinities. - - Move x/expN(y) and x/pow(y,z) transformation into common - flag_unsafe_math_optimizations section. - -2005-11-27 Mark Mitchell - - * gcc.c (main): Change type of argv to "char **". - -2005-11-28 Alan Modra - - * doc/invoke.texi (powerpc msdata-data): Static data doesn't go in - small data sections. - * config/rs6000/rs6000.c (rs6000_elf_in_small_data_p): Make global. - * config/rs6000/rs6000-protos.h: (rs6000_elf_in_small_data_p): Declare. - * config/rs6000/sysv4.h (ASM_OUTPUT_ALIGNED_LOCAL): Rename to.. - (ASM_OUTPUT_ALIGNED_DECL_LOCAL): ..this, adding extra parm. Don't - output locals to sbss if !rs6000_elf_in_small_data_p. - (ASM_OUTPUT_ALIGNED_BSS): Adjust for above. - -2005-11-28 Alan Modra - - PR target/24997 - * config/rs6000/rs6000.c (legitimate_indexed_address_p): Allow pattern - generated by reload. - * config/rs6000/predicates.md (indexed_or_indirect_operand): Use - indexed_or_indirect_address. - (indexed_or_indirect_address): Don't test for base reg. Call - address_operand last. Make it a special predicate. - -2005-11-27 Kazu Hirata - - * config/m68k/m68k.c (notice_update_cc): Remove useless code. - -2005-11-27 Andrew Pinski - - PR middle-end/24575 - * fold-const.c (negate_expr_p): Add case for signed divides if overflow - is undefined. - (negate_expr): Likewise. - -2005-11-27 Andreas Schwab - - * config/m68k/m68k.c: Reindent and fix whitespace, remove - redundant parens. - -2005-11-27 Steven Bosscher - - * cfgcleanup.c (try_crossjump_to_edge): Always split SRC2 if it - has EH predecessor edges. - -2005-11-26 Eric Christopher - - * config/i386/i386.md (*zero_extendqihi2_movzbw): Avoid partial - register stalls by zero extending to the full register. - -2005-11-27 Joseph S. Myers - - * config/floatunsisf.c, config/floatunsidf.c, - config/floatunsixf.c, config/floatunsitf.c: New files. - * config/ia64/t-hpux: Add floatunsitf.c. - * config/ia64/ia64.c (ia64_init_libfuncs): Use - _U_Qfcnvxuf_dbl_to_quad for unsigned DImode-to-TFmode conversion. - -2005-11-26 Richard Henderson - - * c-lex.c (pragma_lex): Rename from c_lex. - * c-pch.c: Update for pragma_lex rename. - * c-pragma.c, c-pragma.h, config/ia64/ia64-c.c: Likewise. - * config/m32c/m32c-pragma.c, config/darwin-c.c: Likewise. - * config/rs6000/rs6000-c.c, config/c4x/c4x-c.c: Likewise. - * config/sol2-c.c, config/v850/v850-c.c: Likewise. - * doc/tm.texi: Likewise. - -2005-11-26 Andrew Pinski - - PR middle-end/23669 - * fold-const.c (fold_binary): Convert -A/-B to A/B for signed types - when overflow is undefined. - -2005-11-26 Hans-Peter Nilsson - - * doc/md.texi (Insn Canonicalizations): Refer to the - function commutative_operand_precedence for further rules. - -2005-11-25 Roger Sayle - - PR middle-end/21309 - * expmed.c (choose_mult_variant): Return immediately when mult_cost - is less than zero. Limit mult_cost to a reasonable upper bound for - the synthetic multiplication sequence. - -2005-11-25 Kaveh R. Ghazi - - PR middle-end/25022 - * builtins.c (expand_builtin_printf, expand_builtin_fprintf, - fold_builtin_fputs, fold_builtin_printf, fold_builtin_fprintf): - Lookup the explicit replacement functions for any unlocked - stdio builtin transformations. - -2005-11-25 Hans-Peter Nilsson - - * config/cris/cris.md ("reload_out"): Mark operand 2 as - earlyclobber. - * targhooks.c (default_secondary_reload): Don't require operand 2 - for an input reload to be earlyclobber. - -2005-11-25 Volker Reichelt - - * fold-const.c (negate_mathfn_p): Fix comment and add support - for BUILT_IN_CBRT, BUILT_IN_SINH, BUILT_IN_TANH, BUILT_IN_ASINH, - BUILT_IN_ATANH. - -2005-11-25 Joseph S. Myers - - PR middle-end/24998 - * config/sparc/sparc.c (sparc_init_libfuncs): Use _Q_utoq and - _Q_ulltoq for unsigned conversions from SImode and DImode to - TFmode. - -2005-11-25 Alan Modra - - * config/rs6000/ppc64-fp.c (__floatunditf): New function. - (__floatundidf, __floatundisf): Likewise. - -2005-11-25 David Edelsohn - - * config/rs6000/rs6000.c (rs6000_sr_alias_set): Delete. - (rs6000_override_options): Remove initialization of - rs6000_sr_alias_set. - (rs6000_emit_eh_reg_restore): Use gen_frame_mem. - (rs6000_emit_stack_tie): Same. - (emit_frame_save): Same. - (gen_frame_mem_offset): Same. - (rs6000_emit_prologue): Same. - (rs6000_emit_epilogue): Same. - -2005-11-25 Andrew Pinski - - PR middle-end/24989 - * fold-const.c (fold_build): Convert bool_var != 1 and - bool_var == 0 to !bool_var. - -2005-11-25 Andrew Pinski - - PR middle-end/24990 - * fold-const.c (fold_binary): Fold (~a) == C to a == ~C - for C being INTEGER_CST. Likewise for !=. - -2005-11-25 Joseph S. Myers - - PR middle-end/24998 - * config/rs6000/rs6000.c (rs6000_init_libfuncs): Use _q_utoq for - unsigned conversions from SImode to TFmode. - -2005-11-24 Bernd Schmidt - - * expr.c (expand_expr_real_1): Fix error in last change. - -2005-11-24 J"orn Rennecke - - * caller-save.c: (this_insn_sets): Move into: - (save_call_clobbered_regs). - (mark_set_regs): Get this_insn_sets from data. - - (save_call_clobbered_regs): Take sets of the return value by - sibcalls into account. - -2005-11-24 J"orn Rennecke - PR target/21623: - - * regclass.c (FORBIDDEN_INC_DEC_CLASSES): Remove - SECONDARY_INPUT_RELOAD_CLASS and SECONDARY_OUTPUT_RELOAD_CLASS tests. - (init_fake_stack_mems): Remove HAVE_SECONDARY_RELOADS test. - (memory_move_secondary_cost, init_reg_autoinc): Remove - SECONDARY_INPUT_RELOAD_CLASS / SECONDARY_OUTPUT_RELOAD_CLASS tests. - Replace SECONDARY_{IN,OUT}PUT_RELOAD_CLASS use with - secondary_reload_class call. - (copy_cost): Likewise. Add new parameter prev_sri. Changed all - callers. - * reload.c (entire file): Remove HAVE_SECONDARY_RELOADS checks. - (push_secondary_reload): Use secondary_reload target hook. - (secondary_reload_class, scratch_reload_class): New functions. - (push_reload): Remove SECONDARY_INPUT_RELOAD_CLASS and - SECONDARY_OUTPUT_RELOAD_CLASS tests. Replace - SECONDARY_{IN,OUT}PUT_RELOAD_CLASS use with secondary_reload_class call. - * reload.h (HAVE_SECONDARY_RELOADS): Don't define nor test. - (secondary_reload_class, scratch_reload_class): Declare. - * reload1.c: Include target.h. - (reload_adjust_reg_for_temp): New function. - (reload_adjust_reg_for_icode): Likewise. - (choose_reload_regs): Remove SECONDARY_INPUT_RELOAD_CLASS test. - Replace SECONDARY_INPUT_RELOAD_CLASS use with secondary_reload_class - call. - (emit_input_reload_insns): Likewise. Rewrite secondary reload checks - for inheritance. Support case when both secondary & tertiary reloads - are for intermediate registers. - (emit_output_reload_insns): Replace SECONDARY_OUTPUT_RELOAD_CLASS use - with secondary_reload_class call. Support case when both secondary - & tertiary reloads are for intermediate registers. - * target-def.h (TARGET_SECONDARY_RELOAD): Provide default definition. - (TARGET_INITIALIZER) Add TARGET_SECONDARY_RELOAD. - * target.h (secondary_reload_info): New struct / typedef. - (struct gcc_target): New member secondary_reload. - * targhooks.c Include reload.h, optabs.h and recog.h. - (default_secondary_reload): New function. - * targhooks.h (default_secondary_reload): Declare. - * doc/tm.texi: Document secondary_reload target hook. Update - description of SECONDARY_*RELOAD_CLASS and reload_{in,out}. - * doc/md.texi: Likewise. - - * sh-protos.h (sh_secondary_reload): Declare. - * sh.c (TARGET_SECONDARY_RELOAD): Override. - (sh_secondary_reload): New function. - * sh.h (SECONDARY_INOUT_RELOAD_CLASS): Don't define. - (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise. - (SECONDARY_INPUT_RELOAD_CLASS): Likewise. - (HAVE_SECONDARY_RELOADS): Define. - * sh.md (reload_indf): Rename to: - (reload_indf__frn). - (reload_outdf): Rename to: - (reload_outdf__RnFRm). - (reload_insf): Rename to: - (reload_insf__frn). - (reload_insi): Rename to: - (reload_insi__i_fpul). - -2005-11-24 Uros Bizjak - - * configure.ac: Require at least texinfo 4.4. - * configure: Regenerate. - - * doc/install.texi (Tools/packages necessary for building GCC): - Update required version of texinfo to at least 4.4. - (Installing GCC: Building): Update required version of texinfo - to at least 4.4. - (Installing GCC: Final installation): Update required version - of texi2dvi to at least 4.4. - (Host/target specific installation notes for GCC): Update required - version of texinfo to at least 4.4. - -2005-11-24 Richard Guenther - Dirk Mueller - - PR c++/14024 - * c-common.h (strict_aliasing_warning): Declare. - * c-common.c (strict_aliasing_warning): New function, - split out from ... - * c-typeck.c (build_c_cast): ... here. - -2005-11-24 Paolo Bonzini - - * optabs.c (expand_binop): Use swap_commutative_operands_with_target - to order operands. - (swap_commutative_operands_with_target): New. - -2005-11-24 Paolo Bonzini - - * gcse.c (hash_scan_set): Look through REG_EQUAL or REG_EQUIV notes - also when doing PRE, rather than only for global CPROP. - -2005-11-24 Ben Elliston - - * machmode.h (CLASS_HAS_WIDER_MODES_P): New macro. - * optabs.c (expand_binop): Use CLASS_HAS_WIDER_MODES_P, improve - formatting. - (expand_twoval_unop): Likewise. - (widen_clz): Likewise. - (expand_parity): Likewise. - (expand_unop): Likewise. - (emit_cmp_and_jmp_insn_1): Likewise. - (prepare_float_lib_cmp): Likewise. - -2005-11-24 Ben Elliston - - * optabs.c (prepare_cmp_insn): Use SCALAR_FLOAT_MODE_P. - Remove unused `class' variable. - -2005-11-23 Gabriel Dos Reis - - PR c++/21667 - * c-typeck.c (build_array_ref): Avoid code duplicate. Use common - C/C++ diagnostic function warn_array_subscript_with_type_char. - * c-common.h (warn_array_subscript_with_type_char): Declare. - * c-common.c (warn_array_subscript_with_type_char): Define. - -2005-11-23 Gabriel Dos Reis - - PR c/21668 - * c-decl.c (grokdeclarator): Don't warn for 'extern const' when - compiling at the intersection of C and C++. - -2005-11-23 Mark Mitchell - - * doc/invoke.texi: For man pages, include gcc-vers.texi. - List @file in the option summary. Include the libiberty - documentation for @file. - * gcc.c (main): Call expandargv. - * Makefile.in (gcc-vers.texi): Define srcdir. - -2005-11-23 Diego Novillo - - * passes.c (init_optimization_passes): Document - sequencing of passes. - -2005-11-23 Kazu Hirata - - * config/m68k/predicates.md (pcrel_address, extend_operator, - post_inc_operand, pre_dec_operand): Remove redundant - conditionals. - (const_uint32_operand, const_sint32_operand): Use gcc_assert - instead of abort. - (valid_dbcc_comparison_p): Rewrite in the lisp style. - -2005-11-23 Ben Elliston - - * dwarf2.h (enum dwarf_type): Add DW_ATE_decimal_float. - -2005-11-22 J"orn Rennecke - - Preparatory work for PR target/21623: - * alpha.c (secondary_reload_class): Rename to: - (alpha_secondary_reload_class). - * alpha.h, alpha-protos.h: Likewise. - * mn10300.c (secondary_reload_class): Rename to: - (mn10300_secondary_reload_class). - * mn10300.h, mn10300-protos.h: Likewise. - * pa.c (secondary_reload_class): Rename to: - (pa_secondary_reload_class). - * pa.h, pa-protos.h: Likewise. - * rs6000.c (secondary_reload_class): Rename to: - rs6000_secondary_reload_class. - * rs6000.h, rs6000-protos.h: Likewise. - -2005-11-22 Eric Botcazou - - PR middle-end/22561 - * tree-ssa-structalias.c (get_constraint_for): Handle ARRAY_RANGE_REF. - -2005-11-22 Ian Lance Taylor - - * optabs.c (expand_unop): Call SCALAR_FLOAT_MODE_P on a mode, not - a mode_class. - (prepare_cmp_insn): Likewise. - -2005-11-22 Kazu Hirata - - PR target/23435 - * m68k.md (zero_extendsidi2): Force operands[1] to a register - if both operands[0] and operands[1] are memory. - -2005-11-22 Andrew Pinski - - PR middle-end/23606 - * fold-const.c (fold_unary) : For - COMPARISON_CLASS_P and an integral types create create a new - expression with the new type and fold that. - -2005-11-22 Andrew Pinski - - PR target/24988 - * config/rs6000/darwin.h (TARGET_OS_CPP_BUILTINS): Remove call - to SUBTARGET_OS_CPP_BUILTINS. - -2005-11-22 Richard Earnshaw - - * arm.c (emit_set_insn): New function. - (arm_split_constant): Call it. - (arm_gen_compare_reg, arm_reload_in_hi, arm_reload_out_hi): Likewise. - (arm_legitimize_address): Likewise. Use plus_constant. - (arm_expand_prologue): Likewise. Use VOIDmode in SET. - (thumb_expand_prologue): Likewise. - (arm_gen_load_multiple): Use VOIDmode in SET. - (arm_gen_store_multiple): Likewise. - (vfp_emit_fstmx): Likewise. Use plus_constant. - (emit_multi_reg_push): Likewise. - (emit_sfm): Use plus_constant. - -2005-11-23 Alan Modra - - PR target/24954 - * config/rs6000/predicates.md (easy_vector_constant_add_self): Fix - typo last change. - -2005-11-22 Alan Modra - - PR middle-end/24950 - * expmed.c (store_bit_field): Don't attempt to insv a field - larger than the reg. - -2005-11-22 Alan Modra - - PR target/24954 - * config/rs6000/predicated.md (easy_vector_constant_add_self): Use - explicit sign extension, not a (char) cast. - -2005-11-22 Ben Elliston - - * optabs.c: Use SCALAR_FLOAT_MODE_P instead of explicitly testing - GET_MODE_CLASS (x) == MODE_FLOAT. - * config/i386/i386.c: Likewise. - * config/rs6000/xcoff.h: Likewise. - * config/rs6000/linux64.h: Likewise. - * config/rs6000/rs6000.c: Likewise. - * config/rs6000/rs6000.h: Likewise. - * config/rs6000/predicates.md: Likewise. - * config/rs6000/sysv4.h: Likewise. - -2005-11-21 Kaveh R. Ghazi - - * c-cppbuiltin.c (c_cpp_builtins): Define __pic__ and __PIC__ when - flag_pic is set. - - * config/alpha/freebsd.h, config/alpha/linux.h, - config/arm/linux-elf.h, config/bfin/bfin.h, - config/cris/linux.h, config/darwin.h, config/freebsd-spec.h, - config/i386/beos-elf.h, config/i386/gnu.h, - config/i386/linux.h, config/i386/linux64.h, config/i386/nto.h, - config/i386/sco5.h, config/m32r/m32r.h, config/m68k/linux.h, - config/m68k/m68k.h, config/mips/linux.h, config/pa/pa-linux.h, - config/rs6000/linux64.h, config/rs6000/sysv4.h, - config/rs6000/vxworks.h, config/s390/linux.h, config/s390/tpf.h, - config/sh/linux.h, config/sh/sh.h, config/sol2.h, - config/sparc/linux.h, config/sparc/linux64.h, - config/xtensa/xtensa.h: Don't define __pic__ or __PIC__. - - * doc/invoke.texi: Document that the macros __pic__ and __PIC__ - are both defined when either flag -fpic or -fPIC are used. - -2005-11-22 Joseph S. Myers - - * config/fp-bit.c (clzusi): New function. - (si_to_float, usi_to_float): Use it to compute proper shift. - (usi_to_float): Preserve guard bits when shifting right. - * libgcc-std.ver (GCC_4.2.0): New version. - * libgcc2.c (__floatundixf, __floatunditf, __floatundidf, - __floatundisf): New functions. - * libgcc2.h (__floatundixf, __floatunditf, __floatundidf, - __floatundisf): Declare. - * mklibgcc.in (lib2funcs): Add _floatundidf, _floatundisf, - _floatundixf, and _floatunditf. - * optabs.c (expand_float): If target does not define a pattern for - signed or unsigned conversion, use an unsigned libcall instead of - a signed one. - (init_optabs): Initialize ufloat_optab. - -2005-11-22 Joseph S. Myers - - * config/rs6000/rs6000.opt (mmulhw): New option. - * doc/invoke.texi (-mmulhw): Document. - * config/rs6000/rs6000.c (rs6000_override_options): Enable -mmulhw - for 405 and 440. - * config/rs6000/rs6000.md: Add half-word multiply and - multiply-accumulate instructions for 405 and 440. - -2005-11-21 Joel Sherrill - - * config/arm/rtems-elf.h: Added definition of LINK_GCC_C_SEQUENCE_SPEC - which matches behavior of gcc 4.0 and older for RTEMS targets. The - default now includes a linker group which makes the RTEMS one nest. - -2005-11-22 Ben Elliston - - * cse.c (fold_rtx): Typo fix. - (find_comparison_args): Pass the mode of arg1, not arg1 itself. - -2005-11-21 Richard Henderson - - * c-common.c, config/darwin-c.c, c-decl.c, c-tree.h, c-objc-common.h, - langhooks-def.h, langhooks.h: Revert 2005-11-18 lookup_name patch. - - * c-tree.h (lookup_name): Move declaration ... - * c-common.h (lookup_name): ... here. - * config/darwin-c.c: Include c-common.h. - * config/t-darwin: Update dependencies. - -2005-11-22 Ben Elliston - - * optabs.c (expand_abs_nojump): Use SCALAR_FLOAT_MODE_P instead of - explicitly testing GET_MODE_CLASS (x) == MODE_FLOAT. - * genopinit.c (gen_insn): Likewise. - * reload.c (find_equiv_reg): Likewise. - * loop.c (load_mems): Likewise. - * rtlanal.c (may_trap_p_1, canonicalize_condition): Likewise. - * cse.c (find_comparison_args, fold_rtx): Likewise. - * dwarf2out.c (add_const_value_attribute): Likewise. - * expr.c (convert_move): Likewise. - * recog.c (general_operand, register_operand): Likewise. - * reg-stack.c (replace_reg): Likewise. - * tree-vect-generic.c (type_for_widest_vector_mode): Likewise. - * c-common.c (handle_vector_size_attribute): Likewise. - * simplify-rtx.c (simplify_const_unary_operation): Likewise. - (simplify_binary_operation_1): Likewise. - (simplify_const_binary_operation): Likewise. - (simplify_relational_operation): Likewise. - (simplify_const_relational_operation): Likewise. - (simplify_immed_subreg): Likewise. - * emit-rtl.c (gen_lowpart_common): Likewise. - * expmed.c (expand_mult): Likewise. - * stor-layout.c (layout_type): Likewise. - -2005-11-21 Paolo Bonzini - - PR target/24951 - * config/rs6000/rs6000.c (output_vec_const_move): Load cst and - cst2 only for SPE vectors. - -2005-11-21 David Edelsohn - - PR target/24953 - * config/rs6000/predicates.md (vrsave_operation): Check - UNSPEC_VOLATILE value. - -2005-11-21 Jan Hubicka - - PR tree-optimization/24653 - * tree-ssa-ccp.c (ccp_fold): Strip down useless conversions. - -2005-11-21 Uros Bizjak - - * config/i386/predicates.md (ax_reg_operand): New predicate. - (memory_displacement_only_operand): New predicate. - * config/i386/i386.md ("modrm" attribute): Return 0 if one - operand is AX register and the other operand is memory operand - with displacement only. - -2005-11-21 Uros Bizjak - - * fold-const.c (fold_binary) : Optimize A / A to 1.0 - if we don't care about NaNs or Infinities. - -2005-11-20 Ian Lance Taylor - - PR rtl-optimization/24883 - * combine.c (combinable_i3pat): When checking whether the - destination of i3 is used in i3, consider paradoxical subregs. - -2005-11-21 Kazu Hirata - - PR middle-end/20583 - * cse.c (cse_insn): Reject invalid forms of CONST earlier. - -2005-11-20 Joseph S. Myers - - * combine.c (try_combine): Do not run subst on i1src and i2src in - the case of generating a PARALLEL for a comparison. - -2005-11-20 Richard Henderson - - PR 24931 - * tree-sra.c (struct sra_elt): Add all_no_warning. - (struct sra_walk_fns) : Add use_all argument. - (sra_walk_expr): Pass it. - (sra_walk_modify_expr): Likewise. - (scalarize_ldst): Likewise. - (scan_use): Update for new argument. - (mark_no_warning): New. - (scalarize_use): Use it. - -2005-11-20 Bernd Schmidt - - * expr.c (expand_expr_real): Use usmul_optab for widening - signed * unsigned multiplies. - * genopinit.c (optabs): Add usmul_widen_optab. - * optabs.c (init_optabs): Likewise. - * optabs.h (enum optab_index): Add OTI_usmul_widen. - (usmul_widen_optab): Define. - * config/bfin/bfin.md (usmulhisi3): New pattern. - - * doc/md.texi (usmulqihi3, usmulhisi3, usmulsidi3): Document. - -2005-11-20 Graham Stott - - * gensupport.c (std_preds): Fixed extraneous `false` in last change. - -2005-11-20 Andreas Schwab - - PR target/24757 - * config/ia64/ia64.c (ia64_expand_atomic_op): Fix condition of cmp - insn. - -2005-11-19 Richard Henderson - - PR tree-opt/24665 - * tree-gimple.c (is_gimple_id): Export. - * tree-gimple.h (is_gimple_id): Declare. - * tree-ssa-ccp.c (ccp_decl_initial_min_invariant): New. - (get_default_value): Use it. - (maybe_fold_stmt_indirect): Likewise. - -2005-11-19 James A. Morrison - - * tree-vrp.c (compare_ranges): Return false for EQ_EXPR if VR0 is less - than VR1 or vice-versa. - -2005-11-19 Hans-Peter Nilsson - - PR middle-end/24912 - PR middle-end/24750 - * reload.c (find_reloads_address_1): Mention dependency on - gen_reload. - * reload1.c (gen_reload): For IN with an unary operation, try - moving inner expression to OUT if trivial SET is not valid. - Confirm that the result is valid. Move common code block into... - (emit_insn_if_valid_for_reload): New function. - -2005-11-19 Richard Guenther - - * fold-const.c (fold_indirect_ref_1): Make sure we fold - ARRAY_REFs of constant strings. - -2005-11-19 Jakub Jelinek - - * gcc.c (version_compare_spec_function): Use '%s' rather than %qs in - fatal format string. - -2005-11-19 Joseph S. Myers - - * combine.c (make_compound_operation): Swap operands of - commutative operation if necessary before returning. - -2005-11-19 Richard Guenther - - PR middle-end/23294 - * fold-const.c (fold_plusminus_mult_expr): New function. - (fold_binary): Use to canonicalize PLUS_EXPR and MINUS_EXPR - cases, remove now unnecessary code. - -2005-11-19 Paolo Bonzini - - * gensupport.c (old_preds): Rename to std_preds, add special field. - (struct old_pred_table): Rename to struct std_pred_table, add special - field. - (NUM_KNOWN_OLD_PREDS): Rename to NUM_KNOWN_STD_PREDS. - (NUM_OLD_SPECIAL_MODE_PREDS): Remove. - (init_predicate_table): Adjust, and set along the way whether a - predicate is special. - -2005-11-18 Mark Mitchell - - * BASE-VER: Change to 4.2.0. - -2005-11-18 James E Wilson - - * builtins.c (fold_builtin_strstr): Pass s1 through fold_convert before - returning it. - -2005-11-18 Mike Stump - - * c-common.c (handle_cleanup_attribute): Use a lang hook for lookup_name. - * config/darwin-c.c (darwin_pragma_unused): Likewise. - * c-decl.c (lookup_name_two) Remove. - * c-tree.h (lookup_name_two): Remove. - * c-objc-common.h (LANG_HOOKS_LOOKUP_NAME): Add. - * langhooks-def.h (LANG_HOOKS_LOOKUP_NAME): Add. - (LANG_HOOKS_DECLS): Add initializer for LANG_HOOKS_LOOKUP_NAME. - * langhooks.h (lang_hooks_for_decls): Add lookup_name. - -2005-11-18 Richard Earnshaw - - PR target/24914 - * arm.c (arm_hard_regno_mode_ok): Co-processor registers aren't ok - when not generating code to use that co-processor. - -2005-11-18 James A. Morrison - - * tree-flow.h (reserve_phi_args_for_new_edge, create_phi_node, - add_phi_arg, remove_phi_args, remove_phi_node phi_reverse): Mention that - these functions are now in tree-phinodes.c. - -2005-11-18 Jie Zhang - - * config/bfin/bfin.md (trap): New pattern. - -2005-11-18 Richard Kenner - - * tree-ssa-dom.c (extract_range_from_cond): Deal with variable bounds - on types. - - * expr.c (expand_expr_real): Don't call record_block_change unless - ib_boundaries_block is non-null - - * postreload.c (reload_cse_move2add): Don't try to work with BImode. - - * fold-const.c (build_range_check): Use proper type for subtraction - when merging lower bound. - -2005-11-18 Zdenek Dvorak - - PR rtl-optimization/24497 - * loop-unroll.c (apply_opt_in_copies): Do not verify equality of - the copied insn. - -2005-11-18 Zdenek Dvorak - - * tree-scalar-evolution.c (expression_expensive_p): New function. - (scev_const_prop): Use compute_overall_effect_of_inner_loop. - -2005-11-18 Bernd Schmidt - - * config/bfin/crtlibid.s: New file. - -2005-11-17 John David Anglin - - PR target/24348 - * config.gcc (hppa*-*-hpux*): Add pa/t-slibgcc-elf-ver to tmake config - when not using sjlj exceptions. - * config/pa/pa64-hpux.h (LIB_SPEC): Add -lpthread in static links. - * config/pa/pa-hpux11.h (LIB_SPEC): Likewise. - * config/pa/som.h (ASM_PREFERRED_EH_DATA_FORMAT): Delete define. - * config/pa/linux-unwind.h (pa32_fallback_frame_state): Use - DWARF_ALT_FRAME_RETURN_COLUMN instead of column 0 as return column. - * config/pa/pa-hpux.h (MD_UNWIND_SUPPORT): New define. - * config/pa/pa-linux.h (INCOMING_RETURN_ADDR_RTX, - DWARF_FRAME_RETURN_COLUMN, ASM_PREFERRED_EH_DATA_FORMAT, - ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Delete defines. - * config/pa/pa.h (ARG_POINTER_CFA_OFFSET): Delete. - (FRAME_POINTER_CFA_OFFSET, INCOMING_RETURN_ADDR_RTX, - DWARF_FRAME_RETURN_COLUMN, DWARF_ALT_FRAME_RETURN_COLUMN, - ASM_PREFERRED_EH_DATA_FORMAT, ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): New - defines. - * config/pa/hpux-unwind.h: New file. - -2005-11-17 Alexandre Oliva - - * config/rs6000/rs6000.h (ASM_OUTPUT_WEAKREF): Define. - * defaults.h (ASM_OUTPUT_WEAKREF): Add decl argument. - * varasm.c (do_assemble_alias): Adjust call. - (weak_finish): Don't use ASM_WEAKEN_LABEL if ASM_WEAKEN_DECL - is defined. - * doc/tm.texi (ASM_OUTPUT_WEAKREF): Document it. - -2005-11-17 James E Wilson - - * tree.def (FUNCTION_DECL): Correct typo in comment. - -2005-11-17 Richard Henderson - - * dwarf2out.c (dw_cfi_oprnd_struct): Reduce dw_cfi_reg_num to int. - (lookup_cfa_1): Apply data alignment to DW_CFA_def_cfa_offset_sf - and DW_CFA_def_cfa_sf. - (def_cfa_1): Use DW_CFA_def_cfa_offset_sf with negative values. - (dbx_reg_number): Don't assert particular registers here. - (based_loc_descr): ... do it here instead. Fold in ... - (eliminate_reg_to_offset): ... this function. - (compute_frame_pointer_to_cfa_displacement): Fold in the effects - of eliminate_reg_to_offset; use FRAME_POINTER_CFA_OFFSET. - * unwind-dw2.c (execute_cfa_program): Apply data align factor - to DW_CFA_def_cfa_offset_sf and DW_CFA_def_cfa_sf. - * function.c (instantiate_new_reg): Use FRAME_POINTER_CFA_OFFSET. - (instantiate_virtual_regs): Likewise. - * var-tracking.c (adjust_stack_reference): Likewise. - * doc/tm.texi (FRAME_POINTER_CFA_OFFSET): New. - -2005-11-17 Bernd Schmidt - - * config/bfin/elf.h (STARTFILE_SPEC): Add "crtlibid%O%s" - * config/bfin/uclinux.h (STARFILE_SPEC): Likewise. - * config/bfin/t-bfin-elf (EXTRA_PARTS, EXTRA_MULTILIB_PARTS): Add - crtlibid.o. - ($(T)crtlibid.o): New rule. - -2005-11-16 Richard Guenther - - PR middle-end/24851 - * fold-const.c (extract_array_ref): Return byte offset - in all cases. - (fold_binary): Fold &x[a] CMP &x[b] to - a*sizeof(*x) CMP b*sizeof(*x) to get correct overflow - behavior. - -2005-11-16 Richard Henderson - - PR middle-end/23497 - * tree-ssa.c (warn_uninitialized_var): Skip real and imaginary - parts of an SSA_NAME. - -2005-11-16 Richard Earnshaw - - PR target/24861 - * arm.md (split for movsf with immediate): Restrict split to insns - that set a general register. - -2005-11-16 Daniel Jacobowitz - - * config/ia64/unwind-ia64.c (uw_advance_context): New. Call - uw_update_context. - * unwind-dw2.c (uw_advance_context): Likewise. - * unwind-sjlj.c (uw_advance_context): Likewise. Also call - _Unwind_SjLj_Unregister. - * unwind.inc (_Unwind_ForcedUnwind_Phase2): Call uw_advance_context. - -2005-11-16 Daniel Jacobowitz - - * unwind-sjlj.c (_Unwind_GetCFA): Handle the builtin_setjmp case. - -2005-11-16 Eric Botcazou - - * config/alpha/alpha.c (alpha_init_builtins): Use type_for_mode - langhook to get a DImode integer type. - -2005-11-16 Richard Henderson - J"orn Rennecke - Ulrich Weigand - - PR rtl-opt/24160 - PR target/24621 - * reload1.c (reg_equiv_invariant): New. - (reload): Allocate, initialize, and free it. - (calculate_needs_all_insns): Check it when skipping equivalence - setting insns. - (alter_reg): Likewise. - (eliminate_regs_1): Rename from eliminate_regs. Add new - may_use_invariant argument; only use reg_equiv_invariant when true. - (eliminate_regs): New. - (eliminate_regs_in_insn): Use eliminate_regs_1; track when we're in - a context for which may_use_invariant may be true. - -2005-11-16 Eric Botcazou - - * fold-const.c (const_binop): Don't constant fold the operation - if the result has overflowed and flag_trapping_math. - * simplify-rtx.c (simplify_const_binary_operation): Likewise. - -2005-11-16 Daniel Jacobowitz - - * config/arm/unwind-arm.c (abort): Add prototype here. - (UCB_FORCED_STOP_ARG): Correct typo in macro argument. - (struct phase1_vrs): Add prev_sp. - (unwind_phase2_forced): Save the original core registers instead of - modifying entry_vrs. Take a new flag argument for resuming unwinding - and set action flags accordingly. Always set _US_END_OF_STACK when - get_eit_entry fails. Unwind before calling the stop function. - (_Unwind_GetCFA): New function. - (__gnu_Unwind_ForcedUnwind): Update call to unwind_phase2_forced. - (__gnu_Unwind_Resume_or_Rethrow): Likewise. - (__gnu_Unwind_Resume): Do not unwind here for forced unwinding; - just call unwind_phase2_forced. - (_Unwind_GetDataRelBase, _Unwind_GetTextRelBase): Move to here. - * config/arm/unwind-arm.h (abort): Remove prototype. - (_Unwind_GetDataRelBase, _Unwind_GetTextRelBase): Change to - prototypes. - (_Unwind_GetCFA): New prototype. - * config/arm/pr-support.c (abort): Add prototype here. - * unwind-c.c (PERSONALITY_FUNCTION) [__ARM_EABI_UNWINDER__]: Handle - forced unwinding. - * config/arm/arm.c (arm_expand_prologue, thumb_expand_prologue): Do - not schedule the prologue with non-call exceptions and EABI. - -2005-11-16 Nathan Sidwell - - * config/arm/unwind-arm.h: Reorder interface function declarations. - (_URC_END_OF_STACK): New enumeration value. - (_US_UNWIND_ACTION_MASK, _US_FORCE_UNWIND, _US_END_OF_STACK): Likewise. - (struct _Unwind_Control_Block): Document reserved field use. - (_Unwind_Stop_Fn): New typedef. - (_Unwind_ForcedUnwind): Declare. - (_Unwind_Resume_or_Rethrow): Declare. - * gcc/config/arm/libunwind.S (UNWIND_WRAPER): Add nargs - argument. Adjust. - (_Unwind_Resume_or_Rethrow, _Unwind_ForcedUnwind): New. - * config/arm/unwind-arm.c (UCB_FORCED_STOP_FN) - (UCB_FORCED_STOP_ARG): New. - (search_EIT_table): Update boundary condition checks. - (get_eit_entry): Return _URC_END_OF_STACK when cannot unwind. - (unwind_phase2): Replace for with do..while. - (unwind_phase2_forced): New. - (__gnu_Unwind_RaiseException): Replace for with do..while. - (__gnu_Unwind_ForcedUnwind): New. - (__gnu_Unwind_Resume): Set FORCE_UNWIND flag, if forced unwinding. - Use appropriate phase2 unwinder. - (__gnu_Unwind_Resume_or_Rethrow): New. - (__gnu_unwind_pr_common): Cope with forced unwinding. - -2005-11-16 David Edelsohn - - PR target/24772 - * config/rs6000/predicates.md (vrsave_operation): SET_SRC is a VEC. - - * config/rs6000/rs6000.md (btruncsf2, ceilsf2, floorsf2, - roundsf2): Remove "s" from mnemonic. - -2005-11-16 Bernd Schmidt - - * config/bfin/crti.s (__init, __fini): Use appropriate prologue if - __PIC__ is defined. - * config/bfin/crtn.s: Change epilogues to match. - * config/bfin/t-bfin-elf (EXTRA_MULTILIB_PARTS): Define. - * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): If flag_pic, define - __PIC__ and __pic__. - -2005-11-16 Tobias Schl"uter - - PR 24357 - * doc/invoke.texi: Distinguish between free and fixed form instead of - Fortran and Fortran 90/95. Remove ratfor from the list of supported - languages. - * gcc.c (default_compilers): Remove double entries, add entries for - suffixes '.F90' and '.F95'. - -2005-11-16 Eric Botcazou - - * config/alpha/alpha.c (alpha_expand_prologue): Fix off-by-one bug - in the stack probing loop. - -2005-11-15 David Edelsohn - - * configure.ac: Use .machine power5 not power5x. - * configure: Regenerate. - -2005-11-15 Mike Stump - - * c-decl.c (lookup_name_two): Add. - * c-tree.h (lookup_name_two): Likewise. - * c-common.c (handle_cleanup_attribute): Use lookup_name_two instead. - * config/darwin-c.c (darwin_pragma_unused): Likewise. - -2005-11-16 Alan Modra - - PR rtl-optimization/23392 - * regrename.c (enum scan_actions) Add mark_access. - (scan_actions_name): Ditto. - (scan_rtx_reg): Handle mark_access. - (scan_rtx_address): Do nothing for mark_access. - (build_def_use): Mark source registers in REG_FRAME_RELATED_EXPR - and regs in REG_INC notes before closing chains for dead regs. - Mark destination regs in REG_FRAME_RELATED_EXPR notes after - opening chains for new writes. - -2005-11-15 David Edelsohn - - * c.opt (ffixed-line-length-none): New. - -2005-11-15 Steve Ellcey - - * mklibgcc.in: Change contents of eh_dummy.c. - -2005-11-15 Daniel Jacobowitz - - * loop.c (scan_loop): Do not insert temporaries for hard registers. - -2005-11-15 Daniel Jacobowitz - - * config/arm/lib1funcs.asm (div0) [L_dvmd_lnx]: Call raise instead - of making syscalls. - * config/arm/linux-eabi.h (CLEAR_INSN_CACHE): Define. Set r7 also. - -2005-11-15 Jan Hubicka - - * invoke.texi (large-unit-insns): Document. - * ipa-inline.c (cgraph_decide_inlining): Use large-unit-insns param. - * params.def (large-unit-insns): New param. - -2005-11-15 Hans-Peter Nilsson - - PR target/24869 - * config/cris/cris.md ("*mov_sidesisf_mem"): Do not match - special register for operand 3. Reindent constraints to align - them vertically. - -2005-11-14 David Edelsohn - - * doc/invoke.texi (RS/6000 and PowerPC Options): Add -mmfcrf, - -mpopcntb, -mfprnd. Add -mcpu=power5+. - * configure.ac: Add test for FP rounding instructions. - * configure: Regenerate. - * config.in: Regenerate. - * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define - _ARCH_PPCSQ, _ARCH_PPCGR, _ARCH_PWR4, _ARCH_PWR5, _ARCH_PWR5X if - features enabled. - * config/rs6000/rs6000.opt (mfprnd): New. - * config/rs6000/rs6000.c (processor_target_table): Add power5+. - (POWERPC_MASKS): Add MASK_POPCNTB and MASK_FPRND. - * config/rs6000/aix52.h (ASM_CPU_SPEC): Add -mpower5+. - * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add -mpower5+. - (TARGET_FPRND): New. - * config/rs6000/rs6000.md (UNSPEC_FRIM, UNSPEC_FRIN, UNSPEC_FRIP, - UNSPEC_FRIZ): New. - (btrunc2): New. - (ceil2): New. - (floor2): New. - (round2): New. - -2005-11-14 Geoffrey Keating - - * gcc.c (version_compare_spec_function): Use fatal() rather than - abort(). - - * config/rs6000/darwin.h (DARWIN_CRT2_SPEC): New. - (SUBTARGET_EXTRA_SPECS): Define %(darwin_crt2). - * config/i386/darwin.h (SUBTARGET_EXTRA_SPECS): Define %(darwin_crt2) - as empty. - * config/darwin.h (STARTFILE_SPEC): Use %(darwin_crt2) to possibly - link in crt2.o. - - * config/darwin.h (REAL_LIBGCC_SPEC): Link in shared libgcc depending - on -mmacosx-version-min setting. - -2005-11-14 Diego Novillo - - PR 24840 - * tree-vrp.c (infer_value_range): Return false if STMT is a - block terminator and its basic block has no successors. - -2005-11-14 Mike Stump - - * config/i386/i386.c (override_options): -masm=intel isn't - supported on darwin. - * doc/invoke.texi (i386 and x86-64 Options): Likewise. - -2005-11-15 Joseph S. Myers - - * crtstuff.c: Undefine gid_t, pid_t, rlim_t, ssize_t, uid_t and - vfork after including auto-host.h. - -2005-11-15 Alan Modra - - PR rtl-optimization/22002 - * combine.c (distribute_notes): Detect cases where a reg dies - two or more times in a bb, including on the insn we are combining, - and place the death note on the correct range. - -2005-11-14 Dale Johannesen - - * expmed.c (store_bit_field): Add offset unconditionally for - memory targets. - (extract_bit_field): Don't force extzv or extv operand into - a register if field is too big. - -2005-11-14 Daniel Jacobowitz - - * config/arm/arm.c (pic_labelno): New. - (arm_load_pic_register): Use an UNSPEC_PIC_LABEL instead of a - LABEL_REF. Pass only the labelno to PIC insns. - (arm_call_tls_get_addr, legitimize_tls_address): Likewise. - (arm_output_addr_const_extra): Handle UNSPEC_PIC_LABEL. - * arm.md (UNSPEC_PIC_LABEL): New constant. - (pic_add_dot_plus_four, pic_add_dot_plus_eight) - (tls_load_dot_plus_eight): Expect a labelno instead of a LABEL_REF. - Use the correct label prefix. - -2005-11-14 Daniel Jacobowitz - - * config/arm/arm.c (legitimize_tls_address): Use correct rtx for - REQ_EQUIV note. - -2005-11-14 Richard Earnshaw - - * loop-invariant.c: Include tm_p.h. - * Makefile.in: Updated. - -2005-11-13 John David Anglin - - * pa.c (store_reg): Revise generation of frame notes in large frames. - (set_reg_plus_d): Likewise. - -2005-11-13 Andrew MacLeod - - PR tree-optimization/24709 - * tree-ssa-operands.c (verify_imm_links): Increase limit for infinite - loop check. - -2005-11-13 Eric Botcazou - - * gthr-posix95.h: Remove declaration of pthread_mutexattr_settype - and duplicate declaration of pthread_self. - -2005-11-13 Eric Botcazou - Ian Lance Taylor - - PR middle-end/24003 - * calls.c (expand_call): If TARGET is a MEM and some part of the - argument area has been saved, force TARGET to a register. - -2005-11-13 Razya Ladelsky - - * ipa-prop.c (ipa_callsite_compute_param ): Removed obsolete type - checking. - -2005-11-13 Jason Merrill - - PR c++/22489 - * dwarf2out.c (gen_subprogram_die): Force a declaration die for - lazily declared methods. - (force_decl_die): Stop if forcing out the context already make a - DIE for the decl. - (force_type_die): Likewise. - -2005-11-13 Andrew Pinski - - PR middle-end/24820 - * builtins.c (integer_valued_real_p): Add break in - REAL_CST having TREE_OVERFLOW set. - -2005-11-13 Zdenek Dvorak - - * tree-ssa-loop-ivopts.c (get_address_cost): Prevent splitting - addressing modes during calculation of costs. - -2005-11-12 Eric Botcazou - - * function.c (assign_stack_local_1): Restrict sanity check - on frame size overflow to 32-bit and above platforms. - -2005-11-12 Hans-Peter Nilsson - - * config/cris/cris.h (LEGITIMIZE_RELOAD_ADDRESS): Define. - * config/cris/cris.c: Include reload.h. - (cris_initial_elimination_offset): New function. - * config/cris/cris-protos.h: (cris_initial_elimination_offset): - Prototype. - -2005-11-12 Richard Guenther - - * gcse.c (find_rtx_in_ldst): Handle NULL pre_ldst_table. - -2005-11-12 Jan Hubicka - - * expr.c (expand_expr_real_1): : Canonicalize - to compare against 0 when possible. - -2005-11-12 Jie Zhang - - * config/bfin/bfin.h (REGISTER_NAMES, SHORT_REGISTER_NAMES, - HIGH_REGISTER_NAMES, FIXED_REGISTERS, CALL_USED_REGISTERS, - REG_ALLOC_ORDER, enum reg_class): Rearrange I/B/L registers. - * config/bfin/bfin.md: Redefine REG_ constants for I/B/L registers - in the new order. - -2005-11-12 Hans-Peter Nilsson - - * recog.c (constrain_operands) : For a match, require - that a non-register matches general_operand when strict >= 0. - -2005-11-11 Steven Bosscher - - * loop-invariant.c (move_loop_invariants): Fix a thinko in the - previous checkin. - -2005-11-11 Daniel Jacobowitz - - * tree-ssa-dse.c (struct address_walk_data, memory_ssa_name_same) - (memory_address_same): New. - (dse_optimize_stmt): Call memory_address_same. - -2005-11-12 Hans-Peter Nilsson - - PR middle-end/24750 - * reload.c (find_reloads_address_1) : New cases. - -2005-11-11 Daniel Jacobowitz - - * longlong.h (__clz_tab): Always provide. - -2005-11-11 Steven Bosscher - - PR 24265 - * loop-invariant.c (may_assign_reg_p): Make sure a hard register - can be assigned to. - (find_invariant_insn): Do the cheapest check, may_assign_reg_p, - before check_maybe_invariant. - (move_invariant_reg): Use gen_move_insn instead of replacing - SET_DEST with the temporary for the invariant. - (move_loop_invariants): If checking is enabled, do internal - consistency checks after completing the pass. - -2005-11-11 David Edelsohn - - PR 24644 - * common.opt (Wvolatile-register-var): New. - * varasm.c (make_decl_rtl): Only emit warning when option - specified. Clarify warning message. - * doc/invoke.texi (Wvolatile-register-var): Document new option. - - * doc/md.texi (copysign): Document standard named pattern. - -2005-11-11 Jie Zhang - - * config/bfin/bfin.c (bfin_expand_strmov): Correctly move the trailing - bytes when align is 2. - * config/bfin/bfin.md (rep_movsi, rep_movhi): Make LSETUP be followed - by the first instruction of the loop. - -2005-11-11 Jason Merrill - - PR c++/24686 - * gimplify.c (gimplify_cleanup_point_expr): Also save and restore - the cleanup list. - -2005-11-11 Zdenek Dvorak - - PR rtl-optimization/22509 - * local-alloc.c (memref_used_between_p): Check whether a function call - could not reference the memref. - -2005-11-11 Ulrich Weigand - - * postreload.c (reload_cse_simplify_operands): Fix bug in sorting - algorithm so as to choose the best, not the worst, alternative. - Reset accumulated register class before processing next alternative. - -2005-11-11 Kaz Kojima - - PR target/24445 - * calls.c (expand_call): Copy a return value to a plain register - if needed. - -2005-11-10 Alexandre Oliva - - PR target/24778 - * varasm.c (assemble_name): Recompute name only for transparent - aliases. - -2005-11-10 Hans-Peter Nilsson - - * tree-ssa-structalias.c (heapvar_lookup): Fix typo: stmt to from. - -2005-11-04 Jeff Law - - PR middle-end/23181 - * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Do not - perform reassociation if the parent statement will not die as - a result of the optimization. - -2005-11-10 Daniel Berlin - - * tree-ssa-alias.c (compute_may_aliases): Remove call to - delete_old_heap_vars. - * tree-dfa.c (referenced_var_remove): Remove function. - * tree-ssa.c (init_tree_ssa): Call init_alias_heapvars. - (delete_tree_ssa): Remove call to delete_old_heapvars. - Add call to delete_alias_heapvars. - * tree-flow.h (referenced_var_remove): Remove prototype - (init_alias_heapvars): New prototype. - (delete_alias_heapvars): Ditto. - * Makefile.in (tree-ssa-structalias.o): Add - gt-tree-ssa-structalias.o - (GTFILES): Add tree-ssa-structalias.h and - tree-ssa-structalias.c. - (s-gtype): Add gt-tree-ssa-structalias.h. - * tree-ssa-structalias.c (heapvars): Remove. - (oldheapvars): Remove. - (heapvar_for_stmt): New variable. - (heapvar_lookup): New function. - (heapvar_insert): Ditto. - (get_constraint_for): See if we have an old heapvar - to reuse. - (init_alias_heapvars): New function. - (delete_alias_heapvars): Ditto. - Add include of gt-tree-ssa-structalias.h. - -2005-11-10 Eric Botcazou - - PR middle-end/22127 - * calls.c (special_function_p): Set ECF_RETURNS_TWICE for getcontext. - -2005-11-10 Eric Botcazou - - * tree.c (int_fits_type_p): Only look at the base type - if it has the same precision as the original type. - -2005-11-10 Jakub Jelinek - - PR other/4372 - * varasm.c (assemble_alias): Use %q+D in the error - message instead of %J and %qD. - -2005-11-10 Richard Guenther - - * gcse.c (free_ldst_entry): Only free hashtable if - it exists. - -2005-11-09 Eric Botcazou - - * function.c (assign_stack_local_1): Issue an error message if - the frame size overflows in the signed target arithmetics. - -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. - -2005-11-09 Jakub Jelinek - - * Makefile.in (gnucompare): Do comparison of all files using one of - the chosen methods and only afterwards decide if just warning should - be issued or comparison failure raised. - -2005-11-09 Eric Botcazou - - * ifcvt.c (noce_get_alt_condition): Use prev_nonnote_insn. - (noce_try_abs): Negate if the comparison is reversed. - Look only one instruction backwards for a REG_EQUAL note. - -2005-11-09 Alexandre Oliva - - PR other/4372 - * gthr-dce.h, gthr-posix.h, gthr-posix95.h, gthr-solaris.h, - gthr-tpf.h: Define __gthrw. For all identifiers that might - be weak, introduce weakrefs or non-weak aliases with __gthrw, - and prefix all uses with __ghtrw. - -2005-11-09 Alexandre Oliva - - PR other/4372 - * tree.h (IDENTIFIER_TRANSPARENT_ALIAS): New. - (TREE_DEPRECATED): Adjust comment. Check for a DECL. - * c-common.c (handle_weakref_attribute): New. - (c_common_attribute_table): Add weakref. - * configure.ac (HAVE_GAS_WEAKREF): Check for weakref support - in the assembler. - * configure, config.in: Rebuilt. - * defaults.h (ASM_OUTPUT_WEAKREF): Define if HAVE_GAS_WEAKREF. - * doc/extend.texi: Document weakref attribute. - * varasm.c (ultimate_transparent_alias_target): New - (assemble_name): Use it. - (weak_finish_1): Split out of... - (weak_finish): ... and deal with weakrefs in... - (weakref_targets): ... new list. - (globalize_decl): Clean up weakref_targets. - (do_assemble_alias): Handle weakrefs. - (finish_aliases_1): Do not reject weakrefs to external symbols. - (assemble_alias): Handle weakrefs. - -2005-11-09 Richard Guenther - - PR tree-optimization/24716 - * tree-scalar-evolution.c (analyze_evolution_in_loop): Use - t_bool to track results from follow_ssa_edge. - -2005-11-09 Eric Botcazou - - * final.c (force_source_line): New global variable. - (final_scan_insn): Set it to true instead of clearing last_filename. - (notice_source_line): Return true if force_source_line is true, - unless source info is absent. - -2005-11-09 Andrew Pinski - - PR c/24644 - * dwarf2-out.c (add_name_and_src_coords_attributes): Don't add - a linkage name for a variable if it a register variable. - * c-decl.c (grokdeclarator): Global register variables - should be set as PUBLIC. - -2005-11-09 Andreas Krebbel - - PR 24624 - * config/s390/s390.c (struct s390_frame_layout): New fields - first_save_gpr_slot and last_save_gpr_slot. - (cfun_grps_save_area_size, s390_frame_info, s390_emit_prologue, - s390_emit_epilogue, s390_initial_elimination_offset): Replaced - first_save_gpr and last_save_gpr with the _slot variants. - (s390_register_info): Calculate first_save_gpr_slot and - last_save_gpr_slot using regs_ever_live. - -2005-11-09 Andreas Krebbel - - PR 24623 - * config/s390/s390.c (s390_regs_ever_clobbered): Only save live eh regs - for a function containing a landing pad. - -2005-11-09 Andreas Krebbel - - PR 24034 - * flow.c (mark_set_1): Handle CLOBBERs like SETs if the register - is live afterwards. - -2005-11-08 Bernd Schmidt - - * config/bfin/t-bfin-elf (MULTILIB_OPTIONS, MULTILIB_DEFAULTS, - MULTILIB_DIRNAMES, MULTILIB_EXCEPTIONS): New. - -2005-11-09 Nathan Sidwell - - Add ms2 support - * config/ms1/ms1.md (UNSPEC_BLOCKAGE, UNSPEC_EI, UNSPEC_DI): New - constants. - (call,load,store): New insn types. - (mem_access, branch_access): Adjust reservation conditions. - (define_delay): Adjust condition. - (decrement_and_branch_until_zero): Allow for ms2. Set branch - type. - (*decrement_and_rbanch_until_zero_no_clobber): Allow for ms2. - (*movqi_internal,*movsi_internal,*movsf_internal): Use load,store - insn type. - (call_internal, call_value_internal, return_internal, - return_interrupt_internal, eh_return_internal, indirect_jump, - tablejump): Set call insn type. - (blockage, ei, di): Use appropriate unspec const. - * config/ms1/ms1.c (ms1_flag_delayed_branch): New. - (ms1_get_attr_type): Adjust to give load & store types. - (ms1_final_prescan_insn): Adjust for new insn types. Don't look - backwards past a barrier. - (ms1_override_options): Accept ms2 arch. Copy and reset delayed - branch scheduling. - (struct branch_info, struct label_info): New. - (ms1_labels): New. - (ms1_add_branches, ms1_check_delay_slot, ms1_reorg_hazard): New. - (ms1_machine_reorg): New. - (TARGET_MACHINE_DEPENDENT_REORG): Override. - * config/ms1/crtn.asm: Add nop for ms2 JAL hazard. - * config/ms1/ms1.h (processor_type): Add PROCESSOR_MS2. - (ASM_SPEC, LIB_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Add ms2. - (TARGET_MS2): New. - -2005-11-09 Per Bothner - Uros Bizjak - - PR c/24101 - * toplev.c (process_options): Initialize debug_hooks early - in case lang_hooks.post_options ends up calling a debug_hook. - -2005-11-08 Jakub Jelinek - - * dwarf2out.c (multiple_reg_loc_descriptor): Don't assume - DBX_REGISTER_NUMBER being contiguous. - -2005-11-08 James A. Morrison - Diego Novillo - - PR 23046 - * tree-vrp.c (register_edge_assert_for): Do not register - always-false predicates. - -2005-11-08 Devang Patel - - PR tree-optimization/23115 - * tree-if-conv.c (find_phi_replacement_condition): Check domninated_by - relation. - -2005-11-08 Joseph S. Myers - - * config/rs6000/t-fprules (MULTILIB_MATCHES_FLOAT): Include - -mcpu=440. - -2005-11-08 Daniel Berlin - - Fix PR tree-optimization/23382 - - * tree-ssa-alias.c (compute_may_aliases): Call - delete_old_heap_vars. - * tree-dfa.c (referenced_var_remove): New function. - * tree-ssa.c (delete_tree_ssa): Call delete_old_heap_vars. - * tree-flow.h (referenced_var_remove): Add prototype. - (delete_old_heap_vars): Ditto. - * tree-ssa-structalias.c (heapvars): New variable. - (oldheapvars): Ditto. - (get_constraint_for): Put heap vars on heapvars list. - (delete_old_heap_vars): New function. - -2005-11-08 Jason Merrill - - * tree.h (CALL_FROM_THUNK_P): Add CALL_EXPR_CHECK. - -2005-11-08 Uros Bizjak - - PR target/19340 - * reg-stack.c (reg_to_stack): Update register liveness also - for flag_sched2_use_traces. - -2005-11-08 Alan Modra - - PR target/23704 - * config/rs6000/rs6000.c (rs6000_handle_option ): Don't - override prior explicit -mno-powerpc-gfxopt. - -2005-11-07 Eric Botcazou - - * expmed.c (extract_bit_field): Do not use insv/extv/extzv patterns - if the bitsize is zero. - * doc/md.texi (Standard Pattern Names): Document it. - - * config/ia64/ia64.c (ia64_pass_by_reference): Delete. - (TARGET_PASS_BY_REFERENCE): Likewise. - -2005-11-07 Ian Lance Taylor - - PR rtl-optimization/24683 - * config/i386/i386.c (legitimize_pic_address): If constant operand - to PLUS is too large, put it in a register. - -2005-11-07 Jie Zhang - - * configure.ac: Enable checking assembler dwarf2 support for bfin - target. - * configure: Regenerate. - -2005-11-07 Paolo Bonzini - - PR target/24230 - - * config/rs6000/rs6000.c (easy_vector_splat_const, easy_vector_same, - gen_easy_vector_constant_add_self): Delete. - (vspltis_constant, easy_altivec_constant, gen_easy_altivec_constant): - New. - (output_vec_const_move): Use gen_easy_altivec_constant. - (rs6000_expand_vector_init): Do not emit a set of a VEC_DUPLICATE. - * config/rs6000/predicates.md (easy_vector_constant): Reorganize tests. - (easy_vector_constant_add_self): Rewritten. - * config/rs6000/rs6000-protos.h (easy_vector_splat_const, - easy_vector_same, gen_easy_vector_constant_add_self): Remove prototype. - (easy_altivec_constant, gen_easy_altivec_constant): Add prototype. - * config/rs6000/altivec.md (easy_vector_constant_add_self splitters): - Macroize and adjust for the other changes. - -2005-11-07 Paolo Bonzini - - PR c/24599 - - * c-typeck.c (build_c_cast): Try using a shared constant, and see - if TREE_OVERFLOW or TREE_CONSTANT_OVERFLOW really changed. - -2005-11-07 Jakub Jelinek - - PR rtl-optimization/23567 - * ifcvt.c (noce_mem_write_may_trap_or_fault_p): New function. - (noce_process_if_block): Don't do any optimizations except - if (cond) x = x; if !set_b and write into orig_x may trap - or fault. Remove the MEM_READONLY_P check. - -2005-11-06 Diego Novillo - - PR 24670 - * tree-vrp.c (fix_equivalence_set): New. - (extract_range_from_assert): Call it. - -2005-11-05 Ian Lance Taylor - - PR target/22432 - * combine.c (apply_distributive_law): Don't distribute across a - vector mode subreg. - -2005-11-05 Kazu Hirata - - * c-typeck.c, config/i386/netware.h, config/m32c/cond.md, - config/ms1/ms1.h, config/rs6000/predicates.md, - config/s390/s390.c, params.def, postreload-gcse.c, - tree-flow-inline.h, tree-ssa-operands.c, tree-vectorizer.c, - tree-vrp.c, tree.c: Fix comment typos. - * doc/invoke.texi: Fix typos. - -2005-11-05 Sebastian Pop - - * lambda-code.c (lambda_transform_legal_p): Use DDR_NUM_DIST_VECTS - for testing whether the data_dependence_relation contains distance - vectors. Iterate over all distance vectors of the ddr. - * lambda.h: Define a vec of lambda_vector pointers. - * tree-data-ref.c (dump_data_dependence_relation, - dump_data_dependence_direction): Iterate over all distance and - direction vectors of the ddr. - (initialize_data_dependence_relation): Initialize DDR_DIR_VECTS and - DDR_DIST_VECTS. - (build_classic_dist_vector, build_classic_dir_vector): Push a set - of distance/direction vectors instead of a single one. - * tree-data-ref.h (dir_vects, dist_vects): Replace dir/dist - lambda_vectors with a vec of lambda_vectors. - (DDR_DIR_VECT, DDR_DIST_VECT): Redefined as operations on vec. - (DDR_DIR_VECTS, DDR_DIST_VECTS, DDR_NUM_DIR_VECTS, - DDR_NUM_DIST_VECTS): New. - * tree-loop-linear.c (gather_interchange_stats): Test for the - existence of distance vectors only after having checked that there - is a dependence. Iterate over all distance vectors of the ddr. - (linear_transform_loops): Use dump_data_dependence_relation. - * tree-vect-analyze.c (vect_analyze_data_ref_dependence): Test for - distance vectors using DDR_NUM_DIST_VECTS. Iterate over all the - distance vectors of the ddr. - -2005-11-05 Bernd Schmidt - - * config/bfin/bfin.c (n_dregs_to_save, n_pregs_to_save, - expand_prologue_reg_save, expand_epilogue_reg_restore): New argument - IS_INTHANDLER; all callers changed. - (n_regs_saved_by_prologue): Take interrupt handler attributes into - account. - (do_link, do_unlink): New argument ALL; all callers changed. - (expand_interrupt_handler_prologue, expand_interrupt_handler_epilogue): - If function isn't leaf, save and restore all registers. - (bfin_function_ok_for_sibcall): Only true if not an interrupt or - exception handler. - -2005-11-05 Jan Hubicka - - PR rtl-optimization/23490 - * doc/invoke.texi (max-predicted-iterations, max-cse-insns, - max-flow-memory-location): Document. - * flow.c: Include params.h - (MAX_MEM_SET_LIST_LEN): Kill. - (add_to_mem_set_list): Use new param. - * cse.c (cse_basic_block): Replace 1000 by new param. - * params.def (PARAM_MAX_PREDICTED_ITERATIONS, PARAM_MAX_CSE_INSNS, - PARAM_MAX_FLOW_MEMORY_LOCATIONS): New. - * predict.c (predict_loops): Use new param. - * predict.def (MAX_PRED_LOOP_ITERATIONS): Remove. - - * ipa-inline.c (cgraph_decide_inlining_of_small_function, - cgraph_decide_inlining, cgraph_decide_inlining_incrementally): - Do not hold memory returned by cgraph_node_name across other call. - -2005-11-04 Hans-Peter Nilsson - - PR target/23424 - * config/cris/predicates.md ("cris_bdap_sign_extend_operand"): - Disable. - -2005-11-04 Jeff Law - - PR/21883 - * doc/invoke.texi: Document max-jump-thread-duplication-stmts PARAM. - * tree-ssa-dom.c: Include params.h. - (thread_across_edge): If there are too many statements in the - target block, then do not thread through it. - * Makefile.in (tree-ssa-dom.o): Depend on $(PARAMS_H). - * params.def (PARAM_MAX_JUMP_THREAD_DUPLICATION_STMTS): New PARAM. - -2005-11-03 Diego Novillo - - PR 24627 - * tree-ssa-dce.c (pass_dce, pass_dce_loop, pass_cd_dce): Use - TODO_update_ssa instead of TODO_update_ssa_no_phi. - -2005-11-04 Sebastian Pop - - PR/18595 - * tree-scalar-evolution.c (instantiate_parameters_1, - instantiate_parameters, resolve_mixers): Compute the size of an - expression to be instantiated and give up the instantiation if the - size exceeds PARAM_SCEV_MAX_EXPR_SIZE. - -2005-11-04 Richard Guenther - - * tree-flow.h (ref_contains_indirect_ref): Rename to - array_ref_contains_indirect_ref. - * tree-flow-inline.h (ref_contains_indirect_ref): Likewise. - (array_ref_contains_indirect_ref): Make comment match the code - and vice-versa. - (ref_contains_array_ref): Likewise. - * tree-ssa-structalias.c (find_func_aliases): Remove call to - ref_contains_indirect_ref. - * tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined): - Rename calls to ref_contains_indirect_ref. - -2005-11-04 Paul Brook - - * config/arm/arm.c (arm_load_pic_register): Pass extra reg to - gen_pic_add_dot_plus_four and gen_pic_add_dot_plus_eight. - (arm_call_tls_get_addr, legitimize_tls_address): Likewise. - * config/arm/arm.md: Use match_operand in peephole input templates - and match_dup in peephole output templates. - -2005-11-04 Daniel Jacobowitz - - * config/arm/arm.c (arm_init_libfuncs): Use __aeabi_idiv and - __aeabi_uidiv. - -2005-11-04 Mark Mitchell - Daniel Jacobowitz - - * longlong.h (add_ssaaaa): Clobber condition code register - in ARM version. - (sub_ddmmss): Likewise. - (umul_ppmm): Likewise. - -2005-11-04 Daniel Jacobowitz - Paul Brook - Phil Blundell - - * configure.ac: Add test for ARM TLS support. - * configure: Regenerated. - * config/arm/arm-protos.h (legitimize_tls_address) - (arm_tls_referenced_p, tls_mentioned_p) - (arm_output_addr_const_extra): New prototypes. - (thumb_legitimize_pic_address): Delete. - * config/arm/arm.c: Include "gt-arm.h". - (enum tls_reloc): New. - (arm_cannot_copy_insn_p, arm_tls_symbol_p, load_tls_operand) - (pcrel_constant_p, get_tls_get_addr, arm_load_tp) - (arm_call_tls_get_addr, legitimize_tls_address) - (arm_tls_referenced_p, arm_tls_operand_p_1, tls_mentioned_p) - (arm_init_tls_builtins, arm_emit_tls_decoration) - (arm_output_addr_const_extra): New functions. - (TARGET_CANNOT_COPY_INSN_P, TARGET_CANNOT_FORCE_CONST_MEM) - (TARGET_HAVE_TLS): Define. - (target_thread_pointer): New. - (arm_override_options): Handle -mtp=. - (legitimize_pic_address): Ignore UNSPECs. - (arm_legitimate_address_p, thumb_legitimate_address_p): Handle PC - relative symbols. - (arm_legitimize_address, thumb_legitimize_address): Handle TLS. - (tls_get_addr_libfunc): New variable. - (symbol_mentioned_p, label_mentioned_p): Ignore UNSPEC_TLS. - (arm_init_builtins): Call arm_init_tls_builtins. - (arm_expand_builtin): Handle ARM_BUILTIN_THREAD_POINTER. - (arm_encode_section_info): Call default_encode_section_info. - * config/arm/arm.h (TARGET_HARD_TP, TARGET_SOFT_TP): Define. - (enum arm_tp_type): New. - (target_thread_pointer): Add declaration. - (LEGITIMATE_CONSTANT_P): Handle TLS. - (LEGITIMATE_PIC_OPERAND_P): Handle TLS. - (OUTPUT_ADDR_CONST_EXTRA): Call arm_output_addr_const_extra. - (enum arm_builtins): Add ARM_BUILTIN_THREAD_POINTER. - * config/arm/arm.md: Add UNSPEC_TLS. - (movsi): Handle TLS. - (pic_add_dot_plus_four, pic_add_dot_plus_eight): Allow for - non-PIC. - (tls_load_dot_plus_eight): New insn and a peephole to create it. - (load_tp_hard, load_tp_soft): New insns. - * arm.opt: Add -mtp=. - * doc/invoke.texi (ARM Options): Document -mtp. - -2005-11-04 Daniel Jacobowitz - - * config/arm/lib1funcs.asm: Don't include "libunwind.S". - * config/arm/libunwind.S: Include "lib1funcs.asm". - * config/arm/t-bpabi (LIB1ASMFUNCS): Remove _unwind. - (LIB2ADDEH): Add libunwind.S. - (LIB2ADDEHDEP): Add lib1funcs.asm. - * mklibgcc.in: Handle asm files in libgcc_eh.a. - -2005-11-04 Francois-Xavier Coudert - - PR fortran/18452 - * gcc/c.opt: Add a -lang-fortran option. - * gcc/c-opts.c: Add a lang_fortran flag. - (c_common_init_options): Handling the -lang-fortran option. - (c_common_handle_option): Add a case for Fortran options in - preprocessing. Remove cases for -ffixed-form and - -ffixed-line-length. Add a case for -lang-fortran. - -2005-11-03 David Edelsohn - - * config/rs6000/rs6000.c: Include params.h - (optimization_options): Set max-grow-copy-bb-insns default to 16. - (bdesc_2arg): Delete vpkuhss and vpkuwss. - * config/rs6000/altivec.md (UNSPEC_VPKUHSS): Delete. - (UNSPEC_VPKUWSS): Delete. - (altivec_vpkuhss): Delete. - (altivec_vpkuwss): Delete. - * config/rs6000/rs6000.md (plus_eqsi): Remove optimize_size from - final condition. - (neg_eq0): Remove final condition. - (neg_eq): Remove condition and split-condition. - -2005-11-04 Alan Modra - - * config/rs6000/rs6000.c (output_toc): Make "offset" HOST_WIDE_INT. - Use associated print macros. - -2005-11-03 Joseph S. Myers - - PR c++/17964 - * diagnostic.c (diagnostic_set_info_translated): New function. - (diagnostic_set_info): Use it. Add comment. - * diagnostic.h (diagnostic_set_info_translated): Declare. - -2005-11-03 Eric Botcazou - - * dwarf2asm.c (dw2_force_const_mem): Add new parameter 'public'. - On USE_LINKONCE_INDIRECT platforms, build a DECL_ONE_ONLY indirect - reference only if 'public' is true. - (dw2_output_indirect_constant_1): On USE_LINKONCE_INDIRECT platforms, - emit the .hidden directive only if the indirect reference is public. - (dw2_asm_output_encoded_addr_rtx): Add new parameter 'public'. - Pass it to dw2_force_const_mem. - * dwarf2asm.h (dw2_asm_output_encoded_addr_rtx): New param 'public'. - * dwarf2out.c (output_cfi): Adjust calls to above function. - (output_call_frame_info): Likewise. - * except.c (output_ttype): Pass TREE_PUBLIC of the type_info object - as 'public' argument to dw2_asm_output_encoded_addr_rtx. - -2005-11-03 Zdenek Dvorak - - PR tree-optimization/24483 - * tree-ssa-loop-ivopts.c (aff_combination_add_elt): Move rest - field to elts if possible. - -2005-11-03 Andrew Pinski - - PR middle-end/23155 - * gimplifier.c (gimplify_expr): Create a temporary for lvalue - CONSTRUCTOR. - -2005-11-03 Daniel Berlin - - Fix PR tree-optimization/24351 - - * tree-ssa-structalias.c (struct variable_info): Add - collapsed_into. - (get_varinfo_fc): New function to follow collapsing. - (new_var_info): Set collapsed_to to NULL. - (dump_constraint): Follow collapsing. - (build_constraint_graph): Handle collapsing. - (do_simple_structure_copy): Return false if something bad - happened. - (collapse_rest_of_var): New function. - (do_structure_copy): Collapse if do_simple_structure_copy returns - false. - -2005-11-03 Andrew Pinski - - PR middle-end/24589 - * gimplify.c (gimplify_expr) : Add the - expressions to a statement list instead of gimplifying them. - -2005-11-03 Eric Botcazou - - PR rtl-optimization/23585 - * rtlanal.c (rtx_addr_can_trap_p_1) : Return 0 for an address - that can't trap plus a constant integer, if the mode has zero size. - -2005-11-03 Ulrich Weigand - - PR target/24620 - * config/s390/s390.md ("*insv_reg_imm"): Accept any CONST_INT - as operand 2. - ("*insv_reg_extimm"): Likewise. - -2005-11-03 Joseph S. Myers - - PR c/24329 - * c-pretty-print.c (pp_c_type_specifier): Do not recurse if - c_common_type_for_mode returns an unnamed type. - -2005-11-02 Richard Henderson - - PR target/9350 - PR target/24374 - * dwarf2out.c (dwarf2out_reg_save_reg): New. - (dwarf2out_frame_debug_expr): Return after dwarf_handle_frame_unspec. - * function.c (assign_parms): Use calls.internal_arg_pointer. - (expand_main_function): Remove FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN - code. - * target-def.h (TARGET_INTERNAL_ARG_POINTER): New. - (TARGET_CALLS): Add it. - * target.h (struct gcc_target): Add calls.internal_arg_pointer. - * targhooks.c (default_internal_arg_pointer): New. - * targhooks.h (default_internal_arg_pointer): Declare. - * tree.h (dwarf2out_reg_save_reg): Declare. - * doc/tm.texi (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN): Remove. - * config/i386/i386.c (dbx_register_map): Add return column. - (dbx64_register_map, svr4_dbx_register_map): Likewise. - (TARGET_INTERNAL_ARG_POINTER, ix86_internal_arg_pointer): New. - (TARGET_DWARF_HANDLE_FRAME_UNSPEC, ix86_dwarf_handle_frame_unspec): New. - (ix86_function_ok_for_sibcall): Disable if force_align_arg_pointer. - (ix86_save_reg): Save force_align_arg_pointer. - (ix86_emit_save_regs): Make regno unsigned. - (ix86_emit_save_regs_using_mov): Likewise. - (ix86_expand_prologue): Handle force_align_arg_pointer. - (ix86_expand_epilogue): Likewise. - * config/i386/i386.h: (dbx_register_map): Update. - (dbx64_register_map, svr4_dbx_register_map): Update. - (struct machine_function): Add force_align_arg_pointer. - * config/i386/i386.md (UNSPEC_REG_SAVE, UNSPEC_DEF_CFA): New. - (UNSPEC_TP, UNSPEC_TLS_GD, UNSPEC_TLS_LD_BASE): Renumber. - (TARGET_PUSH_MEMORY peepholes): Disable if RTX_FRAME_RELATED_P. - -2005-11-02 Jan Hubicka - - PR target/23303 - * i386.md: Add peep2 for simplyfing array accesses. - -2005-11-02 Ulrich Weigand - - PR target/24615 - * config/s390/s390-protos.h (s390_decompose_shift_count): Declare. - * config/s390/s390.c (s390_decompose_shift_count): New function. - (s390_extra_constraint_str) ['Y']: Use s390_decompose_shift_count. - (print_shift_count_operand): Use s390_decompose_shift_count. - * config/s390/predicates.md ("setmem_operand", "shift_count_operand"): - Use s390_decompose_shift_count. Do not accept any non-base hard regs. - -2005-11-02 Ulrich Weigand - - PR target/24600 - * loop.c (loop_givs_rescan): Use force_operand to expand - complex GIVs. - -2005-11-02 Andrew Pinski - - PR 22429 - * fold-const.c (build_range_check): Use unsigned when signed - overflow is undefined also. If etype is subtype, make sure that - the subtraction is in the supertype. - -2005-11-02 Richard Henderson - - PR target/24178 - * config/alpha/alpha.c (get_aligned_mem): Honor alignment given - by MEM_ALIGN. - -2005-11-01 Richard Henderson - - PR 21518 - * loop.c (scan_loop): Do not propagate computations to a hard - register destination with SMALL_REGISTER_CLASSES. - -2005-11-01 Joseph S. Myers - - * config/rs6000/rs6000.c (rs6000_rtx_costs): Do not add extra - costs for MULT inside PLUS or MINUS. - -2005-11-01 Bob Wilson - - * config/xtensa/xtensa.h (TRAMPOLINE_TEMPLATE): Add a byte of padding. - (TRAMPOLINE_SIZE): Round up to 60. - * config/xtensa/lib2funcs.S (TRAMPOLINE_SIZE): Likewise. - -2005-10-31 James E. Wilson - - PR debug/24444 - * dwarf2out.c (convert_cfa_to_loc_list): Put inside DWARF2_UNWIND_INFO - ifdef. Put ifdefs around call in gen_subprogram_die. - (compute_frame_pointer_to_cfa_displacement): Likewise. - (gen_subprogram_die): Restore old code for when DWARF2_UNWIND_INFO is - not defined. - - PR rtl-optimization/17356 - * cfgrtl.c (purge_dead_edges): Undo last change. In EDGE_EH code, - add check for CALL_INSN if EDGE_ABRNOMAL_CALL true. - -2005-10-31 Jan Hubicka - - PR middle-end/24093 - * cgraph.c (cgraph_clone_edge, cgraph_clone_node): Watch negative - - PR target/20928 - * i386.c (legitimize_pic_address): Deal with large immediates. - - PR profile/20815 - * coverage.c (coverage_checksum_string): Fix code to stip random seeds - from symbol names while computing checkup. - - PR profile/24487 - * predict.c (predict_loops): Do not estimate more than - MAX_PRED_LOOP_ITERATIONS in PRED_LOOP_ITERATIONS heuristic. - * predict.def (MAX_PRED_LOOP_ITERATIONS): Define. - -2005-10-31 Andrew MacLeod - - PR tree-optimization/19097 - * tree-ssa-operands.c (correct_use_link): Don't look for modified stmts. - -2005-10-31 J"orn Rennecke - - * optabs.c (expand_unop): Take TRULY_NOOP_TRUNCATION into account. - -2005-10-31 Andrew Pinski - - PR middle-end/23492 - * tree-inline.c (setup_one_parameter): If the init_stmt - is NULL, don't insert the statement. - -2005-10-30 Jan Hubicka - - PR tree-optimization/24172 - * tree-inline.c (copy_body_r): Unshare the substituted value first. - -2005-10-30 Hans-Peter Nilsson - - * config/mmix/mmix.c (mmix_intval): Correct handling of DFmode - constants for hosts with long != 32 bits. - -2005-10-28 Andreas Krebbel - - PR middle-end/24093 - * ipa-inline.c (craph_decide_recursive_inlining): Fix return value. - -2005-10-28 Aldy Hernandez - - * config/ms1/ms1.h (TARGET_MS1_64_001): New. - (TARGET_MS1_16_002): New. - (TARGET_MS1_16_003): New. - - * config/ms1/ms1.md ("decrement_and_branch_until_zero"): Rewrite. - ("*decrement_and_branch_until_zero_no_clobber"): New. - Add corresponding splitter for decrement_and_branch_until_zero - instruction. - Key all decrement_and_branch_until_zero patterns off of - TARGET_MS1_16_003. - -2005-10-28 Andrew Pinski - - PR middle-end/24362 - * tree-complex.c (extract_component): Treat RESULT_DECL - like the rest of the decls. - -2005-10-25 Eric Botcazou - - * config/ia64/ia64.c (ia64_output_function_profiler): Emit an - indirect call to _mcount if the function needs a static chain. - -2005-10-25 Eric Botcazou - Caroline Tice - - PR rtl-optimization/24460 - * dwarf2out.c (have_switched_text_sections): New boolean variable. - (dwarf2out_switch_text_section): Set it to true instead of - incrementing separate_line_info_table_in_use. - (output_loc_list): Additionally test have_switched_text_sections. - (output_ranges): Likewise. - (dwarf2out_finish): Likewise. - * varasm.c (assemble_start_function): Do not call - insert_section_boundary_note. - (assemble_end_function): If flag_reorder_blocks_and_partition, - switch to the function's section before emitting the .size directive. - * bb-reorder.c (insert_section_boundary_note): Staticify. - (rest_of_handle_reorder_blocks): Call insert_section_boundary_note. - * output.h (insert_section_boundary_note): Delete. - -2005-10-24 Andrew Pinski - - PR c/23103 - * c-format.c (check_format_types): Use lang_hooks.types_compatible_p - instead of pointer equality when comparing types. - -2005-10-24 James E. Wilson - - * sched-deps.c (flush_pending_lists): Pass 1 not 0 in first two - add_dependence_list_and_free calls. - -2005-10-24 Steven Bosscher - - * contrib.texi: Add the names of the LLNL folks who donated - Cray pointer support for gfortran. - -2005-10-24 Steven Bosscher - - PR tree-optimization/24225 - * profile.c (branch_prob): Look from end to start through a - basic block when looking for a locus. - -2005-10-24 Richard Henderson - - * pa.c (store_reg_modify): Set RTX_FRAME_RELATED_P on each set in - parallel. - (hppa_expand_prologue): Likewise. - -2005-10-24 John David Anglin - - * pa-linux.h (NO_PROFILE_COUNTERS): Delete define. - (NO_DEFERRED_PROFILE_COUNTERS): Define. - * pa.h (NO_PROFILE_COUNTERS): Define. - * pa.c (NO_DEFERRED_PROFILE_COUNTERS): Define if not defined. - (funcdef_nos): New vector to hold label numbers of deferred profile - counters. - (output_deferred_profile_counters): New function. - (hppa_profile_hook): Push label number onto funcdef_nos. - (pa_hpux_file_end): Call output_deferred_profile_counters if - NO_DEFERRED_PROFILE_COUNTERS is false. - - * pa-protos.h (get_deferred_plabel): New prototype. - * pa.c (get_plabel): Rename to get_deferred_plabel. Return plabel. - Make global. - (output_call): Adjust calls. - -2005-10-24 Alan Modra - - * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Explain - peculiarity of GOT/TOC section usage. - -2005-10-23 Andrew Pinski - - PR objc/24435 - * c-common.c (constant_string_class_name): Add documentation. - -2005-10-23 Kaz Kojima - - PR target/23832 - * recog.c (peephole2_optimize): Increment peep2_current_count - only when the slot is empty. - -2005-10-23 John David Anglin - - PR ada/23957 - * except.c (output_function_exception_table): Call - assemble_external_libcall if we need a personality function. - -2005-10-21 Eric Botcazou - - PR rtl-optimization/24460 - * bb-reorder.c (fix_crossing_unconditional_branches): Do not - set the basic block for barriers. - -2005-10-21 Janis Johnson - - * var-tracking.c (vt_initialize): Initialize post. - -2005-10-21 Devang Patel - - PR/24220 - * c-common.c (vector_types_convertible_p): Check vector element type. - -2005-10-21 Kaz Kojima - - * config/sh/sh.c (prepare_move_operands): Handle the address - constant which is a tls symbolic address plus a constant. - -2005-10-21 Andrew Pinski - - PR driver/24473 - * gcc.c (main): Use the correct counter for erroring out - about mulitple files. - -2005-10-21 Alan Modra - - PR target/24465 - * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Always - use r2 for 64-bit tls .got access. - -2005-10-21 Paolo Bonzini - - * dojump.c (do_jump): Handle side-effecting TRUTH_AND_EXPR and - TRUTH_OR_EXPR. - -2005-10-20 Steven Bosscher - - PR tree-optimization/24307 - * tree-cfg.c (tree_find_edge_insert_loc): Handle naked RETURN_EXPR. - -2005-10-20 Alexandre Oliva - - PR middle-end/24295 - * cgraphunit.c (cgraph_varpool_remove_unreferenced_decls): Mark - alias targets. - * varasm.c (find_decl_and_mark_needed): After cgraph global info - is ready, stop marking functions, but still mark variables. - -2005-10-20 Richard Guenther - - PR c++/24439 - * fold-const.c (invert_truthvalue): Handle COND_EXPR with - void type operands. - -2005-10-20 Eric Botcazou - - PR rtl-optimization/23585 - * rtlanal.c (rtx_addr_can_trap_p_1): New predicate extracted from... - (rtx_addr_can_trap_p): ... here. Invoke rtx_addr_can_trap_p_1. - (may_trap_p_1): New predicate extracted from... - (may_trap_p): ... here. Invoke may_trap_p_1. - (may_trap_or_fault_p): New predicate. - * rtl.h (may_trap_or_fault_p): Declare it. - * reorg.c (steal_delay_list_from_target): Use may_trap_or_fault_p - instead of may_trap_p. - (steal_delay_list_from_fallthrough): Likewise. - (fill_simple_delay_slots): Likewise. - (fill_slots_from_thread): Likewise. - * function.c (pad_to_arg_alignment): Rework comment about - SPARC_STACK_BOUNDARY_HACK. - * config/sparc/sparc.h: Likewise. - -2005-10-19 Adrian Straetling - - * config/s390/s390.c (s390_expand_insv): New. - * config/s390/s390-protos.h (s390_expand_insv): Declare. - * config/s390/s390.md ("UNSPEC_SETHIGH"): Rename to "UNSPEC_ICM". - ("icm_hi"): Remove mode attribute. - ("*sethigh"): Rewrite to "sethighpart". - Adjust all uses. - ("*extracthi", "*extractqi"): Remove. - (extv", "*extzv"): New. - ("insv", "*insv_mem_reg", "*insvdi_mem_reghigh", - "*insv_reg_imm", "*insv_reg_extimm"): New. - -2005-10-19 Ulrich Weigand - - * cfgexpand.c (discover_nonconstant_array_refs_r, - discover_nonconstant_array_refs): Move here from tree-outof-ssa.c - (tree_expand_cfg): Call discover_nonconstant_array_refs. - * tree-outof-ssa.c (rewrite_out_of_ssa): Remove call to - discover_nonconstant_array_refs. - -2005-10-19 Steven Bosscher - - PR c/23228 - * c-decl.c (pop_scope): Don't warn about an unused variable - if it is marked with TREE_NO_WARNING. - (duplicate_decls): Set TREE_NO_WARNING if olddecl and newdecl - somenow mismatch and olddecl is to be replaced. - -2005-10-19 Eric Botcazou - - PR middle-end/23199 - * cfgrtl.c (safe_insert_insn_on_edge): Use can_copy_p to detect - whether registers live on the edge can be saved/restored. - -2005-10-19 Kaz Kojima - - * config/sh/sh.c (fixup_mova): Skip notes. - -2005-10-19 Ulrich Weigand - - * config/s390/s390-protos.h (s390_hard_regno_rename_ok): Add prototype. - * config/s390/s390.c (s390_hard_regno_rename_ok): New function. - (s390_can_eliminate): Handle BASE_REGNUM elimination. - (s390_initial_elimination_offset): Likewise. - (s390_conditional_register_usage): BASE_REGNUM is no longer a fixed - register on TARGET_ZARCH targets. - * config/s390/s390.h (HARD_REGNO_RENAME_OK): Define - (INITIAL_FRAME_POINTER_OFFSET): Remove. - (REG_ALLOC_ORDER): Move BASE_REGNUM lower. - (ELIMINABLE_REGS): Add BASE_REGNUM elimination rule. - -2005-10-19 Andreas Krebbel - - * config/s390/s390.md: Comment describing output modifiers updated. - * config/s390/s390.c (print_operand): Likewise. - -2005-10-19 Andreas Krebbel - - * config/s390/s390.c (override_options): Added check for -mstack-size - 64k limitation. - * doc/invoke.texi: Mention that limit in the documenation. - -2005-10-18 Paolo Bonzini - - PR #19672 - * dojump.c (do_jump): Handle TRUTH_AND_EXPR and TRUTH_OR_EXPR here. - -2005-10-18 Daniel Berlin - - Fix PR tree-optimization/24231 - - * tree-ssa-pre.c (try_look_through_load): Skip abnormal phi names - (compute_avail): Ditto. - -2005-10-18 Richard Henderson - - PR target/24428 - * config/i386/i386.c (legitimate_constant_p): Check - SYMBOL_REF_TLS_MODEL directly. Don't fallthru to SYMBOL_REF - if LABEL_REF. - (legitimate_pic_operand_p): Test SYMBOL_REF_TLS_MODEL directly. - (legitimate_pic_address_disp_p): Reorg CONST checking to make - sure SYMBOL_REF_TLS_MODEL is tested. Test SYMBOL_REF_TLS_MODEL - directly. - (print_operand_address): Likewise. - * config/i386/predicates.md (x86_64_immediate_operand): Test - SYMBOL_REF_TLS_MODEL properly inside CONST. - (x86_64_zext_immediate_operand): Likewise. - (global_dynamic_symbolic_operand, local_dynamic_symbolic_operand, - initial_exec_symbolic_operand, local_exec_symbolic_operand): Remove. - * config/i386/i386-protos.h: Remove predicates.md entries. - -2005-10-18 Danny Smith - - * config/i386/winnt-cxx.c (i386_pe_adjust_class_at_definition): - Check that elements of TYPE_METHODS are FUNCTION_DECLs. - -2005-10-17 Alexey Starovoytov - Ian Lance Taylor - - PR middle-end/23522 - * fold-const.c (fold_widened_comparison): Do not allow range based - constant folding when right operand cannot be unwidened. - -2005-10-17 Richard Henderson - - * builtins.c (expand_builtin_synchronize): Build a new-style asm - with a memory clobber. - -2005-10-17 James E Wilson - - PR rtl-optimization/17356 - * cfgrtl.c (purge_dead_edges): Check for EDGE_ABNORMAL_CALL before - checking for EDGE_EH. - -2005-10-17 Eric Botcazou - - * config/sparc/sparc.c (function_arg_slotno): In 64-bit mode, align - the slot on an even boundary for any type with 16-byte alignment. - -2005-10-17 Hans-Peter Nilsson - - PR target/23424 - * md.texi (Modifiers) <%>: Clarify that % doesn't work - after register allocation. - -2005-10-17 DJ Delorie - - * config/m32c/m32c.c (m32c_pushm_popm): Don't mark epilogue insns - as frame related. - -2005-10-17 Nathan Sidwell - - PR c++/22551 - * c-common.c (c_add_case_label): Revert my 2005-10-14 clearing of - overflow flags. - -2005-10-17 Kaz Kojima - - * config/sh/sh.h (OPTIMIZATION_OPTIONS): Set flag_schedule_insns - to 2 if it's already non-zero. - (OVERRIDE_OPTIONS): Clear flag_schedule_insns if flag_exceptions - is set and warn about it if flag_schedule_insns is 1. - -2005-10-17 Paul Woegerer - - * config/crx/crx.md: Compare-and-branch instructions need to - invalidate CC. - -2005-10-17 Uros Bizjak - - PR target/24315 - * config/i386/i386.md (*pushdi2_rex64 splitter) - (*movdi_1_rex64 splitter, *ashldi3_1 splitter) - (*ashrdi3_1 splitter, *lshrdi3_1 splitter): Delay splitting after - flow2 pass only when (optimize > 0 && flag_peephole2). - -2005-10-16 Andrew Pinski - - PR driver/22544 - * gcc.c (have_c): New static variable. - (have_o): Likewise. - (process_command): Remove declation of have_c. - Set have_o to 1 when handling -o. - (main): Add a fatel error if there are multiple - files specified and -o and -c/-S is passed witout - -combine or multiple languages. - -2005-10-16 Daniel Berlin - - Fix PR tree-optimization/22444 - * tree-ssa-alias.c (compute_flow_insensitive_aliasing): - Assert that we don't hit something with subvars. - (setup_pointers_and_addressables): Don't add things with subvars, - because we'll already process the subvars for aliasing purposes. - -2005-10-16 Hans-Peter Nilsson - - PR target/23424 - * config/cris/cris.md ("*mov_side", "*mov_sidesisf") - ("*mov_side_mem", "*mov_sidesisf_mem", "*clear_side") - ("*ext_sideqihi", "*ext_sidesi", "*op_side") - ("*op_swap_side", "*extopqihi_side", "*extopsi_side") - ("*extopqihi_swap_side", "*extopsi_swap_side"): Have separate, - swapped, alternatives for the R constraint. - - PR middle-end/24341 - * builtins.c (get_builtin_sync_mode): Make unlimited - mode_for_size request. - -2005-10-15 Richard Henderson - - * gimplify.c (gimplify_var_or_parm_decl): Split out from ... - (gimplify_expr): ... here. - (gimplify_compound_lval): Use it in initial scan loop. Allow - fb_lvalue in base expression. - -2005-10-15 Richard Henderson - - PR 23714 - * builtins.c (expand_builtin_trap): Export. - * expr.h (expand_builtin_trap): Declare. - * expr.c (expand_assignment): Emit a trap for integral offsets - from registers that weren't reduced to bitpos. - - * tree-cfg.c (mark_array_ref_addressable_1): Remove. - (mark_array_ref_addressable): Remove. - * tree-flow.h (mark_array_ref_addressable): Remove. - * tree-optimize.c (execute_cleanup_cfg_post_optimizing): Don't call it. - -2005-10-15 James E Wilson - - PR target/24232 - * sched-deps.c (add_dependence_list): New arg UNCOND. Fix all callers. - (add_dependence_list_and_free): Likewise. - (sched_analyze_2, case MEM): Delete sched_insns_conditions_mutex_p - call. - -2005-10-15 Diego Novillo - - PR 23141 - PR 23142 - * tree-vrp.c (vrp_meet): Fix the intersection of equivalence - sets VR0->EQUIV and VR1->EQUIV when meeting a range and an - anti-range. - (vrp_visit_phi_node): Only prevent infinite iterations when - the previous result and the new result are both VR_RANGEs. - -2005-10-15 Ranjit Mathew - - * tree-into-ssa.c (mark_def_sites): Correct minor typo in - function comment. - -2005-10-14 Volker Reichelt - - PR c/23439 - * c-parser.c (c_parser_for_statement): Use location of RID_FOR - to initialize loc. - -2005-10-14 Per Bothner - - PR preprocessor/21250 - * c-ppoutput.c (print_line): Print internal line 0 as 1. - -2005-10-14 Nathan Sidwell - - PR c++/22551 - * c-common.c (c_add_case_label): Clear LOW_VALUE and HIGH_VALUE's - overflow flags. Refactor some conditionals. - -2005-10-13 Andrew Pinski - - PR tree-opt/21304 - * tree-dfa.c (add_referenced_var): Only look at decls which - have TREE_CONSTANT or TREE_READONLY set instead of if - !TREE_PUBLIC or !TREE_CONSTANT. - -2005-10-13 James E Wilson - - * doc/invoke.texi: For -x, add f95-cpp-input. - * doc/install.texi: For --enable-languages doc, change f95 to fortran. - -2005-10-12 Sebastian Pop - - PR tree-optimization/24262 - * tree-data-ref.c (analyze_offset_expr): Check that init is invariant - in loop all the time. - -2005-10-12 Richard Henderson - - PR c/24255 - * tree.h (DECL_TRANSPARENT_UNION): Remove. - * function.c (assign_parm_find_data_types): Don't support it. - * print-tree.c (print_node): Likewise. - * c-common.c (handle_transparent_union_attribute): Likewise. - Use build_duplicate_type. - * tree-inline.c (remap_type_1): Split out of remap_type; - properly remap aggregate fields. - (build_duplicate_type): New. - * doc/extend.texi (Variable Attributes): Remove documentation - for transparent_union. - -2005-10-12 Eric Botcazou - - PR target/24284 - * config/sparc/sparc.c (gen_stack_pointer_inc): Build by hand. - (gen_stack_pointer_dec): Likewise. - -2005-10-12 Danny Smith - - PR middle-end/21275 - PR middle-end/21766 - * target.h (struct gcc_target): Add valid_dllimport_attribute_p - target hook. - (struct cxx): Add adjust_class_at_definition target hook. - * target-def.h: (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): New define, - defaulting to hook_bool_tree_true. Add to TARGET_INITIALIZER - (TARGET_CXX_ADJUST_CLASS_AT_DEFINITION): New define, defaulting to - hook_void_tree. Add to TARGET_CXX. - * tree.h (struct decl_with_vis): Rename non_addr_const_p field to - dllimport_flag. - (DECL_NON_ADDR_CONSTANT_P): Replace with DECL_DLLIMPORT_P macro. - * tree.c (merge_dllimport_decl_attributes): Check DECL_DLLIMPORT_P - instead of attribute. Check for dllexport override. Warn if - inconsistent dll linkage. Don't lose old dllimport if decl has - had address referenced. Tweak lookup of dllimport atribute. - (handle_dll_attribute): Check targetm.valid_dllimport_attribute_p - for target specific rules. Don't add dllimport attribute if - DECL_DECLARED_INLINE_P. Set DECL_DLLIMPORT_P when adding - dllimport attribute. - (staticp): Replace DECL_NON_ADDR_CONSTANT_P with DECL_DLLIMPORT_P. - * varasm.c (initializer_constant_valid_p): Replace - DECL_NON_ADDR_CONSTANT_P with DECL_DLLIMPORT_P - - PR target/21801 - PR target/23589 - * config.gcc (i[34567]86-*-cygwin*): Add winnt-cxx.o to - 'cxx_target_objs', winnt-stubs,o to 'extra_objs'. - (i[34567]86-*-mingw32*): Likewise. - - * doc/tm.texi (TARGET_CXX_ADJUST_CLASS_AT_DEFINITION): Document. - (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Document. - - * config/i386/winnt.c (i386_pe_dllimport_p): Factor out - C++-specific code. Change return value to bool. - (i386_pe_dllimport_p): Likewise. - (associated_type): Simplify and make language-independent - (i386_pe_encode_section_info): Replace override of ambiguous - dllimport symbol refs with a gcc_assert. - (i386_pe_valid_dllimport_attribute_p): Define. - * config/i386/winnt-cxx.c: New file. Define C++ versions of - i386_pe_type_dllimport_p, i386_pe_type_dllexport_p, - i386_pe_adjust_class_at_definition. - * config/i386/winnt-stubs.c: New file. Define stub versions of - lang-specific functions. - * config/i386/i386-protos.h: Declare winnt-[cxx|stubs].c functions - i386_pe_type_dllimport_p, i386_pe_type_dllexport_p, - i386_pe_adjust_class_at_definition. - (i386_pe_valid_dllimport_attribute_p): Declare. - * config/i386/cygming.h (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Define. - (TARGET_CXX_ADJUST_CLASS_AT_DEFINITION): Define. - * config/i386/t-cygming: Add rules for winnt-cxx.o, winnt-stubs.o. - - PR target/19704 - * config/i386/i386.c (ix86_function_ok_for_sibcall): Replace test for - dllimport attribute with test of DECL_DLLIMPORT_P. - -2005-10-12 Adrian Straetling - - * combine.c (make_extraction): Correct offset computation. - -2005-10-12 Hans-Peter Nilsson - - * config/cris/t-linux (LIMITS_H_TEST): Define. - -2005-10-12 Richard Henderson - - PR rtl-opt/23324 - * cfgexpand.c (add_alias_set_conflicts): Use objects_must_conflict_p. - -2005-10-12 Richard Guenther - - * Makefile.in (CGRAPH_H): Depend on $(TREE_H). - -2005-10-12 Nathan Sidwell - - PR c++/19964 - * stor-layout.c (place_field): Set DECL_FIELD_OFFSET and - DECL_FIELD_BIT_OFFSET of FIELD_DECLs, even if they have an invalid - type. - -2005-10-12 Richard Guenther - - PR c++/23799 - * varasm.c (output_constant): Correct typo from previous - patch by DJ. - -2005-10-11 Ian Lance Taylor - - PR rtl-optimization/13931 - * combine.c: Revert patch of 2003-05-14, and: - (try_combine): Only set elim_i1 and elim_i2 if the destination is - completely killed in the appropriate insn. - (distribute_notes): Don't skip multiple hard register test for - elim_i1 and elim_i2. - -2005-10-11 Richard Henderson - - PR c/24255 - * c-typeck.c (convert_for_assignment): Use build_constructor_single - to initialize a transparent union instead of a nop_expr. - -2005-10-11 Richard Henderson - - * Makefile.in (tree-ssa-dce.o): Depend on SCEV_H. - * tree-ssa-dce.c: Include tree-scalar-evolution.h. - (tree_ssa_dce_loop): Call scev_reset. - - PR tree-opt/24300 - * Makefile.in (tree-ssa-dce.o): Depend on CFGLOOP_H. - * tree-ssa-dce.c: Include cfgloop.h. - (tree_ssa_dce_loop, pass_dce_loop): New. - * tree-pass.h (pass_dce_loop): Declare it. - * passes.c (init_optimization_passes): Use it. - -2005-10-11 Eric Botcazou - - PR middle-end/24263 - * convert.c (convert_to_real): Revert 2005-10-05 patch. - Only apply the optimization for rounding builtins if the inner - cast is also an extension. - -2005-10-11 Andrew Pinski - - PR tree-opt/23946 - * tree-ssa-ccp.c (execute_fold_all_builtins): Call - mark_new_vars_to_rename instead of update_stmt. - -2005-10-11 Bernd Schmidt - - * config/bfin/crti.s (__init, __fini): Renamed from _init, _fini. - -2005-10-11 Jakub Jelinek - - * config/i386/i386.md (movsi_1, movdi_1_rex64): Use mmxadd type - for setting MMX register to 0 rather than mmx. - -2005-10-10 Steve Ellcey - - PR target/12098 - * configure.ac: Move gas check from mips specific case to common case. - Do check for GNU as for mips*-*-* and *-*-hpux* targets. - * configure: Regenerate - * doc/install.texi: Update. - -2005-10-10 Eric Botcazou - - PR target/24284 - * config/sparc/sparc.c (sparc_expand_prologue): Remove bogus PATTERN. - -2005-10-10 Maciej W. Rozycki - - * gcc.c (do_spec_1): Accept numeric characters in file name - suffixes. - -2005-10-10 Nick Clifton - - * config/arm/arm.c: Remove extraneous whitespace. Remove comment - describing the deleted arm_gen_rotated_half_load function. - -2005-10-09 Kaz Kojima - - * config/sh/sh.c (emit_fpu_switch): Set TREE_PUBLIC for - __fpscr_values. - -2005-10-09 Daniel Jacobowitz - - * config.gcc (arm*-*-linux*): Remove redundant extra_parts and - gnu_ld assignments. - * config/arm/t-linux-eabi (LIB1ASMFUNCS) - (EXTRA_MULTILIB_PARTS): Define. - * config/arm/linux-elf.h (NO_IMPLICIT_EXTERN_C, CPLUSPLUS_CPP_SPEC) - (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC) - (LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): Move to... - * config/arm/uclinux-elf.h (NO_IMPLICIT_EXTERN_C, CPLUSPLUS_CPP_SPEC) - (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC) - (LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): ... here. - -2005-10-09 Zdenek Dvorak - - PR tree-optimization/24226 - * tree-cfg.c (remove_bb): Clean up unreachable loops. - * tree-flow.h (free_numbers_of_iterations_estimates_loop): Declare. - * tree-ssa-loop-niter.c (free_numbers_of_iterations_estimates_loop): - Export. - -2005-10-09 Eric Botcazou - - * config/sparc/gmon-sol2.c (internal_mcount): Mark as used. - -2005-10-08 Andrew Pinski - - PR target/24136 - * config/rs6000/darwin.md (movdf_low_si): Remove early clobber. - Rewrite for no need for the early clobber. - -2005-10-08 Kazu Hirata - - Merge from csl-arm-branch: - 2005-09-07 Paul Brook - * config/arm/linux-eabi.h (SUBTARGET_EXTRA_LINK_SPEC): Prepend a - space to string. - - 2005-04-30 Paul Brook - * config/arm/bpabi.h (TARGET_DEFAULT): Define. - * config/arm/linux-eabi.h (SUBTARGET_CPU_DEFAULT): Define. - - 2005-03-07 Daniel Jacobowitz - * config/arm/arm.c (arm_all_abis): Add aapcs-linux. - (arm_override_options): Use TARGET_AAPCS_BASED. - * config/arm/arm.h (enum arm_abi_type): Add ARM_ABI_AAPCS_LINUX. - (PTRDIFF_TYPE): Use int for AAPCS. - (DEFAULT_SHORT_ENUMS): Use false for aapcs-linux. - * config/arm/linux-eabi.h (ARM_DEFAULT_ABI, WCHAR_TYPE): Define. - (DEFAULT_SHORT_ENUMS): Delete. - * doc/invoke.texi (ARM Options): Document -mabi=aapcs-linux. - - 2004-12-15 Daniel Jacobowitz - * config/arm/arm.h (DEFAULT_SHORT_ENUMS): Wrap in #ifndef. - * config/arm/linux-eabi.h (DEFAULT_SHORT_ENUMS): Define to 0. - * config/arm/t-linux-eabi (TARGET_LIBGCC2_CFLAGS): Set to -fPIC. - - 2004-12-03 Mark Mitchell - * config/arm/linux-eabi.h (LIBGCC_SPEC): Do not define. - - 2004-11-22 Mark Mitchell - * config.gcc (arm*-*-linux-gnueabi): Use __cxa_atexit. - - 2004-11-19 Mark Mitchell - * config.gcc (arm*-*-linux-gnueabi): Add it. - * config/arm/bpabi.h (FPUTYPE_DEFAULT): Undefine it before - redefining it. - (TARGET_OS_CPP_BUILTINS): Likeiwse. - * config/arm/linux-eabi.h: New file. - * config/arm/linux-elf.h (LINUX_TARGET_INTERPRETER): New macro. - (LINUX_TARET_LINK_SPEC): Likewise. - (LINK_SPEC): Use it. - * config/arm/t-linux-eabi: New file. - -2005-10-08 Steven Bosscher - - PR other/22202 - * params.def (PARAM_MAX_VARIABLE_EXPANSIONS): Remove superfluous - spaces. - (PARAM_SMS_DFA_HISTORY): Likewise. - -2005-10-08 Kazu Hirata - - PR middle-end/23150 - * calls.c (mem_overlaps_already_clobbered_arg_p): New. - (load_register_parameters): Call it. - (check_sibcall_argument_overlap_1): Likewise. - (store_one_arg): Likewise. - -2005-10-07 James E. Wilson - - * config/ia64/vect.md (ashl3, ashr3, lshr3): Use - DImode not VECINT24 for operand 2. - - PR target/23644 - * doc/invoke.texi (IA-64 Options, item -mtune): Renamed from - -mtune-arch. - - PR target/24193 - * config/ia64/ia64.md (movbi, movti_internal, gr_spill_internal, - fr_spill): Use destination_operand for operand 0. - -2005-10-07 DJ Delorie - - * varasm.c (output_constant): Limit error to expanding - conversions. - -2005-10-07 Richard Guenther - - PR middle-end/24227 - * fold-const.c (fold_binary): Fix operand types during folding - of X op (A, Y). Evaluation order of the side-effects of - X and A are frontend-defined, so ensure we honour that even for - tcc_comparison class operands; eased by removing duplicate code. - -2005-10-07 Steve Ellcey - - * stor-layout.c (layout_type): Do not allow alignment of array - elements to be greater than their size. - -2005-10-07 Steve Ellcey - - * config.host (hppa*-*-hpux*): Change out_host_hook_obj and - host_xmake_file. - (hppa*-*-linux*): Ditto. - (ia64-*-hpux*): Add out_host_hook_obj and host_xmake_file. - * config/host-hpux.c: New. - * config/x-hpux: New. - * config/pa/x-hpux: Remove. - * config/pa/x-linux: Remove. - * config/pa/pa-host.c: Remove. - -2005-10-07 Jeff Law - - * tree-ssa-dom.c (dom_opt_finalize_block): Fix conditions to - determine whether or not to try and thread outgoing edges. - -2005-10-07 David Edelsohn - - * config/rs6000/rs6000.md (eqsi_power): New. - (neg_eq0si): Add TARGET_POWER to final condition. - (neg_eqsi): Same. - -2005-10-06 Richard Henderson - - * config/rs6000/rs6000.c: Revert last change. - -2005-10-06 Richard Henderson - - * config/rs6000/rs6000.c (rs6000_cannot_force_const_mem): New. - (TARGET_CANNOT_FORCE_CONST_MEM): Use it. - -2005-10-06 Andrew Pinski - - PR middle-end/22216 - PR middle-end/23651 - * cfgexpand.c (tree_expand_cfg): After expanding the functions, clear - out return_label and naked_return_label. - -2005-10-06 Daniel Berlin - - * tree-ssa-structalias.c (check_for_overlaps): Fix bug in last - change. - -2005-10-06 Richard Henderson - - PR tree-opt/22237 - * tree-inline.c (declare_return_variable): Handle modify_dest not - being a DECL. - -2005-10-06 Daniel Berlin - - Fix PR tree-optimization/22488 - * tree-ssa-structalias.c (check_for_overlaps): New function. - (create_variable_info_for): Use it. - -2005-10-06 Richard Henderson - - PR debug/24070 - * dwarf2out.c (lookup_filename): Return the result of maybe_emit_file. - (dwarf2out_start_source_file): Print it. - -2005-10-06 Geoffrey Keating - - * config/t-slibgcc-darwin (SHLIB_MAPFILES): Use '+='. - -2005-10-06 Richard Henderson - - PR 23706 - * mode-switching.c (optimize_mode_switching): Clear transp bit - for block with incomming abnormal edges. - - * config/sh/sh.c (fpscr_values, emit_fpu_switch): New. - (fpscr_set_from_mem): Use them. - * config/sh/sh.md (fpu_switch0, fpu_switch1): Remove. - (fpscr postinc splitters): Rewrite as peephole2+split. - -2005-10-06 David Edelsohn - - * config/rs6000/rs6000.md (eq): Add !TARGET_POWER. - (eq_compare): Same. - -2005-10-06 Richard Guenther - - PR tree-optimization/24238 - * tree-ssa-alias.c (find_used_portions): Handle RESULT_DECL. - -2005-10-06 Daniel Jacobowitz - - * acinclude.m4 (gcc_AC_CHECK_TOOL): Handle environment variables - here. Use AC_PATH_PROG for environment variables instead of - test -x. - * configure.ac: Update calls to gcc_AC_CHECK_TOOL. Use it for - objdump also. - * configure: Regenerated. - -2005-10-06 Richard Earnshaw - - PR target/23783 - * arm.md (call): If the address isn't a SYMBOL_REF or a register, - then force it into a register. - (call_value): Likewise. - -2005-10-06 Richard Henderson - - PR 24049 - * passes.c (init_optimization_passes): Move pass_lower_vector_ssa - under pass_vectorize. Clear TODO_ggc_collect from the dce pass - under pass_vectorize. - -2005-10-05 Devang Patel - - PR Debug/23205 - * dbxout.c (dbxout_symbol): Check DECL_RTL_SET_P, after - handling constants. Check NAMESPACE_DECL context for constants. - -2005-10-05 Eric Christopher - - * doc/md.texi (Standard Names): Fix name of pushm1 pattern. - -2005-10-05 Richard Henderson - - PR 23714 - * tree-cfg.c (mark_array_ref_addressable_1): New. - (mark_array_ref_addressable): New. - * tree-flow.h (mark_array_ref_addressable): Declare. - * tree-optimize.c (execute_cleanup_cfg_post_optimizing): Use it. - -2005-10-05 Andrew Pinski - - PR middle-end/20606 - PR middle-end/24069 - * reload.c (subst_reloads): When adding a REG_LABEL to a - jump instruction, also update JUMP_LABEL. - -2005-10-05 David Edelsohn - - * params.def (PARAM_MAX_GROW_COPY_BB_INSNS): New. - * bb-reorder.c (copy_bb_p): Use it. - * doc/invoke.texi (param table): Add max-grow-copy-bb-insn. - -2005-10-05 Richard Henderson - - PR target/23602 - * toplev.c (process_options): Warn about unsupported combinations - of unwind tables and omit-frame-pointer. - * config/i386/i386.c (override_options): Similarly. Enable - accumulate-outgoing-args if not explicitly disabled. - -2005-10-05 Steve Ellcey - - * vect.md (vec_initv2si): Fix typo of V2SF to V2SI. - Handle big endian vs. small endian. - (vec_initv2sf): Handle big endian vs. small endian. - (*vec_extractv2sf_1): Ditto. - -2005-10-05 Dale Johannesen - - * convert.c (convert_to_real): Don't convert - (float)floor(double d) to floorf((float)d). - -2005-10-05 Daniel Jacobowitz - - * config/arm/arm.md (insv): Use gen_int_mode in more places. - -2005-10-05 Andrew MacLeod - - PR tree-optimization/18587 - * tree-ssa-operands.c (struct opbuild_list_d, OPBUILD_LAST): Delete. - (build_defs, build_uses, build_v_may_defs, build_v_must_defs, - build_vuses): Change to VEC type. - (opbuild_initialize_virtual, opbuild_initialize_real, opbuild_free, - opbuild_num_elems, opbuild_append_real, opbuild_append_virtual, - opbuild_first, opbuild_next, opbuild_elem_real, opbuild_elem_virtual, - opbuild_elem_uid, opbuild_clear, opbuild_remove_elem): Delete. - (get_name_decl): New. Return DECL_UID of base variable. - (operand_build_cmp): New. qsort comparison routine. - (operand_build_sort_virtual): New. Sort virtual build vector. - (init_ssa_operands, fini_ssa_operands): Use VEC routines. - (FINALIZE_OPBUILD_BASE, FINALIZE_OPBUILD_ELEM): Use VEC_Index. - (FINALIZE_BASE): Use get_name_decl. - (finalize_ssa_defs, finalize_ssa_uses, cleanup_v_may_defs, - finalize_ssa_v_may_defs, finalize_ssa_vuses, finalize_ssa_v_must_defs, - (start_ssa_stmt_operands, append_def, append_use, append_vuse, - append_v_may_def, append_v_must_def): Replace opbuild_* routines with - direct VEC_* manipulations. - (build_ssa_operands): Call operand_build_sort_virtual. - (copy_virtual_operand, create_ssa_artficial_load_stmt, - add_call_clobber_ops, add_call_read_ops): Replace opbuild_* routines - with direct VEC_* manipulations. - * tree-ssa-opfinalize.h (FINALIZE_FUNC): Replace opbuild_* routines - with direct VEC manipulations. - -2005-10-05 Paolo Bonzini - - PR tree-optimization/21419 - PR tree-optimization/24146 - PR tree-optimization/24151 - - * c-typeck.c (readonly_error): Handle USE being lv_asm. - (build_asm_expr): Call it if outputs are read-only. - * gimplify.c (gimplify_asm_expr): Remove former fix to PR 21419. - -2005-10-05 Billy Biggs - Paolo Bonzini - - PR target/23809 - - * doc/extend.texi (x86 Built-ins): Document that -msse and friends - enable the instructions and not just the built-ins. - * doc/invoke.texi (x86 Options): Likewise. - -2005-10-04 Geoffrey Keating - - * config/i386/t-darwin (SHLIB_VERPFX): Fix typo. - - * doc/invoke.texi (Option Summary): Correct spelling - of -mmacosx-version-min. - -2005-10-04 Devang Patel - - * c-common.c (vector_types_convertible_p): Check TYPE_PRECISION for - real types. - -2005-10-04 Steve Ellcey - - * tree-vect-transform.c (vect_create_epilog_for_reduction): - Use BYTES_BIG_ENDIAN instead of BITS_BIG_ENDIAN. - -2005-10-04 Adrian Straetling - - * config/s390/s390.md ("TDSI","DP"): New mode macros. - ("TE","tg"): New mode attributes. - ("sync_compare_and_swap"): Replace with a define_expand. - ("sync_compare_and_swap_cc"): Replace GPR with TDSI. - ("*sync_compare_and_swap_cc"): Replace with one pattern for - dword_mode and one for GPRmode. - -2005-10-04 Ian Lance Taylor - - PR preprocessor/13726 - * c-ppoutput.c (cb_include): Add comments parameter, and print out - any comments passed in. - -2005-10-04 Andrew Pinski - - * tree.c (annotate_with_file_line): Fix typo. - -2005-10-04 Ulrich Weigand - - PR ada/19382 - * builtins.c (fold_builtin_memcmp): When constructing the pointer - type used to access data in the inlined length == 1 case, use - build_pointer_type_for_mode with CAN_ALIAS_ALL set to true. - (fold_builtin_strcmp, fold_builtin_strncmp): Likewise. - -2005-10-04 Uros Bizjak - - * config/i386/i386.h (TARGET_FISTTP): Enable also for - TARGET_SSE3 and only for TARGET_80387. - * config/i386/i386.md (fix_trunc_fisttp_i387_1, - (fix_trunc_i387_fisttp, fix_trunc_i387_fisttp_with_temp): - Do not depend on TARGET_80387. - -2005-10-04 Andrew Pinski - - * tree.c (last_annotated_node): Change type to location_t*. - (annotate_with_file_line): Reflect the change of - last_annotated_node type. - -2005-10-04 Richard Guenther - - PR c/23576 - * c-decl.c (grokdeclarator): Don't write to fields - of error_mark_node. - -2005-10-04 Andrew Pinski - - PR middle-end/23125 - * c-decl.c (finish_decl): Use set_user_assembler_name even for - register variables. - * varasm.c (make_decl_rtl): If a register variable does not - have a set user assmbler name, error out. - Decode the asmspec is now name+1 bypassing '*'. - -2005-10-04 Steven Bosscher - - PR tree-optimization/23049 - * tree-ssa-dom.c (thread_across_edge): Make sure that the condition - of a COND_EXPR is folded before calling fold on the whole rhs of a - conditional assignment. - * doc/tree-ssa.texi: Update the GIMPLE grammar for a valid rhs to - document that a COND_EXPR may appear there. - -2005-10-03 Diego Novillo - - PR 23445 - * tree-vrp.c (extract_range_from_assert): If the new numeric - range created out of the assertion contradicts the existing - numeric range of the ASSERT_EXPR variable, make the new range - varying. - -2005-10-03 Kaz Kojima - - * config/sh/sh.c (sh_register_move_cost): Add case for moving - from T_REGS to FP register class. - -2005-10-03 Richard Henderson - - PR 24135 - * tree-nested.c (convert_nl_goto_reference): Lookup a translation - before creating a new one. - -2005-10-03 David Edelsohn - - * config/rs6000/t-aix43 (LDFLAGS): New. - * config/rs6000/t-aix52 (LDFLAGS): New. - -2005-10-03 Ian Lance Taylor - - * gimplify.c (find_single_pointer_decl_1): New static function. - (find_single_pointer_decl): New static function. - (internal_get_tmp_var): For a formal variable, set restrict base - information if appropriate. - * alias.c (find_base_decl): If a VAR_DECL has a restrict base, - return it. - * tree.h (DECL_BASED_ON_RESTRICT_P): Define. - (DECL_GET_RESTRICT_BASE): Define. - (SET_DECL_RESTRICT_BASE): Define. - (decl_restrict_base_lookup): Declare. - (decl_restrict_base_insert): Declare. - (struct tree_decl_with_vis): Add based_on_restrict_p field. - * tree.c (restrict_base_for_decl): New static variable. - (init_ttree): Initialize restrict_base_for_decl. - (copy_node_stat): Copy restrict base information. - (decl_restrict_base_lookup): New function. - (decl_restrict_base_insert): New function. - (print_restrict_base_statistics): New static function. - (dump_tree_statistics): Call print_restrict_base_statistics. - -2005-10-02 Diego Novillo - - PR 24142 - * tree-vrp.c (vrp_meet): Fix call to range_includes_zero_p in - case of anti-ranges. - -2005-10-02 Andrew Pinski - - PR c/18851 - * c-typeck.c (tagged_tu_seen): Rename to ... - (tagged_tu_seen_cache): this and add val field. - (comptypes): Move functional to comptypes_internal - and free tagged_tu_seen. - (comptypes_internal): New function and call comptypes_internal - instead of comptypes. Speed up by sibcalling - tagged_types_tu_compatible_p. - (alloc_tagged_tu_seen): New function - (free_all_tagged_tu_seen_up_to): New function. - (tagged_types_tu_compatible_p): Return the val of the seen two - types. - Add that the two types are the same to tagged_tu_seen_base - if they are and call comptypes_internal instead of comptypes. - : Speed up common type where the fields are - in the same order. - (function_types_compatible_p): Call comptypes_internal instead of - comptypes. - (type_lists_compatible_p): Likewise. - (all functions): s/tagged_tu_seen/tagged_tu_seen_cache/. - -2005-10-02 Matthias Klose - - * doc/invoke.texi: Fix typo and speling error. - -2005-10-01 Richard Henderson - - * tree-stdarg.c (execute_optimize_stdarg): Process PHI nodes too. - -2005-10-01 Mark Mitchell - - * config/arm/unknown-elf.h (LINK_GCC_C_SEQUENCE_SPEC): Define - using --start-group and --end-group. - -2005-10-01 Diego Novillo - - * tree-vrp.c (value_inside_range, range_includes_zero_p): Add - FIXME note regarding quirky semantics. - -2005-10-01 Diego Novillo - - PR 24141 - * tree-vrp.c (vrp_meet): Clear VR0->EQUIV when building a - non-null range as a last resort. - -2005-10-01 James A. Morrison - Diego Novillo - - PR 23604 - * tree-vrp.c (extract_range_from_assert): For != - assertions, only build an anti-range if LIMIT is a - single-valued range. - -2005-09-30 Richard Earnshaw - - * arm.md (movqi): On thumb when optimizing, handle loading from - memory by describing this as taking a subreg of a zero-extended load - into an SImode register. - (movhi): Likewise. - -2005-09-30 Daniel Jacobowitz - - * reload1.c (merge_assigned_reloads): Do not change any - RELOAD_FOR_OUTPUT_ADDRESS reloads. - -2005-09-30 Geoffrey Keating - - * Makefile.in (LIPO_FOR_TARGET): Define. - (STRIP_FOR_TARGET): Define. - - * config/t-slibgcc-darwin (libgcc_s_%.dylib): Remove old symlinks - before creating new ones. Do symlinks before creating the actual - targets. - - * config/t-slibgcc-darwin (libgcc_s_%.dylib): Use --print-multi-lib - to work out which multilibs are actually being built. - -2005-09-30 Kazu Hirata - - * tree-vect-transform.c, config/ms1/ms1.md, - config/s390/s390.c, config/v850/v850.md: Fix comment typos. - Follow spelling conventions. - * doc/invoke.texi, doc/md.texi: Fix typos. - -2005-09-30 Andrew Macleod - - PR tree-optimization/21430 - * tree-ssa-operands.c (set_virtual_use_link): New. Link new virtual - use operands, and set stmt pointer if need be. - (FINALIZE_CORRECT_USE: New. Macro to call appropriate use fixup routine. - tree-ssa-opfinalize.h (FINALIZE_FUNC): Call FINALIZE_CORRECT_USE if - present. - -2005-09-29 Richard Kenner - - PR middle-end/24053 - * stor-layout.c (set_sizetype): Set TYPE_MAIN_VARIANT of bitsizetype. - -2005-09-29 Mark Mitchell - - * optabs.c (expand_binop): Initialize first_pass_p. - -2005-09-29 Jakub Jelinek - - PR middle-end/24109 - * c-decl.c (c_write_global_declarations_1): If any - wrapup_global_declaration_2 call returned true, restart the loop. - -2005-09-29 Daniel Berlin - - Fix PR tree-optimization/24117 - * tree-ssa-structalias.c (find_func_aliases): Strip nops - before considering whether to use anyoffset. - -2005-09-29 Paolo Bonzini - - Revert this patch: - - 2005-09-15 Paolo Bonzini - - * optabs.c (expand_binop): Use swap_commutative_operands_with_target - to order operands. - (swap_commutative_operands_with_target): New. - -2005-09-29 Paolo Bonzini - - PR c/21419 - * gimplify.c (gimplify_asm_expr): Raise an error if an output is - read-only. - -2005-09-29 Steven Bosscher - - PR tree-optimization/23911 - * tree-ssa-ccp.c (fold_const_aggregate_ref): Handle REALPART_EXPR - and IMAGPART_EXPR too. - -2005-09-28 Mark Mitchell - - PR 17886 - * expmed.c (expand_shift): Move logic to reverse rotation - direction when rotating by constants ... - * optabs.c (expand_binop): ... here. - * config/i386/i386.md (rotrdi3): Handle 32-bit mode. - (ix86_rotrdi3): New pattern. - (rotldi3): Handle 32-bit mode. - (ix86_rotldi3): New pattern. - -2005-09-29 Alan Modra - - PR target/24102 - * config/rs6000/rs6000.md (floatdisf2_internal2): Correct range - check for numbers that need no bit twiddle. - -2005-09-28 Geoffrey Keating - - * config/rs6000/t-darwin8: Uncomment contents, allow -m64 - multilib to be built. - - * Makefile.in: Export LIPO_FOR_TARGET, STRIP_FOR_TARGET. - (stage1-start): Delete old libgcc and libunwind before moving - anything into the stage directory. - (stage2-start): Likewise. - (stage3-start): Likewise. - (stage4-start): Likewise. - (stageprofile-start): Likewise. - (stagefeedback-start): Likewise. - * config.gcc (*-*-darwin*): Automatically use CPU-specific darwin.h - header in tm_file and CPU-specific t-darwin in tmake_file. - (i[34567]86-*-darwin*): Don't change tm_file. - (powerpc-*-darwin*): Don't change tm_file or tmake_file. - * config/darwin.h (REAL_LIBGCC_SPEC): Rewrite to use proper libgcc - shared library stub for target OS version. - * config/t-slibgcc-darwin (SHLIB_SOLINK): Delete. - (SHLIB_LINK): Don't make SHLIB_SOLINK. - (SHLIB_INSTALL): Don't install SHLIB_SOLINK. - (libgcc_s.%.dylib): New. - (LIBGCC): Define. - (install-darwin-libgcc-stubs): New. - (INSTALL_LIBGCC): New append. - * config/i386/darwin-libgcc.10.4.ver: New. - * config/i386/darwin-libgcc.10.5.ver: New. - * config/i386/t-darwin: New. - * config/rs6000/darwin-libgcc.10.4.ver: New. - * config/rs6000/darwin-libgcc.10.5.ver: New. - * config/rs6000/darwin.h (REAL_LIBGCC_SPEC): Delete. - * config/rs6000/t-darwin (SHLIB_VERPFX): Define. - -2005-09-28 Paul Brook - - * config/m68k/fpgnulib.c (__extendsfdf2, __truncdfsf2): Handle - denormals. - -2005-09-28 Richard Guenther - - PR tree-optimization/23853 - * tree-vect-analyze.c (vect_compute_data_ref_alignment): Use - host_integerp to verify misalignment value. - -2005-09-28 Richard Henderson - - * builtins.c (get_builtin_sync_mode): New. - (expand_builtin_sync_operation): Pass in mode argument. - (expand_builtin_compare_and_swap): Likewise. - (expand_builtin_lock_test_and_set): Likewise. - (expand_builtin_lock_release): Likewise. - (expand_builtin): Update to match. - -2005-09-28 Nick Clifton - - * config/v850/v850.h (GO_IF_LEGITIMATE_ADDRESS): Tidy up - formatting. Add check to PLUS case to ensure that the offset is - within an acceptable range. - - * config/v850/v850.md (casesi): Disable the generation of the - switch pattern as it is not being handled properly at the moment. - - * config/v850/lib1funcs.asm (___ucmpdi2): Correct jump instruction - for when the high words are identical. - -2005-09-27 Richard Henderson - - * pretty-print.c (pp_base_format): Fix typo for %>. - -2005-09-27 Daniel Berlin - Devang Patel - - PR tree-optimization/23625 - * tree-flow-inline.h (bsi_after_labels): Remove, first statement is - LABEL_EXPR, assertion check. - -2005-09-27 J"orn Rennecke - - * optabs.c (no_conflict_move_test): Check if a result of a - to-be-moved insn would be clobbered by an originally - preceding insn. - -2005-09-27 Jeff Law - - * passes.c (init_optimization_passes): Replace copy propagation - passes immediately after DOM with phi-only copy propagation - pases. Add phi-only copy propagation pass after first DOM pass. - * tree-pass.h (pass_phi_only_copy_prop): Declare. - * tree-ssa-copy.c (init_copy_prop): Accept new PHI_ONLY argument. - If true, then mark all non-control statements with DONT_SIMULATE_AGAIN. - (execute_copy_prop): Accept new PHI_ONLY argument. Pass it along - to init_copy_prop. Callers updated. - (do_phi_only_copy_prop): New function. - (pass_phi_only_copy_prop): New pass descriptor. - -2005-09-27 Nick Clifton - - * libgcc2.c (__popcount_tab): Remove redundant prototype. - -2005-09-26 Jason Merrill - - PR c++/13764 - * c-common.c (finish_fname_decls): Use append_to_statement_list_force. - - * doc/invoke.texi: Clarify documentation of -fno-enforce-eh-specs. - -2005-09-26 James E Wilson - - * config/ia64/crtbegin.asm, config/ia64/crtend.asm: Remove glibc - copyright. Add gcc copyright plus libgcc exception. - * config/ia64/crtfastmath.asm: Remove glibc copyright. Add gcc - copyright. - * config/ia64/lib1funcs.asm: Add gcc copyright plus libgcc exception. - -2005-09-26 Jeff Law - - * tree-ssa-dom.c (tree_ssa_dominator_optimize): Be more selective - about when to iterate. - -2005-09-23 Fariborz Jahanian - - PR target/23847 - * config/rs6000/rs6000.c (rs6000_function_value): Parallel pattern - for __complex__ double in -mcpu=G5 mode. - -2005-09-26 Sebastian Pop - - PR tree-optimization/23942 - * Makefile.in (SCEV_H): Depends on PARAMS_H. - * tree-scalar-evolution.c: Include params.h. - (t_bool): New enum. - (follow_ssa_edge, follow_ssa_edge_in_rhs, - follow_ssa_edge_in_condition_phi_branch, - follow_ssa_edge_in_condition_phi, follow_ssa_edge_inner_loop_phi): - Change return type to t_bool. Use a parameter to limit the size of - trees that are walked before stopping - (analyze_evolution_in_loop): Initialize the limit to 0. - (follow_ssa_edge): Give up by returning t_dont_know if the limit - exceeds PARAM_SCEV_MAX_EXPR_SIZE. - -2005-09-26 Uros Bizjak - - PR middle-end/23831 - * simplify-rtx.c (simplify_immed_subreg) [MODE_INT]: Skip - simplification if elem_bitsize > 2 * HOST_BITS_PER_WIDE_INT. - -2005-09-26 Fariborz Jahanian - - * combine.c (make_extraction): Check for valid use of subreg. - -2005-09-26 Uros Bizjak - - PR target/24055 - * config/i386/i386.md ("*fistdi2_1"): New pattern. - ("*fist2_1"): Use only HImode and SImode register operands. - ("fist2_with_temp"): Use only register operands. - -2005-09-26 J"orn Rennecke - - * rtlanal.c (reg_used_between_p): Don't check for CLOBBERs in - CALL_INSN_FUNCTION_USAGE. - -2005-09-26 Richard Guenther - - PR middle-end/15855 - * gcse.c: Include hashtab.h, define ldst entry hashtable. - (pre_ldst_expr_hash, pre_ldst_expr_eq): New functions. - (ldst_entry): Use the hashtable instead of list-walking. - (find_rtx_in_ldst): Likewise. - (free_ldst_entry): Free the hashtable. - (compute_ld_motion_mems): Create the hashtable. - (trim_ld_motion_mems): Remove entry from hashtable if - removing it from list. - (compute_store_table): Likewise^2. - (store_motion): Free hashtable in case we did not see - any stores. - -2005-09-25 Kazu Hirata - - * fold-const.c (fold_binary): Use op0 and op1 instead of arg0 - and arg1 if we are passing them to fold_build2. - -2005-09-25 Dan Nicolaescu - - PR 23828 - * config/i386/i386.c (ix86_function_regparm): Fix the test for - a nested function. - -2005-09-25 Richard Henderson - - * config/alpha/alpha.c (tls_symbolic_operand_1): Trust - SYMBOL_REF_TLS_MODEL to be correct. - -2005-09-24 Richard Henderson - - * ipa-type-escape.c (discover_unique_type): Remove dead code at - end of function. Reindent. - -2005-09-24 Ian Lance Taylor - - * convert.c (convert_to_integer): Don't test for ENUMERAL_TYPE in - NEGATE_EXPR/BIT_NOT_EXPR case. - -2005-09-24 Richard Henderson - - * c-common.c (handle_mode_attribute): When not modifying in place, - create subtypes for enumerations. - (sync_resolve_return): Use TYPE_MAIN_VARIANT. - * gimplify.c (create_tmp_from_val): Likewise. - -2005-09-24 Alexandre Oliva - - * config/i386/i386.md (*tls_global_dynamic_64, - *tls_local_dynamic_base_64): Add missing mode to call. - (tls_global_dynamic_64, tls_local_dynamic_base_64): Likewise. - -2005-09-24 Jan Hubicka - - * cgraph.c (cgraph_clone_edge): Make the scale gcov_type. - (cgraph_clone_node): Likewise. - * cgraph.h (cgraph_clone_edge): Update prototype. - (cgraph_mark_inline_edge, cgraph_clone_inlined_nodes): Remove - duplicated prototypes; add updating argument. - * cgraphunit.c (verify_cgraph_node): Verify that counts are non-negative. - * ipa-inline.c (cgraph_clone_inlined_nodes): Allow clonning without - updating profile. - (cgraph_mark_inline_edge): Likewise. - (cgraph_mark_inline): Update use of cgraph_mark_inline_edge. - (cgraph_flatten_node): Likewise. - (cgraph_decide_recursive_inlining): Likewise. - (cgraph_decide_inlining_of_small_function): Likewise. - * tree-optimize.c (tree_rest_of_compilation): Likewise. - -2005-09-23 David Edelsohn - Pete Steinmetz - - * config/rs6000/rs6000.md (neg-minus-mult): Set type to dmul. - (rldic.): Set type to "compare". - (rldicr.): Same. - (movsf_hardfloat): Set type to mtjmpr for MTCTR/MTLR. Set type to - mfjmpr for MFCTR/MFLR. - (movdf_hardfloat64): Same. - (movdf_softfloat64): Same. Correct order of store and move types. - (movti_string): Set type to store_ux/load_ux. - (load_multiple): Set type to load_ux. - (store_multiple): Set type to store_ux. - (movmemsi): Set type to store_ux. - (output_cbranch direct_return): Set type to jmpreg. - (stmw): Set type to store_ux. - (lmw): Set type to load_ux. - * config/rs6000/40x.md (ppc403-store): Increase latency to 2. - * config/rs6000/440.md (ppc440-store): Increase latency to 6. - * config/rs6000/603.md (ppc603-store): Occupy LSU for 2 cycles. - * config/rs6000/6xx.md (ppc604-store): Increase latency to 3. - * config/rs6000/mpc.md (mpccore-store): Increase latency to 2. - * config/rs6000/rios1.md (rios1-store): Increase latency to 2. - (rios1-fpstore): Increase latency to 3. - * config/rs6000/rios2.md (rios2-store): Increase latency to 2. - * config/rs6000/rs64.md (rs64a-store): Increase latency to 2. - -2005-09-23 David Edelsohn - Andrew Pinski - - * config/rs6000/sync.md (sync_si_internal): Change - operand2 constraint to "b". - (sync_di_internal): Same. - (sync_old_si_internal): Change operand3 constraint - to "b". - (sync_old_di_internal): Same. - (sync_new_si_internal): Same. - (sync_new_di_internal): Same. - -2005-09-23 J"orn Rennecke - - PR middle-end/23991 - * final.c (insn_default_length, insn_min_length): In !HAVE_ATTR_length - case, define as macros. - - PR rtl-optimization/23837 - * optabs.c (no_conflict_move_test): Don't set must_stay for a - clobber / clobber match between dest and p->first. - - * optabs.c (emit_libcall_block): Use no_conflict_move_test. - (no_conflict_move_test): Update comments. - -2005-09-22 Ranjit Mathew - - * doc/install.texi: Update URL for Jacks. - * doc/sourcebuild.texi: Likewise. - -2005-09-22 David Edelsohn - - PR target/24007 - * config/rs6000/rs6000.md (movsf_hardfloat): Ignore special - registers when choosing register preferences. - (movdf_hardfloat64): Same. - -2005-09-22 Andreas Krebbel - - * expmed.c (expand_shift): Don't use the target of the rotate as - target for the first expanded shift insn. - * testsuite/gcc.dg/20050922-1.c: Testcase added. - -2005-09-21 Zdenek Dvorak - - PR tree-optimization/22438 - * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Handle all - preserved iv rhs rewriting specially. - -2005-09-21 Daniel Berlin - - * tree-data-ref.c (analyze_array_indexes): Only estimate when - estimate_only is true. - * tree-flow.h (ref_contains_indirect_ref): New prototype. - * tree-flow-inline.h (ref_contains_indirect_ref): Moved from - tree-ssa-structalias.c - * tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined): Use - ref_contains_indirect_ref. - * tree-ssa-structalias.c (ref_contains_indirect_ref): Moved. - -2005-09-21 DJ Delorie - - * config/mn10300/mn10300.c (TARGET_DEFAULT_TARGET_FLAGS): Add - MASK_PTR_A0D0. - (mn10300_return_in_memory): Support variable size types also. - (mn10300_pass_by_reference): Likewise. - (mn10300_function_value): New. - * config/mn10300/mn10300.h (FUNCTION_VALUE): Call the above. - (FUNCTION_OUTGOING_VALUE): Likewise. - * config/mn10300/mn10300.opt: Add -mreturn-pointer-on-d0. - * doc/invoke.texi: Document it. - -2005-09-21 Uros Bizjak - - PR target/22585 - * config/i386/i386.c (ix86_prepare_fp_compare_args): Do not - force integer op1 into register for XFmode compares. - -2005-09-21 Kazu Hirata - - PR middle-end/23971 - * expmed.c (alg_code): Add alg_impossible. - (alg_hash_entry): Add cost. - (synth_mult): Record alg_impossible in the hash table if - multiplication by a given integer is impossble within the - limit. Speed up using alg_impossible. - -2005-09-20 Daniel Berlin - - * tree-ssa-structalias.c (get_constraint_for_component_ref): Add - argument. Allow and set any offset if needs_anyoffset is passed - in. - (get_constraint_for): Add argument here too. - Pass it down. - (do_structure_copy): Pass NULL to get_constraint_for. - (handle_ptr_arith): Ditto. - (find_func_aliases): Ditto. - -2005-09-20 J"orn Rennecke - - PR rtl-optimization/23898 - * output.h (get_attr_min_length): Declare. - * final.c (get_attr_length_1): New function, broken out of: - (get_attr_length). - (get_attr_min_length): New function. - * bb-reorder.c (copy_bb_p, get_uncond_jump_length): Use it. - (duplicate_computed_gotos): Likewise. - * genattr.c (insn_min_length): Generate declaration. - * genattrtab.c (min_fn, min_attr_value): New functions. - (make_length_attrs): Generate insn_min_length. - -2005-09-20 Steve Ellcey - - * config/pa/pa.c (output_cbranch): Check for zero in operands[2]. - -2005-09-20 Richard Henderson - - PR tree-optimization/24059 - * expr.c (expand_expr_real_1) : Allow modifier - EXPAND_STACK_PARM. - -2005-09-20 Joseph S. Myers - - * c.opt (fextended-identifiers): New. - * c-opts.c (c_common_handle_option): Handle - -fextended-identifiers. - * doc/cpp.texi: Update documentation of extended identifiers. - * doc/cppopts.texi (-fextended-identifiers): Document. - -2005-09-20 Jakub Jelinek - - PR tree-optimization/23929 - * tree-ssa-loop-niter.c (expand_simple_operations): Return immediately - if expr is NULL. - - PR tree-optimization/23818 - * tree-stdarg.c (execute_optimize_stdarg): Call - calculate_dominance_info. - -2005-09-20 Daniel Berlin - - * tree-data-ref.c (get_number_of_iters_for_loop): New function. - (analyze_siv_subscript_cst_affine): Add weak SIV test. - (compute_overlap_steps_for_affine_1_2): Use - get_number_of_iters_for_loop. - (analyze_subscript_affine_affine): Check whether difference is - zero first. - Use get_number_of_iters_for_loop. - Check whether overlap occurs outside of bounds. - (analyze_miv_subscript): Use get_number_of_iters_for_loop. - -2005-09-20 Andreas Krebbel - - * tree-ssa-address.c (create_mem_ref): Put the symbol reference into the - base register if possible. - -2005-09-20 Zdenek Dvorak - - PR tree-optimization/18463 - * tree-chrec.c (chrec_convert): Return fold_converted chrec if - converting it directly is not possible. - (chrec_convert_aggressive): New function. - * tree-chrec.h (chrec_convert_aggressive): Declare. - * tree-scalar-evolution.c (instantiate_parameters_1, resolve_mixers): - Fold chrec conversions aggressively if asked to. - (instantiate_parameters): Modified because of changes in - instantiate_parameters_1. - -2005-09-19 Richard Henderson - - * config/i386/sse.md (reduc_splus_v4sf): Rename from reduc_plus_v4sf. - (reduc_splus_v2df): New. - -2005-09-19 Richard Sandiford - - * config/arm/aof.h (REGISTER_NAMES): Add missing backslash. - (ADDITIONAL_REGISTER_NAMES): Add missing comma. Remove final comma. - -2005-09-19 Richard Henderson - - * config/i386/sse.md (vcondu): Rename from - vcondu. - -2005-09-19 Richard Henderson - - * config/ia64/ia64.c (ia64_expand_widen_sum): New. - (ia64_expand_dot_prod_v8qi): New. - * config/ia64/ia64-protos.h: Update. - * config/ia64/vect.md (pmpy2_r, pmpy2_l, widen_usumv8qi3, - widen_usumv4hi3, widen_ssumv8qi3, widen_ssumv4hi3, udot_prodv8qi, - sdot_prodv8qi, sdot_prodv4hi): New. - (reduc_splus_v2sf): Rename from reduc_plus_v2sf. - -2005-09-19 Richard Henderson - - PR 23941 - * real.c (exact_real_truncate): Return false if the format cannot - represent the number as a normal. - - * config/alpha/alpha.c (alpha_rtx_costs) : Cost 0 - for a memory source. - -2005-09-19 Dorit Nuzman - - * tree-ssa-operands.c (swap_tree_operands): Export. - * tree.h (swap_tree_operands): Declare. - * tree-vectorizer.c (vect_is_simple_reduction): Remove ATTRIBUTE_UNUSED. - Call swap_tree_operands. - -2005-09-19 Richard Henderson - - * tree-flow.h (merge_alias_info): Declare. - * tree-ssa-copy.c (merge_alias_info): Export. - * tree-vect-transform.c (vect_create_index_for_vector_ref): Remove. - (vect_create_data_ref_ptr): Use create_iv directly. - (vectorizable_load): Use correct types for integer constants. - (vect_generate_tmps_on_preheader): Likewise. - (vect_gen_niters_for_prolog_loop): Likewise. - -2005-09-19 Steven Bosscher - - PR rtl-optimization/23943 - * cse.c (find_best_addr): Never propagate an EXPR_LIST rtx. - -2005-09-18 Jan Hubicka - - * calls.c (flags_from_decl_or_type): Do not set ECF_LIBCALL_BLOCK. - -2005-09-18 Eric Botcazou - - * varasm.c (output_constant): Do not abort on conversions to union - types between different sizes. - -2005-09-18 Richard Guenther - - PR middle-end/23944 - * gimplify.c (fold_indirect_ref_rhs): Fix thinko in - fallback. - -2005-09-18 Paul Brook - - * config/m68k/fpgnuib.c (__floatsidf): Don't rely on signed overflow. - -2005-09-17 Richard Henderson - - * tree-pass.h, tree-flow.h, tree-ssa-dce.c: Revert last change. - * tree-ssa-loop.c (pass_vect_dce): Remove. - * passes.c (init_optimization_passes): Add pass_dce as a sub-pass - of pass_vectorize. - -2005-09-17 Richard Henderson - - * tree-pass.h (pass_vect_dce): Declare. - * passes.c (init_optimization_passes): Add it. - * tree-flow.h (tree_ssa_dce): Declare. - * tree-ssa-dce.c (tree_ssa_dce): Export. - * tree-ssa-loop.c (tree_vectorize): Move current_loops check ... - (gate_tree_vectorize): ... here. - (pass_vect_dce): New. - -2005-09-17 Jan Hubicka - - * except.c (struct eh_status): Turn region_array into vec. - (expand_resx_expr, collect_eh_region_array, remove_unreachable_regions, - convert_from_eh_region_ranges, find_exception_handler_labels, - current_function_has_exception_handlers, assign_filter_values, - build_post_landing_pads, dw2_build_landing_pads, - sjlj_find_directly_reachable_regions, sjlj_mark_call_sites, - sjlj_emit_dispatch_table, remove_eh_handler, for_each_eh_region, - foreach_reachable_handler, can_throw_internal_1, - convert_to_eh_region_ranges, verify_eh_tree): Update uses of - region_array. - (duplicate_eh_region_1): Update region_array. - (duplicate_eh_regions): Resize region_array and avoid recomputing. - -2005-09-17 David Edelsohn - - PR middle-end/22067 - * expmed.c (expand_mult): Substitute simple register for op0 when - computing max_cost. - -2005-09-17 Richard Henderson - - * expr.c (emit_move_via_integer): Add force argument, pass it on - to emit_move_change_mode. Update callers. - (emit_move_complex): Pass true to new force argument. - * function.c (expand_function_end): Move expand_eh_return call - earlier. Merge sub-word complex values into a pseudo before - copying to the return hard register. - -2005-09-17 Eric Botcazou - - * varasm.c (output_constant): Do not abort on VIEW_CONVERT_EXPRs - between different sizes. - -2005-09-16 Paolo Bonzini - - PR 23903 - - * passes.c (init_optimization_passes): Register dump files for - IPA passes first. - -2005-09-16 Andreas Krebbel - - * config/s390/s390-protos.h (s390_overlap_p): Prototype added. - * config/s390/s390.c (s390_overlap_p): New function. - * config/s390/s390.md ("*mvc" peephole2, "*nc" peephole2, "*oc" - peephole2, "*xc" peephole2): Added overlap check to the peephole2 - condition. - -2005-09-16 Richard Guenther - - * ipa-pure-const.c (static_execute): Free auxiliar information. - * ipa-type-escape.c (discover_unique_type): Free temporary key. - * tree-vrp.c (remove_range_assertions): Free blocks_visited sbitmap. - -2005-09-15 DJ Delorie - - * config/m32c/m32c-lib1.S (__m32c_eh_return): Fix typo. - -2005-09-15 Paolo Bonzini - - * optabs.c (expand_binop): Use swap_commutative_operands_with_target - to order operands. - (swap_commutative_operands_with_target): New. - -2005-09-15 Daniel Berlin - - * tree-data-ref.c (analyze_array_indexes): Add estimate_only - parameter. - Update callers. - (estimate_iters_using_array): New function. - * tree-data-ref.h (estimate_iters_using_array): Prototype - * tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined): - Use estimate_iters_using_array instead of analyze_array. - -2005-09-15 Eric Botcazou - - * tree-nested.c (get_frame_type): Mark the "non-local frame structure" - as addressable. - -2005-09-15 Michael Matz - - * tree-vrp.c (vrp_int_const_binop ): Handle 0 - -INF. - -2005-09-14 Daniel Berlin - - PR tree-optimization/23835 - * tree-ssa-alias.c (sort_pointers_by_pt_vars): New function. - (create_name_tags): Rewrite to be not O(num_ssa_names^2). - -2005-09-14 Richard Henderson - - * config/ia64/vect.md (addv2sf3, subv2sf3): Rewrite as expand. - (addv2sf3_1, addv2sf3_2, subv2sf3_1, subv2sf3_2): New. - -2005-09-14 Andrew Pinski - - * config/i386/i386.c (contains_128bit_aligned_vector_p): Add break - in the ARRAY_TYPE case. - -2005-09-14 Eric Botcazou - - * tree.c (substitute_in_expr, case 4): New case, for ARRAY_REF. - -2005-09-14 Uros Bizjak - - PR middle-end/22480 - * tree-vect-transform.c (vectorizable_operation): Return false for - scalar shift operations and for vector shift operations with - non-invariant shift arguments. Use scalar tree operand op1 as - a shift operand when vector shift insn pattern uses scalar shift - operand. - * Makefile.in (tree-vect-transform.o): Depend on recog.h. - -2005-09-14 Olivier Hainque - - * gimplify.c (gimplify_init_ctor_eval): Don't discard a zero-sized - value if it has side-effects. - -2005-09-14 David Edelsohn - - PR target/22068 - * config/rs6000/rs6000.md (muldi3): Add mulli alternative. - -2005-09-14 Alan Modra - - * config/rs6000/linux64.h (DBX_OUTPUT_BRAC): Treat function name - passed as NAME as if it were label at start of function code. - -2005-09-13 Kaz Kojima - - * config/sh/sh.md (*movv4sf_i): Add general register cases to - the constraints. - -2005-09-13 Andrew Pinski - - * config/rs6000/darwin.md (movdf_low_si): Mark the outgoing r constraint - as early clobber. Rewrite so the PIC register is not implicitly used. - -2005-09-13 Volker Reichelt - - * tree.c (annotate_with_file_line): Compare line numbers before - file names. - -2005-09-13 Uros Bizjak - - PR target/23816 - * config/i386/sse.md (*ieee_sminv4sf3, *ieee_smaxv4sf3) - (*ieee_sminv2df3, *ieee_smaxv2df3): New insn patterns. - -2005-09-13 Ian Lance Taylor - - * loop-doloop.c (doloop_modify): Use GEN_INT to pass an rtx rather - than a HOST_WIDEST_INT to gen_doloop_begin. - -2005-09-13 Diego Novillo - - * tree-dfa.c (dump_variable): Guard against NULL annotations. - -2005-09-13 Zdenek Dvorak - - PR tree-optimize/23817 - * tree-cfg.c (tree_merge_blocks): Preserve loop closed ssa. - -2005-09-13 Alan Modra - - PR target/23774 - * config/rs6000/rs6000.md (restore_stack_block): Write the backchain - word before changing the stack pointer. Use gen_frame_mem for MEMs. - Use UNSPEC_TIE to prevent insn scheduling reordering the insns. - (restore_stack_nonlocal): Likewise. - (save_stack_nonlocal): Use template to emit insns, and gen_frame_mem. - -2005-09-12 Ian Lance Taylor - - PR g++/7874 - * c.opt (ffriend-injection): New C++ option. - * doc/invoke.texi (Option Summary): Mention -ffriend-injection. - (C++ Dialect Options): Document -ffriend-injection. - -2005-09-12 Josh Conner - - PR middle-end/23237 - * ipa-reference.c (static_execute): Don't mark variables in - named sections TREE_READONLY. - -2005-09-12 Alan Modra - - * config/rs6000/rs6000.c (get_next_active_insn): Simplify test for - stack_tie. - -2005-09-12 Andrew Pinski - - * tree-ssa-dse.c (dse_optimize_stmt): Fix up all of V_MAY_DEF and - V_MUST_DEF instead of just the first_use_p. - Don't mark the virtual variables for renaming on the statement which - is being removed. - (pass_dse): Remove TODO_update_ssa. - -2005-09-12 J"orn Rennecke - - PR middle-end/23290 - * stor-layout.c (compute_record_mode): For records with a single - field, actually check the field's mode size against the type size. - - * sh.h (HARD_REGNO_MODE_OK): Allow V4SFmode in general purpose - registers for TARGET_SHMEDIA. - (enum reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): Rename - GENERAL_FP_REGS to GENERAL_DF_REGS. Add GENERAL_FP_REGS as union - of GENERAL_REGS and FP_REGS. - -2005-09-12 Bernd Schmidt - - * config/bfin/bfin.c (legimitize_pic_address): Use gen_const_mem. - -2005-09-12 Alan Modra - - * config/rs6000/rs6000.c (get_next_active_insn): Rewrite using - CALL_P, JUMP_P and NONJUMP_INSN_P, so that barriers and labels - are omitted. Exclude stack_tie insn too. - -2005-09-11 David Edelsohn - - PR rtl-optimization/23098 - * config/rs6000/predicates.md (easy_fp_constant): SFmode constant - 0.0f is easy. - * config/rs6000/rs6000.md (movdf splitter): Use - const_double_operand predicate for TARGET_POWERPC64. - * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Expand - SYMBOL_REF method to ABI_V4. - - * config/rs6000/altivec.md (build_vector_mask_for_load): Use - replace_equiv_address. - * config/rs6000/rs6000.c (rs6000_emit_eh_reg_restore): Mark MEM as - rs6000_sr_alias_set and MEM_NOTRAP. - (rs6000_aix_emit_builtin_unwind_init): Use gen_frame_mem(). - -2005-09-11 Eric Botcazou - - * tree.c (contains_placeholder_p) : Properly - handle CALL_EXPR again. - -2005-09-11 Richard Earnshaw - - * arm/predicates.md (alignable_memory_operand): Delete. - -2005-09-10 Richard Henderson - - PR debug/23806 - * dbxout.c (dbxout_expand_expr): New. - (dbxout_symbol): Use it. - -2005-09-10 Richard Earnshaw - - * arm.c (arm_gen_rotated_half_load): Delete. - (vfp_emit_fstmx, arm_set_return_address): Use gen_frame_mem. - (emit_multi_reg_push, emit_sfm, arm_expand_prologue) - (thumb_set_return_address): Likewise. - (thumb_load_double_from_address): Use adjust_address. - * arm.md (splits calling arm_gen_rotated_half_load): Delete. - (extendhsisi2_mem, movhi_bytes): Use change_address. - (movhi): Use widen_memory_access. - (reload_out_df): Use replace_equiv_address. - * arm-protos.h (arm_gen_rotated_half_load): Delete prototype. - -2005-09-09 Richard Henderson - - PR debug/20998 - * dbxout.c: Include expr.h. - (dbxout_global_decl): Don't suppress for DECL_RTL unset. - (dbxout_symbol): Handle DECL_VALUE_EXPR. - * Makefile.in (dbxout.o): Add EXPR_H. - -2005-09-09 Zdenek Dvorak - - PR tree-optimization/23509 - * tree-cfg.c (replace_uses_by): Use replace_exp. - * tree-ssa-loop-ivopts.c (get_ref_tag): Assert that dereferenced - pointers have name_mem_tag or type_mem_tag set. - -2005-09-09 Sebastian Pop - - * tree-chrec.c (evolution_function_is_invariant_rec_p): Use - CHREC_LEFT and CHREC_RIGHT for accessing chrec components instead - of wrongly accessing operands. - -2005-09-09 Sebastian Pop - - * Makefile.in (tree-chrec.o): Depends on SCEV_H. - * tree-chrec.c: Include tree-scalar-evolution.h. - (chrec_convert): Instantiate the base and step before calling - scev_probably_wraps_p that would fail on parametric evolutions. - Collect all the fails into a single section failed_to_convert, - print a diagnostic, and return chrec_dont_know instead of calling - fold_convert. - * tree-scalar-evolution.c (loop_closed_phi_def): New. - (instantiate_parameters_1): Avoid instantiation of loop closed ssa - phi nodes. - (scev_const_prop): Don't replace the definition of a loop closed ssa - phi node by itself, or by another loop closed ssa phi node. - * tree-ssa-loop-niter.c (scev_probably_wraps_p, convert_step): Check - that base and step are defined. - -2005-09-09 Richard Guenther - - PR c++/23624 - * fold-const.c (fold_ternary): Check truth_value_p before - calling invert_truthvalue. - -2005-09-09 Nick Clifton - - * Makefile.in (LIBGCC_DEPS): Add libgcc2.h. - * libgcc2.c (__clz_tab[], __popcount_tab[]): Set the fixed - dimension of these arrays. - * libgcc2.h (__clz_tab[], __popcount_tab[]): Add exports of - these arrays. - * longlong.h: Only provide a prototype for the __clz_tab[] array - if this header has not been included from libgcc2.h. - * config/stormy16/stormy16-lib2.c: Include libgcc2.h rather than - defining own types. - Provide prototypes for exported functions. - Use the __clz_tab[] and __popcount_tab[] arrays provided by - libgcc2.c. - -2005-09-08 Josh Conner - - PR c++/21135 - PR c++/23180 - * expr.c (expand_expr_addr_expr_1): Don't invoke - expand_simple_binop for EXPAND_INITIALIZER. - -2005-09-08 Richard Henderson - - PR debug/23190 - * toplev.c (wrapup_global_declaration_1): Split out ... - (wrapup_global_declaration_2): ... from ... - (wrapup_global_declarations): ... here. Return bool. - (check_global_declaration_1): Split out ... - (check_global_declarations): from here. - (emit_debug_global_declarations): New. - * toplev.h (wrapup_global_declaration_1, wrapup_global_declaration_2, - check_global_declaration_1, emit_debug_global_declarations): Declare. - * c-decl.c (c_write_global_declarations_1): Don't create a vector - of decls. Call wrapup_global_declaration_1, - wrapup_global_declaration_2, check_global_declaration_1 directly. - (c_write_global_declarations_2): New. - (ext_block): New. - (c_write_global_declarations): Call c_write_global_declarations_2. - * langhooks.c (write_global_declarations): Call - emit_debug_global_declarations. - - * cgraphunit.c (cgraph_varpool_remove_unreferenced_decls): Don't - remove decls that have DECL_RTL_SET_P. - * passes.c (rest_of_decl_compilation): Invoke - cgraph_varpool_finalize_decl for all but functions. - -2005-09-08 Eric Botcazou - - * tree-vrp.c (extract_range_from_unary_expr): Do not set the range for - the result of a conversion if the new min and max cannot be compared. - -2005-09-08 Andreas Krebbel - - * config/s390/s390.c (s390_sr_alias_set): Variable removed. - (override_options): Setting s390_sr_alias_set removed. - (save_fpr, save_gprs): Set alias set to vararg or frame. - (restore_fpr, restore_gprs, s390_emit_prologue): Replace - s390_sr_alias_set with get_frame_alias_set (). - (s390_gimplify_va_arg): Replace s390_sr_alias_set with - get_varargs_alias_set (). - -2005-09-08 Andrew Pinski - - PR objc/20574 - PR objc/19324 - * c-parser.c (c_parser_objc_method_definition): If the next - token is not "{", error out and don't start the function. - -2005-09-08 Andrew Pinski - - * tree-vrp.c (extract_range_from_expr): Move the check for non - nullness after the check for gimple invariant. - -2005-09-08 Richard Kenner - - * tree.c (host_integerp, tree_low_cst): Correct function comment. - -2005-09-08 Kazuhiro Inaoka - - PR target/23747 - * config/m32r.md (movmemsi_internal): Canonicalize order of - operands in PLUS component of template. - -2005-09-07 Andreas Krebbel - - * reload1.c (fixup_eh_region_note): Remove assertion. - (fixup_abnormal_edges): Reverted removal of call to - find_many_sub_basic_blocks made on 2005-08-31. - -2005-09-07 Richard Henderson - - * function.c (ARG_POINTER_CFA_OFFSET): Move ... - * defaults.h (ARG_POINTER_CFA_OFFSET): ... here. - (INCOMING_FRAME_SP_OFFSET): Move from dwarf2out.c. - * dwarf2out.c (struct cfa_loc): Change reg to unsigned int, - rearrange for better packing. - (INCOMING_FRAME_SP_OFFSET): Move to defaults.h. - (lookup_cfa_1): Remove inline marker. - (cfa_equal_p): Split out of ... - (def_cfa_1): ... here. Use INVALID_REGNUM. - (build_cfa_loc): Handle !cfa->indirect. - (frame_pointer_cfa_offset): New. - (dbx_reg_number): Assert register elimination performed; do - leaf register remapping. - (reg_loc_descriptor): Avoid calling dbx_reg_number when unused. - (eliminate_reg_to_offset): New. - (based_loc_descr): Remove can_use_fbreg argument. Use fbreg only - for verifiably local stack frame addresses; re-base to CFA. - (mem_loc_descriptor): Remove can_use_fbreg argument. - (concat_loc_descriptor, loc_descriptor): Likewise. - (containing_function_has_frame_base): Remove. - (rtl_for_decl_location): Don't do register elimination or - leaf register remapping here. - (secname_for_decl): Split out from .. - (add_location_or_const_value_attribute): ... here. - (convert_cfa_to_loc_list): New. - (compute_frame_pointer_to_cfa_displacement): New. - (gen_subprogram_die): Use them. - * tree.h (frame_base_decl): Remove. - * var-tracking.c (frame_base_decl, frame_stack_adjust): Remove. - (prologue_stack_adjust): Remove. - (vt_stack_adjustments): Use INCOMING_FRAME_SP_OFFSET. - (adjust_stack_reference): Re-base memories to arg_pointer_rtx. - (set_frame_base_location): Remove. - (compute_bb_dataflow, emit_notes_in_bb): Don't call it. - (dump_attrs_list, dump_dataflow_set): Use string concatenation. - (vt_add_function_parameters): Don't eliminate_regs. - (vt_initialize): Don't create frame_base_decl. - -2005-09-07 Eric Botcazou - - * doc/install.texi (*-*-solaris2*): Clarify wording on the recommended - version of GNU binutils for 4.x and later. - -2005-09-06 Mark Mitchell - - * ggc-page.c (ggc_push_context): Remove. - (ggc_pop_context): Likewise. - * ggc.h (ggc_push_context): Remove. - (ggc_pop_context): Likewise. - -2005-09-06 Saurabh Verma - - PR target/8973 - * config/arc/arc.c (arc_output_function_epilogue): Update flags while - returning from an interrupt handler. - -2005-09-06 Saurabh Verma - - PR target/8972 - * config/arc/arc.c (output_shift): Add check for loop count when - optimizing. - -2005-09-06 Steven Bosscher - - * tree-ssa-phiopt.c (conditional_replacement): Construct proper SSA - form manually. - (abs_replacement): Likewise. - (pass_phiopt): Remove TODO_update_ssa. - -2005-09-06 Jakub Jelinek - - PR c/23075 - * c-typeck.c (c_finish_return): Set TREE_NO_WARNING on RETURN_EXPR - if "return with no value, in function returning non-void" warning - has been issued. - * tree-cfg.c (execute_warn_function_return): Don't look at - RETURN_EXPRs with TREE_NO_WARNING set. - - PR target/22362 - * config/i386/i386.c (ix86_function_regparm): Make sure automatic regparm - for internal functions doesn't use registers used by global registers - variables. Use fewer register parameters if there are global register - variables. - -2005-09-06 Olivier Hainque - Eric Botcazou - - PR middle-end/14997 - * expr.c (expand_expr_real) : Force op0 to mem - when we would be extracting outside its bit span (bitpos+bitsize - larger than its mode), possible with some VIEW_CONVERT_EXPRs from - Ada unchecked conversions. - -2005-09-06 Steven Bosscher - - * tree-ssa-pre.c (try_look_through_load): New function. - (compute_avail): Use it to try to look through loads for some - more useful expressions. - -2005-09-06 Saurabh Verma - - * simplify-rtx.c (simplify_binary_operation_1): Correct the - condition for detecting cases like (a&a) and (a^a). - -2005-09-06 Keith Besaw - - * common.opt: Add option ftree-vect-loop-version. - * params.def: Add --param vect-max-version-checks. - * doc/invoke.texi: Document ftree-vect-loop-version and - --param vect-max-version-checks. - * tree-vectorizer.h (_loop_vec_info): Add ptr_mask and - may_misalign_stmts and defines for accessors. - * tree-vectorizer.c : (new_loop_vec_info): VEC_alloc for - LOOP_VINFO_MAY_MISALIGN_STMTS. - (destroy_loop_vec_info): VEC_free for - LOOP_VINFO_MAY_MISALIGN_STMTS. - * tree-vect-analyze.c (vect_compute_data_ref_alignment): - Update documentation. - (vect_update_misalignment_for_peel): New. - (vect_enhance_data_refs_alignment): Update to choose loop - peeling or loop versioning if appropriate for the (potentially) - unaligned data references in the loop. - (vect_analyze_data_refs_alignment): Remove call to - vect_enhance_data_refs_alignment so the checks can be done - earlier. - (vect_analyze_loop): Add call to vect_enhance_data_refs_alignment - and move up call to vect_analyze_data_refs_alignment. - * tree-vect-transform.c (vect_create_cond_for_align_checks): New. - (vect_transform_loop): Add call to loop_version. - -2005-09-06 Jakub Jelinek - - PR rtl-optimization/23098 - * cse.c (fold_rtx_mem): Call delegitimize_address target hook. - * simplify-rtx.c (constant_pool_reference_p): New function. - * rtl.h (constant_pool_reference_p): New prototype. - * config/i386/i386.md (pushf split, mov[sdx]f split): Use - constant_pool_reference_p in condition and - avoid_constant_pool_reference in preparation statements. - -2005-09-06 Andreas Krebbel - - * gcse.c (try_replace_reg): Disallow REG_EQUAL notes for - STRICT_LOW_PART SETs. - -2005-09-06 Alan Modra - - PR middle-end/21460 - * except.c (sjlj_emit_function_enter): Find the function begin - note even when it's not in first basic block. - -2005-09-06 Kelley Cook - - * acinclude.m4: Renamed from aclocal.m4. Delete AM_LANGINFO_CODESET, - AM_PROG_CC_C_O, and AM_AUX_DIR_EXPAND. - * aclocal.m4: Regenerate. - -2005-09-05 DJ Delorie - - * config/m32c/m32c.h (TRAMPOLINE_ALIGNMENT): Correct misspelling - of macro. - -2005-09-06 Kazu Hirata - - * gimplify.c, ipa-prop.h, varasm.c, config/vxlib.c, - config/vxworks.h, config/crx/crx.c, config/ms1/ms1.c, - config/ms1/ms1.md, config/rs6000/rs6000.c: Fix comment typos. - Follow spelling conventions. - * doc/invoke.texi: Follow spelling conventions. - -2005-09-05 J"orn Rennecke - - * rtl.h (gen_frame_mem, gen_tmp_stack_mem): Declare. - * emit-rtl.c (gen_frame_mem, gen_tmp_stack_mem): New functions. - * builtins.c (expand_builtin_return_addr): Use gen_frame_mem. - -2005-09-05 J"orn Rennecke - - PR target/23683 - * sh.c (sh_reorg, emit_load_ptr): Use gen_const_mem. - (output_stack_adjust): Use gen_tmp_stack_mem. - (sh_expand_prologue, sh_expand_epilogue): Use gen_frame_mem. - (sh_set_return_address, sh_allocate_initial_value): Likewise. - (sh_get_pr_initial_val): Likewise. - (sh_builtin_saveregs): Use gen_frame_mem and change_address. - (sh_initialize_trampoline): Likewise. Also use adjust_address. - * sh.md (divsi_inv_m0): Use gen_const_mem. - (push_fpscr, pop_fpscr, load_ra): Use gen_frame_mem. - (movdf_i4+1): Use gen_tmp_stack_mem. - (reload_outdf+3, reload_outdf+4, fpu_switch+1): Use change_address. - (fpu_switch+2): Likewise. - (movv4sf_i, movv16sf_i): Use adjust_address. - (symGOT_load): Set MEM_NOTRAP_P bit. - -2005-09-04 John David Anglin - - PR target/23721 - * pa.c (emit_move_sequence): Fix typo in last change. - -2005-09-03 Jakub Jelinek - - PR rtl-optimization/23454 - * reorg.c (relax_delay_slots): Only call invert_jump if any_condjump_p - is true. - -2005-09-03 Richard Henderson - John David Anglin - - PR middle-end/23671 - * pa.c (emit_move_sequence): Use replace_equiv_address instead of - gen_rtx_MEM. - -2005-09-02 Nicolas Pitre - - * config/arm/arm.c (arm_legitimize_address): Limit the value passed - to bit_count to 32 bits. - -2005-08-31 Mark Mitchell - - PR c++/23167 - * gimplify.c (gimplify_expr): Handle TREE_ADDRESSABLE types when - generating synthetic loads from volatile lvalues. - -005-09-02 Nick Clifton - - * config/stormy16/stormy16-lib2.c (__popcounthi2, __parityhi2, - __ctzhi2, __clzhi2): New functions. - -2005-09-02 Andrew Pinski - - PR middle-end/23547 - * tree-nested.c (struct var_map_elt): Mark with GTY. - (struct nesting_info): Mark with GTY. Mark var_map's param is struct - var_map_elt. - (lookup_field_for_decl): Allocate new element in GC memory. - (lookup_tramp_for_decl): Likewise. - (convert_nl_goto_reference): Likewise - (create_nesting_tree): Allocate info in GC memory. Likewise for - info->var_map. - (free_nesting_tree): Free with ggc_free instead of free. - (root): New static variable. - (lower_nested_functions): Remove root as local variable. And zero out - root at the end of the function. - -2005-09-02 J"orn Rennecke - - PR rtl-optimization/20365 - * simplify-rtx.c (simplify_plus_minus_op_data): Change type of neg - to short. New member ix. - (simplify_plus_minus_op_data_cmp): Break ties using ix member. - (simplify_plus_minus): Initialize ix members before calling qsort. - -2005-09-02 Zdenek Dvorak - - PR tree-optimization/23626 - * tree-cfg.c (replace_uses_by): Clean up eh info. - -2005-09-01 DJ Delorie - - * config/m32c/m32c.c (m32c_valid_pointer_mode): Remove stray debug - fprintf. - -2005-09-01 David Edelsohn - - * config/rs6000/rs6000.c (setup_incoming_varargs): Set MEM_NOTRAP_P. - (rs6000_split_multireg_move): Use replace_equiv_address instead of - gen_rtx_MEM. - -2005-09-01 Craig Rodrigues - - * c-decl.c (diagnose_mismatched_decls): With -Wredundant-decls, - do not issue warning for a variable definition following - a declaration. - -2005-09-01 Richard Henderson - - PR 23668 - * config/i386/i386.c (ix86_expand_vector_init_one_var): Restore - conversion to CONST_VECTOR. - -2005-09-01 Richard Henderson - - PR 23676 - * reload1.c (reload_as_needed): Check !CALL_P before calling - fixup_eh_region_note. - * rtlanal.c (may_trap_p): SUBREG by itself cannot trap. - -2005-09-01 DJ Delorie - - * varasm.c (output_constant): Let the target resolve - conversions of addresses to non-default pointer sizes. - -2005-09-01 Nicolas Pitre - - * config/arm/arm.c (arm_legitimize_address): Split absolute addresses - to alow matching ARM pre-indexed addressing mode. - (arm_override_options): Remove now irrelevant comment. - -2005-09-01 Phil Edwards - - * config.gcc (i*86-wrs-vxworks): Update. Split out vxworksae target. - * config/i386/t-vxworks: Update multilibs for VxWorks 6 and RTP mode. - * config/i386/vxworks.h: Likewise. - * config/i386/t-vxworksae: New file, for VxWorks AE. - * config/i386/vxworksae.h: Likewise. - -2005-09-01 Sebastian Pop - - PR tree-optimization/23410 - * tree-ssa-loop-niter.c (scev_probably_wraps_p): Check that the - sequence is not wrapping during the first step. - -2005-09-01 Jakub Jelinek - - PR debug/7241 - * dwarf2out.c (base_type_die): Compare char_type_node with - TYPE_MAIN_VARIANT (type), not type. - -2005-09-01 Richard Guenther - - PR tree-optimization/15366 - * common.opt: Add -finline-functions-called-once. - Put -fearly-inlining in alphabetically ordered place. - * doc/invoke.texi: Document new option. - * ipa-inline.c (cgraph_decide_inlining): Honour - flag_inline_functions_called_once. - -2005-09-01 Jakub Jelinek - - PR rtl-optimization/23478 - * local-alloc.c (struct qty): Add n_throwing_calls_crossed field. - (alloc_qty): Initialize it. - (update_equiv_regs): Clear REG_N_THROWING_CALLS_CROSSED. - (combine_regs): Combine also n_throwing_calls_crossed fields. - (find_free_reg): Don't attempt to caller-save pseudos crossing - calls that might throw. - * global.c (struct allocno): Add throwing_calls_crossed field. - (global_alloc): Revert 2005-08-22 change. Initialize - throwing_calls_crossed. - (find_reg): Don't attempt to caller-save pseudos crossing calls that - might throw. - -2005-09-01 Alan Modra - - PR target/23649 - * config/rs6000/predicates.md (mask_operand): Only handle rlwinm masks. - (mask64_operand): Reinstate code prior to 2005-06-11 change. - (mask64_2_operand): Reinstate code prior to 2004-11-11 change. - (and64_2_operand): Tweak to use predicate. - (and_operand): Adjust for mask_operand changes. - * config/rs6000/rs6000.c (num_insns_constant): Revert 2005-06-11. - (print_operand): Likewise. - (rs6000_rtx_costs): Pass mode to mask_operand and use mask64_operand. - (mask64_1or2_operand): Delete. - * rs6000/rs6000-protos.h (mask64_1or2_operand): Delete. - * config/rs6000/rs6000.h (EXTRA_CONSTRAINT ): Revert 2005-06-11. - (EXTRA_CONSTRAINT ): Pass operand mode to predicate. - (EXTRA_CONSTRAINT ): Disallow mask64_operand matches. - * config/rs6000/rs6000.md (andsi3_internal3 split): Revert 2005-06-11. - (rotldi3_internal4): Likewise. - (rotldi3_internal5, rotldi3_internal5 split): Likewise. - (rotldi3_internal6, rotldi3_internal6 split): Likewise. - (ashldi3_internal7): Likewise. - (ashldi3_internal8, ashldi3_internal8 split): Likewise. - (ashldi3_internal, ashldi3_internal9 split): Likewise. - (anddi3 split): Don't match mask64_operand. - (anddi3_internal2): Add rlwinm. Modify 't' splitter predicate. - (anddi3_internal3): Add rlwinm. Use and64_2_operand in non-cr0 - splitter and match TARGET_64BIT not TARGET_POWERPC64. Modify - 't' splitter predicate. - (movdi_internal64 + 2): Revert 2005-06-11 change. - -2005-08-31 DJ Delorie - - * config/m32c/m32c.c (m32c_valid_pointer_mode): New. - (m32c_asm_integer): Add support for 32 bit pointers. - -2005-08-31 Richard Henderson - - * emit-rtl.c (set_mem_attributes_minus_bitpos): Look through - component-like references for setting MEM_NOTRAP_P. - - * config/i386/i386.c (ix86_setup_incoming_varargs): Set MEM_NOTRAP_P. - * config/alpha/alpha.c (alpha_setup_incoming_varargs): Likewise. - -2005-08-31 Richard Henderson - - * expr.c (expand_expr_real_1) : Force subregs - into a pseudo before applying gen_lowpart. - -2005-08-31 Geoffrey Keating - - * doc/install.texi (Specific): Update cctools version required - for full functionality. - * config/darwin.h (LINK_SPEC): Pass -mmacosx-version-min to the - linkers as -macosx_version_min. - -2005-08-31 J"orn Rennecke - - PR target/21255 - * sh.c (print_operand, %R and %S): Add handling of floating point - registers, memory, constants and invalid operands. - -2005-08-31 Daniel Berlin - - * ipa-pure-const.c: Change dump name. - -2005-08-31 Uros Bizjak - - PR target/23570 - * config/i386/sse.md (*sse_concatv2sf): Change operand 2 constraint - to "reg_or_0_operand". - (sse2_loadld): Change operand 1 constraint to "reg_or_0_operand". - -2005-08-31 Dale Johannesen - - * loop-iv.c (iv_number_of_iterations): Fix overflow check for - loops that count down. - -2005-08-31 Richard Henderson - - PR rtl-opt/23601 - * reload1.c (reload): Set MEM_NOTRAP_P in spill slots. - (fixup_eh_region_note): New. - (reload_as_needed): Call it. - (fixup_abnormal_edges): Allow all throwing insns to be deleted; - don't call find_many_sub_basic_blocks; call verify_flow_info. - * function.c (assign_stack_local_1): Set MEM_NOTRAP_P. - (keep_stack_depressed): Likewise. - (assign_stack_temp_for_type): Likewise; use adjust_address_nv. - -2005-08-31 Richard Henderson - - * config/i386/i386.c (ix86_function_ok_for_sibcall): Fix test for - fp return matching. - -2005-08-31 Fariborz Jahanian - - * expr.c (expand_expr_real_1): Compare size of address - mode to target's address mode size in deciding expansion of - the constant address. - -2005-08-31 Richard Guenther - - PR middle-end/23477 - * expr.c (all_zeros_p): New function. - (expand_expr_real_1): Handle the case of an all-zero - non-addressable constructor separately. - -2005-08-31 Adrian Straetling - - * builtins.c: (expand_builtin_strcpy, expand_builtin_strcat): Change - arguments, adjust all callers. - (expand_builtin_strcat): Rewrite to call strcpy instead of mempcpy. - -2005-08-30 Richard Henderson - - PR target/23630 - * expr.c (expand_expr_real_1) : Use gen_lowpart - whenever the mode sizes match. - -2005-08-31 Alan Modra - - * calls.c (load_register_parameters): Fix comment typo. - * expr.c (emit_push_insn): Comment formatting. - -2005-08-30 Ian Lance Taylor - - * config/i386/x-cygwin (host-cygwin): Change dependency from - hosthooks-def.h to $(HOSTHOOKS_DEF_H). - -2005-08-29 Geoffrey Keating - - * config/i386/i386.c (ix86_expand_vector_init_one_var): Don't modify - parts of 'vals'. - -2005-08-29 Andrew Pinski - - PR middle-end/23408 - * ipa-inline.c (cgraph_decide_inlining_incrementally): Remove the - call to ggc_collect. - -2005-08-29 Paolo Bonzini - - PR bootstrap/21268 - * Makefile.in (ALL_CPPFLAGS): Include $(INCLUDES) at the - beginning. Remove $(INCLUDES) from all the rules, if following - $(ALL_CPPFLAGS) or $(BUILD_CPPFLAGS). - -2005-08-29 Jakub Jelinek - - PR middle-end/23484 - * builtins.c (fold_builtin_memory_chk, fold_builtin_stxcpy_chk, - fold_builtin_strncpy_chk, fold_builtin_snprintf_chk): If len is - not constant, but maxlen is, don't set len to maxlen, rather - set maxlen to len if len is a constant. - -2005-08-29 Zdenek Dvorak - - PR tree-optimization/23475 - * tree-ssa-loop-ivcanon.c (remove_empty_loop): Update frequencies - and counts. - -2005-08-28 Daniel Berlin - - Fix PR middle-end/22455 - - * fold-const.c (fold_checksum_tree): Adjust for now-largest tree size. - Checksum only the parts of the tree that exist for the tree code. - -2005-08-28 Dale Johannesen - - * config/i386/i386.c (nocona_cost): Increase MOVE_RATIO. - -2005-08-28 Andrew Pinski - - * tree-vrp.c: Remove obsolete comment in front of vrp_initialize. - -2005-08-28 Richard Henderson - - * stor-layout.c (finalize_type_size): Revert workaround from 08-26. - * tree.c (make_node_stat): Use BITS_PER_UNIT instead of alignment - of char_type_node. - -2005-08-28 Jakub Jelinek - - PR ada/23593 - * builtins.c (get_memory_rtx): Don't strip nops - in between COMPONENT_REFs. - -2005-08-27 Andrew Pinski - - PR middle-end/23463 - * gimplify.c (gimplify_modify_expr_rhs): Remove check for zero sized - types. - (gimplify_modify_expr): Check for zero sized types and gimplify the - rhs and lhs as statements. - -2005-08-27 John David Anglin - - PR libgcj/23508 - * pa/linux-unwind.h (pa32_fallback_frame_state): Use r0 slot in frame - state for return address column of signal frames. - -2005-08-27 David Edelsohn - - PR target/23539 - * config/rs6000/rs6000.c (expand_block_clear): Use HImode when - bytes >= 2 not bytes == 2. - (expand_block_move): Same. - -2005-08-27 Richard Guenther - - PR target/23575 - * config/i386/sse.md (sse2_movsd): Add missing closing - braces. - -2005-08-27 Paul Brook - - * genrecog.c (enum decision_type): Add DT_num_insns. - (struct decision_test): Add u.num_insns. - (add_to_sequence): Add DT_num_insns test. - (maybe_both_true_2, nodes_identical_1): Handle DT_num_insns. - (write_cond, debug_decision_2): Ditto. - (change_state): Assume peep2_next_insn never fails. - Remove "afterward" argument. - (write afterward, write_tree): Update to match. - * recog.c (peep2_current_count): New variable. - (peep2_next_insn): Check it. - (peephole2_optimize): Set peep2_current_count. - * recog.h (peep2_current_count): Declare. - -2005-08-26 Josh Conner - - PR middle-end/23584 - * ipa-pure-const.c (check_tree): Check for volatile-ness - when considering a dereference. - -2005-08-27 Jakub Jelinek - - * rtl.h (MEM_IN_STRUCT_P): Fix comment typo. - -2005-08-26 Jakub Jelinek - - PR rtl-optimization/23561 - * builtins.c (get_memory_rtx): Add LEN argument. If MEM_EXPR is - a COMPONENT_REF, remove all COMPONENT_REF from MEM_EXPR unless - at most LEN bytes long memory fits into the field. - (expand_builtin_memcpy, expand_builtin_mempcpy, expand_movstr, - expand_builtin_strncpy, expand_builtin_memset, expand_builtin_memcmp, - expand_builtin_strcmp, expand_builtin_strncmp): Adjust callers. - -2005-08-26 Richard Henderson - - PR rtl-opt/23560 - * loop.c (biased_biv_may_wrap_p): New. - (maybe_eliminate_biv_1): Use it to suppress non-equality - comparison transformations. Delete disabled code. - -2005-08-26 Ian Lance Taylor - - * combine.c (make_extraction): Avoid reference outside object. - -2005-08-26 J"orn Rennecke - - * stor-layout.c (finalize_type_size): Restore behaviour for - non-aggregate types to the status quo ante of the patch for - pr 23467. Document why it matters. - -2005-08-26 Jakub Jelinek - - PR c/23506 - * c-common.c (c_common_nodes_and_builtins): Increase builtin_types - array by one element, initialize the BT_LAST element with NULL. - -2005-08-26 David Edelsohn - - * config/rs6000/rs6000.md (eq_compare): Only enable when - optimizing for size. - (plus_eqsi): Same. - (compare_plus_eqsi): Same. - (plus_eqsi_compare): Same. - (neg_eq0): Same. - (neg_eq): Same. - - * config/rs6000/aix52.h (PROCESSOR_DEFAULT): Change to - PROCESSOR_POWER4. - -2005-08-26 Nick Clifton - - * config/v850/v850.c (ep_memory_operand): Return FALSE if - TARGET_EP is not defined. - * config/v850/c850.h (TARGET_CPU_CPP_BUILTINS): Define __EP__ if - TARGET_EP is enabled. - (OPTIMIZATION_OPTIONS): Do not define MASK_EP when optimizing. - * config/v850/v850.md (save_all_interrupt): Only use the EP - register if TARGET_EP is defined. - (restore_all_interrupt): Likewise. - * config/v850/lib1funcs.asm: Update functions so that the EP - register is only used if __EP__ is defined. - -2005-08-26 David Ung - - * config/mips/mips.c (mips_expand_prologue): Handle case when - generating for MIPS16 and the outgoing argument area is more than - SMALL_OPERAND. Use the frame pointer as temporary to generate the - add instruction. - -2005-08-26 Paul Woegerer - - * config/crx/crx.md: Make doloop_end pattern usage controllable - via mloop-nesting= command line switch. Make sure - the combiner cannot use doloop_end_ in an illegal way. - * config/crx/crx.c: Use regs up to r6 for argument passing. - Refine crx_address_cost (non cst4 displacements are expensive). - * config/crx/crx.opt: Add switch for mloop-nesting=. - -2005-08-26 Adrian Straetling - - * config/s390/s390.md: ("movstr", "*movstr"): Add patterns. - (UNSPEC_MVST): New constant. - -2005-08-26 Andreas Krebbel - - * config/s390/predicates.md ("shift_count_operand", "setmem_operand"): - Reject operands containing eliminable registers. - * testsuite/gcc.dg/20050825-1.c: New testcase. - -2005-08-24 Paolo Bonzini - Jan Hubicka - - * regmove.c (reg_is_remote_constant_p): Reorganize to not use log links. - -2005-08-24 Paolo Bonzini - - PR tree-optimization/23546 - * tree-ssa-loop-im.c (for_each_index): Handle INTEGER_CST - and REAL_CST nodes. - -2005-08-24 Pete Steinmetz - - * params.def (PARAM_MIN_SPEC_PROB): New. - * sched-rgn.c (MIN_PROBABILITY): Delete. - (compute_trg_info): Convert to PARAM_VALUE. - * doc/invoke.texi (param): Document min-spec-prob. - -2005-08-24 Fariborz Jahanian - - * config/darwin.h: define __PIC__ - * config/rs6000/darwin.h: Add SUBTARGET_OS_CPP_BUILTINS to - TARGET_OS_CPP_BUILTINS macro. - -2005-08-24 Paolo Bonzini - - * config/rs6000/rs6000.md: Fix thinko in the peephole2 I added - yesterday. - -2005-08-24 Zdenek Dvorak - - * bb-reorder.c (copy_bb, duplicate_computed_gotos): Add argument - to duplicate_block. - * cfghooks.c (duplicate_block): Added position where to place - new block as argument. - * cfghooks.h (duplicate_block): Declaration changed. - * cfglayout.c (copy_bbs): Add argument after. Pass it to - duplicate_block. - * cfglayout.h (copy_bbs): Declaration changed. - * cfgloop.h (loop_version): Declaration changed. - * cfgloopmanip.c (duplicate_loop_to_header_edge): Pass - position to copy_bbs. - (loop_version): Pass position to duplicate_loop_to_header_edge. - Add place_after argument and position new blocks according to - it. - * modulo-sched.c (sms_schedule): Pass place_after argument - to loop_version. - * tracer.c (tail_duplicate): Pass argument to duplicate_block. - * tree-cfg.c (split_edge_bb_loc): New function. - (tree_split_edge, tree_duplicate_sese_region): Use split_edge_bb_loc - to determine position of new blocks. - * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Pass argument - to loop_version. - * tree-ssa-threadupdate.c (create_block_for_threading): Pass - argument to duplicate_block. - * tree-vectorizer.c (slpeel_tree_duplicate_loop_to_edge_cfg): - Pass position to copy_bbs. - -2005-08-24 Zdenek Dvorak - - * fold-const.c (ptr_difference_const): Use - cst_and_fits_in_hwi instead of host_integerp. - -2005-08-24 Paolo Bonzini - - * config/darwin.c (gen_pic_offset): New. - (machopic_indirect_data_reference, machopic_legitimize_pic_address): - Use it. - -2005-08-23 Zdenek Dvorak - - PR tree-optimization/23486 - * tree-ssa-loop.c (pass_scev_cprop): Add TODO_update_ssa_only_virtuals. - -2005-08-23 Phil Edwards - - * config.gcc (*-*-vxworks*): Update tm_file, add extra_options, - remove use_collect2. - (powerpc-wrs-vxworks): Update, split out *-*-vxworksae target. - - * target-def.h (TARGET_HAVE_CTORS_DTORS): Allow target - configuration files to override the default value. - - * config/t-vxworks: Remove INSTALL_ASSERT_H. Define STMP_FIXPROTO, - EXTRA_HEADERS, and EXTRA_MULTILIB_PARTS. - * config/vx-common.h: New file, split out from... - * config/vxworks.h: here. Update for VxWorks 6.x and RTP mode. - * config/vxworksae.h: New file, for VxWorks AE. - * config/vxworks.opt: New file. - * config/vxlib.c: Update for VxWorks 6. - - * config/rs6000/t-vxworks (MULTILIB_OPTIONS): New list. Adjust - other MULTILIB_* variables appropriately. - (LIB2FUNCS_EXTRA, EXTRA_MULTILIB_PARTS): Correct from t-ppccomm. - * config/rs6000/t-vxworksae: New file, adjust multilibs for AE. - * config/rs6000/vxworks.h: Update for VxWorks 6. - * config/rs6000/vxworksae.h: New file, mostly placeholder for now. - -2005-08-23 Andrew Pinski - - PR target/20799 - * config/darwin.c (machopic_select_section): Remove the hack to - mark "::operator new" and "::operator delete" for coalescing - even though they are not weak. - -2005-08-24 Alan Modra - - * configure.ac (HAVE_LD_NO_DOT_SYMS): Set for powerpc-linux biarch. - * configure: Regenerate. - -2005-08-23 Paolo Bonzini - - PR middle-end/23517 - * fold-const.c (fold_convert): Use VIEW_CONVERT_EXPR to convert - between vectors. - * convert.c (convert_to_integer, convert_to_vector): Likewise. - * tree-vect-generic.c (tree_vec_extract, expand_vector_operations_1): - Likewise. - -2005-08-23 Paolo Bonzini - - * config/rs6000/predicates.md (equality_operator): New. - * config/rs6000/rs6000.md: Rewrite as a peephole2 the split for - comparison with a large constant. - -2005-08-23 Mark Mitchell - - * hwint.h (HOST_WIDE_INT_PRINT): Use HOST_LONG_LONG_FORMAT. - -2005-08-23 J"orn Rennecke - - * sh.c (sh_builtin_saveregs): If the number of to-be-saved fp - registers is even, and we have a hardware double precision fp, - align the buffer. - (sh_gimplify_va_arg_expr): For floating point arguments, consider - size of current argument when checking if argument was passed in - registers. - - * sh.c (sh_attr_renesas_p): Handle error_mark_node. - - PR middle-end/23467 - * stor-layout.c (finalize_type_size): Dont override - existing alignment with a smaller alignment from the mode. - -2005-08-23 Sebastian Pop - - * lambda-code.c (lambda_vector_lexico_pos): Moved... - * lambda.h (lambda_vector_lexico_pos): ... here. - * tree-data-ref.c (build_classic_dist_vector): Return false when - the distance vector is lexicographically negative. - -2005-08-23 Sebastian Pop - - PR tree-optimization/23511 - * tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined): Don't - handle cases where TYPE_MIN_VALUE or TYPE_MAX_VALUE are NULL_TREE. - -2005-08-23 Jakub Jelinek - - PR tree-optimization/22043 - * tree.h (count_type_elements): Add ALLOW_FLEXARR argument. - * expr.c (count_type_elements): Add ALLOW_FLEXARR argument. - If ALLOW_FLEXARR, handle types ending with flexible array member. - Pass false as second argument to recursive count_type_elements calls. - (categorize_ctor_elements_1, mostly_zeros_p): Pass false as second - argument to count_type_elements call. - * tree-sra.c (decide_block_copy): Likewise. - * gimplify.c (gimplify_init_constructor): If num_type_elements < 0 - for a constant-sized object, set cleared as well. Pass true as - second argument to count_type_elements call. - -2005-08-23 Alan Modra - - PR target/21571 - * config/rs6000/rs6000.c (rs6000_legitimate_small_data_p): Rename - from legitimate_small_data_p, and make global. Update use. - Remove forward declaration. - * config/rs6000/rs6000-protos.h (rs6000_legitimate_small_data_p): - Declare. - * config/rs6000/rs6000.md (movdf_hardfloat32): Allow small data mems. - -2005-08-23 David Edelsohn - - * config/rs6000/rs6000.md (eq): Use output operand instead - of scratch intermediates. - (eq_compare): Same. - (neg_eq0): New. - (neg_eq): Convert to define_insn_and_split. - -2005-08-23 Alan Modra - - PR target/23070 - * config/rs6000/rs6000.c (function_arg): For ABI_V4 calls to - stdarg functions, set/clear the fp marker even when no variable - args are passed. - * config/rs6000/sysv4.opt (mprototype): Describe. - -2005-08-22 Jakub Jelinek - - PR rtl-optimization/23478 - * regs.h (reg_info): Add throw_calls_crossed. - (REG_N_THROWING_CALLS_CROSSED): Define. - * flow.c (allocate_reg_life_data): Initialize - REG_N_THROWING_CALLS_CROSSED. - (propagate_one_insn, attempt_auto_inc): Update - REG_N_THROWING_CALLS_CROSSED. - * global.c (global_alloc): Don't allocate pseudos across - calls that may throw. - -2005-08-22 Andrew Pinski - - PR c/18715 - * c-common.c (c_do_switch_warnings): Look for a node where the enum's - value is inbetween the range if we did not find an exact match. - -2005-08-22 Aldy Hernandez - - * doc/invoke.texi (Option Summary): Add ms1 options. - * doc/extend.texi: Document interrupt handler attribute for ms1. - * doc/md.texi: Document ms1 constraints. - * config.gcc: Add ms1-*-elf. - * config/ms1/ms1.h: New. - * config/ms1/ms1.c: New. - * config/ms1/ms1.md: New. - * config/ms1/ms1-protos.h: New. - * config/ms1/ABI.txt: New. - * config/ms1/crti.asm: New. - * config/ms1/crtn.asm: New. - * config/ms1/lib2extra-funcs.c: New. - * config/ms1/t-ms1: New. - * config/ms1/ms1.opt: New. - -2005-08-22 Ira Rosen - - * config/rs6000/altivec.md (xorv4sf3): New. - (negv4sf2, neg2): Likewise. - -2005-08-21 H.J. Lu - - PR target/23485 - * config/ia64/ia64.md (divsi3): Check divide by zero. - (udivsi3): Likewise. - (divdi3): Likewise. - (udivdi3): Likewise. - -2005-08-21 Jakub Jelinek - - * simplify-rtx.c (simplify_immed_subreg) : Only clear - up to elem_bitsize bits, not max_bitsize. - -2005-08-21 Sebastian Pop - - PR tree-optimization/23433 - * tree-chrec.c (chrec_apply): Translate INTEGER_CST to a - REAL_CST when the type is SCALAR_FLOAT_TYPE_P. - -2005-08-21 Sebastian Pop - - PR tree-optimization/23434 - * tree-ssa-loop-niter.c (proved_non_wrapping_p): Give up when - the iteration bound is not an INTEGER_CST. - -2005-08-21 Dorit Nuzman - - * tree-vect-transform.c (get_initial_def_for_reduction): Set - need_epilog_adjust back to false for MIN/MAX case. Set *scalar_def to - NULL if need_epilog_adjust is false. - (vect_create_epilog_for_reduction): Variable adjust_in_epilog removed. - Case 3 always peels first itration, not just for PLUS case, and no need - to use scalar_initial_def here. Create an epilog adjustment only if - scalar_initial_def is not NULL. - - (vectorizable_reduction): Remove assert. - -2005-08-20 H.J. Lu - - PR target/23485 - * config/ia64/lib1funcs.asm (__divdi3): Check divide by zero. - (__moddi3): Likewise. - (__udivdi3): Likewise. - (__umoddi3): Likewise. - (__divsi3): Likewise. - (__modsi3): Likewise. - (__udivsi3): Likewise. - (__umodsi3): Likewise. - -2005-08-20 Jakub Jelinek - - * tree-pass.h (TDF_GRAPH): Define. - * tree-dump.c (dump_options): Don't set TDF_GRAPH in "all". - * passes.c (finish_optimization_passes): Only call - finish_graph_dump_file if TDF_GRAPH is set. - (execute_one_pass): Only call clean_graph_dump_file if dump_file != - NULL. Set TDF_GRAPH bit. - (execute_todo): Call print_rtl_graph_with_bb if TDF_GRAPH is set. - -2005-08-20 Richard Earnshaw - - * arm.h (arm_stack_offsets): Add locals_base field. - * arm.c (arm_get_frame_offsets): Compute it. - (thumb_compute_initial_elimination offset): Make the Thumb frame - pointer point to the base of the local variables. - (thumb_expand_prologue): Update accordingly. - (thumb_expand_epilogue): Likewise. - - * arm.md (thumb_movhi_clobber): Make this insn a define_expand. Change - mode of clobbered scratch to DImode. Handle a case that's known to - need this. - -2005-08-19 David Edelsohn - - * config/rs6000/rs6000.md (gt0): Delete. - (gt0_compare): Delete. - (neg_gt0): Delete. - -2005-08-19 Eric Christopher - - * optabs.h: Change CTI_ to COI_. - * optabs.c: Ditto. - -2005-08-19 James E Wilson - - * builtins.c (expand_builtin_return_addr): Set - current_function_accesses_prior_frames when count != 0. Use - frame_pointer_rtx when count == 0. - * function.h (struct function): Add accesses_prior_frames field. - (current_function_accesses_prior_frames): Define. - * reload1.c (init_elim_table): Check - current_function_accesses_prior_frames. - * doc/tm.texi (INITIAL_FRAME_ADDRESS_RTX): Update docs. - -2005-08-19 Diego Novillo - - * tree-cfgcleanup.c (cleanup_tree_cfg): Fix flowgraph change - indicator. Return true if the flowgraph changed during - cleanup. - -2005-08-19 Diego Novillo - - PR 23476 - * tree-cfgcleanup.c (cleanup_control_expr_graph): Fold the - conditional expression before testing its value. - -2005-08-19 Diego Novillo - - * doc/invoke.texi: Fix documentation for -ftree-dominator-opts. - -2005-08-19 Devang Patel - - PR tree-optimization/23048 - * tree-if-conv.c (if_convertible_bb_p): Supply basic_block as - third parameter. Check whether latch is dominated by exit - block or not. - (if_convertible_loop_p): Supply exit block itself to - if_convertible_bb_p. - -2005-08-19 Richard Earnshaw - - PR target/23473 - * arm.md (arm_load_pic_register): Change argument to the mask of - saved registers. Call thumb_find_work_register if we need a - scratch register on Thumb. - (arm_expand_prologue): Pass empty register set to - arm_load_pic_register. - (thumb_expand_prologue): Pass live_regs_mask directly to - arm_load_pic_register. - * arm-protos.h (arm_load_pic_register): Update prototype. - -2005-08-19 J"orn Rennecke - - * sh.c (find_sole_member): New function. - (sh_gimplify_va_arg_expr): Use it. Allow RECORD_TYPE mode mismatch - if the record's alignment is larger than the size of its only member. - -2005-08-19 Richard Earnshaw - - PR target/23436 - * arm.c (thumb_legitimize_reload_address): New function. - * arm-protos.h (thumb_legitimize_reload_address): Add prototype. - * arm.h (THUMB_LEGITIMIZE_RELOAD_ADDRESS): Call it. - -2005-08-19 Paul Woegerer - - * config/crx/crx.c: Implement crx_decompose_address. Reject - symbolic displacements since CRX register relative adressing - mode can't handle unsigned 32-bit values as displacements. - * config/crx/crx.h: Simplify definitions, remove redundant - parenthesis and obsolete macros. - * config/crx/crx.opt: Add new switch for debugging addresses. - * config/crx/crx-protos.h: Add new declarations for above. - -2005-08-19 Andrew Pinski - - PR middle-end/20624 - * gimple-low.c (block_may_fallthru): Handle CLEANUP_POINT_EXPR by - looking past it. - -2005-08-18 Kaveh R. Ghazi - - * collect2.c (dup2): Delete. - * configure.ac: Don't check for dup2. - - * config.in, configure: Regenerate. - -2005-08-18 J"orn Rennecke - - * sh.c (sh_gimplify_va_arg_expr): Loop to substitute a RECORD_TYPE - record with the type of its only member. - -2005-08-18 David Edelsohn - - * config/rs6000/rs6000.md (ltu_compare): Convert to - define_insn_and_split. - (plus_ltu_compare): Same. - (gtu_compare): Same. - (plus_gtu_compare): Same. - -2005-08-18 Dorit Nuzman - - PR tree-optimization/22228 - * tree-ssa-loop (pass_vectorize): Add TODO_verify_loops to - todo_flags_start. - * tree-vect-transform.c (vect_transform_loop): Mark the variables that - are recorded in vect_vnames_to_rename for renaming. - * tree-vectorizer.c (vect_vnames_to_rename): New global bitmap. - (slpeel_update_phi_nodes_for_guard1): Record virtual vars for renaming - in vect_vnames_to_rename. - (vectorize_loops): Allocate and free the vect_vnames_to_rename bitmap. - * tree-vectorizer.h (vect_vnames_to_rename): New extern variable. - -2005-08-18 Jan Hubicka - - PR c++/22034 - * cgraphunit.c (cgraph_varpool_assemble_pending_decls): Emit debug - info only for local statics, not for member variables. - -2005-08-18 Volker Reichelt - - * tree-data-ref.c (analyze_siv_subscript_cst_affine): Fix comment typo. - -2005-08-18 Volker Reichelt - - * c-typeck.c (designator_errorneous): Rename to designator_erroneous. - -2005-08-18 Andrew Pinski - - PR middle-end/16045 - * builtins.c (fold_builtin): Create a new NOP_EXPR all the time. - -2005-08-17 James E Wilson - - * c-decl.c (grokdeclarator): Use TYPE_SIZE_UNIT not TYPE_SIZE in - array size check. - -2005-08-17 David Edelsohn - - * config/rs6000/rs6000.md (leu): Convert to mode macro. - (leu_compare): Same. - (plus_leu): Same. - (neg_leu): Same. - (and_neg_leu_compare): Same. - (plus_ltu): Same. - (geu): Same. - (geu_compare): Same. - (plus_geu): Same. - (neg_geu): Same. - (and_neg_geu): Same. - (plus_gt): Same. - (gtu_compare): Same. - (plus_gtu): Same. - -2005-08-17 Erik Christiansen - - * config/v850/lib1funcs.asm (callt_save_interrupt): Fix comment typos. - Move call_table_data to end. Delete spurious .text. - (callt_save_all_interrupt): Fix comment typo. - -2005-08-17 James E Wilson - Kevin Winchester - - PR target/21684 - * config/mcore/mcore.h (SHIFT_COUNT_TRUNCATED): Define to 0. - -2005-08-17 Uros Bizjak - - PR target/23268 - * config/i386/i386.md ("*fist2_1"): New pattern. - ("lrint2"): Change expander to use "*fist2_1" pattern. - -2005-08-17 J"orn Rennecke - - * sh.c (sh_gimplify_va_arg_expr): Don't substitute a RECORD_TYPE - record with the type of its only member if the modes don't match. - - * varasm.c (decode_reg_name): Skip empty additional register names. - -2005-08-16 Zdenek Dvorak - - * tree-ssa-loop-im.c (MAX_LSM_NAME_LENGTH, lsm_tmp_name, - lsm_tmp_name_length): New. - (lsm_tmp_name_add, gen_lsm_tmp_name, get_lsm_tmp_name): New functions. - (schedule_sm): Use get_lsm_tmp_name instead of "lsm_tmp". - -2005-08-16 Ulrich Weigand - Andreas Krebbel - - * config.gcc: Added z9-109 switch. - * config/s390/2084.md ("x_int", "x_agen", "x_lr", "x_la", "x_larl", - "x_load", "x_store", "x_branch", "x_call", "x_mul_hi", "x_mul_sidi", - "x_div", "x_sem", "x_cs", "x_vs", "x_stm", "x_lm", "x_other", - "x_fsimpdf", "x_fsimpsf", "x_fdivdf", "x_fdivsf", "x_floaddf", - "x_floadsf", "x_fstore_df", "x_fstoresf", "x_ftoi", "x_itof"): Enable - for "z9_109" cpu attribute. - * config/s390/s390.c (z9_109_cost): New processor cost structure. - (CONST_OK_FOR_Os, CONST_OK_FOR_Op, CONST_OK_FOR_On): New macros. - (s390_handle_arch_option): Added z9-109 switch. - (override_options): Set respective cost function for z9-109. - (s390_const_ok_for_constraint_p): New constraints Os, Op, On. - (legitimate_reload_constant_p): Accept extended immediates. - (print_operand): Three new output modifiers added: k, m and o. - (s390_adjust_priority, s390_issue_rate): Handle Z9_109 like Z990. - (s390_output_mi_thunk): Use extended immediate when possible. - * config/s390/s390.h (processor_flags): Added PF_EXTIMM. - (TARGET_CPU_EXTIMM, TARGET_EXTIMM): New macros. - (CONSTRAINT_LEN): Added length of O constraint. - (CLZ_DEFINED_VALUE_AT_ZERO): Definition added. - * config/s390/s390.md ("cpu"): New value z9_109 added. - ("*tstdi_extimm", "*tstdi_ccconly_extimm", "*tstsi_extimm", - "*tstsi_cconly_extimm", "*movdi_64extimm", "*extendhidi2_extimm", - "*extendqidi2_extimm", "*extendhisi2_extimm", "*extendqisi2_extimm", - "*zero_extendsi2_extimm", "*anddi3_extimm", "*iordi3_extimm", - "*xordi3_extimm", "clzdi2", "clztidi2"): New patterns. - ("*tstdi", "*tstsi", "*movdi_64", "*extendhisi2", "*extendqisi2", - "*zero_extendsi2_64", "zero_extendqihi2", "*zero_extendqihi2_64", - "*anddi3", "*iordi3", "*xordi3"): Disable for TARGET_EXTIMM. - ("*cmpdi_cct", "*cmpsi_cct", "*cmpdi_ccs", "*cmpsi_ccs", "*cmpdi_ccu", - "*cmpsi_ccu", "*movsi_zarch", "*adddi3_imm_cc", "*adddi3_carry1_cc", - "*adddi3_carry2_cc", "*adddi3_cc", "*adddi3_64", "*addsi3_imm_cc", - "*addsi3_carry1_cc", "*addsi3_carry2_cc", "*addsi3_cc", "addsi3", - "*andsi3_cc", "*andsi3_cconly", "*andsi3_zarch", "*iorsi3_cc", - "*iorsi3_cconly", "*iorsi3_zarch", "*xorsi3_cc", "*xorsi3_cconly", - "*xorsi3", "*xorhi3", "*xorqi3"): Added instruction using extended - immediates. - ("extenddi2", "extendsi2", "zero_extenddi2", - "zero_extendsi2"): Allow memory operands and don't manually emit - insns for TARGET_EXTIMM. - -2005-08-17 Andreas Krebbel - - * testsuite/gcc.dg/20020926-1.c: Added "-mesa" to dg-options. - -2005-08-17 Nick Clifton - - * config/stormy16/stormy16.c (xstormy16_encode_section_info): - Call default_encode_section_info. - -2005-08-17 Steven Bosscher - - PR tree-optimization/21574 - * tree-ssa-ccp.c (likely_value): If the right hand side is a - constant, return CONSTANT. - (ccp_lattice_meet): Use operand_equal_p instead of simple_cst_equal. - (ccp_fold, visit_assignment): Likewise. - (evaluate_stmt): Handle UNDEFINED and UNKNOWN_VAL the same way. - -2005-08-16 James A. Morrison - - * c-typeck.c (build_function_call): Call fold_buildN_initializer or - fold_buildN instead of buildN then fold_initializer or fold. - (build_unary_op): Likewise. - (build_binary_op): Likewise. - * fold-const.c (fold_initializer): Remove. - (fold_build1_initializer): New function. - (fold_build2_initializer): New function. - (fold_build3_initializer): New function. - * tree.h (fold_initializer): Remove. - (fold_build1_initializer): New function. - (fold_build2_initializer): New function. - (fold_build3_initializer): New function. - -2005-08-16 James A. Morrison - - * fold-const.c (optimize_bit_field_compare): Remove extra fold call. - (try_move_mult_to_index): Call fold_build2 instead of build2. - (fold_binary): Don't call fold after calls to try_move_mult_to_index. - * tree-ssa-loop-niter.c (inverse): Call int_const_binop instead of - fold_binary_to_constant. - (infer_loop_bounds_from_undefined): Call fold_build2 instead of - fold (build. - * tree-data-ref.c (tree_fold_divides_p): Use tree_int_cst_equal to - check if A == gcd (A, B). Remove TYPE argument. - (analyze_offset) Use fold_build2 instead of fold (build. - (create_data_ref): Likewise. - (analyze_siv_subscript_cst_affine): Update calls to tree_fold_divides_p. - * tree-ssa-ccp.c (widen_bitfield): Call fold_build2 instead of build2 - then fold. - -2005-08-17 Kelley Cook - - * config/arm/unaligned-funcs.c,config/i386/crtfastmath.c, - ipa-cp.c,ipa-prop.c,ipa-prop.h: Update FSF address. - -2005-08-16 Andrew Pinski - - PR tree-opt/23402 - * gimplify.c (zero_sized_type): New function. - (gimplify_modify_expr_rhs): If we have a zero sized type, - replace the statement with an empty statement. - -2005-08-16 H.J. Lu - - * config/i386/crtfastmath.c (set_fast_math): Add "=m" for - fxsave. - -2005-08-16 Ian Lance Taylor - - * doc/tm.texi (Label Output): Correct typo. - -2005-08-16 Steven Bosscher - - PR target/23376 - * loop-unroll.c (analyze_insn_to_expand_var): Make sure that - force_operand will work later on using have_insn_for. - -2005-08-16 Volker Reichelt - - * fold-const.c (tree_expr_nonnegative_p): Regroup cases. - -2005-08-16 Ian Lance Taylor - - PR c++/23337 - * gimplify.c (gimplify_init_ctor_eval): If we see an element of - vector type, don't try to construct it element by element. Add an - assertion that we use a FIELD_DECL when building a COMPONENT_REF. - -2005-08-16 Volker Reichelt - - * fold-const.c (fold_ternary): Simplify folding of a CALL_EXPR. - -2005-08-16 Geoffrey Keating - - * doc/invoke.texi (Precompiled Headers): Document some more options - which are known to be safe. - -2005-08-16 James E Wilson - - PR tree-optimization/21105 - * c-decl.c (grokdeclarator): Use TYPE_SIZE_UNIT not TYPE_SIZE in - TREE_OVERFLOW check. - -2005-08-16 David Edelsohn - - * config/rs6000/rs6000.md (ltu): Convert to mode macro. - (neg_ltu): Same. - (gtu): Same. - (neg_gtu): Same. - -2005-08-16 Volker Reichelt - - * builtins.c (expand_builtin_strcat): Remove superfluous call to fold. - (fold_builtin_isdigit): Use fold_buildN. - (build_function_call_expr): Likewise. - * c-typeck.c (c_finish_loop): Likewise. - -2005-08-16 J"orn Rennecke - Richard Shann - - PR middle-end/20396: - * optabs.c (expand_binop): Take TRULY_NOOP_TRUNCATION into account. - -2005-08-16 Sebastian Pop - - * tree-ssa-loop-niter.c (scev_probably_wraps_p): Reword a comment. - -2005-08-15 Richard Earnshaw - - PR target/23355 - * arm.c (thumb_compute_save_reg_mask): Use similar logic to - arm_compure_save_reg0_reg12_mask to determine when the PIC register - must be saved. - -2005-08-15 John David Anglin - - PR middle-end/23369 - * fold-const.c (build_range_check): Disable optimization for function - pointer expressions on targets that require function pointer - canonicalization. - -2005-08-15 Ulrich Weigand - - * simplify-rtx.c (simplify_const_relational_operation): When - extracting arguments of a COMPARE, recompute the mode as well. - -2005-08-15 Ian Lance Taylor - - * tree.c (build_string): Mark tree CONSTANT and INVARIANT. - -2005-08-15 DJ Delorie - - * config/m32c/mov.md (movqi_op): Immediates can't be moved to - the stack. - (movsi_splittable): Allow, but split, moves to the stack. - * config/m32c/m32c.c (m32c_split_move): Always split moves to the - stack. - -2005-08-15 Kaveh R. Ghazi - - * aclocal.m4 (gcc_AC_FUNC_PRINTF_PTR): Delete. - * configure.ac: Don't call gcc_AC_FUNC_PRINTF_PTR. - * system.h (HOST_PTR_PRINTF): Don't define, poison it. - - * bitmap.c, c-decl.c, config/i386/i386-interix.h, - config/iq2000/iq2000.c, mips-tfile.c, print-rtl.c, print-tree.c: - Delete HOST_PTR_PRINTF. - - * configure, config.in: Regenerate. - -2005-08-15 David Edelsohn - - * config/rs6000/rs6000.md (QHSI): New mode macro. - (wd): Extend mode attr for QImode and HImode - (dbits): New mode attr. - (zero_extenddi2): Convert to mode macro. - -2005-08-15 Steve Ellcey - - PR target/21841 - * doc/invoke.texi (-mgnu-ld): Update description. - (-mhp-ld): Ditto. - -2005-08-15 Sebastian Pop - - PR 23391 - * Makefile.in (tree-chrec.o): Depends on real.h. - * tree-chrec.c: Include real.h. - (chrec_fold_plus_poly_poly, chrec_fold_multiply_poly_poly, - chrec_fold_plus_1): Use build_real for SCALAR_FLOAT_TYPE_P. - * tree-scalar-evolution.c (add_to_evolution_1, - interpret_rhs_modify_expr): Ditto. - -2005-08-15 Sebastian Pop - - PR 23386 - * tree-data-ref.c (estimate_niter_from_size_of_data): When - step is negative compute the estimation from init downwards to zero. - -2005-08-14 James A. Morrison - - * fold-const (fold_binary): Call fold_build2 instead of fold (build. - -2005-08-14 Ulrich Weigand - - * config/s390/s390.c (s390_const_ok_for_constraint_p): Add 'P' - constraint. - (legitimate_reload_constant_p): Fix handling of lliXX operands. - Accept double-word constants that can be split. - * config/s390/s390.md ("movti"): Use 'P' constraint. - ("*movdi_31", "*movdf_31"): Likewise. - -2005-08-14 Daniel Berlin - - Fix PR tree-optimization/22615 - - * tree-ssa-structalias.c (solution_set_add): Handle - first_vi_for_offset returning NULL. - (do_da_constraint): Ditto. - (do_sd_constraint): Ditto. - (do_ds_constraint): Ditto - (find_func_aliases): Ditto. - (build_constraint_graph): RHS is allowed be ANYTHING. - (first_vi_for_offset): Return NULL if we couldn't find anything at - the offset. - -2005-08-14 Ulrich Weigand - - * config/s390/s390.c (s390_canonicalize_comparison): Prefer register - over memory as first operand. - -2005-08-14 H.J. Lu - - PR target/23360 - * config/i386/crtfastmath.c (set_fast_math): Check if DAZ is - available for setting it. - -2005-08-14 Ira Rosen - - PR tree-optimization/23320 - * tree-data-ref.c (base_addr_differ_p): Add comment. Check - data-refs' types instead of base object nullness. Add check for - pointer type data-refs before first location comparison. Remove - assert. - -2005-08-14 Andreas Schwab - - * doc/md.texi (Machine Constraints): Fix misplaced @end table. - -2005-08-13 James E Wilson - - * doc/cpp.texi (__SSP__, __SSP_ALL__): Document. - * doc/invoke.texi (-Wstack-protector, -fstack-protector, - -fstack-protector-all, --param ssp-buffer-size): Document. - (-Wvariadic-macros): Alphabetize. - (-fsched-stalled-insns-dep): Add missing 'f'. - - * c-cppbuiltin.c (c_cpp_builtins): Add comment for flag_stack_protect - macros. - -2005-08-13 David Edelsohn - - * config/rs6000/rs6000.h (EXTRA_CONSTRAINT): Add 'a' for indexed - or indirect address operand. - (EXTRA_ADDRESS_CONSTRAINT): New. - * config/rs6000/rs6000.md (prefetch): Change constraint "p" to "a". - -2005-08-13 Sebastian Pop - - PR tree-optimization/22236 - * tree-cfg.c (print_pred_bbs, print_succ_bbs): Correctly print - successors and predecessors. - * tree-chrec.c (chrec_convert): Before converting, check that - sequences don't wrap. - * tree-data-ref.c (compute_estimated_nb_iterations): Moved ... - (analyze_array): Extern. - (find_data_references_in_loop): Remove call to - compute_estimated_nb_iterations. - * tree-data-ref.h (analyze_array): Declared. - * tree-flow-inline.h (single_ssa_tree_operand, single_ssa_use_operand, - single_ssa_def_operand, zero_ssa_operands): Fix documentation. - * tree-flow.h (scev_probably_wraps_p): Declare with an extra parameter. - * tree-scalar-evolution.c (instantiate_parameters_1): Factor entry - condition. - * tree-ssa-loop-ivcanon.c: Fix documentation. - * tree-ssa-loop-ivopts.c (idx_find_step): Add a fixme note. - * tree-ssa-loop-niter.c (compute_estimated_nb_iterations): ... here. - (infer_loop_bounds_from_undefined): New. - (estimate_numbers_of_iterations_loop): Use - infer_loop_bounds_from_undefined. - (used_in_pointer_arithmetic_p): New. - (scev_probably_wraps_p): Pass an extra parameter. Call - used_in_pointer_arithmetic_p. Check that AT_STMT is not null. - (convert_step): Fix documentation. - * tree-vrp.c (adjust_range_with_scev): Call instantiate_parameters. - Use initial_condition_in_loop_num and evolution_part_in_loop_num - instead of CHREC_LEFT and CHREC_RIGHT. Adjust the call to - scev_probably_wraps_p. - -2005-08-13 Ulrich Weigand - - * config/s390/s390.c (s390_split_branches): Revert 2005-08-12 change. - (s390_register_info): Ignore clobbered_regs information for fixed - registers, and only fixed registers. - (s390_init_frame_layout): Remove redundant call. - -2005-08-12 Gerald Pfeifer - - * doc/invoke.texi (C++ Dialect Options): Add dynamic_cast to - description of -Wold-style-casts. - -2005-08-12 Andreas Krebbel - Jakub Jelinek - - * config/s390/linux.h (TARGET_THREAD_SSP_OFFSET): Define. - * config/s390/s390-protos.h (s390_get_thread_pointer): Prototype added. - * config/s390/s390.c (print_operand): New output modifier 'G' added. - (get_thread_pointer): Renamed to s390_get_thread_pointer. - * config/s390/s390.md (stack_protect_set, stack_protect_test): If - TARGET_THREAD_SSP_OFFSET is defined, change operands[1] to - (MEM:P (PLUS:P (tp, TARGET_THREAD_SSP_OFFSET))). - (UNSPEC_SP_SET, UNSPEC_SP_TEST): New constants. - ("stack_protect_set", "stack_protect_test"): New expanders. - ("stack_protect_setsi", "stack_protect_setdi", "stack_protect_testsi", - "stack_protect_testdi"): New insn definitions. - -2005-08-12 Andreas Krebbel - - * config/s390/s390.md ("*movdf_31"): Changed constraint from P to K. - -2005-08-12 Paul Brook - - * config/arm/lib1funcs.asm: Error if __ARM_ARCH__ not set. - -2005-08-12 Andreas Krebbel - - * config/s390/predicates.md (setmem_operand): New predicate. - (shift_count_operand): Accept ANDs with special constants as - operand. - * config/s390/s390.c (print_shift_count_operand): Skip ANDs - with special constants. - * config/s390/s390.md ("setmem_long", "*setmem_long"): Replaced - shift_count_operand with setmem_operand. - -2005-08-12 Andreas Krebbel - - * config/s390/s390.c (s390_extract_part, s390_single_part): - Type cast added. - (s390_const_ok_for_constraint_p): Added SImode to the N constraint. - (s390_output_mi_thunk): Don't use lg on 31 bit. - * config/s390/s390.md ("*movdi_31", "*movdf_31"): Added lmy and stmy. - ("*llgt_sisi" and splitter): Replaced TARGET_64BIT with TARGET_ZARCH. - -2005-08-12 Andreas Krebbel - - * config/s390/s390.c (CONST_OK_FOR_J, CONST_OK_FOR_K): New macros. - (s390_select_ccmode, s390_rtx_costs, legitimate_reload_constant_p, - s390_init_frame_layout, s390_emit_prologue, s390_emit_epilogue, - s390_output_mi_thunk): Replaced uses of CONST_OK_FOR_CONSTRAINT_P - with one of the new macros. - -2005-08-12 Andreas Krebbel - - * config/s390/s390.c (s390_split_branches, s390_init_frame_layout): - Don't set save_return_addr_p. - (s390_register_info): Make clobbered_regs not depending on - save_return_addr_p. - -2005-08-12 Kaz Kojima - - * gcc.c (LINK_SSP_SPEC): Remove space before a trailing }. - (LINK_COMMAND_SPEC): Add space after %(link_ssp). - -2005-08-11 James E. Wilson - - * config/ia64/ia64.h (EXTRA_MEMORY_CONSTRAINT): New. - -2005-08-11 Jakub Jelinek - - * dwarf2out.c (add_location_or_const_value_attribute): Prefer - locations gathered by var-tracking in single entry loc_list - over loc_descriptor_from_tree. - - * dwarf2out.c (concat_loc_descriptor): Add can_use_fbreg argument, - pass it down to loc_descriptor. - (loc_descriptor): Pass can_use_fbreg to concat_loc_descriptor. - (containing_function_has_frame_base): Move earlier in the file. - (loc_descriptor_from_tree_1): Use containing_function_has_frame_base - instead of always assuming fbreg can't be used. - -2005-08-11 David Edelsohn - - * config/rs6000/altivec.md: Change constraint "m" to "Z". - * config/rs6000/predicates.md (indexed_or_indirect_operand): - Accept address wrapped in AND for Altivec. - * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): - Strip AND wrapping offset address for Altivec. - -2005-08-11 Richard Henderson - - PR middle-end/23312 - * gimplify.c (gimplify_one_sizepos): Check for INTEGER_TYPE - before using TYPE_IS_SIZETYPE. - -2005-08-11 Richard Henderson - - PR target/22225 - * config/alpha/alpha.c (alphaev4_insn_pipe): Add take pipes for - insn types not present on ev4. - (alphaev5_insn_pipe): Similarly. - -2005-08-11 Richard Earnshaw - - PR target/23250 - * arm.c (arm_override_options): If the user has selected callee-super- - interworking, then enable normal interworking. - -2005-08-11 Rainer Orth - - * config/i386/x86-64.h (ASM_OUTPUT_ALIGNED_BSS): Undef before - redefinition. - -2005-08-11 Wu Zhou - - * doc/rtl.texi: Fix two typos. - -2005-08-11 Richard Guenther - - PR target/23289 - * config/i386/i386.c (ix86_function_ok_for_sibcall): Handle - cases where we call to/from functions returning void. - -2005-08-10 James A. Morrison - - PR c++/23225 - * tree.c (build_pointer_type_for_mode): Robustify. - -2005-08-10 James E Wilson - - * defaults.h, config/alpha/alpha.h, config/ia64/ia64.h - (ASM_OUTPUT_ADDR_VEC_ELT): Delete. - - * config/alpha/alpha.c (alpha_arg_partial_bytes): Change "(CUM)." to - "cum->". - -2005-08-10 Eric Christopher - - * config/rs6000/rs6000.c (mems_ok_for_quad_peep): Rewrite. - * config/rs6000/rs6000.md (*lfq_power2, *stfq_power2): Use - V2DFmode. - -2005-08-10 Andrew Pinski - - PR target/21887 - * config/darwin.c (machopic_indirect_data_reference): Use a new register - for the high part when generating dynamic-no-pic code. - -2005-08-10 H.J. Lu - - * config.gcc (i[34567]86-*-linux*): Add i386/t-crtfm to tm-file. - (x86_64-*-linux*): Likewise. - - * config/i386/crtfastmath.c: New file. - * config/i386/t-crtfm: Likewise. - - * config/i386/linux.h (ENDFILE_SPEC): New. - * config/i386/linux64.h (ENDFILE_SPEC): Likewise. - - * config/i386/t-linux64 (EXTRA_MULTILIB_PARTS): Add - crtfastmath.o. - -2005-08-10 Dorit Nuzman - - * doc/md.texi: (reduc_smin, reduc_umin, reduc_splus, reduc_uplus): - (vec_shl, vec_shr): Document new operations. - * tree.def (VEC_RSHIFT_EXPR, VEC_LSHIFT_EXPR): Fix comment. - -2005-08-10 David Edelsohn - - * config/rs6000/predicates.md (indexed_or_indirect_address): New. - * config/rs6000/rs6000.md (prefetch): Remove operand 0 mode and - change predicate to indexed_or_indirect_address. - -2005-08-10 Richard Sandiford - - * config/arm/lib1funcs.asm (__aeabi_uidiv, __aeabi_idiv): New aliases. - * config/arm/libgcc-bpabi.ver (GCC_3.5): Add __aeabi_idiv, - __aeabi_uidiv, __aeabi_uread4, __aeabi_uread8, __aeabi_uwrite4 - and __aeabi_uwrite8. - * config/arm/unaligned-funcs.c: New file. - * config/arm/t-bpabi (LIB2FUNCS_EXTRA): Add unaligned-funcs.c. - -2005-08-09 Paolo Bonzini - - * bb-reorder.c (pass_duplicate_computed_gotos, pass_partition_blocks): - Add dump. - * cfglayout.c (pass_insn_locators_initialize): Add dump. - * emit-rtl.c (pass_unshare_all_rtl, pass_remove_unnecessary_notes): - Add dump. - * except.c (pass_convert_to_eh_region_ranges): Add dump. - * final.c (pass_shorten_branches): Add dump. - * flow.c (pass_recompute_reg_usage, pass_remove_death_notes): Add dump. - (pass_life): Rename dump. - (rest_of_handle_flow2): Remove initial verify_flow_info. - * function.c (pass_instantiate_virtual_regs): Add dump. - * integrate.c (pass_initial_value_sets): Add dump. - * jump.c (pass_cleanup_barriers, pass_purge_lineno_notes): Add dump. - * loop-init.c (pass_rtl_loop_init, pass_rtl_loop_done): Rename dump. - (pass_rtl_move_loop_invariants, pass_rtl_unswitch, pass_rtl_doloop, - pass_rtl_unroll_and_peel_loops): Rename dump and add gate. - (gate_rtl_move_loop_invariants, gate_rtl_unswitch, gate_rtl_doloop, - gate_rtl_unrool_and_peel_loops): New. - (rtl_move_loop_invariants, rtl_unswitch, rtl_unrool_and_peel_loops, - rtl_doloop): Do not look at flags. - * mode-switching.c (pass_mode_switching): Add dump. - * recog.c (pass_split_all_insns, pass_split_for_shorten_branches, - pass_split_before_regstack): Add dump. - * regmove.c (pass_stack_adjustments): Add dump. - * tree-optimize.c (pass_fixup_cfg): Add dump. - -2005-08-10 Kazuhiro Inaoka - - PR 23309 - * config/m32r/m32r.c (m32r_reload_lr): Fix off by one error when - deciding which instruction sequence to use. - -2005-08-09 Dorit Nuzman - - * tree-vect-transform.c (vect_create_epilog_for_reduction): Set - BIT_FIELD_REF_UNSIGNED for newly created BIT_FIELD_REFs. - -2005-08-09 Richard Guenther - - * c-common.c (builtin_function_2): Remove. - (def_builtin_1): New function. - (c_common_nodes_and_builtins): Use def_builtin_1 to - build builtin functions. - -2005-08-09 Jie Zhang - - * config/bfin/uclinux.h (NO_IMPLICIT_EXTERN_C): Define. - * config/bfin/elf.h (NO_IMPLICIT_EXTERN_C): Define. - * config/bfin/bfin.c (bfin_return_in_memory): Update to really match - Visual DSP. - -2005-08-09 James A. Morrison - - * tree-ssa-loop-niter.c (tree_simplify_using_condition_1): Use - fold_binary instead of fold_build2 since we don't care about the - resulting tree. - (loop_niter_by_eval): Likewise. - (compare_trees): Likewise. - (proved_non_wrapping_p): Likewise. - -2005-08-09 James A. Morrison - - PR c/23161 - PR c/23165 - * c-typeck.c (c_finish_if_stmt): Look into STATEMENT_LISTs to see - if the if is really empty. - -2005-08-09 Steven Bosscher - - PR tree-optimization/23234 - * tree-ssa-math-opts.c (place_reciprocal): New enum. - (execute_cse_reciprocals_1): Replace the 'phi' argument with an - argument of the new enum. - (execute_cse_reciprocals): Add reciprocals for function arguments - on the unique successor edge of the entry block. Update other calls - to execute_cse_reciprocals_1. - -2005-08-08 Richard Henderson - - PR 22439 - * gimplify.c (gimplify_one_sizepos): Preserve the original type. - -2005-08-08 Bob Wilson - - * expr.c (write_complex_part): Return after handling MEM. - -2005-08-08 Josh Conner - - PR rtl-optimization/23241 - * combine.c (simplify_comparison): Fix error in determining - whether to lift a subreg from comparison. - -2005-08-08 David Edelsohn - - PR target/18506 - * config/rs6000/altivec.md (vec_init): New. - (vec_set): New. - (vec_extract): New. - * config/rs6000/rs6000.c (rs6000_expand_vector_init): New. - (rs6000_expand_vector_set): New. - (rs6000_expand_vector_extract): New. - (rs6000_legitimate_offset_address_p): Offset addresses are valid - for Altivec modes before reload. - (altivec_expand_vec_init_builtin): New. - (get_element_number): New. - (altivec_expand_vec_set_builtin): New. - (altivec_expand_vec_ext_builtin): New. - (altivec_expand_builtin): Expand vec_init, vec_set, and vec_ext - builtins. - (altivec_init_builtins): Init vec_init, vec_set, and vec_ext - builtins. - * config/rs6000/rs6000.h (rs6000_builtins): Add - ALTIVEC_BUILTIN_VEC_INIT_, ALTIVEC_BUILTIN_VEC_SET_, - ALTIVEC_BUILTIN_VEC_EXT_. - * config/rs6000/rs6000-protos.h: Declare new functions. - -2005-08-08 Jan Hubicka - - * i386.c (legitimate_pic_address_disp_p): Refuse GOTOFF in 64bit mode. - (legitimate_address_p): Refuse GOT and GOTOFF in 64bit mode. - * i386.md (movdi*): Use pic_32bit_operand. - * predicates.md (pic_32bit_operand): New. - -2005-08-08 Nathan Sidwell - - PR c++/21166 - * stor-layout.c (finalize_type_size): Undo DECL_PACKED when possible. - -2005-08-07 James A. Morrison - - * tree-vrp.c (simplify_div_or_mod_using_range): Use build2. - (test_for_singularity): Use fold_build2. - -2005-08-07 John David Anglin - - * pa64-regs.h (CONDITIONAL_REGISTER_USAGE): Fix loop upper bound. - -2005-08-07 Danny Smith - - * config/i386/cygming.h (SUBTARGET_ENCODE_SECTION_INFO): Define. - (COMMON_ASM_OP) Define. - * config/i386/i386.c (ix86_in_large_data_p): Add ATTRIBUTE_UNUSED - (ix86_encode_section_info): Likewise. - (TARGET_ENCODE_SECTION_INFO): Conditionally define as - SUBTARGET_ENCODE_SECTION_INFO. - -2005-08-06 Richard Henderson - - PR 21894 - * tree-nested.c (convert_local_reference): Save and restore val_only - around component_ref and friends. Clear walk_subtrees by default. - -2005-08-06 Peter O'Gorman - - PR 21366 - * gcc.c (process_command): Check the argument to -b has a dash. - * doc/invoke.texi: Update -b and -V docs. - -2005-08-06 James E Wilson - - * config/mips/cross64.h, config/mips/t-cross64: Delete. - -2005-08-06 Michael Matz - - * genattrtab.c (write_attr_get, write_attr_case): Use insn_code - member only if only one insn is associated with the value. - -2005-08-06 Nick Clifton - - * config/stormy16/stormy16.h (SYMBOL_FLAG_XSTORMY16_BELOW100): - New define. - (ASM_OUTPUT_LABELREF): Delete - it is no longer needed. - * config/stormy16/stormy16.c (xstormy16_below100_symbol): - Check symbol flags instead of symbol name mangling. - (xstormy16_asm_output_aligned_common): Likewise. Also - simplify code since the bss100_section cass is the only case - where the below100 code will be triggered. - (xstormy16_encode_section_info): Encode below100 attribute - using the SYMBOL_FLAG_XSTORMY16_BELOW100 instead of mangling - the name. - (xstormy16_strip_name_encoding): Delete - this function is no - longer needed. - (TARGET_STRIP_NAME_ENCODING): Undefine. - * config/stormy16/stormy16-protos.h: Delete prototype for - xstormy16_strip_name_encoding. - -2005-08-06 Kazu Hirata - - * Makefile.in, cfgexpand.c, cfgloop.h, cfgloopmanip.c, - config.gcc, ipa-cp.c, ipa-prop.c, ipa-prop.h, reg-stack.c, - tree-ssa-structalias.c, tree-vrp.c, value-prof.c, vec.h, - config/linux.h, config/alpha/alpha.h, config/alpha/linux.h, - config/alpha/predicates.md, config/arc/arc.h, - config/arm/arm.h, config/arm/ieee754-df.S, - config/arm/ieee754-sf.S, config/bfin/bfin.c, - config/bfin/bfin.h, config/c4x/c4x.h, config/crx/crx.c, - config/fr30/fr30.h, config/frv/frv.h, config/h8300/h8300.h, - config/i386/i386.h, config/ia64/ia64.c, config/ia64/ia64.h, - config/m68hc11/m68hc11.h, config/mips/mips.c, - config/mips/mips.h, config/mips/openbsd.h, - config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.h, - config/pdp11/pdp11.h, config/rs6000/linux-unwind.h, - config/rs6000/rs6000.c, config/rs6000/rs6000.h, - config/s390/s390.c, config/sh/sh.c, config/sh/sh.h, - config/sparc/linux.h, config/sparc/linux64.h, - config/sparc/sparc.h, config/v850/v850.h, config/vax/vax.h, - doc/extend.texi, doc/gcov.texi, doc/install.texi, - doc/invoke.texi, doc/rtl.texi, doc/tm.texi: Fix comment/doc - typos. Follow spelling conventions. - -2005-08-06 Joseph S. Myers - - PR c/23113 - * stmt.c (warn_if_unused_value): Check TREE_NO_WARNING at start. - Don't handle NOP_EXPR, CONVERT_EXPR and NON_LVALUE_EXPR - specially. Check for side effects only for COND_EXPR. - * c-typeck.c (c_finish_stmt_expr): Mark statement expression - return with TREE_NO_WARNING. - -2005-08-06 Richard Sandiford - - PR rtl-optimization/23233 - * loop.c (combine_movables): Require the modes to be the same. - (move_movables): Remove handling of cases where the replacement - had a different mode to the original. - -2005-08-05 James A. Morrison - - PR tree-optimization/23128 - * tree-vrp.c (vrp_int_const_binop): Check if unsigned addition or - subtraction wrap, and set TREE_OVERFLOW if they do. - -2005-08-05 Richard Henderson - - PR 21728 - * tree-cfg.c (remove_bb): Transmute DECL_NONLOCAL labels into - FORCED_LABEL labels. - -2005-08-05 J"orn Rennecke - - PR middle-end/23135 - * reload.c (find_reloads_subreg_address): Pass down TYPE - unchanged. Change all callers except find_reloads_toplev. - -2005-08-05 Michael Matz - - * genattrtab.c (current_alternative_string): Remove. - (SIMPLIFY_ALTERNATIVE): Ditto. - (attr_alt_bit_p): Ditto. - (alternative_name): Make const char *. - (evaluate_eq_attr): Remove use of above things. - (simplify_test_exp): Ditto. - (simplify_test_exp ): Guard for insn_code < 0 . - (simplify_test_exp ): Correct typo (test 'right' not 'left'). - -2005-08-04 James E Wilson - - * config/ptx4.h, config/sol2.h, config/arm/freebsd.h, - config/arm/linux-elf.h, config/frv/frv.h, config/i386/freebsd.h, - config/i386/freebsd64.h, config/i386/netware.h, config/i386/sco5.h, - config/ia64/freebsd.h, config/rs6000/sysv4.h, config/sparc/freebsd.h - (LINK_SPEC): Delete useless %{Wl,*:%*} item. - -2005-08-04 Richard Henderson - - PR 21529 - * params.def (PARAM_SRA_MAX_STRUCTURE_COUNT): New. - * params.h (SRA_MAX_STRUCTURE_COUNT): New. - * tree-sra.c (decide_block_copy): Use it. Disable element copy - if we'd have to instantiate too many members. - -2005-08-04 Richard Henderson - - PR 21291 - * tree-outof-ssa.c (coalesce_asm_operands): New. - (coalesce_ssa_name): Use it. Split out ... - (coalesce_phi_operands, coalesce_result_decls): ... these. - -2005-08-04 Paul Brook - - * read-rtl.c (read_quoted_string): Break if EOF. - -2005-08-04 Andrew Pinski - - * tree.h (fold_build1): Change to macro and call fold_build1_stat. - (fold_build2): Likewise. - (fold_build3): Likewise. - (fold_build1_stat): New function prototype. - (fold_build2_stat): Likewise. - (fold_build3_stat): Likewise. - * fold-const.c (fold_build1): Rename to .. - (fold_build1_stat): this. Add MEM_STAT_DECL. Pass the mem stats - through to build1_stat. - (fold_build2): Rename to .. - (fold_build2_stat): this. Add MEM_STAT_DECL. Pass the mem stats - through to build2_stat. - (fold_build3): Rename to .. - (fold_build3_stat): this. Add MEM_STAT_DECL. Pass the mem stats - through to build3_stat. - -2005-08-04 David Edelsohn - Ian Lance Taylor - - * function.c (assign_stack_local_1): Do not correct stack slot - address if allocation size is smaller than mode size. - -2005-08-04 Diego Novillo - - PR 22037 - * tree-cfg.c (replace_uses_by): Call mark_new_vars_to_rename. - (tree_merge_blocks): Propagate anything allowed by - may_propagate_copy. - Clarify documentation. - * passes.c (execute_todo): If cleanup_tree_cfg invalidated the - SSA form, schedule an update if necessary. - -2005-08-04 Gerald Pfeifer - - * doc/install.texi (Binaries): Remove broken link to - Sinix/Reliant Unix binaries. - -2005-08-03 Richard Henderson - - PR 23221 - * function.c (stack_protect_epilogue): Export. - * tree.h (stack_protect_epilogue): Declare. - * calls.c (expand_call): Call it. - -2005-08-03 Eric Christopher - - * gcc.c (LINK_SSP_SPEC): Add fstack-protector-all. - * config/darwin.h (LINK_COMMAND_SPEC): Add link_ssp - spec. - -2005-08-04 Jan Hubicka - - * profile.c (branch_prob): Split edges with goto locus on them - to get proper line counts. - * tree-cfg.c (make_cond_expr_edges): Record user goto locuses, if any. - -2005-08-03 Paul Brook - - * function.c (assign_parms): Round current_function_args_size - to PARM_BOUNDARY, not STACK_BOUNDARY. - -2005-08-03 Geoffrey Keating - - * config/i386/i386.c (x86_elf_aligned_common) - (x86_output_aligned_bss): Don't try to use symbols that aren't defined. - -2005-08-03 Zdenek Dvorak - - PR tree-optimization/23157 - * tree-scalar-evolution.c (scev_const_prop): Unshare trees - before emitting them. - -2005-08-03 Volker Reichelt - - PR tree-optimization/19899 - * Makefile.in (tree-scalar-evolution.o): Add real.h. - * tree-scalar-evolution.c: Include real.h. - (add_to_evolution): Build constant -1 of correct type. - -2005-08-03 Jan Hubicka - - * cfgloop.h (DLTHE_FLAG_COMPLETTE_PEEL): New flag. - * cfgloopmanip.c (duplicate_loop_to_header_edge): Special case - profile updating for complette unrolling. - * loop-unroll.c (peel_loop_completely): Use it. - * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Likewise. - (tree_unroll_loops_completely): Disable code growing unrolling of cold - loops. - -2005-08-03 Paul Brook - - * combine.c (can_change_dest_mode): New function. - (try_combine, simplify_set): Use it. - -2005-08-03 Eric Botcazou - - * config/ia64/hpux.h (MEMBER_TYPE_FORCES_BLK): Only force - TFmode to BLKmode. - -2005-08-03 Gerald Pfeifer - - * doc/install.texi (Specific): Adjust link to openavr.org. - (Specific): Remove broken reference to GCC 2.8.1 for OS/2. - (Binaries): Adjust HP-UX Porting Center link. - (Binaries): Adjust Free Software Foundation ordering link. - -2005-08-03 Andrew Pinski - - * convert.c (convert_to_integer): Use fold_build1 instead of - build1 when converting an integer to an integer. - -2005-08-02 Richard Henderson - - * combine.c (combine_instructions): Don't use reg_equal/equiv - results if the mode doesn't match. - -2005-08-02 Mark Mitchell - - * config/i386/t-mingw32 (NATIVE_SYSTEM_HEADER_DIR): Set it. - * doc/fragments.texi (NATIVE_SYSTEM_HEADER_DIR): Document it. - -2005-08-02 Richard Henderson - - PR 23196 - * explow.c (memory_address): Remove special-case for - virtual_stack_vars_rtx and virtual_incoming_args_rtx. - -2005-08-02 Diego Novillo - - PR 23164 - * tree-cfgcleanup.c (cleanup_tree_cfg): Do not limit the - number of calls to cleanup_tree_cfg_1. - -2005-08-02 Martin Reinecke - - * doc/invoke.texi: document file extensions .F90 and .F95 - -2005-08-02 Richard Guenther - - * fold-const.c (tree_expr_nonnegative_p): frexp(x, &e) is - positive if its first argument is positive. - -2005-08-02 Richard Guenther - - PR tree-optimization/23177 - * tree-ssa-operands.c (get_tmr_operands): Use get_expr_operands - on TMR_TAG. - -2005-08-02 James A. Morrison - - PR tree-optimization/23129 - * tree-vrp.c (extract_range_from_binary_expr): Set value range to - varying for divisions with anti-ranges. - -2005-08-02 Jan Hubicka - - * tree-ssa-dom.c (thread_across_edge): Remove updating here. - * tree-ssa-threadupdate.c (thread_block): Add it here. - -2005-08-01 James E Wilson - - * config/mips/mips.c (mips_encode_section_info, mips_attribute_table, - TARGET_ENCODE_SECTION_INFO, TARGET_ATTRIBUTE_TABLE): New. - * config/mips/mips.h (SYMBOL_FLAG_LONG_CALL, SYMBOL_REF_LONG_CALL_P): - New. - * config/mips/predicates.md (const_call_insn_operand): Add check for - SYMBOL_REF_LONG_CALL_P. - * doc/extend.texi (long_call): Document the new attribute. - -2005-08-01 Ian Lance Taylor - Richard Henderson - - * Makefile.in (RTL_BASE_H): Add real.h. - * real.h (REAL_VALUE_FROM_CONST_DOUBLE): Use structure copy - instead of memcpy. - * emit-rtl.c (const_double_from_real_value): Likewise; use rtx.u.rv - directly. - * rtl.c (rtl_check_failed_code_mode): New. - * rtl.h (struct rtx_def): Add u.rv. - (XCMWINT, XCNMPRV): New. - (CONST_DOUBLE_LOW, CONST_DOUBLE_HIGH): Use XCMWINT. - (CONST_DOUBLE_REAL_VALUE): Use XCNMPRV; constify. - -2005-08-01 Richard Henderson - - * dwarf2out.c (mem_loc_descriptor): Use XEXP, not SUBREG_REG, - with auto-inc codes. - - * config/alpha/predicates.md (and_operand): Test mode of CONST_DOUBLE. - -2005-08-01 Jan Hubicka - - * i386-protos.h (asm_preferred_eh_data_format): Declare. - * i386.c: Include dwarf2.h - (asm_preferred_eh_data_format): New. - * i386.h (ASM_PREFERRED_EH_DATA_FORMAT): Move offline. - -2005-08-01 Ian Lance Taylor - - * config/host-linux.c (linux_gt_pch_get_address): Add new name - randomize_va_space for virtual address randomization control. - -2005-08-01 Steven Bosscher - - * common.opt (flag_ipa_cp): Put in right place to maintain - alphabetic sort. - -2005-08-01 Jan Hubicka - - * profile.c (compute_value_histograms): Fix thinko. - * value-prof.c: Include toplev.h - (check_counter): New function. - (tree_divmod_fixed_value_transform, tree_mod_pow2_value_transform, - tree_mod_subtract_transform): Add sanity check. - -2005-08-01 Richard Guenther - - PR tree-optimization/23133 - * tree-ssa-math-opts.c (execute_cse_reciprocals): Walk - current functions parameter decls to find defs to cse - reciprocals of. - -2005-08-01 Richard Guenther - - PR tree-optimization/23109 - * tree-ssa-math-opts.c (execute_cse_reciprocals_1): - If trapping math is in effect, use post-dominator information - to check if we'd in any case reach a trapping point before - doing the reciprocal insertion. - (execute_cse_reciprocals): Compute post-dominators, if necessary. - * tree-ssa-loop-im.c (determine_invariantness_stmt): RDIV - expressions are invariant only if trapping math is not in effect. - -2005-08-01 Razya Ladelsky - - * cgraph.h (update_call_expr, cgraph_copy_node_for_versioning, - cgraph_function_versioning): New declarations. - * cgraphunit.c: Add include to ipa-prop.h. - (update_call_expr, cgraph_copy_node_for_versioning, - cgraph_function_versioning): New functions. - * integrate.c (copy_decl_for_inlining): Remove. - * ipa-prop.h (ipa_replace_map): New struct. - (struct ipa_node): Add ipcp_orig_node, count_scale, new fields. - * ipa-cp.c (ipcp_method_orig_node, ipcp_method_is_cloned, - ipcp_method_set_orig_node, ipcp_cloned_create, ipcp_method_get_scale, - ipcp_method_set_scale, ipcp_method_compute_scale, ipcp_after_propagate, - ipcp_iterate_stage, ipcp_method_scale_print, - ipcp_profile_mt_count_print, ipcp_profile_cs_count_print, - ipcp_profile_edge_print, ipcp_profile_bb_print , ipcp_profile_print, - ipcp_replace_map_create, ipcp_redirect, ipcp_update_callgraph, - ipcp_update_bb_counts, ipcp_update_profiling, - ipcp_update_edges_counts): New functions. - (ipcp_method_cval_init): Remove restriction regarding local methods. - (ipcp_init_stage): Add ipcp_method_compute_scale. - (ipcp_insert_stage): Add versioning. - (ipcp_structures_print): Add ipcp_method_scale_print. - (ipcp_driver): Dump profiling info. - * Makefile.in: Remove integrate.h dependency from tree-inline.o. - Add ipa-prop.h dependency to tree-inline.o and cgraphunit.o. - * tree-inline.c: Remove include to integrate.h, Add include ipa-prop.h. - (struct inline_data): Add versioning_p, ipa_info, new fields. - (remap_decl, mark_local_for_remap_r, setup_one_parameter, - declare_return_variable): Replace calls to copy_decl_for_inlining with - copy_decl_for_dup. - (copy_body_r, copy_bb, copy_cfg_body, copy_tree_r, inlining_p): Add - versioning support. - (copy_decl_for_dup): Rename from copy_decl_for_inlining. - Add argument VERSIONING. - (copy_arguments_for_versioning, copy_static_chain, - function_versionable_p, tree_versionable_function_p, - tree_function_versioning, replace_ref_tree): New functions. - * tree-inline.h: Include varray.h. - (tree_versionable_function_p, tree_function_versioning, - tree copy_decl_for_dup): New declarations. - -2005-08-01 Razya Ladelsky - - * ipa-cp.c: New file. Contains IPCP specific functionality. - * ipa-prop.h: New file. Contains structures/definitions that can be - used by several interprocedural data flow optimizations (and also IPCP). - * ipa-prop.c: New file. - * Makefile.in: Add ipa-cp.c, ipa-prop.h, ipa-prop.c. - * common.opt: Add ipa-cp flag. - * timevar.def: Add IPCP optimization. - * tree-optimize.c (init_tree_optimization_passes): Schedule - pass_ipa_cp. - * tree-pass.h (pass_ipa_cp): Declare. - -2005-08-01 Kazu Hirata - - * dwarf2out.c, fold-const.c, ipa-type-escape.c, - loop-invariant.c, predict.c, predict.def, reload1.c, reorg.c, - tree-sra.c, config/arm/arm.c, config/crx/crx.c, - config/i386/i386.c, config/mips/mips.h, - config/rs6000/rs6000.h, config/sh/sh.c, - config/stormy16/stormy16.c: Fix comment typos. - -2005-08-01 Joseph S. Myers - - PR c/22311 - * c-typeck.c (build_binary_op): Use common_type wrapper on - shortened types. - (common_type): Update comment. - -2005-07-31 Steven Bosscher - - PR target/23095 - * common.opt (flag_gcse_after_reload): Don't initialize to 2. - (flag_rerun_cse_after_loop): Initialize this to 2 instead. - * postreload-gcse.c (hash_scan_set): Do not consider stack regs. - -2005-07-31 Jan Hubicka - - * pretty-print.h (pp_widest_integer): New macro. - * tree-pretty-print.c (dump_bb_header): Print BB frequencies and - counts. - -2005-07-31 Jan Hubicka - - * output.h (enum section_category): Export from varasm.c - (categorize_decl_for_section): Likewise. - * varasm.c (enum section_category): Kill. - (categorize_decl_for_section): Make global. - * i386-protos.h (x86_output_aligned_bss, x86_elf_aligned_common): - Declare. - * i386.c (ix86_section_threshold): New static variable. - (ix86_in_large_data_p, ix86_encode_section_info, - x86_64_elf_unique_section, - x86_64_elf_select_section): New functions. - (TARGET_ENCODE_SECTION_INFO): Define - (override_options): Enable medium model for PIC. - (ix86_expand_prologue): Expand gen_set_got_rex64. - (legitimate_constant_p): Handle new UNSPECs. - (legitimate_pic_address_disp_p): Likewise. - (legitimize_pic_address): Lower MEDIUM model addressing. - * i386.h (PIC_OFFSET_TABLE_REGNUM): Set for medium model PIC. - (enum cmodel): Add MEDIUM_PIC. - (SYMBOL_REF_FAR_ADDR_P): New macro. - (SYMBOL_FLAG_FAR_ADDR): New flag. - * i386.md (movdi): Support medium model. - (set_got_rex64): New pattern. - * i386.opt (mlarge-data-threshold): New flag. - * predicates.md (zext_operand/sext_operand): Deal with medium model. - * x86-64.h (ASM_OUTPUT_ALIGNED_BSS): Use x86_output_aligned_bss. - (ASM_OUTPUT_ALIGNED_COMMON, TARGET_ASM_SELECT_SECTION, - TARGET_ASM_UNIQUE_SECTION): New. - - * invoke.texi (-mlarge_data_threshold): Document - -2005-07-31 Jan Hubicka - - * tree-outof-ssa.c (coalesce_ssa_name): Use coalesce_cost. - (coalesce_vars): Likewise. - * tree-ssa-live.c (coalesce_cost): New. - (build_tree_conflict_graph): Use coalesce_cost. - * tree-ssa-live.h (coalesce_cost): Declare. - -2005-07-30 Richard Earnshaw - - * arm.md (all peepholes for post-increment operations): Delete. - (strqi_preinc, strqi_predec, loadqi_preinc, loadqi_predec) - (loadqisi_preinc, loadqisi_predec, strsi_preinc, strsi_predec) - (loadsi_preinc, loadsi_predec, strqi_shiftpreinc, strqi_shiftpredec) - (loadqi_shiftpreinc, loadqi_shiftpredec, strsi_shiftpreinc) - (strsishift_predec, loadsi_shiftpreinc, loadsi_shiftpredec): Delete. - -2005-07-30 James A. Morrison - - * fold-const.c (tree_expr_nonnegative_p): Always return true for - non-integral types. - -2005-07-29 Wolfgang Bangerth - - PR target/22582 - * doc/invoke.texi: Document -rdynamic. - -2005-07-30 Joseph S. Myers - - PR c/23143 - * c-parser.c (c_parser_parms_list_declarator): Call - mark_forward_parm_decls. - * c-decl.c (merge_decls): Only check DECL_IN_SYSTEM_HEADER for - decls with visibility structure. - -2005-07-30 Paul Brook - - * config/arm/arm.c (arm_coproc_mem_operand): Fix inaccurate comment. - -2005-07-30 Paul Brook - - * config/arm/arm-protos.h (arm_canonicalize_comparison): Update - prototype. - * config/arm/arm.c (arm_canonicalize_comparison): Use correct limit - value for mode. - * config/arm/arm.h (CANONICALIZE_COMPARISON): Pass mode argument. - -2005-07-29 Joseph S. Myers - - PR c/529 - * c-decl.c (warn_if_shadowing): Don't check for PARM_DECL in - nested function declarators. - (pushdecl): Don't call warn_if_shadowing for PARM_DECL. - (grokparms): Call warn_if_shadowing for parameters used within the - parameter list. - (store_parm_decls_newstyle): Call warn_if_shadowing for parameters - not used within the parameter list. - (store_parm_decls_oldstyle): Call warn_if_shadowing for parameters. - -2005-07-30 Jan Hubicka - - * expr.c (expand_expr_real_1): Do not load mem targets into register. - * i386.c (ix86_fixup_binary_operands): Likewise. - (ix86_expand_unary_operator): Likewise. - (ix86_expand_fp_absneg_operator): Likewise. - * optabs.c (expand_vec_cond_expr): Validate dest. - -2005-07-29 Joseph S. Myers - - PR c/21720 - * real.c (real_from_string): Also set last bit if there is a - nonzero hex digit beyond GCC's internal precision after ".". - -2005-07-29 David Edelsohn - - * config/rs6000/altivec.md: Convert UNSPEC numerical values to - define_constants. Change duplicate values to unassigned numbers. - Change UNSPEC_SUBS to UNSPEC_VSUBS. - (*altivec_vspltsf): New. - (altivec_vperm_v4sf): Delete. - (altivec_vperm_): Use mode macro V. - (altivec_vsldoi_): Convert to mode macro pattern. - (altivec_predicate_v4sf): Delete. - (altivec_predicate_): Use mode macro V. - (*altivec_lvesfx): New. - (*altivec_stvesfx): New. - (vec_realign_load_v4sf): Delete. - (vec_realign_load_): Use mode macro V. - * config/rs6000/rs6000.c (generate_set_vrsave): Use - UNSPECV_SET_VRSAVE. - -2005-07-29 Mark Mitchell - - PR bootstrap/23131 - * configure.ac (SYSTEM_HEADER_DIR): Avoid setting to empty - string. - * configure: Regenerated. - -2005-07-29 Paul Brook - - * doc/install.texi: Add link to GFortran binaries wiki page. - -2005-07-29 David Ung - - * config/mips/mips.c (mips_cpu_info_table): Add 5kf to the table. - (mips_rtx_cost_data): Add costs for 5kc and 5kf. - * config/mips/mips.h (processor_type): Add PROCESSOR_5KF. - * config/mips/mips.md (cpu): Add 5kf name. - (includes): Includes 5k.md. - * config/mips/5k.md: New DFA pipeline for the 5kc/5kf. - * doc/invoke.texi (MIPS Options): Updated cpu name supported with - -march flag. - -2005-07-29 Diego Novillo - - PR 22550 - * tree-cfgcleanup.c (cleanup_tree_cfg_1): Extract from ... - (cleanup_tree_cfg): ... here. - Call cleanup_tree_cfg_1 until there are no more cleanups to - do. - -2005-07-29 James A. Morrison - - * tree-vrp.c (compare_range_with_value): Return true or false - for ~[VAL_1, VAL_2] OP VAL if VAL_1 <= VAL <= VAL_2 for NE_EXPR and - EQ_EXPR respectively. - -2005-07-29 Kazu Hirata - - * cfg.c, tree-complex.c, config/frv/frv.c, config/i386/i386.c: - Fix comment typos. - -2005-07-29 Diego Novillo - - * tree-ssa-dom.c (struct opt_stats_d): Add field num_iterations. - (tree_ssa_dominator_optimize): Increment it. - (dump_dominator_optimization_stats): Print it. - -2005-07-29 Richard Earnshaw - Steven Bosscher - - PR rtl-optimization/23117 - * sched-rgn.c (add_branch_dependences): Handle COND_EXEC correctly - when head == tail. Tidy comment. - -2005-07-28 Richard Henderson - - * cse.c (exp_equiv_p): Special case CONST_DOUBLE. - * cselib.c (rtx_equal_for_cselib_p): Likewise. - * jump.c (rtx_renumbered_equal_p): Likewise. - * loop.c (rtx_equal_for_loop_p): Tidy and special case PC, CC0, - CONST_INT and CONST_DOUBLE. - (rtx_equal_for_prefetch_p): Likewise, plus LABEL_REF. - * reload.c (operands_match_p): Special case CONST_INT and - CONST_DOUBLE; check mode earlier. - -2005-07-29 Joseph S. Myers - - PR c/22240 - * c-typeck.c (convert_for_assignment): Do not check - DECL_IN_SYSTEM_HEADER on NULL fundecl. - -2005-07-29 Joseph S. Myers - - PR c/22192 - * c-typeck.c (composite_type): Prefer constant size arrays to - VLAs. - -2005-07-29 Joseph S. Myers - - PR c/21720 - * real.c (real_from_string): Set last bit if there is a nonzero - hex digit beyond GCC's internal precision. - -2005-07-28 Richard Henderson - - PR rtl-opt/22619 - * cfgcleanup.c (try_forward_edges): Watch out for end of - insn chain. - -2005-07-28 James E Wilson - - PR c/23106 - * doc/invoke.texi (Wstrict-aliasing=2): Fix misleading wording. - -2005-07-28 Jan Hubicka - - * Makefile.in (rtl-profile.o): Kill all traces of it. - * common.opt (fspeculative-prefetching, ftree-based-profiling): Kill. - * coverage.h (rtl_coverage_counter_ref): Kill. - * opts.c (flag_speculative_prefetching_set): Kill. - (flag_loop_optimize_set): New. - (common_handle_option): Disable loop optimizer when profiling; - do not handle speculative prefetching. - * passes.c (init_optimization_passes): Replace pass_profiling combo - by branch_prob pass. - * profile.c (compute_value_histograms): Update for simplified value - profiles. - (rtl_register_profile_hooks): Kill. - (pass_profiling): Kill. - (rest_of_handle_branch_prob): Do not profile. - * toplev.c (process_options): Remove speculative prefetching. - * toplev.h (flag_tree_based_profiling): Kill. - * tree-profile.c (prepare_instrumented_value, - tree_gen_interval_profiler, tree_gen_pow2_profiler, - tree_gen_one_value_profiler, do_tree_profiling): Update for - simplified datastructures. - * value-prof.c: Add comment that speculative prefetching was dropped; - update rest of file for simplified datastructures. - (NOPREFETCH_RANGE_MIN, NOPREFETCH_RANGE_MAX, - rtl_divmod_values_to_profile, insn_prefetch_values_to_profile, - find_mem_reference_1, find_mem_reference_2, find_mem_reference, - rtl_values_to_profile, rtl_divmod_fixed_value, rtl_mod_pow2, - rtl_mod_subtract, gen_speculative_prefetch, - rtl_divmod_fixed_value_transform, rtl_mod_pow2_value_transform, - rtl_mod_subtract_transform, speculative_prefetching_transform): Kill. - (gate_handle_value_profile_transformations, - rest_of_handle_value_profile_transformations, - pass_value_profile_transformations): Kill. - * value-prof.h (histogram_value_t): Remove IL based unions. - (rtl_register_value_prof_hooks, rtl_register_profile_hooks, - rtl_profile_hooks): Remove hooks. - - * invoke.texi (-ftree-based-profiling, -fspeculative-prefetching): Kill. - - * cgraph.c (cgraph_clone_edge): New UPDATE_ORIGINAL argument. - (cgraph_clone_node): Likewise. - * cgraph.h (cgraph_clone_edge): Update prototype. - (cgraph_clone_node): Likewise. - * ipa-inline.c (cgraph_clone_inlined_nodes): Update call of - cgraph_clone_node. - (lookup_recursive_calls): Consider profile. - (cgraph_decide_recursive_inlining): Fix updating; use new - probability argument; use profile. - * params.def (PARAM_MIN_INLINE_RECURSIVE_PROBABILITY): New. - * tree-inline.c (copy_bb): Update clal of clone_edge. - * tree-optimize.c (tree_rest_of_compilation): UPdate cal of clone_node. - - * invoke.texi (min-inline-recursive-probability): Document. - -2005-07-28 Gerald Pfeifer - - * doc/install.texi (Configuration): Update Valgrind homepage. - -2005-07-28 Richard Henderson - - PR middle-end/21362 - * cfgrtl.c (rtl_merge_blocks): Call maybe_remove_eh_handler on - labels we want to delete. - (cfg_layout_merge_blocks): Likewise. - -2005-07-28 Richard Henderson - - PR target/17692 - * config/i386/i386.c (ix86_split_sse_movcc): Emit DELETED note - when expanding to nothing. - -2005-07-28 Josh Conner - - * ipa-inline.c (update_caller_keys): Fix estimated_growth caching. - (cgraph_decide_inlining_of_small_functions): Likewise. - -2005-07-28 Josh Conner - - * ipa-inline.c (cgraph_edge_badness): Update comments. Invert shift - direction of badness if negative. - (cgraph_default_inline_p): Add reason to parameters, and assign it - a value. - (cgraph_decide_inlining_of_small_functions): New parameter in call - to cgraph_default_inline_p. - (cgraph_decide_inlining_incrementally): Likewise. - * cgraphunit.c (decide_is_function_needed): Likewise. - * cgraph.h (cgraph_default_inline_p): Likewise. - -2005-07-28 Volker Reichelt - - * builtins.c: Fix comment typo(s). - * genautomata.c: Likewise. - * gimplify.c: Likewise. - * tree-dfa.c: Likewise. - * tree-flow-inline.h: Likewise. - * tree-into-ssa.c: Likewise. - * tree-ssa-alias.c: Likewise. - * tree-ssa-ccp.c: Likewise. - * tree-ssa-copy.c: Likewise. - * tree-ssa-dce.c: Likewise. - * tree-ssa-dom.c: Likewise. - * tree-ssa-operands.c: Likewise. - * tree-tailcall.c: Likewise. - * tree-vectorizer.c: Likewise. - * tree-vrp.c: Likewise. - * tree.c: Likewise. - -2005-07-28 Jeff Law - - * tree-vrp.c (test_for_singularity): Extracted from ... - (simplify_cond_using_ranges): Attempt to simplify a relational - test to NE_EXPR. Dump information when a COND_EXPR is simplified. - -2005-07-28 Dorit Nuzman - - PR tree-optimization/22506 - * tree-vectorizer.c (update_phi_nodes_for_guard2): Skip loop-closed - phis whose argument is constant. - -2005-07-28 J"orn Rennecke - - PR rtl-optimization/18992 - Back out this patch: - 2003-10-08 John David Anglin - PR optimization/12142 - * cse.c (count_reg_usage): In a SET with a REG SET_DEST, count the - uses of the register in the SET_SRC. Remove unnecessary argument. - - Replace it with this: - * cse.c (count_reg_usage): In INSN, JUMP_INSN and CALL_INSN cases, - if flag_non_call_exceptions is set and the insn may trap, pass - pc_rtx as dest for recursion. - In SET_SRC part of SET case, if dest is already set, pass it down - unchanged. - -2005-07-28 Jan Hubicka - - * cfg.c (update_bb_profile_for_threading): Use RDIV. - (scale_bbs_frequencies_int): Likewise, assert for possible overflow. - (scale_bbs_frequencies_gcov_type): Be more curefull about overflows and - roundoff errors. - * tree-cfg.c (tree_duplicate_sese_region): Use counts for updating - profile when available. - -2005-07-28 Jan Beulich - - * config/ia64/ia64.c (ia64_load_pair_ok): New. - (ia64_print_operand): Describe and handle 'X'. - (ia64_register_move_cost): Also handle FP_REGS. - (ia64_preferred_reload_class): Likewise. - (ia64_secondary_reload_class): Likewise. - (ia64_dependencies_evaluation_hook): New local variable c. Initialize - it. Also check for ITANIUM_CLASS_FLDP. - * config/ia64/ia64.h (FP_REGNO_P): New. - (HARD_REGNO_MODE_OK): Remove explusion of TImode. - (reg_class): Add FP_REGS. - (REG_CLASS_NAMES): Adjust for it. - (REG_CLASS_CONTENTS): Likewise. - (REGNO_REG_CLASS): Use FP_REGS where appropriate. - (REG_CLASS_FROM_LETTER): Handle 'x'. - (CLASS_MAX_NREGS): Handle FP_REGS. - (MEMORY_MOVE_COST): Likewise. - * config/ia64/ia64.md (itanium_class): Add fldp. - (type): Handle fldp. - (movti_internal): More allowable operand combinations. Use ldfp8 when - splitting unnecessary. Remove predicable attribute. Adjust - itanium_class attribute. - (smuldi3_highpart): Remove outdated comment. - (mulditi3, umulditi3, rotlti3): New expanders. - (addti3, subti3, mulditi3_internal, umulditi3_internal, negti2, rotlti3_internal): New insns. - (absti2): Disabled new insn for future reference. - Respective new splitters. - * config/ia64/itanium1.md (1_fldp, 1b_fldp): New insn reservations. - * config/ia64/itanium2.md (2_fldp, 2b_fldp): Likewise. - * config/ia64/ia64-protos.h (ia64_load_pair_ok): New. - -2005-07-25 James A. Morrison - - PR rtl-optimization/23047 - * simplify-rtx.c (simplify_const_relational_operation): Respect - flag_wrapv for comparisons with ABS. - -2005-07-27 James A. Morrison - - PR tree-optimization/22493 - * tree-vrp.c (extract_range_from_unary_expr): Deal with -fwrapv and - VR_ANTI_RANGEs properly for NEGATE_EXPRs and ABS_EXPRs. - -2005-07-27 Aldy Hernandez - - * config/frv/frv.opt (moptimize-membar): New. - - * doc/invoke.texi: Document -moptimize-membar and its inverse. - - * config/frv/frv.h: Remove machine_function definition. - - * config/frv/frv.c (struct frv_io): New. - (struct machine_function): Moved from frv.h. Add has_membar_p. - (frv_same_doubleword_p, frv_io_fixed_order_p, frv_io_union) - (frv_extract_membar, frv_io_check_address, frv_io_handle_set) - (frv_io_handle_use_1, frv_io_handle_use, frv_optimize_membar_local) - (frv_optimize_membar_global, frv_optimize_membar): New functions. - (frv_reorg): Call frv_optimize_membar when appropriate. - (bdesc_loads, bdesc_stores): Use the membar code as the icode field. - (frv_expand_builtin): Adjust calls accordingly. - (frv_io_address_cookie): New function. - (frv_expand_load_builtin, frv_expand_store_builtin): Emit a normal - load or store rather than a special insn. Add ccnstant address and - io-type operands to the membar. - (frv_ifcvt_modify_tests): Unsign regno. - (frv_ifcvt_modify_tests): Same. - - * config/frv/frv.md: Remove UNSPEC_BUILTIN_{LOAD,STORE}. Change - UNSPEC_OPTIONAL_MEMBAR constant. - (builtin_read_): Delete. - (builtin_write_): Delete. - ("optional_membar_"): Add operand. - - * testsuite/gcc.target/frv/all-builtin-read8.c: Delete. - * testsuite/gcc.target/frv/all-builtin-read16.c: Delete. - * testsuite/gcc.target/frv/all-builtin-read32.c: Delete. - * testsuite/gcc.target/frv/all-builtin-read64.c: Delete. - * testsuite/gcc.target/frv/all-builtin-write8.c: Delete. - * testsuite/gcc.target/frv/all-builtin-write16.c: Delete. - * testsuite/gcc.target/frv/all-builtin-write32.c: Delete. - * testsuite/gcc.target/frv/all-builtin-write64.c: Delete. - * testsuite/gcc.target/frv/all-read-write-1.c: New. - -2005-07-28 Kaz Kojima - - * df.c (df_uses_record): Handle SCRATCH. - -2005-07-28 Steven Bosscher - - PR debug/20161 - * passes.c (rest_of_decl_compilation): If decl is a type and - we have encountered errors, don't emit debug information. - -2005-07-27 Kenneth Zadeck - - * params.def: Fixed comment. - -2005-07-27 Bjoern Haase - - PR target/19885 - * config/avr/avr.c (TARGET_ASM_ALIGNED_SI_OP): Add. - (TARGET_ASM_UNALIGNED_HI_OP): Add. - (TARGET_ASM_UNALIGNED_SI_OP): Add. - -2005-07-27 Steven Bosscher - - PR c++/22003 - * varasm.c (assemble_start_function): Don't do anything that may - require a CFG if the current function is a thunk. - -2005-07-25 Geoffrey Keating - - * doc/install.texi (Prerequisites): Mention that perl is needed - to do export control in libstdc++ targetting Darwin. - -2005-07-27 Steven Bosscher - - PR rtl-optimization/17808 - * sched-deps.c (sched_get_condition): Enable #if 0'ed code. - (sched_insns_conditions_mutex_p): Split out from... - (add_dependence): ...here. But don't call it from here. - (add_dependence_list): Check sched_insns_conditions_mutex_p - before calling add_dependence. - (add_dependence_list_and_free): Likewise. - (fixup_sched_groups): Likewise. - (sched_analyze_1): Likewise. - (sched_analyze_2): Likewise (and replace a "0" with REG_DEP_TRUE). - (sched_analyze): Likewise. - (sched_analyze_insn): Likewise. - * sched-ebb.c (add_deps_for_risky_insns): Likewise. - * sched-rgn.c (add_branch_dependences): Likewise. Also, add - dependencies on all COND_EXEC insns to jumps ending basic blocks - when doing intrablock scheduling. - * sched-int.h (sched_insns_conditions_mutex_p): Add prototype. - -2005-07-27 Jeff Law - - * tree-vrp.c (vrp_meet): Intersect the equivalency sets when - meeting a VR_ANTI_RANGE with a VR_RANGE. When intersecting - equivalency sets, correctly handle the case were vr0 has an - equivalency set, but vr1 does not. - -2005-07-27 Dorit Nuzman - - PR tree-optimization/23073 - * tree-vect-analyze.c (vect_analyze_data_refs_alignment): Call - vect_print_dump_info before fprintf. - -2005-07-27 Zdenek Dvorak - - PR tree-optimize/22348 - * tree-ssa-loop-niter.c (number_of_iterations_cond): - Fold the partial computation. - -2005-07-27 Zdenek Dvorak - - PR tree-optimization/22325 - * tree-flow.h (compute_phi_arg_on_exit, force_expr_to_var_cost): - Declare. - * tree-scalar-evolution.c (scev_const_prop): Add generic final - value replacement. - * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Split from ... - (force_var_cost): ... this function. - (compute_phi_arg_on_exit): Export. - -2005-07-27 Zdenek Dvorak - - PR tree-optimization/20773 - * tree-ssa-loop-ch.c (copy_loop_headers): Select the correct latch - edge. - -2005-07-27 Richard Guenther - - * tree-ssa-structalias.c (push_fields_onto_fieldstack): - Avoid pushing again if current struct contains only - fields we decomposed. - -2005-07-27 Jan Hubicka - - PR tree-optimization/22574 - * cgraph.c (cgraph_function_body_availability): Unanalyzed bodies are - not available. - - * tree-tailcall.c (decrease_profile): New function. - (eliminate_tail_call): Use it. - - * cgraphunit.c (cgraph_function_and_variable_visibility): Set - visibility flags correctly in whole program mode. - -2005-07-26 Steve Ellcey - - PR rtl-optimization/22472 - * config/pa/pa.h (HARD_REGNO_RENAME_OK): Define. - -2005-07-26 Steven Bosscher - - PR tree-optimization/22504 - * tree-complex.c (expand_complex_addition): Use 'code' instead - of MINUS_EXPR for (VARYING, ONLY_IMAG) and (ONLY_IMAG, VARYING). - -2005-07-26 Aldy Hernandez - - * config.gcc (cpu_type): Add frv case. - (with_cpu): Add frv400-*-*linux* and frv550-*-*linux* cases. - (supported_defaults): Add fr550 case. - -2005-07-26 Diego Novillo - - PR 22591 - * tree-ssa-alias.c (may_alias_p): Remove shortcut that tests - whether a pointer of type T * may point to objects of type T *. - -2005-07-26 DJ Delorie - - * configure: Regenerate. - -2005-07-26 Dale Johannesen - - * postreload-gcse.c (alloc_mem): Start CUID numbering at 1. - -2005-07-26 Mark Mitchell - - * doc/install.texi (--with-build-sysroot): Fix grammatical error. - Clarify use of "build" in name. - -2005-07-26 Aldy Hernandez - - * doc/extend.texi (Raw read/write Functions): New section. - * testsuite/gcc.target/frv/all-builtin-read8.c: New. - * testsuite/gcc.target/frv/all-builtin-read16.c: New. - * testsuite/gcc.target/frv/all-builtin-read32.c: New. - * testsuite/gcc.target/frv/all-builtin-read64.c: New. - * testsuite/gcc.target/frv/all-builtin-write8.c: New. - * testsuite/gcc.target/frv/all-builtin-write16.c: New. - * testsuite/gcc.target/frv/all-builtin-write32.c: New. - * testsuite/gcc.target/frv/all-builtin-write64.c: New. - * config/frv/frv.c: Add bdesc_loads global. - Add bdesc_stores global. - (frv_init_builtins): Add support for __builtin_{read/write}*. - (frv_volatile_memref): New. - (frv_expand_load_builtin): New. - (frv_expand_store_builtin): New. - * config/frv/frv.h (frv_builtins): Add FRV_BUILTIN_SCAN, - FRV_BUILTIN_READ8, FRV_BUILTIN_READ16, FRV_BUILTIN_READ32, - FRV_BUILTIN_READ64, FRV_BUILTIN_WRITE8, FRV_BUILTIN_WRITE16, - FRV_BUILTIN_WRITE32, FRV_BUILTIN_WRITE64. - * config/frv/frv.md (unspecs): Add UNSPEC_BUILTIN_LOAD, - UNSPEC_BUILTIN_STORE, UNSPEC_OPTIONAL_MEMBAR. - (builtin_read_): New. - (builtin_write_): New. - (builtin_write64): New. - (optional_membar_): New. - -2005-07-26 J"orn Rennecke - - * emit-rtl.c (gen_lowpart_common): Compare size of MODE in bits - (rather than units) against HOST_BITS_PER_WIDE_INT. - -2005-07-26 Kazu Hirata - - * ipa-pure-const.c, ipa-reference.c, ipa-reference.h, - ipa-type-escape.c, ipa-type-escape.h, ipa-utils.c, - ipa-utils.h, treestruct.def, config/crx/crx-protos.h, - config/crx/crx.c, config/crx/crx.h, config/crx/crx.md: Update - FSF address. - - * calls.c, fold-const.c, ipa-reference.c, ipa-type-escape.c, - tree-ssa-reassoc.c, tree-ssa-structalias.c, vec.h, - config/crx/crx.c, config/m32c/m32c.c, config/m32c/m32c.h: Fix - comment typos. - * doc/c-tree.texi, doc/tree-ssa.texi: Fix typos. - -2005-07-26 Richard Guenther - - PR tree-optimization/22486 - * fold-const.c (fold_unary): Fold away useless component - references of the form (T *)&T.x, if the address - doesn't change. - -2005-07-25 James E Wilson - - * dwarf2out.c (add_call_src_coords_attributes): New. - (gen_inlined_subroutine_die): Call it. - (maybe_emit_file, init_file_table): Add comments. - (prune_unused_types_walk_attribs): Pass DW_AT_call_file through - maybe_emit_file. - * tree-inline.c (remap_block): Copy BLOCK_SOURCE_LOCATION. - (expand_call_inline): Set BLOCK_SOURCE_LOCATION. - * tree.h (BLOCK_SOURCE_LOCATION): New. - (struct tree_block): New field locus. - -2005-07-26 Andreas Schwab - - PR rtl-optimization/23043 - * postreload-gcse.c (eliminate_partially_redundant_load): Fix typo - when allocating a struct unoccr. - -2005-07-25 Richard Henderson - - PR 22626 - * tree-complex.c (gate_no_optimization): True if errors. - * Makefile.in (tree-complex.o): Update dependencies. - -2005-07-25 Aldy Hernandez - - * config/frv/predicates.md (integer_register_operand): Use - GPR_AP_OR_PSEUDO_P. - -2005-07-25 Andrew Pinski - - PR tree-opt/22484 - * tree-ssa-ccp.c (fold_stmt_inplace): Strip useless type conversions - after fold. - * tree-ssa-propagate.c (set_rhs): Reject invalid conditional operands. - -2005-07-25 Andrew Pinski - - * tree-ssa-reassoc.c (reassociate_expr): Allow scaler floating point - types when flag_unsafe_math_optimizations is true. - -2005-07-25 Mark Mitchell - - * gcc.c (option_map): Add --sysroot. - (process_command): Handle --sysroot. - (display_help): Document it. - * doc/cppopts.tex (-isysroot): Document. - * doc/invoke.texi (--sysroot): Document. - * doc/install.texi (--with-build-sysroot): Document. - - * Makefile.in (inhibit_libc): New variable. - (INHIBIT_LIBC_CFLAGS): Likewise. - (LIBGCC2_CFLAGS): Include - $(INHIBIT_LIBC_CFLAGS). - (CRTSTUFF_CFLAGS): Include $(INHIBIT_LIBC_CFLAGS). - ($(T)crtbegin.o): Do not use @inhibit_libc@. - ($(T)crtend.o): Likewise. - ($(T)crtbeginS.o): Do not use @inhibit_libc@. - ($(T)crtendS.o): Likewise. - ($(T)crtbeginT.o): Do not use @inhibit_libc@. - ($(T)crtendT.o): Likewise. - (stmp-fixinc): Do not complain about missing headers if - inhibit_libc. - * configure.ac (inhibit_libc): Set it to true/false. - (--with-build-sysroot): New option. Use it to set - SYSTEM_HEADER_DIR. - * configure: Regenerated. - -2005-07-25 Manfred Hollstein - - * calls.c (store_one_arg): Fix unsigned comparison warning. - -2005-07-25 Serge Belyshev - - PR other/22337 - * ggc-zone.c (ggc_alloc_zone_stat): Do not use CHUNK_OVERHEAD. - (ggc_print_statistics): Initialize variable before use. - -2005-07-25 Richard Guenther - - * tree-dfa.c (mark_new_vars_to_rename): Protect against - calling with a PHI_NODE argument. - - * tree-flow-inline.h (overlap_subvar): Protect against - possible overflow. - -2005-07-25 Paolo Bonzini - - * aclocal.m4 (gcc_AC_CHECK_TOOL): Add /bin to default directory. - * configure: Regenerate. - -2005-07-25 Ira Rosen - - * expr.c (highest_pow2_factor): Make extern. - * tree-data-ref.c (ptr_decl_may_alias_p): New function. - (ptr_ptr_may_alias_p, may_alias_p, record_ptr_differ_p, - record_array_differ_p, array_ptr_differ_p): Likewise. - (base_object_differ_p): Rename (from array_base_name_differ_p). Support - additional cases. Call the above functions. - (base_addr_differ_p): Moved from tree-vect-analyze.c. Call - base_object_differ_p when there are two base objects. Otherwise, compare - base address and offset. Call may_alias_p. - (dump_data_reference): Use a correct field name. - (analyze_array): Make static. Initialize new data-ref fields. - (analyze_indirect_ref): New function. - (init_data_ref): Initialize new data-ref fields. - (strip_conversion): Moved from tree-vect-analyze.c. - (analyze_offset_expr, get_ptr_offset, address_analysis, - object_analysis): Likewise. - (analyze_offset): New function. - (create_data_ref): Likewise. - (initialize_data_dependence_relation): Call base_addr_differ_p. Compare - dimensions for ARRAY_REFs only. - (build_classic_dist_vector): Make static. - (access_functions_are_affine_or_constant_p): Call macro to get the - address of access functions. - (compute_all_dependences): Add new parameter - compute_self_and_read_read_dependences. Compute self and read-read - dependences if it is true. - (find_data_references_in_loop): Call create_data_ref. Initialize new - data-ref fields. - (compute_data_dependences_for_loop): Add new parameter - compute_self_and_read_read_dependences. Remove parameter nb_loops, - compute nb_loops. Call compute_all_dependences, - build_classic_dist_vector and build_classic_dir_vector with correct - parameters. - (analyze_all_data_dependences): Call compute_data_dependences_for_loop - with correct parameters. Compare dimensions for ARRAY_REFs only. - (free_data_refs): Call macro to free access functions. - * tree-data-ref.h (struct first_location_in_loop): New structure. Move - fields from stmt_vinfo. - (struct base_object_info): New structure. - (struct data_reference): Move fields to base_object_info. Add fields - first_location and object_info for above structures. Move fields from - stmt_info: memtag, ptr_info, subvars, misalignment. Add new field - aligned_to. Add macros to access the new fields. - Update functions declarations. - * tree-flow.h (is_aliased_with): Declare. - * tree-loop-linear.c (linear_transform_loops): Call - compute_data_dependences_for_loop with correct parameters. - * tree-ssa-alias.c (is_aliased_with): New function. - * tree-vect-analyze.c (vect_get_ptr_offset): Remove. - (vect_analyze_offset_expr, vect_base_addr_differ_p): Likewise. - (vect_analyze_data_ref_dependence): Get ddr. Remove call to - vect_base_addr_differ_p, compute_subscript_distance and - build_classic_dist_vector. Add printings. Check absolute value of - distance. - (vect_analyze_data_ref_dependences): Go through ddrs instead of - data-refs. - (vect_compute_data_ref_alignment): Get the fields of data-ref instead of - stmt. Check aligned_to. Check if the base is aligned. Remove conversion - to bytes. Add printing. - (vect_compute_data_refs_alignment): Go through loads and stores in one - loop. - (vect_enhance_data_refs_alignment, vect_analyze_data_refs_alignment, - vect_analyze_data_ref_access): Likewise. - (vect_analyze_pointer_ref_access): Remove. - (vect_address_analysis, vect_object_analysis): Likewise. - (vect_analyze_data_refs): Call compute_data_dependences_for_loop to find - and analyze data-refs in the loop. - * tree-vect-transform.c (vect_create_addr_base_for_vector_ref): Get the - fields of data-ref instead of stmt. Add init to the offset from the - base. - (vect_create_data_ref_ptr): Get the fields of data-ref instead of stmt. - (vect_update_init_of_dr): Likewise. - (vect_update_inits_of_drs): Go through loads and stores in one loop. - * tree-vectorizer.c (new_stmt_vec_info): Remove initialization of - removed fields. - (new_loop_vec_info): Initialize new fields. - (destroy_loop_vec_info): Free new fields. - (vect_strip_conversion): Remove. - * tree-vectorizer.h (enum verbosity_levels): Add new verbosity level. - (struct _loop_vec_info): Unify data_ref_writes and data_ref_reads into - datarefs. Add new field ddrs. - Add macros for the new fields access. - (struct _stmt_vec_info): Remove: base_address, initial_offset, step, - base_aligned_p, misalignment, memtag, ptr_info and subvars. - Remove their macros. - * tree.h (highest_pow2_factor): Declare. - -2005-07-25 Jakub Jelinek - - * calls.c (store_one_arg): Check for sibling call MEM arguments - from already clobbered incoming argument area. - -2005-07-24 Kaveh R. Ghazi - - * c-common.c (check_missing_format_attribute): New. - * c-common.h (check_missing_format_attribute): Likewise. - * c-typeck.c (convert_for_assignment): Use it. - -2005-07-24 Andreas Schwab - - * config/m68k/m68k.md ("extendqidi2"): When source is an address - register use a word move. Correct operand of ext.w in 68000 code. - -2005-07-23 Mark Mitchell - - * dwarf2out.c (gen_variable_die): Treat un-emitted COMDAT - variables as declarations, rather than definitions. - -2005-07-24 Ira Rosen - - PR tree-optimization/22526 - * tree-vectorizer.c (slpeel_tree_peel_loop_to_edge): Match the type - of the zero node. - -2005-07-24 Francois-Xavier Coudert - - * builtins.def: Add DEF_EXT_C99RES_BUILTIN to define builtins - that C99 reserve for future use. Use it to define clog10, - clog10f and clog10l. - -2005-07-23 Kaveh R. Ghazi - - * Makefile.in (STRICT2_WARN): Add -Wmissing-format-attribute. - * configure.ac: Check for -Wmissing-format-attribute. - - * configure: Regenerate. - -2005-07-23 Richard Henderson - - PR tree-optimization/22623 - * tree-complex.c (set_component_ssa_name): Use replace_ssa_name_symbol. - -2005-07-23 Giovanni Bajo - - PR target/22577 - * config/pa/pa.c (reloc_needed): Updated for VECs inside CONSTRUCTOR. - -2005-07-23 Kaveh R. Ghazi - - * Makefile.in (C_TREE_H): Update dependencies. - * c-tree.h: Include toplev.h. - * diagnostic.h (diagnostic_set_info): Add format attribute. - * rtl-error.c (diagnostic_for_asm): Likewise. - -2005-07-23 Chao-ying Fu - - * config/mips/mips-dsp.md: New file. - * config/mips/mips-modes.def (V4QI, V2HI, CCDSP): New modes. - * config/mips/mips.c (mips_function_type): Add types for DSP builtin - functions. - (mips_builtin_type): Add MIPS_BUILTIN_DIRECT_NO_TARGET and - MIPS_BUILTIN_BPOSGE32. - (mips_expand_builtin_direct): Add one parameter to indicate that - builtin functions need to return a value. - (mips_expand_builtin_bposge): New for expanding "bposge" builtin - functions. - (mips_regno_to_class): Add classes for 12 new DSP registers. - (mips_subword): Change to check four HI registers. - (mips_output_move): Output move to and from 6 new DSP accumulators. - (override_options): Make sure -mdsp and -mips16 are not used together. - Map 'A' to DSP_ACC_REGS and 'a' to ACC_REGS. Enable DSP accumulators - for machine modes. - (mips_conditional_register_usage): Disable 6 new DSP accumulators - when !TARGET_DSP. - (print_operand): Add 'q' for printing DSP accumulators. - (mips_cannot_change_mode_class): Check ACC_REGS. - (mips_secondary_reload_class): Check ACC_REGS. - (mips_vector_mode_supported_p): Enable V2HI and V4QI when TARGET_DSP. - (mips_register_move_cost): Check ACC_REGS. - (CODE_FOR_mips_addq_ph, CODE_FOR_mips_addu_qb, CODE_FOR_mips_subq_ph) - (CODE_FOR_mips_subu_qb): New code-aliasing macros. - (DIRECT_NO_TARGET_BUILTIN, BPOSGE_BUILTIN): New macros. - (dsp_bdesc): New array. - (bdesc_arrays): Add DSP builtin function table. - (mips_prepare_builtin_arg): Check predicate again after - copy_to_mode_reg. - (mips_expand_builtin): Add one more parameter to - mips_expand_builtin_direct. Expand MIPS_BUILTIN_DIRECT_NO_TARGET and - MIPS_BUILTIN_BPOSGE32. - (mips_init_builtins): Initialize new function types. - (mips_expand_builtin_direct): Check if builtin functions need to - return a value and pass operands properly. - (mips_expand_builtin_bposge): New function. - * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Add __mips_dsp. - (ASM_SPEC): Map -mdsp to -mdsp in GAS. - (FIRST_PSEUDO_REGISTER): Increase to 188. - (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS): - Update for 12 new DSP registers. - (DSP_ACC_REG_FIRST, DSP_ACC_REG_LAST, DSP_ACC_REG_NUM, AC1HI_REGNUM) - (AC1LO_REGNUM, AC2HI_REGNUM, AC2LO_REGNUM, AC3HI_REGNUM, AC3LO_REGNUM): - (DSP_ACC_REG_P, ACC_REG_P, ACC_HI_REG_P): New macros. - (reg_class): Add DSP_ACC_REGS and ACC_REGS. - (REG_CLASS_NAMES): Add names for DSP_ACC_REGS and ACC_REGS. - (REG_CLASS_CONTENTS): Update for DSP_ACC_REGS, ACC_REGS and ALL_REGS. - (REG_ALLOC_ORDER): Update for 12 new DSP registers. - (mips_char_to_class): Add 'A' for DSP_ACC_REGS and 'a' for ACC_REGS. - (UIMM6_OPERAND, IMM10_OPERAND): New macros. - (EXTRA_CONSTRAINT_Y): Add YA and YB extra constraints. - (REGISTER_NAMES): Add names for 12 new DSP registers. - * config/mips/mips.md: Include mips-dsp.md. - (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ, UNSPEC_SUBQ_S, UNSPEC_ADDSC) - (UNSPEC_ADDWC, UNSPEC_MODSUB, UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S) - (UNSPEC_PRECRQ_QB_PH, UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W) - (UNSPEC_PRECRQU_S_QB_PH, UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR) - (UNSPEC_PRECEQU_PH_QBL, UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA) - (UNSPEC_PRECEQU_PH_QBRA, UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR) - (UNSPEC_PRECEU_PH_QBLA, UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL) - (UNSPEC_SHLL_S, UNSPEC_SHRL_QB, UNSPEC_SHRA_PH, UNSPEC_SHRA_R) - (UNSPEC_MULEU_S_PH_QBL, UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH) - (UNSPEC_MULEQ_S_W_PHL, UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL) - (UNSPEC_DPAU_H_QBR, UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR) - (UNSPEC_DPAQ_S_W_PH, UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH) - (UNSPEC_DPAQ_SA_L_W, UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL) - (UNSPEC_MAQ_S_W_PHR, UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR) - (UNSPEC_BITREV, UNSPEC_INSV, UNSPEC_REPL_QB, UNSPEC_REPL_PH) - (UNSPEC_CMP_EQ, UNSPEC_CMP_LT, UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB) - (UNSPEC_CMPGU_LT_QB, UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH) - (UNSPEC_EXTR_W, UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H) - (UNSPEC_EXTP, UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP) - (UNSPEC_RDDSP): New constants. - (*movdi_32bit): Change 'x' to 'a' for ACC_REGS. - (*movsi_internal): Change 'x' to 'a' for ACC_REGS. Add an - A<-d alternative. - * config/mips/mips.opt (-mdsp): New option. - * config/mips/predicates.md (const_uimm6_operand, const_imm10_operand) - (reg_imm10_operand): New predicates. - * doc/extend.texi (MIPS DSP Built-in Functions): New section. - * doc/invoke.texi (-mdsp): Document new option. - -2005-07-22 DJ Delorie - - * c-objc-common.c (c_cannot_inline_tree_fn): Add warning control - to warning calls. - * tree-inline.c (inlinable_function_p): Likewise. - -2005-07-22 Mark Mitchell - - PR debug/21828 - * toplev.c (check_global_declarations): Do not mark undefined - variables as DECL_IGNORED_P. - * varasm.c (first_global_object_name): GTY it. - (weak_global_object_name): Likewise. - (notice_global_symbol): Use ggc_strdup, not xstrdup, when creating - a string to go into {weak,first}_global_object_name. - -2005-07-22 DJ Delorie - - * c-format.c (check_function_format): Change warning control - option from OPT_Wattribute to OPT_Wmissing_format_attribute. - -2005-07-22 Diego Novillo - - * tree-ssa-alias.c (count_ptr_derefs): Do not consider - &PTR->FLD a dereference of PTR. - * tree-ssa-structalias.c (update_alias_info): Consider &PTR->FLD - a potential dereference of PTR. - -2005-07-22 J"orn Rennecke - - PR rtl-optimization/20370 - * ifcvt.c (dead_or_predicable): Before calling propagate_block, - call allocate_reg_info if necessary. - - PR rtl-optimization/21848 - * calls.c (emit_library_call_value_1): For const functions, add - USEs of the stack slots to CALL_INSN_FUNCTION_USAGE. - - PR rtl-optimization/22445 - * cselib.c (target.h): Include. - (rtx_equal_for_cselib_p): Allow commutative matches. - (cselib_hash_rtx): Don't use MODE for CONST_INT hashing. - Remove MODE parameter. Changed all callers. - - PR rtl-optimization/22258 - * combine.c (likely_spilled_retval_1, likely_spilled_retval_p): - New functions. - (try_combine): Use likely_spilled_retval_p. - -2005-07-22 Paul Woegerer - - * config.gcc: Add crx-elf support. - - * doc/contrib.texi: Mention crx. - * doc/extend.texi: Document crx extensions. - * doc/install.texi: Document crx install. - * doc/invoke.texi: Document crx options. - * doc/md.texi: Document crx constraints. - - * config/crx/crx-protos.h: New file. - * config/crx/crx.c: New file. - * config/crx/crx.h: New file. - * config/crx/crx.md: New file. - * config/crx/crx.opt: New file. - * config/crx/t-crx: New file. - -2005-07-22 Manfred Hollstein - - * tree-ssa-structalias.c (merge_graph_nodes): Fix uninitialised - warnings. - (int_add_graph_edge): Likewise. - (collapse_nodes): Likewise. - (process_unification_queue): Likewise. - -2005-07-22 Richard Kenner - Laurent GUERBY - - PR tree-optimization/22336 - * function.c (record_block_change): Check for - cfun->ib_boundaries_block. - -2005-07-21 James A. Morrison - - * fold-const.c (fold_unary): Don't strip signed nops from ABS_EXPRs. - (tree_expr_nonnegative_p): Return try for TYPE_UNSIGNED. - -2005-07-21 DJ Delorie - - * toplev.c (warn_deprecated_use): Add warning control to warning - call. - * c-typeck.c (parser_build_binary_op): Likewise. - (c_finish_if_stmt): Likewise. - * c-common.c (check_function_sentinel): Likewise. - (check_nonnull_arg): Likewise. - -2005-07-21 Richard Henderson - - PR tree-opt/22504 - * tree-complex.c (complex_ssa_name_components): New. - (cvc_lookup): Allow entry not found. - (create_components): Remove. - (create_one_component_var, get_component_var): New. - (get_component_ssa_name, set_component_ssa_name): New. - (extract_component): Use get_component_ssa_name. - (update_complex_components): Use set_component_ssa_name. - (update_complex_components_on_edge): Likewise. - (update_phi_components): Create new PHI nodes directly, instead - of adding insns to edges. - (tree_lower_complex): Allocate and free complex_variable_components - and complex_ssa_name_components here. - -2005-07-20 Daniel Berlin - - * alias.c (nonoverlapping_component_refs_p): Use TYPE_MAIN_VARIANT, - revert to returning false. - -2005-07-21 Uros Bizjak - - PR target/21149 - * config/i386/i386.md (sse_movhlps): Fix vec_select values. - -2005-07-21 Uros Bizjak - - PR target/22576 - * config/i386/i386.md (cmpxf): Change operand constraints - to "nonmemory_operand". - -2005-07-21 Andrew Pinski - - * config/i386/i386.md (trap): Use "".word/t0x0b0f" instead of ud2. - -2005-07-21 Andrew Pinski - - PR middle-end/21180 - * fold-const.c (fold_build1): Add checksum for the operands. - (fold_build2): Likewise. - (fold_build3): Likewise. - -2005-07-21 Andrew Pinski - - PR middle-end/19055 - * fold-const.c (fold_binary): Transform "(X | Y) ^ X" to "Y & ~ X". - -2005-07-21 Paolo Bonzini - - * common.opt (-fforward-propagate): Committed by mistake, - removed. - -2005-07-21 Volker Reichelt - - * reg-stack.c: Fix comment typo(s). - * tree-ssa-operands.c: Likewise. - * tree-vectorizer: Likewise. - -2005-07-21 Nick Clifton - - * config/sh/symbian.c: Replace C++ style line comments with C - style line comments. - (symbian_add_attribute): Do not use a ? operator on the LHS of - an assignment. - (sh_symbian_handle_dll_attribute): Change the type of the - method vector to "VEC(tree,gc)*" and use vector accessor - macros to walk over the elements. - (symbian_export_vtable_and_rtti_p): Likewise. - (symbian_class_needs_attribute_p): Likewise. - -2005-07-21 Paolo Bonzini - - PR target/22085 - * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Do not - initialize targetm.resolve_overloaded_builtin here. - (altivec_expand_overloaded_builtin): Make it non-static. - * config/rs6000/rs6000-protos.h - (altivec_expand_overloaded_builtin): New prototype. - * config/rs6000/rs6000.h (REGISTER_TARGET_PRAGMAS): Initialize - targetm.resolve_overloaded_builtin here. - * config/rs6000/darwin.h (REGISTER_TARGET_PRAGMAS): Likewise. - -2005-07-21 Paolo Bonzini - Zdenek Dvorak - - PR tree-optimization/19210 - * common.opt (Wunsafe-loop-optimizations, funsafe-loop-optimizations): - New. - * Makefile.in (tree-ssa-loop-niter.o): Depend intl.o. - * loop-iv.c (get_simple_loop_desc): If -funsafe-loop-optimizations, - rely on unproven assumptions. - * predict.c (predict_loops): Adjust call to number_of_iterations_exit. - * tree-flow.h (number_of_iterations_exit): Add final parameter. - * tree-scalar-evolution.c (number_of_iterations_in_loop): Adjust call - to number_of_iterations_exit. - * tree-ssa-loop-ivcanon.c (empty_loop_p): Likewise. - * tree-ssa-loop-ivopts.c (niter_for_exit): Likewise. - * tree-ssa-loop-niter.c (find_loop_niter, - estimate_numbers_of_iterations_loop): Likewise. - (number_of_iterations_exit): Honor the new options. - * doc/invoke.texi (Wunsafe-loop-optimizations, - funsafe-loop-optimizations): Document them. - -2005-07-21 Richard Sandiford - - PR rtl-optimization/22167 - * gcse.c (hoist_code): Fix hoist_exprs[] check. - -2005-07-20 Adam Nemet - - * config/rs6000/lynx.h: Mark __do_global_ctors_aux and - __do_global_dtors_aux longcall. - -2005-07-20 Kazu Hirata - - * gensupport.c (old_preds): Don't reference PREDICATE_CODES. - (old_special_pred_table): Don't reference - SPECIAL_MODE_PREDICATES. - * system.h (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): Poison. - * config/arc/arc.h: Don't mention PREDICATE_CODES. - * config/sh/predicates.h: Don't mention - SPECIAL_MODE_PREDICATES. - * doc/tm.texi (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): - Remove. - -2005-07-20 DJ Delorie - - * config.gcc: Add m32c-elf support. - - * doc/contrib.texi: Mention m32c. - * doc/extend.texi: Document m32c extensions. - * doc/install.texi: Mention m32c. - * doc/invoke.texi: Document m32c options. - * doc/md.texi: Document m32c constraints. - - * config/m32c/addsub.md: New file. - * config/m32c/bitops.md: New file. - * config/m32c/cond.md: New file. - * config/m32c/jump.md: New file. - * config/m32c/m32c-lib1.S: New file. - * config/m32c/m32c-lib2.c: New file. - * config/m32c/m32c-modes.def: New file. - * config/m32c/m32c-pragma.c: New file. - * config/m32c/m32c-protos.h: New file. - * config/m32c/m32c.abi: New file. - * config/m32c/m32c.c: New file. - * config/m32c/m32c.h: New file. - * config/m32c/m32c.md: New file. - * config/m32c/m32c.opt: New file. - * config/m32c/minmax.md: New file. - * config/m32c/mov.md: New file. - * config/m32c/muldiv.md: New file. - * config/m32c/predicates.md: New file. - * config/m32c/prologue.md: New file. - * config/m32c/shift.md: New file. - * config/m32c/t-m32c: New file. - -2005-07-20 Kaz Kojima - - * config/sh/sh.md (UNSPEC_SP_SET, UNSPEC_SP_TEST): New constants. - (stack_protect_set, stack_protect_test): New expanders. - (stack_protect_set_si, stack_protect_set_si_media, - stack_protect_set_di_media, stack_protect_test_si, - stack_protect_test_si_media, stack_protect_test_di_media): - New insns. - -2005-07-20 Andrew Pinski - - * c-typeck.c (output_init_element): Don't copy the INTEGER_CST. - -2005-07-20 James A. Morrison - - * tree.h (tree_expr_nonzero_p): Export. - * fold-const.c (tree_expr_nonzero_p): Likewise. - Return true for CALL_EXPRs that are alloca calls. - (fold_binary): Use omit_one_operand when checking EQ_EXPRs or NE_EXPRs - against zero. - * tree-flow.h (expr_computes_nonzero): Remove. - * tree-vrp.c (expr_computes_nonzero): Remove. - (vrp_expr_computes_nonzero): Use tree_expr_nonzero_p. - (extract_range_from_unary_expr): Likewise. - * tree-ssa-dom.c (record_equivalences_from_stmt): Use - tree_expr_nonzero_p. - -2005-07-20 Bernd Schmidt - - * config/bfin/bfin-protos.h (legitimize_pic_address): Don't declare. - * config/bfin/bfin.c (legitimize_pic_address): Now static. Take - extra arg "picreg" and use it instead of pic_offset_table_rtx. - All callers changed. - (frame_related_constant_load): New arg "related" which controls - setting of RTX_FRAME_RELATED_P. All callers changed. - (bfin_load_pic_reg): New function, broken out of bfin_expand_prologue. - (bfin_expand_prologue): Add stack limit checking. - * config/bfin/bfin.md (trapifcc): New pattern. - - * config/bfin/bfin.c: Include "langhooks.h". - (def_builtin): Go through lang_hooks to call builtin_function. - - * config/bfin/bfin-protos.h (bfin_longcall_p): Declare. - * config/bfin/predicates.md (symbol_ref_operand): New. - (call_insn_operand): Delete. All callers changed to use - register_no_elim_operand. - * config/bfin/bfin.c (init_cumulative_args): Initialize the new - call_cookie field. - (function_arg): Use it to generate the call's operand 2. - (bfin_longcall_p): New function. - (bfin_expand_call): Extra arg "cookie". All callers and declaration - changed. Emit extra USE in the pattern. Use bfin_longcall_p to - determine if the address needs to be in a REG. - (bfin_handle_longcall_attribute): New function. - (bfin_attribute_table): Add "longcall" and "shortcall". - * config/bfin/bfin.h (CALL_NORMAL, CALL_LONG, CALL_SHORT): New macros. - (CUMULATIVE_ARGS): New member call_cookie. - (PREDICATE_CODES): Add symbol_ref_operand. - * config/bfin/bfin.md (call, call_value, sibcall, sibcall_value): Add - extra USE to the pattern. - (call_symbol, sibcall_symbol, call_value_symbol, sibcall_value_symbol): - New patterns, split off call_insn, sibcall_insn, call_value_insn and - sibcall_value_insn; now the new patterns handle direct calls and the - old ones indirect calls. - * doc/extend.texi: Mention Blackfin in longcall/shortcall docs. - -2005-07-20 Zdenek Dvorak - - * doc/trouble.texi: Update section on handling of empty loops. - -2005-07-20 Kazu Hirata - - * config.gcc: Remove support for sparc-*-openbsd*, - i860-*-sysv4*, ip2k-*-elf, ns32k-*-netbsdelf*, - ns32k-*-netbsd*. - * config.host: Remove support for i860-*-sysv4* as a host. - * config/i860/*, config/ip2k/*, config/ns32k/*, - config/sparc/openbsd.h, config/sparc/t-openbsd: Remove. - * doc/install.texi, doc/invoke.texi, doc/md.texi: Don't - mention obsolete ports. - -2005-07-20 Kaz Kojima - - * config/sh/sh.c (regno_reg_class): Add GENERAL_REGS for - soft frame pointer. - (sh_expand_prologue): Use hard_frame_pointer_rtx instead - of frame_pointer_rtx. - (sh_expand_epilogue): Likewise. - (sh_set_return_address): Likewise. - (initial_elimination_offset): Use HARD_FRAME_POINTER_REGNUM - instead of FRAME_POINTER_REGNUM if needed. Add elimination - offsets from FRAME_POINTER_REGNUM. - * config/sh/sh.h (SH_REGISTER_NAMES_INITIALIZER): Add sfp. - (sh_register_names): Add initializer for sfp. - (GENERAL_OR_AP_REGISTER_P): Permit FRAME_POINTER_REGNUM. - (VALID_REGISTER_P): Likewise. - (FIRST_PSEUDO_REGISTER): Update. - (DWARF_FRAME_REGISTERS): Define. - (FIXED_REGISTERS, CALL_USED_REGISTERS): Add sfp. - (HARD_FRAME_POINTER_REGNUM): Define. - (FRAME_POINTER_REGNUM): Redefine. - (ELIMINABLE_REGS): Never eliminate to FRAME_POINTER_REGNUM, - but HARD_FRAME_POINTER_REGNUM instead. Add eliminations - from FRAME_POINTER_REGNUM. - (CAN_ELIMINATE): Use HARD_FRAME_POINTER_REGNUM instead of - FRAME_POINTER_REGNUM. - (REG_CLASS_CONTENTS): Add sfp. - (REG_ALLOC_ORDER): Likewise. - (FRAME_GROWS_DOWNWARD): Set to 1. Update comment. - (GO_IF_LEGITIMATE_ADDRESS): Use hard_frame_pointer_rtx instead - of frame_pointer_rtx. - (LEGITIMIZE_RELOAD_ADDRESS): Likewise. - -2005-07-19 James A. Morrison - - * fold-const.c (tree_expr_nonnegative_p): Only return true for - ABS_EXPR when flag_wrapv is false because of INT_MIN. - (tree_expr_nonzero_p): Always call tree_expr_nonzero_p on the argument - of an ABS_EXPR. - (fold_unary): Always fold ABS_EXPR> into - ABS_EXPR. - -2005-07-20 Giovanni Bajo - - Make CONSTRUCTOR use VEC to store initializers. - * c-common.c (complete_array_type): Update to cope with VEC in - CONSTRUCTOR_ELTS. - * c-pretty-print.c (pp_c_initializer_list): Use pp_c_constructor_elts. - (pp_c_constructor_elts): New function. - * c-pretty-print.h (pp_c_constructor_elts): Declare. - * c-typeck.c (build_function_call, build_c_cast, digest_init, - struct constructor_stack, struct initializer_stack, - constructor_elements, push_init_level, pop_init_level, - add_pending_init, find_init_member, output_init_element): Update to - cope with VEC in CONSTRUCTOR_ELTS. - * coverage.c (build_fn_info_value, build_ctr_info_value, - build_gcov_info): Likewise. - * expr.c (categorize_ctor_elements_1, store_constructor, - expand_expr_real_1): Likewise. - * fold-const.c (fold_ternary): Likewise. - * gimplify.c (gimplify_init_ctor_preeval, zero_sized_field_decl, - gimplify_init_constructor, gimplify_expr): Likewise. - * tree-dump.c (dequeue_and_dump): Likewise. - * tree-inline.c (copy_tree_r): Add code to duplicate a CONSTRUCTOR - node. - * tree-pretty-print.c (dump_generic_node): Update to cope with VEC in - CONSTRUCTOR_ELTS. - * tree-sra.c (generate_element_init_1): Likewise. - * tree-ssa-ccp.c (fold_const_aggregate_ref): Likewise. - * tree-ssa-operands.c (get_expr_operands): Likewise. - * tree-vect-generic.c (expand_vector_piecewise): Likewise. - * tree-vect-transform.c (vect_get_vec_def_for_operand): - (get_initial_def_for_reduction): Likewise. - * tree-vn.c (set_value_handle, get_value_handle): CONSTURCTOR uses - value handle in annotations. - * tree.c (tree_node_kind, tree_code_size, make_node_stat, - tree_node_structure): Add support for constr_kind. - (build_vector_from_ctor, build_constructor_single, - build_constructor_from_list): New functions. - (build_constructor): Update to take a VEC instead of a TREE_LIST. - (simple_cst_equal, iterative_hash_expr, initializer_zerop, walk_tree): - Update to cope with VEC in CONSTRUCTOR_ELTS. - * tree.def (CONSTRUCTOR): Make it a tcc_exceptional node. - * tree.h (FOR_EACH_CONSTRUCTOR_VALUE, FOR_EACH_CONSTRUCTOR_ELT, - CONSTRUCTOR_APPEND_ELT): New macros. - (struct constructor_elt, struct tree_constructor): New data types. - (union tree_node): Add tree_constructor field. - * treestruct.def: Define TS_CONSTRUCTOR. - * varasm.c (const_hash_1, compare_constant, copy_constant, - compute_reloc_for_constant, output_addressed_constants, - initializer_constant_valid_p, output_constant, - array_size_for_constructor, output_constructor): Update to cope with - VEC in CONSTRUCTOR_ELTS. - * vec.h (VEC_empty, VEC_copy): New macros. - -2005-07-19 Devang Patel - - * dbxout.c (dbxout_type): Check Objective-C++ lang. - -2005-07-19 Richard Henderson - - PR tree-opt/22278 - * gimplify.c (gimplify_expr): Use main variant type for the temp - destination for a discarded volatile read. - * tree-ssa.c (tree_ssa_useless_type_conversion_1): Don't elide - casts between non-void types that change volatility. - -2005-07-15 DJ Delorie - - * toplev.h: Add comment about the first parameter for warning(). - * errors.h: Likewise. - - * c.opt (Wpragmas): New. - * doc/invoke.texi: Document it. - - * function.c (do_warn_unused_parameter): Add warning control to - warning call. - * c-decl.c (warn_if_shadowing): Likewise. - * c-lex.c (cb_def_pragma): Likewise. - * c-pragma.c (GCC_BAD, GCC_BAD2): Likewise. - (pop_alignment): Likewise. - (handle_pragma_pack): Likewise. - (apply_pragma_weak): Likewise. - (handle_pragma_weak): Likewise. - (handle_pragma_redefine_extname): Likewise. - (add_to_renaming_pragma_list): Likewise. - (handle_pragma_extern_prefix): Likewise. - (maybe_apply_renaming_pragma): Likewise. - (handle_pragma_visibility): Likewise. - - * config/c4x/c4x-c.c (BAD): Likewise. - (c4x_parse_pragma): Likewise. - * config/ia64/ia64-c.c (ia64_hpux_handle_builtin_pragma): Likewise. - * config/rs6000/rs6000-c.c (SYNTAX_ERROR): Likewise. - (rs6000_pragma_longcall): Likewise. - * config/v850/v850-c.c (pop_data_area): Likewise. - (ghs_pragma_section): Likewise. - (ghs_pragma_section): Likewise. - (ghs_pragma_interrupt): Likewise. - (ghs_pragma_starttda): Likewise. - (ghs_pragma_startsda): Likewise. - (ghs_pragma_startzda): Likewise. - (ghs_pragma_endtda): Likewise. - (ghs_pragma_endsda): Likewise. - (ghs_pragma_endzda): Likewise. - -2005-07-19 Danny Berlin - Kenneth Zadeck - - * Makefile.in: Removed tree-promote-statics.c - * tree-promote-statics.c: Removed. - * common.opt: Removed flag-promote-statics. - * opts.c: Ditto. - * passes.c: Removed tree-promote-statics pass. - * tree-pass.h: Ditto. - * timevar.def: Removed TV_PROMOTE_STATICS. - - -2005-07-19 Gerald Pfeifer - - * config.gcc: Add support for *-*-freebsd7, *-*-freebsd8, - and *-*-freebsd9. - * config/freebsd-spec.h (FBSD_TARGET_OS_CPP_BUILTINS): Ditto. - -2005-07-19 Kaveh R. Ghazi - - PR c/22476 - * c-common.c (check_function_arguments): Call - 'check_function_format' if either -Wformat or - -Wmissing-format-attribute are specified. - * c-format.c (check_function_format): Check -Wformat before - calling 'check_format_info'. - * c-opts.c (c_common_post_options): Don't warn for - -Wmissing-format-attribute without -Wformat. - * c-typeck.c (convert_for_assignment): Detect additional cases for - -Wmissing-format-attribute. - * doc/invoke.texi (-Wmissing-format-attribute): Document new - behavior. - -2005-07-19 Richard Guenther - - * config/i386/i386.md (lrint2): Use temporary - instead of clobbering non-existent memory. - -2005-07-19 Nick Clifton - - * config/avr/avr.c (legitimate_address_p): Fix debugging print - statement to avoid displaying ASCII control characters. - -2005-07-19 Ben Elliston - - * bt-load.c (link_btr_uses): Fix uninitialised warnings. - * cfganal.c (find_edge_index): Ditto. - * combine.c (combine_instructions): Ditto. - * ddg.c (create_scc): Ditto. - (find_successors): Ditto. - (find_predecessors): Ditto. - (find_nodes_on_paths): Ditto. - (longest_simple_path): Ditto. - * flow.c (update_life_info): Ditto. - (count_or_remove_death_notes): Ditto. - (clear_log_links): Ditto. - * modulo-sched.c (generate_reg_moves): Ditto. - (find_max_asap): Ditto. - (find_max_hv_min_mob): Ditto. - (find_max_dv_min_mob): Ditto. - * sbitmap.c (sbitmap_first_set_bit): Ditto. - * sched-rgn.c (extract_edgelst): Ditto. - * tree-into-ssa.c (prepare_names_to_update): Ditto. - (dump_update_ssa): Ditto. - (ssa_names_to_replace) Ditto. - (switch_virtuals_to_full_rewrite): Ditto. - (update_ssa): Ditto. - * tree-vect-transform.c (vect_create_epilog_for_reduction): Ditto. - -2005-07-18 Daniel Berlin - - Fix PR tree-optimization/22483 - - * tree-complex.c (create_components): Use - safe_referenced_var_iterator and FOR_EACH_REFERENCED_VAR_SAFE. - * tree-flow-inline.h (fill_referenced_var_vec): New function. - * tree-flow.h (safe_referenced_var_iterator): New structure. - (FOR_EACH_REFERENCED_VAR_SAFE): New macro. - * tree-ssa-alias.c (setup_pointers_and_addressables): Use - safe_referenced_var iterator. - (add_type_alias): Ditto. - -2005-07-19 Steven Bosscher - - * loop-init.c (rest_of_handle_loop2): Remove. - (rtl_loop_init, rtl_loop_done, rtl_move_loop_invariants, - rtl_unswitch, rtl_unroll_and_peel_loops, rtl_doloop): New functions. - (pass_rtl_loop_init, pass_rtl_loop_done, - pass_rtl_move_loop_invariants, pass_rtl_unswitch, - pass_rtl_unroll_and_peel_loops, pass_rtl_doloop): New passes. - * tree-ssa-loop.c (pass_loop, pass_loop_init, pass_loop_done, - pass_unswitch): Rename to pass_tree_loop, pass_tree_loop_init, - pass_tree_loop_done, and pass_tree_unswitch. - (gate_loop): Rename to gate_tree_loop. - * passes.c (init_optimization_passes): Update for renamed tree - loop passes. Add the new loop2 passes as subpasses of loop2. - * tree-pass.h: Add extern declarations for the new loop2 subpasses. - Update for the renamed tree loop passes. - -2005-07-18 Ian Lance Taylor - - PR middle-end/22057 - * tree-cfgcleanup.c (cleanup_tree_cfg): Only remove forwarder - blocks when optimizing. - -2005-07-18 Steve Ellcey - - * common.opt (frename-registers): Initialize to 2. - (fweb): Ditto. - (fgcse-after-reload): Ditto. - * toplev.c (AUTODETECT_FLAG_VAR_TRACKING): Rename to AUTODETECT_VALUE. - (process_options): Only change flag_web, flag_rename_registers, - and flag_rerun_cse_after_loop if not explicitly set by user. - -2005-07-18 Jan Beulich - - * config/i386/i386.c (ix86_expand_branch, ix86_expand_setcc, - ix86_expand_carry_flag_compare, ix86_expand_int_movcc): Handle TImode - in 64-bit mode the same as DImode in 32-bit mode. - (ix86_expand_ashl_const, ix86_split_ashl, ix86_split_ashr, - ix86_split_lshr): Likewise. Rename to no longer refer to a specific - mode. Add new mode parameter. - * config/i386/i386.h (CONST_OK_FOR_LETTER_P): Describe and handle 'O'. - * config/i386/i386.md (cmpti, addti3, subti3, negti2, ashlti3, ashrti3, - x86_64_shift_adj): New expanders. - (*addti3_1, *subti3_1, *negti2_1, ashlti3_1, *ashlti3_2, ashrti3_1, - *ashrti3_2, lshrti3_1, *lshrti3_2, x86_64_shld, x86_64_shrd): New - insns. - Respective new splitters. Use renamed shift splitter helpers in 32-bit - DImode shift splitters. - * config/i386/i386-protos.h (ix86_split_ashl, ix86_split_ashr, - ix86_split_lshr): Renamed from ix86_split_[al]sh[rl]di. Added new - mode parameter. - -2005-07-18 Jan Beulich - - * i386.md (movdi_extzv_1): New. - (zero_extendhidi2): Combine alternatives and never force use of - REX64 prefix. - (zero_extendqidi2): Likewise. Don't restrict input selection. - -2005-07-17 Daniel Berlin - - Fix PR tree-optimization/22531 - * tree-ssa-pre.c (do_eustores): Make sure LHS is a decl for the - moment. - -2005-07-17 Daniel Berlin - - * tree-promote-statics.c (pass_promote_statics): Change dump file - name. - -2005-07-17 Daniel Berlin - - * tree-optimize.c (init_tree_optimization_passes): Add - pass_eliminate_useless_stores pass. - * tree-pass.h (pass_eliminate_useless_stores): New pass structure. - * tree-ssa-pre.c (is_copy_stmt): New function. - (follow_copies_till_vuse): Ditto. - (do_eustores): Ditto. - (gate_eustores): Ditto. - -2005-07-16 Richard Henderson - - * gcc.c (MFWRAP_SPEC): Don't wrap pthread_join or pthread_exit. - -2005-07-16 Danny Berlin - Kenneth Zadeck - - * Makefile.in: Added rules for ipa-pure-const.c, ipa-reference.c, - ipa-reference.h, ipa-utils.c, ipa-utils.h, ipa-type-escape.c, - ipa-type-escape.h, tree-promote-statics.c - * ipa-pure-const.c, ipa-reference.c, ipa-reference.h, ipa-utils.c, - ipa-utils.h, ipa-type-escape.c, ipa-type-escape.h, - tree-promote-statics.c: new files. - * alias.c: (nonlocal_mentioned_p_1, nonlocal_mentioned_p, - nonlocal_referenced_p_1, nonlocal_referenced_p, nonlocal_set_p_1, - int nonlocal_set_p, mark_constant_function): Deleted. - (rest_of_handle_cfg): Removed call to mark_constant_function. - (nonoverlapping_component_refs_p): Added calls to support - type based aliasing. - * tree-ssa-alias.c (may_alias_p, - compute_flow_insensitive_aliasing): Ditto. - * calls.c (flags_from_decl_or_type): Removed reference to - cgraph_rtl_info. - * c-typeck.c (convert_arguments): Make builtins tolerant of having - too many arguments. This is necessary for Spec 2000. - * cgraph.h (const_function, pure_function): Removed. - * common.opt: Added "fipa-pure-const", "fipa-reference", - "fipa-type-escape", and "ftree-promote-static". - * opts.c: Ditto. - * passes.c: Added ipa and tree-promote-statics passes. - * timevar.def: Added TV_IPA_PURE_CONST, TV_IPA_REFERENCE, - TV_IPA_TYPE_ESCAPE, and TV_PROMOTE_STATICS. - * tree-dfa.c (referenced_var_lookup_if_exists): New function. - * tree-flow.h: Added exposed sra calls and addition of - reference_vars_info field for FUNCTION_DECLS. - * tree-pass.h: Added passes. - * tree-sra.c: (sra_init_cache): New function. - (sra_insert_before, sra_insert_after) Made public. - (type_can_be_decomposed_p): Renamed from type_can_be_decomposed_p - and made public. - * tree-ssa-alias.c (dump_alias_stats): Added stats for type based - aliasing. (may_alias_p): Added code to use type escape analysis to - improve alias sets. - * tree-ssa-operands.c (add_call_clobber_ops): Added parameter and - code to prune clobbers of static variables based on information - produced in ipa-reference pass. Changed call clobbering so that - statics are not marked as clobbered if the call does not clobber - them. - -2005-07-16 Daniel Berlin - - * tree-ssa-structalias.c (need_to_solve): Need to check for preds, - too. - -2005-07-16 Eric Botcazou - - * doc/install.texi (*-*-solaris2*): Document recommended version - of GNU binutils and mention GNU linker problem on Solaris 10. - -2005-07-16 Joseph S. Myers - - PR c/22421 - * c-decl.c (c_build_bitfield_integer_type): New function. - (finish_struct): Call it. - * c-pretty-print.c (pp_c_type_specifier): Handle bit-field types. - -2005-07-16 Kaveh R. Ghazi - - * c-typeck.c (digest_init): Call 'convert_for_assignment' - before returning. - -2005-07-16 Jan Hubicka - - * cfg.c (update_bb_profile_for_threading): Fix profile updating. - (scale_bbs_frequencies_int): Watch roundoff errors. - * predict.c (return_prediction): Initialize return_stmt. - -2005-07-16 Jan Hubicka - - * profile.c (rest_of_handle_branch_prob): Fix handling of estimation - after RTL profiling. - -2005-07-11 Andrew Pinski - - PR middle-end/22398 - * fold-const.c (build_range_check): Convert high/low to etype - if we are only comparing against exp. - -2005-07-13 Daniel Berlin - - Fix PR tree-optimization/22376 - * tree-ssa-structalias.c (build_constraint_graph): We really meant - special var here. - (need_to_solve): New function. - (compute_points_to_sets): Use it. - -2005-07-15 Jan Hubicka - - * cfg.c (update_bb_profile_for_threading): More diagnostic. - * tree-ssa-threadupdate.c (redirect_edges): Update profile of dup_block. - -2005-07-15 Richard Guenther - - * c-common.c (handle_flatten_attribute): New function. - Add flatten function attribute. - * doc/extend.texi: Document flatten function attribute. - * Makefile.in (ipa-inline.o): Depend on hashtab.h. - * ipa-inline.c (cgraph_find_cycles, cgraph_flatten_node): - New functions. - (cgraph_decide_inlining): Handle functions with flatten - attribute. - -2005-07-14 David Edelsohn - - * config/rs6000/rs6000.md (UNSPEC_SYNC, UNSPEC_LWSYNC, - UNSPEC_ISYNC, UNSPEC_SYNC_OP, UNSPEC_ATOMIC, UNSPEC_CMPXCHG, - UNSPEC_XCHG, UNSPEC_AND): New. - (UNSPECV_ATOMIC, UNSPECV_SYNC, UNSPECV_SYNC_OP, UNSPECV_CMPXCHG, - UNSPECV_LWSYNC, UNSPECV_ISYNC): Delete. - * config/rs6000/sync.md (FETCHOP): New code macro. - (fetchop_name, fetchop_pred, fetchopsi_constr, fetchopdi_constr): - New code attrs. - (memory_barrier, sync_internal): Use unspec instead of unspec_volatile. - (sync_compare_and_swap): Same. - (sync_lock_test_and_set): Same. - (sync_, sync_nand): Only use rs6000_emit_sync - for QImode and HImode, and not PPC405. - (sync_old_, sync_old_nand): Same. - (sync_new_, sync_new_nand): Same. - (sync_{si,di}_internal): New. - (sync_nand{si,di}_internal): New. - (sync_old_{si,di}_internal): New. - (sync_old_nand{si,di}_internal): New - (sync_new_{si,di}_internal): New. - (sync_new_nand{si,di}_internal): New. - (atomic_and{si,di}): New. - (sync_new_nand{si,di}_internal): New. - (atomic_and{si,di}): New. - (sync_add_internal): Delete. - (sync_addshort_internal): Use unspec instead of unspec_volatile. - (sync_sub_internal): Delte. - (sync_subshort_internal): New. - (sync_andsi_internal): Use unspec instead of unspec_volatile. - (sync_anddi_internal): Delete. - (sync_boolsi_internal): Use unspec instead of unspec_volatile. - (sync_booldi_internal): Delete. - (sync_boolc_internal): Delete. - (sync_boolcshort_internal): Use unspec instead of unspec_volatile. - (sync_boolc_internal2): Delete. - (sync_boolcc_internal): Delete. - (isync, lwsync): Use unspec instead of unspec_volatile. - * config/rs6000/rs6000.c (rs6000_emit_sync): Implement MINUS. - Revert UNSPEC_VOLATILE. - (rs6000_split_atomic_op): New. - * config/rs6000/rs6000-protos.h (rs6000_split_atomic_op): Declare. - -2005-07-14 Eric Christopher - - * config/mips/mips.c (mips_canonicalize_comparison): Cast - argument of trunc_int_for_mode to unsigned HOST_WIDE_INT. - -2005-07-14 Eric Christopher - - * config/s390/t-tpf (SHLIB_MAPFILES): Remove. - -2005-07-14 Steven Bosscher - - PR tree-optimization/22230 - * tree-vrp.c (extract_range_from_binary_expr): Fix logics thinko in - the computation of the four cross productions for "range op range". - -2005-07-14 Alexandre Oliva - Ulrich Weigand - - PR target/20126 - * loop.c (loop_givs_rescan): Do not ICE if unable to reduce an IV - in some insn. - -2005-07-14 Ulrich Weigand - - * config/s390/s390.h (TARGET_TPF_PROFILING): Add default definition. - -2005-07-14 Steve Ellcey - - * config/ia64/ia64.c (ia64_output_dwarf_dtprel): Support ILP32 mode. - -2005-07-14 Richard Guenther - - PR middle-end/22347 - * config/i386/i386-protos.h (ix86_function_value): Change - prototype to match new target hook. - * config/i386/i386.c (ix86_value_regno): Change prototype - to take extra type argument. - (TARGET_FUNCTION_VALUE): Define. - (ix86_function_ok_for_sibcall): Pass extra argument to - ix86_value_regno, check return slot rtx for exact match. - (ix86_function_value): Take extra parameter. Dispatch to - ix86_value_regno with fndecl/fntype as provided. - (ix86_value_regno): Handle extra type argument. - * config/i386/i386.h (FUNCTION_VALUE): No longer define. - - * testsuite/gcc.target/i386/sseregparm-3.c: New testcase. - * testsuite/gcc.target/i386/sseregparm-4.c: New testcase. - * testsuite/gcc.target/i386/sseregparm-5.c: New testcase. - * testsuite/gcc.target/i386/sseregparm-6.c: New testcase. - * testsuite/gcc.target/i386/sseregparm-7.c: New testcase. - -2005-07-14 Richard Guenther - - * Makefile.in (explow.o, reg-stack.o): Depend on target.h. - * calls.c (expand_call): Pass fntype to hard_function_value. - (emit_library_call_value_1): Likewise. - * explow.c: Include target.h. - (hard_function_value): Take extra argument, the fntype. - Use new target hook for function_value. - * expr.h (hard_function_value): Change prototype. - * function.c (aggregate_value_p): Pass 0 as fntype to - hard_function_value. - (assign_parms): Use new target hook for function_value. - Pass 0 as fntype to hard_function_value. - (expand_function_end): Likewise. - * reg-stack.c: Include target.h. - (stack_result): Use new target hook for function_value. - * target-def.h: New target hook function_value. - * target.h: Likewise. - * targhooks.c (default_function_value): New function. - * targhooks.h (default_function_value): Declare. - -2005-07-13 Ian Lance Taylor - - * config/mips/mips.h (CLZ_DEFINED_VALUE_AT_ZERO): Define. - -2005-07-14 Jan Hubicka - - * tree-dfa.c (dump_variable): Use default_def function. - * tree-ssa-alias.c (dump_points_to_info): Likewise. - * tree-ssa.c (verify_use): Likewise. - * tree-ssanames.c (release_ssa_name): Likewise. - * tree-tailcall.c (eliminate_tail_call): Likewise. - (tree_optimize_tail_calls_1): Likewise. - * tree-vrp.c (get_value_range): Likewise. - -2005-07-14 Ben Elliston - - * gcc.c (main): Compare language[0] with '*' when iterating over - the infiles. - -2005-07-13 Adrian Straetling - - * config/s390/s390.c: (s390_cc_modes_compatible): Move before - "s390_emit_compare". Add handling of CCZ1mode. - (s390_canonicalize_comparison): Simplify cascaded EQ, NE. - (390_emit_compare): Use "s390_cc_modes_compatible" for mode - checking. - (s390_branch_condition_mask): Add CCZ1mode handling. - * config/s390/s390.md: ("seq", "*seq"): New pattern. - ("sync_compare_and_swap_cc", "*sync_compare_and_swap_cc"): - Use CCZ1mode instead of CCZmode. - * config/s390/s390-modes.def: Add CCZ1mode. Comment new mode. - -2005-07-13 Adrian Straetling - - * config/s390/s390.md: ("cmpstrsi", "*cmpstr"): New - pattern. - ("strlen", "*strlen"): Use hard reg 0 in SImode. - -2005-07-13 Eric Christopher - - * config/mips/mips.c (mips_canonicalize_comparison): New. - (mips_emit_int_relational): Use. - -2005-07-13 Eric Christopher - - * config.gcc (s390x-ibm-tpf*): Add extra_options. Remove - static extra parts. - * config/s390/s390.md: Include tpf.md. Move tpf specific - patterns... - * config/s390/tpf.md: To here. - * config/s390/s390.opt: Move tpf specific options... - * config/s390/tpf.opt: to here. Add mmain option. - * config/s390/tpf-unwind.h: Remove unnecessary defines. - * config/s390/tpf.h: Rewrite. - -2005-07-13 H.J. Lu - - * doc/tm.texi: Remove @xref{Cross-profiling}. - -2005-07-13 Jeff Law - - * fold-const.c (fold_binary): When comparing two simple ADDR_EXPR - expressions, test their _DECL operands for pointer equality rather - than using operand_equal_p. - -2005-07-13 H.J. Lu - - * config/alpha/linux.h (TARGET_HAS_F_SETLKW): Renamed to ... - (TARGET_POSIX_IO): This. - * config/darwin.h: Likewise. - * config/freebsd.h: Likewise. - * config/linux.h: Likewise. - * config/lynx.h: Likewise. - * config/netbsd.h: Likewise. - * config/rs6000/linux64.h: Likewise. - * config/rs6000/linux.h: Likewise. - * config/s390/tpf.h: Likewise. - * config/sh/embed-elf.h: Likewise. - * config/sparc/linux64.h: Likewise. - * config/sparc/linux.h: Likewise. - * config/svr4.h: Likewise. - * gcov-io.h: Likewise. - - * doc/tm.texi: Updated. - - * libgcov.c (create_file_directory): Defined only if - TARGET_POSIX_IO is defined. - (gcov_exit): Call create_file_directory only if TARGET_POSIX_IO - is defined. - -2005-07-13 Jan Hubicka - - * tree-ssa-operands.c (get_expr_operands): Fix typo in previous patch. - -2005-07-13 David Edelsohn - - * tree-ssa-dom.c (lookup_avail_expr): Do not pass member in freed - structure as argument. - -2005-07-13 Paolo Bonzini - - PR tree-optimization/21921 - * tree-iterator.c (tsi_link_before): Support the case when - tsi_end_p (tsi) == true. - -2005-07-12 Zdenek Dvorak - - PR tree-optimization/22442 - * tree-chrec.c (chrec_fold_multiply_poly_poly): Associate chrecs - correctly. - -2005-07-12 Zdenek Dvorak - - PR rtl-optimization/20376 - * toplev.c (process_options): Enable -fweb and -frename-registers when - unrolling. - * doc/invoke.texi: Update the information about when -fweb and - -frename-registers are enabled. - -2005-07-12 Andrew Pinski - - PR tree-opt/21840 - * tree-ssa-pre.c (eliminate): Convert the sprime to the correct type - if *rhs_p is not a SSA_NAME. - -2005-07-12 Daniel Berlin - - Fix PR tree-optimization/22422 - * tree-ssa-structalias.c (struct variable_info): Add flag for - special vars. - (get_varinfo): Now a static function. - (new_varinfo): init has_union and is_special_var to false. - (solution_set_add): Check has_union. - (do_da_constraint): Move temporary variable so it gets reset - properly. - Also check for special variable. - (do_ds_constraint): Ditto. - (do_sd_constraint): Ditto. - (do_structure_copy): Check for special variable. - (find_func_aliases): Ditto. - (init_base_vars): Set special vars properly. - -2005-07-13 Jan Hubicka - - * cfgexpand.c (expand_one_stack_var): Do not expand variables when we - do unit-at-a-time. - - * tree-ssa-operands.c (parse_ssa_operands): Fix formatting. - (get_expr_operands): Fix thinko wrt flags and subvars. - - PR tree-optimize/22379 - * tree-inline.c (expand_call_inline): Do not output sorry in early - inlining. - -2005-07-12 Dale Johannesen - - * config/rs6000.c (rs6000_rtx_cost): Move FLOAT_EXTEND. - -2005-07-12 Andrew Pinski - - PR bootstrap/21704 - * host-linux.h: Include limits.h. - -2005-07-12 Dale Johannesen - - * expr.c (compress_float_constant): Add cost check. - * config/rs6000.c (rs6000_rtx_cost): Adjust FLOAT_EXTEND cost. - -2005-07-12 Dale Johannesen - - * gcc.target/i386/compress-float-sse.c: New. - * gcc.target/i386/compress-float-sse-pic.c: New. - * gcc.target/i386/compress-float-387.c: New. - * gcc.target/i386/compress-float-387-pic.c: New. - * gcc.dg/compress-float-ppc.c: New. - * gcc.dg/compress-float-ppc-pic.c: New. - -2005-07-12 Eric Christopher - - * config.gcc (s390x-ibm-tpf*): Add extra_options. Remove - static extra parts. - * config/s390/s390.md: Include tpf.md. Move tpf specific - patterns... - * config/s390/tpf.md: To here. - * config/s390/s390.opt: Move tpf specific options... - * config/s390/tpf.opt: to here. Add mmain option. - * config/s390/tpf-unwind.h: Remove unnecessary defines. - * config/s390/tpf.h: Rewrite. - -2005-07-12 Eric Christopher - - * gcc.c (struct infile): Update comment for language. - (main): Rewrite input file resetting code. - -2005-07-12 Andrew Pinski - - PR tree-opt/22335 - * tree-ssa-dom.c (eliminate_redundant_computations): Reject the prop if - requiring a cast in a non RHS of modify_expr. Add a cast when required. - (lookup_avail_expr): Use constant_boolean_node instead - of boolean_false_node/boolean_true_node. - -2005-07-12 Ben Elliston - - * tree-cfg.c (dump_cfg_stats): Add a new fmt_str_2 format string - and use it when printing num_edges. - -2005-07-12 Bernd Schmidt - - * doc/extend.texi (Blackfin Built-in Functions): New section. - * doc/invoke.texi (mcsync-anomaly, mno-csync-anomaly): Fix the - @opindex. - -2005-07-12 Adrian Straetling - - * builtins.c: (expand_builtin_memcmp, expand_builtin_strncmp): - s/cmpstrsi/cmpstrnsi - (expand_builtin_strcmp): Rewrite to support both 'cmpstrsi' and - 'cmpstrnsi'. - * optabs.c: (prepare_cmp_insn): Add availability of 'cmpstrn'. - (init_optabs): Initialize cmpstrn_optab. - * optabs.h: (enum insn_code cmpstrn_optab): Declare. - * genopinit.c: (optabs[]): Add 'cmpstrn' to initialisation. - * expr.c: (enum insn_code cmpstrn_optab): Declare. - * config/i386/i386.md: s/cmpstr/cmpstrn - * config/c4x/c4x.md: s/cmpstr/cmpstrn - * doc/md.texi: Update documentation. - -2005-07-11 Richard Henderson - - * config/alpha/alpha.c (alpha_gimplify_va_arg_1): Use - build_va_arg_indirect_ref. - (alpha_gimplify_va_arg): Likewise. - * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Likewise. - * config/i860/i860.c (i860_gimplify_va_arg_expr): Likewise. - * config/mips/mips.c (mips_gimplify_va_arg_expr): Likewise. - * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise. - * config/sh/sh.c (sh_gimplify_va_arg_expr): Likewise. - * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_arg): - Likewise. - * config/xtensa/xtensa.c (xtensa_gimplify_va_arg_expr): Likewise. - -2005-07-12 Zdenek Dvorak - - * tree-flow.h (remove_empty_loops, single_dom_exit): Declare. - * passes.c (init_optimization_passes): Add pass_empty_loop. - * tree-pass.h (pass_empty_loop): Declare. - * tree-ssa-loop-ivcanon.c (empty_loop_p, remove_empty_loop, - try_remove_empty_loop, remove_empty_loops): New functions. - * tree-ssa-loop-ivopts.c (single_dom_exit): Export. - * tree-ssa-loop.c (tree_ssa_empty_loop, pass_empty_loop): New. - -2005-07-12 Peter Barada - - PR middle-end/16719 - PR middle-end/18421 - * config/m68k/m68k.h (HARD_REGNO_MODE_OK): Disallow bytes - in address registers. - * config/m68k/m68k.c (hard_regno_mode_ok): Likewise. - * config/m68k/m68k.md: Replace 's' with 'i' in 4th - alternative of addsi3_5200. - -2005-07-11 Ian Lance Taylor - - * config/mips/mips.md (ffs2): Remove. - -2005-07-11 Ian Lance Taylor - - * doc/tree-ssa.texi (Cleanups): Improve description of - TRY_FINALLY_EXPR. - (GIMPLE Exception Handling): Clarify TRY_CATCH_EXPR cases. - -2005-07-11 Daniel Berlin - - * print-tree.c (print_node): Use DECL_ARGUMENT_FLD. - * tree.h (DECL_ARGUMENT_FLD): New macro. - -2005-07-11 Daniel Berlin - - Fix PR tree-optimization/22404 - - * tree-ssa-structalias.c (create_variable_info_for): Use - correct offset. - -2005-07-11 Bernd Schmidt - - * config/bfin/bfin.md (cmpsi, compare_eq, compare_ne, compare_lt, - compare_le, compare_leu, compare_ltu): Use reg_or_const_int_operand - for second comparison operand. - * config/bfin/predicates.md (reg_or_const_int_operand): New. - - * config/bfin/bfin.md (define_attr "type"): Add "sync". - (define_insn_reservation "alu"): Likewise. - (csync, ssync): Now of type sync. - * config/bfin/bfin.h (TARGET_DEFAULT): Defaults to - -mcsync-anomaly -mspecld-anomaly. - * config/bfin/bfin.opt (mcsync): Remove. - (mcsync-anomaly, mspecld-anomaly): Add. - * config/bfin/bfin.c: Include "insn-codes.h". - (bfin_reorg): Extend to handle the CSYNC anomaly as well. - (TARGET_DEFAULT_TARGET_FLAGS): New. - * doc/invoke.texi: Document -mcsync-anomaly, -mspecld-anomaly. - -2005-07-11 Steven Bosscher - - * basic-block.h: Give the BB flags enum a name, bb_flags. - Add new flags BB_FORWARDER_BLOCK, and BB_NONTHREADABLE_BLOCK. - * cfgcleanup.c (enum bb_flags): Remove here. - (BB_FLAGS, BB_SET_FLAG, BB_CLEAR_FLAG): Remove. - (notice_new_block): Set/test bb->flags instead of aux via BB_FLAGS. - (update_forwarder_flag): Likewise. - (thread_jump): Likewise. - (try_forward_edges): Likewise. - (try_optimize_cfg): Likewise. Clear bb->flags before updating the - forwarder flags. Don't clear bb->aux for all basic blocks. Only - reset the BB_FORWARDER_BLOCK and BB_NONTHREADABLE_BLOCK flags. - -2005-07-11 Richard Guenther - - * config/i386/i386.opt: New target option -msseregparm. - * config/i386/i386.c (override_options): Error out for - -msseregparm but no SSE support. - (ix86_function_sseregparm): Check for global sseregparm. - * doc/invoke.texi: Document -msseregparm. - -2005-07-11 Kazuhiro Inaoka - - * config.gcc (m32r-*-linux*): Use the default extra_parts. - (m32rle-*-linux*): Ditto. - -2005-07-11 Jakub Jelinek - - * cfgexpand.c (stack_protect_classify_type): Use TYPE_SIZE_UNIT (type) - instead of TYPE_MAX_VALUE (TYPE_DOMAIN (type)) to get array size in - bytes. - -2005-07-10 John David Anglin - - PR middle-end/22239 - PR target/20126 - * loop.c (loop_givs_rescan): Use expand_simple_binop instead of - gen_rtx_MINUS to handle non-replaceable (plus ((x) (const)). - -2005-07-07 Daniel Berlin - - * tree-ssa-structalias.c (struct variable_info): Heapify complex. - (varmap): Heapify varmap. - (constraints): Heapify constraints. - (struct constraint_graph): Heapify succs and preds. - (constraint_vec_find): Update for heapification. - (constraint_set_union): Ditto. - (insert_into_complex): Ditto. - (constraint_edge_vec_find): Ditto. - (erase_graph_self_edge): Ditto. - (add_graph_edge): Ditto. - (get_graph_weights): Ditto. - (merge_graph_nodes): Ditto. - (build_constraint_graph): Ditto. - (topo_visit): Ditto. - (solve_graph): Ditto. - (create_variable_info_for): Ditto. - (init_base_vars): Ditto. - (delete_points_to_sets): Free graph, varmap, and complex constraints. - (condese_varmap_nodes): Free complex vector. - (clear_edges_for_node): Clear succs and preds vector. - -2005-07-10 Daniel Berlin - - * tree-ssa-structalias.c (update_alias_info): Change counting of - references to not include vdefs. - -2005-07-10 Daniel Berlin - - * tree-ssa-alias.c (free_used_part_map): Add missing free. - (up_insert): Ditto. - -2005-07-10 John David Anglin - - * pa.c (pa_commutative_p): Make PLUS commutative when - TARGET_NO_SPACE_REGS is true. - -2005-07-09 Diego Novillo - - * Makefile.in (tree-ssa-alias.o): Depend on tree-ssa-structalias.h - * tree-cfg.c (CHECK_OP): Only test for is_gimple_val. - * tree-dfa.c (dump_subvars_for): New. - (debug_subvars_for): New. - (dump_variable): Show subvariables if VAR has them. - * tree-flow-inline.h (get_subvar_at): New. - (overlap_subvar): Change offset and size to unsigned HOST_WIDE_INT. - * tree-flow.h (struct ptr_info_def): Remove field pt_malloc. - Update all users. - (struct subvar): Change fields offset and size to unsigned - HOST_WIDE_INT. - (dump_subvars_for): Declare. - (debug_subvars_for): Declare. - (get_subvar_at): Declare. - (okay_component_ref_for_subvars): Change 2nd and 3rd argument - to unsigned HOST_WIDE_INT *. - (overlap_subvar): Likewise. - * tree-gimple.c (is_gimple_reg): Always return false for - SFTs and memory tags. - * tree-pass.h (pass_build_pta, pass_del_pta): Remove. - Update all callers. - * tree-ssa-alias.c: Include tree-ssa-structalias.h. - (compute_may_aliases): Call compute_points_to_sets. - (collect_points_to_info_for): Remove. - (compute_points_to_and_addr_escape): Remove. - (delete_alias_info): Call delete_points_to_sets. - (compute_flow_sensitive_aliasing): If the call to - find_what_p_points_to returns false, call set_pt_anything. - (add_may_alias): Set TREE_ADDRESSABLE when adding a new alias. - (set_pt_anything): Clear pi->pt_vars. - (set_pt_malloc): Remove. - (merge_pointed_to_info): Remove. - (add_pointed_to_expr): Remove. - (add_pointed_to_var): Remove. - (collect_points_to_info_r): Remove. - (is_escape_site): Make extern. - (create_sft): New. - (create_overlap_variables_for): Call it. - * tree-ssa-copy.c (merge_alias_info): Never merge - flow-sensitive alias information. - * tree-ssa-operands.c (get_expr_operands): Adjust variables - offset and size to be unsigned HOST_WIDE_INT. - (add_to_addressable_set): Rename from note_addressable. - Set TREE_ADDRESSABLE as the variables are added to the set. - Update all users. - (add_stmt_operand): Do not try to micro-optimize unmodifiable - operands into VUSEs when adding V_MAY_DEFs for members in an - alias set. - * tree-ssa-operands.h (add_to_addressable_set): Declare. - * tree-ssa-structalias.c: Include tree-ssa-structalias.h last. - (struct variable_info): Add bitfield is_heap_var. - (var_anyoffset, anyoffset_tree, anyoffset_id): Declare. - (new_var_info): Initialize is_heap_var. - (get_constraint_for): Add HEAP variables to the symbol table. - Mark them with is_heap_var. - (update_alias_info): New. Taken mostly from the old - compute_points_to_and_addr_escape. - (handle_ptr_arith): New. - (find_func_aliases): Call update_alias_info. - Call handle_ptr_info for tcc_binary expressions. - Call mark_stmt_modified. - (create_variable_info_for): If DECL has subvars, do not create - variables for its subvars. Always add all the fields. - (set_uids_in_ptset): If the solution includes ANYOFFSET and - SFTs, then add all the SFTs of the structure. - If VI->DECL is an aggregate with subvariables, add the SFT at - VI->OFFSET. - (find_what_p_points_to): If VI is an artificial variable, - translate to bitfields in SSA_NAME_PTR_INFO. - If the solution is empty, set pi->pt_vars to NULL - (init_base_vars): Create ANYOFFSET. - (compute_points_to_sets): Rename from create_alias_vars. - Make extern. - (pass_build_pta): Remove. - (delete_points_to_sets): Rename from delete_alias_vars. - (pass_del_pta): Remove. - * tree-ssa-structalias.h (struct alias_info): Move from - tree-ssa-alias.h. - (NUM_REFERENCES, NUM_REFERENCES_CLEAR, NUM_REFERENCES_INC, - NUM_REFERENCES_SET): Likewise. - (compute_points_to_sets, delete_points_to_sets): Declare. - -2005-07-09 Richard Henderson - - * config/alpha/alpha.c (emit_insxl, alpha_expand_compare_and_swap_12, - alpha_split_compare_and_swap_12, alpha_expand_lock_test_and_set_12, - alpha_split_lock_test_and_set_12): New functions. - * config/alpha/alpha-protos.h: Update. - * config/alpha/alpha.md (UNSPEC_MB, UNSPEC_ATOMIC, - UNSPEC_CMPXCHG, UNSPEC_XCHG): Rename from UNSPECV_FOO. - * config/alpha/sync.md (I12MODE): New. - (memory_barrier, mb_internal): Use unspec instead of unspec_volatile. - (sync_): Likewise. - (sync_nand): Likewise. - (sync_old_): Likewise. - (sync_new_): Likewise. - (sync_old_nand, sync_new_nand): Likewise. - (sync_compare_and_swap): Likewise. - (sync_lock_test_and_set): Likewise. - (sync_compare_and_swap): New. - (sync_compare_and_swap_1): New. - (sync_lock_test_and_set): New. - (sync_lock_test_and_set_1): New. - -2005-07-09 Diego Novillo - - PR 21356 - PR 22332 - * passes.c (execute_todo): Cleanup the CFG before updating SSA. - -2005-07-09 Jakub Jelinek - - * config/i386/i386.c (output_set_got): Don't omit OFFSET FLAT: - in Intel syntax add %reg, OFFSET FLAT:_GLOBAL_OFFSET_TABLE_+(.-.Lx). - -2005-07-09 Richard SAndiford - - PR target/21656 - * config/mips/elf.h (NO_IMPLICIT_EXTERN_C): Define. - -2005-07-08 David Edelsohn - - * config/rs6000/sync.md (load_locked_): Use Z for - memory_operand constraint. - (store_conditional_): Same. - (sync_compare_and_swap): Same. - (sync_lock_test_and_set): Same. - -2005-07-08 Hans-Peter Nilsson - - Rewrite PIC support to more closely model actual instructions. - * config/cris/cris-protos.h (cris_gotless_symbol, cris_got_symbol) - (cris_symbol): Remove prototypes for removed functions. - (cris_pic_symbol_type_of, cris_valid_pic_const) - (cris_expand_pic_call_address): Prototypes for new functions. - * config/cris/cris/cris.c (cris_pic_sympart_only): Remove unused - variable. - (cris_print_operand) : Remove cases for unused - modifiers. - : Add case for new punctuation character. - : Temporarily set flag_pic = 2 instead of incorrectly - emitting (extra) PIC modifier. - : Do not assert for PLT. - (cris_initial_frame_pointer_offset, cris_simple_epilogue) - (cris_expand_prologue, cris_expand_epilogue): Check - for pic_offset_table_rtx usage instead of taking - current_function_uses_pic_offset_table as the final word. - (cris_rtx_costs, cris_address_cost, cris_side_effect_mode_ok): - Remove flag_pic difference. - (cris_valid_pic_const, cris_pic_symbol_type_of): New functions, - the moral equivalents of... - (cris_symbol, cris_gotless_symbol, cris_got_symbol): Remove - functions. - (cris_legitimate_pic_operand): Just call cris_valid_pic_const. - (cris_handle_option): Mark ARG as unused. - (cris_expand_pic_call_address): New worker function for "call", - "call_value". - (cris_asm_output_symbol_ref, cris_asm_output_label_ref): Do not - output PIC constructs here. - (cris_output_addr_const_extra): Changes for emitting PIC modifiers - as symbol-specific modifers, not whole or part of operands. - * config/cris/cris/cris.h (EXTRA_CONSTRAINT): Remove 'U' case. - (EXTRA_CONSTRAINT_S): Changed semantics: allow only CONST-wrapped - constants and flag_pic. - (CONSTANT_INDEX_P): Adjust for new functions. - (enum cris_pic_symbol_type): New helper type. - (PRINT_OPERAND_PUNCT_VALID_P): Add ':'. - * config/cris/cris/cris.md (CRIS_UNSPEC_GOTREL) - (CRIS_UNSPEC_GOTREAD, CRIS_UNSPEC_PLTGOTREAD): New - define_constants. - ("movsi"): Emit actual instructions for GOT and relative access. - ("*movsi_got_load"): New pattern to set up the register holding - the GOT pointer. - ("*movsi_internal"): Operand 1 is not a plain general_operand. - Adjust FIXME for 'S'. - : Sanity-check UNSPEC types for PIC. - Use "movs" for -fpic cases. - ("addsi3"): Add alternative for 'S'; use adds.w when possible. - ("uminsi3","*expanded_call_value"): Remove 'S' alternative. - ("call", "call_value"): Just call cris_expand_pic_call_address for - PIC addresses. - ("*expanded_call_no_gotplt", "*expanded_call_value_no_gotplt"): - Remove special pattern. - ("*expanded_call_side", "*expanded_call_value_side"): New - patterns. - (gotplt-to-plt, gotplt-to-plt-side-call) - (gotplt-to-plt-side-call-value, gotplt-to-plt-side): New - peephole2:s. - * config/cris/cris/predicates.md - ("cris_general_operand_or_gotless_symbol"): Remove unused - predicate. - ("cris_general_operand_or_symbol"): Adjust for new functions. - -2005-07-08 Andrew Pinski - - * config/darwin.h (TARGET_C99_FUNCTIONS): Define to 1. - -2005-07-08 Daniel Berlin - - * Makefile.in (TREE_H): Add treestruct.def. - (c-decl.o): Add pointer-set.h - * c-decl.c (diagnose_mismatched_decls): Don't attempt to look at - visibility on regular DECL's. - (merge_decls): Fix the copying of decl nodes of various types for - the new structures. Don't update RTL, section name, weak status, - etc, on DECL's without RTL. - (grokdeclarator): DECL_ARG_TYPE_AS_WRITTEN is gone. - Don't check volatile on non-variable types. - (store_parm_decls_oldstyle): Use pointer_set instead of DECL_WEAK - to check whether we have seen arguments. - * c-objc-common.c (c_tree_printer): Reverse order of tests so that - flag is checked before field (flag is common, field is not). - * dwarf2out.c (decl_ultimate_origin): Only DECL's with - TS_DECL_COMMON could have an origin. - (add_location_or_const_value_attribute): Don't check section name - on non-var/function decls. - (dwarf2out_var_location): Reverse order of tests. - * emit-rtl.c (set_reg_attrs_for_parm): DECL_CHECK is dead, replace - with DECL_WRTL_CHECK. - * expmed.c (make_tree): rtl is now in decl_with_rtl. - * fold-const.c (fold_binary): Don't check weakness on - non-var/function decls. - (tree_expr_nonzero_p): Ditto. - (fold_checksum_tree): Use tree_decl_extra as sizeof - buffer. - * ggc-page.c (extra_order_size_table): Add sizes for - tree_decl_non_common, tree_parm_decl, tree_var_decl, and - tree_field_decl. - * gimplify.c (gimplify_bind_expr): Only set - DECL_SEEN_IN_BIND_EXPR_P on VAR_DECL. - * integrate.c (copy_decl_for_inlining): Don't set RTL on decl's - without RTL. - * langhooks-def.h (LANG_HOOK_INIT_TS): New. - * langhooks.h (init_ts). New langhook. - * passes.c (rest_of_decl_compilation): Reverse order of tests. - * print-tree.c (print_node): Update to only print fields that - exist in the structures the passed decl has. - * toplev.c (wrapup_global_declarations): Don't reset - DECL_DEFER_OUTPUT on DECL's that don't contain it. - * tree-browser.c (browse_tree): DECL_ARG_TYPE_AS_WRITTEN removed. - * tree-inline.c (remap_decl): Ditto. - * tree-outof-ssa.c (create_temp): Reverse order of tests. - * tree-pretty-print.c (print_declaration): Don't print - DECL_REGISTER on things that don't contain it. - * tree-vrp.c (expr_computes_nonzero): Don't check weakness on - non-var/function decls. - * tree.c (tree_contains_struct): New structure. - (init_priority_for_decl): New hashtable. - (tree_int_map): New structure. - (tree_int_map_eq): New function. - (tree_int_map_marked_p): Ditto. - (tree_int_map_hash): Ditto. - (tree_map): Move to tree.h. - (tree_map_eq): Externalize. - (tree_map_hash): Ditto. - (tree_map_marked_p): Ditto. - (init_ttree): Set up tree_contains_struct and call langhook. - (decl_assembler_name): Use DECL_NON_COMMON_CHECK.. - (tree_code_size): Update for new structures. - (tree_node_structure): Update for new structures. - (make_node_stat): Don't try to set DECL_IN_SYSTEM_HEADER on decls - without the field. - (copy_node_stat): Copy init priority. - (build_decl_stat): Ditto for visibility. - (ts_enum_names): New. - (tree_contains_struct_check_failed): New function. - (decl_init_priority_lookup): Ditto. - (decl_init_priority_insert): Ditto. - * treestruct.def: New file. - * tree.h (CODE_CONTAINS_STRUCT): New macro. - (CONTAINS_STRUCT_CHECK): Ditto. - (tree_contains_struct_check_failed): New prototype. - (DECL_CHECK): Removed. - (DECL_MINIMAL_CHECK): New. - (DECL_COMMON_CHECK): Ditto. - (DECL_WRTL_CHECK): Ditto. - (DECL_NON_COMMON_CHECK): Ditto. - (DECL_WITH_VIS_CHECK): Ditto. - (VAR_OR_FUNCTION_DECL_P): Ditto - (struct tree_decl_minimal): New structure. - (struct tree_decl_common): Ditto. - (struct tree_decl_with_rtl): Ditto. - (struct tree_decl_with_vis): Ditto. - (struct tree_decl_non_common): Ditto. - (struct tree_field_decl): Ditto. - (struct tree_parm_decl): Ditto. - (struct tree_var_decl): Ditto. - (struct tree_function_decl): Ditto. - (struct tree_const_decl): Ditto. - (struct tree_result_decl): Ditto. - (union tree_node): Add new structures. - * var-tracking.c (track_expr_p): Reverse order of tests. - - * doc/c-tree.texi: Add documentation on DECL node internal structure. - -2005-07-08 Kazu Hirata - - * cfgexpand.c (tree_expand_cfg): Don't use FINALIZE_PIC. - * system.h: Poison FINALIZE_PIC. - * doc/tm.texi (FINALIZE_PIC): Remove. - -2005-07-08 Andrew Pinski - - PR tree-opt/22329 - * tree-ssa-propagate.c (fold_predicate_in): Convert the value - to the correct type if we have a MODIFY_EXPR. - -2005-07-08 Kazu Hirata - - PR tree-optimization/22360 - * tree.c (upper_bound_in_type): Fix calculations for casting - to a non-wider signed type and casting a signed value to a - wider unsigned type. - (lower_bound_in_type): Fix calculations for casting to a - non-wider signed type. - - PR tree-optimization/20139 - * tree-cfg.c (remove_bb): Check in_ssa_p before calling - release_defs. - * tree-optimize.c (execute_cleanup_cfg_post_optimizing): Call - fold_cond_expr_cond. - * tree-ssanames.c (release_defs): Assert in_ssa_p. - * tree.c (upper_bound_in_type, lower_bound_in_type): Rewrite. - -2005-07-08 Andrew Pinski - - PR tree-opt/22356 - * tree-complex.c (expand_complex_libcall): Produce - REALPART_EXPR/IMAGPART_EXPR with the correct type. - -2005-07-08 Kenneth Zadeck - - * bitmap.c (bitmap_and, bitmap_and_into, bitmap_and_compl, - bitmap_and_compl_into, bitmap_xor, bitmap_xor_into): Removed "a != - b" assert and inserted fastpath code for this case. - (bitmap_ior): Removed "a != b" assert. - -2005-07-08 Kazuhiro Inaoka - - * config/m32r/linux.h (STARTFILE_SPEC): Support PIE. - (ENDFILE_SPEC): Likewise. - * config/m32r/m32r.h (ASM_SPEC): Likewise. - - * config/m32r/m32r.c (m32r_output_function_epilogue): Care for - a large stack frame at epilogue. - -2005-07-08 David Billinghurst - - * final.c: Include sdbout.h when required. - -2005-07-07 Geoffrey Keating - - * config.gcc (*-*-darwin*): Only one target-specific header file - for generic darwin. - (powerpc-*-darwin*): Add version-specific header files. - * configure.in (gcc_AC_CHECK_DECLS): Add strverscmp. - * config.in: Regenerate. - * configure: Regenerate. - * gcc.c: Include xregex.h. - (version_compare_spec_function): New. - (spec_function): Add version-compare. - (replace_outfile_spec_function): Reformat comment. - (compare_version_strings): New. - * config/darwin-c.c (version_as_macro): New. - (builtin_define): New. - (darwin_cpp_builtins): New. - * config/darwin-protos.h (darwin_cpp_builtins): New. - * config/darwin.h (CPP_SPEC): Don't define APPLE_CC here. - (LIB_SPEC): Make unconditional, update comment. - (TARGET_C99_FUNCTIONS): Define. - * config/darwin.opt: Sort. - (mmacosx-version-min=): New. - * config/darwin7.h: Delete. - * config/darwin8.h: Delete. - * config/i386/darwin.h (): Call darwin_cpp_builtins. - * config/rs6000/darwin.h (): Call darwin_cpp_builtins. - (TARGET_C99_FUNCTIONS): Define. - * config/rs6000/darwin7.h: New. - * config/rs6000/darwin8.h: New. - * doc/invoke.texi (Darwin Options): Add -mmacosx-version-min= - (-mmacosx-version-min): Document. - -2005-07-07 Ian Lance Taylor - - * config/mips/mips.md (abs2) [GPR]: Remove. - -2005-07-07 John David Anglin - - PR middle-end/22239 - * loop.c (loop_givs_rescan): Check that v->new_reg is a REG. - -2005-07-07 Khem Raj - - * config/arm/arm.c (thumb_output_function_prologue): Calculate offset - in bytes, not words. - -2005-07-07 Paul Brook - - * config/arm/arm.c (arm_pad_arg_upward): Compare return value of - DEFAULT_FUNCTION_ARG_PADDING to upward. - -2005-07-07 Richard Henderson - - * function.c (locate_and_pad_parm): Record parameter alignment in - stack_alignment_needed. - -2005-07-07 David Edelsohn - - * config/rs6000/rs6000.md (UNSPEC_SYNC, UNSPEC_SYNC_OP, - UNSPEC_SYNC_SWAP, UNSPEC_LWSYNC, UNSPEC_ISYNC): Delete. - (UNSPECV_LL, UNSPECV_SC, UNSPECV_ATOMIC, UNSPECV_SYNC, - UNSPECV_SYNC_OP, UNSPECV_CMPXCHG, UNSPECV_LWSYNC, UNSPECV_ISYNC): New. - (define_attr "type"): Add isync, sync, load_l, store_c. - * config/rs6000/sync.md (memory_barrier): Change to define_expand. - Create scratch volatile MEM. - (sync_internal): New. POWER mnemonic is dcs, not ics. Attribute - sync. - (load_locked_): New. - (store_conditional_): New. - (sync_compare_and_swap): Replace with splitter. - (sync_lock_test_and_set): Replace with splitter. - (sync_): Change to unspec_volatile UNSPECV_SYNC_OP - and UNSPECV_ISYNC. - (isync): Change to unspec_volatile UNSPECV_ISYNC. POWER mnemonic - is ics. Attribute isync. - (lwsync): Change to unspec_volatile UNSPECV_LWSYNC. Attribute - lwsync. - * config/rs6000/rs6000.c (rs6000_emit_sync): Use UNSPEC_VOLATILE - and UNSPECV_SYNC_OP. - (emit_unlikely_jump): New. - (emit_load_locked): New. - (emit_store_conditional): New. - (rs6000_split_compare_and_swap): New. - (rs6000_split_lock_test_and_set): New. - (is_dispatch_slot_restricted): Return 4 for TYPE_LOAD_L, - TYPE_STORE_C, TYPE_ISYNC, TYPE_SYNC. - * config/rs6000/rs6000-protos.h (rs6000_split_compare_and_swap, - rs6000_split_lock_test_and_set): Declare. - * config/rs6000/{40x.md,440.md,603.md,6xx.md,7450.md,7xx.md,8540.md, - mpc.md,power4.md,power5.md,rios1.md,rios2.md,rs64.md): Add load_l, - store_c, isync, sync. - -2005-07-07 Kelley Cook - - * Makefile.in (echo_quoted_to_gtyp): New template for outputing - filenames to gtyp-gen.h. - (s-typ-gen): Use it in place of for loops. - -2005-07-07 J"orn Rennecke - - * hooks.c (hook_bool_rtx_int_false): New function. - * hooks.h (hook_bool_rtx_int_false): Declare. - * target-def.h (TARGET_COMMUTATIVE_P): Define. - (TARGET_INITIALIZER): Add TARGET_COMMUTATIVE_P. - * target.h (struct gcc_target): Add commutative_p member. - * targhooks.c (hook_bool_rtx_commutative_p): New function. - * targhooks.h (hook_bool_rtx_commutative_p): Declare. - * pa.c (TARGET_COMMUTATIVE_P): Redefine. - (pa_commutative_p): New function. - * jump.c (target.h): Include. - (rtx_renumbered_equal_p): Use targetm.commutative_p. - * doc/tm.texi: Document TARGET_COMMUTATIVE_P. - -2005-07-07 Adrian Straetling - - * config/s390/s390-protos.h (s390_expand_clrmem): Delete. - (s390_expand_setmem): New. - * config/s390/s390.c: Likewise. - (print_shift_count_operand): Truncate to 12 bits instead of 6. - Adapt comments. - * config/s390/s390.md: ("setmem"): Accept character as - general_operand. Call new function "s390_expand_setmem". - ("clrmem_long", "*clrmem_long"): Rewrite to ... - ("setmem_long", "*setmem_long"): ... this. - -2005-07-07 Adrian Straetling - - * config/s390/s390.c: (optimization_options): Enable - TARGET_MVCLE at -Os. - * doc/invoke.texi: Document changes in default behaviour. - * config/s390/s390.opt: ("mvcle"): Fix typo: is "mmvcle". - -2005-07-07 Adrian Straetling - - * expr.c: (set_storage_via_setmem): Convert opchar to mode - defined by back-end. - -2005-07-07 Jakub Jelinek - - * config/sparc/sparc.md (stack_protect_testsi): Put clobbers after - all sets in the pattern. - * config/rs6000/rs6000.md (stack_protect_testsi, - stack_protect_testdi): Likewise. - -2005-07-06 Jeff Law - - * tree-vrp.c (simplify_using_ranges): Kill. - (vrp_finalize): Remove call to simplify_using_ranges. - (simplify_stmt_using_ranges): New function extracted from - simplify_using_ranges. - (simplify_div_or_mod_using_ranges): Likewise. - (simplify_abs_using_ranges): Likewise. - (simplify_cond_using_ranges): New function. - * tree-flow.h (simplify_stmt_using_ranges): Prototype. - * tree-ssa-propagate.c (substitute_and_fold): Call - simplify_stmt_using_ranges if we have range information. - -2005-07-06 James E. Wilson - - * config/ia64/ia64.c (ia64_reorg): Check optimize before - ia64_flag_schedule_isns2. - - * config/ia64/ia64.c (ia64_expand_movxf_movrf): Don't word swap when - reading/writing general registers. - (ia64_function_arg): Revert 2005-06-18 change. - -2005-07-06 John David Anglin - - * pa.c (legitimize_pic_address): Use gcc_assert instead of abort. - (legitimize_tls_address): Use gcc_unreachable instead of abort. - -2005-07-06 Kaz Kojima - - * function.c (expand_function_end): Revert part of 2005-06-27 - patch. Do sjlj_emit_function_exit_after after return_label. - -2005-07-06 Kazu Hirata - - * doc/install.texi (--disable-libssp): New. - -2005-07-06 Fariborz Jahanian - - * doc/invoke.texi: Update -fforce-mem documentation. - * dojump.c (compare_from_rtx,do_compare_rtx_and_jump): Remove - code for -fforce-mem. - * expmed.c: (store_bit_field,store_fixed_bit_field, - extract_bit_field): Ditto. - * expr.c: (convert_move): Ditto. - * optabs.c: (expand_binop,expand_twoval_unop,expand_twoval_binop, - expand_unop,emit_unop_insn,prepare_cmp_insn,emit_conditional_move, - emit_conditional_add,expand_float,expand_fix): Ditto. - * opts.c: (decode_options): Remove setting of flag_force_mem flag. - (common_handle_option): Issue warning when -fforce-mem specified. - -2005-07-06 Paul Brook - - * aclocal.m4: Work around a bug in AC_PATH_PROGS when its last - argument is empty. - * configure: Regenerate. - -2005-07-06 J"orn Rennecke - - * sh.c (final_prescan_insn): Undo bogus change from 2005-05-09. - -2005-07-06 Daniel Berlin - - Fix PR tree-optimization/22319 - Fix PR tree-optimization/22140 - Fix PR tree-optimization/22310 - - * tree-ssa-structalias.c (do_structure_copy): Give up earlier on - variable sized types. - Use correct type for intermediate structure on *a = *b structure - copies. - -2005-07-06 Jakub Jelinek - - * config/rs6000/rs6000.h (RS6000_VARARGS_AREA, RS6000_VARARGS_SIZE): - Remove. - (STARTING_FRAME_OFFSET): Don't add RS6000_VARARGS_AREA. - (machine_function): Move typedef to... - * config/rs6000/rs6000.c (machine_function): ... here. Add - varargs_save_offset field. - (rs6000_stack_t): Remove varargs_size field. - (setup_incoming_varargs): Allocate varargs save area using - assign_stack_local, try to make it as small as possible. - Save offset from virtual_stack_vars_rtx to the save area - in cfun->machine->varargs_save_offset. Use UNITS_PER_FP_WORD - instead of magic 8 when fp word byte size is used. - (rs6000_va_start): Use cfun->machine->varargs_save_offset - instead of -RS6000_VARARGS_SIZE. - (rs6000_stack_info, debug_stack_info, - rs6000_initial_elimination_offset): Remove all traces of - varargs_size. - * config/rs6000/sysv4.h (RS6000_VARARGS_AREA): Remove. - * config/rs6000/darwin.h (STARTING_FRAME_OFFSET): Don't add - RS6000_VARARGS_AREA. - -2005-07-06 Zdenek Dvorak - - PR tree-optimization/21963 - * tree-ssa-loop-ivopts.c (get_computation_aff): Use - constant_multiple_of in the same way get_computation_cost_at does. - -2005-07-06 Jakub Jelinek - - * config/sparc/sparc.h (sparc_compare_emitted): New extern. - * config/sparc/sparc.c (sparc_compare_emitted): New variable. - (gen_compare_reg): If sparc_compare_emitted is set, clear it - and return its previous value. - (emit_v9_brxx_insn): Assert sparc_compare_emitted is NULL. - * config/sparc/sparc.md (UNSPEC_SP_SET, UNSPEC_SP_TEST): New - constants. - (stack_protect_set, stack_protect_test): New expanders. - (stack_protect_setsi, stack_protect_setdi, stack_protect_testsi, - stack_protect_testdi): New insns. - * config/sparc/linux.h (TARGET_THREAD_SSP_OFFSET): Define. - * config/sparc/linux64.h (TARGET_THREAD_SSP_OFFSET): Define. - -2005-07-06 Jeff Law - - * tree-ssa-dce.c (cfg_altered): New global. - (tree_dce_init): Initialize cfg_altered. - (remove_dead_stmt): If we remove an edge in the CFG, then set - CFG_ALTERED. - (perform_tree_ssa_dce): If we altered the CFG, then invalidate - the dominators. - -2005-07-06 Kazu Hirata - - * Makefile.in (stamp-collect-ld): Use - $(ORIGINAL_LD_FOR_TARGET) instead of $<. Don't remove - ./collect-ld if it already exists. - (stamp-nm): Use $(ORIGINAL_NM_FOR_TARGET) instead of $<. - Don't remove ./nm if it already exists. - -2005-07-05 Devang Patel - - * tree-vectorizer.h (struct _loop_vec_info): Remove loop_line_number. - (LOOP_VINFO_LOC, LOOP_LOC): Remove. - * tree-vectorizer.c (vect_loop_location): New. - (vect_print_dump_info): Use vect_loop_location. - (new_loop_vec_info): Do not set LOOP_VINFO_LOC. - (vectorize_loops): Set vect_loop_location. - * tree-vect-analyze.c (vect_analyze_offset_expr, - vect_determin_vectorization_factor, vect_analyze_operations, - vect_analyze_scalar_cycles, vect_analyze_data_ref_dependence, - vect_analyze_data_ref_dependences, vect_compute_data_ref_alignment, - vect_analyze_data_refs_alignment, vect_analyze_data_ref_access, - vect_analyze_data_ref_accesses, vect_analyze_pointer_ref_access, - vect_object_analysis, vect_analyze_data_refs, vect_mark_relevant, - vect_stmt_relevant_p, vect_mark_stmts_to_be_vectorized, - vect_can_advance_ivs_p, vect_get_loop_niters, vect_analyze_loop_form, - vect_analyze_loop): Adjust vect_print_dump_info API. - * tree-vect-transform.c (vect_create_addr_base_for_vector_ref, - vect_create_data_ref_ptr, vect_init_vector, vect_get_vec_def_for_operand, - vect_finish_stmt_generation, vectorizable_assignment, - vectorizable_operation, vectorizable_store, vectorizable_load, - vectorizable_live_operation, vectorizable_condition, vect_transform_stmt, - vect_update_ivs_after_vectorizer, vect_do_peeling_for_loop_bound, - vect_gen_ninters_for_prolog_loop, vect_do_peeling_for_alignment, - vect_transform_loop): Same. - * tree-vectorizer.c (get_vectype_for_scalar_type, vect_is_simple_use, - vect_is_simple_reduction, vect_is_simple_iv_evolution, vectorize_loops): - Same. - -2005-07-05 Randolph Chung - - * configure.ac (hppa*-*-linux*: Check for a TLS capable gas. - * configure: Regenerate. - * config/pa/pa-protos.h (tls_symbolic_operand): Declare. - (pa_tls_referenced_p): Declare. - * config/pa/pa.c (legitimize_pic_address): Reject TLS operands. - (gen_tls_tga, gen_tls_get_addr, hppa_tls_call): New. - (legitimize_tls_address): New. - (hppa_legitimize_address): Handle TLS addresses. - (pa_tls_symbol_ref_1, pa_tls_referenced_p): New. - (TARGET_CANNOT_FORCE_CONST_MEM): Define. - (emit_move_sequence): Handle TLS addresses. - (pa_encode_section_info): Call default handler to handle common - sections. - * config/pa/pa.h (PA_SYMBOL_REF_TLS_P): New. - (CONSTANT_ADDRESS_P): Reject TLS operands. - (TARGET_HAVE_TLS) [HAVE_AS_TLS]: Define. - * config/pa/pa.md (UNSPEC_TP, UNSPEC_TLSGD, UNSPEC_TLSLDM) - (UNSPEC_TLSLDO, UNSPEC_TLSLDBASE, UNSPEC_TLSIE) - (UNSPEC_TLSLE): Define new constants. - (tgd_load, tld_load, tld_offset_load, tp_load, tie_load, tle_load): New. - * config/pa/predicates.md (symbolic_operand): Reject TLS operands. - (tls_symbolic_operand, tgd_symbolic_operand, tld_symbolic_operand) - (tie_symbolic_operand, tle_symbolic_operand): New - -2005-07-06 Kelley Cook - - * aclocal.m4: Update macros for autoconf 2.59 style. - * configure.ac: Likewise. - -2005-07-05 John David Anglin - - * pa.c (function_value): Handle small aggregates on 32-bit targets. - (function_arg): Pass small aggregates in general registers on 32-bit - targets. - * som.h (MEMBER_TYPE_FORCES_BLK): Delete define. - -2005-07-05 Andrew Pinski - - * Makefile.in (final.o): Fix dependencies. - -2005-07-05 Joseph S. Myers - - PR c/22013 - PR c/22098 - * langhooks.h (struct lang_hooks): Add expr_to_decl. - * langhooks.c (lhd_expr_to_decl): New. - * langhooks-def.h (lhd_expr_to_decl, LANG_HOOKS_EXPR_TO_DECL): - New. - (LANG_HOOKS_INITIALIZER): Update. - * tree.c (recompute_tree_invarant_for_addr_expr): Call - expr_to_decl langhook. - * c-tree.h (c_expr_to_decl): Declare. - * c-typeck.c (c_expr_to_decl): New. - (build_unary_op): Do not handle ADDR_EXPR of COMPOUND_LITERAL_EXPR - specially. - * c-objc-common.h (LANG_HOOKS_EXPR_TO_DECL): Define. - -2005-07-05 Joseph S. Myers - - PR c/22308 - * c-decl.c (finish_struct): Also copy C_TYPE_FIELDS_READONLY, - C_TYPE_FIELDS_VOLATILE and C_TYPE_VARIABLE_SIZE to type variants. - -2005-07-05 Paolo Bonzini - - * Makefile.in: Adjust dependencies. - * tree-pass.h: Add new passes and passes formerly in tree-optimize.c. - * basic-block.h (duplicate_computed_gotos): Remove, it is now static. - * alias.c (rest_of_handle_cfg, pass_cfg): New. - * bb-reorder.c (duplicate_computed_gotos): Make it static. - * cfgexpand.c (tree_expand_cfg): Add code formerly at the beginning of - rest_of_compilation. - - * bb-reorder.c (gate_duplicate_computed_gotos, - pass_duplicate_computed_gotos, gate_handle_reorder_blocks, - rest_of_handle_reorder_blocks, pass_reorder_blocks, - gate_handle_partition_blocks, rest_of_handle_partition_blocks, - pass_partition_blocks): New. - * bt-load.c (gate_handle_branch_target_load_optimize, - rest_of_handle_branch_target_load_optimize, - pass_branch_target_load_optimize): New. - * cfgcleanup.c (rest_of_handle_jump, pass_jump, rest_of_handle_jump2, - pass_jump2): New. - * cfglayout.c (pass_insn_locators_initialize): New. - * cfgrtl.c (pass_free_cfg): New. - * combine.c (gate_handle_combine, rest_of_handle_combine, - pass_combine): New. - * cse.c (gate_handle_cse, rest_of_handle_cse, pass_cse, - gate_handle_cse2, rest_of_handle_cse2, pass_cse2): New. - * emit-rtl.c (pass_unshare_all_rtl, pass_remove_unnecessary_notes): New. - * except.c (pass_set_nothrow_function_flags, - pass_convert_to_eh_region_ranges, gate_handle_eh, rest_of_handle_eh, - pass_rtl_eh): New. - * final.c (pass_compute_alignments, rest_of_handle_final, pass_final, - rest_of_handle_shorten_branches, pass_shorten_branches, - rest_of_clean_state, pass_clean_state): New. - * flow.c (pass_recompute_reg_usage, gate_remove_death_notes, - rest_of_handle_remove_death_notes, pass_remove_death_notes, - rest_of_handle_life, pass_life, rest_of_handle_flow2, - pass_flow2): New. - * function.c (pass_instantiate_virtual_regs, pass_init_function, - rest_of_handle_check_leaf_regs, pass_leaf_regs): New. - * gcse.c (gate_handle_jump_bypass, rest_of_handle_jump_bypass, - pass_jump_bypass, gate_handle_gcse, rest_of_handle_gcse, - pass_gcse): New. - * global.c (rest_of_handle_global_alloc, pass_global_alloc): New. - * ifcvt.c (gate_handle_if_conversion, rest_of_handle_if_conversion, - pass_rtl_ifcvt, gate_handle_if_after_combine, - rest_of_handle_if_after_combine, pass_if_after_combine, - gate_handle_if_after_reload, rest_of_handle_if_after_reload, - pass_if_after_reload): New. - * integrate.c (pass_initial_value_sets): New. - * jump.c (pass_cleanup_barriers, purge_line_number_notes, - pass_purge_lineno_notes): New. - * mode-switching.c (rest_of_handle_mode_switching, - pass_mode_switching): New. - * local-alloc.c (rest_of_handle_local_alloc, pass_local_alloc): New. - * loop-init.c (gate_handle_loop2, rest_of_handle_loop2, - pass_loop2): New. - * loop.c (gate_handle_loop_optimize, rest_of_handle_loop_optimize, - pass_loop_optimize): New. - * modulo-sched.c (gate_handle_sms, rest_of_handle_sms, - pass_sms): New. - * postreload-gcse.c (gate_handle_gcse2, rest_of_handle_gcse2, - pass_gcse2): New. - * postreload.c (gate_handle_postreload, rest_of_handle_postreload, - pass_postreload_cse): New. - * profile.c (gate_handle_profiling, pass_profiling, - rest_of_handle_branch_prob, pass_branch_prob): New. - * recog.c (pass pass_split_for_shorten_branches, gate_do_final_split, - pass_split_before_regstack, gate_handle_split_before_regstack, - gate_handle_peephole2, rest_of_handle_peephole2, pass_peephole2, - rest_of_handle_split_all_insns, pass_split_all_insns): New. - * reg-stack.c (gate_handle_stack_regs, rest_of_handle_stack_regs, - pass_stack_regs): New. - * regmove.c (gate_handle_regmove, rest_of_handle_regmove, pass_regmove, - gate_handle_stack_adjustments, rest_of_handle_stack_adjustments, - pass_stack_adjustments): New. - * regrename.c (gate_handle_regrename, rest_of_handle_regrename, - pass_regrename): New. - * reorg.c (gate_handle_delay_slots, rest_of_handle_delay_slots, - pass_delay_slots, gate_handle_machine_reorg, - rest_of_handle_machine_reorg, pass_machine_reorg): New. - * rtl.h (extern void purge_line_number_notes): New. - * sched-rgn.c (gate_handle_sched, rest_of_handle_sched, - gate_handle_sched2, rest_of_handle_sched2, pass_sched, - pass_sched2): New. - * tracer.c (gate_handle_tracer, rest_of_handle_tracer, - pass_tracer): New. - * value-prof.c (gate_handle_value_profile_transformations, - rest_of_handle_value_profile_transformations, - pass_value_profile_transformations): New. - * var-tracking.c (gate_handle_var_tracking, - pass_variable_tracking): New. - * web.c (gate_handle_web, rest_of_handle_web, pass_web): New. - - * passes.c (open_dump_file, close_dump_file, rest_of_handle_final, - rest_of_handle_delay_slots, rest_of_handle_stack_regs, - rest_of_handle_variable_tracking, rest_of_handle_machine_reorg, - rest_of_handle_old_regalloc, rest_of_handle_regrename, - rest_of_handle_reorder_blocks, rest_of_handle_partition_blocks, - rest_of_handle_sms, rest_of_handle_sched, rest_of_handle_sched2, - rest_of_handle_gcse2, rest_of_handle_regmove, - rest_of_handle_tracer, rest_of_handle_if_conversion, - rest_of_handle_if_after_combine, rest_of_handle_if_after_reload, - rest_of_handle_web, rest_of_handle_branch_prob, - rest_of_handle_value_profile_transformations, rest_of_handle_cfg, - rest_of_handle_jump_bypass, rest_of_handle_combine, - rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2, - rest_of_handle_gcse, rest_of_handle_loop_optimize, - rest_of_handle_loop2, rest_of_handle_branch_target_load_optimize, - rest_of_handle_mode_switching, rest_of_handle_jump, - rest_of_handle_eh, rest_of_handle_stack_adjustments, - rest_of_handle_flow2, rest_of_handle_jump2, - rest_of_handle_peephole2, rest_of_handle_postreload, - rest_of_handle_shorten_branches, rest_of_clean_state, - rest_of_compilation): Remove. - - * cgraphunit.c (ipa_passes): Moved from tree-optimize.c. - * passes.c (dump_flags, in_gimple_form, all_passes, - all_ipa_passes, all_lowering_passes, register_one_dump_file, - register_dump_files, next_pass_1, last_verified, execute_todo, - execute_one_pass, execute_pass_list, execute_ipa_pass_list): Moved - from tree-optimize.c. - (init_optimization_passes): Moved from tree-optimize.c, - adding the RTL optimizations. - * tree-dump.h (dump_info_p, dump_flag): Moved from tree.h. - * tree-optimize.c (dump_flags, in_gimple_form, all_passes, - all_ipa_passes, all_lowering_passes, register_one_dump_file, - register_dump_files, next_pass_1, last_verified, execute_todo, - execute_one_pass, execute_pass_list, execute_ipa_pass_list, - init_tree_optimization_passes, ipa_passes): Delete. - * tree-pass.h (enum tree_dump_index): Moved from tree.h, removing - the RTL dumps. - (TDF_*, get_dump_file_name, dump_enabled_p, dump_initialized_p, - dump_begin, dump_end, dump_node, dump_switch_p, dump_flag_name): Moved - from tree.h. - (ipa_passes): Remove. - (all_passes, all_ipa_passes, all_lowering_passes): Now extern. - * tree.h (enum tree_dump_index, TDF_*, get_dump_file_name, - dump_enabled_p, dump_initialized_p, dump_begin, dump_end, dump_node, - dump_switch_p, dump_flag_name): Moved to tree-pass.h. - (dump_info_p, dump_flag): Moved to tree-dump.h. - - * Makefile.in: Adjust dependencies for tree-pretty-print.c, - cgraph.c, opts.c. - * passes.c (finish_optimization_passes): Use dump_begin - and dump_end, TDI_end. - (gate_rest_of_compilation): New. - (pass_rest_of_compilation): Use it. - (gate_postreload, pass_postreload): New. - * toplev.c (general_init): Rename init_tree_optimization_passes. - * toplev.h (init_tree_optimization_passes): Rename to - init_optimizations_passes. - * tree-dump.c (dump_flag): Make static. - (dump_files): Remove RTL dumps. - * tree-optimize.c (pass_all_optimizations, pass_early_local_passes, - pass_cleanup_cfg, pass_free_cfg_annotations, - pass_cleanup_cfg_post_optimizing, pass_free_datastructures, - pass_init_datastructures, pass_fixup_cfg): Make non-static. - * tree-pretty-print.c: Include tree-pass.h. - * cgraph.c: Include tree-dump.h. - -2005-07-04 Daniel Berlin - - * tree-ssa-structalias.c (get_constraint_exp_from_ssa_var): - Only fall back to saying it points to readonly memory if - we can't do better. - -2005-07-05 Kazuhiro Inaoka - - * config/m32r/m32r-protos.h: Remove m32r_finalize_pic. - * config/m32r/m32r.c (m32r_compute_frame_size, - m32r_expand_prologue): Take current_function_profile into - account whenever we reference - current_function_uses_pic_offset_table. - (m32r_finalize_pic): Remove. - * config/m32r/m32r.h (FINALIZE_PIC): Likewise. - -2005-07-05 Kazu Hirata - - * Makefile.in (stamp-as): Use $(ORIGINAL_AS_FOR_TARGET) - instead of $<. Don't remove ./as if it already exists. - -2005-07-04 John David Anglin - - PR target/21723 - * pa.md: Remove fcpy alternative from movhi and movqi patterns. - * pa32-regs.h (HARD_REGNO_NREGS): Return two floating point registers - for complex modes when generating code for PA 1.0. - (VALID_FP_MODE_P): New macro. - (HARD_REGNO_MODE_OK): Use VALID_FP_MODE_P. Use non-overlapping register - sets for all general and floating point modes. Align wide floating - point modes to even register boundaries to comply with architectural - requirements. - (CLASS_MAX_NREGS): Update to align with change to HARD_REGNO_NREGS. - * pa64-regs.h (HARD_REGNO_NREGS): Update comment and formatting. - (VALID_FP_MODE_P): New macro. - (HARD_REGNO_MODE_OK): Use VALID_FP_MODE_P. Use non-overlapping register - sets for all general and floating point modes. Align wide floating - point modes to even register boundaries to comply with architectural - requirements. - -2005-07-04 Diego Novillo - - * tree-dump.c (dump_files): Initialize dump number for .cgraph - to 0. - -2005-07-04 Diego Novillo - - * tree-ssa-structalias.c: Don't include expr.h. - -2005-07-04 Diego Novillo - - * tree-iterator.h (TSI_NEW_STMT, TSI_SAME_STMT): Fix - comments. - -2005-07-04 Daniel Berlin - - Fix PR tree-optimization/22279 - - * tree-ssa-structalias.c (offset_overlaps_with_access): Use - correct operator. - -2005-07-04 J"orn Rennecke - - * sh.c (output_ieee_ccmpeq): Replace "\\;" with "\n\t". - -2005-07-03 Joseph S. Myers - - * bb-reorder.c, c-pch.c, c-pragma.c, c.opt, cfghooks.c, cfgloop.c, - cfgrtl.c, cgraphunit.c, config/c4x/c4x.c, config/cris/cris.c, - config/frv/frv.c, config/host-darwin.c, config/iq2000/iq2000.c, - config/lynx.h, config/m68k/m68k.c, config/pa/pa.c, config/sh/sh.h, - config/stormy16/stormy16.c, config/v850/v850.c, - config/vax/netbsd-elf.h, coverage.c, dwarf2out.c, emit-rtl.c, - except.c, gcc.c, tree-cfg.c, tree-eh.c, tree-ssa.c, xcoffout.c: - Avoid "." or "\n" at end of diagnostics and capital letters at - start of diagnostics. - * combine.c, cse.c: Don't translate dump file output. - * toplev.c (print_version): Only translate output if going to - stderr. - -2005-07-03 Kazu Hirata - - * c-decl.c, tree-object-size.c, tree-vectorizer.c, - config/arm/unwind-arm.c, config/arm/unwind-arm.h: Fix comment - typos. - -2005-07-03 John David Anglin - - * pa.c (fix_range): Fix typo in comment. - -2005-07-03 Kazu Hirata - - * tree-vrp.c (extract_range_from_assert): Replace - fold (build (...)) with fold_build2. - -2005-07-03 Kaveh R. Ghazi - - * c-format.c (gcc_gfc_format_type, gcc_gfc_flag_pairs, - gcc_gfc_char_table, init_dynamic_gfc_info): New. - (format_types_orig, handle_format_attribute): Add support for - format "gcc_gfc". - -2005-07-03 Gabriel Dos Reis - - * varasm.c (assemble_variable): Fix format specifier thinko. - -2005-07-03 Ira Rosen - - PR tree-optimization/22029 (and 22135) - * tree-pretty-print.c (dump_generic_node): Check that the node is not - a phi node before calling dump_vops. - -2005-07-02 Gabriel Dos Reis - - * tree-dump.h (dump_string_field): Declare. - * tree-dump.c: Use it instead of dump_string. - (dump_string_field): Make non-static. - -2005-07-03 Kaz Kojima - - * config/sh/sh.c (sh_output_mi_thunk): Initialize and clean - up the minimal CFG stuff always when optimize > 0. Call - split_all_insns_noflow in PIC case if needed. - -2005-07-02 Gabriel Dos Reis - Christian Ehrhardt - - PR c++/18279 - * c-decl.c (c_write_global_declarations): Dump contents of - external scope to. - * tree-dump.c (dequeue_and_dump): Dump abstract origin of a decl. - , , , , - , : Add. - (dump_enabled_p): Return TRUE if PHASE is TDI_all and any dump - is enabled. - -2005-07-03 Joseph S. Myers - - * c-common.h (GCC_DIAG_STYLE): Define. - * c-tree.h (GCC_DIAG_STYLE): Do not define. Change minimum GCC - version for format checking to 4.1. - * c-format.c: Include toplev.h after c-common.h. - (enum format_type): Add gcc_tdiag_format_type. - (gcc_tdiag_length_specs, gcc_tdiag_flag_pairs, - gcc_tdiag_flag_specs, gcc_tdiag_char_table): New. - (format_types_orig): Add gcc_tdiag. - (init_dynamic_diag_info): Support gcc_tdiag formats. - (handle_format_attribute): Likewise. - * toplev.h (NO_FRONT_END_DIAG, ATTRIBUTE_GCC_FE_DIAG): Remove. - (GCC_DIAG_STYLE): Default to __gcc_tdiag__. Change minimum GCC - version for format checking to 4.1. - (warning0, warning, error, pedwarn, sorry): Use - ATTRIBUTE_GCC_DIAG. - * config/rs6000/rs6000.c (altivec_expand_builtin), varasm.c - (finish_aliases_1): Do not use %qE. - * config/arm/arm.c, config/i386/i386.c, config/mmix/mmix.c, - config/pdp11/pdp11.c, stor-layout.c, tree-eh.c, tree-ssa.c: - Correct format bugs. - * config/v850/v850-protos.h (v850_output_aligned_bss): Change size - parameter to unsigned HOST_WIDE_INT. - * config/v850/v850.c (v850_output_aligned_bss): Likewise. - -2005-07-02 David Edelsohn - - PR middle-end/21742 - * expr.c (write_complex_part): Use adjust_address for MEM. - (read_complex_part): Same. - -2005-07-02 Daniel Berlin - - Fix PR tree-optimization/22280 - - * tree-sra.c (generate_element_init): Remove useless loop. - -2005-07-02 Richard Henderson - - * config/alpha/alpha.c (alpha_legitimize_address): Check for - TLS_MODEL_NONE. - (alpha_stdarg_optimize_hook): Use DECL_UID with va_list_vars. - -2005-07-02 Andrew Pinski - - PR middle-end/14490 - * fold-const.c (fold_binary): Handle the return value of - fold_to_nonsharp_ineq_using_bound if we get back the same operand back. - Implement "X +- C1 CMP C2" folding to "X CMP C2 -+ C1". - -2005-07-02 Jeff Law - - * tree-ssa-dom.c (find_equivalent_equality_comparison): Do not - a eliminate type conversion which feeds an equality comparison - if the original type or either operand in the comparison is a - function pointer. - -2005-07-02 Joseph S. Myers - - * c.opt, common.opt, config/bfin/bfin.opt, config/pa/pa.opt, - config/rs6000/rs6000.opt, params.def: Remove "." from end of help - texts. - * config/avr/avr.c: Do not use '`' as left quote. - * config/rs6000/rs6000.c, config/s390/s390.c, opts.c, tree.c: - Remove "." from end of diagnostics. Make diagnostics start with - lowercase letter. - -2005-07-02 Zack Weinberg - Joseph S. Myers - - * toplev.c (default_tree_printer): Handle setting location with - '+' flag. - * c-objc.common.c (c_tree_printer): Likewise. - * c-format.c (gcc_diag_flag_specs): Add '+'. - (gcc_cdiag_char_table): Allow '+' flag for tree formats. - (format_types_orig): Allow '+' flag for gcc_diag and gcc_cdiag - formats. - * c-common.c, c-decl.c, c-objc-common.c, c-pragma.c, - config/arm/pe.c, config/i386/winnt.c, config/ia64/ia64.c, - config/mcore/mcore.c, config/sh/symbian.c, config/sol2.c, - config/v850/v850.c, function.c, stor-layout.c, toplev.c, - tree-inline.c, tree-optimize.c, tree.c, varasm.c: Use '+' flag - instead of %J or %H. Use 'q' flag for quoting. Avoid '.' at end - of diagnostics. Use %q+D not %s for a decl. Do not pass excess - format arguments where %J is used without %D. - -2005-07-02 Jakub Jelinek - - * gcc.c (LINK_SSP_SPEC): Define. - (link_ssp_spec): New variable. - (LINK_COMMAND_SPEC): Add %(link_ssp). - (static_specs): Add link_ssp_spec. - * configure.ac (TARGET_LIBC_PROVIDES_SSP): New test. - * configure: Rebuilt. - * config.in: Rebuilt. - - * config/rs6000/linux.h (TARGET_THREAD_SSP_OFFSET): Define. - * config/rs6000/linux64.h (TARGET_THREAD_SSP_OFFSET): Likewise. - * config/i386/linux.h (TARGET_THREAD_SSP_OFFSET): Likewise. - * config/i386/linux64.h (TARGET_THREAD_SSP_OFFSET): Likewise. - * config/rs6000/rs6000.md (stack_protect_set, stack_protect_test): - If TARGET_THREAD_SSP_OFFSET is defined, use -0x7010(13) resp. - -0x7008(2) instead of reading __stack_chk_guard variable. - * config/i386/i386.md (UNSPEC_SP_SET, UNSPEC_SP_TEST): Change - number. - (UNSPEC_SP_TLS_SET, UNSPEC_SP_TLS_TEST): New constants. - (stack_protect_set, stack_protect_test): Use *_tls* patterns - if TARGET_THREAD_SSP_OFFSET is defined. - (stack_tls_protect_set_si, stack_tls_protect_set_di, - stack_tls_protect_test_si, stack_tls_protect_test_di): New insns. - - Revert: - 2005-06-27 Richard Henderson - * libgcc-std.ver (GCC_4.1.0): New. - * libgcc.h (__stack_chk_guard): Declare. - (__stack_chk_fail, __stack_chk_fail_local): Declare. - * libgcc2.c (L_stack_chk, L_stack_chk_local): New. - * mklibgcc.in (lib2funcs): Add them. - -2005-07-01 Richard Henderson - - * config/i386/linux-unwind.h (x86_64_fallback_frame_state): Cast to - void * before struct sigcontext *. - (x86_fallback_frame_state): Likewise. - -2005-07-01 James E. Wilson - - * doc/invoke.texi (-funit-at-a-time): Correct grammar in second bullet. - -2005-07-01 Andrew Pinski - - PR tree-opt/22269 - * tree-ssa-reassoc.c (should_transpose): Fix which operand - we check for SSA_NAME for. - -2005-07-01 Daniel Berlin - - Fix PR tree-optimization/22071 - - * tree-ssa-structalias.c (offset_overlaps_with_access): New - function. - (get_constraint_for_component_ref): Use it. - -2005-07-01 Andrew Pinski - - PR other/22264 - * diagnostic.c (diagnostic_report_current_module): Use pp_newline to - print out the last new line. - -2005-07-01 Hans-Peter Nilsson - - * config/cris/cris.md (CRIS_CC0_REGNUM): New constant. - Swap numbers for CRIS_AP_REGNUM and CRIS_MOF_REGNUM. - * config/cris/cris.c (cris_conditional_register_usage): Adjust - reg_names[CRIS_CC0_REGNUM] for early CRIS versions. - (cris_print_operand) : Handle CRIS_CC0_REGNUM. - (cris_md_asm_clobbers): Clobber CRIS_CC0_REGNUM for all asms. - * config/cris/cris.h (CRIS_CANONICAL_CC0_REGNUM): New macro. - (enum reg_class): New member CC0_REGS. - (REG_CLASS_FROM_LETTER): Add 'c' for CC0_REGS. - (FIRST_PSEUDO_REGISTER, CALL_USED_REGISTERS, REG_ALLOC_ORDER) - (HARD_REGNO_MODE_OK, MODES_TIEABLE_P, REG_CLASS_NAMES) - (CRIS_SPECIAL_REGS_CONTENTS, REG_CLASS_CONTENTS, REGNO_REG_CLASS) - (PREFERRED_RELOAD_CLASS, REGISTER_NAMES, DBX_REGISTER_NUMBER): - Adjust for register now described. - -2005-07-01 Jakub Jelinek - - PR target/22262 - * config/i386/i386.md (stack_protect_test_si, - stack_protect_test_di): Add earlyclobber for scratch 3. - * config/rs6000/rs6000.md (stack_protect_testsi, - stack_protect_testdi): Add earlyclobber for scratch 3, - remove earlyclobber from scratch 4. - -Older entries for 2005 can be found in ChangeLog-2005. diff --git a/gcc/ChangeLog-2005 b/gcc/ChangeLog-2005 index 8e40f04eba7..c5604c4ba73 100644 --- a/gcc/ChangeLog-2005 +++ b/gcc/ChangeLog-2005 @@ -1,3 +1,13163 @@ +2005-12-31 Andrew Pinski + + PR tree-opt/25612 + * tree-ssa-pre.c (compute_avail): Treat the static chain decl as a + parameter and pretend that it is defined in the entry basic block. + +2005-12-30 Kazu Hirata + + * tree-outof-ssa.c (_elim_graph): Change the type of STACK to + VEC(int,heap). + (new_elim_graph, delete_elim_graph, elim_forward, + eliminate_phi): Use the VEC API on STACK. + +2005-12-29 Daniel Berlin + + * tree.h (VALUE_HANDLE_VUSES): New. + (struct tree_value_handle): Add vuses. + + * tree-vn.c (struct val_expr_pair_d): Remove stmt, add vuses. + (vn_compute): Remove stmt argument. + Don't use vuses in hash value computation. + (val_expr_pair_eq): Compare vuse lists. + (copy_vuses_from_stmt): New function. + (shared_vuses_from_stmt): Ditto. + (vn_add): Rewrite in terms of vn_add_with_vuses. + (vn_add_with_vuses): New function. + (vn_lookup): Rewrite in terms of vn_lookup_with_vuses. + (vn_lookup_with_vuses): New function. + (vuses_compare): New function. + (print_creation_to_file): Ditto. + (vn_lookup_or_add): Rewrite to handle vuses. + (sort_vuses): New function. + (vn_lookup_or_add_with_vuses): Ditto. + (vn_init): Initialize shared_lookup_vuses. + (vn_delete): Free shared_lookup_vuses. + + * tree-ssa-pre.c: Update todo list. + (bb_value_sets_t): Add rvuse_in, rvuse_out, rvuse_gen, and + rvuse_kill. + (RVUSE_IN): New macro. + (RVUSE_GEN): Ditto. + (RVUSE_KILL): Ditto. + (RVUSE_OUT): Ditto. + (modify_expr_node_pool): New function. + (pretemp): New. + (storetemp): Ditto. + (mergephitemp): Ditto. + (prephitemp): Ditto. + (struct expr_pred_trans_d): Add vuses member. + (expr_pred_trans_eq): Compare vuses. + (phi_trans_lookup): Add vuses argument. + (phi_trans_add): Ditto. + (translate_vuses_through_block): New function. + (phi_translate): Use vuses to ask about those expressions that can + have vuses. + Properly translate virtual uses through phis, and use + vn_lookup_or_add_with vuses. Handle tcc_reference. + (phi_translate_set): Don't add pointless translations to the + cache. + (get_representative): New function. + (vuses_dies_in_block_x): Ditto. + (valid_in_set): Add block argument. Check virtual use validity. + (clean): Add block argument. Update call to valid_in_set + (compute_antic_aux): Update call to clean. + (dump_bitmap_of_names): New function. + (compute_vuse_representatives): Ditto. + (compute_rvuse): Ditto. + (can_value_number_call): Modified to accept calls with vuses. + (can_value_number_operation): New function. + (can_PRE_operation): Ditto. + (need_creation): New vector of stores that may need creation. + (find_or_generate_expression): use can_PRE_operation. + (create_expression_by_pieces): Handle INDIRECT_REF. + Only create one temp until we have to change types. + Mark new vars for renaming. + (insert_into_preds_of_block): Ignore loopiness of loads. + Use can_PRE_operation. + Only create one temp until we have to chnge types. + (insert_aux): Use can_PRE_operation. + Don't pass name to insert_into_preds_of_block. + (insert_extra_phis): Only use one temp until we have to change + types. + (poolify_tree): New function. + (modify_expr_template): New var. + (poolify_modify_expr): New function. + (insert_fake_stores): Ditto. + (realify_fake_stores): Ditto. + (compute_avail): Use can_value_number_operation. + (mark_operand_necessary): Return NULL for non-SSA names. + (remove_dead_inserted_code): Update comment. + (init_pre): Initialize pretemp, need_creation, storetemp, + mergephitemp, prephitemp. + Create modify_expr_node_pool. + (fini_pre): Free modify_expr_node_pool and need_creation array. + (execute_pre): Call insert_fake_stores, compute_rvuse, and + realify_fake_stores. + * tree-flow.h (vn_compute): Fix prototype. + (vn_add): Ditto. + (vn_lookup): Ditto. + (sort_vuses): New. + (vn_lookup_or_add_with_vuses): Ditto. + (vn_add_with_vuses): Ditto. + (vn_lookup_with_vuses): Ditto. + * passes.c (pass_may_alias): Add. + +2005-12-30 Gabriel Dos Reis + + * c-pretty-print.h (struct c_pretty_print_info): Add new member + "constant". + (pp_constant): New macro. + * c-pretty-print.c (pp_c_pretty_printer_init): Set pp->constant. + +2005-12-30 John David Anglin + + PR fortran/25586 + * pa.md: Remove REG_POINTER check from REG+REG peephole2 floating-point + store patterns. + +2005-12-29 Mike Stump + + * doc/invoke.texi (Objective-C and Objective-C++ Dialect Options + -fobjc-exceptions): Don't imply this doesn't work with the GNU + runtime. + +2005-12-29 Nathan Sidwell + + * varasm.c (get_section): Use gcc_assert. + +2005-12-29 Paul Brook + + * config/m68k/m68k.h (RETURN_ADDR_RTX): Define. + * config/m68k/m68k.c (m68k_initial_elimination_offset): Remove FIXME. + Include offset due to FIRST_PARM_OFFSET. + +2005-12-29 Paul Brook + + * config/m68k/lb1sf68.asm (__cmpdf2): Fix typo in immediate mask. + Create wrapper and rename body... + (__cmpdf2_internal): ... to this. Return correct value for unordered + result. + (__cmpsf2): Create wrapper and rename body... + (__cmpsf2_internal): ... to this. Return corerct value for unordered + result. + (__eqdf2, __nedf2, __gtdf2, __gedf2, __ltdf2, __ledf2): Use + __cmpdf2_internal. + (__eqsf2, __nesf2, __gtsf2, __gesf2, __ltsf2, __lesf2): Use + __cmpsf2_internal. + +2005-12-29 Paul Brook + + * config/m68k/fpgnulib.c (__extendsfdf2): Handle negative zero. + (__truncdfsf2): Ditto. + (__extenddfxf2): Ditto. + (__truncxfdf2): Ditto. + * config/m68k/lb1sf68.asm (__addsf3): Return -0.0 for -0.0 + -0.0. + (__adddf3): Ditto. + +2005-12-29 Daniel Jacobowitz + Paul Brook + + * config/m68k/m68k.c (m68k_output_pic_call): Don't use bsr.l for + !TARGET_68020. + * config/m68k/t-m68kelf (EXTRA_PARTS): Remove. + (EXTRA_MULTILIB_PARTS): Set. + * config/m68k/t-uclinux (EXTRA_PARTS): Remove. + (EXTRA_MULTILIB_PARTS): Set. + +2005-12-29 Alan Modra + + PR target/25572 + * config/rs6000/rs6000.c (create_TOC_reference): Set regs_ever_live. + +2005-12-28 Nathan Sidwell + + * config.gcc (mt-*-*): Add --with-arch support. + (--with): Print accepted options on error. + * config/mt/mt.h (OPTION_DEFAULT_SPECS): Define. + + * config/mt/mt.c (DEF_VEC_P(basic_block), + DEF_VEC_ALLOC_P(basic_bloc,heap)): Remove from here. + +2005-12-28 Daniel Berlin + + Fix PR tree-optimization/25394 + * fold-const.c (fold_checksum_tree): Guard + portions of checksumming with correct structure checks. + +2005-12-27 Kazu Hirata + + * global.c, tree-ssa-pre.c: Move DEF_VEC_P(basic_block) and + DEF_VEC_ALLOC_P(basic_block,{gc,heap}) to ... + * basic-block.h: ... here. + +2005-12-27 Roger Sayle + + * fold-const.c (int_const_binop): Return NULL_TREE when an expression + can't be evaluated at compile-time (instead of calling abort). + Return NULL_TREE for division (and modulus) by zero. + (const_binop): Return NULL_TREE for floating point operators that + aren't handled by real_arithmetic. + (fold_binary): Eliminate "wins" variable, and "binary" label, by + folding operators with constant operands early. Assert that + operands are non-NULL. + +2005-12-27 Kazu Hirata + + * tree-vrp.c (extract_range_from_binary_expr): Use + build_int_cst instead of fold_convert. + +2005-12-26 Mark Mitchell + + PR c++/23171, c++/23172, c++/25417. + * c-decl.c (compound_literal_number): Remove. + (build_compound_literal): Use set_compound_literal_name. + * c-common.c (compound_literal_number): New variable. + (set_compound_literal_name): New function. + * c-common.h (set_compound_literal_name): Declare. + +2005-12-26 Kazu Hirata + + PR tree-optimization/25125 + * convert.c (convert_to_integer): Don't narrow the type of a + PLUX_EXPR or MINUS_EXPR if !flag_wrapv and the unwidened type + is signed. + +2005-12-26 Graham Stott + + PR middle-end/25568 + * combine.c (simplify_shift_const_1 ):Fix enable-checking + rtl bootstrap failure. + +2005-12-25 Kazu Hirata + + * final.c (compute_alignments): Make it static. + * gcse.c (gcse_main, bypass_jumps): Likewise. + * web.c (web_main): Likewise. + * output.h: Remove the prototype for compute_alignments. + * rtl.h: Remove the prototypes for web_main, gcse_main, and + bypass_jumps. + +2005-12-24 Roger Sayle + + * expr.c (force_operand): Use expand_fix and expand_float to + implement integer <-> FP conversions instead of convert_to_mode. + +2005-12-24 Mark Mitchell + + PR c++/23171 + * varasm.c (initializer_constant_valid_p): An ADDR_EXPR of a + CONSTRUCTOR is invalid. + +2005-12-23 Daniel Berlin + + * tree-pass.h (pass_eliminate_useless_stores): Remove. + * tree-ssa-pre.c (is_copy_stmt): Ditto. + (follow_copies_till_vuse): Ditto. + (do_eustore): Ditto. + (gate_eustores): Ditto. + (pass_eliminate_useless_stores): Ditto. + * passes.c (init_optimization_passes): Ditto. + +2005-12-23 Paolo Bonzini + + * combine.c (simplify_shift_const): Fix typo. Use, whenever + applicable, simplify_const_binary_operation. + + (simplify_shift_const): Leave only the fallback + case when no simplification is possible. Extract to... + (simplify_shift_const_1): ... here. Always create a new + RTX instead of substituting. Remove the signed_count variable. + Return NULL_RTX if no substitution is possible. + + (simplify_and_const_int): Leave only the fallback + case when no simplification is possible. Extract to... + (simplify_and_const_int_1): ... here. Always create a new + RTX instead of substituting. Return NULL_RTX if no substitution + is possible. + + (force_to_mode, simplify_comparison): Don't pass a non-NULL first + parameter to simplify_and_const_int and simplify_shift_const, + unless it is equal to the expected non-simplified result. + +2005-12-23 Jakub Jelinek + + PR target/25005 + * regrename.c (replace_oldest_value_reg): Use validate_change with + IN_GROUP set to 1 instead of doing direct modifications. + (copyprop_hardreg_forward_1): Likewise. If any replace_oldest_* + replacements have been performed on an instruction, use + apply_change_group (). + +2005-12-23 Hans-Peter Nilsson + + * config/cris/arit.c (do_31div): Clarify what "31" refers to. + [L_divsi3] (__Udiv): Don't use as inline function. + [L_modsi3] (__Umod): Ditto. + (__Div): Rearrange to call do_31div directly instead of __Udiv. + (__Mod): Similarly regarding __Umod. + + PR target/24342 + * config/cris/cris.c (cris_split_movdx): Add REG_INC notes for + emitted insns with post-increments. + (cris_expand_epilogue): Ditto. + +2005-12-22 Jakub Jelinek + Richard Henderson + + Merge from gomp-branch. + * builtins.def: Move all DEF_SYNC_BUILTIN to ... + * sync-builtins.def: ... new file. + (BUILT_IN_FETCH_AND_ADD_16, + BUILT_IN_FETCH_AND_SUB_16, BUILT_IN_FETCH_AND_OR_16, + BUILT_IN_FETCH_AND_AND_16, BUILT_IN_FETCH_AND_XOR_16, + BUILT_IN_FETCH_AND_NAND_16, BUILT_IN_ADD_AND_FETCH_16, + BUILT_IN_SUB_AND_FETCH_16, BUILT_IN_OR_AND_FETCH_16, + BUILT_IN_AND_AND_FETCH_16, BUILT_IN_XOR_AND_FETCH_16, + BUILT_IN_NAND_AND_FETCH_16, BUILT_IN_BOOL_COMPARE_AND_SWAP_16, + BUILT_IN_VAL_COMPARE_AND_SWAP_16, BUILT_IN_LOCK_TEST_AND_SET_16, + BUILT_IN_LOCK_RELEASE_16): New builtins. + * builtin-types.def (BT_I16, BT_FN_I16_VPTR_I16, + BT_FN_BOOL_VPTR_I16_I16, BT_FN_I16_VPTR_I16_I16): Add. + * builtins.c (expand_builtin): Handle sync BUILT_IN_*_16 builtins. + * c-common.c (enum c_builtin_type): Move to top-level from + c_common_nodes_and_builtins enum builtin_type. + (builtin_types): Move from c_common_nodes_and_builtins. + (def_fn_type): New. + (c_common_nodes_and_builtins): Use it. + (def_builtin_1): Check for error_mark_node. + (sync_resolve_size): Handle also 128 bit sync builtins. + * Makefile.in (BUILTINS_DEF): New. Use it instead of builtins.def. + + * config/i386/i386.h (x86_cmpxchg8b, x86_cmpxchg16b): New decls. + (TARGET_CMPXCHG8B, TARGET_CMPXCHG16B): Define. + * config/i386/i386.c (x86_cmpxchg8b, x86_cmpxchg16b): New variables. + * config/i386/sync.md (CASMODE, DCASMODE): New mode macros. + (doublemodesuffix, DCASHMODE): New mode attrs. + (sync_compare_and_swap): Change into expand, use CASMODE + instead of IMODE, if mode is wider than a word, expand into + sync_double_compare_and_swap*. + (*sync_compare_and_swap): New insn. + (sync_double_compare_and_swap): Likewise. + (*sync_double_compare_and_swapdi_pic): Likewise. + (sync_compare_and_swap_cc): Use CASMODE instead of IMODE, if + mode is wider than a word, expand into + sync_double_compare_and_swap_cc*. + (sync_double_compare_and_swap_cc): New insn. + (*sync_double_compare_and_swap_ccdi_pic): Likewise. + +2005-12-22 Richard Henderson + + * config/i386/mmintrin.h (_mm_add_si64): Only define for SSE2. + (_mm_sub_si64): Likewise. + * config/i386/xmmintrin.h (_mm_shuffle_pi16, _m_pshufw): Likewise. + +2005-12-23 Alan Modra + + PR rtl-optimization/25432 + * reload1.c (eliminate_regs_in_insn): Update insn code on + successfully re-recognizing modified insn. + +2005-12-22 Richard Guenther + + * tree.c (tree_fold_gcd): Use build_int_cst where appropriate. + * tree-ssa-loop-ivcanon.c (create_canonical_iv): Likewise. + * varasm.c (array_size_for_constructor): Likewise. + * fold-const.c (size_diffop, invert_truthvalue, + optimize_bit_field_compare, make_range, build_range_check, + fold_cond_expr_with_comparison, fold_truthop, + fold_single_bit_test_into_sign_test, fold_binary): Likewise. + +2005-12-22 Dale Johannesen + + * config/i386/sse.md (sse_movhlps): Reverse operands for + 2nd and 3rd alternatives. + +2005-12-22 Andrew Pinski + + PR tree-opt/25513 + * tree-dfa.c (make_rename_temp): Set DECL_COMPLEX_GIMPLE_REG_P complex + variables. + +2005-12-22 Zdenek Dvorak + Steven Bosscher + + * 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_find_def, df_reg_used): Handle subregs. + * df.h (df_find_use): Declare. + + * loop-invariant.c: Include hashtab.h. + (struct invariant): Remove processed field, add eqto and reg fields. + (struct invariant_expr_entry): New. + (invariant_for_use, hash_invariant_expr_1, invariant_expr_equal_p, + hash_invariant_expr, eq_invariant_expr, find_or_insert_inv, + find_identical_invariants, merge_identical_invariants): New functions. + (create_new_invariant): Return the new invariant. Initialize new + fields. + (find_invariants): Call merge_identical_invariants. + (get_inv_cost, best_gain_for_invariant, set_move_mark, + move_invariant_reg): Handle equivalent invariants. + * Makefile.in (loop-invariant.o): Add HASHTAB_H dependency. + +2005-12-22 Volker Reichelt + + PR c++/23333 + * c-lex.c (c_lex_with_flags): Add PURE_ZERO to cpp_flags if + number is a single digit '0'. + +2005-12-22 Kazu Hirata + + PR tree-optimization/23518 + * fold-const.c (make_range): Don't move a constant to the + other side of the comparison if the type is signed and -fwrapv + is given. + +2005-12-22 Kazu Hirata + + * tree-vrp.c (extract_range_from_binary_expr): Clean up uses + of vr0.type. + +2005-12-21 Joseph S. Myers + + PR middle-end/24998 + * config/arm/t-arm-elf (LIB1ASMFUNCS): Add _floatundidf and + _floatundisf. + +2005-12-21 Andrew Haley + + PR middle-end/25121 + * recog.c (peephole2_optimize): Don't peephole any + RTX_FRAME_RELATED_P insns. + +2005-12-21 Kazu Hirata + + * tree-data-ref.c (estimate_niter_from_size_of_data): Replace + fold_build2 with fold_binary. + * tree-ssa-ccp.c (visit_assignment, maybe_fold_stmt_addition): + Replace fold_build1 with fold_unary. + * tree-ssa-reassoc.c (optimize_ops_list): Replace fold_build2 + with fold_binary. + +2005-12-21 Steven Bosscher + + PR rtl-optimization/25196 + * postreload-gcse.c (record_last_set_info): Notice stack pointer + changes in push insns without REG_INC notes. + +2005-12-21 Kazu Hirata + + PR tree-optimization/25382. + * tree-vrp.c (extract_range_from_binary_expr): Extract a range + from BIT_AND_EXPR. + +2005-12-21 Janis Johnson + Ben Elliston + + * configure.ac: Enable C extension for decimal float if invoked + with --enable-decimal-float. + * doc/install.texi (Configuration): Document it. + * configure, config.in: Regenerate. + +2005-12-20 Mike Stump + + * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Handle the + ambiguity between -seg_addr_table and -seg_addr_table_filename. + (WORD_SWITCH_TAKES_ARG): Likewise. + (LINK_SPEC): Likewise. + +2005-12-20 Kenneth Zadeck + + * cfganal.c (flow_reverse_top_sort_order_compute): + Renamed to post_order_compute and additional parameter added which + allows the inclusion of entry and exit blocks into list. + (mark_dfs_back_edges): Fixed comment. + (flow_depth_first_order_compute): Renamed to + pre_and_rev_post_order_compute additional parameter added which + allows the inclusion of entry and exit blocks into list. + * global.c (set_up_bb_rts_numbers): Call to + flow_reverse_top_sort_order_compute renamed to + post_order_compute. + * var-tracking.c (vt_stack_adjustments): Fixed comment. + (vt_find_locations): Call to + flow_depth_first_order_compute renamed to + pre_and_rev_post_order_compute. + * cfgloop.c (flow_find_loops): Ditto. + * tree-ssa-reassoc.c (init_reassoc): Ditto. + * df.c (df_analyze_1, df_analyze_subcfg): Calls to + flow_reverse_top_sort_order_compute renamed to post_order_compute + and calls to flow_reverse_top_sort_order_compute renamed to + post_order_compute. + * basic_block.h: Ditto. + + +2005-12-20 Roger Sayle + Paolo Bonzini + + PR rtl-optimization/25115 + * gcse.c (pre_insert_copy_insn): Fall back to the sole + SET in the insn if there is no SET for an + expression that is equivalent to EXPR. + +2005-12-20 Richard Guenther + + PR middle-end/24306 + * builtins.c (std_gimplify_va_arg_expr): Do not align + va frame for zero sized types. + * config/i386/i386.c (ix86_gimplify_va_arg): Likewise. + +2005-12-20 Kazu Hirata + + PR tree-optimization/25501 + * tree-cfgcleanup.c (merge_phi_nodes): Check that RESULT is + used in the PHI argument corresponding to the edge from BB to + DEST. + +2005-12-20 Richard Guenther + + Revert + 2005-12-02 Richard Guenther + + * tree-cfg.c (mark_used_vars): New function. + (dump_function_to_file): Dump only used VAR_DECLs. + +2005-12-19 Roger Sayle + + * combine.c (try_combine): Improve splitting of binary operators + by taking advantage of reassociative transformations. + +2005-12-19 Jeff Law + + * tree-ssa-dom.c (thread_across_edge): Do not use local_fold. + Strip away all type conversions after simplifying the + condition. + + * tree-cfgcleanup.c (merge_phi_nodes): Allow merging in some + cases the forwarder block dominates the destination. + +2005-12-19 DJ Delorie + + * reload1.c (spill_failure): Dump reload data to dump file. + (find_reload_regs): Likewise. + +2005-12-19 Zdenek Dvorak + + PR tree-optimization/24793 + * tree-ssa-loop-ivopts.c (get_ref_tag): Remember the + original reference if there are subvars. + * tree-ssa-operands.c (get_tmr_operands): Handle subvars. + +2005-12-19 Kenneth Zadeck + + * df.c (df_analyze_1, df_analyze_subcfg, iterative_dataflow): + Corrected basic block number calculations for changes in entry and + exit numbering. + +2005-12-19 Zdenek Dvorak + + * tree-flow.h (struct var_ann_d): Change type of + may_aliases field to VEC(tree, gc) *. + (may_aliases): Declaration changed. + * tree-ssa-alias.c (group_aliases, add_may_alias, + replace_may_alias, dump_may_aliases_for, + is_aliased_with, add_type_alias, new_type_alias): + Work with VEC(tree, gc) * instead of varray. + * tree-flow-inline.h (may_aliases): Ditto. + * tree-ssa.c (verify_flow_insensitive_alias_info, + verify_name_tags): Ditto. + * tree-ssa-operands.c (add_stmt_operand): Ditto. + +2005-12-19 J"orn Rennecke + + * cfgcleanup.c: Temporarily revert patches for PR 20070 till Bernd + comes back. + +2005-12-19 J"orn Rennecke + + * struct-equiv.c (struct_equiv_improve_checkpoint): Fix sets_cc0_p + check. + +2005-12-19 Ben Elliston + + * doc/install.texi (Configuration): Typo in Fortran subheading. + +2005-12-19 Nathan Sidwell + + * config/mt/mt.md (decrement_and_branch_until_zero): Add another + scratch. Correct its reload split. Adjust its peephole. + (doloop_end): Add additional scratch. + (nop): Use 'nop'. + * config/mt/mt.c (MT_INT_ARG_FIRST): Remove. + (mt_asm_output_opcode, mt_print_operand): Use 'nop'. + (mt_function_arg_slotno): Use FIRST_ARG_REGNUM. + (mt_builtin_saveregs): Replace with ... + (mt_setup_incoming_varargs): ... here. Save just the varadic + args. + (mt_va_start): Remove. + (mt_reorg_hazard): Ignore USE insns. Don't call set_noop_p. + (mt_machine_reorg): Split all insns here. + (TARGET_SETUP_INCOMING_VARARGS): Override. + * config/mt/mt.h (TARGET_CPU_CPP_BUILTINS): Define __mt__ only. + Set to CPU type. + (EXPAND_BUILTIN_VA_START): Remove. + +2005-12-17 Kenneth Zadeck + + * flow.c (update_life_info, count_or_remove_death_notes): Fixed + latent bug that could happen if update_life_info was called with a + blocks parameter and the call to cleanup_cfg actually deleted one + of those blocks. + +2005-12-19 Zdenek Dvorak + + * tree-ssa-structalias.c (update_alias_info): Remove handling + of may_be_aliased (SSA_NAME_VAR (op)) case. + +2005-12-19 Zdenek Dvorak + + * tree-flow.h (struct stmt_ann_d): Remove + makes_aliased_loads and makes_aliased_stores fields. + * tree-ssa-ccp.c (likely_value): Do not use makes_aliased_stores + and makes_aliased_loads fields. + * tree-ssa-dom.c (eliminate_redundant_computations): Do not + use makes_aliased_stores. + * tree-ssa-operands.c (clobbered_aliased_loads, + clobbered_aliased_stores, ro_call_aliased_loads): Removed. + (build_ssa_operands, add_stmt_operand, add_call_clobber_ops, + add_call_read_ops): Do not set makes_aliased_stores and + makes_aliased_loads fields. + * tree-ssa.c (verify_ssa): Do not verify makes_aliased_stores + field. + +2005-12-18 Geoffrey Keating + + * config/darwin.h: Don't include darwin-sections.def to declare + global variables; instead create darwin_section_enum. + (darwin_section_enum): New. + (darwin_sections): New. + * config/darwin.c: Don't include darwin-sections.def to define + global variables. + (darwin_sections): New. + (output_objc_section_asm_op): Rewrite to take advantage of + darwin_sections. + (darwin_init_sections): Rewrite to use darwin_sections. + (machopic_output_indirection): Update for darwin_sections array. + (machopic_select_section): Likewise. + (machopic_select_rtx_section): Likewise. + (machopic_asm_out_constructor): Likewise. + (machopic_asm_out_destructor): Likewise. + (darwin_file_end): Likewise. + * config/rs6000/rs6000.c (machopic_output_stub): Likewise. + * config/i386/i386.c (machopic_output_stub): Likewise. + +2005-12-18 Richard Guenther + + PR tree-optimization/25481 + * tree-ssa-structalias.c (handle_ptr_arith): Handle accesses we + don't have a varinfo for. + +2005-12-18 Jon Grimm + Janis Johnson + Ben Elliston + + * optabs.c (init_floating_libfuncs): Handle decimal float modes. + (init_optabs): Handle libfuncs for decimal float. + * genopinit.c (gen_insn): Handle MODE_DECIMAL_FLOAT. + * stor-layout.c (int_mode_for_mode): Likewise. + * simplify-rtx.c (simplify_immed_subreg): Likewise. + (simplify_unary_operation_1): Skip optimisations for decimal float + modes. + * varasm.c (output_constant_pool_2): Handle MODE_DECIMAL_FLOAT. + * emit-rtl.c (gen_const_vector): Add assertion check. + (init_emit_once): Populate const_tiny_rtx with constants in each + decimal float mode. + * expmed.c (extract_high_half, expand_mult_highpart_optab, + expand_mult_highpart): Assert that mode is not a scalar float + mode. + * expr.c (convert_move): Handle conversion between decimal and + binary floats of the same size. + * convert.c (convert_to_real): Consider decimal float types when + folding. + * dwarf2out.c (base_type_die): Use DW_ATE_decimal_float to + describe decimal floating point types. + +2005-12-18 Ulrich Weigand + + PR rtl-optimization/21041 + * reload.c (find_reloads_subreg_address): Replace paradoxical + subreg of MEM by widened access only if the resulting memory + is properly aligned, even on !STRICT_ALIGNMENT targets. + +2005-12-18 Andreas Krebbel + + * tree-cfg.c (tree_flow_call_edges_add): Check for empty basic blocks. + +2005-12-18 Steven Bosscher + + * gcse.c (gcse_main, bypass_jumps): Fix non-GNU-isms from + the 2005-12-17 patch to renumber the entry and exit blocks. + +2005-12-18 Gabriel Dos Reis + + * doc/objc.texi (Type encoding): Fix typo. + +2005-12-17 Gabriel Dos Reis + + * tree-tailcall.c (find_tail_calls): Use XNEW. + * tree-ssa-dom.c (allocate_edge_info): Use XCNEW. + (free_all_edge_infos): Use explicit cast to convert from void *. + (vrp_free): Likewise. + (dom_opt_finalize_block): Likewise. + (record_equivalences_from_incoming_edge): Likewise. + (thread_across_edge): Likewise. Use XCNEWVEC. + (record_cond): Use XCNEW. + (record_conditions): Use XNEWVEC. + (record_edge_info): Use XCNEWVEC. + (lookup_avail_expr): Use XNEW. + (record_range): Likewise. Use GGC_NEW. + * tree-nested.c (var_map_hash): Use explicit cast to convert from + void *. + (var_map_eq): Likewise. + (lookup_field_for_decl): Likewise. + (convert_nonlocal_reference): Likewise. + (convert_local_reference): Likewise. + (convert_nl_goto_reference): Likewise. + (convert_nl_goto_receiver): Likewise. + (convert_call_expr): Likewise. + (convert_tramp_reference): Likewise. + (lookup_tramp_for_decl): Likewise.Use GGC_NEW. + (convert_nl_goto_reference): Likewise. + (lookup_field_for_decl): Use GGC_NEW. + (create_nesting_tree): Use GGC_CNEW. + * tree-ssa-phiopt.c (blocks_in_phiopt_order): Use XNEWVEC. + * tree-ssa-alias.c (init_alias_info): Use XCNEW. + (create_alias_map_for): Likewise. + (setup_pointers_and_addressables): Use XCNEWVEC. + (get_ptr_info): Use GGC_NEW. + (used_part_map_eq): Use explicit cast to convert from void *. + (up_lookup): Likewise. + (up_insert): Use XNEW. + (get_or_create_used_part_for): Use XCNEW. + (get_tmt_for): Likewise. + * tree-ssa-operands.c (ssa_operand_alloc): Use GGC_NEW. + * tree-ssa-pre.c (phi_trans_add): Use XNEW. + (bitmap_set_new): Use explicit cast to convert from void *. + (set_new): Likewise. + (insert_into_set): Likewise. + (pool_copy_list): Likewise. + (phi_translate): Likewise. + (create_value_expr_from): Likewise. + (insert_aux): Use XCNEWVEC. + (compute_avail): Use XNEWVEC. + * tree-ssa-live.c (calculate_live_on_entry): Likewise. + (sort_coalesce_list): Likewise. + (build_tree_conflict_graph): Use XCNEWVEC. + * tree-ssa-dce.c (tree_dce_init): Use XNEWVEC. + * tree-ssa-copy.c (init_copy_prop): Likewise. + (fini_copy_prop): Likewise. + * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use XNEW + and XCNEWVEC. + (record_equiv): Use XNEW. + (uncprop_into_successor_phis): Use explicit cast to convert from + void *. + (uncprop_initialize_block): Likewise. + +2005-12-18 Dorit Nuzman + + PR tree-optimization/24378 + * tree-vect-transform.c (vect_transform_loop): Create single-predecessor + basic-block after loop-versioning. + +2005-12-18 Jeff Law + + * tree-ssa-dom.c (simplify_switch_and_lookup_avail_expr): Code + to simplify SWITCH_EXPR_CODE moved from here to ... + * tree-ssa-forwprop.c (simplify_switch_expr): Here. + (tree-ssa-forward_propagate_single_use_vars): Call + simplify_switch_expr when appropriate. + +2005-12-17 Andrew Pinski + + * doc/objc.texi (Type encoding): Add documentation about encoding + complex types and _Bool. + +2005-12-17 Paul Brook + + * config/m68k/m68k.md (m68k_output_function_prologue): Always call + dwarf2out_def_cfa. Only add space for frame pointer to cfa_offset + when frame_pointer_needed. + +2005-12-17 Gabriel Dos Reis + + * tree-vn.c (vn_add): Use XNEW. + * tree-ssa-ccp.c (ccp_initialize): Use XNEWVEC. + (ccp_fold): Likewise. + (fold_stmt_r): Use explicit cast to convert from void *. + * tree-outof-ssa.c (new_temp_expr_table): Use XCNEWVEC. + (new_temp_expr_table): Likewise. + * gimplify.c (lookup_tmp_var): Use XNEW. + (gimplify_asm_expr): Use explcit cast to convert from void *. + * tree-into-ssa.c (get_ssa_name_ann): Likewise. + (get_def_blocks_for): Use XNEW. + (add_to_repl_tbl): Likewise. + (mark_def_sites): Use explicit cast to convert from void *. + (def_blocks_free): Likewise. + (mark_def_sites_initialize_block): Likewise. + (update_ssa): Use XNEWVEC. + * tree-dfa.c (create_var_ann): Use GGC_NEW. + (create_stmt_ann): Likewise. + (create_tree_ann): Likewise. + (referenced_var_insert): Likewise. + (set_default_def): Likewise. + (referenced_var_lookup_if_exists): Use explicit cast to convert + from void *. + (referenced_var_lookup): Likewise. + (default_def): Likewise. + (set_default_def): Likewise. + * tree-cfg.c (create_bb): Likewise. + (edge_to_cases_cleanup): Likewise. + (verify_node_sharing): Likewise. + (record_switch_edge): Use XNEW. + (cleanup_dead_labels): Use XCNEWVEC. + (tree_duplicate_sese_region): Use XNEWVEC. + * tree-scalar-evolution.c (get_instantiated_value): Likewise. + * tree-ssa.c (verify_ssa): Use XCNEWVEC. + (int_tree_map_eq): Use explicit cast to convert from void *. + * libgcov.c (gcov_exit): Use explicit cast to convert from void *. + (__gcov_execl): Likewise. + (__gcov_execlp): Likewise. + (__gcov_execle): Likewise. + * tree-eh.c (struct_ptr_eq): Likewise. + (struct_ptr_hash): Likewise. + (lookup_stmt_eh_region_fn): Likewise. + (outside_finally_tree): Likewise. + (find_goto_replacement): Likewise. + (make_eh_edge): Likewise. + (mark_eh_edge): Likewise. + (add_stmt_to_eh_region_fn): Use GGC_NEW. + (record_in_finally_tree): Use XNEW. + (maybe_record_in_goto_queue): Use XRESIZEVEC. + (lower_try_finally_copy): Use XCNEWVEC. + +2005-12-17 Gabriel Dos Reis + + * tree-inline.c (copy_body_r): Use explicit cast when converting + from void *. + (copy_bb): Likewise. + (copy_edges_for_bb): Likewise. + (remap_decl_1): Likewise. + (estimate_num_insns_1): Likewise. + * cgraph.c (hash_node): Use explicit cast when converting from + void *. + (eq_node): Likewise. + (cgraph_create_node): Use GGC_CNEW. + (cgraph_create_edge): Use GGC_NEW. + (cgraph_remove_node): Use explicit cast when converting from void *. + (hash_varpool_node): Likewise. + (eq_varpool_node): Likewise. + (cgraph_varpool_node): Use GGC_CNEW. + * lambda.h (lambda_vector_new): Use GGC_CNEWVEC. + * tree-scalar-evolution.c (new_scev_info_str): Use XNEW. + (eq_scev_info): Use explicit cast when converting from void *. + (find_var_scev_info): Likewise. + (set_instantiated_value): Likewise. + (gather_stats_on_scev_database_1): Likewise. + * cfgloop.h (simple_loop_desc): Use explicit cast when converting + from void *. + * c-pch.c (c_common_write_pch): Use XNEWVEC. + (c_common_read_pch): Likewise. + * prefix.c (save_string): Use XNEWVEC. + (translate_name): Use explicit cast when converting from void *. + * c-ppoutput.c (print_line): Use explicit cast when converting + from void *. + (pp_dir_change): Likewise. + * c-cppbuiltin.c (builtin_define_std): Likewise. + (builtin_define_with_value): Likewise. + (builtin_define_with_value_n): Likewise. + (builtin_define_with_int_value): Likewise. + (builtin_define_type_max): Likewise. + * c-incpath.c (add_env_var_paths): Use XNEWVEC. + (add_path): Use XNEW. + * c-format.c (check_format_info_main): Use GGC_NEW. + (format_type_warning): Use explicit cast when converting from void *. + * c-typeck.c (alloc_tagged_tu_seen_cache): Use XNEW instead of + xmalloc. + (start_init): Likewise. + * tree-flow-inline.h (first_referenced_var): Use explicit cast + when converting from void *. + (next_referenced_var): Likewise. + * c-pragma.c (push_alignment): Use GGC_NEW instead of ggc_alloc. + * gensupport.c (lookup_predicate): Use explicit cast to convert + from void *. + (init_predicate_table): Use XCNEW instead of xcalloc. + * genpreds.c (process_define_predicate): Likewise. + +2005-12-17 Danny Berlin + Kenneth Zadeck + + * basic-block.h: Changed basic block numbering so that the entry + block is 0 and the exit block is 1. Changed insn iterators so + that they are tolerant of blocks with no insns. + * regrename.c (copyprop_hardreg_forward): Changed basic block + numbering so that the entry block is 0 and the exit block is 1. + * sched-ebb.c (sehedule_ebbs): Ditto. + * tracer.c (branch_ratio_cutoff): Ditto. + * cfgloopmanip.c (fix_loop_structure): Ditto. + * cfghooks.c (verify_flow_info): Ditto. + * cfg.c (compact_blocks): Ditto. + * reorg.c (dbr_schedule): Ditto. + * flow.c (calculate_global_regs_live, libcall_dead_p): Ditto. + * dominance.c (calc_dfs_tree_nonrec, calc_dfs_tree, + calculate_dominance_info): Ditto. + * cfganal.c (create_edge_list, print_edge_list, + flow_depth_first_order_compute, flow_dfs_compute_reverse_init, + flow_dfs_compute_reverse_add_bb, flow_dfs_compute_reverse_execute, + dfs_enumerate_from): Ditto. + * global.c (global_alloc, set_up_bb_rts_numbers): Ditto. + * ifcvt.c (find_if_case_2): Ditto. + * cfgbuild.c (control_flow_insn_p, count_basic_blocks, + find_basic_blocks): Ditto. + * predict.c (predict_loops, tree_bb_level_predictions, + predict_paths_leading_to, propagate_freq): Ditto. + * lcm.c (compute_antinout_edge, compute_laterin, + compute_available): Ditto. + * function.c (thread_prologue_and_epilogue_insns): Ditto. + * gcse.c (gcse_main, bypass_jumps): Ditto. + * profile.c (compute_branch_probabilities, + compute_value_histograms, branch_prob): Ditto. + * tree-flow-inline.h (bsi_start, bsi_after_labels, + bsi_last): Ditto. + * tree-ssa-phiopt.c (tree_ssa_phiopt, + blocks_in_phiopt_order): Ditto. + * bt-load.c (compute_defs_uses_and_gen, compute_kill, + compute_out, link_btr_uses, migrate_btr_defs): Ditto. + * tree-dfa.c (collect_dfa_stats): Ditto. + * cfgcleanup.c (try_forward_edges, try_optimize_cfg): Ditto. + * cfglayout.c (fixup_reorder_chain): Ditto. + * bb-reorder.c (reorder_basic_blocks, duplicate_computed_gotos, + partition_hot_cold_basic_blocks): Ditto. + * var-tracking.c (vt_find_locations): Ditto. + * cfgloop.c (flow_loops_cfg_dump, flow_loops_find, get_loop_body): Ditto. + * sched-rgn.c (compute_trg_info, init_regions, schedule_insns): Ditto. + * tree-cfg.c (init_empty_tree_cfg, build_tree_cfg, make_edges + label_to_block_fn, print_loop_ir, tree_flow_call_edges_add): Ditto. + * tree-ssa-reassoc.c (init_reassoc): Ditto. + * cfgrtl.c (entry_of_function, rtl_verify_flow_info, + rtl_flow_call_edges_add, rtl_flow_call_edges_add): Ditto. + * df.c (df_analyze_1, hybrid_search, iterative_dataflow): Ditto + and removed unused reverse orders. + * df.h (): Ditto. + * combine.c: Fix document typo. + +2005-12-17 Jan Hubicka + + * tree-flow-inline.h (set_default_def, default_def): Kill. + * tree-dfa.c (default_defs): New global variable. + (default_def, set_default_def): New functions. + * tree-ssa.c (init_tree_ssa, delete_tree_ssa): Add default_def hash. + * tree-flow.h (struct var_ann_d): Kill default_def field. + (set_default_def, default_def): Update prototype. + (default_defs): Declare. + +2005-12-16 Jeff Law + + * tree-ssa-dom.c (update_rhs_and_lookup_avail_expr): Kill. + (simplify_rhs_and_lookup_avail_expr): Kill. Remnants moved + into tree-ssa-forwprop.c. + (eliminate_redundant_computations): Do not call + simplify_rhs_and_lookup_avail_expr anymore. + * tree-ssa-forwprop.c (simplify_not_neg_expr): New function + extracted from remnants of simplify_rhs_and_lookup_avail_expr. + (tree_ssa_forward_propagate_single_use_vars): Call + simplify_not_neg_expr appropriately. + +2005-12-16 Bernd Trog + + PR target/20016 + * config/avr/t-avr: Add -Os to TARGET_LIBGCC2_CFLAGS. + +2005-12-17 Kazu Hirata + + PR rtl-optimization/25456 + * struct-equiv.c (struct_equiv_improve_checkpoint): Replace + info->x_start with p->x_start. + +2005-12-17 Alan Modra + + * simplify-rtx.c (simplify_binary_operation_1 ): Correct bug + introduced 2005-12-16. + +2005-12-16 Steven Bosscher + + PR rtl-optimization/23837 + * optabs.c (expand_binop): For a multi-word rotate, never emit + a REG_NO_CONFLICT block. + +2005-12-16 John David Anglin + + PR middle-end/25457 + * reorg.c (mostly_true_jump): Remove unused variable 'insn'. + + PR target/25447 + * config/pa/pa.c (pa_scalar_mode_supported_p): Handle + MODE_DECIMAL_FLOAT. + +2005-12-16 Steven Bosscher + + * loop-invariant.c (move_loop_invariants): Add missing hunk from + the previous patch, to nullify df. + +2005-12-16 Steven Bosscher + + * reorg.c (mostly_true_jump): Clean up code depending on + LABEL_OUTSIDE_LOOP_P and loop notes. Remove code doing + poor man's branch prediction, instead rely on REG_BR_PROB + notes to be available. + +2005-12-16 Jakub Jelinek + + PR rtl-optimization/24899 + * loop.c (strength_reduce): Don't reduce giv that is not always + computable and where add_val or mult_val can trap. + + * doc/invoke.texi (-fdump-tree-*): Remove note about C/C++ only. + +2005-12-16 Nathan Sidwell + + * config/mt/mt.h (LIB_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Correct + names of ms1-16-002 files. + +2005-12-16 Alan Modra + + PR driver/20425 + * gcc.c (for_each_path): New function. + (add_to_obstack, file_at_path): New functions. + (struct file_at_path_info, struct add_to_obstack_info): New. + (build_search_list): Rewrite using for_each_path. Constify struct + path_prefix pointer. Add do_multi param. Adjust all callers. + (find_a_file): Similarly, but just change existing param to bool. + (putenv_from_prefixes): Add do_multi param, make "paths" const. + (do_spec_path): Delete. + (struct spec_path_info): New. + (spec_path): New function. + (do_spec_1): Use for_each_path for %D and %I. + (find_file): Adjust for find_a_file changes. + (main): Search multilibs for specs. Print multilib lib path for + -print-search-dirs. Likewise add multilibs to LIBRARY_PATH_ENV. + (read_specs): Search multilibs for %include and %include_noerr. + (is_directory): Remove second string param. Change last param + to a bool. Don't use concat. Remove SMALL_ARG_MAX test, always + check path is a dir. Update all callers. + * doc/hostconfig.texi (SMALL_ARG_MAX): Remove mention. + * system.h (SMALL_ARG_MAX): Poison. + * config.gcc: Don't define SMALL_ARG_MAX. + * config.host: Likewise. + * config.build: Likewise. + +2005-12-16 Paolo Bonzini + + * combine.c (combine_simplify_rtx , + simplify_logical): Move simplifications that do not require + additional infrastructure... + * simplify-rtx.c (simplify_unary_operation_1, + simplify_binary_operation_1): ... here. + +2005-12-16 Andreas Krebbel + + PR 24823 + * flow.c (mark_used_dest_regs): New function. + (mark_used_regs): Call mark_used_dest_regs. + +2005-12-16 Jeff Law + + * tree-ssa-dse.c (dse_optimize_stmt): Correctly handle PHI nodes which + represent a use and definition of the same SSA_NAME. + +2005-12-16 Jon Grimm + Janis Johnson + Ben Elliston + + * target-def.h (TARGET_DECIMAL_FLOAT_SUPPORTED_P): New. + (TARGET_INITIALIZER): Add TARGET_DECIMAL_FLOAT_P. + * target.h (struct gcc_target): Add decimal_float_supported_p. + * targhooks.c (default_scalar_mode_supported_p): Handle + MODE_DECIMAL_FLOAT. + * builtins.def: Add new builtins for 32, 64 and 128 bit variants + of inf, nan, finite, isinf and isnan. + * builtin-types.def (BT_DFLOAT32, BT_DFLOAT64, BT_DFLOAT128, + BT_DFLOAT32_PTR, BT_DFLOAT64_PTR, BT_DFLOAT128_PTR, + BT_FN_DFLOAT32, BT_FN_DFLOAT64, BT_FN_DFLOAT128, + BT_FN_INT_DFLOAT32, BT_FN_INT_DFLOAT64, BT_FN_INT_DFLOAT128, + BT_FN_DFLOAT32_CONST_STRING, BT_FN_DFLOAT64_CONST_STRING, + BT_FN_DFLOAT32_CONST_STRING, BT_FN_DFLOAT32_DFLOAT32, + BT_FN_DFLOAT64_DFLOAT64, BT_FN_DFLOAT128_DFLOAT128): New. + * c-decl.c (declspecs_add_type): Verify combos on type qualifiers. + Pedwarn if decimal floating point types are used. Error if + decimal floating point is not supported by the target. + (finish_declspecs): Return type from DFP typespec_word. + * c-typeck.c (c_common_type): Choose the decimal floating point + type with the greater precision when determining a common type. + (convert_arguments): Warn if there is a mismatch between argument + and prototype for decimal float types. Warn of conversions with + binary float types and of precision narrowing due to prototype. + * c-parser.c (reswords): Add _Decimal32, _Decimal64, _Decimal128. + (c_token_starts_typename): Handle RID_DFLOAT32/64/128. + (c_token_starts_declspecs): Likewise. + (c_parser_attributes): Likewise. + * c-common.h (enum rid): Add new enumeration values RID_DFLOAT32, + RID_DFLOAT64, RID_DFLOAT128. + (T_D32, TEX_D32, T_D64, TEX_D64, T_D128, TEX_D128): New macros. + * c-common.c (c_common_type_for_mode): Handle decimal float modes. + (shorten_compare): Convert DFP/BFP operands to a common type. + (c_common_modes_and_builtins): Register built-in decimal float + types if the target supports them. + (handle_mode_addtribute): Handle MODE_DECIMAL_FLOAT. + * builtins.c (fold_builtin_1): Handle 32, 64 and 128 bit cases of + inf, nan, finite, isinf and isnan builtins. + * c-cppbuiltin.c (builtin_define_decimal_float_constants): New. + (builtin_define_float_constants): Assert non-decimal radix. + (c_cpp_builtins): Register built-in __DEC_EVAL_METHOD__ define. + Call builtin_define_decimal_float_constants for each type. + * c-lex.c (interpret_float): Decode decimal float types from CPP_N + flags. Use real_from_string3, which can handle binary or decimal + floats. + * c-tree.h (enum c_typespec_keyword): Add cts_dfloat32, + cts_dfloat64, cts_dfloat128. + * tree.c (build_common_tree_nodes_2): Add decimal float types. + * tree.h (enum tree_index): Add new enumeration values + TI_DFLOAT32_TYPE, TI_DFLOAT64_TYPE, TI_DFLOAT128_TYPE, + TI_DFLOAT32_PTR_TYPE, TI_DFLOAT64_PTR_TYPE, TI_DFLOAT128_PTR_TYPE. + (dfloat32_type_node): New macro. + (dfloat64_type_node, dfloat128_type_node): Likewise. + (dfloat32_ptr_type_node, dfloat64_ptr_type_node): Likewise. + (dfloat128_ptr_type_node): Likewise. + * c-pretty-print.c (pp_c_floating_constant): Append 32, 64 and 128 + bit decimal floating point types with "df", "dd" and "dl". + * c-format.h (enum format_lengths): Add new enumeration values + FMT_LEN_H, FMT_LEN_D and FMT_LEN_DD. + * c-format.c (printf_length_specs, scanf_length_specs): Add + entries for H, D, DD. + (print_char_table, scan_char_table): Use new entries. + (asm_fprintf_char_table, gcc_diag_char_table, + gcc_cdiag_char_table, gcc_cxxdiag_char_table): Adjust for longer + length arrays. + * defaults.h (DECIMAL32_TYPE_SIZE): Define. + (DECIMAL64_TYPE_SIZE): Likewise. + (DECIMAL128_TYPE_SIZE): Likewise. + (TARGET_DEC_EVAL_METHOD): Likewise. + * doc/extend.texi (Decimal Float): New node. + (Constructing Calls): Document decimal float built-ins. + * doc/tm.texi: Document TARGET_DECIMAL_FLOAT_SUPPORTED_P hook. + * Makefile.in (USER_H): Add $(srcdir)/ginclude/decfloat.h. + * ginclude/decfloat.h: New file. + +2005-12-16 Alan Modra + + * reload.c (find_reloads): Fix comment typo. + * recog.h (recog_memoized): Correct comment. + +2005-12-16 Kazu Hirata + + * basic-block.h, config/i386/winnt.c, config/pa/pa.c, + config/s390/s390.c, dfp.c, expr.c, fold-const.c, params.def, + reload.c, struct-equiv.c, tree-ssa-ccp.c, tree-ssa-pre.c, + tree-ssa-reassoc.c, tree-ssa-structalias.c: Fix comment typos. + * doc/invoke.texi, doc/tm.texi: Fix typos. + +2005-12-16 Ben Elliston + + * real.c (decimal_quad_format): Correct values for emin, emax. + +2005-12-15 DJ Delorie + + * config/m32c/predicates.md (m32c_psi_scale): New. + * config/m32c/m32c.c (m32c_expand_neg_mulpsi3): New. + * config/m32c/muldiv.md (mulpsi3): Support negative constants. + +2005-12-16 Jan Hubicka + + PR rtl-optimization/25224 + * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Free copy + tables. + +2005-12-15 Zdenek Dvorak + Steven Bosscher + + * loop-invariant.c (df): New global variable. + (find_defs, check_dependencies, find_invariant_insn, record_uses, + find_invariants_bb, find_invariants_body, find_invariants, + find_invariants_to_move, move_invariants, free_inv_motion_data, + move_single_loop_invariants, move_loop_invariants): Do not pass df in + arguments. + +2005-12-15 Jakub Jelinek + + * varasm.c (default_unique_section_1): Use special section + names for SECCAT_DATA_REL{,_RO}{,_LOCAL}. + +2005-12-16 Ben Elliston + + * doc/invoke.texi (Warning Options): Document -Walways-true being + enabled by -Wall. + +2005-12-15 Joseph S. Myers + + PR other/25028 + * libgcc2.h (SF_SIZE, DF_SIZE, XF_SIZE, TF_SIZE): Define. + * libgcc2.c (__floatdixf, __floatundixf, __floatditf, + __floatunditf): Use #error if type sizes don't match requirements + of implementation. + (__floatdisf, __floatdidf): Unify. Possibly use XFmode or TFmode + as wider floating-point type. Use #error if type sizes don't + match requirements of implementation. Avoid overflow in computing + Wtype_MAXp1_F * Wtype_MAXp1_F. When special casing conversion, + shift one more bit. Cast 1 to DWtype or UDWtype for shifting. + (__floatundisf, __floatundidf): Likewise. + * config/ia64/hpux.h (XF_SIZE, TF_SIZE): Define. + * config/ia64/ia64.c (ia64_init_libfuncs): Use + _U_Qfcnvfxt_quad_to_quad and _U_Qfcnvxf_quad_to_quad for + TFmode-TImode conversions. + * doc/tm.texi (SF_SIZE, DF_SIZE, XF_SIZE, TF_SIZE): Document. + +2005-12-14 Craig Rodrigues + + * freebsd-spec.h (FBSD_TARGET_OS_CPP_BUILTINS): + Use builtin_define_with_int_value() instead of + adding a new check for every new major FreeBSD version. + +2005-12-14 Andrew Pinski + + * config/t-darwin (darwin-c.o): Depend on $(TREE_H) instead of tree.h. + +2005-12-15 Richard Sandiford + + * config/arm/predicates.md (call_memory_operand): New. + * config/arm/arm.md (*call_mem, *call_value_mem): Use it. + +2005-12-15 Andrew Haley + + * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Guard + against prev_cache_entry == NULL when moving a cache entry to the + head of the list. + +2005-12-15 Nathan Sidwell + + * config/mt/mt.c (mt_override_options): Require lower case + architectures. Revert accidental default to ms2. + * config/mt/mt.h (ASM_SPEC, LIBSPEC, STARTFILE_SPEC, + ENDFILE_SPEC): Require lower case architectures. Revert default + to ms2. + + * doc/invoke.texi (MT Options): Rename and update. + * doc/md.texi (MorphoTech family): Rename and update. + +2005-12-15 Olivier Hainque + + * stor-layout.c (layout_type): Don't complain about a too small + an array element type size compared to its alignment when the + size overflows. + +2005-12-15 Jan Hubicka + + PR target/24969 + * i386.c (classify_argument): Properly adjust offset of bitfield for + substructures. + +2005-12-15 Richard Sandiford + + * final.c (final_scan_insn): Flip in_cold_section_p when changing + between the hot and cold sections. Use current_function_section + to get the new section. + * dwarf2out.c (output_line_info): Use in_cold_section_p to + determine whether we are assembling hot or cold code. + (secname_for_decl, dwarf2out_var_location): Likewise. + (dwarf2out_init, dwarf2out_finish): Use switch_to_section. + * varasm.c (last_text_section): Delete. + (in_cold_section_p): New variable. + (hot_function_section): New function. + (current_function_section): Pass in_cold_section_p as the + reloc argument to select_section. Use it to decide between + unlikely_function_section and hot_function_section. + (assemble_start_function): Use switch_to_section. Set + in_cold_section_p instead of last_text_section. + (assemble_end_function): Use switch_to_section. + (switch_to_section): Don't set last_text_section. + * config/darwin/darwin.c (machopic_select_section): Trust the reloc + argument to make the right choice between hot and cold sections. + +2005-12-15 Nathan Sidwell + + Second part of MS1->MT renaming + * config/mt/mt.md (doloop_end): Call mt_add_loop. + (movqi, movhi): Call mt_set_memflags. + (*movdf_internal): Call mt_split_words. + (reload_inqi, reload_outqi, reload_inhi, reload_outhi): Call + mt_set_memflags. + (cmpsi): Store to mt_compare_op[01]. + (beq, bne, bge, bgt, ble, blt, bgeu, bgtu, bleu, bltu, bunge, + bungt, bunle, bunlt): Call mt_emit_cbranch. + (prologue): Call mt_expand_prologue. + (epilogu): Call mt_expend_epilogue. + (eh_return): Call mt_expand_eh_return. + (eh_epilogue): Call me_emit_eh_epilogue. + (conditional_trap): Store to mt_compare_op[01]. + * config/mt/crti.asm: Adjust comment. + * config/mt/crtn.asm: Adjust comment. + * config/mt/mt.c (MT_INT_ARG_FIRST): Renamed. + (mt_compare_op0, mt_compare_op1): Renamed. + (current_frame_info, zero_frame_info): Adjust type. + (mt_ucmpsi3_libcall): Renamed. + (mt_flag_delayed_branch): Renamed. + (mt_struct_value_rtx, mt_return_addr_rtx): Renamed. + (mt_nops_required, mt_nop_reasons): Renamed. + (mt_asm_output_opcode, mt_get_attr_type, mt_final_prescan_insn, + mt_debug_stack, mt_print_operand_simple_address, + mt_print_operand_address, mt_print_operand): Renamed, adjusted. + (mt_init_cumulative_args, mt_function_arg_slotno, mt_function_arg, + mt_function_arg_advance, mt_arg_partial_bytes, + mt_pass_by_reference, mt_function_arg_boundary, + mt_reg_ok_for_base_p, mt_legitimate_simple_address_p, + mt_legitimate_address_p): Renamed, adjusted. + (mt_cpu): Renamed. + (mt_init_machine_status, mt_override_options, mt_builtin_saveregs, + mt_va_start, mt_compute_frame_size, mt_emit_save_restore, + mt_emit_save_fp, mt_emit_save_regs, mt_interrupt_function_p, + mt_expand_prologue, mt_epilogue_uses, mt_expand_epilogue, + mt_expand_eh_return, mt_emit_eh_prologue, + mt_handl_interrupt_attribute): Renamed, adjusted. + (mt_attribute_table): Renamed, adjusted. + (mt_initial_elimination_offset, mt_generate_compare, + mt_emit_cbranch, mt_set_memflags_1, mt_set_memflags, + mt_secondary_reload_class, mt_function_value, mt_split_words, + mt_pass_in_stack, mt_add_loop, mt_loop_nesting, mt_block_length, + mt_scan_loop, mt_reorg_loops): Renamed, adjusted. + (mt_labels): Renamed. + (mt_add_branches, mt_check_delay_slot, mt_reorg_hazard, + mt_machine_reorg): Renamed, adjusted. + (mt_attribute_table: Renamed. + (TARGET_ATTRIBUTE_TABLE, TARGET_STRUCT_VALUE_RTX, + TARGET_PASS_BY_REFERENCE, TARGET_MUST_PASS_IN_STACK, + TARGET_ARG_PARTIAL_BYTES, TARGET_MACHINE_DEPENDENT_REORG): Adjust. + * config/mt/mt.opt (march): Set mt_cpu_string. + * config/mt/mt.h (mt_ucmpsi3_libcall, mt_cpu): Renamed. + (TARGET_CPU_CPP_BUILTINS): Adjust. + (TARGET_MS1_64_001, TARGET_MS1_16_002, TARGET_MS1_16_003, + TARGET_MS2): Adjust. + (TARGET_VERSION, OVERRIDE_OPTIONS, SECONDARY_RELOAD_CLASS): Adjust. + (MT_MIN_INT): Renamed. + (RETURN_ADDR_RTX): Adjust. + (struct mt_frame_info): Renamed. + (current_frame_info): Adjust type. + (INITIAL_ELIMINATION_OFFSET): Adjust. + (MT_NUM_ARG_REGS): Renamed. + (REG_PARM_STACK_SPACE, FUNCTION_ARG, INIT_CUMULATVE_ARGS, + FUNCTION_ARG_ADVANCE, FUNCTION_ARG_BOUNDARY, FUNCTION_VALUE, + LIBCALL_VALUE, EPILOGUE_USES, EXPAND_BUILTIN_VA_START, + GO_IF_LEGITIMATE_ADDRESS, REG_OK_FOR_BASE_P, ASM_OUTPUT_OPCODE, + FINAL_REPSCAN_INSN, PRINT_OPERAND, PRINT_OPERAND_ADDRESS): Adjust. + (mt_compare_op0, mt_compare_op1): Renamed. + * config/mt/mt-protos.h: Rename prototypes. + +2005-12-15 Richard Guenther + + * tree-flow.h (okay_component_ref_for_subvars): Remove. + (get_ref_base_and_extent): Declare. + * tree-dfa.c (okay_component_ref_for_subvars): Remove. + (get_ref_base_and_extent): New function. + * tree-ssa-alias.c (find_used_portions): Use it. + * tree-ssa-structalias.c (get_constraint_for_component_ref): + Likewise. + * tree-ssa-operands.c (get_expr_operands): Likewise. + +2005-12-15 Paolo Bonzini + + * combine.c: Remove force_to_mode's fourth parameter. + (force_to_mode): Do not handle REG. + (canon_reg_for_combine): New. + (make_field_assignment): Use it where the removed argument was non-NULL. + +2005-12-15 Alan Modra + + PR target/25406 + * config/rs6000/rs6000.c (rs6000_special_round_type_align): Handle + error_mark_node. Make alignment params unsigned. + * config/rs6000/rs6000-protos.h + (rs6000_special_round_type_align): Update prototype. + (rs6000_machopic_legitimize_pic_address): Remove arg names. + +2005-12-14 Ulrich Weigand + + PR rtl-optimization/25310 + * reload1.c (eliminate_regs_in_insn): Handle lowpart SUBREGs + of the eliminable register when substituting into a PLUS. + +2005-12-14 Jakub Jelinek + + PR debug/25023 + * config/i386/i386.c (ix86_force_to_memory): Always use + SImode push for HImode in -m32. + (ix86_free_from_memory): Likewise. + +2005-12-14 Richard Sandiford + + * gcc/config/arm/arm.md: Provide a big-endian version of the + (zero_extend:SI (subreg:QI ...)) splitter. + +2005-12-14 J"orn Rennecke + + * struct-equiv.c (note_local_live): Handle hard regs with different + hard_regno_nregs. + +2005-12-14 Jeff Law + + * tree-ssa-ccp.c (fold_stmt_r): DATA argument is now a pointer + to a structure containing state rather than a pointer to bool. + (case ARRAY_REF): New code to handle folding some array references. + (case ADDR_EXPR): Note when we are processing expressions found + within an ADDRE_EXPR. + (fold_stmt, fold_stmt_inplace): Pass in a structure to fold_stmt_r + for state variables rather than just a pointer to a boolean. + * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Remove + handling of constant string references. + +2005-12-14 Adrian Straetling + + * config/s390/s390.md ("*tstdi_extimm", "*tstsi_extimm"): Merge. + ("*tstdi_cconly_extimm", "*tstsi_cconly_extimm"): Merge. + ("*tstdi_cconly2", "*tstsi_cconly2"): Merge. + Move other tst* patterns to retain partial order. + +2005-12-14 Adrian Straetling + + * config/s390/s390.md ("d0", "1"): New mode attributes. + ("di3", "si3"): Merge. + ("*di3_and", "*si3_and"): Merge. + ("ashrdi3", "ashrsi3"): Merge. + ("*ashrdi3_cc", "*ashrsi3_cc"): Merge. + ("*ashrdi3_cc_and", "*ashrsi3_cc_and"): Merge. + ("*ashrdi3_cconly", "*ashrsi3_cconly"): Merge. + ("*ashrdi3_cconly_and", "*ashrsi3_cconly_and"): Merge. + ("*ashrdi3", "*ashrsi3"): Merge. + ("*ashrdi3_and", "*ashrsi3_and"): Merge. + +2005-12-14 Adrian Straetling + + * config/s390/s390.md ("extenddi2", "extendsi2"): Merge. + ("*extendqidi2_extimm", "*extendqisi2_extimm"): Merge. + ("*extendqidi2", "*extendqisi2") Merge. + ("*extendqidi2_short_displ", "*extendqisi2_short_displ"): Merge. + ("zero_extendhidi2", "zero_extendqidi2"): Merge. + ("*zero_extenddi2_extimm", "*zero_extendsi2_extimm"): Merge. + Move some patterns to retain partial ordering. + +2005-12-14 Adrian Straetling + + * config/s390/s390.md ("atype", "length"): Rewrite. + ("*insv_reg_imm", "*insv_reg_extimm"): Add mode. + +2005-12-14 Sebastian Pop + + * tree-ssa-operands.c (build_ssa_operands): Update leading comment. + +2005-12-14 J"orn Rennecke + + * struct-equiv.c (rtx_equiv_p): Allow arbitrary RVALUE values for + PARALLELs with a mode. + +2005-12-14 Sebastian Pop + + * cfgloopmanip.c (lv_adjust_loop_entry_edge): Adjust the type of + cond_expr parameter. + +2005-12-14 Sebastian Pop + + * loop-unswitch.c (unswitch_loop): Free zero_bitmap before returning. + +2005-12-14 J"orn Rennecke + + PR bootstrap/25397: + + * struct-equiv.c (struct_equiv_init): Fix off-by-one error in clearing + of STACK_REGS bits. + + * struct-euiv.c (rtx_equiv_p): Remove SUBREG case. + +2005-12-14 Jakub Jelinek + + PR target/25254 + PR target/24188 + * config/i386/i386.c (x86_64_elf_select_section): If DECL is not + DECL_P, call get_section rather than get_named_section. Supply + section flags to it. + +2005-12-14 Ben Elliston + + * c-common.c (c_common_truthvalue_conversion): Generalise warning + for addresses converted to booleans; not just function addresses. + * c-typeck.c (build_binary_op): Warn for address comparisons which + can never be NULL (eg. func == NULL or &var == NULL). + * common.opt (Walways-true): New option. + * c-opts.c (c_common_handle_option): Set it with -Wall. + * doc/invoke.texi: Document it. + +2005-12-13 Paul Brook + + * config/m68k/fpgnulib.c (__unordsf2, __unorddf2, __unordxf2, + __floatunsidf, __floatunsisf, __floatunsixf): New functions. + +2005-12-13 Nathan Sidwell + + * config/mt/t-mt (crti.o, crtn.o): Add multilib options. + (EXTRA_MULTILIB_PARTS): Define. + +2005-12-13 J"orn Rennecke + + PR rtl-optimization/20070 / part1 + * flow.c (update_life_info): If PROP_POST_REGSTACK is set, call + count_or_remove_death_notes with kill == -1. + (mark_set_1): Don't add REG_DEAD / REG_UNUSED notes for stack + registers if PROP_POST_REGSTACK is set. + (mark_used_reg): Likewise. + (count_or_remove_death_notes): If kill is -1, don't remove REG_DEAD / + REG_UNUSED notes for stack regs. + * cfgcleanup.c (condjump_equiv_p): Change parameters and processing + to match rtx_equiv_p machinery. Change caller. + (outgoing_edges_match): Likewise. + (try_crossjump_to_edge): Use struct_equiv_block_eq + instead of flow_find_cross_jump. + * basic-block.h (PROP_POST_REGSTACK, STRUCT_EQUIV_START): Define. + (STRUCT_EQUIV_RERUN, STRUCT_EQUIV_FINAL): Likewise. + (STRUCT_EQUIV_NEED_FULL_BLOCK, STRUCT_EQUIV_MATCH_JUMPS): Likewise. + (STRUCT_EQUIV_MAX_LOCAL): Likewise. + (struct struct_equiv_checkpoint, struct equiv_info): Likewise. + (insns_match_p): Update prototype. + (flow_find_cross_jump): Remove prototype. + (struct_equiv_block_eq, struct_equiv_init): Declare. + (rtx_equiv_p, condjump_equiv_p): Likewise. + * struct-equiv.c: Include reload.h. + (IMPOSSIBLE_MOVE_FACTOR): Define. + (assign_reg_reg_set, struct_equiv_make_checkpoint): New functions. + (struct_equiv_improve_checkpoint): Likewise. + (struct_equiv_restore_checkpoint, rtx_equiv_p): Likewise. + (set_dest_equiv_p, set_dest_addr_equiv_p, struct_equiv_init): Likewise. + (struct_equiv_merge, find_dying_input): Likewise. + (resolve_input_conflict, note_local_live): Likewise. + (death_notes_match_p): Change parameters and processing + to match rtx_equiv_p machinery. Change caller. + (insns_match_p): Likewise. + (flow_find_cross_jump): Replace with: + (struct_equiv_block_eq). + + Back out this change: + 2005-03-07 Kazu Hirata + * recog.c (verify_changes): Make it static. + * recog.h: Remove the corresponding prototype. + +2005-12-13 J"orn Rennecke + + * rtlhooks.c (gen_lowpart_general): Handle SUBREGs of floating point + values. + +2005-12-13 Nathan Sidwell + + * config/mt/t-mt (MULTILIB_OPTIONS): Add ms2 + (MULTILIB_DIRNAMES): Add ms2. Prefix ms1 dirs with 'ms1'. + * config/mt/mt.c (ms1_final_prescan): Use TARGET_MS2, + TARGET_MS1_64_001 appropriately. + (ms1_machine_reorg): Use TARGET_MS2. + +2005-12-13 Jakub Jelinek + + PR debug/25023 + PR target/25293 + * expr.c (emit_move_resolve_push): Handle PRE_MODIFY + and POST_MODIFY with CONST_INT adjustment equal to PUSH_ROUNDING. + Fix POST_INC/POST_DEC handling if PUSH_ROUNDING is not identity. + * config/i386/i386.md (pushhi2, pushqi2): Use pushl instead of pushw. + Set mode to SI, adjust constraints. + (pushhi2_rex64, pushqi2_rex64): Set mode to DI. + * config/i386/i386.h (PUSH_ROUNDING): Round up to 4 instead of 2 for + 32-bit code. + +2005-12-13 Carlos O'Donell + + * c-cppbuiltin.c (builtin_define_float_constants): Add + fp_cast parameter, pass to builtin_define_with_hex_fp_value. + Define __FLT_HAS_DENORM__, __DBL_HAS_DENORM__, __LDBL_HAS_DENORM__. + (builtin_define_with_hex_fp_value): Use fp_cast when building macro. + (c_cpp_builtins): If flag_single_precision_constant then set fp_cast + to "((double)%sL)" otherwise "%s". + +2005-12-13 Paul Brook + + * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Pass -meabi=gnu for + apcs/atpcs. + +2005-12-11 Rafael vila de Espndola + + * tree-flow.h: Allow compilation with a C++ compiler. + (struct edge_prediction): Prefix all field names with "ep_". + * predict.c (tree_predicted_by_p): Likewise for struct edge_prediction. + (tree_predict_edge, combine_predictions_for_bb): Likewise. + (remove_predictions_associated_with_edge): Likewise. + +2005-12-12 Jeff Law + + * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Remove + reassociation code. + * passes.c (init_optimization_passes): Run reassociation again + after loop optimizations. + +2005-12-12 Daniel Berlin + + * tree-ssa-dom.c (thread_across_edge): Canonicalize condition + if necessary. + (optimize_stmt): Ditto. + (canonicalize_comparison): New function. + * tree-ssa-operands.c (swap_tree_operands): Make external. + (get_expr_operands): Stop auto-canonicalization. + * tree-ssa-reassoc.c: Rewrite. + (init_optimization_passes): + * tree-flow.h (swap_tree_operands): Prototype. + * Makefile.in (tree-ssa-reassoc.o): Update dependencies. + +2005-12-12 John David Anglin + + * pa.c (pa_output_function_epilogue): Set cfun->machine->in_nsubspa to + indicate function epilogue has been output. + (pa_asm_output_mi_thunk): Likewise. + (output_deferred_plabels): Put plabels in readonly data section when + not generating PIC code. + (som_output_text_section_asm_op): Use .NSUBSPA to output debug + information. Add assert. + (som_output_comdat_data_section_asm_op): New function. + (pa_som_asm_init_sections): Use som_output_comdat_data_section_asm_op + instead of output_section_asm_op for COMDAT sections. + +2005-12-12 J"orn Rennecke + + * cfgcleanup.c (condjump_equiv_p, try_crossjump_to_edge): + Fix whitespace in vincinity of to-be-installed changes. + * struct-equiv.c (merge_memattrs, death_notes_match_p): Fix whitespace. + (insns_match_p): Likewise. + +2005-12-12 Nathan Sidwell + + * config.gcc (ms1): Replace with ... + (mt): ... this. + * config/ms1: Rename to ... + * config/mt: ... here. Rename ms1 files to mt. + * config/mt/mt.c: Adjust gt-mt.h #include. + * config/mt/t-mt (LIB1ASMSRCS, LIB2FUNCS_EXTRA): Adjust. + (crti.o, crtn.o): Adjust file names. + +2005-12-12 Gabriel Dos Reis + + * varray.h: Allow compilation with a C++ compiler. + (union varray_data_tag): Prefix all field names with "vdt_". + (VARRAY_CHAR, VARRAY_UCHAR, VARRAY_SHORT, VARRAY_USHORT, + VARRAY_INT, VARRAY_UINT, VARRAY_LONG, VARRAY_ULONG, + VARRAY_WIDE_INT, VARRAY_UWIDE_INT, VARRAY_GENERIC_PTR, + VARRAY_GENERIC_PTR_NOGC, VARRAY_CHAR_PTR, VARRAY_RTX, + VARRAY_RTVEC, VARRAY_TREE, VARRAY_BITMAP, VARRAY_REG, VARRAY_BB, + VARRAY_ELT_LIST, VARRAY_EDGE, VARRAY_TREE_PTR): Adjust definition. + (VARRAY_PUSH_CHAR, VARRAY_PUSH_UCHAR, VARRAY_PUSH_SHORT, + VARRAY_PUSH_USHORT, VARRAY_PUSH_INT, VARRAY_PUSH_UINT, + VARRAY_PUSH_LONG, VARRAY_PUSH_ULONG, VARRAY_PUSH_WIDE_INT, + VARRAY_PUSH_UWIDE_INT, VARRAY_PUSH_GENERIC_PTR, + VARRAY_PUSH_GENERIC_PTR_NOGC, VARRAY_PUSH_CHAR_PTR, + VARRAY_PUSH_RTX, VARRAY_PUSH_RTVEC, VARRAY_PUSH_TREE, + VARRAY_PUSH_BITMAP, VARRAY_PUSH_REG, VARRAY_PUSH_BB, + VARRAY_PUSH_EDGE, VARRAY_PUSH_TREE_PTR): Likewise. + (VARRAY_TOP_CHAR, VARRAY_TOP_UCHAR, VARRAY_TOP_SHORT, + VARRAY_TOP_USHORT, VARRAY_TOP_INT, VARRAY_TOP_UINT, + VARRAY_TOP_LONG, VARRAY_TOP_ULONG, VARRAY_TOP_WIDE_INT, + VARRAY_TOP_UWIDE_INT, VARRAY_TOP_GENERIC_PTR, + VARRAY_TOP_GENERIC_PTR_NOGC, VARRAY_TOP_CHAR_PTR, VARRAY_TOP_RTX, + VARRAY_TOP_RTVEC, VARRAY_TOP_TREE, VARRAY_TOP_BITMAP, + VARRAY_TOP_REG, VARRAY_TOP_BB, VARRAY_TOP_EDGE, + VARRAY_TOP_TREE_PTR): Likewise. + * varray.c (varray_grow): Likewise. + (varray_clear): Likewise. + +2005-12-12 Alan Modra + + PR target/25299 + * config/rs6000/rs6000.c (rs6000_special_round_type_align): Increase + alignment to doubleword if the first field is a double array. + * config/rs6000/linux64.h (TARGET_ALIGN_NATURAL): Define. + +2005-12-11 Daniel Berlin + + * tree-ssa-structalias.c (process_constraint): Remove code to + transform addressofs into scalar. + (create_variable_info_for): In whole-program IPA, globals don't + point to ANYTHING by default. + +2005-12-11 Daniel Berlin + + * timevar.def (TV_IPA_PTA): New. + * tree-pass.h (pass_ipa_pta): New + * tree-ssa-structalias.c: Include cgraph.h + (in_ipa_mode): New. + (predbitmap_obstack): New. + (EXECUTE_IF_IN_NONNULL_BITMAP): New. + (struct constraint_stats): Add num_edges. + (new_var_info): Don't call bitmap_clear. + (struct constraint_edge): Update docs. + (new_constraint_edge): Remove src param. + (struct constraint_graph): Add zero_weight_succs, + zero_weight_preds. Update docs. + (constraint_expr_equal): Reformat. + (constraint_edge_equal): Update for removal of src. + (constraint_edge_less): Ditto. + (constraint_edge_vec_find): Ditto. + (erase_graph_self_edge): Update for removal of src and and zero + weight bitmap. + (clear_edges_for_node): Ditto. + (add_graph_edge): Ditto. + (get_graph_weights): Ditto. + (allocate_graph_weights): Ditto. + (merge_graph_nodes): Ditto. + (int_add_graph_edge): Ditto. + (valid_graph_edge): Ditto. + (valid_weighted_graph_edge): Ditto. + (build_constraint_graph): Ditto. + (scc_visit): Ditto. + (collapse_nodes): Ditto. + (process_unification_queue): Ditto. + (topo_visit): Ditto. + (solve_graph): Ditto. + (do_structure_copy): Ditto. + (perform_var_substitution): Ditto. + Init and release obstack. + (handle_ptr_arith): Try to resolve directly. + (find_func_aliases): Don't call update_alias_info here + Handle RETURN_EXPR, and CALL_EXPR's in IPA mode. + (do_sd_constraint): Add code for propagating faster. + Update. + (do_ds_constraint): Ditto. + (count_num_arguments): New function. + (create_function_info_for): Ditto. + (create_variable_info_for): Handle FUNCTION_DECL. + (intra_create_variable_infos): Use make_constraint_to_anything. + (init_alias_vars): Init obstacks here. + (need_to_solve): Handle zero weight graph changes. + (compute_points_to_sets): Call update_alias_info here. + (delete_points_to_sets): Free zero weight preds/succs here. + (gate_ipa_pta): New. + (ipa_pta_execute): New + +2005-12-11 Daniel Berlin + + * tree-ssa-structalias.c (var_anyoffset): Removed. + (anyoffset_tree): Ditto. + (anyoffset_id): Ditto. + (do_deref): Take vector of constraints, no return value. + Update to work on vector. + (get_constraint_for): Ditto. + (get_constraint_for_component_ref): Ditto. + (do_structure_copy): Ditto. + (handle_ptr_arith): Ditto. + (find_func_aliases): Ditto. + (set_uids_in_ptset): Remove anyoffset handling. + (init_base_vars): Ditto. + +2005-12-10 Mark Mitchell + + PR c++/25010 + * ipa-inline.c (cgraph_clone_inlined_nodes): Do not assume that + DECL_EXTERNAL functions have no bodies. Tidy. + +2005-12-10 Andreas Schwab + + * except.c (switch_to_exception_section): Only define if + TARGET_UNWIND_INFO is not defined. + +2005-12-10 Richard Sandiford + + * config/darwin.h (HAS_INIT_SECTION): Remove definition. + (INIT_SECTION_ASM_OP): Restore empty definition from before 2005-12-07. + +2005-12-10 Richard Sandiford + + * output.h (init_section, fini_section): Delete. + * varasm.c (init_section, fini_section): Delete. + (init_varasm_once): Don't initialize them. + * doc/tm.texi (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP): Say that + there are no corresponding varasm.c variables. + +2005-12-10 Richard Sandiford + + * dwarf2out.c (default_eh_frame_section): Delete, moving handling + of EH_FRAME_SECTION_NAME into... + (switch_to_eh_frame_section): ...here. Try to set eh_frame_section + if it is still null. + * except.c (default_exception_section): Delete, moving most + of the code to... + (switch_to_exception_section): ...this new function. Set + exception_section if it is still null, then switch to it. + (output_function_exception_table): Use switch_to_exception_section. + * varasm.c (exception_section, eh_frame_section): Update comments. + (get_section): Hoist use of SECTION_NAMED. + (init_varasm_once): Don't set exception_section and eh_frame_section. + * output.h (default_exception_section): Delete. + (default_eh_frame_section): Delete. + +2005-12-09 Bernd Schmidt + + * config/bfin/bfin.c: Include "cgraph.h". + (bfin_load_pic_reg): Omit loading pic reg if in a local function. + Return the reg that holds the pointer to the GOT. + (bfin_expand_prologue): Use return value of bfin_load_pic_reg when + doing stack checking. + +2005-12-09 Diego Novillo + + * tree.c (recompute_tree_invariant_for_addr_expr): Rename from + recompute_tree_invarant_for_addr_expr. + Update uses everywhere. + +2005-12-09 Aldy Hernandez + + * config/ms1/t-ms1 (MULTILIB_OPTIONS): Define. + (MULTILIB_DIRNAMES): Define. + +2005-12-09 Ulrich Weigand + + PR target/25311 + * config/s390/s390.c (struct s390_address): New field literal_pool. + (s390_decompose_address): Compute literal_pool field. Do not + assume register %r13 is always (and solely) used as pool base. + (s390_extra_constraint_str): Use literal_pool field. + +2005-12-09 Thiemo Seufer + + * config/mips/mips.c (override_options): Don't allow too small + integers in FP registers. + +2005-12-09 Ulrich Weigand + + * config/s390/s390.c (s390_function_ok_for_sibcall): Use + targetm.binds_local_p to check for local function calls. + +2005-12-09 Alan Modra + + PR debug/24908 + * dwarf2out.c (dwarf2out_frame_debug_expr): Don't assert that + call_used_regs can't be used to save reg in another reg. + +2005-12-08 Volker Reichelt + Christophe Jaillet + + * ipa-type-escape.c (analyze_variable): Use gcc_assert instead of + abort. + * except.c (output_ttype): Likewise. + * tree-object-size.c (collect_object_sizes_for): Likewise. + (check_for_plus_in_loops_1): Likewise. + (check_for_plus_in_loops): Likewise. + (compute_object_sizes): Use gcc_unreachable instead of abort. + +2005-12-08 Nathan Sidwell + + * config/ms1/ms1.md (UNSPEC_LOOP): New constant. + (loop_end, loop_init, doloop_end): New insns. + * config/ms1/ms1.h (LOOP_FIRST, LOOP_LAST): New. + (SPECIAL_REG_FIRST, FIRST_PSEUDO_REGISTER): Adjust. + (FIXED_REGISTERS, CALL_USED_REGISTERS): Adjust. + (REG_CLASS_CONTENTS, REGISTER_NAMES): Adjust. + * config/ms1/ms1.c: #include basic-block.h + (struct machine_function): Add has_loops field. + (ms1_add_loop): New. + (MAX_LOOP_DEPTH, MAX_LOO_LENGTH): New. + (struct loop_info, struct loop_work): New. + (ms1_loop_nesting, ms1_block_length, ms1_scan_loop): New workers. + (ms1_reorg_loops): New loop optimization. + (ms1_machine_reorg): Call it. + * config/ms1/ms1-protos.h (ms1_add_loop): Declare. + +2005-12-08 Zdenek Dvorak + + PR tree-optimization/25248 + * tree-scalar-evolution.c (follow_ssa_edge_in_rhs): Do not use + evolution_of_loop from the failed attempt. Remove handling + of MULT_EXPR. + +2005-12-08 Gabriel Dos Reis + + * tree.h (DECL_EXTERNAL): Clarify documentation. + +2005-12-08 Andreas Krebbel + Jakub Jelinek + + PR target/25268 + * config/s390/s390.c (s390_decompose_shift_count): Remove BITS + argument. Don't drop outer ANDs. + (s390_extra_constraint_str, print_shift_count_operand): Adjust callers. + * config/s390/s390-protos.h (s390_decompose_shift_count): Adjust + prototype. + * config/s390/predicates.md (setmem_operand): Remove. + (shift_count_operand): Rename to... + (shift_count_or_setmem_operand): ... this. Adjust + s390_decompose_shift_count caller. + * config/s390/s390.md (di3_31_and, di3_64_and, + ashrdi3_cc_31_and, ashrdi3_cconly_31_and, ashrdi3_31_and, + ashrdi3_cc_64_and, ashrdi3_cconly_64_and, ashrdi3_64_and, + si3_and, ashrsi3_cc_and, ashrsi3_cconly_and, ashrsi3_and, + rotl3_and, setmem_long_and): New insns. + (di3_31, di3_64, ashrdi3_cc_31, ashrdi3_cconly_31, + ashrdi3_31, ashrdi3_cc_64, ashrdi3_cconly_64, ashrdi3_64, + si3, ashrsi3_cc, ashrsi3_cconly, ashrsi3, rotl3, + di3, ashrdi3): Use shift_count_or_setmem_operand instead + of shift_count_operand. + (setmem_long): Use shift_count_or_setmem_operand instead of + setmem_operand. + +2005-12-08 Daniel Jacobowitz + Andreas Tobler + + * Makefile.in (ALL_GTFILES_H): Replace sed statement with more portable + tr expression. + +2005-12-07 J"orn Rennecke + + * expr.c (force_operand): Use convert_to_mode for conversions. + +2005-12-07 J"orn Rennecke + + * reload.h (reg_equiv_invariant): Declare. + * reload.c (refers_to_regno_for_reload_p): Allow R to be a pseudo + register also when reg_equiv_invariant[R] is set. + +2005-12-07 Richard Sandiford + Andreas Tobler + + * config/darwin.h: Guard section variables with #ifndef USED_FOR_TARGET. + +2005-12-07 Daniel Berlin + + * tree-ssa-pre.c (bitmap_set_and): New function. + (bitmap_set_and_compl): New function. + (bitmap_set_empty_p): New function. + (insert_extra_phis): New function. + (compute_avail): Use insert_extra_phis. + +2005-12-07 Adrian Straetling + + * config/s390/s390.c (s390_expand_atomic): New function. + Adjust comment of helper functions. + * config/s390/s390-protos.h (s390_expand_atomic): Declare. + * config/s390/s390.md ("ATOMIC"): New code macro. + ("atomic"): Corresponding new code attribute. + ("sync_lock_test_and_set[hq]i", + "sync_{new_,old_,}{and,ior,xor,add,sub,nand}[hq]i"): New pattern. + +2005-12-07 Adrian Straetling + + * config/s390/s390.c (s390_expand_mask_and_shift, + struct alignment_context, init_alignment_context, + s390_expand_cs_hqi): New. + * config/s390/s390-protos.h (s390_expand_cs_hqi): Declare. + * config/s390/s390.md ("sync_compare_and_swaphi", + "sync_compare_and_swapqi"): New pattern. + +2005-12-07 Daniel Berlin + + Fix PR tree-optimization/25291 + * tree-ssa-operands.c (add_call_clobber_ops): Remove + redundant and crashing check. + +2005-12-08 Alan Modra + + PR target/25212 + * config/rs6000/rs6000.c (legitimate_indexed_address_p): Relax + tests further when !strict && reload_in_progress. + (print_operand): Check that both operands of indexed address are regs. + (print_operand_address): Likewise. + * config/rs6000/rs6000.h (INT_REG_OK_FOR_INDEX_P): Simplify. + (INT_REG_OK_FOR_BASE_P): Correct. + +2005-12-07 J"orn Rennecke + + Preparation for PR rtl-optimization/20070 / part1 + * basic-block.h (insns_match_p, flow_find_cross_jump): Declare. + * cfgcleanup.c (condjump_equiv_p): New function, broken out of + outgoing_edges_match. + (outgoing_edges_match): Use condjump_equiv_p. + (merge_memattrs, insns_match_p, flow_find_cross_jump): Move from here + into.. + * struct-equiv.c: New file. + (death_notes_match_p) New function, broken out of insns_match_p. + * Makefile.in (OBJS-common): Add struct-equiv.o. + (struct-equiv.o): New target. + +2005-12-07 Richard Sandiford + + * coretypes.h: Revert previous change. + * config/darwin.h: Revert previous reversion. + * config/avr/avr.h (progmem_section): Guard with #ifndef IN_LIBGCC2. + +2005-12-07 Richard Sandiford + + * coretypes.h (section): Provide dummy definition for target files. + * config/darwin.h: Revert previous change. + +2005-12-07 Rafael vila de Espndola + + * doc/sourcebuild.texi (all.build, install-normal): Remove. + * configure.ac: Remove all.build and install-normal from target_list + * configure: Regenerate. + * Makefile.in (install): Don't depend on install-normal. + +2005-12-07 Rafael vila de Espndola + + * Makefile.in: Document the use of stamps. + +2005-12-07 Rafael vila de Espndola + + * doc/gty.texi: Remove instructions for adding a dependency on s-gtype. + * Makefile.in: Add code to compute some dependencies on s-gtype + automatically. Remove the declaration of those dependencies. + +2005-12-07 Richard Sandiford + + * gcc/reload.c (push_secondary_reload): Fix typo: + s/insn_constraint/scratch_constraint/. + +2005-12-07 Richard Sandiford + + * config/darwin.h: Guard section variables with #ifndef IN_LIBGCC2. + +2005-12-07 Richard Sandiford + + * config/alpha/alpha.c (alpha_start_function): Use switch_to_section. + (alpha_elf_select_rtx_section): Return the selected section rather + than emitting assembly code. + (alpha_write_linkage): Emit a ".link" directive directly and then + set in_section to NULL. + (vms_asm_out_constructor): Use switch_to_section. + (vms_asm_out_destructor): Likewise. + (unicosmk_output_common): Set in_section to NULL instead of calling + the dummy common_section function. + (unicosmk_text_section): Delete in favor of... + (unicosmk_output_text_section_asm_op): ...this new function. + (unicosmk_data_section): Delete in favor of... + (unicosmk_output_data_section_asm_op): ...this new function. + (unicosmk_init_sections): New function. + (unicosmk_output_deferred_case_vectors): Use switch_to_section. + (unicosmk_output_ssib): Set in_section to NULL instead of calling + the dummy ssib_section function. + (unicosmk_section_buf): Delete. + * config/alpha/alpha-protos.h (unicosmk_text_section): Delete. + (unicosmk_data_section): Delete. + * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_LOCAL): Use switch_to_section. + (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS, sbss_section, sdata_section) + (SECTION_FUNCTION_TEMPLATE): Delete. + * config/alpha/unicosmk.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP) + (READONLY_DATA_SECTION, EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS) + (common_section, COMMON_SECTION, ssib_section, SSIB_SECTION): Delete. + (ASM_OUTPUT_ALIGNED_LOCAL): Use switch_to_section. + (TARGET_ASM_INIT_SECTIONS): Define. + * config/alpha/vms.h (LINK_SECTION_ASM_OP, LITERALS_SECTION_ASM_OP) + (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete. + (link_section, literals_section): Delete. + (ASM_OUTPUT_DEF): Emit the ".literal" directive directly and then + set in_section to NULL. + + * config/arm/aof.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP): Delete. + (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS, ZERO_INIT_SECTION): Delete. + (COMMON_SECTION): Delete. + (TARGET_ASM_INIT_SECTIONS): Define. + (ASM_OUTPUT_COMMON): Set in_section to NULL rather than calling + the dummy common_section function. + * config/arm/aout.h (ASM_OUTPUT_ALIGNED_LOCAL): Use switch_to_section. + * config/arm/arm.c (get_jump_table_size): Use pointer comparison + between readonly_data_section and text_section to check whether + read-only data is being put in the text section. + (arm_output_function_epilogue): Use switch_to_section. + (arm_elf_asm_constructor): Likewise. + (thumb_call_via_reg): Replace call to in_text_section with + a comparison between in_section and text_section. + (arm_file_end): Use switch_to_section. + (aof_text_section): Delete in favor of... + (aof_output_text_section_asm_op): ...this new function. + (aof_data_section): Delete in favor of... + (aof_output_data_section_asm_op): ...this new function. + (aof_asm_init_sections): New function. + (zero_init_section): Moved from config/arm/aof.h. + (aof_dump_imports, aof_file_start): Use switch_to_section. + * config/arm/arm.h (thumb_call_via_label): Update comment. + * config/arm/arm-protos.h (aof_text_section, aof_data_section): Delete. + (common_section): Delete. + * config/arm/pe.h (ASM_DECLARE_FUNCTION_NAME): Use switch_to_section. + (ASM_DECLARE_OBJECT_NAME): Update the type of save_section. Use the + global switch_to_section function instead of the old port-local one. + (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS, DRECTVE_SECTION_FUNCTION) + (SWITCH_TO_SECTION_FUNCTION): Delete. + (drectve_section): Redefine as a macro. + * config/arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_BSS): + (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use get_named_section and + switch_to_section. + + * config/avr/avr.c (progmem_section): New variable. + (avr_output_progmem_section_asm_op): New function. + (avr_asm_init_sections): New function. + (avr_output_addr_vec_elt): Use switch_to_section. + * config/avr/avr.h (progmem_section): Declare. + (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete. + (READONLY_DATA_SECTION): Delete. + (TARGET_ASM_INIT_SECTIONS): Define. + (ASM_OUTPUT_CASE_LABEL): Use switch_to_section. + * config/avr/avr-protos.h (progmem_section): Delete. + + * config/bfin/bfin.h (ASM_OUTPUT_LOCAL): Use switch_to_section. + + * config/c4x/c4x.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS) + (INIT_SECTION_FUNCTION, FINI_SECTION_FUNCTION): Delete. + + * config/darwin-sections.def: New file. + * config/darwin.c: Define all sections in darwin-sections.def. + (output_objc_section_asm_op, darwin_init_sections): New functions. + (machopic_output_indirection): Use switch_to_section. + (machopic_select_section): Return the selected section rather than + emitting assembly code. Replace the static function table with + inline conditional expressions. Update the tests of last_text_section + and move them into the FUNCTION_DECL block. + (machopic_select_rtx_section): Return the selected section rather than + emitting assembly code. + (machopic_asm_out_constructor, machopic_asm_out_destructor) + (darwin_file_end): Use switch_to_section. + * config/darwin.h: Use darwin-sections.def to declare sections. + (INIT_SECTION_ASM_OP): Remove empty definition. + (HAS_INIT_SECTION): Define this instead. + (SECTION_FUNCTION, EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete. + (READONLY_DATA_SECTION, TARGET_ASM_EXCEPTION_SECTION): Delete. + (TARGET_ASM_EH_FRAME_SECTION): Delete. + (TARGET_ASM_INIT_SECTIONS): Define. + * config/darwin-protos.h (darwin_init_sections): Declare. + (machopic_picsymbol_stub_section, machopic_picsymbol_stub1_section) + (machopic_symbol_stub_section, machopic_symbol_stub1_section): Delete. + (machopic_lazy_symbol_ptr_section, machopic_nl_symbol_ptr_section) + (constructor_section, destructor_section, mod_init_section): Delete. + (mod_term_section): Delete. + (darwin_exception_section, darwin_eh_frame_section): Delete. + (machopic_select_section): Return a section. + (machopic_select_rtx_section): Likewise. + (text_coal_section, text_unlikely_section, text_unlikely_coal_section) + (const_section, const_coal_section, const_data_section): Delete. + (const_data_coal_section, data_coal_section, cstring_section): Delete. + (literal4_section, literal8_section, constructor_section): Delete. + (mod_init_section, mod_term_section, destructor_section): Delete. + (objc_class_section, objc_meta_class_section, objc_category_section) + (objc_class_vars_section, objc_instance_vars_section): Delete. + (objc_cls_meth_section, objc_inst_meth_section): Delete. + (objc_cat_cls_meth_section, objc_cat_inst_meth_section): Delete. + (objc_selector_refs_section, objc_selector_fixup_section): Delete. + (objc_symbols_section, objc_module_info_section): Delete. + (objc_image_info_section, objc_protocol_section): Delete. + (objc_string_object_section, objc_constant_string_object_section) + (objc_class_names_section, objc_meth_var_names_section): Delete. + (objc_meth_var_types_section, objc_cls_refs_section): Delete. + (machopic_lazy_symbol_ptr_section, machopic_nl_symbol_ptr_section) + (machopic_symbol_stub_section, machopic_picsymbol_stub_section) + (darwin_exception_section, darwin_eh_frame_section): Delete. + * config/t-darwin (darwin.o): Depend on config/darwin-sections.def. + + * config/frv/frv.c (frv_asm_out_constructor): Use switch_to_section. + (frv_asm_out_destructor): Likewise. + * config/frv/frv.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete. + (SDATA_SECTION_FUNCTION, FIXUP_SECTION_FUNCTION): Delete. + (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use switch_to_section and + get_named_section. + (ASM_OUTPUT_CASE_LABEL): Use switch_to_section. + * config/frv/frv-protos.h (fixup_section, sdata_section, sbss_section) + (data_section): Delete. + + * config/i386/cygming.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS) + (DRECTVE_SECTION_FUNCTION): Delete. + (drectve_section): Redefine as a macro that sets in_section after + emitting the directive. + (SWITCH_TO_SECTION_FUNCTION): Delete. + * config/i386/darwin.h (ASM_OUTPUT_ALIGN): Replace call to + in_text_section with comparison between in_section and text_section. + * config/i386/i386.c (x86_64_elf_select_section): Return the section + rather than emitting assembly code. Use get_named_section. + (x86_output_aligned_bss, ix86_file_end): Use switch_to_section and + get_named_section. + (machopic_output_stub): Use switch_to_section. + * config/i386/nwld.c (nwld_named_section_asm_out_constructor) + (nwld_named_section_asm_out_destructor): Use get_section and + switch_to_section. + + * config/ia64/ia64.c (ia64_select_rtx_section): Return the section + rather than emitting assembly code. + (ia64_rwreloc_select_section): Likewise. + (ia64_rwreloc_select_rtx_section): Likewise. + * config/ia64/ia64-protos.h (sdata_section, sbss_section): Delete. + * config/ia64/sysv4.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use + switch_to_section. + (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete. + (SDATA_SECTION_FUNCTION, SBSS_SECTION_FUNCTION): Delete. + + * config/iq2000/iq2000.c (iq2000_select_rtx_section): Return the + section rather than emitting assembly code. + (iq2000_select_section): Likewise. + * config/iq2000/iq2000.h (rdata_section, sdata_section): Delete. + (sbss_section): Delete. + + * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_BSS): Use switch_to_section + and get_named_section. + * config/m32r/m32r-protos.h (sbss_section, sdata_section): Delete. + + * config/mcore/mcore-elf.h (EXPORTS_SECTION_ASM_OP): Delete. + (SUBTARGET_EXTRA_SECTIONS, SUBTARGET_EXTRA_SECTION_FUNCTIONS): Delete. + (EXPORT_SECTION_FUNCTION, SUBTARGET_SWITCH_SECTIONS): Delete. + (MCORE_EXPORT_NAME): Emit the exports directive directly, then set + in_section to NULL. + (ASM_DECLARE_FUNCTION_NAME): Use switch_to_section. + (ASM_DECLARE_OBJECT_NAME): Update the type of save_section. Use the + global switch_to_section function instead of the old port-local one. + * config/mcore/mcore.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS) + (SWITCH_SECTION_FUNCTION): Delete. + * config/mcore/mcore-pe.h (SUBTARGET_SWITCH_SECTIONS): Delete. + (DRECTVE_SECTION_ASM_OP, SUBTARGET_EXTRA_SECTIONS): Delete. + (SUBTARGET_EXTRA_SECTION_FUNCTIONS, DRECTVE_SECTION_FUNCTION): Delete. + (MCORE_EXPORT_NAME): Emit ".section .drectve" directly, then set + in_section to NULL. + (ASM_DECLARE_OBJECT_NAME): Update the type of save_section. Use the + global switch_to_section function instead of the old port-local one. + (ASM_DECLARE_FUNCTION_NAME): Use switch_to_section. + + * config/mips/mips.c (mips_file_start): Update comment. + (mips_output_aligned_bss): Use switch_to_section and get_named_section. + (mips_output_aligned_decl_common): Use switch_to_section. + (mips_select_rtx_section): Return the section rather than emitting + assembly code. Use get_named_section. + (mips_function_rodata_section: Likewise get_section. + (build_mips16_function_stub): Use switch_to_section. + * config/mips/mips.h (ASM_OUTPUT_IDENT): Use switch_to_section. + (SDATA_SECTION_ASM_OP): Delete. + * config/mips/vxworks.h (EXTRA_SECTIONS): Delete. + (EXTRA_SECTION_FUNCTIONS): Delete. + + * config/mmix/mmix.c (mmix_file_start, mmix_file_end) + (mmix_asm_output_aligned_local): Use switch_to_section. + + * config/pa/pa.c (som_readonly_data_section, som_one_only_data_section) + (som_one_only_readonly_data_section): New variables. + (pa_output_function_epilogue): Set in_section to NULL instead of + calling forget_section. + (output_deferred_plabels): Use select_section. + (pa_asm_output_mi_thunk): Likewise. Set in_section to NULL instead + of calling forget_section. + (pa_asm_output_aligned_bss, pa_asm_output_aligned_common) + (pa_asm_output_aligned_local): Use select_section. + (som_text_section_asm_op): Delete in favor of... + (som_output_text_section_asm_op): ...this new function. + (pa_som_asm_init_sections): New function. + (pa_select_section): Return the section rather than emitting + assembly code. + * config/pa/pa.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete. + (SOM_READONLY_DATA_SECTION_FUNCTION): Delete. + (SOM_ONE_ONLY_READONLY_DATA_SECTION_FUNCTION): Delete. + (SOM_ONE_ONLY_DATA_SECTION_FUNCTION, FORGET_SECTION_FUNCTION): Delete. + * config/pa/pa-protos.h (som_text_section_asm_op): Delete. + (som_readonly_data_section, som_one_only_readonly_data_section) + (som_one_only_data_section, forget_section): Delete. + * config/pa/som.h (TEXT_SECTION_ASM_OP): Delete. + (TARGET_ASM_INIT_SECTIONS): Define. + (READONLY_DATA_SECTION, TARGET_ASM_EXCEPTION_SECTION): Delete. + + * config/rs6000/rs6000.c (read_only_data_section): New variable. + (private_data_section, read_only_private_data_section): New variables. + (sdata2_section, toc_section): New variables. + (rs6000_file_start): Use switch_to_section. + (rs6000_assemble_integer): Use comparisons against in_section + instead of calling in_toc_section and in_text_section. Use + unlikely_text_section_p. + (rs6000_elf_output_toc_section_asm_op): New function, derived + from the old rs6000/sysv4.h toc_section function. + (rs6000_elf_asm_init_sections): New function. + (rs6000_elf_select_rtx_section, rs6000_elf_select_section): Return + the section rather than emitting assembly code. + (machopic_output_stub): Use switch_to_section. + (toc_section): Delete dummy function. + (rs6000_elf_asm_out_constructor, rs6000_elf_asm_out_destructor): Use + switch_to_section and get_section. + (rs6000_xcoff_output_readonly_section_asm_op): New function. + (rs6000_xcoff_output_readwrite_section_asm_op): New function. + (rs6000_xcoff_output_toc_section_asm_op): New function, derived from + the old rs6000/xcoff.h toc_section function. + (rs6000_xcoff_asm_init_sections): New function. + (rs6000_xcoff_select_section, rs6000_xcoff_select_rtx_section): Return + the section rather than emitting assembly code. + (rs6000_xcoff_file_start): Use switch_to_section. + (rs6000_xcoff_file_end): Likewise. + * config/rs6000/rs6000-protos.h (toc_section, sdata_section): Delete. + (sdata2_section, sbss_section, private_data_section): Delete. + (read_only_data_section, read_only_private_data_section): Delete. + * config/rs6000/sysv4.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS) + (TOC_SECTION_FUNCTION, SDATA_SECTION_FUNCTION, SDATA2_SECTION_FUNCTION) + (SBSS_SECTION_FUNCTION, INIT_SECTION_FUNCTION): Delete. + (FINI_SECTION_FUNCTION): Delete. + (TARGET_ASM_INIT_SECTIONS): Define. + (ASM_OUTPUT_ALIGNED_LOCAL): Use switch_to_section. + * config/rs6000/xcoff.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS) + (READ_ONLY_DATA_SECTION_FUNCTION, PRIVATE_DATA_SECTION_FUNCTION) + (READ_ONLY_PRIVATE_DATA_SECTION_FUNCTION, TOC_SECTION_FUNCTION) + (READONLY_DATA_SECTION): Delete. + (TARGET_ASM_INIT_SECTIONS): Define. + (ASM_DECLARE_FUNCTION_NAME): Use switch_to_section. Set in_section + to NULL rather than no_section. + (TARGET_ASM_EXCEPTION_SECTION): Delete. + + * config/sh/sh.c (sh_file_start): Use switch_to_section. + + * config/sparc/sparc.c (emit_pic_helper): Use switch_to_section. + (sparc_output_deferred_case_vectors): Likewise. Remove argument + from call to current_function_section. + + * config/stormy16/stormy16.c: Include ggc.h and gt-storm16.h. + (bss100_section): New variable. + (xstormy16_asm_output_aligned_common): Use switch_to_section. + (xstormy16_asm_init_sections): New function. + (xstormy16_asm_out_destructor, xstormy16_asm_out_constructor): Use + switch_to_section and get_section. + (xstormy16_output_addr_vec): Use switch_to_section. Remove argument + from calls to current_function_section. + * config/stormy16/stormy16.h (EXTRA_SECTIONS): Delete. + (XSTORMY16_SECTION_FUNCTION, EXTRA_SECTION_FUNCTIONS): Delete. + (TARGET_ASM_INIT_SECTIONS): Define. + * config/stormy16/stormy16-protos.h (bss100_section): Delete. + + * config/svr3.h (ASM_OUTPUT_LOCAL): Use switch_to_section. + (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS, INIT_SECTION_FUNCTION) + (FINI_SECTION_FUNCTION): Delete. + + * config/v850/v850.c: Include gt-v850.h. + (rosdata_section, rozdata_section, tdata_section, zdata_section) + (zbss_section): New variables. + (v850_output_aligned_bss): Use switch_to_section. + (v850_asm_init_sections): New function. + (v850_select_section): Return the section rather than emitting + assembly code. + * config/v850/v850.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS) + (ZDATA_SECTION_ASM_OP, ZBSS_SECTION_ASM_OP, TDATA_SECTION_ASM_OP) + (ROSDATA_SECTION_ASM_OP, ROZDATA_SECTION_ASM_OP): Delete. + (TARGET_ASM_INIT_SECTIONS): Define. + * config/v850/v850-protos.h (sdata_section, rosdata_section): Delete. + (sbss_section, tdata_section, zdata_section, rozdata_section): Delete. + (zbss_section): Delete. + + * config/vax/vaxv.h (ASM_OUTPUT_LOCAL): Use switch_to_section. + + * config/vx-common.h (vxworks_exception_section): Delete. + (TARGET_ASM_EXCEPTION_SECTION): Delete. + + * config/xtensa/xtensa.c (xtensa_select_rtx_section): Return the + section rather than emitting assembly code. + * config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Use + switch_to_section. + + * Makefile.in (GTFILES): Add $(srcdir)/output.h. + * coretypes.h (section): New union and typedef. + * dbxout.c (FORCE_TEXT): Use switch_to_section. Remove argument + from call to current_function_section. + (dbxout_function_end, dbxout_init, dbxout_source_file, dbxout_finish) + (dbxout_symbol_location): Use switch_to_section. + * dwarf2out.c (named_section_eh_frame_section): Delete, moving + most of the code into... + (default_eh_frame_section): ...here. Return a section. + (collect2_eh_frame_section): Delete, moving most of the code into.. + (switch_to_eh_frame_section): ...this new function. + (debug_info_section, debug_abbrev_section, debug_aranges_section) + (debug_macinfo_section, debug_line_section, debug_loc_section) + (debug_pubnames_section, debug_str_section, debug_ranges_section): New + variables. + (output_call_frame_info): Call switch_to_eh_frame_section instead of + eh_frame_section. Use switch_to_section and get_section. + (dwarf2out_begin_prologue): Use switch_to_section. + (AT_string_form): Check the flags in debug_str_section instead of + DEBUG_STR_SECTION_FLAGS. + (output_comp_unit): Use switch_to_section, get_section, and + debug_info_section. + (output_line_info, secname_for_decl): Use unlikely_text_section_p. + (dwarf2out_begin_block): Use switch_to_section. Remove argument + from call to current_function_section. + (dwarf2out_var_location): Use unlikely_text_section_p. + (dwarf2out_source_line): Use switch_to_section. Remove argument + from call to current_function_section. + (dwarf2out_start_source_file, dwarf2out_end_source_file) + (dwarf2out_define, dwarf2out_undef: Use switch_to_section and + debug_macinfo_section. + (dwarf2out_init): Initialize the new section variables. Use them + instead of calls to named_section_flags. Use switch_to_section. + (output_indirect_string): Use switch_to_section and debug_str_section. + (dwarf2out_finish): Use switch_to_section and the new section + variables. + * except.c (default_exception_section): Return the section instead + of emitting assembly code. + (output_function_exception_table): Use the global exception_section + variable instead of the target hook. Use switch_to_section. Remove + argument from call to current_function_section. + * final.c (HAVE_READONLY_DATA_SECTION): Delete. + (shorten_branches): Use pointer comparisons to detect whether the + text section is the same as readonly_data_section. + (profile_function): Use switch_to_section. Remove argument from + call to current_function_section. + (final_scan_insn): Likewise. Update use of last_text_section. + * gengtype.c (open_base_files): Add an include of output.h. + * output.h (text_section, data_section, readonly_data_section) + (ctors_section, dtors_section, bss_section, init_section) + (fini_section, sdata_section): Turn into section pointers. + (in_text_section, in_unlikely_text_section, exports_section) + (drectve_section, named_section, mergeable_string_section) + (last_text_section_name): Delete. + (default_exception_section, default_eh_frame_section): Return sections. + (SECTION_DECLARED, SECTION_NAMED): New macros. + (SECTION_MACH_DEP): Bump value. + (section_common, named_section, unnamed_section): New structures. + (unnamed_section_callback): New typedef. + (section): New union. + (sbss_section, exception_section, eh_frame_section): New variables. + (in_section, last_text_section): Turn into section pointers. + (get_unnamed_section, get_section, get_named_section): New functions. + (mergeable_constant_section, function_section): Return a section. + (unlikely_text_section): Likewise. + (current_function_section): Likewise. Remove the decl argument. + (unlikely_text_section_p, switch_to_section): New functions. + (output_section_asm_op): New function. + (set_named_section_flags, named_section_flags, named_section_real) + (named_section_first_declaration): Delete. + (default_select_section, default_elf_select_section): Return a section. + (default_elf_select_section_1, default_function_rodata_section) + (default_no_function_rodata_section, default_select_rtx_section) + (default_elf_select_rtx_section): Likewise. + * rtl.h (in_data_section): Delete. + * sdbout.c (sdbout_one_type): Use switch_to_section. + * system.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Poison. + (READONLY_DATA_SECTION, TARGET_ASM_EXCEPTION_SECTION): Poison. + (TARGET_ASM_EH_FRAME_SECTION): Poison. + * target-def.h (TARGET_ASM_INIT_SECTIONS): New macro. + (TARGET_ASM_EXCEPTION_SECTION, TARGET_ASM_EH_FRAME_SECTION): Delete. + (TARGET_ASM_OUT): Update after above changes. + * target.h (init_sections): New hook. + (exception_section, eh_frame_section): Delete. + (select_section, select_rtx_section, function_rodata_section): Return + a section rather than emitting assembly code. + * varasm.c (text_section, data_section, readonly_data_section) + (ctors_section, dtors_section, bss_section, init_section) + (fini_section): Turn into section pointers. + (sdata_section, sbss_section, exception_section): New variables. + (eh_frame_section): New variable. + (in_section): Make global and turn into a section pointer. + (last_text_section): Turn into a section pointer. + (unnamed_sections): New variable. + (in_named_name, last_text_section_name): Delete. + (EXTRA_SECTION_FUNCTIONS): Delete. + (in_named_entry): Delete. + (section_htab): New variable, replacing... + (in_named_htab): ...this deleted variable. + (section_entry_eq, section_entry_hash): New functions, based on... + (in_named_entry_eq, in_named_entry_hash): ...these deleted functions. + (get_unnamed_section, get_section): New functions. + (unlikely_text_section): Return a section instead of emitting + assembly code. + (in_text_section, in_unlikely_text_section, in_data_section): Delete. + (get_named_section_flags, named_section_first_declaration): Delete. + (unlikely_text_section_p): New function. + (named_section_real, named_section): Delete. + (get_named_section): New function. + (asm_output_bss, asm_output_aligned_bss): Use switch_to_section. + (function_section): Return a section rather than emitting + assembly code. + (current_function_section): Likewise. Remove argument. Use + last_text_section if nonnull, otherwise use function_section. + (default_function_rodata_section): Return a section rather than + emitting assembly code. Use get_section. + (default_no_function_rodata_section): Return a section rather than + emitting assembly code. + (variable_section): Use switch_to_section and get_named_section. + (mergeable_string_section): Return a section rather than emitting + assembly code. Use get_section. Make static. Don't take special + countermeasures for empty strings. + (mergeable_constant_section): Return a section rather than emitting + assembly code. Use get_section. + (default_named_section_asm_out_destructor): Use switch_to_section + and get_section. + (default_dtor_section_asm_out_destructor): Use switch_to_section. + (default_named_section_asm_out_constructor): Use switch_to_section + and get_section. + (default_ctor_section_asm_out_constructor): Use switch_to_section. + (assemble_start_function): Likewise. Set last_text_section to + NULL rather than no_section. Change the type of save_section. + (assemble_zeros, assemble_variable): Use the section flags to detect + whether or not a section is text. + (assemble_static_space): Use switch_to_section. + (assemble_trampoline_template): Likewise. + (output_constant_def_contents): Use switch_to_section and + get_named_section. + (output_constant_pool_1): Use switch_to_section. Use the section + flags to see whether sections contain mergeable data. + (init_varasm_once): Initialize section_htab instead of in_named_htab. + Initialize new section variables. Call TARGET_ASM_INIT_SECTIONS. + (default_elf_asm_named_section): Use SECTION_DECLARED to detect + whether a section has already been declared. + (default_select_section, default_elf_select_section): Return a + section rather than emitting assembly code. + (default_elf_select_section_1): Likewise. Use bss_section for + SECCAT_BSS if nonnull. Use get_named_section. + (default_select_rtx_section): Return a section rather than + emitting assembly code. + (default_elf_select_rtx_section): Likewise. Use get_named_section. + (file_end_indicate_exec_stack): Use switch_to_section and get_section. + (output_section_asm_op, switch_to_section): New functions. + * vmsdbgout.c (vmsdbgout_finish): Use switch_to_section and + get_named_section. + + * doc/tm.texi: Expand the introduction to the sections documentation. + (TRAMPOLINE_SECTION): Document new interface. + (SDATA_SECTION_ASM_OP): Document new macro. + (READONLY_DATA_SECTION): Delete. + (SDATA_SECTION_ASM_OP): Document new macro. + (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete. + (TARGET_ASM_INIT_SECTIONS): Document new hook. + (TARGET_ASM_SELECT_SECTION, TARGET_ASM_FUNCTION_RODATA_SECTION) + (TARGET_ASM_SELECT_RTX_SECTION): Adjust for new interface. + (TARGET_EXCEPTION_SECTION, TARGET_EH_FRAME_SECTION): Delete. + +2005-12-07 Alan Modra + + * gcc.c (init_gcc_specs): Match braces inside conditionally + compiled strings. + +2005-12-06 Geoffrey Keating + + * config/darwin.h (TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT): New. + +2005-12-06 Aldy Hernandez + + PR C++/24138 + * tree.c (integer_all_onesp): Always return true if all bits on. + + * testsuite/g++.dg/init/array0.C: New. + +2005-12-06 Adrian Straetling + + * doc/md.texi: Adapt to implementation. + +2005-12-06 Andreas Schwab + + * opts.c (decode_options): Fix typo in message. + +2005-12-06 Alan Modra + + PR other/13873 + * longlong.h: Merge PPC tests from upstream. + +2005-12-06 Richard Guenther + + * fold-const.c (fold_convert): Do not build and fold + CONVERT_EXPR, but always use NOP_EXPR. + +2005-12-06 Jan Beulich + + * config/i386/i386.c (builtin_description): Use MASK_SSE2 for + __builtin_ia32_paddq and __builtin_ia32_psubq. + (ix86_init_mmx_sse_builtins): Use MASK_SSE|MASK_3DNOW_A for + __builtin_ia32_pshufw. + * config/i386/i386.md (mmx_adddi3, mmx_subdi3): Depend on TARGET_SSE2. + +2005-12-05 James E Wilson + + PR target/24934 + * opts.c (decode_options): Turn off partitioning if flag_unwind_tables + is set. + +2005-12-05 Daniel Berlin + + * print-tree.c (print_node): Ditto. + * tree-dfa.c (add_referenced_var): Tag's don't have DECL_INITIAL. + * tree-dump.c (dequeue_and_dump): Check for decl_common structure + before accessing DECL_ARTIFICIAL. + Handle new tag tree codes. + * tree-flow-inline.h (clear_call_clobbered): Update for tag + changes. + (unmodifiable_var_p): Ditto. + * tree-flow.h (mem_tag_kind): Remove. + (struct var_ann_d): Remove mem_tag_kind member. + * tree-gimple.c (is_gimple_reg): Tags are not gimple registers. + * tree-pretty-print.c (dump_generic_node): Handle memory tags. + * tree-ssa-alias.c (init_alias_info): Update for memory tag changes. + (group_aliases): Ditto. + (setup_pointers_and_addressables): Ditto. + (is_escape_site): Ditto. + (may_alias_p): Ditto. + (create_tag_raw): New function. + (create_memory_tag): Use it. + (dump_alias_info): Update for tags. + (may_be_aliased): Ditto. + (add_type_alias): Ditto. + (new_type_alias): Ditto. + (create_sft): Ditto. + (create_structure_vars): Ditto. + * tree-ssa-ccp.c (get_default_value): Ditto. + * tree-ssa-operands.c (get_expr_operands): Ditto. + (add_stmt_operand): Ditto. + (add_call_clobber_ops): Remove duplicated condition. + * tree-ssa.c (verify_flow_insensitive_alias_info): Update for + tags. + * tree-tailcall.c (suitable_for_tail_opt_p): Ditto. + * tree-vect-transform.c (vect_create_data_ref_ptr): Ditto. + * tree.c (init_ttree): Update structures for new tree codes. + (tree_code_size): Update sizes for new tree codes. + (make_node_stat): Don't try to set common things on minimal + structures. + (tree_node_structure): Update for tags. + (is_global_var): Ditto. + * tree.def: Add new tree codes. + * tree.h (MTAG_P): New macro. + (TREE_MEMORY_TAG_CHECK): Ditto. + (SSA_VAR_P): Update for tags. + (struct tree_memory_tag): New structure. + (MTAG_GLOBAL): New macro. + (union tree_node): Add memory tag member. + * treestruct.def (TS_MEMORY_TAG): New. + +2005-12-05 Dale Johannesen + + * config/i386/xmmintrin.h (_MM_TRANSPOSE4_PS): Fix to match + what was approved (PR 24323). + +2005-12-05 Gabriel Dos Reis + + * doc/c-tree.texi (Function Bodies): Remove description of + RETURN_INIT. + +2005-12-05 Joseph S. Myers + + * doc/libgcc.texi (__floatunsisf, __floatunsidf, __floatunsitf, + __floatunsixf, __floatundisf, __floatundidf, __floatunditf, + __floatundixf, __floatuntisf, __floatuntidf, __floatuntitf, + __floatuntixf, __powisf2, __powidf2, __powixf2, __mulsc3, + __muldc3, __multc3, __mulxc3, __divsc3, __divdc3, __divtc3, + __divxc3): Document. + +2005-12-05 Geoffrey Keating + + * config/arm/arm.c (arm_cxx_determine_class_data_visibility): Preserve + previous behaviour. + * config/darwin.h (TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT): Define to + hook_bool_void_false. + (TARGET_CXX_DETERMINE_CLASS_DATA_VISIBILITY): Define. + * config/darwin.c (darwin_cxx_determine_class_data_visibility): New. + + * config/darwin.c (machopic_select_section): It's not defined + as weak if it's only marked as weak_import. + + * config/darwin-protos.h (darwin_cxx_determine_class_data_visibility): + Prototype. + + * varasm.c (default_binds_local_p_1): Weakrefs don't bind locally. + A hidden weak object does bind locally. Strong linkonce data + counts like any other strong symbol for binding. + (weak_finish_1): Don't specially handle weakrefs, they no longer + arrive here. + (assemble_alias): Weakrefs can't be TREE_PUBLIC yet. + * c-common.c (handle_alias_attribute): Allow static aliases + of variables. + (handle_weakref_attribute): Don't call declare_weak on weakrefs. + * gthr-dce.h: Make weakrefs static. + * gthr-tpf.h: Likewise. + * gthr-solaris.h: Likewise. + * gthr-posix.h: Likewise. + * gthr-posix95.h: Likewise. + * config/darwin.c (darwin_encode_section_info): static weakref + variables are not necessarily defined in this translation unit. + * doc/extend.texi (Function Attributes): Mention that an alias + attribute creates a definition for the thing it's attached to. + Change the documentation for weakref to say that the thing + it's attached to must be static. + + * config/rs6000/host-darwin.c (segv_handler): Unblock SEGV so + we don't go into an infinite loop. + +2005-12-05 Paolo Bonzini + + * config/rs6000/predicates.md (logical_const_operand): Split + out of logical_operand. + (logical_operand): Use it. + * config/rs6000/rs6000.md (cmp -> xor peephole2): Use + logical_const_operand. + +2005-12-05 Jan Beulich + + * config/i386/i386.c (enum ix86_builtins): Remove IX86_BUILTIN_CMPNEPS + and IX86_BUILTIN_CMPNESS. + (ix86_init_mmx_sse_builtins): Remove ti_ftype_ti_ti. + * config/i386/i386.h (ALIGN_MODE_128): Don't check TFmode explicitly. + * config/i386/i386.md (movti_internal): Correct type attribute. + Simplify mode attribute. + (movti_rex64, movsf_1, movdf_nointeger, movdf_integer, movtf_internal): + Correct type attribute. + (absxf2): Correct operator. + * config/i386/mmx.md (mov_internal_rex64, mov_internal, + movv2sf_internal_rex64, movv2sf_internal): Correct type attribute. + * config/i386/sse.md (mov_internal, movv2df_internal): Simplify + mode attribute. + (sse2_vmsqrtv2df2): Correct mode attribute. + +2005-12-05 Jan Beulich + + * config/ia64/ia64.md (rotlsi3_internal): Don't split if rotating by + 16 bits. Provide insn pattern for this case. + +2005-12-05 Jan Beulich + + * libgcc2.c (__popcountSI2): Don't use wide type for iterator and + result. + (__popcountDI2): Likewise. + +2005-12-04 John David Anglin + + PR target/25166 + * pa/pa.c (pa_hpux_init_libfuncs): Add _U_Qfcnvxf_usgl_to_quad and + _U_Qfcnvxf_udbl_to_quad to set of initialized libfuncs. + * pa/quadlib.c (_U_Qfcnvxf_usgl_to_quad, _U_Qfcnvxf_udbl_to_quad): New + functions. + +2005-12-04 Joseph S. Myers + + * c-typeck.c (null_pointer_constant_p): New function. + (build_conditional_expr, build_c_cast, convert_for_assignment, + build_binary_op): Use it. + +2005-12-04 Joseph S. Myers + + * c-common.c (binary_op_error): Do not allow NOP_EXPR. + (c_common_truthvalue_conversion): Handle NOP_EXPR the same as + CONVERT_EXPR. + (check_function_arguments_recurse): Allow both NOP_EXPR and + CONVERT_EXPR but check conversions preserve precision. + * c-typeck.c (pointer_diff): Allow both NOP_EXPR and CONVERT_EXPR + but check conversions preserve precision. + (build_unary_op): Don't allow NOP_EXPR. Use gcc_unreachable () in + default case. + +2005-12-04 Roger Sayle + + PR c/7776 + * common.opt (Wstring-literal-comparison): New command line option. + * c-opts.c (c_common_handle_option): Set it with -Wall. + * c-typeck.c (parser_build_binary_op): Issue warning if either + operand of a comparison operator is a string literal, except for + testing equality or inequality against NULL. + + * doc/invoke.texi: Document new -Wstring-literal-comparison option. + +2005-12-03 Joseph S. Myers + + * c-common.c (c_sizeof_or_alignof_type): Use fold_convert instead + of building a NOP_EXPR. + (c_alignof_expr): Likewise. Handle CONVERT_EXPR the same as + NOP_EXPR. + * c-convert.c (convert): Use fold_convert instead of building + NOP_EXPRs and CONVERT_EXPRs directly. Don't special case + c_objc_common_truthvalue_conversion returning a NOP_EXPR. Remove + #if 0 code. + * c-pretty-print.c (pp_c_cast_expression, pp_c_expression): Handle + NOP_EXPR the same as CONVERT_EXPR. + * c-typeck.c (build_function_call): Use fold_convert instead of + building a NOP_EXPR directly. + (build_compound_expr): Handle NOP_EXPR the same as CONVERT_EXPR. + +2005-12-03 Alan Modra + + PR rtl-optimization/25197 + * dwarf2out.c (dwarf2out_frame_debug_expr ): Assert we + have a reg. + +2005-12-02 Stuart Hastings + + * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Remove -fpic + warning. + +2005-12-03 Joseph S. Myers + + * c-typeck.c (default_function_array_conversion, + build_function_call): Allow for CONVERT_EXPR as well as NOP_EXPR. + (build_conditional_expr): Apply integer_zerop to orig_op1 and + orig_op2. Don't check them for NOP_EXPR. + (build_c_cast, convert_for_assignment): Don't check for NOP_EXPR + around integer zero. + +2005-12-03 Alan Modra + + * config/rs6000/rs6000.c (rs6000_stack_t): Remove toc_save_p, + toc_save_offset, toc_size, lr_size. + (rs6000_stack_info): Use memset rather than bss struct copy to init. + Test rs6000_ra_ever_killed last in condition setting lr_save_p. + Adjust for removal of unused rs6000_stack_t fields. + (debug_stack_info): Adjust. + (rs6000_ra_ever_killed): Expand FIND_REG_INC_NOTE. Test for calls + first, and don't bother checking for set/inc of lr on sibcalls. + (rs6000_emit_epilogue): Tidy code restoring stack pointer. + +2005-12-02 Jakub Jelinek + + PR target/25199 + * config/i386/i386.md (movqi_1): Only force imovx for alternative + 5 if operand 1 is not aligned. Undo previous constraint change. + * config/i386/predicates.md (aligned_operand): Use MEM_ALIGN. + +2005-12-02 Richard Guenther + + * tree.h (build): Remove prototype. + (build, _buildN1, _buildN2, _buildC1, _buildC2): Remove macros. + * tree.c (build): Remove. + (build0_stat): Update comment. + +2005-12-02 Richard Guenther + + * tree-ssa-loop-im.c (schedule_sm): Use buildN instead of build. + * tree-complex.c (update_complex_assignment, expand_complex_div_wide): + Likewise. + * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref, + maybe_fold_offset_to_component_ref): Likewise. + * tree-ssa-dom.c (thread_across_edge, + simplify_rhs_and_lookup_avail_expr, + find_equivalent_equality_comparison, record_equivalences_from_stmt): + Likewise. + * gimple-low.c (lower_function_body, lower_return_expr): Likewise. + * tree-eh.c (do_return_redirection, honor_protect_cleanup_actions, + lower_try_finally_switch): Likewise. + * tree-if-conv.c (add_to_dst_predicate_list, + replace_phi_with_cond_modify_expr, ifc_temp_var): Likewise. + * gimplify.c (internal_get_tmp_var, gimple_build_eh_filter, + voidify_wrapper_expr, build_stack_save_restore, gimplify_bind_expr, + gimplify_return_expr, gimplify_decl_expr, gimplify_switch_expr, + gimplify_case_label_expr, gimplify_exit_expr, gimplify_self_mod_expr, + shortcut_cond_r, shortcut_cond_expr, gimplify_cond_expr, + gimplify_init_ctor_eval, gimplify_init_constructor, + gimplify_variable_sized_compare, gimplify_boolean_expr, + gimplify_cleanup_point_expr, gimple_push_cleanup, gimplify_target_expr, + gimplify_expr, gimplify_body, gimplify_function_tree, + force_gimple_operand): Likewise. + * tree-ssa-pre.c (create_expression_by_pieces): Likewise. + * tree-mudflap.c (mf_decl_cache_locals, mf_build_check_statement_for, + mx_register_decls): Likewise. + * tree-nested.c (init_tmp_var, save_tmp_var, get_static_chain, + get_frame_field, finalize_nesting_tree_1): Likewise. + * tree-inline.c (setup_one_parameter): Likewise. + * tree-vect-transform.c (vectorizable_condition): Likewise. + * tree-outof-ssa.c (insert_copy_on_edge, insert_backedge_copies): + Likewise. + * tree-profile.c (tree_gen_edge_profiler): Likewise. + * tree-cfg.c (factor_computed_gotos, gimplify_val): Likewise. + * c-parser.c (c_parser_if_body, c_parser_switch_statement): Likewise. + * tree-chrec.h (build_polynomial_chrec): Likewise. + +2005-12-02 Richard Guenther + + * config/alpha/alpha.c (alpha_va_start, alpha_gimplify_va_arg_1i, + alpha_gimplify_va_arg): Use buildN and fold_buildN where applicable. + * config/frv/frv.c (frv_expand_builtin_va_start): Likewise. + * config/s390/s390.c (s390_va_start, s390_gimplify_va_arg): Likewise. + * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise. + * config/i386/i386.c (ix86_va_start, ix86_gimplify_va_arg): Likewise. + * config/rs6000/rs6000.c (rs6000_va_start, rs6000_gimplify_va_arg): + Likewise. + * config/sh/sh.c (sh_va_start, sh_gimplify_va_arg_expr, + sh_adjust_unroll_max): Likewise. + * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Likewise. + * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise. + * config/xtensa/xtensa.c (xtensa_va_start, xtensa_gimplify_va_arg_expr): + Likewise. + * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start): + Likewise. + * config/mips/mips.c (mips_va_start, mips_gimplify_va_arg_expr): + Likewise. + +2005-12-02 Richard Guenther + + * tree-vrp.c (build_assert_expr_for, process_assert_insertions_for, + simplify_cond_using_ranges): Use buildN instead of build. + * tree-tailcall.c (adjust_accumulator_values, + adjust_return_value): Likewise. + * tree-sra.c (generate_one_element_ref, generate_copy_inout, + generate_element_copy, generate_element_zero, + generate_one_element_init): Likewise. + * tree-ssa-forwprop.c (forward_propagate_into_cond_1): Likewise. + * lambda-code.c (gcc_loop_to_lambda_loop, lbv_to_gcc_expression, + lle_to_gcc_expression, lambda_loopnest_to_gcc_loopnest, + perfect_nestify): Likewise. + +2005-12-02 John David Anglin + + * pa.c (pa_secondary_reload): Revise initialization of variable regno. + +2005-12-02 Gabriel Dos Reis + + * ggc.h (GGC_RESIZEVEC): New. + +2005-12-02 Volker Reichelt + + * gcc.c (execute): Improve readability. + +2005-12-02 Richard Guenther + + * tree-cfg.c (mark_used_vars): New function. + (dump_function_to_file): Dump only used VAR_DECLs. + +2005-12-02 Richard Guenther + + * convert.c (convert_to_integer): Fix compare for nonpositive + constant to use tree_int_cst_sgn <= 0. + +2005-12-02 Richard Guenther + + * convert.c (convert_to_integer): Use fold_convert instead + of fold_build1 (NOP_EXPR, ...). Use tree_int_cst_sgn < 0 + instead of comparing against 0. Use build_int_cst instead + of converting integer_zero_node. + +2005-12-02 Richard Guenther + + * tree-pretty-print.c (op_symbol): Handle LROTATE_EXPR + and RROTATE_EXPR. + +2005-12-02 Alan Modra + + PR target/21017 + * combine.c (simplify_logical ): Simplify more patterns to + rotates. + +2005-12-02 Alan Modra + + PR middle-end/25176 + * function.c (expand_function_end): Emit blockage for unwinder + after return label. + +2005-12-01 Roger Sayle + + * tree.h (TREE_OVERFLOW): Make this flag/predicate specific to + constant nodes, i.e. INTEGER_CST, REAL_CST, etc... + * tree-vrp.c (compare_values): Only check TREE_OVERFLOW for + integer constant comparisons. + +2005-12-02 Jon Grimm + Janis Johnson + David Edelsohn + Ben Elliston + + * dfp.h, dfp.c: New files. + * Makefile.in (DECNUM, DECNUMINC, LIBDECNUMBER): New variables. + (DECNUM_H): Likewise. + (LIBDEPS, LIBS, BACKEND): Append $(LIBDECNUMBER). + (INCLUDES): Append $(DECNUMINC). + (OBJS-common): Add dfp.o. + (dfp.o): New rule. + * real.h (EXP_BITS): Pinch one bit to .. + (struct real_value): Add decimal field. + (real_format): Change table size, update documentation. + (REAL_MODE_FORMAT): Update for to handle float, decimal float. + (real_from_string3): Declare. + (decimal_single_format): Declare. + (decimal_double_format): Declare. + (decimal_quad_format): Declare. + (REAL_VALUE_TO_TARGET_DECIMAL32): New. + (REAL_VALUE_TO_TARGET_DECIMAL64): New. + (REAL_VALUE_TO_TARGET_DECIMAL128): New. + * real.c: Include dfp.h. + (normalize): Early return for decimal floats. + (do_add): Zero decimal field. + (do_compare): Call do_decimal_compare for decimal floats. + (do_fix_trunc): Likewise, call decimal_do_fix_trunc. + (real_arithmetic): Call decimal_real_arithmetic for decimal + floating point operands. + (real_identical): If a and b are of differing radix, return false. + (real_to_integer): Call decimal_real_to_integer if the value is a + decimal float. + (real_to_integer2): Likewise, call decimal_real_to_integer2. + (real_to_decimal): Likewise, call decimal_real_to_decimal. + (real_to_hexadecimal): Place "N/A" in the return string for + decimal float. + (real_from_string3): New variant, given a mode. + (real_maxval): Use decimal_real_maxval for decimal floats. + (round_for_format): Use decimal_round_for_format for decimals. + (real_convert): Use decimal_real_convert where appropriate. + (significand_size): Handle base 10. + (encode_decimal_single, decode_decimal_single, + encode_decimal_double, decode_decimal_double, encode_decimal_quad, + decode_decimal_quad): New functions. + (decimal_single_format): New. + (decimal_double_format): New. + (decimal_quad_format): New. + * machmode.def: Add SD, DD and TD decimal floating point modes. + * machmode.h (FLOAT_MODE_P, SCALAR_FLOAT_MODE_P, MODES_WIDEN_P): + Include MODE_DECIMAL_FLOAT. + (DECIMAL_FLOAT_MODE_P): New. + * mode-classes.def (MODE_DECIMAL_FLOAT): New mode class. + * genmodes.c (struct mode_data): Add counter field. + (struct mode_data): Update comment for format. + (blank_mode): Initialise counter field. + (new_mode): Increment counter field for each mode defined. + (complete_mode): Handle MODE_DECIMAL_FLOAT, update check for mode + using a format. + (make_complex_modes): Handle modes containing `D'. + (DECIMAL_FLOAT_MODE, FRACTIONAL_DECIMAL_FLOAT_MODE): New. + (make_decimal_float_mode): New. + (reset_float_format): Handle MODE_DECIMAL_FLOAT. + (cmp_modes): Compare counter field if other characteristics + similar. + (emit_real_format_for_mode): Support formats for decimal floats. + * doc/rtl.texi (Machine Modes): Document SD, DD and TDmodes. + Document MODE_DECIMAL_FLOAT. + +2005-12-02 Alan Modra + + * simplify-rtx.c (simplify_plus_minus): Do simplify constants. + Delete dead code. + +2005-12-01 Richard Henderson + + * optabs.c (expand_vec_cond_expr): Use EXPAND_NORMAL. + +2005-12-01 Kaveh R. Ghazi + + * builtins.def (BUILT_IN_PUTC, BUILT_IN_PUTC_UNLOCKED): New. + + * config/pa/pa.c (pa_init_builtins): If we detect + DONT_HAVE_FPUTC_UNLOCKED, set builtin fputc_unlocked to + putc_unlocked. + +2005-12-01 Richard Guenther + + * fold-const.c (fold_binary): Use fold_build2, not + fold (build (...)). + +2005-12-01 Nathan Sidwell + + * config/ms1/ms1.c (ms1_reorg_hazard): Don't count noop moves. + + * vec.h (VEC_block_remove): New. + +2005-12-01 Gabriel Dos Reis + + PR c/13384 + * c-common.c (lvalue_error): Fix wording. + +2005-12-01 Richard Guenther + + * tree-ssa-forwprop.c (forward_propagate_addr_expr): Fix + thinko in last patch. + +2005-12-01 Geoffrey Keating + + * config/t-slibgcc-darwin (SHLIB_LINK): Use -single_module rather + than -flat_namespace. + +2005-12-01 Ben Elliston + + * mklibgcc.in: Parameterise the script to build soft float + functions by iterating over each type, rather than cloning the + code for each type. + +2005-11-30 Kaveh R. Ghazi + + PR middle-end/25158 + * builtins.c (fold_builtin_fputs): Defer check for missing + replacement functions. + +2005-11-30 Kean Johnston + + * config/i386/i386.c: Check the value of SUPPORTS_ONE_ONLY, not + simply its presense in case targets #define SUPPORTS_ONE_ONLY 0. + +2005-11-30 Richard Guenther + + PR tree-optimization/22501 + * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): New + function split out from ... + (forward_propagate_addr_expr): ... here. Use it to propagate + ADDR_EXPRs to all uses. + +2005-11-30 Volker Reichelt + + * tree.h (CASE_FLT_FN, CASE_INT_FN): New macros. + * builtins.c (expand_builtin_mathfn): Use them. + (expand_builtin_mathfn_2): Likewise. + (expand_builtin_mathfn_3): Likewise. + (expand_builtin_int_roundingfn): Likewise. + (expand_builtin): Likewise. + (integer_valued_real_p): Likewise. + (fold_builtin_int_roundingfn): Likewise. + (fold_builtin_bitop): Likewise. + (fold_builtin_logarithm): Likewise. + (fold_builtin_1): Likewise. + * convert.c (convert_to_integer): Likewise. + * fold-const.c (negate_mathfn_p): Likewise. + (tree_expr_nonnegative_p): Likewise. + +2005-11-30 Dale Johannesen + Andrew Pinski + + * combine.c (find_split_point): Sign extend bitmask + when changing bitfield assignment to IOR of AND. + +2005-11-30 Nathan Sidwell + + * config/ms1/ms1.md (decrement_and_branch_until_zero): Add early + clobber to scratch reg. + (*decrement_and_branch_until_zero_no_clobber): Remove. + (decrement_and_branch peephole): Add dummy scratch reg to pattern. + (mulhish3): Use TARGET_MS1_16_003, TARGET_MS2. + * config/ms1/ms1.opt (mmul): Remove. + * config/ms1/ms1.h (ASM_SPEC): Cope with uppercase arch names. + (LINK_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Default to 16-002. + +2005-11-30 John David Anglin + Bernd Schmidt + + * pa/predicates.md (symbolic_operand): Add comment. + * pa/pa.md (reload_insi_r1, reload_indi_r1): New reload expanders. + * pa/pa-protos.h (pa_secondary_reload_class): Delete. + * pa/pa.c (TARGET_SECONDARY_RELOAD): Define. + (pa_secondary_reload_class): Delete. + (pa_secondary_reload): New function derived from SECONDARY_RELOAD_CLASS + and pa_secondary_reload_class. Reorder some checks. Update inline + copy of symbolic operand. + * pa/pa.h (SECONDARY_RELOAD_CLASS): Delete. + +2005-11-30 Nathan Sidwell + + * loop-doloop.c (add_test): Only add jump notes if we did emit a + jump. + +2005-11-30 Jeff Law + + * tree-ssa-uncprop.c (associate_equivalences_with_edges): Properly + handle SSA_NAME_OCCURS_IN_ABNORMAL_PHI. + +2005-11-30 Jakub Jelinek + + * config/ia64/ia64.c (ia64_expand_tls_address): Add ORIG_OP1 argument. + Move ADDEND_{HI,LO} computation into TLS_MODEL_INITIAL_EXEC case. + (ia64_expand_move): Adjust caller. + + * config/ia64/ia64.c (ia64_expand_atomic_op): Only use + fetchadd{4,8}.acq instruction if CODE is PLUS or MINUS, for MINUS + negate VAL. + +2005-11-30 Paolo Bonzini + + * simplify-rtx.c (simplify_plus_minus): Remove final parameter. + Always produce an output if we can remove NEGs or canonicalize + (minus (minus ...)) expressions. Provide a fast path for the + two-operand case. + (simplify_gen_binary): Do not call simplify_plus_minus. + (simplify_binary_operation_1): Reassociate at the end of the + function. + +2005-11-29 Evan Cheng + + * config/i386/xmmintrin.h (_MM_TRANSPOSE4_PS): Rewrite using high/low + moves and unpack to speed up. + +2005-11-29 David S. Miller + + * config/sparc/sparc.c (gen_compare_reg): Kill 2nd and 3rd + argument, they are always sparc_compare_op0 and sparc_compare_op1. + (gen_v9_scc): Update callers. + * config/sparc/sparc.md: Likewise. + * config/sparc/sparc-protos.h: Update extern declaration. + + * tree-into-ssa.c (rewrite_into_ssa): Fix comment typo. + +2005-11-29 Andrew Pinski + + * fold-const.c (negate_expr) : Add break after + the if. + +2005-11-29 Andrew Pinski + + * fold-const.c (negate_expr_p): Return true for BIT_NOT_EXPR. + (fold_unary) : Move -(~a) transformation to ... + (negate_expr): Here. + +2005-11-29 Ben Elliston + + * config/i386/i386.h (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN): + Fix typo in comment. + +2005-11-29 Ben Elliston + + * Makefile.in (clean-target): Depend on clean-target-libgcc. + (clean-target-libgcc): Import rule from the top-level Makefile.in. + +2005-11-29 Kaveh R. Ghazi + + PR middle-end/20109 + PR middle-end/25120 + * builtins.c (init_target_chars): New. + (expand_builtin_printf, expand_builtin_fprintf, + expand_builtin_sprintf, fold_builtin_sprintf, + maybe_emit_sprintf_chk_warning, fold_builtin_sprintf_chk, + fold_builtin_snprintf_chk, fold_builtin_printf, + fold_builtin_fprintf): Check for matching format strings using + the target charset. + +2005-11-29 Paul Brook + + * config.gcc: Do not use fixproto on m68k-elf. + +2005-11-28 Roger Sayle + + * expmed.c (div_cost): Replace with... + (sdiv_cost, udiv_cost): New. + (init_expmed): Initialize sdiv_cost and udiv_cost, not div_cost. + Rename the div and mod fields, used to initialize sdiv_pow2_cheap + and smod_pow2_cheap, to sdiv_32 and smod_32 to avoid confusion. + (expand_divmod): Replace use of div_cost with either sdiv_cost + or udiv_cost depending upon the signedness of the operation. + +2005-11-28 Alexandre Oliva + + PR libfortran/24991 + * config/darwin.c (machopic_indirection_name, + machopic_output_indirection): Follow transparent alias chain. + +2005-11-28 Alexandre Oliva + + * varasm.c (ultimate_transparent_alias_target): Add comment. + +2005-11-28 Kazu Hirata + + * config/m68k/m68k.c (notice_update_cc): Use SET_DEST and + SET_SRC instead of XEXP where appropriate. + +2005-11-28 Joseph S. Myers + + * config/fp-bit.c (isnan, isinf, pack_d, unpack_d): Use + __builtin_expect. + +2005-11-28 Joseph S. Myers + + * config/fp-bit.h (LSHIFT): Take shift count parameter. + * config/fp-bit.c (_fpadd_parts): Shift in one go instead of one + bit at a time. + +2005-11-28 Bernd Schmidt + + * config/bfin/bfin.c (bfin_secondary_reload): Renamed from + secondary_input_reload_class, made static. Adapt to new + infrastructure. + (secondary_output_reload_class): Delete. + (TARGET_SECONDARY_RELOAD): New macro. + * config/bfin/bfin.h (SECONDARY_INPUT_RELOAD_CLASS, + SECONDARY_OUTPUT_RELOAD_CLASS): Delete. + +2005-11-28 Nathan Sidwell + + PR c++/21166 + * c-decl.c (finish_struct): Only set DECL_PACKED on a field + when its natural alignment is > BITS_PER_UNIT. + * stor-layout.c (finalize_type_size): Revert my patch of 2005-08-08. + * c-common.c (handle_packed_attribute): Ignore packing on a field + whose type is naturally char aligned. + +2005-11-28 Richard Guenther + + * c-common.c (strict_aliasing_warning): Handle all + component-ref like accesses. + +2005-11-28 Roger Sayle + Uros Bizjak + + PR middle-end/20219 + * fold-const.c (fold binary) : Optimize + sin(x)/tan(x) as cos(x) and tan(x)/sin(x) as 1.0/cos(x) + when flag_unsafe_math_optimizations is set and + we don't care about NaNs or Infinities. + + Move x/expN(y) and x/pow(y,z) transformation into common + flag_unsafe_math_optimizations section. + +2005-11-27 Mark Mitchell + + * gcc.c (main): Change type of argv to "char **". + +2005-11-28 Alan Modra + + * doc/invoke.texi (powerpc msdata-data): Static data doesn't go in + small data sections. + * config/rs6000/rs6000.c (rs6000_elf_in_small_data_p): Make global. + * config/rs6000/rs6000-protos.h: (rs6000_elf_in_small_data_p): Declare. + * config/rs6000/sysv4.h (ASM_OUTPUT_ALIGNED_LOCAL): Rename to.. + (ASM_OUTPUT_ALIGNED_DECL_LOCAL): ..this, adding extra parm. Don't + output locals to sbss if !rs6000_elf_in_small_data_p. + (ASM_OUTPUT_ALIGNED_BSS): Adjust for above. + +2005-11-28 Alan Modra + + PR target/24997 + * config/rs6000/rs6000.c (legitimate_indexed_address_p): Allow pattern + generated by reload. + * config/rs6000/predicates.md (indexed_or_indirect_operand): Use + indexed_or_indirect_address. + (indexed_or_indirect_address): Don't test for base reg. Call + address_operand last. Make it a special predicate. + +2005-11-27 Kazu Hirata + + * config/m68k/m68k.c (notice_update_cc): Remove useless code. + +2005-11-27 Andrew Pinski + + PR middle-end/24575 + * fold-const.c (negate_expr_p): Add case for signed divides if overflow + is undefined. + (negate_expr): Likewise. + +2005-11-27 Andreas Schwab + + * config/m68k/m68k.c: Reindent and fix whitespace, remove + redundant parens. + +2005-11-27 Steven Bosscher + + * cfgcleanup.c (try_crossjump_to_edge): Always split SRC2 if it + has EH predecessor edges. + +2005-11-26 Eric Christopher + + * config/i386/i386.md (*zero_extendqihi2_movzbw): Avoid partial + register stalls by zero extending to the full register. + +2005-11-27 Joseph S. Myers + + * config/floatunsisf.c, config/floatunsidf.c, + config/floatunsixf.c, config/floatunsitf.c: New files. + * config/ia64/t-hpux: Add floatunsitf.c. + * config/ia64/ia64.c (ia64_init_libfuncs): Use + _U_Qfcnvxuf_dbl_to_quad for unsigned DImode-to-TFmode conversion. + +2005-11-26 Richard Henderson + + * c-lex.c (pragma_lex): Rename from c_lex. + * c-pch.c: Update for pragma_lex rename. + * c-pragma.c, c-pragma.h, config/ia64/ia64-c.c: Likewise. + * config/m32c/m32c-pragma.c, config/darwin-c.c: Likewise. + * config/rs6000/rs6000-c.c, config/c4x/c4x-c.c: Likewise. + * config/sol2-c.c, config/v850/v850-c.c: Likewise. + * doc/tm.texi: Likewise. + +2005-11-26 Andrew Pinski + + PR middle-end/23669 + * fold-const.c (fold_binary): Convert -A/-B to A/B for signed types + when overflow is undefined. + +2005-11-26 Hans-Peter Nilsson + + * doc/md.texi (Insn Canonicalizations): Refer to the + function commutative_operand_precedence for further rules. + +2005-11-25 Roger Sayle + + PR middle-end/21309 + * expmed.c (choose_mult_variant): Return immediately when mult_cost + is less than zero. Limit mult_cost to a reasonable upper bound for + the synthetic multiplication sequence. + +2005-11-25 Kaveh R. Ghazi + + PR middle-end/25022 + * builtins.c (expand_builtin_printf, expand_builtin_fprintf, + fold_builtin_fputs, fold_builtin_printf, fold_builtin_fprintf): + Lookup the explicit replacement functions for any unlocked + stdio builtin transformations. + +2005-11-25 Hans-Peter Nilsson + + * config/cris/cris.md ("reload_out"): Mark operand 2 as + earlyclobber. + * targhooks.c (default_secondary_reload): Don't require operand 2 + for an input reload to be earlyclobber. + +2005-11-25 Volker Reichelt + + * fold-const.c (negate_mathfn_p): Fix comment and add support + for BUILT_IN_CBRT, BUILT_IN_SINH, BUILT_IN_TANH, BUILT_IN_ASINH, + BUILT_IN_ATANH. + +2005-11-25 Joseph S. Myers + + PR middle-end/24998 + * config/sparc/sparc.c (sparc_init_libfuncs): Use _Q_utoq and + _Q_ulltoq for unsigned conversions from SImode and DImode to + TFmode. + +2005-11-25 Alan Modra + + * config/rs6000/ppc64-fp.c (__floatunditf): New function. + (__floatundidf, __floatundisf): Likewise. + +2005-11-25 David Edelsohn + + * config/rs6000/rs6000.c (rs6000_sr_alias_set): Delete. + (rs6000_override_options): Remove initialization of + rs6000_sr_alias_set. + (rs6000_emit_eh_reg_restore): Use gen_frame_mem. + (rs6000_emit_stack_tie): Same. + (emit_frame_save): Same. + (gen_frame_mem_offset): Same. + (rs6000_emit_prologue): Same. + (rs6000_emit_epilogue): Same. + +2005-11-25 Andrew Pinski + + PR middle-end/24989 + * fold-const.c (fold_build): Convert bool_var != 1 and + bool_var == 0 to !bool_var. + +2005-11-25 Andrew Pinski + + PR middle-end/24990 + * fold-const.c (fold_binary): Fold (~a) == C to a == ~C + for C being INTEGER_CST. Likewise for !=. + +2005-11-25 Joseph S. Myers + + PR middle-end/24998 + * config/rs6000/rs6000.c (rs6000_init_libfuncs): Use _q_utoq for + unsigned conversions from SImode to TFmode. + +2005-11-24 Bernd Schmidt + + * expr.c (expand_expr_real_1): Fix error in last change. + +2005-11-24 J"orn Rennecke + + * caller-save.c: (this_insn_sets): Move into: + (save_call_clobbered_regs). + (mark_set_regs): Get this_insn_sets from data. + + (save_call_clobbered_regs): Take sets of the return value by + sibcalls into account. + +2005-11-24 J"orn Rennecke + PR target/21623: + + * regclass.c (FORBIDDEN_INC_DEC_CLASSES): Remove + SECONDARY_INPUT_RELOAD_CLASS and SECONDARY_OUTPUT_RELOAD_CLASS tests. + (init_fake_stack_mems): Remove HAVE_SECONDARY_RELOADS test. + (memory_move_secondary_cost, init_reg_autoinc): Remove + SECONDARY_INPUT_RELOAD_CLASS / SECONDARY_OUTPUT_RELOAD_CLASS tests. + Replace SECONDARY_{IN,OUT}PUT_RELOAD_CLASS use with + secondary_reload_class call. + (copy_cost): Likewise. Add new parameter prev_sri. Changed all + callers. + * reload.c (entire file): Remove HAVE_SECONDARY_RELOADS checks. + (push_secondary_reload): Use secondary_reload target hook. + (secondary_reload_class, scratch_reload_class): New functions. + (push_reload): Remove SECONDARY_INPUT_RELOAD_CLASS and + SECONDARY_OUTPUT_RELOAD_CLASS tests. Replace + SECONDARY_{IN,OUT}PUT_RELOAD_CLASS use with secondary_reload_class call. + * reload.h (HAVE_SECONDARY_RELOADS): Don't define nor test. + (secondary_reload_class, scratch_reload_class): Declare. + * reload1.c: Include target.h. + (reload_adjust_reg_for_temp): New function. + (reload_adjust_reg_for_icode): Likewise. + (choose_reload_regs): Remove SECONDARY_INPUT_RELOAD_CLASS test. + Replace SECONDARY_INPUT_RELOAD_CLASS use with secondary_reload_class + call. + (emit_input_reload_insns): Likewise. Rewrite secondary reload checks + for inheritance. Support case when both secondary & tertiary reloads + are for intermediate registers. + (emit_output_reload_insns): Replace SECONDARY_OUTPUT_RELOAD_CLASS use + with secondary_reload_class call. Support case when both secondary + & tertiary reloads are for intermediate registers. + * target-def.h (TARGET_SECONDARY_RELOAD): Provide default definition. + (TARGET_INITIALIZER) Add TARGET_SECONDARY_RELOAD. + * target.h (secondary_reload_info): New struct / typedef. + (struct gcc_target): New member secondary_reload. + * targhooks.c Include reload.h, optabs.h and recog.h. + (default_secondary_reload): New function. + * targhooks.h (default_secondary_reload): Declare. + * doc/tm.texi: Document secondary_reload target hook. Update + description of SECONDARY_*RELOAD_CLASS and reload_{in,out}. + * doc/md.texi: Likewise. + + * sh-protos.h (sh_secondary_reload): Declare. + * sh.c (TARGET_SECONDARY_RELOAD): Override. + (sh_secondary_reload): New function. + * sh.h (SECONDARY_INOUT_RELOAD_CLASS): Don't define. + (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise. + (SECONDARY_INPUT_RELOAD_CLASS): Likewise. + (HAVE_SECONDARY_RELOADS): Define. + * sh.md (reload_indf): Rename to: + (reload_indf__frn). + (reload_outdf): Rename to: + (reload_outdf__RnFRm). + (reload_insf): Rename to: + (reload_insf__frn). + (reload_insi): Rename to: + (reload_insi__i_fpul). + +2005-11-24 Uros Bizjak + + * configure.ac: Require at least texinfo 4.4. + * configure: Regenerate. + + * doc/install.texi (Tools/packages necessary for building GCC): + Update required version of texinfo to at least 4.4. + (Installing GCC: Building): Update required version of texinfo + to at least 4.4. + (Installing GCC: Final installation): Update required version + of texi2dvi to at least 4.4. + (Host/target specific installation notes for GCC): Update required + version of texinfo to at least 4.4. + +2005-11-24 Richard Guenther + Dirk Mueller + + PR c++/14024 + * c-common.h (strict_aliasing_warning): Declare. + * c-common.c (strict_aliasing_warning): New function, + split out from ... + * c-typeck.c (build_c_cast): ... here. + +2005-11-24 Paolo Bonzini + + * optabs.c (expand_binop): Use swap_commutative_operands_with_target + to order operands. + (swap_commutative_operands_with_target): New. + +2005-11-24 Paolo Bonzini + + * gcse.c (hash_scan_set): Look through REG_EQUAL or REG_EQUIV notes + also when doing PRE, rather than only for global CPROP. + +2005-11-24 Ben Elliston + + * machmode.h (CLASS_HAS_WIDER_MODES_P): New macro. + * optabs.c (expand_binop): Use CLASS_HAS_WIDER_MODES_P, improve + formatting. + (expand_twoval_unop): Likewise. + (widen_clz): Likewise. + (expand_parity): Likewise. + (expand_unop): Likewise. + (emit_cmp_and_jmp_insn_1): Likewise. + (prepare_float_lib_cmp): Likewise. + +2005-11-24 Ben Elliston + + * optabs.c (prepare_cmp_insn): Use SCALAR_FLOAT_MODE_P. + Remove unused `class' variable. + +2005-11-23 Gabriel Dos Reis + + PR c++/21667 + * c-typeck.c (build_array_ref): Avoid code duplicate. Use common + C/C++ diagnostic function warn_array_subscript_with_type_char. + * c-common.h (warn_array_subscript_with_type_char): Declare. + * c-common.c (warn_array_subscript_with_type_char): Define. + +2005-11-23 Gabriel Dos Reis + + PR c/21668 + * c-decl.c (grokdeclarator): Don't warn for 'extern const' when + compiling at the intersection of C and C++. + +2005-11-23 Mark Mitchell + + * doc/invoke.texi: For man pages, include gcc-vers.texi. + List @file in the option summary. Include the libiberty + documentation for @file. + * gcc.c (main): Call expandargv. + * Makefile.in (gcc-vers.texi): Define srcdir. + +2005-11-23 Diego Novillo + + * passes.c (init_optimization_passes): Document + sequencing of passes. + +2005-11-23 Kazu Hirata + + * config/m68k/predicates.md (pcrel_address, extend_operator, + post_inc_operand, pre_dec_operand): Remove redundant + conditionals. + (const_uint32_operand, const_sint32_operand): Use gcc_assert + instead of abort. + (valid_dbcc_comparison_p): Rewrite in the lisp style. + +2005-11-23 Ben Elliston + + * dwarf2.h (enum dwarf_type): Add DW_ATE_decimal_float. + +2005-11-22 J"orn Rennecke + + Preparatory work for PR target/21623: + * alpha.c (secondary_reload_class): Rename to: + (alpha_secondary_reload_class). + * alpha.h, alpha-protos.h: Likewise. + * mn10300.c (secondary_reload_class): Rename to: + (mn10300_secondary_reload_class). + * mn10300.h, mn10300-protos.h: Likewise. + * pa.c (secondary_reload_class): Rename to: + (pa_secondary_reload_class). + * pa.h, pa-protos.h: Likewise. + * rs6000.c (secondary_reload_class): Rename to: + rs6000_secondary_reload_class. + * rs6000.h, rs6000-protos.h: Likewise. + +2005-11-22 Eric Botcazou + + PR middle-end/22561 + * tree-ssa-structalias.c (get_constraint_for): Handle ARRAY_RANGE_REF. + +2005-11-22 Ian Lance Taylor + + * optabs.c (expand_unop): Call SCALAR_FLOAT_MODE_P on a mode, not + a mode_class. + (prepare_cmp_insn): Likewise. + +2005-11-22 Kazu Hirata + + PR target/23435 + * m68k.md (zero_extendsidi2): Force operands[1] to a register + if both operands[0] and operands[1] are memory. + +2005-11-22 Andrew Pinski + + PR middle-end/23606 + * fold-const.c (fold_unary) : For + COMPARISON_CLASS_P and an integral types create create a new + expression with the new type and fold that. + +2005-11-22 Andrew Pinski + + PR target/24988 + * config/rs6000/darwin.h (TARGET_OS_CPP_BUILTINS): Remove call + to SUBTARGET_OS_CPP_BUILTINS. + +2005-11-22 Richard Earnshaw + + * arm.c (emit_set_insn): New function. + (arm_split_constant): Call it. + (arm_gen_compare_reg, arm_reload_in_hi, arm_reload_out_hi): Likewise. + (arm_legitimize_address): Likewise. Use plus_constant. + (arm_expand_prologue): Likewise. Use VOIDmode in SET. + (thumb_expand_prologue): Likewise. + (arm_gen_load_multiple): Use VOIDmode in SET. + (arm_gen_store_multiple): Likewise. + (vfp_emit_fstmx): Likewise. Use plus_constant. + (emit_multi_reg_push): Likewise. + (emit_sfm): Use plus_constant. + +2005-11-23 Alan Modra + + PR target/24954 + * config/rs6000/predicates.md (easy_vector_constant_add_self): Fix + typo last change. + +2005-11-22 Alan Modra + + PR middle-end/24950 + * expmed.c (store_bit_field): Don't attempt to insv a field + larger than the reg. + +2005-11-22 Alan Modra + + PR target/24954 + * config/rs6000/predicated.md (easy_vector_constant_add_self): Use + explicit sign extension, not a (char) cast. + +2005-11-22 Ben Elliston + + * optabs.c: Use SCALAR_FLOAT_MODE_P instead of explicitly testing + GET_MODE_CLASS (x) == MODE_FLOAT. + * config/i386/i386.c: Likewise. + * config/rs6000/xcoff.h: Likewise. + * config/rs6000/linux64.h: Likewise. + * config/rs6000/rs6000.c: Likewise. + * config/rs6000/rs6000.h: Likewise. + * config/rs6000/predicates.md: Likewise. + * config/rs6000/sysv4.h: Likewise. + +2005-11-21 Kaveh R. Ghazi + + * c-cppbuiltin.c (c_cpp_builtins): Define __pic__ and __PIC__ when + flag_pic is set. + + * config/alpha/freebsd.h, config/alpha/linux.h, + config/arm/linux-elf.h, config/bfin/bfin.h, + config/cris/linux.h, config/darwin.h, config/freebsd-spec.h, + config/i386/beos-elf.h, config/i386/gnu.h, + config/i386/linux.h, config/i386/linux64.h, config/i386/nto.h, + config/i386/sco5.h, config/m32r/m32r.h, config/m68k/linux.h, + config/m68k/m68k.h, config/mips/linux.h, config/pa/pa-linux.h, + config/rs6000/linux64.h, config/rs6000/sysv4.h, + config/rs6000/vxworks.h, config/s390/linux.h, config/s390/tpf.h, + config/sh/linux.h, config/sh/sh.h, config/sol2.h, + config/sparc/linux.h, config/sparc/linux64.h, + config/xtensa/xtensa.h: Don't define __pic__ or __PIC__. + + * doc/invoke.texi: Document that the macros __pic__ and __PIC__ + are both defined when either flag -fpic or -fPIC are used. + +2005-11-22 Joseph S. Myers + + * config/fp-bit.c (clzusi): New function. + (si_to_float, usi_to_float): Use it to compute proper shift. + (usi_to_float): Preserve guard bits when shifting right. + * libgcc-std.ver (GCC_4.2.0): New version. + * libgcc2.c (__floatundixf, __floatunditf, __floatundidf, + __floatundisf): New functions. + * libgcc2.h (__floatundixf, __floatunditf, __floatundidf, + __floatundisf): Declare. + * mklibgcc.in (lib2funcs): Add _floatundidf, _floatundisf, + _floatundixf, and _floatunditf. + * optabs.c (expand_float): If target does not define a pattern for + signed or unsigned conversion, use an unsigned libcall instead of + a signed one. + (init_optabs): Initialize ufloat_optab. + +2005-11-22 Joseph S. Myers + + * config/rs6000/rs6000.opt (mmulhw): New option. + * doc/invoke.texi (-mmulhw): Document. + * config/rs6000/rs6000.c (rs6000_override_options): Enable -mmulhw + for 405 and 440. + * config/rs6000/rs6000.md: Add half-word multiply and + multiply-accumulate instructions for 405 and 440. + +2005-11-21 Joel Sherrill + + * config/arm/rtems-elf.h: Added definition of LINK_GCC_C_SEQUENCE_SPEC + which matches behavior of gcc 4.0 and older for RTEMS targets. The + default now includes a linker group which makes the RTEMS one nest. + +2005-11-22 Ben Elliston + + * cse.c (fold_rtx): Typo fix. + (find_comparison_args): Pass the mode of arg1, not arg1 itself. + +2005-11-21 Richard Henderson + + * c-common.c, config/darwin-c.c, c-decl.c, c-tree.h, c-objc-common.h, + langhooks-def.h, langhooks.h: Revert 2005-11-18 lookup_name patch. + + * c-tree.h (lookup_name): Move declaration ... + * c-common.h (lookup_name): ... here. + * config/darwin-c.c: Include c-common.h. + * config/t-darwin: Update dependencies. + +2005-11-22 Ben Elliston + + * optabs.c (expand_abs_nojump): Use SCALAR_FLOAT_MODE_P instead of + explicitly testing GET_MODE_CLASS (x) == MODE_FLOAT. + * genopinit.c (gen_insn): Likewise. + * reload.c (find_equiv_reg): Likewise. + * loop.c (load_mems): Likewise. + * rtlanal.c (may_trap_p_1, canonicalize_condition): Likewise. + * cse.c (find_comparison_args, fold_rtx): Likewise. + * dwarf2out.c (add_const_value_attribute): Likewise. + * expr.c (convert_move): Likewise. + * recog.c (general_operand, register_operand): Likewise. + * reg-stack.c (replace_reg): Likewise. + * tree-vect-generic.c (type_for_widest_vector_mode): Likewise. + * c-common.c (handle_vector_size_attribute): Likewise. + * simplify-rtx.c (simplify_const_unary_operation): Likewise. + (simplify_binary_operation_1): Likewise. + (simplify_const_binary_operation): Likewise. + (simplify_relational_operation): Likewise. + (simplify_const_relational_operation): Likewise. + (simplify_immed_subreg): Likewise. + * emit-rtl.c (gen_lowpart_common): Likewise. + * expmed.c (expand_mult): Likewise. + * stor-layout.c (layout_type): Likewise. + +2005-11-21 Paolo Bonzini + + PR target/24951 + * config/rs6000/rs6000.c (output_vec_const_move): Load cst and + cst2 only for SPE vectors. + +2005-11-21 David Edelsohn + + PR target/24953 + * config/rs6000/predicates.md (vrsave_operation): Check + UNSPEC_VOLATILE value. + +2005-11-21 Jan Hubicka + + PR tree-optimization/24653 + * tree-ssa-ccp.c (ccp_fold): Strip down useless conversions. + +2005-11-21 Uros Bizjak + + * config/i386/predicates.md (ax_reg_operand): New predicate. + (memory_displacement_only_operand): New predicate. + * config/i386/i386.md ("modrm" attribute): Return 0 if one + operand is AX register and the other operand is memory operand + with displacement only. + +2005-11-21 Uros Bizjak + + * fold-const.c (fold_binary) : Optimize A / A to 1.0 + if we don't care about NaNs or Infinities. + +2005-11-20 Ian Lance Taylor + + PR rtl-optimization/24883 + * combine.c (combinable_i3pat): When checking whether the + destination of i3 is used in i3, consider paradoxical subregs. + +2005-11-21 Kazu Hirata + + PR middle-end/20583 + * cse.c (cse_insn): Reject invalid forms of CONST earlier. + +2005-11-20 Joseph S. Myers + + * combine.c (try_combine): Do not run subst on i1src and i2src in + the case of generating a PARALLEL for a comparison. + +2005-11-20 Richard Henderson + + PR 24931 + * tree-sra.c (struct sra_elt): Add all_no_warning. + (struct sra_walk_fns) : Add use_all argument. + (sra_walk_expr): Pass it. + (sra_walk_modify_expr): Likewise. + (scalarize_ldst): Likewise. + (scan_use): Update for new argument. + (mark_no_warning): New. + (scalarize_use): Use it. + +2005-11-20 Bernd Schmidt + + * expr.c (expand_expr_real): Use usmul_optab for widening + signed * unsigned multiplies. + * genopinit.c (optabs): Add usmul_widen_optab. + * optabs.c (init_optabs): Likewise. + * optabs.h (enum optab_index): Add OTI_usmul_widen. + (usmul_widen_optab): Define. + * config/bfin/bfin.md (usmulhisi3): New pattern. + + * doc/md.texi (usmulqihi3, usmulhisi3, usmulsidi3): Document. + +2005-11-20 Graham Stott + + * gensupport.c (std_preds): Fixed extraneous `false` in last change. + +2005-11-20 Andreas Schwab + + PR target/24757 + * config/ia64/ia64.c (ia64_expand_atomic_op): Fix condition of cmp + insn. + +2005-11-19 Richard Henderson + + PR tree-opt/24665 + * tree-gimple.c (is_gimple_id): Export. + * tree-gimple.h (is_gimple_id): Declare. + * tree-ssa-ccp.c (ccp_decl_initial_min_invariant): New. + (get_default_value): Use it. + (maybe_fold_stmt_indirect): Likewise. + +2005-11-19 James A. Morrison + + * tree-vrp.c (compare_ranges): Return false for EQ_EXPR if VR0 is less + than VR1 or vice-versa. + +2005-11-19 Hans-Peter Nilsson + + PR middle-end/24912 + PR middle-end/24750 + * reload.c (find_reloads_address_1): Mention dependency on + gen_reload. + * reload1.c (gen_reload): For IN with an unary operation, try + moving inner expression to OUT if trivial SET is not valid. + Confirm that the result is valid. Move common code block into... + (emit_insn_if_valid_for_reload): New function. + +2005-11-19 Richard Guenther + + * fold-const.c (fold_indirect_ref_1): Make sure we fold + ARRAY_REFs of constant strings. + +2005-11-19 Jakub Jelinek + + * gcc.c (version_compare_spec_function): Use '%s' rather than %qs in + fatal format string. + +2005-11-19 Joseph S. Myers + + * combine.c (make_compound_operation): Swap operands of + commutative operation if necessary before returning. + +2005-11-19 Richard Guenther + + PR middle-end/23294 + * fold-const.c (fold_plusminus_mult_expr): New function. + (fold_binary): Use to canonicalize PLUS_EXPR and MINUS_EXPR + cases, remove now unnecessary code. + +2005-11-19 Paolo Bonzini + + * gensupport.c (old_preds): Rename to std_preds, add special field. + (struct old_pred_table): Rename to struct std_pred_table, add special + field. + (NUM_KNOWN_OLD_PREDS): Rename to NUM_KNOWN_STD_PREDS. + (NUM_OLD_SPECIAL_MODE_PREDS): Remove. + (init_predicate_table): Adjust, and set along the way whether a + predicate is special. + +2005-11-18 Mark Mitchell + + * BASE-VER: Change to 4.2.0. + +2005-11-18 James E Wilson + + * builtins.c (fold_builtin_strstr): Pass s1 through fold_convert before + returning it. + +2005-11-18 Mike Stump + + * c-common.c (handle_cleanup_attribute): Use a lang hook for lookup_name. + * config/darwin-c.c (darwin_pragma_unused): Likewise. + * c-decl.c (lookup_name_two) Remove. + * c-tree.h (lookup_name_two): Remove. + * c-objc-common.h (LANG_HOOKS_LOOKUP_NAME): Add. + * langhooks-def.h (LANG_HOOKS_LOOKUP_NAME): Add. + (LANG_HOOKS_DECLS): Add initializer for LANG_HOOKS_LOOKUP_NAME. + * langhooks.h (lang_hooks_for_decls): Add lookup_name. + +2005-11-18 Richard Earnshaw + + PR target/24914 + * arm.c (arm_hard_regno_mode_ok): Co-processor registers aren't ok + when not generating code to use that co-processor. + +2005-11-18 James A. Morrison + + * tree-flow.h (reserve_phi_args_for_new_edge, create_phi_node, + add_phi_arg, remove_phi_args, remove_phi_node phi_reverse): Mention that + these functions are now in tree-phinodes.c. + +2005-11-18 Jie Zhang + + * config/bfin/bfin.md (trap): New pattern. + +2005-11-18 Richard Kenner + + * tree-ssa-dom.c (extract_range_from_cond): Deal with variable bounds + on types. + + * expr.c (expand_expr_real): Don't call record_block_change unless + ib_boundaries_block is non-null + + * postreload.c (reload_cse_move2add): Don't try to work with BImode. + + * fold-const.c (build_range_check): Use proper type for subtraction + when merging lower bound. + +2005-11-18 Zdenek Dvorak + + PR rtl-optimization/24497 + * loop-unroll.c (apply_opt_in_copies): Do not verify equality of + the copied insn. + +2005-11-18 Zdenek Dvorak + + * tree-scalar-evolution.c (expression_expensive_p): New function. + (scev_const_prop): Use compute_overall_effect_of_inner_loop. + +2005-11-18 Bernd Schmidt + + * config/bfin/crtlibid.s: New file. + +2005-11-17 John David Anglin + + PR target/24348 + * config.gcc (hppa*-*-hpux*): Add pa/t-slibgcc-elf-ver to tmake config + when not using sjlj exceptions. + * config/pa/pa64-hpux.h (LIB_SPEC): Add -lpthread in static links. + * config/pa/pa-hpux11.h (LIB_SPEC): Likewise. + * config/pa/som.h (ASM_PREFERRED_EH_DATA_FORMAT): Delete define. + * config/pa/linux-unwind.h (pa32_fallback_frame_state): Use + DWARF_ALT_FRAME_RETURN_COLUMN instead of column 0 as return column. + * config/pa/pa-hpux.h (MD_UNWIND_SUPPORT): New define. + * config/pa/pa-linux.h (INCOMING_RETURN_ADDR_RTX, + DWARF_FRAME_RETURN_COLUMN, ASM_PREFERRED_EH_DATA_FORMAT, + ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Delete defines. + * config/pa/pa.h (ARG_POINTER_CFA_OFFSET): Delete. + (FRAME_POINTER_CFA_OFFSET, INCOMING_RETURN_ADDR_RTX, + DWARF_FRAME_RETURN_COLUMN, DWARF_ALT_FRAME_RETURN_COLUMN, + ASM_PREFERRED_EH_DATA_FORMAT, ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): New + defines. + * config/pa/hpux-unwind.h: New file. + +2005-11-17 Alexandre Oliva + + * config/rs6000/rs6000.h (ASM_OUTPUT_WEAKREF): Define. + * defaults.h (ASM_OUTPUT_WEAKREF): Add decl argument. + * varasm.c (do_assemble_alias): Adjust call. + (weak_finish): Don't use ASM_WEAKEN_LABEL if ASM_WEAKEN_DECL + is defined. + * doc/tm.texi (ASM_OUTPUT_WEAKREF): Document it. + +2005-11-17 James E Wilson + + * tree.def (FUNCTION_DECL): Correct typo in comment. + +2005-11-17 Richard Henderson + + * dwarf2out.c (dw_cfi_oprnd_struct): Reduce dw_cfi_reg_num to int. + (lookup_cfa_1): Apply data alignment to DW_CFA_def_cfa_offset_sf + and DW_CFA_def_cfa_sf. + (def_cfa_1): Use DW_CFA_def_cfa_offset_sf with negative values. + (dbx_reg_number): Don't assert particular registers here. + (based_loc_descr): ... do it here instead. Fold in ... + (eliminate_reg_to_offset): ... this function. + (compute_frame_pointer_to_cfa_displacement): Fold in the effects + of eliminate_reg_to_offset; use FRAME_POINTER_CFA_OFFSET. + * unwind-dw2.c (execute_cfa_program): Apply data align factor + to DW_CFA_def_cfa_offset_sf and DW_CFA_def_cfa_sf. + * function.c (instantiate_new_reg): Use FRAME_POINTER_CFA_OFFSET. + (instantiate_virtual_regs): Likewise. + * var-tracking.c (adjust_stack_reference): Likewise. + * doc/tm.texi (FRAME_POINTER_CFA_OFFSET): New. + +2005-11-17 Bernd Schmidt + + * config/bfin/elf.h (STARTFILE_SPEC): Add "crtlibid%O%s" + * config/bfin/uclinux.h (STARFILE_SPEC): Likewise. + * config/bfin/t-bfin-elf (EXTRA_PARTS, EXTRA_MULTILIB_PARTS): Add + crtlibid.o. + ($(T)crtlibid.o): New rule. + +2005-11-16 Richard Guenther + + PR middle-end/24851 + * fold-const.c (extract_array_ref): Return byte offset + in all cases. + (fold_binary): Fold &x[a] CMP &x[b] to + a*sizeof(*x) CMP b*sizeof(*x) to get correct overflow + behavior. + +2005-11-16 Richard Henderson + + PR middle-end/23497 + * tree-ssa.c (warn_uninitialized_var): Skip real and imaginary + parts of an SSA_NAME. + +2005-11-16 Richard Earnshaw + + PR target/24861 + * arm.md (split for movsf with immediate): Restrict split to insns + that set a general register. + +2005-11-16 Daniel Jacobowitz + + * config/ia64/unwind-ia64.c (uw_advance_context): New. Call + uw_update_context. + * unwind-dw2.c (uw_advance_context): Likewise. + * unwind-sjlj.c (uw_advance_context): Likewise. Also call + _Unwind_SjLj_Unregister. + * unwind.inc (_Unwind_ForcedUnwind_Phase2): Call uw_advance_context. + +2005-11-16 Daniel Jacobowitz + + * unwind-sjlj.c (_Unwind_GetCFA): Handle the builtin_setjmp case. + +2005-11-16 Eric Botcazou + + * config/alpha/alpha.c (alpha_init_builtins): Use type_for_mode + langhook to get a DImode integer type. + +2005-11-16 Richard Henderson + J"orn Rennecke + Ulrich Weigand + + PR rtl-opt/24160 + PR target/24621 + * reload1.c (reg_equiv_invariant): New. + (reload): Allocate, initialize, and free it. + (calculate_needs_all_insns): Check it when skipping equivalence + setting insns. + (alter_reg): Likewise. + (eliminate_regs_1): Rename from eliminate_regs. Add new + may_use_invariant argument; only use reg_equiv_invariant when true. + (eliminate_regs): New. + (eliminate_regs_in_insn): Use eliminate_regs_1; track when we're in + a context for which may_use_invariant may be true. + +2005-11-16 Eric Botcazou + + * fold-const.c (const_binop): Don't constant fold the operation + if the result has overflowed and flag_trapping_math. + * simplify-rtx.c (simplify_const_binary_operation): Likewise. + +2005-11-16 Daniel Jacobowitz + + * config/arm/unwind-arm.c (abort): Add prototype here. + (UCB_FORCED_STOP_ARG): Correct typo in macro argument. + (struct phase1_vrs): Add prev_sp. + (unwind_phase2_forced): Save the original core registers instead of + modifying entry_vrs. Take a new flag argument for resuming unwinding + and set action flags accordingly. Always set _US_END_OF_STACK when + get_eit_entry fails. Unwind before calling the stop function. + (_Unwind_GetCFA): New function. + (__gnu_Unwind_ForcedUnwind): Update call to unwind_phase2_forced. + (__gnu_Unwind_Resume_or_Rethrow): Likewise. + (__gnu_Unwind_Resume): Do not unwind here for forced unwinding; + just call unwind_phase2_forced. + (_Unwind_GetDataRelBase, _Unwind_GetTextRelBase): Move to here. + * config/arm/unwind-arm.h (abort): Remove prototype. + (_Unwind_GetDataRelBase, _Unwind_GetTextRelBase): Change to + prototypes. + (_Unwind_GetCFA): New prototype. + * config/arm/pr-support.c (abort): Add prototype here. + * unwind-c.c (PERSONALITY_FUNCTION) [__ARM_EABI_UNWINDER__]: Handle + forced unwinding. + * config/arm/arm.c (arm_expand_prologue, thumb_expand_prologue): Do + not schedule the prologue with non-call exceptions and EABI. + +2005-11-16 Nathan Sidwell + + * config/arm/unwind-arm.h: Reorder interface function declarations. + (_URC_END_OF_STACK): New enumeration value. + (_US_UNWIND_ACTION_MASK, _US_FORCE_UNWIND, _US_END_OF_STACK): Likewise. + (struct _Unwind_Control_Block): Document reserved field use. + (_Unwind_Stop_Fn): New typedef. + (_Unwind_ForcedUnwind): Declare. + (_Unwind_Resume_or_Rethrow): Declare. + * gcc/config/arm/libunwind.S (UNWIND_WRAPER): Add nargs + argument. Adjust. + (_Unwind_Resume_or_Rethrow, _Unwind_ForcedUnwind): New. + * config/arm/unwind-arm.c (UCB_FORCED_STOP_FN) + (UCB_FORCED_STOP_ARG): New. + (search_EIT_table): Update boundary condition checks. + (get_eit_entry): Return _URC_END_OF_STACK when cannot unwind. + (unwind_phase2): Replace for with do..while. + (unwind_phase2_forced): New. + (__gnu_Unwind_RaiseException): Replace for with do..while. + (__gnu_Unwind_ForcedUnwind): New. + (__gnu_Unwind_Resume): Set FORCE_UNWIND flag, if forced unwinding. + Use appropriate phase2 unwinder. + (__gnu_Unwind_Resume_or_Rethrow): New. + (__gnu_unwind_pr_common): Cope with forced unwinding. + +2005-11-16 David Edelsohn + + PR target/24772 + * config/rs6000/predicates.md (vrsave_operation): SET_SRC is a VEC. + + * config/rs6000/rs6000.md (btruncsf2, ceilsf2, floorsf2, + roundsf2): Remove "s" from mnemonic. + +2005-11-16 Bernd Schmidt + + * config/bfin/crti.s (__init, __fini): Use appropriate prologue if + __PIC__ is defined. + * config/bfin/crtn.s: Change epilogues to match. + * config/bfin/t-bfin-elf (EXTRA_MULTILIB_PARTS): Define. + * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): If flag_pic, define + __PIC__ and __pic__. + +2005-11-16 Tobias Schl"uter + + PR 24357 + * doc/invoke.texi: Distinguish between free and fixed form instead of + Fortran and Fortran 90/95. Remove ratfor from the list of supported + languages. + * gcc.c (default_compilers): Remove double entries, add entries for + suffixes '.F90' and '.F95'. + +2005-11-16 Eric Botcazou + + * config/alpha/alpha.c (alpha_expand_prologue): Fix off-by-one bug + in the stack probing loop. + +2005-11-15 David Edelsohn + + * configure.ac: Use .machine power5 not power5x. + * configure: Regenerate. + +2005-11-15 Mike Stump + + * c-decl.c (lookup_name_two): Add. + * c-tree.h (lookup_name_two): Likewise. + * c-common.c (handle_cleanup_attribute): Use lookup_name_two instead. + * config/darwin-c.c (darwin_pragma_unused): Likewise. + +2005-11-16 Alan Modra + + PR rtl-optimization/23392 + * regrename.c (enum scan_actions) Add mark_access. + (scan_actions_name): Ditto. + (scan_rtx_reg): Handle mark_access. + (scan_rtx_address): Do nothing for mark_access. + (build_def_use): Mark source registers in REG_FRAME_RELATED_EXPR + and regs in REG_INC notes before closing chains for dead regs. + Mark destination regs in REG_FRAME_RELATED_EXPR notes after + opening chains for new writes. + +2005-11-15 David Edelsohn + + * c.opt (ffixed-line-length-none): New. + +2005-11-15 Steve Ellcey + + * mklibgcc.in: Change contents of eh_dummy.c. + +2005-11-15 Daniel Jacobowitz + + * loop.c (scan_loop): Do not insert temporaries for hard registers. + +2005-11-15 Daniel Jacobowitz + + * config/arm/lib1funcs.asm (div0) [L_dvmd_lnx]: Call raise instead + of making syscalls. + * config/arm/linux-eabi.h (CLEAR_INSN_CACHE): Define. Set r7 also. + +2005-11-15 Jan Hubicka + + * invoke.texi (large-unit-insns): Document. + * ipa-inline.c (cgraph_decide_inlining): Use large-unit-insns param. + * params.def (large-unit-insns): New param. + +2005-11-15 Hans-Peter Nilsson + + PR target/24869 + * config/cris/cris.md ("*mov_sidesisf_mem"): Do not match + special register for operand 3. Reindent constraints to align + them vertically. + +2005-11-14 David Edelsohn + + * doc/invoke.texi (RS/6000 and PowerPC Options): Add -mmfcrf, + -mpopcntb, -mfprnd. Add -mcpu=power5+. + * configure.ac: Add test for FP rounding instructions. + * configure: Regenerate. + * config.in: Regenerate. + * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define + _ARCH_PPCSQ, _ARCH_PPCGR, _ARCH_PWR4, _ARCH_PWR5, _ARCH_PWR5X if + features enabled. + * config/rs6000/rs6000.opt (mfprnd): New. + * config/rs6000/rs6000.c (processor_target_table): Add power5+. + (POWERPC_MASKS): Add MASK_POPCNTB and MASK_FPRND. + * config/rs6000/aix52.h (ASM_CPU_SPEC): Add -mpower5+. + * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add -mpower5+. + (TARGET_FPRND): New. + * config/rs6000/rs6000.md (UNSPEC_FRIM, UNSPEC_FRIN, UNSPEC_FRIP, + UNSPEC_FRIZ): New. + (btrunc2): New. + (ceil2): New. + (floor2): New. + (round2): New. + +2005-11-14 Geoffrey Keating + + * gcc.c (version_compare_spec_function): Use fatal() rather than + abort(). + + * config/rs6000/darwin.h (DARWIN_CRT2_SPEC): New. + (SUBTARGET_EXTRA_SPECS): Define %(darwin_crt2). + * config/i386/darwin.h (SUBTARGET_EXTRA_SPECS): Define %(darwin_crt2) + as empty. + * config/darwin.h (STARTFILE_SPEC): Use %(darwin_crt2) to possibly + link in crt2.o. + + * config/darwin.h (REAL_LIBGCC_SPEC): Link in shared libgcc depending + on -mmacosx-version-min setting. + +2005-11-14 Diego Novillo + + PR 24840 + * tree-vrp.c (infer_value_range): Return false if STMT is a + block terminator and its basic block has no successors. + +2005-11-14 Mike Stump + + * config/i386/i386.c (override_options): -masm=intel isn't + supported on darwin. + * doc/invoke.texi (i386 and x86-64 Options): Likewise. + +2005-11-15 Joseph S. Myers + + * crtstuff.c: Undefine gid_t, pid_t, rlim_t, ssize_t, uid_t and + vfork after including auto-host.h. + +2005-11-15 Alan Modra + + PR rtl-optimization/22002 + * combine.c (distribute_notes): Detect cases where a reg dies + two or more times in a bb, including on the insn we are combining, + and place the death note on the correct range. + +2005-11-14 Dale Johannesen + + * expmed.c (store_bit_field): Add offset unconditionally for + memory targets. + (extract_bit_field): Don't force extzv or extv operand into + a register if field is too big. + +2005-11-14 Daniel Jacobowitz + + * config/arm/arm.c (pic_labelno): New. + (arm_load_pic_register): Use an UNSPEC_PIC_LABEL instead of a + LABEL_REF. Pass only the labelno to PIC insns. + (arm_call_tls_get_addr, legitimize_tls_address): Likewise. + (arm_output_addr_const_extra): Handle UNSPEC_PIC_LABEL. + * arm.md (UNSPEC_PIC_LABEL): New constant. + (pic_add_dot_plus_four, pic_add_dot_plus_eight) + (tls_load_dot_plus_eight): Expect a labelno instead of a LABEL_REF. + Use the correct label prefix. + +2005-11-14 Daniel Jacobowitz + + * config/arm/arm.c (legitimize_tls_address): Use correct rtx for + REQ_EQUIV note. + +2005-11-14 Richard Earnshaw + + * loop-invariant.c: Include tm_p.h. + * Makefile.in: Updated. + +2005-11-13 John David Anglin + + * pa.c (store_reg): Revise generation of frame notes in large frames. + (set_reg_plus_d): Likewise. + +2005-11-13 Andrew MacLeod + + PR tree-optimization/24709 + * tree-ssa-operands.c (verify_imm_links): Increase limit for infinite + loop check. + +2005-11-13 Eric Botcazou + + * gthr-posix95.h: Remove declaration of pthread_mutexattr_settype + and duplicate declaration of pthread_self. + +2005-11-13 Eric Botcazou + Ian Lance Taylor + + PR middle-end/24003 + * calls.c (expand_call): If TARGET is a MEM and some part of the + argument area has been saved, force TARGET to a register. + +2005-11-13 Razya Ladelsky + + * ipa-prop.c (ipa_callsite_compute_param ): Removed obsolete type + checking. + +2005-11-13 Jason Merrill + + PR c++/22489 + * dwarf2out.c (gen_subprogram_die): Force a declaration die for + lazily declared methods. + (force_decl_die): Stop if forcing out the context already make a + DIE for the decl. + (force_type_die): Likewise. + +2005-11-13 Andrew Pinski + + PR middle-end/24820 + * builtins.c (integer_valued_real_p): Add break in + REAL_CST having TREE_OVERFLOW set. + +2005-11-13 Zdenek Dvorak + + * tree-ssa-loop-ivopts.c (get_address_cost): Prevent splitting + addressing modes during calculation of costs. + +2005-11-12 Eric Botcazou + + * function.c (assign_stack_local_1): Restrict sanity check + on frame size overflow to 32-bit and above platforms. + +2005-11-12 Hans-Peter Nilsson + + * config/cris/cris.h (LEGITIMIZE_RELOAD_ADDRESS): Define. + * config/cris/cris.c: Include reload.h. + (cris_initial_elimination_offset): New function. + * config/cris/cris-protos.h: (cris_initial_elimination_offset): + Prototype. + +2005-11-12 Richard Guenther + + * gcse.c (find_rtx_in_ldst): Handle NULL pre_ldst_table. + +2005-11-12 Jan Hubicka + + * expr.c (expand_expr_real_1): : Canonicalize + to compare against 0 when possible. + +2005-11-12 Jie Zhang + + * config/bfin/bfin.h (REGISTER_NAMES, SHORT_REGISTER_NAMES, + HIGH_REGISTER_NAMES, FIXED_REGISTERS, CALL_USED_REGISTERS, + REG_ALLOC_ORDER, enum reg_class): Rearrange I/B/L registers. + * config/bfin/bfin.md: Redefine REG_ constants for I/B/L registers + in the new order. + +2005-11-12 Hans-Peter Nilsson + + * recog.c (constrain_operands) : For a match, require + that a non-register matches general_operand when strict >= 0. + +2005-11-11 Steven Bosscher + + * loop-invariant.c (move_loop_invariants): Fix a thinko in the + previous checkin. + +2005-11-11 Daniel Jacobowitz + + * tree-ssa-dse.c (struct address_walk_data, memory_ssa_name_same) + (memory_address_same): New. + (dse_optimize_stmt): Call memory_address_same. + +2005-11-12 Hans-Peter Nilsson + + PR middle-end/24750 + * reload.c (find_reloads_address_1) : New cases. + +2005-11-11 Daniel Jacobowitz + + * longlong.h (__clz_tab): Always provide. + +2005-11-11 Steven Bosscher + + PR 24265 + * loop-invariant.c (may_assign_reg_p): Make sure a hard register + can be assigned to. + (find_invariant_insn): Do the cheapest check, may_assign_reg_p, + before check_maybe_invariant. + (move_invariant_reg): Use gen_move_insn instead of replacing + SET_DEST with the temporary for the invariant. + (move_loop_invariants): If checking is enabled, do internal + consistency checks after completing the pass. + +2005-11-11 David Edelsohn + + PR 24644 + * common.opt (Wvolatile-register-var): New. + * varasm.c (make_decl_rtl): Only emit warning when option + specified. Clarify warning message. + * doc/invoke.texi (Wvolatile-register-var): Document new option. + + * doc/md.texi (copysign): Document standard named pattern. + +2005-11-11 Jie Zhang + + * config/bfin/bfin.c (bfin_expand_strmov): Correctly move the trailing + bytes when align is 2. + * config/bfin/bfin.md (rep_movsi, rep_movhi): Make LSETUP be followed + by the first instruction of the loop. + +2005-11-11 Jason Merrill + + PR c++/24686 + * gimplify.c (gimplify_cleanup_point_expr): Also save and restore + the cleanup list. + +2005-11-11 Zdenek Dvorak + + PR rtl-optimization/22509 + * local-alloc.c (memref_used_between_p): Check whether a function call + could not reference the memref. + +2005-11-11 Ulrich Weigand + + * postreload.c (reload_cse_simplify_operands): Fix bug in sorting + algorithm so as to choose the best, not the worst, alternative. + Reset accumulated register class before processing next alternative. + +2005-11-11 Kaz Kojima + + PR target/24445 + * calls.c (expand_call): Copy a return value to a plain register + if needed. + +2005-11-10 Alexandre Oliva + + PR target/24778 + * varasm.c (assemble_name): Recompute name only for transparent + aliases. + +2005-11-10 Hans-Peter Nilsson + + * tree-ssa-structalias.c (heapvar_lookup): Fix typo: stmt to from. + +2005-11-04 Jeff Law + + PR middle-end/23181 + * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Do not + perform reassociation if the parent statement will not die as + a result of the optimization. + +2005-11-10 Daniel Berlin + + * tree-ssa-alias.c (compute_may_aliases): Remove call to + delete_old_heap_vars. + * tree-dfa.c (referenced_var_remove): Remove function. + * tree-ssa.c (init_tree_ssa): Call init_alias_heapvars. + (delete_tree_ssa): Remove call to delete_old_heapvars. + Add call to delete_alias_heapvars. + * tree-flow.h (referenced_var_remove): Remove prototype + (init_alias_heapvars): New prototype. + (delete_alias_heapvars): Ditto. + * Makefile.in (tree-ssa-structalias.o): Add + gt-tree-ssa-structalias.o + (GTFILES): Add tree-ssa-structalias.h and + tree-ssa-structalias.c. + (s-gtype): Add gt-tree-ssa-structalias.h. + * tree-ssa-structalias.c (heapvars): Remove. + (oldheapvars): Remove. + (heapvar_for_stmt): New variable. + (heapvar_lookup): New function. + (heapvar_insert): Ditto. + (get_constraint_for): See if we have an old heapvar + to reuse. + (init_alias_heapvars): New function. + (delete_alias_heapvars): Ditto. + Add include of gt-tree-ssa-structalias.h. + +2005-11-10 Eric Botcazou + + PR middle-end/22127 + * calls.c (special_function_p): Set ECF_RETURNS_TWICE for getcontext. + +2005-11-10 Eric Botcazou + + * tree.c (int_fits_type_p): Only look at the base type + if it has the same precision as the original type. + +2005-11-10 Jakub Jelinek + + PR other/4372 + * varasm.c (assemble_alias): Use %q+D in the error + message instead of %J and %qD. + +2005-11-10 Richard Guenther + + * gcse.c (free_ldst_entry): Only free hashtable if + it exists. + +2005-11-09 Eric Botcazou + + * function.c (assign_stack_local_1): Issue an error message if + the frame size overflows in the signed target arithmetics. + +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. + +2005-11-09 Jakub Jelinek + + * Makefile.in (gnucompare): Do comparison of all files using one of + the chosen methods and only afterwards decide if just warning should + be issued or comparison failure raised. + +2005-11-09 Eric Botcazou + + * ifcvt.c (noce_get_alt_condition): Use prev_nonnote_insn. + (noce_try_abs): Negate if the comparison is reversed. + Look only one instruction backwards for a REG_EQUAL note. + +2005-11-09 Alexandre Oliva + + PR other/4372 + * gthr-dce.h, gthr-posix.h, gthr-posix95.h, gthr-solaris.h, + gthr-tpf.h: Define __gthrw. For all identifiers that might + be weak, introduce weakrefs or non-weak aliases with __gthrw, + and prefix all uses with __ghtrw. + +2005-11-09 Alexandre Oliva + + PR other/4372 + * tree.h (IDENTIFIER_TRANSPARENT_ALIAS): New. + (TREE_DEPRECATED): Adjust comment. Check for a DECL. + * c-common.c (handle_weakref_attribute): New. + (c_common_attribute_table): Add weakref. + * configure.ac (HAVE_GAS_WEAKREF): Check for weakref support + in the assembler. + * configure, config.in: Rebuilt. + * defaults.h (ASM_OUTPUT_WEAKREF): Define if HAVE_GAS_WEAKREF. + * doc/extend.texi: Document weakref attribute. + * varasm.c (ultimate_transparent_alias_target): New + (assemble_name): Use it. + (weak_finish_1): Split out of... + (weak_finish): ... and deal with weakrefs in... + (weakref_targets): ... new list. + (globalize_decl): Clean up weakref_targets. + (do_assemble_alias): Handle weakrefs. + (finish_aliases_1): Do not reject weakrefs to external symbols. + (assemble_alias): Handle weakrefs. + +2005-11-09 Richard Guenther + + PR tree-optimization/24716 + * tree-scalar-evolution.c (analyze_evolution_in_loop): Use + t_bool to track results from follow_ssa_edge. + +2005-11-09 Eric Botcazou + + * final.c (force_source_line): New global variable. + (final_scan_insn): Set it to true instead of clearing last_filename. + (notice_source_line): Return true if force_source_line is true, + unless source info is absent. + +2005-11-09 Andrew Pinski + + PR c/24644 + * dwarf2-out.c (add_name_and_src_coords_attributes): Don't add + a linkage name for a variable if it a register variable. + * c-decl.c (grokdeclarator): Global register variables + should be set as PUBLIC. + +2005-11-09 Andreas Krebbel + + PR 24624 + * config/s390/s390.c (struct s390_frame_layout): New fields + first_save_gpr_slot and last_save_gpr_slot. + (cfun_grps_save_area_size, s390_frame_info, s390_emit_prologue, + s390_emit_epilogue, s390_initial_elimination_offset): Replaced + first_save_gpr and last_save_gpr with the _slot variants. + (s390_register_info): Calculate first_save_gpr_slot and + last_save_gpr_slot using regs_ever_live. + +2005-11-09 Andreas Krebbel + + PR 24623 + * config/s390/s390.c (s390_regs_ever_clobbered): Only save live eh regs + for a function containing a landing pad. + +2005-11-09 Andreas Krebbel + + PR 24034 + * flow.c (mark_set_1): Handle CLOBBERs like SETs if the register + is live afterwards. + +2005-11-08 Bernd Schmidt + + * config/bfin/t-bfin-elf (MULTILIB_OPTIONS, MULTILIB_DEFAULTS, + MULTILIB_DIRNAMES, MULTILIB_EXCEPTIONS): New. + +2005-11-09 Nathan Sidwell + + Add ms2 support + * config/ms1/ms1.md (UNSPEC_BLOCKAGE, UNSPEC_EI, UNSPEC_DI): New + constants. + (call,load,store): New insn types. + (mem_access, branch_access): Adjust reservation conditions. + (define_delay): Adjust condition. + (decrement_and_branch_until_zero): Allow for ms2. Set branch + type. + (*decrement_and_rbanch_until_zero_no_clobber): Allow for ms2. + (*movqi_internal,*movsi_internal,*movsf_internal): Use load,store + insn type. + (call_internal, call_value_internal, return_internal, + return_interrupt_internal, eh_return_internal, indirect_jump, + tablejump): Set call insn type. + (blockage, ei, di): Use appropriate unspec const. + * config/ms1/ms1.c (ms1_flag_delayed_branch): New. + (ms1_get_attr_type): Adjust to give load & store types. + (ms1_final_prescan_insn): Adjust for new insn types. Don't look + backwards past a barrier. + (ms1_override_options): Accept ms2 arch. Copy and reset delayed + branch scheduling. + (struct branch_info, struct label_info): New. + (ms1_labels): New. + (ms1_add_branches, ms1_check_delay_slot, ms1_reorg_hazard): New. + (ms1_machine_reorg): New. + (TARGET_MACHINE_DEPENDENT_REORG): Override. + * config/ms1/crtn.asm: Add nop for ms2 JAL hazard. + * config/ms1/ms1.h (processor_type): Add PROCESSOR_MS2. + (ASM_SPEC, LIB_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Add ms2. + (TARGET_MS2): New. + +2005-11-09 Per Bothner + Uros Bizjak + + PR c/24101 + * toplev.c (process_options): Initialize debug_hooks early + in case lang_hooks.post_options ends up calling a debug_hook. + +2005-11-08 Jakub Jelinek + + * dwarf2out.c (multiple_reg_loc_descriptor): Don't assume + DBX_REGISTER_NUMBER being contiguous. + +2005-11-08 James A. Morrison + Diego Novillo + + PR 23046 + * tree-vrp.c (register_edge_assert_for): Do not register + always-false predicates. + +2005-11-08 Devang Patel + + PR tree-optimization/23115 + * tree-if-conv.c (find_phi_replacement_condition): Check domninated_by + relation. + +2005-11-08 Joseph S. Myers + + * config/rs6000/t-fprules (MULTILIB_MATCHES_FLOAT): Include + -mcpu=440. + +2005-11-08 Daniel Berlin + + Fix PR tree-optimization/23382 + + * tree-ssa-alias.c (compute_may_aliases): Call + delete_old_heap_vars. + * tree-dfa.c (referenced_var_remove): New function. + * tree-ssa.c (delete_tree_ssa): Call delete_old_heap_vars. + * tree-flow.h (referenced_var_remove): Add prototype. + (delete_old_heap_vars): Ditto. + * tree-ssa-structalias.c (heapvars): New variable. + (oldheapvars): Ditto. + (get_constraint_for): Put heap vars on heapvars list. + (delete_old_heap_vars): New function. + +2005-11-08 Jason Merrill + + * tree.h (CALL_FROM_THUNK_P): Add CALL_EXPR_CHECK. + +2005-11-08 Uros Bizjak + + PR target/19340 + * reg-stack.c (reg_to_stack): Update register liveness also + for flag_sched2_use_traces. + +2005-11-08 Alan Modra + + PR target/23704 + * config/rs6000/rs6000.c (rs6000_handle_option ): Don't + override prior explicit -mno-powerpc-gfxopt. + +2005-11-07 Eric Botcazou + + * expmed.c (extract_bit_field): Do not use insv/extv/extzv patterns + if the bitsize is zero. + * doc/md.texi (Standard Pattern Names): Document it. + + * config/ia64/ia64.c (ia64_pass_by_reference): Delete. + (TARGET_PASS_BY_REFERENCE): Likewise. + +2005-11-07 Ian Lance Taylor + + PR rtl-optimization/24683 + * config/i386/i386.c (legitimize_pic_address): If constant operand + to PLUS is too large, put it in a register. + +2005-11-07 Jie Zhang + + * configure.ac: Enable checking assembler dwarf2 support for bfin + target. + * configure: Regenerate. + +2005-11-07 Paolo Bonzini + + PR target/24230 + + * config/rs6000/rs6000.c (easy_vector_splat_const, easy_vector_same, + gen_easy_vector_constant_add_self): Delete. + (vspltis_constant, easy_altivec_constant, gen_easy_altivec_constant): + New. + (output_vec_const_move): Use gen_easy_altivec_constant. + (rs6000_expand_vector_init): Do not emit a set of a VEC_DUPLICATE. + * config/rs6000/predicates.md (easy_vector_constant): Reorganize tests. + (easy_vector_constant_add_self): Rewritten. + * config/rs6000/rs6000-protos.h (easy_vector_splat_const, + easy_vector_same, gen_easy_vector_constant_add_self): Remove prototype. + (easy_altivec_constant, gen_easy_altivec_constant): Add prototype. + * config/rs6000/altivec.md (easy_vector_constant_add_self splitters): + Macroize and adjust for the other changes. + +2005-11-07 Paolo Bonzini + + PR c/24599 + + * c-typeck.c (build_c_cast): Try using a shared constant, and see + if TREE_OVERFLOW or TREE_CONSTANT_OVERFLOW really changed. + +2005-11-07 Jakub Jelinek + + PR rtl-optimization/23567 + * ifcvt.c (noce_mem_write_may_trap_or_fault_p): New function. + (noce_process_if_block): Don't do any optimizations except + if (cond) x = x; if !set_b and write into orig_x may trap + or fault. Remove the MEM_READONLY_P check. + +2005-11-06 Diego Novillo + + PR 24670 + * tree-vrp.c (fix_equivalence_set): New. + (extract_range_from_assert): Call it. + +2005-11-05 Ian Lance Taylor + + PR target/22432 + * combine.c (apply_distributive_law): Don't distribute across a + vector mode subreg. + +2005-11-05 Kazu Hirata + + * c-typeck.c, config/i386/netware.h, config/m32c/cond.md, + config/ms1/ms1.h, config/rs6000/predicates.md, + config/s390/s390.c, params.def, postreload-gcse.c, + tree-flow-inline.h, tree-ssa-operands.c, tree-vectorizer.c, + tree-vrp.c, tree.c: Fix comment typos. + * doc/invoke.texi: Fix typos. + +2005-11-05 Sebastian Pop + + * lambda-code.c (lambda_transform_legal_p): Use DDR_NUM_DIST_VECTS + for testing whether the data_dependence_relation contains distance + vectors. Iterate over all distance vectors of the ddr. + * lambda.h: Define a vec of lambda_vector pointers. + * tree-data-ref.c (dump_data_dependence_relation, + dump_data_dependence_direction): Iterate over all distance and + direction vectors of the ddr. + (initialize_data_dependence_relation): Initialize DDR_DIR_VECTS and + DDR_DIST_VECTS. + (build_classic_dist_vector, build_classic_dir_vector): Push a set + of distance/direction vectors instead of a single one. + * tree-data-ref.h (dir_vects, dist_vects): Replace dir/dist + lambda_vectors with a vec of lambda_vectors. + (DDR_DIR_VECT, DDR_DIST_VECT): Redefined as operations on vec. + (DDR_DIR_VECTS, DDR_DIST_VECTS, DDR_NUM_DIR_VECTS, + DDR_NUM_DIST_VECTS): New. + * tree-loop-linear.c (gather_interchange_stats): Test for the + existence of distance vectors only after having checked that there + is a dependence. Iterate over all distance vectors of the ddr. + (linear_transform_loops): Use dump_data_dependence_relation. + * tree-vect-analyze.c (vect_analyze_data_ref_dependence): Test for + distance vectors using DDR_NUM_DIST_VECTS. Iterate over all the + distance vectors of the ddr. + +2005-11-05 Bernd Schmidt + + * config/bfin/bfin.c (n_dregs_to_save, n_pregs_to_save, + expand_prologue_reg_save, expand_epilogue_reg_restore): New argument + IS_INTHANDLER; all callers changed. + (n_regs_saved_by_prologue): Take interrupt handler attributes into + account. + (do_link, do_unlink): New argument ALL; all callers changed. + (expand_interrupt_handler_prologue, expand_interrupt_handler_epilogue): + If function isn't leaf, save and restore all registers. + (bfin_function_ok_for_sibcall): Only true if not an interrupt or + exception handler. + +2005-11-05 Jan Hubicka + + PR rtl-optimization/23490 + * doc/invoke.texi (max-predicted-iterations, max-cse-insns, + max-flow-memory-location): Document. + * flow.c: Include params.h + (MAX_MEM_SET_LIST_LEN): Kill. + (add_to_mem_set_list): Use new param. + * cse.c (cse_basic_block): Replace 1000 by new param. + * params.def (PARAM_MAX_PREDICTED_ITERATIONS, PARAM_MAX_CSE_INSNS, + PARAM_MAX_FLOW_MEMORY_LOCATIONS): New. + * predict.c (predict_loops): Use new param. + * predict.def (MAX_PRED_LOOP_ITERATIONS): Remove. + + * ipa-inline.c (cgraph_decide_inlining_of_small_function, + cgraph_decide_inlining, cgraph_decide_inlining_incrementally): + Do not hold memory returned by cgraph_node_name across other call. + +2005-11-04 Hans-Peter Nilsson + + PR target/23424 + * config/cris/predicates.md ("cris_bdap_sign_extend_operand"): + Disable. + +2005-11-04 Jeff Law + + PR/21883 + * doc/invoke.texi: Document max-jump-thread-duplication-stmts PARAM. + * tree-ssa-dom.c: Include params.h. + (thread_across_edge): If there are too many statements in the + target block, then do not thread through it. + * Makefile.in (tree-ssa-dom.o): Depend on $(PARAMS_H). + * params.def (PARAM_MAX_JUMP_THREAD_DUPLICATION_STMTS): New PARAM. + +2005-11-03 Diego Novillo + + PR 24627 + * tree-ssa-dce.c (pass_dce, pass_dce_loop, pass_cd_dce): Use + TODO_update_ssa instead of TODO_update_ssa_no_phi. + +2005-11-04 Sebastian Pop + + PR/18595 + * tree-scalar-evolution.c (instantiate_parameters_1, + instantiate_parameters, resolve_mixers): Compute the size of an + expression to be instantiated and give up the instantiation if the + size exceeds PARAM_SCEV_MAX_EXPR_SIZE. + +2005-11-04 Richard Guenther + + * tree-flow.h (ref_contains_indirect_ref): Rename to + array_ref_contains_indirect_ref. + * tree-flow-inline.h (ref_contains_indirect_ref): Likewise. + (array_ref_contains_indirect_ref): Make comment match the code + and vice-versa. + (ref_contains_array_ref): Likewise. + * tree-ssa-structalias.c (find_func_aliases): Remove call to + ref_contains_indirect_ref. + * tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined): + Rename calls to ref_contains_indirect_ref. + +2005-11-04 Paul Brook + + * config/arm/arm.c (arm_load_pic_register): Pass extra reg to + gen_pic_add_dot_plus_four and gen_pic_add_dot_plus_eight. + (arm_call_tls_get_addr, legitimize_tls_address): Likewise. + * config/arm/arm.md: Use match_operand in peephole input templates + and match_dup in peephole output templates. + +2005-11-04 Daniel Jacobowitz + + * config/arm/arm.c (arm_init_libfuncs): Use __aeabi_idiv and + __aeabi_uidiv. + +2005-11-04 Mark Mitchell + Daniel Jacobowitz + + * longlong.h (add_ssaaaa): Clobber condition code register + in ARM version. + (sub_ddmmss): Likewise. + (umul_ppmm): Likewise. + +2005-11-04 Daniel Jacobowitz + Paul Brook + Phil Blundell + + * configure.ac: Add test for ARM TLS support. + * configure: Regenerated. + * config/arm/arm-protos.h (legitimize_tls_address) + (arm_tls_referenced_p, tls_mentioned_p) + (arm_output_addr_const_extra): New prototypes. + (thumb_legitimize_pic_address): Delete. + * config/arm/arm.c: Include "gt-arm.h". + (enum tls_reloc): New. + (arm_cannot_copy_insn_p, arm_tls_symbol_p, load_tls_operand) + (pcrel_constant_p, get_tls_get_addr, arm_load_tp) + (arm_call_tls_get_addr, legitimize_tls_address) + (arm_tls_referenced_p, arm_tls_operand_p_1, tls_mentioned_p) + (arm_init_tls_builtins, arm_emit_tls_decoration) + (arm_output_addr_const_extra): New functions. + (TARGET_CANNOT_COPY_INSN_P, TARGET_CANNOT_FORCE_CONST_MEM) + (TARGET_HAVE_TLS): Define. + (target_thread_pointer): New. + (arm_override_options): Handle -mtp=. + (legitimize_pic_address): Ignore UNSPECs. + (arm_legitimate_address_p, thumb_legitimate_address_p): Handle PC + relative symbols. + (arm_legitimize_address, thumb_legitimize_address): Handle TLS. + (tls_get_addr_libfunc): New variable. + (symbol_mentioned_p, label_mentioned_p): Ignore UNSPEC_TLS. + (arm_init_builtins): Call arm_init_tls_builtins. + (arm_expand_builtin): Handle ARM_BUILTIN_THREAD_POINTER. + (arm_encode_section_info): Call default_encode_section_info. + * config/arm/arm.h (TARGET_HARD_TP, TARGET_SOFT_TP): Define. + (enum arm_tp_type): New. + (target_thread_pointer): Add declaration. + (LEGITIMATE_CONSTANT_P): Handle TLS. + (LEGITIMATE_PIC_OPERAND_P): Handle TLS. + (OUTPUT_ADDR_CONST_EXTRA): Call arm_output_addr_const_extra. + (enum arm_builtins): Add ARM_BUILTIN_THREAD_POINTER. + * config/arm/arm.md: Add UNSPEC_TLS. + (movsi): Handle TLS. + (pic_add_dot_plus_four, pic_add_dot_plus_eight): Allow for + non-PIC. + (tls_load_dot_plus_eight): New insn and a peephole to create it. + (load_tp_hard, load_tp_soft): New insns. + * arm.opt: Add -mtp=. + * doc/invoke.texi (ARM Options): Document -mtp. + +2005-11-04 Daniel Jacobowitz + + * config/arm/lib1funcs.asm: Don't include "libunwind.S". + * config/arm/libunwind.S: Include "lib1funcs.asm". + * config/arm/t-bpabi (LIB1ASMFUNCS): Remove _unwind. + (LIB2ADDEH): Add libunwind.S. + (LIB2ADDEHDEP): Add lib1funcs.asm. + * mklibgcc.in: Handle asm files in libgcc_eh.a. + +2005-11-04 Francois-Xavier Coudert + + PR fortran/18452 + * gcc/c.opt: Add a -lang-fortran option. + * gcc/c-opts.c: Add a lang_fortran flag. + (c_common_init_options): Handling the -lang-fortran option. + (c_common_handle_option): Add a case for Fortran options in + preprocessing. Remove cases for -ffixed-form and + -ffixed-line-length. Add a case for -lang-fortran. + +2005-11-03 David Edelsohn + + * config/rs6000/rs6000.c: Include params.h + (optimization_options): Set max-grow-copy-bb-insns default to 16. + (bdesc_2arg): Delete vpkuhss and vpkuwss. + * config/rs6000/altivec.md (UNSPEC_VPKUHSS): Delete. + (UNSPEC_VPKUWSS): Delete. + (altivec_vpkuhss): Delete. + (altivec_vpkuwss): Delete. + * config/rs6000/rs6000.md (plus_eqsi): Remove optimize_size from + final condition. + (neg_eq0): Remove final condition. + (neg_eq): Remove condition and split-condition. + +2005-11-04 Alan Modra + + * config/rs6000/rs6000.c (output_toc): Make "offset" HOST_WIDE_INT. + Use associated print macros. + +2005-11-03 Joseph S. Myers + + PR c++/17964 + * diagnostic.c (diagnostic_set_info_translated): New function. + (diagnostic_set_info): Use it. Add comment. + * diagnostic.h (diagnostic_set_info_translated): Declare. + +2005-11-03 Eric Botcazou + + * dwarf2asm.c (dw2_force_const_mem): Add new parameter 'public'. + On USE_LINKONCE_INDIRECT platforms, build a DECL_ONE_ONLY indirect + reference only if 'public' is true. + (dw2_output_indirect_constant_1): On USE_LINKONCE_INDIRECT platforms, + emit the .hidden directive only if the indirect reference is public. + (dw2_asm_output_encoded_addr_rtx): Add new parameter 'public'. + Pass it to dw2_force_const_mem. + * dwarf2asm.h (dw2_asm_output_encoded_addr_rtx): New param 'public'. + * dwarf2out.c (output_cfi): Adjust calls to above function. + (output_call_frame_info): Likewise. + * except.c (output_ttype): Pass TREE_PUBLIC of the type_info object + as 'public' argument to dw2_asm_output_encoded_addr_rtx. + +2005-11-03 Zdenek Dvorak + + PR tree-optimization/24483 + * tree-ssa-loop-ivopts.c (aff_combination_add_elt): Move rest + field to elts if possible. + +2005-11-03 Andrew Pinski + + PR middle-end/23155 + * gimplifier.c (gimplify_expr): Create a temporary for lvalue + CONSTRUCTOR. + +2005-11-03 Daniel Berlin + + Fix PR tree-optimization/24351 + + * tree-ssa-structalias.c (struct variable_info): Add + collapsed_into. + (get_varinfo_fc): New function to follow collapsing. + (new_var_info): Set collapsed_to to NULL. + (dump_constraint): Follow collapsing. + (build_constraint_graph): Handle collapsing. + (do_simple_structure_copy): Return false if something bad + happened. + (collapse_rest_of_var): New function. + (do_structure_copy): Collapse if do_simple_structure_copy returns + false. + +2005-11-03 Andrew Pinski + + PR middle-end/24589 + * gimplify.c (gimplify_expr) : Add the + expressions to a statement list instead of gimplifying them. + +2005-11-03 Eric Botcazou + + PR rtl-optimization/23585 + * rtlanal.c (rtx_addr_can_trap_p_1) : Return 0 for an address + that can't trap plus a constant integer, if the mode has zero size. + +2005-11-03 Ulrich Weigand + + PR target/24620 + * config/s390/s390.md ("*insv_reg_imm"): Accept any CONST_INT + as operand 2. + ("*insv_reg_extimm"): Likewise. + +2005-11-03 Joseph S. Myers + + PR c/24329 + * c-pretty-print.c (pp_c_type_specifier): Do not recurse if + c_common_type_for_mode returns an unnamed type. + +2005-11-02 Richard Henderson + + PR target/9350 + PR target/24374 + * dwarf2out.c (dwarf2out_reg_save_reg): New. + (dwarf2out_frame_debug_expr): Return after dwarf_handle_frame_unspec. + * function.c (assign_parms): Use calls.internal_arg_pointer. + (expand_main_function): Remove FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN + code. + * target-def.h (TARGET_INTERNAL_ARG_POINTER): New. + (TARGET_CALLS): Add it. + * target.h (struct gcc_target): Add calls.internal_arg_pointer. + * targhooks.c (default_internal_arg_pointer): New. + * targhooks.h (default_internal_arg_pointer): Declare. + * tree.h (dwarf2out_reg_save_reg): Declare. + * doc/tm.texi (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN): Remove. + * config/i386/i386.c (dbx_register_map): Add return column. + (dbx64_register_map, svr4_dbx_register_map): Likewise. + (TARGET_INTERNAL_ARG_POINTER, ix86_internal_arg_pointer): New. + (TARGET_DWARF_HANDLE_FRAME_UNSPEC, ix86_dwarf_handle_frame_unspec): New. + (ix86_function_ok_for_sibcall): Disable if force_align_arg_pointer. + (ix86_save_reg): Save force_align_arg_pointer. + (ix86_emit_save_regs): Make regno unsigned. + (ix86_emit_save_regs_using_mov): Likewise. + (ix86_expand_prologue): Handle force_align_arg_pointer. + (ix86_expand_epilogue): Likewise. + * config/i386/i386.h: (dbx_register_map): Update. + (dbx64_register_map, svr4_dbx_register_map): Update. + (struct machine_function): Add force_align_arg_pointer. + * config/i386/i386.md (UNSPEC_REG_SAVE, UNSPEC_DEF_CFA): New. + (UNSPEC_TP, UNSPEC_TLS_GD, UNSPEC_TLS_LD_BASE): Renumber. + (TARGET_PUSH_MEMORY peepholes): Disable if RTX_FRAME_RELATED_P. + +2005-11-02 Jan Hubicka + + PR target/23303 + * i386.md: Add peep2 for simplyfing array accesses. + +2005-11-02 Ulrich Weigand + + PR target/24615 + * config/s390/s390-protos.h (s390_decompose_shift_count): Declare. + * config/s390/s390.c (s390_decompose_shift_count): New function. + (s390_extra_constraint_str) ['Y']: Use s390_decompose_shift_count. + (print_shift_count_operand): Use s390_decompose_shift_count. + * config/s390/predicates.md ("setmem_operand", "shift_count_operand"): + Use s390_decompose_shift_count. Do not accept any non-base hard regs. + +2005-11-02 Ulrich Weigand + + PR target/24600 + * loop.c (loop_givs_rescan): Use force_operand to expand + complex GIVs. + +2005-11-02 Andrew Pinski + + PR 22429 + * fold-const.c (build_range_check): Use unsigned when signed + overflow is undefined also. If etype is subtype, make sure that + the subtraction is in the supertype. + +2005-11-02 Richard Henderson + + PR target/24178 + * config/alpha/alpha.c (get_aligned_mem): Honor alignment given + by MEM_ALIGN. + +2005-11-01 Richard Henderson + + PR 21518 + * loop.c (scan_loop): Do not propagate computations to a hard + register destination with SMALL_REGISTER_CLASSES. + +2005-11-01 Joseph S. Myers + + * config/rs6000/rs6000.c (rs6000_rtx_costs): Do not add extra + costs for MULT inside PLUS or MINUS. + +2005-11-01 Bob Wilson + + * config/xtensa/xtensa.h (TRAMPOLINE_TEMPLATE): Add a byte of padding. + (TRAMPOLINE_SIZE): Round up to 60. + * config/xtensa/lib2funcs.S (TRAMPOLINE_SIZE): Likewise. + +2005-10-31 James E. Wilson + + PR debug/24444 + * dwarf2out.c (convert_cfa_to_loc_list): Put inside DWARF2_UNWIND_INFO + ifdef. Put ifdefs around call in gen_subprogram_die. + (compute_frame_pointer_to_cfa_displacement): Likewise. + (gen_subprogram_die): Restore old code for when DWARF2_UNWIND_INFO is + not defined. + + PR rtl-optimization/17356 + * cfgrtl.c (purge_dead_edges): Undo last change. In EDGE_EH code, + add check for CALL_INSN if EDGE_ABRNOMAL_CALL true. + +2005-10-31 Jan Hubicka + + PR middle-end/24093 + * cgraph.c (cgraph_clone_edge, cgraph_clone_node): Watch negative + + PR target/20928 + * i386.c (legitimize_pic_address): Deal with large immediates. + + PR profile/20815 + * coverage.c (coverage_checksum_string): Fix code to stip random seeds + from symbol names while computing checkup. + + PR profile/24487 + * predict.c (predict_loops): Do not estimate more than + MAX_PRED_LOOP_ITERATIONS in PRED_LOOP_ITERATIONS heuristic. + * predict.def (MAX_PRED_LOOP_ITERATIONS): Define. + +2005-10-31 Andrew MacLeod + + PR tree-optimization/19097 + * tree-ssa-operands.c (correct_use_link): Don't look for modified stmts. + +2005-10-31 J"orn Rennecke + + * optabs.c (expand_unop): Take TRULY_NOOP_TRUNCATION into account. + +2005-10-31 Andrew Pinski + + PR middle-end/23492 + * tree-inline.c (setup_one_parameter): If the init_stmt + is NULL, don't insert the statement. + +2005-10-30 Jan Hubicka + + PR tree-optimization/24172 + * tree-inline.c (copy_body_r): Unshare the substituted value first. + +2005-10-30 Hans-Peter Nilsson + + * config/mmix/mmix.c (mmix_intval): Correct handling of DFmode + constants for hosts with long != 32 bits. + +2005-10-28 Andreas Krebbel + + PR middle-end/24093 + * ipa-inline.c (craph_decide_recursive_inlining): Fix return value. + +2005-10-28 Aldy Hernandez + + * config/ms1/ms1.h (TARGET_MS1_64_001): New. + (TARGET_MS1_16_002): New. + (TARGET_MS1_16_003): New. + + * config/ms1/ms1.md ("decrement_and_branch_until_zero"): Rewrite. + ("*decrement_and_branch_until_zero_no_clobber"): New. + Add corresponding splitter for decrement_and_branch_until_zero + instruction. + Key all decrement_and_branch_until_zero patterns off of + TARGET_MS1_16_003. + +2005-10-28 Andrew Pinski + + PR middle-end/24362 + * tree-complex.c (extract_component): Treat RESULT_DECL + like the rest of the decls. + +2005-10-25 Eric Botcazou + + * config/ia64/ia64.c (ia64_output_function_profiler): Emit an + indirect call to _mcount if the function needs a static chain. + +2005-10-25 Eric Botcazou + Caroline Tice + + PR rtl-optimization/24460 + * dwarf2out.c (have_switched_text_sections): New boolean variable. + (dwarf2out_switch_text_section): Set it to true instead of + incrementing separate_line_info_table_in_use. + (output_loc_list): Additionally test have_switched_text_sections. + (output_ranges): Likewise. + (dwarf2out_finish): Likewise. + * varasm.c (assemble_start_function): Do not call + insert_section_boundary_note. + (assemble_end_function): If flag_reorder_blocks_and_partition, + switch to the function's section before emitting the .size directive. + * bb-reorder.c (insert_section_boundary_note): Staticify. + (rest_of_handle_reorder_blocks): Call insert_section_boundary_note. + * output.h (insert_section_boundary_note): Delete. + +2005-10-24 Andrew Pinski + + PR c/23103 + * c-format.c (check_format_types): Use lang_hooks.types_compatible_p + instead of pointer equality when comparing types. + +2005-10-24 James E. Wilson + + * sched-deps.c (flush_pending_lists): Pass 1 not 0 in first two + add_dependence_list_and_free calls. + +2005-10-24 Steven Bosscher + + * contrib.texi: Add the names of the LLNL folks who donated + Cray pointer support for gfortran. + +2005-10-24 Steven Bosscher + + PR tree-optimization/24225 + * profile.c (branch_prob): Look from end to start through a + basic block when looking for a locus. + +2005-10-24 Richard Henderson + + * pa.c (store_reg_modify): Set RTX_FRAME_RELATED_P on each set in + parallel. + (hppa_expand_prologue): Likewise. + +2005-10-24 John David Anglin + + * pa-linux.h (NO_PROFILE_COUNTERS): Delete define. + (NO_DEFERRED_PROFILE_COUNTERS): Define. + * pa.h (NO_PROFILE_COUNTERS): Define. + * pa.c (NO_DEFERRED_PROFILE_COUNTERS): Define if not defined. + (funcdef_nos): New vector to hold label numbers of deferred profile + counters. + (output_deferred_profile_counters): New function. + (hppa_profile_hook): Push label number onto funcdef_nos. + (pa_hpux_file_end): Call output_deferred_profile_counters if + NO_DEFERRED_PROFILE_COUNTERS is false. + + * pa-protos.h (get_deferred_plabel): New prototype. + * pa.c (get_plabel): Rename to get_deferred_plabel. Return plabel. + Make global. + (output_call): Adjust calls. + +2005-10-24 Alan Modra + + * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Explain + peculiarity of GOT/TOC section usage. + +2005-10-23 Andrew Pinski + + PR objc/24435 + * c-common.c (constant_string_class_name): Add documentation. + +2005-10-23 Kaz Kojima + + PR target/23832 + * recog.c (peephole2_optimize): Increment peep2_current_count + only when the slot is empty. + +2005-10-23 John David Anglin + + PR ada/23957 + * except.c (output_function_exception_table): Call + assemble_external_libcall if we need a personality function. + +2005-10-21 Eric Botcazou + + PR rtl-optimization/24460 + * bb-reorder.c (fix_crossing_unconditional_branches): Do not + set the basic block for barriers. + +2005-10-21 Janis Johnson + + * var-tracking.c (vt_initialize): Initialize post. + +2005-10-21 Devang Patel + + PR/24220 + * c-common.c (vector_types_convertible_p): Check vector element type. + +2005-10-21 Kaz Kojima + + * config/sh/sh.c (prepare_move_operands): Handle the address + constant which is a tls symbolic address plus a constant. + +2005-10-21 Andrew Pinski + + PR driver/24473 + * gcc.c (main): Use the correct counter for erroring out + about mulitple files. + +2005-10-21 Alan Modra + + PR target/24465 + * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Always + use r2 for 64-bit tls .got access. + +2005-10-21 Paolo Bonzini + + * dojump.c (do_jump): Handle side-effecting TRUTH_AND_EXPR and + TRUTH_OR_EXPR. + +2005-10-20 Steven Bosscher + + PR tree-optimization/24307 + * tree-cfg.c (tree_find_edge_insert_loc): Handle naked RETURN_EXPR. + +2005-10-20 Alexandre Oliva + + PR middle-end/24295 + * cgraphunit.c (cgraph_varpool_remove_unreferenced_decls): Mark + alias targets. + * varasm.c (find_decl_and_mark_needed): After cgraph global info + is ready, stop marking functions, but still mark variables. + +2005-10-20 Richard Guenther + + PR c++/24439 + * fold-const.c (invert_truthvalue): Handle COND_EXPR with + void type operands. + +2005-10-20 Eric Botcazou + + PR rtl-optimization/23585 + * rtlanal.c (rtx_addr_can_trap_p_1): New predicate extracted from... + (rtx_addr_can_trap_p): ... here. Invoke rtx_addr_can_trap_p_1. + (may_trap_p_1): New predicate extracted from... + (may_trap_p): ... here. Invoke may_trap_p_1. + (may_trap_or_fault_p): New predicate. + * rtl.h (may_trap_or_fault_p): Declare it. + * reorg.c (steal_delay_list_from_target): Use may_trap_or_fault_p + instead of may_trap_p. + (steal_delay_list_from_fallthrough): Likewise. + (fill_simple_delay_slots): Likewise. + (fill_slots_from_thread): Likewise. + * function.c (pad_to_arg_alignment): Rework comment about + SPARC_STACK_BOUNDARY_HACK. + * config/sparc/sparc.h: Likewise. + +2005-10-19 Adrian Straetling + + * config/s390/s390.c (s390_expand_insv): New. + * config/s390/s390-protos.h (s390_expand_insv): Declare. + * config/s390/s390.md ("UNSPEC_SETHIGH"): Rename to "UNSPEC_ICM". + ("icm_hi"): Remove mode attribute. + ("*sethigh"): Rewrite to "sethighpart". + Adjust all uses. + ("*extracthi", "*extractqi"): Remove. + (extv", "*extzv"): New. + ("insv", "*insv_mem_reg", "*insvdi_mem_reghigh", + "*insv_reg_imm", "*insv_reg_extimm"): New. + +2005-10-19 Ulrich Weigand + + * cfgexpand.c (discover_nonconstant_array_refs_r, + discover_nonconstant_array_refs): Move here from tree-outof-ssa.c + (tree_expand_cfg): Call discover_nonconstant_array_refs. + * tree-outof-ssa.c (rewrite_out_of_ssa): Remove call to + discover_nonconstant_array_refs. + +2005-10-19 Steven Bosscher + + PR c/23228 + * c-decl.c (pop_scope): Don't warn about an unused variable + if it is marked with TREE_NO_WARNING. + (duplicate_decls): Set TREE_NO_WARNING if olddecl and newdecl + somenow mismatch and olddecl is to be replaced. + +2005-10-19 Eric Botcazou + + PR middle-end/23199 + * cfgrtl.c (safe_insert_insn_on_edge): Use can_copy_p to detect + whether registers live on the edge can be saved/restored. + +2005-10-19 Kaz Kojima + + * config/sh/sh.c (fixup_mova): Skip notes. + +2005-10-19 Ulrich Weigand + + * config/s390/s390-protos.h (s390_hard_regno_rename_ok): Add prototype. + * config/s390/s390.c (s390_hard_regno_rename_ok): New function. + (s390_can_eliminate): Handle BASE_REGNUM elimination. + (s390_initial_elimination_offset): Likewise. + (s390_conditional_register_usage): BASE_REGNUM is no longer a fixed + register on TARGET_ZARCH targets. + * config/s390/s390.h (HARD_REGNO_RENAME_OK): Define + (INITIAL_FRAME_POINTER_OFFSET): Remove. + (REG_ALLOC_ORDER): Move BASE_REGNUM lower. + (ELIMINABLE_REGS): Add BASE_REGNUM elimination rule. + +2005-10-19 Andreas Krebbel + + * config/s390/s390.md: Comment describing output modifiers updated. + * config/s390/s390.c (print_operand): Likewise. + +2005-10-19 Andreas Krebbel + + * config/s390/s390.c (override_options): Added check for -mstack-size + 64k limitation. + * doc/invoke.texi: Mention that limit in the documenation. + +2005-10-18 Paolo Bonzini + + PR #19672 + * dojump.c (do_jump): Handle TRUTH_AND_EXPR and TRUTH_OR_EXPR here. + +2005-10-18 Daniel Berlin + + Fix PR tree-optimization/24231 + + * tree-ssa-pre.c (try_look_through_load): Skip abnormal phi names + (compute_avail): Ditto. + +2005-10-18 Richard Henderson + + PR target/24428 + * config/i386/i386.c (legitimate_constant_p): Check + SYMBOL_REF_TLS_MODEL directly. Don't fallthru to SYMBOL_REF + if LABEL_REF. + (legitimate_pic_operand_p): Test SYMBOL_REF_TLS_MODEL directly. + (legitimate_pic_address_disp_p): Reorg CONST checking to make + sure SYMBOL_REF_TLS_MODEL is tested. Test SYMBOL_REF_TLS_MODEL + directly. + (print_operand_address): Likewise. + * config/i386/predicates.md (x86_64_immediate_operand): Test + SYMBOL_REF_TLS_MODEL properly inside CONST. + (x86_64_zext_immediate_operand): Likewise. + (global_dynamic_symbolic_operand, local_dynamic_symbolic_operand, + initial_exec_symbolic_operand, local_exec_symbolic_operand): Remove. + * config/i386/i386-protos.h: Remove predicates.md entries. + +2005-10-18 Danny Smith + + * config/i386/winnt-cxx.c (i386_pe_adjust_class_at_definition): + Check that elements of TYPE_METHODS are FUNCTION_DECLs. + +2005-10-17 Alexey Starovoytov + Ian Lance Taylor + + PR middle-end/23522 + * fold-const.c (fold_widened_comparison): Do not allow range based + constant folding when right operand cannot be unwidened. + +2005-10-17 Richard Henderson + + * builtins.c (expand_builtin_synchronize): Build a new-style asm + with a memory clobber. + +2005-10-17 James E Wilson + + PR rtl-optimization/17356 + * cfgrtl.c (purge_dead_edges): Check for EDGE_ABNORMAL_CALL before + checking for EDGE_EH. + +2005-10-17 Eric Botcazou + + * config/sparc/sparc.c (function_arg_slotno): In 64-bit mode, align + the slot on an even boundary for any type with 16-byte alignment. + +2005-10-17 Hans-Peter Nilsson + + PR target/23424 + * md.texi (Modifiers) <%>: Clarify that % doesn't work + after register allocation. + +2005-10-17 DJ Delorie + + * config/m32c/m32c.c (m32c_pushm_popm): Don't mark epilogue insns + as frame related. + +2005-10-17 Nathan Sidwell + + PR c++/22551 + * c-common.c (c_add_case_label): Revert my 2005-10-14 clearing of + overflow flags. + +2005-10-17 Kaz Kojima + + * config/sh/sh.h (OPTIMIZATION_OPTIONS): Set flag_schedule_insns + to 2 if it's already non-zero. + (OVERRIDE_OPTIONS): Clear flag_schedule_insns if flag_exceptions + is set and warn about it if flag_schedule_insns is 1. + +2005-10-17 Paul Woegerer + + * config/crx/crx.md: Compare-and-branch instructions need to + invalidate CC. + +2005-10-17 Uros Bizjak + + PR target/24315 + * config/i386/i386.md (*pushdi2_rex64 splitter) + (*movdi_1_rex64 splitter, *ashldi3_1 splitter) + (*ashrdi3_1 splitter, *lshrdi3_1 splitter): Delay splitting after + flow2 pass only when (optimize > 0 && flag_peephole2). + +2005-10-16 Andrew Pinski + + PR driver/22544 + * gcc.c (have_c): New static variable. + (have_o): Likewise. + (process_command): Remove declation of have_c. + Set have_o to 1 when handling -o. + (main): Add a fatel error if there are multiple + files specified and -o and -c/-S is passed witout + -combine or multiple languages. + +2005-10-16 Daniel Berlin + + Fix PR tree-optimization/22444 + * tree-ssa-alias.c (compute_flow_insensitive_aliasing): + Assert that we don't hit something with subvars. + (setup_pointers_and_addressables): Don't add things with subvars, + because we'll already process the subvars for aliasing purposes. + +2005-10-16 Hans-Peter Nilsson + + PR target/23424 + * config/cris/cris.md ("*mov_side", "*mov_sidesisf") + ("*mov_side_mem", "*mov_sidesisf_mem", "*clear_side") + ("*ext_sideqihi", "*ext_sidesi", "*op_side") + ("*op_swap_side", "*extopqihi_side", "*extopsi_side") + ("*extopqihi_swap_side", "*extopsi_swap_side"): Have separate, + swapped, alternatives for the R constraint. + + PR middle-end/24341 + * builtins.c (get_builtin_sync_mode): Make unlimited + mode_for_size request. + +2005-10-15 Richard Henderson + + * gimplify.c (gimplify_var_or_parm_decl): Split out from ... + (gimplify_expr): ... here. + (gimplify_compound_lval): Use it in initial scan loop. Allow + fb_lvalue in base expression. + +2005-10-15 Richard Henderson + + PR 23714 + * builtins.c (expand_builtin_trap): Export. + * expr.h (expand_builtin_trap): Declare. + * expr.c (expand_assignment): Emit a trap for integral offsets + from registers that weren't reduced to bitpos. + + * tree-cfg.c (mark_array_ref_addressable_1): Remove. + (mark_array_ref_addressable): Remove. + * tree-flow.h (mark_array_ref_addressable): Remove. + * tree-optimize.c (execute_cleanup_cfg_post_optimizing): Don't call it. + +2005-10-15 James E Wilson + + PR target/24232 + * sched-deps.c (add_dependence_list): New arg UNCOND. Fix all callers. + (add_dependence_list_and_free): Likewise. + (sched_analyze_2, case MEM): Delete sched_insns_conditions_mutex_p + call. + +2005-10-15 Diego Novillo + + PR 23141 + PR 23142 + * tree-vrp.c (vrp_meet): Fix the intersection of equivalence + sets VR0->EQUIV and VR1->EQUIV when meeting a range and an + anti-range. + (vrp_visit_phi_node): Only prevent infinite iterations when + the previous result and the new result are both VR_RANGEs. + +2005-10-15 Ranjit Mathew + + * tree-into-ssa.c (mark_def_sites): Correct minor typo in + function comment. + +2005-10-14 Volker Reichelt + + PR c/23439 + * c-parser.c (c_parser_for_statement): Use location of RID_FOR + to initialize loc. + +2005-10-14 Per Bothner + + PR preprocessor/21250 + * c-ppoutput.c (print_line): Print internal line 0 as 1. + +2005-10-14 Nathan Sidwell + + PR c++/22551 + * c-common.c (c_add_case_label): Clear LOW_VALUE and HIGH_VALUE's + overflow flags. Refactor some conditionals. + +2005-10-13 Andrew Pinski + + PR tree-opt/21304 + * tree-dfa.c (add_referenced_var): Only look at decls which + have TREE_CONSTANT or TREE_READONLY set instead of if + !TREE_PUBLIC or !TREE_CONSTANT. + +2005-10-13 James E Wilson + + * doc/invoke.texi: For -x, add f95-cpp-input. + * doc/install.texi: For --enable-languages doc, change f95 to fortran. + +2005-10-12 Sebastian Pop + + PR tree-optimization/24262 + * tree-data-ref.c (analyze_offset_expr): Check that init is invariant + in loop all the time. + +2005-10-12 Richard Henderson + + PR c/24255 + * tree.h (DECL_TRANSPARENT_UNION): Remove. + * function.c (assign_parm_find_data_types): Don't support it. + * print-tree.c (print_node): Likewise. + * c-common.c (handle_transparent_union_attribute): Likewise. + Use build_duplicate_type. + * tree-inline.c (remap_type_1): Split out of remap_type; + properly remap aggregate fields. + (build_duplicate_type): New. + * doc/extend.texi (Variable Attributes): Remove documentation + for transparent_union. + +2005-10-12 Eric Botcazou + + PR target/24284 + * config/sparc/sparc.c (gen_stack_pointer_inc): Build by hand. + (gen_stack_pointer_dec): Likewise. + +2005-10-12 Danny Smith + + PR middle-end/21275 + PR middle-end/21766 + * target.h (struct gcc_target): Add valid_dllimport_attribute_p + target hook. + (struct cxx): Add adjust_class_at_definition target hook. + * target-def.h: (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): New define, + defaulting to hook_bool_tree_true. Add to TARGET_INITIALIZER + (TARGET_CXX_ADJUST_CLASS_AT_DEFINITION): New define, defaulting to + hook_void_tree. Add to TARGET_CXX. + * tree.h (struct decl_with_vis): Rename non_addr_const_p field to + dllimport_flag. + (DECL_NON_ADDR_CONSTANT_P): Replace with DECL_DLLIMPORT_P macro. + * tree.c (merge_dllimport_decl_attributes): Check DECL_DLLIMPORT_P + instead of attribute. Check for dllexport override. Warn if + inconsistent dll linkage. Don't lose old dllimport if decl has + had address referenced. Tweak lookup of dllimport atribute. + (handle_dll_attribute): Check targetm.valid_dllimport_attribute_p + for target specific rules. Don't add dllimport attribute if + DECL_DECLARED_INLINE_P. Set DECL_DLLIMPORT_P when adding + dllimport attribute. + (staticp): Replace DECL_NON_ADDR_CONSTANT_P with DECL_DLLIMPORT_P. + * varasm.c (initializer_constant_valid_p): Replace + DECL_NON_ADDR_CONSTANT_P with DECL_DLLIMPORT_P + + PR target/21801 + PR target/23589 + * config.gcc (i[34567]86-*-cygwin*): Add winnt-cxx.o to + 'cxx_target_objs', winnt-stubs,o to 'extra_objs'. + (i[34567]86-*-mingw32*): Likewise. + + * doc/tm.texi (TARGET_CXX_ADJUST_CLASS_AT_DEFINITION): Document. + (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Document. + + * config/i386/winnt.c (i386_pe_dllimport_p): Factor out + C++-specific code. Change return value to bool. + (i386_pe_dllimport_p): Likewise. + (associated_type): Simplify and make language-independent + (i386_pe_encode_section_info): Replace override of ambiguous + dllimport symbol refs with a gcc_assert. + (i386_pe_valid_dllimport_attribute_p): Define. + * config/i386/winnt-cxx.c: New file. Define C++ versions of + i386_pe_type_dllimport_p, i386_pe_type_dllexport_p, + i386_pe_adjust_class_at_definition. + * config/i386/winnt-stubs.c: New file. Define stub versions of + lang-specific functions. + * config/i386/i386-protos.h: Declare winnt-[cxx|stubs].c functions + i386_pe_type_dllimport_p, i386_pe_type_dllexport_p, + i386_pe_adjust_class_at_definition. + (i386_pe_valid_dllimport_attribute_p): Declare. + * config/i386/cygming.h (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Define. + (TARGET_CXX_ADJUST_CLASS_AT_DEFINITION): Define. + * config/i386/t-cygming: Add rules for winnt-cxx.o, winnt-stubs.o. + + PR target/19704 + * config/i386/i386.c (ix86_function_ok_for_sibcall): Replace test for + dllimport attribute with test of DECL_DLLIMPORT_P. + +2005-10-12 Adrian Straetling + + * combine.c (make_extraction): Correct offset computation. + +2005-10-12 Hans-Peter Nilsson + + * config/cris/t-linux (LIMITS_H_TEST): Define. + +2005-10-12 Richard Henderson + + PR rtl-opt/23324 + * cfgexpand.c (add_alias_set_conflicts): Use objects_must_conflict_p. + +2005-10-12 Richard Guenther + + * Makefile.in (CGRAPH_H): Depend on $(TREE_H). + +2005-10-12 Nathan Sidwell + + PR c++/19964 + * stor-layout.c (place_field): Set DECL_FIELD_OFFSET and + DECL_FIELD_BIT_OFFSET of FIELD_DECLs, even if they have an invalid + type. + +2005-10-12 Richard Guenther + + PR c++/23799 + * varasm.c (output_constant): Correct typo from previous + patch by DJ. + +2005-10-11 Ian Lance Taylor + + PR rtl-optimization/13931 + * combine.c: Revert patch of 2003-05-14, and: + (try_combine): Only set elim_i1 and elim_i2 if the destination is + completely killed in the appropriate insn. + (distribute_notes): Don't skip multiple hard register test for + elim_i1 and elim_i2. + +2005-10-11 Richard Henderson + + PR c/24255 + * c-typeck.c (convert_for_assignment): Use build_constructor_single + to initialize a transparent union instead of a nop_expr. + +2005-10-11 Richard Henderson + + * Makefile.in (tree-ssa-dce.o): Depend on SCEV_H. + * tree-ssa-dce.c: Include tree-scalar-evolution.h. + (tree_ssa_dce_loop): Call scev_reset. + + PR tree-opt/24300 + * Makefile.in (tree-ssa-dce.o): Depend on CFGLOOP_H. + * tree-ssa-dce.c: Include cfgloop.h. + (tree_ssa_dce_loop, pass_dce_loop): New. + * tree-pass.h (pass_dce_loop): Declare it. + * passes.c (init_optimization_passes): Use it. + +2005-10-11 Eric Botcazou + + PR middle-end/24263 + * convert.c (convert_to_real): Revert 2005-10-05 patch. + Only apply the optimization for rounding builtins if the inner + cast is also an extension. + +2005-10-11 Andrew Pinski + + PR tree-opt/23946 + * tree-ssa-ccp.c (execute_fold_all_builtins): Call + mark_new_vars_to_rename instead of update_stmt. + +2005-10-11 Bernd Schmidt + + * config/bfin/crti.s (__init, __fini): Renamed from _init, _fini. + +2005-10-11 Jakub Jelinek + + * config/i386/i386.md (movsi_1, movdi_1_rex64): Use mmxadd type + for setting MMX register to 0 rather than mmx. + +2005-10-10 Steve Ellcey + + PR target/12098 + * configure.ac: Move gas check from mips specific case to common case. + Do check for GNU as for mips*-*-* and *-*-hpux* targets. + * configure: Regenerate + * doc/install.texi: Update. + +2005-10-10 Eric Botcazou + + PR target/24284 + * config/sparc/sparc.c (sparc_expand_prologue): Remove bogus PATTERN. + +2005-10-10 Maciej W. Rozycki + + * gcc.c (do_spec_1): Accept numeric characters in file name + suffixes. + +2005-10-10 Nick Clifton + + * config/arm/arm.c: Remove extraneous whitespace. Remove comment + describing the deleted arm_gen_rotated_half_load function. + +2005-10-09 Kaz Kojima + + * config/sh/sh.c (emit_fpu_switch): Set TREE_PUBLIC for + __fpscr_values. + +2005-10-09 Daniel Jacobowitz + + * config.gcc (arm*-*-linux*): Remove redundant extra_parts and + gnu_ld assignments. + * config/arm/t-linux-eabi (LIB1ASMFUNCS) + (EXTRA_MULTILIB_PARTS): Define. + * config/arm/linux-elf.h (NO_IMPLICIT_EXTERN_C, CPLUSPLUS_CPP_SPEC) + (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC) + (LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): Move to... + * config/arm/uclinux-elf.h (NO_IMPLICIT_EXTERN_C, CPLUSPLUS_CPP_SPEC) + (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC) + (LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): ... here. + +2005-10-09 Zdenek Dvorak + + PR tree-optimization/24226 + * tree-cfg.c (remove_bb): Clean up unreachable loops. + * tree-flow.h (free_numbers_of_iterations_estimates_loop): Declare. + * tree-ssa-loop-niter.c (free_numbers_of_iterations_estimates_loop): + Export. + +2005-10-09 Eric Botcazou + + * config/sparc/gmon-sol2.c (internal_mcount): Mark as used. + +2005-10-08 Andrew Pinski + + PR target/24136 + * config/rs6000/darwin.md (movdf_low_si): Remove early clobber. + Rewrite for no need for the early clobber. + +2005-10-08 Kazu Hirata + + Merge from csl-arm-branch: + 2005-09-07 Paul Brook + * config/arm/linux-eabi.h (SUBTARGET_EXTRA_LINK_SPEC): Prepend a + space to string. + + 2005-04-30 Paul Brook + * config/arm/bpabi.h (TARGET_DEFAULT): Define. + * config/arm/linux-eabi.h (SUBTARGET_CPU_DEFAULT): Define. + + 2005-03-07 Daniel Jacobowitz + * config/arm/arm.c (arm_all_abis): Add aapcs-linux. + (arm_override_options): Use TARGET_AAPCS_BASED. + * config/arm/arm.h (enum arm_abi_type): Add ARM_ABI_AAPCS_LINUX. + (PTRDIFF_TYPE): Use int for AAPCS. + (DEFAULT_SHORT_ENUMS): Use false for aapcs-linux. + * config/arm/linux-eabi.h (ARM_DEFAULT_ABI, WCHAR_TYPE): Define. + (DEFAULT_SHORT_ENUMS): Delete. + * doc/invoke.texi (ARM Options): Document -mabi=aapcs-linux. + + 2004-12-15 Daniel Jacobowitz + * config/arm/arm.h (DEFAULT_SHORT_ENUMS): Wrap in #ifndef. + * config/arm/linux-eabi.h (DEFAULT_SHORT_ENUMS): Define to 0. + * config/arm/t-linux-eabi (TARGET_LIBGCC2_CFLAGS): Set to -fPIC. + + 2004-12-03 Mark Mitchell + * config/arm/linux-eabi.h (LIBGCC_SPEC): Do not define. + + 2004-11-22 Mark Mitchell + * config.gcc (arm*-*-linux-gnueabi): Use __cxa_atexit. + + 2004-11-19 Mark Mitchell + * config.gcc (arm*-*-linux-gnueabi): Add it. + * config/arm/bpabi.h (FPUTYPE_DEFAULT): Undefine it before + redefining it. + (TARGET_OS_CPP_BUILTINS): Likeiwse. + * config/arm/linux-eabi.h: New file. + * config/arm/linux-elf.h (LINUX_TARGET_INTERPRETER): New macro. + (LINUX_TARET_LINK_SPEC): Likewise. + (LINK_SPEC): Use it. + * config/arm/t-linux-eabi: New file. + +2005-10-08 Steven Bosscher + + PR other/22202 + * params.def (PARAM_MAX_VARIABLE_EXPANSIONS): Remove superfluous + spaces. + (PARAM_SMS_DFA_HISTORY): Likewise. + +2005-10-08 Kazu Hirata + + PR middle-end/23150 + * calls.c (mem_overlaps_already_clobbered_arg_p): New. + (load_register_parameters): Call it. + (check_sibcall_argument_overlap_1): Likewise. + (store_one_arg): Likewise. + +2005-10-07 James E. Wilson + + * config/ia64/vect.md (ashl3, ashr3, lshr3): Use + DImode not VECINT24 for operand 2. + + PR target/23644 + * doc/invoke.texi (IA-64 Options, item -mtune): Renamed from + -mtune-arch. + + PR target/24193 + * config/ia64/ia64.md (movbi, movti_internal, gr_spill_internal, + fr_spill): Use destination_operand for operand 0. + +2005-10-07 DJ Delorie + + * varasm.c (output_constant): Limit error to expanding + conversions. + +2005-10-07 Richard Guenther + + PR middle-end/24227 + * fold-const.c (fold_binary): Fix operand types during folding + of X op (A, Y). Evaluation order of the side-effects of + X and A are frontend-defined, so ensure we honour that even for + tcc_comparison class operands; eased by removing duplicate code. + +2005-10-07 Steve Ellcey + + * stor-layout.c (layout_type): Do not allow alignment of array + elements to be greater than their size. + +2005-10-07 Steve Ellcey + + * config.host (hppa*-*-hpux*): Change out_host_hook_obj and + host_xmake_file. + (hppa*-*-linux*): Ditto. + (ia64-*-hpux*): Add out_host_hook_obj and host_xmake_file. + * config/host-hpux.c: New. + * config/x-hpux: New. + * config/pa/x-hpux: Remove. + * config/pa/x-linux: Remove. + * config/pa/pa-host.c: Remove. + +2005-10-07 Jeff Law + + * tree-ssa-dom.c (dom_opt_finalize_block): Fix conditions to + determine whether or not to try and thread outgoing edges. + +2005-10-07 David Edelsohn + + * config/rs6000/rs6000.md (eqsi_power): New. + (neg_eq0si): Add TARGET_POWER to final condition. + (neg_eqsi): Same. + +2005-10-06 Richard Henderson + + * config/rs6000/rs6000.c: Revert last change. + +2005-10-06 Richard Henderson + + * config/rs6000/rs6000.c (rs6000_cannot_force_const_mem): New. + (TARGET_CANNOT_FORCE_CONST_MEM): Use it. + +2005-10-06 Andrew Pinski + + PR middle-end/22216 + PR middle-end/23651 + * cfgexpand.c (tree_expand_cfg): After expanding the functions, clear + out return_label and naked_return_label. + +2005-10-06 Daniel Berlin + + * tree-ssa-structalias.c (check_for_overlaps): Fix bug in last + change. + +2005-10-06 Richard Henderson + + PR tree-opt/22237 + * tree-inline.c (declare_return_variable): Handle modify_dest not + being a DECL. + +2005-10-06 Daniel Berlin + + Fix PR tree-optimization/22488 + * tree-ssa-structalias.c (check_for_overlaps): New function. + (create_variable_info_for): Use it. + +2005-10-06 Richard Henderson + + PR debug/24070 + * dwarf2out.c (lookup_filename): Return the result of maybe_emit_file. + (dwarf2out_start_source_file): Print it. + +2005-10-06 Geoffrey Keating + + * config/t-slibgcc-darwin (SHLIB_MAPFILES): Use '+='. + +2005-10-06 Richard Henderson + + PR 23706 + * mode-switching.c (optimize_mode_switching): Clear transp bit + for block with incomming abnormal edges. + + * config/sh/sh.c (fpscr_values, emit_fpu_switch): New. + (fpscr_set_from_mem): Use them. + * config/sh/sh.md (fpu_switch0, fpu_switch1): Remove. + (fpscr postinc splitters): Rewrite as peephole2+split. + +2005-10-06 David Edelsohn + + * config/rs6000/rs6000.md (eq): Add !TARGET_POWER. + (eq_compare): Same. + +2005-10-06 Richard Guenther + + PR tree-optimization/24238 + * tree-ssa-alias.c (find_used_portions): Handle RESULT_DECL. + +2005-10-06 Daniel Jacobowitz + + * acinclude.m4 (gcc_AC_CHECK_TOOL): Handle environment variables + here. Use AC_PATH_PROG for environment variables instead of + test -x. + * configure.ac: Update calls to gcc_AC_CHECK_TOOL. Use it for + objdump also. + * configure: Regenerated. + +2005-10-06 Richard Earnshaw + + PR target/23783 + * arm.md (call): If the address isn't a SYMBOL_REF or a register, + then force it into a register. + (call_value): Likewise. + +2005-10-06 Richard Henderson + + PR 24049 + * passes.c (init_optimization_passes): Move pass_lower_vector_ssa + under pass_vectorize. Clear TODO_ggc_collect from the dce pass + under pass_vectorize. + +2005-10-05 Devang Patel + + PR Debug/23205 + * dbxout.c (dbxout_symbol): Check DECL_RTL_SET_P, after + handling constants. Check NAMESPACE_DECL context for constants. + +2005-10-05 Eric Christopher + + * doc/md.texi (Standard Names): Fix name of pushm1 pattern. + +2005-10-05 Richard Henderson + + PR 23714 + * tree-cfg.c (mark_array_ref_addressable_1): New. + (mark_array_ref_addressable): New. + * tree-flow.h (mark_array_ref_addressable): Declare. + * tree-optimize.c (execute_cleanup_cfg_post_optimizing): Use it. + +2005-10-05 Andrew Pinski + + PR middle-end/20606 + PR middle-end/24069 + * reload.c (subst_reloads): When adding a REG_LABEL to a + jump instruction, also update JUMP_LABEL. + +2005-10-05 David Edelsohn + + * params.def (PARAM_MAX_GROW_COPY_BB_INSNS): New. + * bb-reorder.c (copy_bb_p): Use it. + * doc/invoke.texi (param table): Add max-grow-copy-bb-insn. + +2005-10-05 Richard Henderson + + PR target/23602 + * toplev.c (process_options): Warn about unsupported combinations + of unwind tables and omit-frame-pointer. + * config/i386/i386.c (override_options): Similarly. Enable + accumulate-outgoing-args if not explicitly disabled. + +2005-10-05 Steve Ellcey + + * vect.md (vec_initv2si): Fix typo of V2SF to V2SI. + Handle big endian vs. small endian. + (vec_initv2sf): Handle big endian vs. small endian. + (*vec_extractv2sf_1): Ditto. + +2005-10-05 Dale Johannesen + + * convert.c (convert_to_real): Don't convert + (float)floor(double d) to floorf((float)d). + +2005-10-05 Daniel Jacobowitz + + * config/arm/arm.md (insv): Use gen_int_mode in more places. + +2005-10-05 Andrew MacLeod + + PR tree-optimization/18587 + * tree-ssa-operands.c (struct opbuild_list_d, OPBUILD_LAST): Delete. + (build_defs, build_uses, build_v_may_defs, build_v_must_defs, + build_vuses): Change to VEC type. + (opbuild_initialize_virtual, opbuild_initialize_real, opbuild_free, + opbuild_num_elems, opbuild_append_real, opbuild_append_virtual, + opbuild_first, opbuild_next, opbuild_elem_real, opbuild_elem_virtual, + opbuild_elem_uid, opbuild_clear, opbuild_remove_elem): Delete. + (get_name_decl): New. Return DECL_UID of base variable. + (operand_build_cmp): New. qsort comparison routine. + (operand_build_sort_virtual): New. Sort virtual build vector. + (init_ssa_operands, fini_ssa_operands): Use VEC routines. + (FINALIZE_OPBUILD_BASE, FINALIZE_OPBUILD_ELEM): Use VEC_Index. + (FINALIZE_BASE): Use get_name_decl. + (finalize_ssa_defs, finalize_ssa_uses, cleanup_v_may_defs, + finalize_ssa_v_may_defs, finalize_ssa_vuses, finalize_ssa_v_must_defs, + (start_ssa_stmt_operands, append_def, append_use, append_vuse, + append_v_may_def, append_v_must_def): Replace opbuild_* routines with + direct VEC_* manipulations. + (build_ssa_operands): Call operand_build_sort_virtual. + (copy_virtual_operand, create_ssa_artficial_load_stmt, + add_call_clobber_ops, add_call_read_ops): Replace opbuild_* routines + with direct VEC_* manipulations. + * tree-ssa-opfinalize.h (FINALIZE_FUNC): Replace opbuild_* routines + with direct VEC manipulations. + +2005-10-05 Paolo Bonzini + + PR tree-optimization/21419 + PR tree-optimization/24146 + PR tree-optimization/24151 + + * c-typeck.c (readonly_error): Handle USE being lv_asm. + (build_asm_expr): Call it if outputs are read-only. + * gimplify.c (gimplify_asm_expr): Remove former fix to PR 21419. + +2005-10-05 Billy Biggs + Paolo Bonzini + + PR target/23809 + + * doc/extend.texi (x86 Built-ins): Document that -msse and friends + enable the instructions and not just the built-ins. + * doc/invoke.texi (x86 Options): Likewise. + +2005-10-04 Geoffrey Keating + + * config/i386/t-darwin (SHLIB_VERPFX): Fix typo. + + * doc/invoke.texi (Option Summary): Correct spelling + of -mmacosx-version-min. + +2005-10-04 Devang Patel + + * c-common.c (vector_types_convertible_p): Check TYPE_PRECISION for + real types. + +2005-10-04 Steve Ellcey + + * tree-vect-transform.c (vect_create_epilog_for_reduction): + Use BYTES_BIG_ENDIAN instead of BITS_BIG_ENDIAN. + +2005-10-04 Adrian Straetling + + * config/s390/s390.md ("TDSI","DP"): New mode macros. + ("TE","tg"): New mode attributes. + ("sync_compare_and_swap"): Replace with a define_expand. + ("sync_compare_and_swap_cc"): Replace GPR with TDSI. + ("*sync_compare_and_swap_cc"): Replace with one pattern for + dword_mode and one for GPRmode. + +2005-10-04 Ian Lance Taylor + + PR preprocessor/13726 + * c-ppoutput.c (cb_include): Add comments parameter, and print out + any comments passed in. + +2005-10-04 Andrew Pinski + + * tree.c (annotate_with_file_line): Fix typo. + +2005-10-04 Ulrich Weigand + + PR ada/19382 + * builtins.c (fold_builtin_memcmp): When constructing the pointer + type used to access data in the inlined length == 1 case, use + build_pointer_type_for_mode with CAN_ALIAS_ALL set to true. + (fold_builtin_strcmp, fold_builtin_strncmp): Likewise. + +2005-10-04 Uros Bizjak + + * config/i386/i386.h (TARGET_FISTTP): Enable also for + TARGET_SSE3 and only for TARGET_80387. + * config/i386/i386.md (fix_trunc_fisttp_i387_1, + (fix_trunc_i387_fisttp, fix_trunc_i387_fisttp_with_temp): + Do not depend on TARGET_80387. + +2005-10-04 Andrew Pinski + + * tree.c (last_annotated_node): Change type to location_t*. + (annotate_with_file_line): Reflect the change of + last_annotated_node type. + +2005-10-04 Richard Guenther + + PR c/23576 + * c-decl.c (grokdeclarator): Don't write to fields + of error_mark_node. + +2005-10-04 Andrew Pinski + + PR middle-end/23125 + * c-decl.c (finish_decl): Use set_user_assembler_name even for + register variables. + * varasm.c (make_decl_rtl): If a register variable does not + have a set user assmbler name, error out. + Decode the asmspec is now name+1 bypassing '*'. + +2005-10-04 Steven Bosscher + + PR tree-optimization/23049 + * tree-ssa-dom.c (thread_across_edge): Make sure that the condition + of a COND_EXPR is folded before calling fold on the whole rhs of a + conditional assignment. + * doc/tree-ssa.texi: Update the GIMPLE grammar for a valid rhs to + document that a COND_EXPR may appear there. + +2005-10-03 Diego Novillo + + PR 23445 + * tree-vrp.c (extract_range_from_assert): If the new numeric + range created out of the assertion contradicts the existing + numeric range of the ASSERT_EXPR variable, make the new range + varying. + +2005-10-03 Kaz Kojima + + * config/sh/sh.c (sh_register_move_cost): Add case for moving + from T_REGS to FP register class. + +2005-10-03 Richard Henderson + + PR 24135 + * tree-nested.c (convert_nl_goto_reference): Lookup a translation + before creating a new one. + +2005-10-03 David Edelsohn + + * config/rs6000/t-aix43 (LDFLAGS): New. + * config/rs6000/t-aix52 (LDFLAGS): New. + +2005-10-03 Ian Lance Taylor + + * gimplify.c (find_single_pointer_decl_1): New static function. + (find_single_pointer_decl): New static function. + (internal_get_tmp_var): For a formal variable, set restrict base + information if appropriate. + * alias.c (find_base_decl): If a VAR_DECL has a restrict base, + return it. + * tree.h (DECL_BASED_ON_RESTRICT_P): Define. + (DECL_GET_RESTRICT_BASE): Define. + (SET_DECL_RESTRICT_BASE): Define. + (decl_restrict_base_lookup): Declare. + (decl_restrict_base_insert): Declare. + (struct tree_decl_with_vis): Add based_on_restrict_p field. + * tree.c (restrict_base_for_decl): New static variable. + (init_ttree): Initialize restrict_base_for_decl. + (copy_node_stat): Copy restrict base information. + (decl_restrict_base_lookup): New function. + (decl_restrict_base_insert): New function. + (print_restrict_base_statistics): New static function. + (dump_tree_statistics): Call print_restrict_base_statistics. + +2005-10-02 Diego Novillo + + PR 24142 + * tree-vrp.c (vrp_meet): Fix call to range_includes_zero_p in + case of anti-ranges. + +2005-10-02 Andrew Pinski + + PR c/18851 + * c-typeck.c (tagged_tu_seen): Rename to ... + (tagged_tu_seen_cache): this and add val field. + (comptypes): Move functional to comptypes_internal + and free tagged_tu_seen. + (comptypes_internal): New function and call comptypes_internal + instead of comptypes. Speed up by sibcalling + tagged_types_tu_compatible_p. + (alloc_tagged_tu_seen): New function + (free_all_tagged_tu_seen_up_to): New function. + (tagged_types_tu_compatible_p): Return the val of the seen two + types. + Add that the two types are the same to tagged_tu_seen_base + if they are and call comptypes_internal instead of comptypes. + : Speed up common type where the fields are + in the same order. + (function_types_compatible_p): Call comptypes_internal instead of + comptypes. + (type_lists_compatible_p): Likewise. + (all functions): s/tagged_tu_seen/tagged_tu_seen_cache/. + +2005-10-02 Matthias Klose + + * doc/invoke.texi: Fix typo and speling error. + +2005-10-01 Richard Henderson + + * tree-stdarg.c (execute_optimize_stdarg): Process PHI nodes too. + +2005-10-01 Mark Mitchell + + * config/arm/unknown-elf.h (LINK_GCC_C_SEQUENCE_SPEC): Define + using --start-group and --end-group. + +2005-10-01 Diego Novillo + + * tree-vrp.c (value_inside_range, range_includes_zero_p): Add + FIXME note regarding quirky semantics. + +2005-10-01 Diego Novillo + + PR 24141 + * tree-vrp.c (vrp_meet): Clear VR0->EQUIV when building a + non-null range as a last resort. + +2005-10-01 James A. Morrison + Diego Novillo + + PR 23604 + * tree-vrp.c (extract_range_from_assert): For != + assertions, only build an anti-range if LIMIT is a + single-valued range. + +2005-09-30 Richard Earnshaw + + * arm.md (movqi): On thumb when optimizing, handle loading from + memory by describing this as taking a subreg of a zero-extended load + into an SImode register. + (movhi): Likewise. + +2005-09-30 Daniel Jacobowitz + + * reload1.c (merge_assigned_reloads): Do not change any + RELOAD_FOR_OUTPUT_ADDRESS reloads. + +2005-09-30 Geoffrey Keating + + * Makefile.in (LIPO_FOR_TARGET): Define. + (STRIP_FOR_TARGET): Define. + + * config/t-slibgcc-darwin (libgcc_s_%.dylib): Remove old symlinks + before creating new ones. Do symlinks before creating the actual + targets. + + * config/t-slibgcc-darwin (libgcc_s_%.dylib): Use --print-multi-lib + to work out which multilibs are actually being built. + +2005-09-30 Kazu Hirata + + * tree-vect-transform.c, config/ms1/ms1.md, + config/s390/s390.c, config/v850/v850.md: Fix comment typos. + Follow spelling conventions. + * doc/invoke.texi, doc/md.texi: Fix typos. + +2005-09-30 Andrew Macleod + + PR tree-optimization/21430 + * tree-ssa-operands.c (set_virtual_use_link): New. Link new virtual + use operands, and set stmt pointer if need be. + (FINALIZE_CORRECT_USE: New. Macro to call appropriate use fixup routine. + tree-ssa-opfinalize.h (FINALIZE_FUNC): Call FINALIZE_CORRECT_USE if + present. + +2005-09-29 Richard Kenner + + PR middle-end/24053 + * stor-layout.c (set_sizetype): Set TYPE_MAIN_VARIANT of bitsizetype. + +2005-09-29 Mark Mitchell + + * optabs.c (expand_binop): Initialize first_pass_p. + +2005-09-29 Jakub Jelinek + + PR middle-end/24109 + * c-decl.c (c_write_global_declarations_1): If any + wrapup_global_declaration_2 call returned true, restart the loop. + +2005-09-29 Daniel Berlin + + Fix PR tree-optimization/24117 + * tree-ssa-structalias.c (find_func_aliases): Strip nops + before considering whether to use anyoffset. + +2005-09-29 Paolo Bonzini + + Revert this patch: + + 2005-09-15 Paolo Bonzini + + * optabs.c (expand_binop): Use swap_commutative_operands_with_target + to order operands. + (swap_commutative_operands_with_target): New. + +2005-09-29 Paolo Bonzini + + PR c/21419 + * gimplify.c (gimplify_asm_expr): Raise an error if an output is + read-only. + +2005-09-29 Steven Bosscher + + PR tree-optimization/23911 + * tree-ssa-ccp.c (fold_const_aggregate_ref): Handle REALPART_EXPR + and IMAGPART_EXPR too. + +2005-09-28 Mark Mitchell + + PR 17886 + * expmed.c (expand_shift): Move logic to reverse rotation + direction when rotating by constants ... + * optabs.c (expand_binop): ... here. + * config/i386/i386.md (rotrdi3): Handle 32-bit mode. + (ix86_rotrdi3): New pattern. + (rotldi3): Handle 32-bit mode. + (ix86_rotldi3): New pattern. + +2005-09-29 Alan Modra + + PR target/24102 + * config/rs6000/rs6000.md (floatdisf2_internal2): Correct range + check for numbers that need no bit twiddle. + +2005-09-28 Geoffrey Keating + + * config/rs6000/t-darwin8: Uncomment contents, allow -m64 + multilib to be built. + + * Makefile.in: Export LIPO_FOR_TARGET, STRIP_FOR_TARGET. + (stage1-start): Delete old libgcc and libunwind before moving + anything into the stage directory. + (stage2-start): Likewise. + (stage3-start): Likewise. + (stage4-start): Likewise. + (stageprofile-start): Likewise. + (stagefeedback-start): Likewise. + * config.gcc (*-*-darwin*): Automatically use CPU-specific darwin.h + header in tm_file and CPU-specific t-darwin in tmake_file. + (i[34567]86-*-darwin*): Don't change tm_file. + (powerpc-*-darwin*): Don't change tm_file or tmake_file. + * config/darwin.h (REAL_LIBGCC_SPEC): Rewrite to use proper libgcc + shared library stub for target OS version. + * config/t-slibgcc-darwin (SHLIB_SOLINK): Delete. + (SHLIB_LINK): Don't make SHLIB_SOLINK. + (SHLIB_INSTALL): Don't install SHLIB_SOLINK. + (libgcc_s.%.dylib): New. + (LIBGCC): Define. + (install-darwin-libgcc-stubs): New. + (INSTALL_LIBGCC): New append. + * config/i386/darwin-libgcc.10.4.ver: New. + * config/i386/darwin-libgcc.10.5.ver: New. + * config/i386/t-darwin: New. + * config/rs6000/darwin-libgcc.10.4.ver: New. + * config/rs6000/darwin-libgcc.10.5.ver: New. + * config/rs6000/darwin.h (REAL_LIBGCC_SPEC): Delete. + * config/rs6000/t-darwin (SHLIB_VERPFX): Define. + +2005-09-28 Paul Brook + + * config/m68k/fpgnulib.c (__extendsfdf2, __truncdfsf2): Handle + denormals. + +2005-09-28 Richard Guenther + + PR tree-optimization/23853 + * tree-vect-analyze.c (vect_compute_data_ref_alignment): Use + host_integerp to verify misalignment value. + +2005-09-28 Richard Henderson + + * builtins.c (get_builtin_sync_mode): New. + (expand_builtin_sync_operation): Pass in mode argument. + (expand_builtin_compare_and_swap): Likewise. + (expand_builtin_lock_test_and_set): Likewise. + (expand_builtin_lock_release): Likewise. + (expand_builtin): Update to match. + +2005-09-28 Nick Clifton + + * config/v850/v850.h (GO_IF_LEGITIMATE_ADDRESS): Tidy up + formatting. Add check to PLUS case to ensure that the offset is + within an acceptable range. + + * config/v850/v850.md (casesi): Disable the generation of the + switch pattern as it is not being handled properly at the moment. + + * config/v850/lib1funcs.asm (___ucmpdi2): Correct jump instruction + for when the high words are identical. + +2005-09-27 Richard Henderson + + * pretty-print.c (pp_base_format): Fix typo for %>. + +2005-09-27 Daniel Berlin + Devang Patel + + PR tree-optimization/23625 + * tree-flow-inline.h (bsi_after_labels): Remove, first statement is + LABEL_EXPR, assertion check. + +2005-09-27 J"orn Rennecke + + * optabs.c (no_conflict_move_test): Check if a result of a + to-be-moved insn would be clobbered by an originally + preceding insn. + +2005-09-27 Jeff Law + + * passes.c (init_optimization_passes): Replace copy propagation + passes immediately after DOM with phi-only copy propagation + pases. Add phi-only copy propagation pass after first DOM pass. + * tree-pass.h (pass_phi_only_copy_prop): Declare. + * tree-ssa-copy.c (init_copy_prop): Accept new PHI_ONLY argument. + If true, then mark all non-control statements with DONT_SIMULATE_AGAIN. + (execute_copy_prop): Accept new PHI_ONLY argument. Pass it along + to init_copy_prop. Callers updated. + (do_phi_only_copy_prop): New function. + (pass_phi_only_copy_prop): New pass descriptor. + +2005-09-27 Nick Clifton + + * libgcc2.c (__popcount_tab): Remove redundant prototype. + +2005-09-26 Jason Merrill + + PR c++/13764 + * c-common.c (finish_fname_decls): Use append_to_statement_list_force. + + * doc/invoke.texi: Clarify documentation of -fno-enforce-eh-specs. + +2005-09-26 James E Wilson + + * config/ia64/crtbegin.asm, config/ia64/crtend.asm: Remove glibc + copyright. Add gcc copyright plus libgcc exception. + * config/ia64/crtfastmath.asm: Remove glibc copyright. Add gcc + copyright. + * config/ia64/lib1funcs.asm: Add gcc copyright plus libgcc exception. + +2005-09-26 Jeff Law + + * tree-ssa-dom.c (tree_ssa_dominator_optimize): Be more selective + about when to iterate. + +2005-09-23 Fariborz Jahanian + + PR target/23847 + * config/rs6000/rs6000.c (rs6000_function_value): Parallel pattern + for __complex__ double in -mcpu=G5 mode. + +2005-09-26 Sebastian Pop + + PR tree-optimization/23942 + * Makefile.in (SCEV_H): Depends on PARAMS_H. + * tree-scalar-evolution.c: Include params.h. + (t_bool): New enum. + (follow_ssa_edge, follow_ssa_edge_in_rhs, + follow_ssa_edge_in_condition_phi_branch, + follow_ssa_edge_in_condition_phi, follow_ssa_edge_inner_loop_phi): + Change return type to t_bool. Use a parameter to limit the size of + trees that are walked before stopping + (analyze_evolution_in_loop): Initialize the limit to 0. + (follow_ssa_edge): Give up by returning t_dont_know if the limit + exceeds PARAM_SCEV_MAX_EXPR_SIZE. + +2005-09-26 Uros Bizjak + + PR middle-end/23831 + * simplify-rtx.c (simplify_immed_subreg) [MODE_INT]: Skip + simplification if elem_bitsize > 2 * HOST_BITS_PER_WIDE_INT. + +2005-09-26 Fariborz Jahanian + + * combine.c (make_extraction): Check for valid use of subreg. + +2005-09-26 Uros Bizjak + + PR target/24055 + * config/i386/i386.md ("*fistdi2_1"): New pattern. + ("*fist2_1"): Use only HImode and SImode register operands. + ("fist2_with_temp"): Use only register operands. + +2005-09-26 J"orn Rennecke + + * rtlanal.c (reg_used_between_p): Don't check for CLOBBERs in + CALL_INSN_FUNCTION_USAGE. + +2005-09-26 Richard Guenther + + PR middle-end/15855 + * gcse.c: Include hashtab.h, define ldst entry hashtable. + (pre_ldst_expr_hash, pre_ldst_expr_eq): New functions. + (ldst_entry): Use the hashtable instead of list-walking. + (find_rtx_in_ldst): Likewise. + (free_ldst_entry): Free the hashtable. + (compute_ld_motion_mems): Create the hashtable. + (trim_ld_motion_mems): Remove entry from hashtable if + removing it from list. + (compute_store_table): Likewise^2. + (store_motion): Free hashtable in case we did not see + any stores. + +2005-09-25 Kazu Hirata + + * fold-const.c (fold_binary): Use op0 and op1 instead of arg0 + and arg1 if we are passing them to fold_build2. + +2005-09-25 Dan Nicolaescu + + PR 23828 + * config/i386/i386.c (ix86_function_regparm): Fix the test for + a nested function. + +2005-09-25 Richard Henderson + + * config/alpha/alpha.c (tls_symbolic_operand_1): Trust + SYMBOL_REF_TLS_MODEL to be correct. + +2005-09-24 Richard Henderson + + * ipa-type-escape.c (discover_unique_type): Remove dead code at + end of function. Reindent. + +2005-09-24 Ian Lance Taylor + + * convert.c (convert_to_integer): Don't test for ENUMERAL_TYPE in + NEGATE_EXPR/BIT_NOT_EXPR case. + +2005-09-24 Richard Henderson + + * c-common.c (handle_mode_attribute): When not modifying in place, + create subtypes for enumerations. + (sync_resolve_return): Use TYPE_MAIN_VARIANT. + * gimplify.c (create_tmp_from_val): Likewise. + +2005-09-24 Alexandre Oliva + + * config/i386/i386.md (*tls_global_dynamic_64, + *tls_local_dynamic_base_64): Add missing mode to call. + (tls_global_dynamic_64, tls_local_dynamic_base_64): Likewise. + +2005-09-24 Jan Hubicka + + * cgraph.c (cgraph_clone_edge): Make the scale gcov_type. + (cgraph_clone_node): Likewise. + * cgraph.h (cgraph_clone_edge): Update prototype. + (cgraph_mark_inline_edge, cgraph_clone_inlined_nodes): Remove + duplicated prototypes; add updating argument. + * cgraphunit.c (verify_cgraph_node): Verify that counts are non-negative. + * ipa-inline.c (cgraph_clone_inlined_nodes): Allow clonning without + updating profile. + (cgraph_mark_inline_edge): Likewise. + (cgraph_mark_inline): Update use of cgraph_mark_inline_edge. + (cgraph_flatten_node): Likewise. + (cgraph_decide_recursive_inlining): Likewise. + (cgraph_decide_inlining_of_small_function): Likewise. + * tree-optimize.c (tree_rest_of_compilation): Likewise. + +2005-09-23 David Edelsohn + Pete Steinmetz + + * config/rs6000/rs6000.md (neg-minus-mult): Set type to dmul. + (rldic.): Set type to "compare". + (rldicr.): Same. + (movsf_hardfloat): Set type to mtjmpr for MTCTR/MTLR. Set type to + mfjmpr for MFCTR/MFLR. + (movdf_hardfloat64): Same. + (movdf_softfloat64): Same. Correct order of store and move types. + (movti_string): Set type to store_ux/load_ux. + (load_multiple): Set type to load_ux. + (store_multiple): Set type to store_ux. + (movmemsi): Set type to store_ux. + (output_cbranch direct_return): Set type to jmpreg. + (stmw): Set type to store_ux. + (lmw): Set type to load_ux. + * config/rs6000/40x.md (ppc403-store): Increase latency to 2. + * config/rs6000/440.md (ppc440-store): Increase latency to 6. + * config/rs6000/603.md (ppc603-store): Occupy LSU for 2 cycles. + * config/rs6000/6xx.md (ppc604-store): Increase latency to 3. + * config/rs6000/mpc.md (mpccore-store): Increase latency to 2. + * config/rs6000/rios1.md (rios1-store): Increase latency to 2. + (rios1-fpstore): Increase latency to 3. + * config/rs6000/rios2.md (rios2-store): Increase latency to 2. + * config/rs6000/rs64.md (rs64a-store): Increase latency to 2. + +2005-09-23 David Edelsohn + Andrew Pinski + + * config/rs6000/sync.md (sync_si_internal): Change + operand2 constraint to "b". + (sync_di_internal): Same. + (sync_old_si_internal): Change operand3 constraint + to "b". + (sync_old_di_internal): Same. + (sync_new_si_internal): Same. + (sync_new_di_internal): Same. + +2005-09-23 J"orn Rennecke + + PR middle-end/23991 + * final.c (insn_default_length, insn_min_length): In !HAVE_ATTR_length + case, define as macros. + + PR rtl-optimization/23837 + * optabs.c (no_conflict_move_test): Don't set must_stay for a + clobber / clobber match between dest and p->first. + + * optabs.c (emit_libcall_block): Use no_conflict_move_test. + (no_conflict_move_test): Update comments. + +2005-09-22 Ranjit Mathew + + * doc/install.texi: Update URL for Jacks. + * doc/sourcebuild.texi: Likewise. + +2005-09-22 David Edelsohn + + PR target/24007 + * config/rs6000/rs6000.md (movsf_hardfloat): Ignore special + registers when choosing register preferences. + (movdf_hardfloat64): Same. + +2005-09-22 Andreas Krebbel + + * expmed.c (expand_shift): Don't use the target of the rotate as + target for the first expanded shift insn. + * testsuite/gcc.dg/20050922-1.c: Testcase added. + +2005-09-21 Zdenek Dvorak + + PR tree-optimization/22438 + * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Handle all + preserved iv rhs rewriting specially. + +2005-09-21 Daniel Berlin + + * tree-data-ref.c (analyze_array_indexes): Only estimate when + estimate_only is true. + * tree-flow.h (ref_contains_indirect_ref): New prototype. + * tree-flow-inline.h (ref_contains_indirect_ref): Moved from + tree-ssa-structalias.c + * tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined): Use + ref_contains_indirect_ref. + * tree-ssa-structalias.c (ref_contains_indirect_ref): Moved. + +2005-09-21 DJ Delorie + + * config/mn10300/mn10300.c (TARGET_DEFAULT_TARGET_FLAGS): Add + MASK_PTR_A0D0. + (mn10300_return_in_memory): Support variable size types also. + (mn10300_pass_by_reference): Likewise. + (mn10300_function_value): New. + * config/mn10300/mn10300.h (FUNCTION_VALUE): Call the above. + (FUNCTION_OUTGOING_VALUE): Likewise. + * config/mn10300/mn10300.opt: Add -mreturn-pointer-on-d0. + * doc/invoke.texi: Document it. + +2005-09-21 Uros Bizjak + + PR target/22585 + * config/i386/i386.c (ix86_prepare_fp_compare_args): Do not + force integer op1 into register for XFmode compares. + +2005-09-21 Kazu Hirata + + PR middle-end/23971 + * expmed.c (alg_code): Add alg_impossible. + (alg_hash_entry): Add cost. + (synth_mult): Record alg_impossible in the hash table if + multiplication by a given integer is impossble within the + limit. Speed up using alg_impossible. + +2005-09-20 Daniel Berlin + + * tree-ssa-structalias.c (get_constraint_for_component_ref): Add + argument. Allow and set any offset if needs_anyoffset is passed + in. + (get_constraint_for): Add argument here too. + Pass it down. + (do_structure_copy): Pass NULL to get_constraint_for. + (handle_ptr_arith): Ditto. + (find_func_aliases): Ditto. + +2005-09-20 J"orn Rennecke + + PR rtl-optimization/23898 + * output.h (get_attr_min_length): Declare. + * final.c (get_attr_length_1): New function, broken out of: + (get_attr_length). + (get_attr_min_length): New function. + * bb-reorder.c (copy_bb_p, get_uncond_jump_length): Use it. + (duplicate_computed_gotos): Likewise. + * genattr.c (insn_min_length): Generate declaration. + * genattrtab.c (min_fn, min_attr_value): New functions. + (make_length_attrs): Generate insn_min_length. + +2005-09-20 Steve Ellcey + + * config/pa/pa.c (output_cbranch): Check for zero in operands[2]. + +2005-09-20 Richard Henderson + + PR tree-optimization/24059 + * expr.c (expand_expr_real_1) : Allow modifier + EXPAND_STACK_PARM. + +2005-09-20 Joseph S. Myers + + * c.opt (fextended-identifiers): New. + * c-opts.c (c_common_handle_option): Handle + -fextended-identifiers. + * doc/cpp.texi: Update documentation of extended identifiers. + * doc/cppopts.texi (-fextended-identifiers): Document. + +2005-09-20 Jakub Jelinek + + PR tree-optimization/23929 + * tree-ssa-loop-niter.c (expand_simple_operations): Return immediately + if expr is NULL. + + PR tree-optimization/23818 + * tree-stdarg.c (execute_optimize_stdarg): Call + calculate_dominance_info. + +2005-09-20 Daniel Berlin + + * tree-data-ref.c (get_number_of_iters_for_loop): New function. + (analyze_siv_subscript_cst_affine): Add weak SIV test. + (compute_overlap_steps_for_affine_1_2): Use + get_number_of_iters_for_loop. + (analyze_subscript_affine_affine): Check whether difference is + zero first. + Use get_number_of_iters_for_loop. + Check whether overlap occurs outside of bounds. + (analyze_miv_subscript): Use get_number_of_iters_for_loop. + +2005-09-20 Andreas Krebbel + + * tree-ssa-address.c (create_mem_ref): Put the symbol reference into the + base register if possible. + +2005-09-20 Zdenek Dvorak + + PR tree-optimization/18463 + * tree-chrec.c (chrec_convert): Return fold_converted chrec if + converting it directly is not possible. + (chrec_convert_aggressive): New function. + * tree-chrec.h (chrec_convert_aggressive): Declare. + * tree-scalar-evolution.c (instantiate_parameters_1, resolve_mixers): + Fold chrec conversions aggressively if asked to. + (instantiate_parameters): Modified because of changes in + instantiate_parameters_1. + +2005-09-19 Richard Henderson + + * config/i386/sse.md (reduc_splus_v4sf): Rename from reduc_plus_v4sf. + (reduc_splus_v2df): New. + +2005-09-19 Richard Sandiford + + * config/arm/aof.h (REGISTER_NAMES): Add missing backslash. + (ADDITIONAL_REGISTER_NAMES): Add missing comma. Remove final comma. + +2005-09-19 Richard Henderson + + * config/i386/sse.md (vcondu): Rename from + vcondu. + +2005-09-19 Richard Henderson + + * config/ia64/ia64.c (ia64_expand_widen_sum): New. + (ia64_expand_dot_prod_v8qi): New. + * config/ia64/ia64-protos.h: Update. + * config/ia64/vect.md (pmpy2_r, pmpy2_l, widen_usumv8qi3, + widen_usumv4hi3, widen_ssumv8qi3, widen_ssumv4hi3, udot_prodv8qi, + sdot_prodv8qi, sdot_prodv4hi): New. + (reduc_splus_v2sf): Rename from reduc_plus_v2sf. + +2005-09-19 Richard Henderson + + PR 23941 + * real.c (exact_real_truncate): Return false if the format cannot + represent the number as a normal. + + * config/alpha/alpha.c (alpha_rtx_costs) : Cost 0 + for a memory source. + +2005-09-19 Dorit Nuzman + + * tree-ssa-operands.c (swap_tree_operands): Export. + * tree.h (swap_tree_operands): Declare. + * tree-vectorizer.c (vect_is_simple_reduction): Remove ATTRIBUTE_UNUSED. + Call swap_tree_operands. + +2005-09-19 Richard Henderson + + * tree-flow.h (merge_alias_info): Declare. + * tree-ssa-copy.c (merge_alias_info): Export. + * tree-vect-transform.c (vect_create_index_for_vector_ref): Remove. + (vect_create_data_ref_ptr): Use create_iv directly. + (vectorizable_load): Use correct types for integer constants. + (vect_generate_tmps_on_preheader): Likewise. + (vect_gen_niters_for_prolog_loop): Likewise. + +2005-09-19 Steven Bosscher + + PR rtl-optimization/23943 + * cse.c (find_best_addr): Never propagate an EXPR_LIST rtx. + +2005-09-18 Jan Hubicka + + * calls.c (flags_from_decl_or_type): Do not set ECF_LIBCALL_BLOCK. + +2005-09-18 Eric Botcazou + + * varasm.c (output_constant): Do not abort on conversions to union + types between different sizes. + +2005-09-18 Richard Guenther + + PR middle-end/23944 + * gimplify.c (fold_indirect_ref_rhs): Fix thinko in + fallback. + +2005-09-18 Paul Brook + + * config/m68k/fpgnuib.c (__floatsidf): Don't rely on signed overflow. + +2005-09-17 Richard Henderson + + * tree-pass.h, tree-flow.h, tree-ssa-dce.c: Revert last change. + * tree-ssa-loop.c (pass_vect_dce): Remove. + * passes.c (init_optimization_passes): Add pass_dce as a sub-pass + of pass_vectorize. + +2005-09-17 Richard Henderson + + * tree-pass.h (pass_vect_dce): Declare. + * passes.c (init_optimization_passes): Add it. + * tree-flow.h (tree_ssa_dce): Declare. + * tree-ssa-dce.c (tree_ssa_dce): Export. + * tree-ssa-loop.c (tree_vectorize): Move current_loops check ... + (gate_tree_vectorize): ... here. + (pass_vect_dce): New. + +2005-09-17 Jan Hubicka + + * except.c (struct eh_status): Turn region_array into vec. + (expand_resx_expr, collect_eh_region_array, remove_unreachable_regions, + convert_from_eh_region_ranges, find_exception_handler_labels, + current_function_has_exception_handlers, assign_filter_values, + build_post_landing_pads, dw2_build_landing_pads, + sjlj_find_directly_reachable_regions, sjlj_mark_call_sites, + sjlj_emit_dispatch_table, remove_eh_handler, for_each_eh_region, + foreach_reachable_handler, can_throw_internal_1, + convert_to_eh_region_ranges, verify_eh_tree): Update uses of + region_array. + (duplicate_eh_region_1): Update region_array. + (duplicate_eh_regions): Resize region_array and avoid recomputing. + +2005-09-17 David Edelsohn + + PR middle-end/22067 + * expmed.c (expand_mult): Substitute simple register for op0 when + computing max_cost. + +2005-09-17 Richard Henderson + + * expr.c (emit_move_via_integer): Add force argument, pass it on + to emit_move_change_mode. Update callers. + (emit_move_complex): Pass true to new force argument. + * function.c (expand_function_end): Move expand_eh_return call + earlier. Merge sub-word complex values into a pseudo before + copying to the return hard register. + +2005-09-17 Eric Botcazou + + * varasm.c (output_constant): Do not abort on VIEW_CONVERT_EXPRs + between different sizes. + +2005-09-16 Paolo Bonzini + + PR 23903 + + * passes.c (init_optimization_passes): Register dump files for + IPA passes first. + +2005-09-16 Andreas Krebbel + + * config/s390/s390-protos.h (s390_overlap_p): Prototype added. + * config/s390/s390.c (s390_overlap_p): New function. + * config/s390/s390.md ("*mvc" peephole2, "*nc" peephole2, "*oc" + peephole2, "*xc" peephole2): Added overlap check to the peephole2 + condition. + +2005-09-16 Richard Guenther + + * ipa-pure-const.c (static_execute): Free auxiliar information. + * ipa-type-escape.c (discover_unique_type): Free temporary key. + * tree-vrp.c (remove_range_assertions): Free blocks_visited sbitmap. + +2005-09-15 DJ Delorie + + * config/m32c/m32c-lib1.S (__m32c_eh_return): Fix typo. + +2005-09-15 Paolo Bonzini + + * optabs.c (expand_binop): Use swap_commutative_operands_with_target + to order operands. + (swap_commutative_operands_with_target): New. + +2005-09-15 Daniel Berlin + + * tree-data-ref.c (analyze_array_indexes): Add estimate_only + parameter. + Update callers. + (estimate_iters_using_array): New function. + * tree-data-ref.h (estimate_iters_using_array): Prototype + * tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined): + Use estimate_iters_using_array instead of analyze_array. + +2005-09-15 Eric Botcazou + + * tree-nested.c (get_frame_type): Mark the "non-local frame structure" + as addressable. + +2005-09-15 Michael Matz + + * tree-vrp.c (vrp_int_const_binop ): Handle 0 - -INF. + +2005-09-14 Daniel Berlin + + PR tree-optimization/23835 + * tree-ssa-alias.c (sort_pointers_by_pt_vars): New function. + (create_name_tags): Rewrite to be not O(num_ssa_names^2). + +2005-09-14 Richard Henderson + + * config/ia64/vect.md (addv2sf3, subv2sf3): Rewrite as expand. + (addv2sf3_1, addv2sf3_2, subv2sf3_1, subv2sf3_2): New. + +2005-09-14 Andrew Pinski + + * config/i386/i386.c (contains_128bit_aligned_vector_p): Add break + in the ARRAY_TYPE case. + +2005-09-14 Eric Botcazou + + * tree.c (substitute_in_expr, case 4): New case, for ARRAY_REF. + +2005-09-14 Uros Bizjak + + PR middle-end/22480 + * tree-vect-transform.c (vectorizable_operation): Return false for + scalar shift operations and for vector shift operations with + non-invariant shift arguments. Use scalar tree operand op1 as + a shift operand when vector shift insn pattern uses scalar shift + operand. + * Makefile.in (tree-vect-transform.o): Depend on recog.h. + +2005-09-14 Olivier Hainque + + * gimplify.c (gimplify_init_ctor_eval): Don't discard a zero-sized + value if it has side-effects. + +2005-09-14 David Edelsohn + + PR target/22068 + * config/rs6000/rs6000.md (muldi3): Add mulli alternative. + +2005-09-14 Alan Modra + + * config/rs6000/linux64.h (DBX_OUTPUT_BRAC): Treat function name + passed as NAME as if it were label at start of function code. + +2005-09-13 Kaz Kojima + + * config/sh/sh.md (*movv4sf_i): Add general register cases to + the constraints. + +2005-09-13 Andrew Pinski + + * config/rs6000/darwin.md (movdf_low_si): Mark the outgoing r constraint + as early clobber. Rewrite so the PIC register is not implicitly used. + +2005-09-13 Volker Reichelt + + * tree.c (annotate_with_file_line): Compare line numbers before + file names. + +2005-09-13 Uros Bizjak + + PR target/23816 + * config/i386/sse.md (*ieee_sminv4sf3, *ieee_smaxv4sf3) + (*ieee_sminv2df3, *ieee_smaxv2df3): New insn patterns. + +2005-09-13 Ian Lance Taylor + + * loop-doloop.c (doloop_modify): Use GEN_INT to pass an rtx rather + than a HOST_WIDEST_INT to gen_doloop_begin. + +2005-09-13 Diego Novillo + + * tree-dfa.c (dump_variable): Guard against NULL annotations. + +2005-09-13 Zdenek Dvorak + + PR tree-optimize/23817 + * tree-cfg.c (tree_merge_blocks): Preserve loop closed ssa. + +2005-09-13 Alan Modra + + PR target/23774 + * config/rs6000/rs6000.md (restore_stack_block): Write the backchain + word before changing the stack pointer. Use gen_frame_mem for MEMs. + Use UNSPEC_TIE to prevent insn scheduling reordering the insns. + (restore_stack_nonlocal): Likewise. + (save_stack_nonlocal): Use template to emit insns, and gen_frame_mem. + +2005-09-12 Ian Lance Taylor + + PR g++/7874 + * c.opt (ffriend-injection): New C++ option. + * doc/invoke.texi (Option Summary): Mention -ffriend-injection. + (C++ Dialect Options): Document -ffriend-injection. + +2005-09-12 Josh Conner + + PR middle-end/23237 + * ipa-reference.c (static_execute): Don't mark variables in + named sections TREE_READONLY. + +2005-09-12 Alan Modra + + * config/rs6000/rs6000.c (get_next_active_insn): Simplify test for + stack_tie. + +2005-09-12 Andrew Pinski + + * tree-ssa-dse.c (dse_optimize_stmt): Fix up all of V_MAY_DEF and + V_MUST_DEF instead of just the first_use_p. + Don't mark the virtual variables for renaming on the statement which + is being removed. + (pass_dse): Remove TODO_update_ssa. + +2005-09-12 J"orn Rennecke + + PR middle-end/23290 + * stor-layout.c (compute_record_mode): For records with a single + field, actually check the field's mode size against the type size. + + * sh.h (HARD_REGNO_MODE_OK): Allow V4SFmode in general purpose + registers for TARGET_SHMEDIA. + (enum reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): Rename + GENERAL_FP_REGS to GENERAL_DF_REGS. Add GENERAL_FP_REGS as union + of GENERAL_REGS and FP_REGS. + +2005-09-12 Bernd Schmidt + + * config/bfin/bfin.c (legimitize_pic_address): Use gen_const_mem. + +2005-09-12 Alan Modra + + * config/rs6000/rs6000.c (get_next_active_insn): Rewrite using + CALL_P, JUMP_P and NONJUMP_INSN_P, so that barriers and labels + are omitted. Exclude stack_tie insn too. + +2005-09-11 David Edelsohn + + PR rtl-optimization/23098 + * config/rs6000/predicates.md (easy_fp_constant): SFmode constant + 0.0f is easy. + * config/rs6000/rs6000.md (movdf splitter): Use + const_double_operand predicate for TARGET_POWERPC64. + * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Expand + SYMBOL_REF method to ABI_V4. + + * config/rs6000/altivec.md (build_vector_mask_for_load): Use + replace_equiv_address. + * config/rs6000/rs6000.c (rs6000_emit_eh_reg_restore): Mark MEM as + rs6000_sr_alias_set and MEM_NOTRAP. + (rs6000_aix_emit_builtin_unwind_init): Use gen_frame_mem(). + +2005-09-11 Eric Botcazou + + * tree.c (contains_placeholder_p) : Properly + handle CALL_EXPR again. + +2005-09-11 Richard Earnshaw + + * arm/predicates.md (alignable_memory_operand): Delete. + +2005-09-10 Richard Henderson + + PR debug/23806 + * dbxout.c (dbxout_expand_expr): New. + (dbxout_symbol): Use it. + +2005-09-10 Richard Earnshaw + + * arm.c (arm_gen_rotated_half_load): Delete. + (vfp_emit_fstmx, arm_set_return_address): Use gen_frame_mem. + (emit_multi_reg_push, emit_sfm, arm_expand_prologue) + (thumb_set_return_address): Likewise. + (thumb_load_double_from_address): Use adjust_address. + * arm.md (splits calling arm_gen_rotated_half_load): Delete. + (extendhsisi2_mem, movhi_bytes): Use change_address. + (movhi): Use widen_memory_access. + (reload_out_df): Use replace_equiv_address. + * arm-protos.h (arm_gen_rotated_half_load): Delete prototype. + +2005-09-09 Richard Henderson + + PR debug/20998 + * dbxout.c: Include expr.h. + (dbxout_global_decl): Don't suppress for DECL_RTL unset. + (dbxout_symbol): Handle DECL_VALUE_EXPR. + * Makefile.in (dbxout.o): Add EXPR_H. + +2005-09-09 Zdenek Dvorak + + PR tree-optimization/23509 + * tree-cfg.c (replace_uses_by): Use replace_exp. + * tree-ssa-loop-ivopts.c (get_ref_tag): Assert that dereferenced + pointers have name_mem_tag or type_mem_tag set. + +2005-09-09 Sebastian Pop + + * tree-chrec.c (evolution_function_is_invariant_rec_p): Use + CHREC_LEFT and CHREC_RIGHT for accessing chrec components instead + of wrongly accessing operands. + +2005-09-09 Sebastian Pop + + * Makefile.in (tree-chrec.o): Depends on SCEV_H. + * tree-chrec.c: Include tree-scalar-evolution.h. + (chrec_convert): Instantiate the base and step before calling + scev_probably_wraps_p that would fail on parametric evolutions. + Collect all the fails into a single section failed_to_convert, + print a diagnostic, and return chrec_dont_know instead of calling + fold_convert. + * tree-scalar-evolution.c (loop_closed_phi_def): New. + (instantiate_parameters_1): Avoid instantiation of loop closed ssa + phi nodes. + (scev_const_prop): Don't replace the definition of a loop closed ssa + phi node by itself, or by another loop closed ssa phi node. + * tree-ssa-loop-niter.c (scev_probably_wraps_p, convert_step): Check + that base and step are defined. + +2005-09-09 Richard Guenther + + PR c++/23624 + * fold-const.c (fold_ternary): Check truth_value_p before + calling invert_truthvalue. + +2005-09-09 Nick Clifton + + * Makefile.in (LIBGCC_DEPS): Add libgcc2.h. + * libgcc2.c (__clz_tab[], __popcount_tab[]): Set the fixed + dimension of these arrays. + * libgcc2.h (__clz_tab[], __popcount_tab[]): Add exports of + these arrays. + * longlong.h: Only provide a prototype for the __clz_tab[] array + if this header has not been included from libgcc2.h. + * config/stormy16/stormy16-lib2.c: Include libgcc2.h rather than + defining own types. + Provide prototypes for exported functions. + Use the __clz_tab[] and __popcount_tab[] arrays provided by + libgcc2.c. + +2005-09-08 Josh Conner + + PR c++/21135 + PR c++/23180 + * expr.c (expand_expr_addr_expr_1): Don't invoke + expand_simple_binop for EXPAND_INITIALIZER. + +2005-09-08 Richard Henderson + + PR debug/23190 + * toplev.c (wrapup_global_declaration_1): Split out ... + (wrapup_global_declaration_2): ... from ... + (wrapup_global_declarations): ... here. Return bool. + (check_global_declaration_1): Split out ... + (check_global_declarations): from here. + (emit_debug_global_declarations): New. + * toplev.h (wrapup_global_declaration_1, wrapup_global_declaration_2, + check_global_declaration_1, emit_debug_global_declarations): Declare. + * c-decl.c (c_write_global_declarations_1): Don't create a vector + of decls. Call wrapup_global_declaration_1, + wrapup_global_declaration_2, check_global_declaration_1 directly. + (c_write_global_declarations_2): New. + (ext_block): New. + (c_write_global_declarations): Call c_write_global_declarations_2. + * langhooks.c (write_global_declarations): Call + emit_debug_global_declarations. + + * cgraphunit.c (cgraph_varpool_remove_unreferenced_decls): Don't + remove decls that have DECL_RTL_SET_P. + * passes.c (rest_of_decl_compilation): Invoke + cgraph_varpool_finalize_decl for all but functions. + +2005-09-08 Eric Botcazou + + * tree-vrp.c (extract_range_from_unary_expr): Do not set the range for + the result of a conversion if the new min and max cannot be compared. + +2005-09-08 Andreas Krebbel + + * config/s390/s390.c (s390_sr_alias_set): Variable removed. + (override_options): Setting s390_sr_alias_set removed. + (save_fpr, save_gprs): Set alias set to vararg or frame. + (restore_fpr, restore_gprs, s390_emit_prologue): Replace + s390_sr_alias_set with get_frame_alias_set (). + (s390_gimplify_va_arg): Replace s390_sr_alias_set with + get_varargs_alias_set (). + +2005-09-08 Andrew Pinski + + PR objc/20574 + PR objc/19324 + * c-parser.c (c_parser_objc_method_definition): If the next + token is not "{", error out and don't start the function. + +2005-09-08 Andrew Pinski + + * tree-vrp.c (extract_range_from_expr): Move the check for non + nullness after the check for gimple invariant. + +2005-09-08 Richard Kenner + + * tree.c (host_integerp, tree_low_cst): Correct function comment. + +2005-09-08 Kazuhiro Inaoka + + PR target/23747 + * config/m32r.md (movmemsi_internal): Canonicalize order of + operands in PLUS component of template. + +2005-09-07 Andreas Krebbel + + * reload1.c (fixup_eh_region_note): Remove assertion. + (fixup_abnormal_edges): Reverted removal of call to + find_many_sub_basic_blocks made on 2005-08-31. + +2005-09-07 Richard Henderson + + * function.c (ARG_POINTER_CFA_OFFSET): Move ... + * defaults.h (ARG_POINTER_CFA_OFFSET): ... here. + (INCOMING_FRAME_SP_OFFSET): Move from dwarf2out.c. + * dwarf2out.c (struct cfa_loc): Change reg to unsigned int, + rearrange for better packing. + (INCOMING_FRAME_SP_OFFSET): Move to defaults.h. + (lookup_cfa_1): Remove inline marker. + (cfa_equal_p): Split out of ... + (def_cfa_1): ... here. Use INVALID_REGNUM. + (build_cfa_loc): Handle !cfa->indirect. + (frame_pointer_cfa_offset): New. + (dbx_reg_number): Assert register elimination performed; do + leaf register remapping. + (reg_loc_descriptor): Avoid calling dbx_reg_number when unused. + (eliminate_reg_to_offset): New. + (based_loc_descr): Remove can_use_fbreg argument. Use fbreg only + for verifiably local stack frame addresses; re-base to CFA. + (mem_loc_descriptor): Remove can_use_fbreg argument. + (concat_loc_descriptor, loc_descriptor): Likewise. + (containing_function_has_frame_base): Remove. + (rtl_for_decl_location): Don't do register elimination or + leaf register remapping here. + (secname_for_decl): Split out from .. + (add_location_or_const_value_attribute): ... here. + (convert_cfa_to_loc_list): New. + (compute_frame_pointer_to_cfa_displacement): New. + (gen_subprogram_die): Use them. + * tree.h (frame_base_decl): Remove. + * var-tracking.c (frame_base_decl, frame_stack_adjust): Remove. + (prologue_stack_adjust): Remove. + (vt_stack_adjustments): Use INCOMING_FRAME_SP_OFFSET. + (adjust_stack_reference): Re-base memories to arg_pointer_rtx. + (set_frame_base_location): Remove. + (compute_bb_dataflow, emit_notes_in_bb): Don't call it. + (dump_attrs_list, dump_dataflow_set): Use string concatenation. + (vt_add_function_parameters): Don't eliminate_regs. + (vt_initialize): Don't create frame_base_decl. + +2005-09-07 Eric Botcazou + + * doc/install.texi (*-*-solaris2*): Clarify wording on the recommended + version of GNU binutils for 4.x and later. + +2005-09-06 Mark Mitchell + + * ggc-page.c (ggc_push_context): Remove. + (ggc_pop_context): Likewise. + * ggc.h (ggc_push_context): Remove. + (ggc_pop_context): Likewise. + +2005-09-06 Saurabh Verma + + PR target/8973 + * config/arc/arc.c (arc_output_function_epilogue): Update flags while + returning from an interrupt handler. + +2005-09-06 Saurabh Verma + + PR target/8972 + * config/arc/arc.c (output_shift): Add check for loop count when + optimizing. + +2005-09-06 Steven Bosscher + + * tree-ssa-phiopt.c (conditional_replacement): Construct proper SSA + form manually. + (abs_replacement): Likewise. + (pass_phiopt): Remove TODO_update_ssa. + +2005-09-06 Jakub Jelinek + + PR c/23075 + * c-typeck.c (c_finish_return): Set TREE_NO_WARNING on RETURN_EXPR + if "return with no value, in function returning non-void" warning + has been issued. + * tree-cfg.c (execute_warn_function_return): Don't look at + RETURN_EXPRs with TREE_NO_WARNING set. + + PR target/22362 + * config/i386/i386.c (ix86_function_regparm): Make sure automatic regparm + for internal functions doesn't use registers used by global registers + variables. Use fewer register parameters if there are global register + variables. + +2005-09-06 Olivier Hainque + Eric Botcazou + + PR middle-end/14997 + * expr.c (expand_expr_real) : Force op0 to mem + when we would be extracting outside its bit span (bitpos+bitsize + larger than its mode), possible with some VIEW_CONVERT_EXPRs from + Ada unchecked conversions. + +2005-09-06 Steven Bosscher + + * tree-ssa-pre.c (try_look_through_load): New function. + (compute_avail): Use it to try to look through loads for some + more useful expressions. + +2005-09-06 Saurabh Verma + + * simplify-rtx.c (simplify_binary_operation_1): Correct the + condition for detecting cases like (a&a) and (a^a). + +2005-09-06 Keith Besaw + + * common.opt: Add option ftree-vect-loop-version. + * params.def: Add --param vect-max-version-checks. + * doc/invoke.texi: Document ftree-vect-loop-version and + --param vect-max-version-checks. + * tree-vectorizer.h (_loop_vec_info): Add ptr_mask and + may_misalign_stmts and defines for accessors. + * tree-vectorizer.c : (new_loop_vec_info): VEC_alloc for + LOOP_VINFO_MAY_MISALIGN_STMTS. + (destroy_loop_vec_info): VEC_free for + LOOP_VINFO_MAY_MISALIGN_STMTS. + * tree-vect-analyze.c (vect_compute_data_ref_alignment): + Update documentation. + (vect_update_misalignment_for_peel): New. + (vect_enhance_data_refs_alignment): Update to choose loop + peeling or loop versioning if appropriate for the (potentially) + unaligned data references in the loop. + (vect_analyze_data_refs_alignment): Remove call to + vect_enhance_data_refs_alignment so the checks can be done + earlier. + (vect_analyze_loop): Add call to vect_enhance_data_refs_alignment + and move up call to vect_analyze_data_refs_alignment. + * tree-vect-transform.c (vect_create_cond_for_align_checks): New. + (vect_transform_loop): Add call to loop_version. + +2005-09-06 Jakub Jelinek + + PR rtl-optimization/23098 + * cse.c (fold_rtx_mem): Call delegitimize_address target hook. + * simplify-rtx.c (constant_pool_reference_p): New function. + * rtl.h (constant_pool_reference_p): New prototype. + * config/i386/i386.md (pushf split, mov[sdx]f split): Use + constant_pool_reference_p in condition and + avoid_constant_pool_reference in preparation statements. + +2005-09-06 Andreas Krebbel + + * gcse.c (try_replace_reg): Disallow REG_EQUAL notes for + STRICT_LOW_PART SETs. + +2005-09-06 Alan Modra + + PR middle-end/21460 + * except.c (sjlj_emit_function_enter): Find the function begin + note even when it's not in first basic block. + +2005-09-06 Kelley Cook + + * acinclude.m4: Renamed from aclocal.m4. Delete AM_LANGINFO_CODESET, + AM_PROG_CC_C_O, and AM_AUX_DIR_EXPAND. + * aclocal.m4: Regenerate. + +2005-09-05 DJ Delorie + + * config/m32c/m32c.h (TRAMPOLINE_ALIGNMENT): Correct misspelling + of macro. + +2005-09-06 Kazu Hirata + + * gimplify.c, ipa-prop.h, varasm.c, config/vxlib.c, + config/vxworks.h, config/crx/crx.c, config/ms1/ms1.c, + config/ms1/ms1.md, config/rs6000/rs6000.c: Fix comment typos. + Follow spelling conventions. + * doc/invoke.texi: Follow spelling conventions. + +2005-09-05 J"orn Rennecke + + * rtl.h (gen_frame_mem, gen_tmp_stack_mem): Declare. + * emit-rtl.c (gen_frame_mem, gen_tmp_stack_mem): New functions. + * builtins.c (expand_builtin_return_addr): Use gen_frame_mem. + +2005-09-05 J"orn Rennecke + + PR target/23683 + * sh.c (sh_reorg, emit_load_ptr): Use gen_const_mem. + (output_stack_adjust): Use gen_tmp_stack_mem. + (sh_expand_prologue, sh_expand_epilogue): Use gen_frame_mem. + (sh_set_return_address, sh_allocate_initial_value): Likewise. + (sh_get_pr_initial_val): Likewise. + (sh_builtin_saveregs): Use gen_frame_mem and change_address. + (sh_initialize_trampoline): Likewise. Also use adjust_address. + * sh.md (divsi_inv_m0): Use gen_const_mem. + (push_fpscr, pop_fpscr, load_ra): Use gen_frame_mem. + (movdf_i4+1): Use gen_tmp_stack_mem. + (reload_outdf+3, reload_outdf+4, fpu_switch+1): Use change_address. + (fpu_switch+2): Likewise. + (movv4sf_i, movv16sf_i): Use adjust_address. + (symGOT_load): Set MEM_NOTRAP_P bit. + +2005-09-04 John David Anglin + + PR target/23721 + * pa.c (emit_move_sequence): Fix typo in last change. + +2005-09-03 Jakub Jelinek + + PR rtl-optimization/23454 + * reorg.c (relax_delay_slots): Only call invert_jump if any_condjump_p + is true. + +2005-09-03 Richard Henderson + John David Anglin + + PR middle-end/23671 + * pa.c (emit_move_sequence): Use replace_equiv_address instead of + gen_rtx_MEM. + +2005-09-02 Nicolas Pitre + + * config/arm/arm.c (arm_legitimize_address): Limit the value passed + to bit_count to 32 bits. + +2005-08-31 Mark Mitchell + + PR c++/23167 + * gimplify.c (gimplify_expr): Handle TREE_ADDRESSABLE types when + generating synthetic loads from volatile lvalues. + +005-09-02 Nick Clifton + + * config/stormy16/stormy16-lib2.c (__popcounthi2, __parityhi2, + __ctzhi2, __clzhi2): New functions. + +2005-09-02 Andrew Pinski + + PR middle-end/23547 + * tree-nested.c (struct var_map_elt): Mark with GTY. + (struct nesting_info): Mark with GTY. Mark var_map's param is struct + var_map_elt. + (lookup_field_for_decl): Allocate new element in GC memory. + (lookup_tramp_for_decl): Likewise. + (convert_nl_goto_reference): Likewise + (create_nesting_tree): Allocate info in GC memory. Likewise for + info->var_map. + (free_nesting_tree): Free with ggc_free instead of free. + (root): New static variable. + (lower_nested_functions): Remove root as local variable. And zero out + root at the end of the function. + +2005-09-02 J"orn Rennecke + + PR rtl-optimization/20365 + * simplify-rtx.c (simplify_plus_minus_op_data): Change type of neg + to short. New member ix. + (simplify_plus_minus_op_data_cmp): Break ties using ix member. + (simplify_plus_minus): Initialize ix members before calling qsort. + +2005-09-02 Zdenek Dvorak + + PR tree-optimization/23626 + * tree-cfg.c (replace_uses_by): Clean up eh info. + +2005-09-01 DJ Delorie + + * config/m32c/m32c.c (m32c_valid_pointer_mode): Remove stray debug + fprintf. + +2005-09-01 David Edelsohn + + * config/rs6000/rs6000.c (setup_incoming_varargs): Set MEM_NOTRAP_P. + (rs6000_split_multireg_move): Use replace_equiv_address instead of + gen_rtx_MEM. + +2005-09-01 Craig Rodrigues + + * c-decl.c (diagnose_mismatched_decls): With -Wredundant-decls, + do not issue warning for a variable definition following + a declaration. + +2005-09-01 Richard Henderson + + PR 23668 + * config/i386/i386.c (ix86_expand_vector_init_one_var): Restore + conversion to CONST_VECTOR. + +2005-09-01 Richard Henderson + + PR 23676 + * reload1.c (reload_as_needed): Check !CALL_P before calling + fixup_eh_region_note. + * rtlanal.c (may_trap_p): SUBREG by itself cannot trap. + +2005-09-01 DJ Delorie + + * varasm.c (output_constant): Let the target resolve + conversions of addresses to non-default pointer sizes. + +2005-09-01 Nicolas Pitre + + * config/arm/arm.c (arm_legitimize_address): Split absolute addresses + to alow matching ARM pre-indexed addressing mode. + (arm_override_options): Remove now irrelevant comment. + +2005-09-01 Phil Edwards + + * config.gcc (i*86-wrs-vxworks): Update. Split out vxworksae target. + * config/i386/t-vxworks: Update multilibs for VxWorks 6 and RTP mode. + * config/i386/vxworks.h: Likewise. + * config/i386/t-vxworksae: New file, for VxWorks AE. + * config/i386/vxworksae.h: Likewise. + +2005-09-01 Sebastian Pop + + PR tree-optimization/23410 + * tree-ssa-loop-niter.c (scev_probably_wraps_p): Check that the + sequence is not wrapping during the first step. + +2005-09-01 Jakub Jelinek + + PR debug/7241 + * dwarf2out.c (base_type_die): Compare char_type_node with + TYPE_MAIN_VARIANT (type), not type. + +2005-09-01 Richard Guenther + + PR tree-optimization/15366 + * common.opt: Add -finline-functions-called-once. + Put -fearly-inlining in alphabetically ordered place. + * doc/invoke.texi: Document new option. + * ipa-inline.c (cgraph_decide_inlining): Honour + flag_inline_functions_called_once. + +2005-09-01 Jakub Jelinek + + PR rtl-optimization/23478 + * local-alloc.c (struct qty): Add n_throwing_calls_crossed field. + (alloc_qty): Initialize it. + (update_equiv_regs): Clear REG_N_THROWING_CALLS_CROSSED. + (combine_regs): Combine also n_throwing_calls_crossed fields. + (find_free_reg): Don't attempt to caller-save pseudos crossing + calls that might throw. + * global.c (struct allocno): Add throwing_calls_crossed field. + (global_alloc): Revert 2005-08-22 change. Initialize + throwing_calls_crossed. + (find_reg): Don't attempt to caller-save pseudos crossing calls that + might throw. + +2005-09-01 Alan Modra + + PR target/23649 + * config/rs6000/predicates.md (mask_operand): Only handle rlwinm masks. + (mask64_operand): Reinstate code prior to 2005-06-11 change. + (mask64_2_operand): Reinstate code prior to 2004-11-11 change. + (and64_2_operand): Tweak to use predicate. + (and_operand): Adjust for mask_operand changes. + * config/rs6000/rs6000.c (num_insns_constant): Revert 2005-06-11. + (print_operand): Likewise. + (rs6000_rtx_costs): Pass mode to mask_operand and use mask64_operand. + (mask64_1or2_operand): Delete. + * rs6000/rs6000-protos.h (mask64_1or2_operand): Delete. + * config/rs6000/rs6000.h (EXTRA_CONSTRAINT ): Revert 2005-06-11. + (EXTRA_CONSTRAINT ): Pass operand mode to predicate. + (EXTRA_CONSTRAINT ): Disallow mask64_operand matches. + * config/rs6000/rs6000.md (andsi3_internal3 split): Revert 2005-06-11. + (rotldi3_internal4): Likewise. + (rotldi3_internal5, rotldi3_internal5 split): Likewise. + (rotldi3_internal6, rotldi3_internal6 split): Likewise. + (ashldi3_internal7): Likewise. + (ashldi3_internal8, ashldi3_internal8 split): Likewise. + (ashldi3_internal, ashldi3_internal9 split): Likewise. + (anddi3 split): Don't match mask64_operand. + (anddi3_internal2): Add rlwinm. Modify 't' splitter predicate. + (anddi3_internal3): Add rlwinm. Use and64_2_operand in non-cr0 + splitter and match TARGET_64BIT not TARGET_POWERPC64. Modify + 't' splitter predicate. + (movdi_internal64 + 2): Revert 2005-06-11 change. + +2005-08-31 DJ Delorie + + * config/m32c/m32c.c (m32c_valid_pointer_mode): New. + (m32c_asm_integer): Add support for 32 bit pointers. + +2005-08-31 Richard Henderson + + * emit-rtl.c (set_mem_attributes_minus_bitpos): Look through + component-like references for setting MEM_NOTRAP_P. + + * config/i386/i386.c (ix86_setup_incoming_varargs): Set MEM_NOTRAP_P. + * config/alpha/alpha.c (alpha_setup_incoming_varargs): Likewise. + +2005-08-31 Richard Henderson + + * expr.c (expand_expr_real_1) : Force subregs + into a pseudo before applying gen_lowpart. + +2005-08-31 Geoffrey Keating + + * doc/install.texi (Specific): Update cctools version required + for full functionality. + * config/darwin.h (LINK_SPEC): Pass -mmacosx-version-min to the + linkers as -macosx_version_min. + +2005-08-31 J"orn Rennecke + + PR target/21255 + * sh.c (print_operand, %R and %S): Add handling of floating point + registers, memory, constants and invalid operands. + +2005-08-31 Daniel Berlin + + * ipa-pure-const.c: Change dump name. + +2005-08-31 Uros Bizjak + + PR target/23570 + * config/i386/sse.md (*sse_concatv2sf): Change operand 2 constraint + to "reg_or_0_operand". + (sse2_loadld): Change operand 1 constraint to "reg_or_0_operand". + +2005-08-31 Dale Johannesen + + * loop-iv.c (iv_number_of_iterations): Fix overflow check for + loops that count down. + +2005-08-31 Richard Henderson + + PR rtl-opt/23601 + * reload1.c (reload): Set MEM_NOTRAP_P in spill slots. + (fixup_eh_region_note): New. + (reload_as_needed): Call it. + (fixup_abnormal_edges): Allow all throwing insns to be deleted; + don't call find_many_sub_basic_blocks; call verify_flow_info. + * function.c (assign_stack_local_1): Set MEM_NOTRAP_P. + (keep_stack_depressed): Likewise. + (assign_stack_temp_for_type): Likewise; use adjust_address_nv. + +2005-08-31 Richard Henderson + + * config/i386/i386.c (ix86_function_ok_for_sibcall): Fix test for + fp return matching. + +2005-08-31 Fariborz Jahanian + + * expr.c (expand_expr_real_1): Compare size of address + mode to target's address mode size in deciding expansion of + the constant address. + +2005-08-31 Richard Guenther + + PR middle-end/23477 + * expr.c (all_zeros_p): New function. + (expand_expr_real_1): Handle the case of an all-zero + non-addressable constructor separately. + +2005-08-31 Adrian Straetling + + * builtins.c: (expand_builtin_strcpy, expand_builtin_strcat): Change + arguments, adjust all callers. + (expand_builtin_strcat): Rewrite to call strcpy instead of mempcpy. + +2005-08-30 Richard Henderson + + PR target/23630 + * expr.c (expand_expr_real_1) : Use gen_lowpart + whenever the mode sizes match. + +2005-08-31 Alan Modra + + * calls.c (load_register_parameters): Fix comment typo. + * expr.c (emit_push_insn): Comment formatting. + +2005-08-30 Ian Lance Taylor + + * config/i386/x-cygwin (host-cygwin): Change dependency from + hosthooks-def.h to $(HOSTHOOKS_DEF_H). + +2005-08-29 Geoffrey Keating + + * config/i386/i386.c (ix86_expand_vector_init_one_var): Don't modify + parts of 'vals'. + +2005-08-29 Andrew Pinski + + PR middle-end/23408 + * ipa-inline.c (cgraph_decide_inlining_incrementally): Remove the + call to ggc_collect. + +2005-08-29 Paolo Bonzini + + PR bootstrap/21268 + * Makefile.in (ALL_CPPFLAGS): Include $(INCLUDES) at the + beginning. Remove $(INCLUDES) from all the rules, if following + $(ALL_CPPFLAGS) or $(BUILD_CPPFLAGS). + +2005-08-29 Jakub Jelinek + + PR middle-end/23484 + * builtins.c (fold_builtin_memory_chk, fold_builtin_stxcpy_chk, + fold_builtin_strncpy_chk, fold_builtin_snprintf_chk): If len is + not constant, but maxlen is, don't set len to maxlen, rather + set maxlen to len if len is a constant. + +2005-08-29 Zdenek Dvorak + + PR tree-optimization/23475 + * tree-ssa-loop-ivcanon.c (remove_empty_loop): Update frequencies + and counts. + +2005-08-28 Daniel Berlin + + Fix PR middle-end/22455 + + * fold-const.c (fold_checksum_tree): Adjust for now-largest tree size. + Checksum only the parts of the tree that exist for the tree code. + +2005-08-28 Dale Johannesen + + * config/i386/i386.c (nocona_cost): Increase MOVE_RATIO. + +2005-08-28 Andrew Pinski + + * tree-vrp.c: Remove obsolete comment in front of vrp_initialize. + +2005-08-28 Richard Henderson + + * stor-layout.c (finalize_type_size): Revert workaround from 08-26. + * tree.c (make_node_stat): Use BITS_PER_UNIT instead of alignment + of char_type_node. + +2005-08-28 Jakub Jelinek + + PR ada/23593 + * builtins.c (get_memory_rtx): Don't strip nops + in between COMPONENT_REFs. + +2005-08-27 Andrew Pinski + + PR middle-end/23463 + * gimplify.c (gimplify_modify_expr_rhs): Remove check for zero sized + types. + (gimplify_modify_expr): Check for zero sized types and gimplify the + rhs and lhs as statements. + +2005-08-27 John David Anglin + + PR libgcj/23508 + * pa/linux-unwind.h (pa32_fallback_frame_state): Use r0 slot in frame + state for return address column of signal frames. + +2005-08-27 David Edelsohn + + PR target/23539 + * config/rs6000/rs6000.c (expand_block_clear): Use HImode when + bytes >= 2 not bytes == 2. + (expand_block_move): Same. + +2005-08-27 Richard Guenther + + PR target/23575 + * config/i386/sse.md (sse2_movsd): Add missing closing + braces. + +2005-08-27 Paul Brook + + * genrecog.c (enum decision_type): Add DT_num_insns. + (struct decision_test): Add u.num_insns. + (add_to_sequence): Add DT_num_insns test. + (maybe_both_true_2, nodes_identical_1): Handle DT_num_insns. + (write_cond, debug_decision_2): Ditto. + (change_state): Assume peep2_next_insn never fails. + Remove "afterward" argument. + (write afterward, write_tree): Update to match. + * recog.c (peep2_current_count): New variable. + (peep2_next_insn): Check it. + (peephole2_optimize): Set peep2_current_count. + * recog.h (peep2_current_count): Declare. + +2005-08-26 Josh Conner + + PR middle-end/23584 + * ipa-pure-const.c (check_tree): Check for volatile-ness + when considering a dereference. + +2005-08-27 Jakub Jelinek + + * rtl.h (MEM_IN_STRUCT_P): Fix comment typo. + +2005-08-26 Jakub Jelinek + + PR rtl-optimization/23561 + * builtins.c (get_memory_rtx): Add LEN argument. If MEM_EXPR is + a COMPONENT_REF, remove all COMPONENT_REF from MEM_EXPR unless + at most LEN bytes long memory fits into the field. + (expand_builtin_memcpy, expand_builtin_mempcpy, expand_movstr, + expand_builtin_strncpy, expand_builtin_memset, expand_builtin_memcmp, + expand_builtin_strcmp, expand_builtin_strncmp): Adjust callers. + +2005-08-26 Richard Henderson + + PR rtl-opt/23560 + * loop.c (biased_biv_may_wrap_p): New. + (maybe_eliminate_biv_1): Use it to suppress non-equality + comparison transformations. Delete disabled code. + +2005-08-26 Ian Lance Taylor + + * combine.c (make_extraction): Avoid reference outside object. + +2005-08-26 J"orn Rennecke + + * stor-layout.c (finalize_type_size): Restore behaviour for + non-aggregate types to the status quo ante of the patch for + pr 23467. Document why it matters. + +2005-08-26 Jakub Jelinek + + PR c/23506 + * c-common.c (c_common_nodes_and_builtins): Increase builtin_types + array by one element, initialize the BT_LAST element with NULL. + +2005-08-26 David Edelsohn + + * config/rs6000/rs6000.md (eq_compare): Only enable when + optimizing for size. + (plus_eqsi): Same. + (compare_plus_eqsi): Same. + (plus_eqsi_compare): Same. + (neg_eq0): Same. + (neg_eq): Same. + + * config/rs6000/aix52.h (PROCESSOR_DEFAULT): Change to + PROCESSOR_POWER4. + +2005-08-26 Nick Clifton + + * config/v850/v850.c (ep_memory_operand): Return FALSE if + TARGET_EP is not defined. + * config/v850/c850.h (TARGET_CPU_CPP_BUILTINS): Define __EP__ if + TARGET_EP is enabled. + (OPTIMIZATION_OPTIONS): Do not define MASK_EP when optimizing. + * config/v850/v850.md (save_all_interrupt): Only use the EP + register if TARGET_EP is defined. + (restore_all_interrupt): Likewise. + * config/v850/lib1funcs.asm: Update functions so that the EP + register is only used if __EP__ is defined. + +2005-08-26 David Ung + + * config/mips/mips.c (mips_expand_prologue): Handle case when + generating for MIPS16 and the outgoing argument area is more than + SMALL_OPERAND. Use the frame pointer as temporary to generate the + add instruction. + +2005-08-26 Paul Woegerer + + * config/crx/crx.md: Make doloop_end pattern usage controllable + via mloop-nesting= command line switch. Make sure + the combiner cannot use doloop_end_ in an illegal way. + * config/crx/crx.c: Use regs up to r6 for argument passing. + Refine crx_address_cost (non cst4 displacements are expensive). + * config/crx/crx.opt: Add switch for mloop-nesting=. + +2005-08-26 Adrian Straetling + + * config/s390/s390.md: ("movstr", "*movstr"): Add patterns. + (UNSPEC_MVST): New constant. + +2005-08-26 Andreas Krebbel + + * config/s390/predicates.md ("shift_count_operand", "setmem_operand"): + Reject operands containing eliminable registers. + * testsuite/gcc.dg/20050825-1.c: New testcase. + +2005-08-24 Paolo Bonzini + Jan Hubicka + + * regmove.c (reg_is_remote_constant_p): Reorganize to not use log links. + +2005-08-24 Paolo Bonzini + + PR tree-optimization/23546 + * tree-ssa-loop-im.c (for_each_index): Handle INTEGER_CST + and REAL_CST nodes. + +2005-08-24 Pete Steinmetz + + * params.def (PARAM_MIN_SPEC_PROB): New. + * sched-rgn.c (MIN_PROBABILITY): Delete. + (compute_trg_info): Convert to PARAM_VALUE. + * doc/invoke.texi (param): Document min-spec-prob. + +2005-08-24 Fariborz Jahanian + + * config/darwin.h: define __PIC__ + * config/rs6000/darwin.h: Add SUBTARGET_OS_CPP_BUILTINS to + TARGET_OS_CPP_BUILTINS macro. + +2005-08-24 Paolo Bonzini + + * config/rs6000/rs6000.md: Fix thinko in the peephole2 I added + yesterday. + +2005-08-24 Zdenek Dvorak + + * bb-reorder.c (copy_bb, duplicate_computed_gotos): Add argument + to duplicate_block. + * cfghooks.c (duplicate_block): Added position where to place + new block as argument. + * cfghooks.h (duplicate_block): Declaration changed. + * cfglayout.c (copy_bbs): Add argument after. Pass it to + duplicate_block. + * cfglayout.h (copy_bbs): Declaration changed. + * cfgloop.h (loop_version): Declaration changed. + * cfgloopmanip.c (duplicate_loop_to_header_edge): Pass + position to copy_bbs. + (loop_version): Pass position to duplicate_loop_to_header_edge. + Add place_after argument and position new blocks according to + it. + * modulo-sched.c (sms_schedule): Pass place_after argument + to loop_version. + * tracer.c (tail_duplicate): Pass argument to duplicate_block. + * tree-cfg.c (split_edge_bb_loc): New function. + (tree_split_edge, tree_duplicate_sese_region): Use split_edge_bb_loc + to determine position of new blocks. + * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Pass argument + to loop_version. + * tree-ssa-threadupdate.c (create_block_for_threading): Pass + argument to duplicate_block. + * tree-vectorizer.c (slpeel_tree_duplicate_loop_to_edge_cfg): + Pass position to copy_bbs. + +2005-08-24 Zdenek Dvorak + + * fold-const.c (ptr_difference_const): Use + cst_and_fits_in_hwi instead of host_integerp. + +2005-08-24 Paolo Bonzini + + * config/darwin.c (gen_pic_offset): New. + (machopic_indirect_data_reference, machopic_legitimize_pic_address): + Use it. + +2005-08-23 Zdenek Dvorak + + PR tree-optimization/23486 + * tree-ssa-loop.c (pass_scev_cprop): Add TODO_update_ssa_only_virtuals. + +2005-08-23 Phil Edwards + + * config.gcc (*-*-vxworks*): Update tm_file, add extra_options, + remove use_collect2. + (powerpc-wrs-vxworks): Update, split out *-*-vxworksae target. + + * target-def.h (TARGET_HAVE_CTORS_DTORS): Allow target + configuration files to override the default value. + + * config/t-vxworks: Remove INSTALL_ASSERT_H. Define STMP_FIXPROTO, + EXTRA_HEADERS, and EXTRA_MULTILIB_PARTS. + * config/vx-common.h: New file, split out from... + * config/vxworks.h: here. Update for VxWorks 6.x and RTP mode. + * config/vxworksae.h: New file, for VxWorks AE. + * config/vxworks.opt: New file. + * config/vxlib.c: Update for VxWorks 6. + + * config/rs6000/t-vxworks (MULTILIB_OPTIONS): New list. Adjust + other MULTILIB_* variables appropriately. + (LIB2FUNCS_EXTRA, EXTRA_MULTILIB_PARTS): Correct from t-ppccomm. + * config/rs6000/t-vxworksae: New file, adjust multilibs for AE. + * config/rs6000/vxworks.h: Update for VxWorks 6. + * config/rs6000/vxworksae.h: New file, mostly placeholder for now. + +2005-08-23 Andrew Pinski + + PR target/20799 + * config/darwin.c (machopic_select_section): Remove the hack to + mark "::operator new" and "::operator delete" for coalescing + even though they are not weak. + +2005-08-24 Alan Modra + + * configure.ac (HAVE_LD_NO_DOT_SYMS): Set for powerpc-linux biarch. + * configure: Regenerate. + +2005-08-23 Paolo Bonzini + + PR middle-end/23517 + * fold-const.c (fold_convert): Use VIEW_CONVERT_EXPR to convert + between vectors. + * convert.c (convert_to_integer, convert_to_vector): Likewise. + * tree-vect-generic.c (tree_vec_extract, expand_vector_operations_1): + Likewise. + +2005-08-23 Paolo Bonzini + + * config/rs6000/predicates.md (equality_operator): New. + * config/rs6000/rs6000.md: Rewrite as a peephole2 the split for + comparison with a large constant. + +2005-08-23 Mark Mitchell + + * hwint.h (HOST_WIDE_INT_PRINT): Use HOST_LONG_LONG_FORMAT. + +2005-08-23 J"orn Rennecke + + * sh.c (sh_builtin_saveregs): If the number of to-be-saved fp + registers is even, and we have a hardware double precision fp, + align the buffer. + (sh_gimplify_va_arg_expr): For floating point arguments, consider + size of current argument when checking if argument was passed in + registers. + + * sh.c (sh_attr_renesas_p): Handle error_mark_node. + + PR middle-end/23467 + * stor-layout.c (finalize_type_size): Dont override + existing alignment with a smaller alignment from the mode. + +2005-08-23 Sebastian Pop + + * lambda-code.c (lambda_vector_lexico_pos): Moved... + * lambda.h (lambda_vector_lexico_pos): ... here. + * tree-data-ref.c (build_classic_dist_vector): Return false when + the distance vector is lexicographically negative. + +2005-08-23 Sebastian Pop + + PR tree-optimization/23511 + * tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined): Don't + handle cases where TYPE_MIN_VALUE or TYPE_MAX_VALUE are NULL_TREE. + +2005-08-23 Jakub Jelinek + + PR tree-optimization/22043 + * tree.h (count_type_elements): Add ALLOW_FLEXARR argument. + * expr.c (count_type_elements): Add ALLOW_FLEXARR argument. + If ALLOW_FLEXARR, handle types ending with flexible array member. + Pass false as second argument to recursive count_type_elements calls. + (categorize_ctor_elements_1, mostly_zeros_p): Pass false as second + argument to count_type_elements call. + * tree-sra.c (decide_block_copy): Likewise. + * gimplify.c (gimplify_init_constructor): If num_type_elements < 0 + for a constant-sized object, set cleared as well. Pass true as + second argument to count_type_elements call. + +2005-08-23 Alan Modra + + PR target/21571 + * config/rs6000/rs6000.c (rs6000_legitimate_small_data_p): Rename + from legitimate_small_data_p, and make global. Update use. + Remove forward declaration. + * config/rs6000/rs6000-protos.h (rs6000_legitimate_small_data_p): + Declare. + * config/rs6000/rs6000.md (movdf_hardfloat32): Allow small data mems. + +2005-08-23 David Edelsohn + + * config/rs6000/rs6000.md (eq): Use output operand instead + of scratch intermediates. + (eq_compare): Same. + (neg_eq0): New. + (neg_eq): Convert to define_insn_and_split. + +2005-08-23 Alan Modra + + PR target/23070 + * config/rs6000/rs6000.c (function_arg): For ABI_V4 calls to + stdarg functions, set/clear the fp marker even when no variable + args are passed. + * config/rs6000/sysv4.opt (mprototype): Describe. + +2005-08-22 Jakub Jelinek + + PR rtl-optimization/23478 + * regs.h (reg_info): Add throw_calls_crossed. + (REG_N_THROWING_CALLS_CROSSED): Define. + * flow.c (allocate_reg_life_data): Initialize + REG_N_THROWING_CALLS_CROSSED. + (propagate_one_insn, attempt_auto_inc): Update + REG_N_THROWING_CALLS_CROSSED. + * global.c (global_alloc): Don't allocate pseudos across + calls that may throw. + +2005-08-22 Andrew Pinski + + PR c/18715 + * c-common.c (c_do_switch_warnings): Look for a node where the enum's + value is inbetween the range if we did not find an exact match. + +2005-08-22 Aldy Hernandez + + * doc/invoke.texi (Option Summary): Add ms1 options. + * doc/extend.texi: Document interrupt handler attribute for ms1. + * doc/md.texi: Document ms1 constraints. + * config.gcc: Add ms1-*-elf. + * config/ms1/ms1.h: New. + * config/ms1/ms1.c: New. + * config/ms1/ms1.md: New. + * config/ms1/ms1-protos.h: New. + * config/ms1/ABI.txt: New. + * config/ms1/crti.asm: New. + * config/ms1/crtn.asm: New. + * config/ms1/lib2extra-funcs.c: New. + * config/ms1/t-ms1: New. + * config/ms1/ms1.opt: New. + +2005-08-22 Ira Rosen + + * config/rs6000/altivec.md (xorv4sf3): New. + (negv4sf2, neg2): Likewise. + +2005-08-21 H.J. Lu + + PR target/23485 + * config/ia64/ia64.md (divsi3): Check divide by zero. + (udivsi3): Likewise. + (divdi3): Likewise. + (udivdi3): Likewise. + +2005-08-21 Jakub Jelinek + + * simplify-rtx.c (simplify_immed_subreg) : Only clear + up to elem_bitsize bits, not max_bitsize. + +2005-08-21 Sebastian Pop + + PR tree-optimization/23433 + * tree-chrec.c (chrec_apply): Translate INTEGER_CST to a + REAL_CST when the type is SCALAR_FLOAT_TYPE_P. + +2005-08-21 Sebastian Pop + + PR tree-optimization/23434 + * tree-ssa-loop-niter.c (proved_non_wrapping_p): Give up when + the iteration bound is not an INTEGER_CST. + +2005-08-21 Dorit Nuzman + + * tree-vect-transform.c (get_initial_def_for_reduction): Set + need_epilog_adjust back to false for MIN/MAX case. Set *scalar_def to + NULL if need_epilog_adjust is false. + (vect_create_epilog_for_reduction): Variable adjust_in_epilog removed. + Case 3 always peels first itration, not just for PLUS case, and no need + to use scalar_initial_def here. Create an epilog adjustment only if + scalar_initial_def is not NULL. + + (vectorizable_reduction): Remove assert. + +2005-08-20 H.J. Lu + + PR target/23485 + * config/ia64/lib1funcs.asm (__divdi3): Check divide by zero. + (__moddi3): Likewise. + (__udivdi3): Likewise. + (__umoddi3): Likewise. + (__divsi3): Likewise. + (__modsi3): Likewise. + (__udivsi3): Likewise. + (__umodsi3): Likewise. + +2005-08-20 Jakub Jelinek + + * tree-pass.h (TDF_GRAPH): Define. + * tree-dump.c (dump_options): Don't set TDF_GRAPH in "all". + * passes.c (finish_optimization_passes): Only call + finish_graph_dump_file if TDF_GRAPH is set. + (execute_one_pass): Only call clean_graph_dump_file if dump_file != + NULL. Set TDF_GRAPH bit. + (execute_todo): Call print_rtl_graph_with_bb if TDF_GRAPH is set. + +2005-08-20 Richard Earnshaw + + * arm.h (arm_stack_offsets): Add locals_base field. + * arm.c (arm_get_frame_offsets): Compute it. + (thumb_compute_initial_elimination offset): Make the Thumb frame + pointer point to the base of the local variables. + (thumb_expand_prologue): Update accordingly. + (thumb_expand_epilogue): Likewise. + + * arm.md (thumb_movhi_clobber): Make this insn a define_expand. Change + mode of clobbered scratch to DImode. Handle a case that's known to + need this. + +2005-08-19 David Edelsohn + + * config/rs6000/rs6000.md (gt0): Delete. + (gt0_compare): Delete. + (neg_gt0): Delete. + +2005-08-19 Eric Christopher + + * optabs.h: Change CTI_ to COI_. + * optabs.c: Ditto. + +2005-08-19 James E Wilson + + * builtins.c (expand_builtin_return_addr): Set + current_function_accesses_prior_frames when count != 0. Use + frame_pointer_rtx when count == 0. + * function.h (struct function): Add accesses_prior_frames field. + (current_function_accesses_prior_frames): Define. + * reload1.c (init_elim_table): Check + current_function_accesses_prior_frames. + * doc/tm.texi (INITIAL_FRAME_ADDRESS_RTX): Update docs. + +2005-08-19 Diego Novillo + + * tree-cfgcleanup.c (cleanup_tree_cfg): Fix flowgraph change + indicator. Return true if the flowgraph changed during + cleanup. + +2005-08-19 Diego Novillo + + PR 23476 + * tree-cfgcleanup.c (cleanup_control_expr_graph): Fold the + conditional expression before testing its value. + +2005-08-19 Diego Novillo + + * doc/invoke.texi: Fix documentation for -ftree-dominator-opts. + +2005-08-19 Devang Patel + + PR tree-optimization/23048 + * tree-if-conv.c (if_convertible_bb_p): Supply basic_block as + third parameter. Check whether latch is dominated by exit + block or not. + (if_convertible_loop_p): Supply exit block itself to + if_convertible_bb_p. + +2005-08-19 Richard Earnshaw + + PR target/23473 + * arm.md (arm_load_pic_register): Change argument to the mask of + saved registers. Call thumb_find_work_register if we need a + scratch register on Thumb. + (arm_expand_prologue): Pass empty register set to + arm_load_pic_register. + (thumb_expand_prologue): Pass live_regs_mask directly to + arm_load_pic_register. + * arm-protos.h (arm_load_pic_register): Update prototype. + +2005-08-19 J"orn Rennecke + + * sh.c (find_sole_member): New function. + (sh_gimplify_va_arg_expr): Use it. Allow RECORD_TYPE mode mismatch + if the record's alignment is larger than the size of its only member. + +2005-08-19 Richard Earnshaw + + PR target/23436 + * arm.c (thumb_legitimize_reload_address): New function. + * arm-protos.h (thumb_legitimize_reload_address): Add prototype. + * arm.h (THUMB_LEGITIMIZE_RELOAD_ADDRESS): Call it. + +2005-08-19 Paul Woegerer + + * config/crx/crx.c: Implement crx_decompose_address. Reject + symbolic displacements since CRX register relative adressing + mode can't handle unsigned 32-bit values as displacements. + * config/crx/crx.h: Simplify definitions, remove redundant + parenthesis and obsolete macros. + * config/crx/crx.opt: Add new switch for debugging addresses. + * config/crx/crx-protos.h: Add new declarations for above. + +2005-08-19 Andrew Pinski + + PR middle-end/20624 + * gimple-low.c (block_may_fallthru): Handle CLEANUP_POINT_EXPR by + looking past it. + +2005-08-18 Kaveh R. Ghazi + + * collect2.c (dup2): Delete. + * configure.ac: Don't check for dup2. + + * config.in, configure: Regenerate. + +2005-08-18 J"orn Rennecke + + * sh.c (sh_gimplify_va_arg_expr): Loop to substitute a RECORD_TYPE + record with the type of its only member. + +2005-08-18 David Edelsohn + + * config/rs6000/rs6000.md (ltu_compare): Convert to + define_insn_and_split. + (plus_ltu_compare): Same. + (gtu_compare): Same. + (plus_gtu_compare): Same. + +2005-08-18 Dorit Nuzman + + PR tree-optimization/22228 + * tree-ssa-loop (pass_vectorize): Add TODO_verify_loops to + todo_flags_start. + * tree-vect-transform.c (vect_transform_loop): Mark the variables that + are recorded in vect_vnames_to_rename for renaming. + * tree-vectorizer.c (vect_vnames_to_rename): New global bitmap. + (slpeel_update_phi_nodes_for_guard1): Record virtual vars for renaming + in vect_vnames_to_rename. + (vectorize_loops): Allocate and free the vect_vnames_to_rename bitmap. + * tree-vectorizer.h (vect_vnames_to_rename): New extern variable. + +2005-08-18 Jan Hubicka + + PR c++/22034 + * cgraphunit.c (cgraph_varpool_assemble_pending_decls): Emit debug + info only for local statics, not for member variables. + +2005-08-18 Volker Reichelt + + * tree-data-ref.c (analyze_siv_subscript_cst_affine): Fix comment typo. + +2005-08-18 Volker Reichelt + + * c-typeck.c (designator_errorneous): Rename to designator_erroneous. + +2005-08-18 Andrew Pinski + + PR middle-end/16045 + * builtins.c (fold_builtin): Create a new NOP_EXPR all the time. + +2005-08-17 James E Wilson + + * c-decl.c (grokdeclarator): Use TYPE_SIZE_UNIT not TYPE_SIZE in + array size check. + +2005-08-17 David Edelsohn + + * config/rs6000/rs6000.md (leu): Convert to mode macro. + (leu_compare): Same. + (plus_leu): Same. + (neg_leu): Same. + (and_neg_leu_compare): Same. + (plus_ltu): Same. + (geu): Same. + (geu_compare): Same. + (plus_geu): Same. + (neg_geu): Same. + (and_neg_geu): Same. + (plus_gt): Same. + (gtu_compare): Same. + (plus_gtu): Same. + +2005-08-17 Erik Christiansen + + * config/v850/lib1funcs.asm (callt_save_interrupt): Fix comment typos. + Move call_table_data to end. Delete spurious .text. + (callt_save_all_interrupt): Fix comment typo. + +2005-08-17 James E Wilson + Kevin Winchester + + PR target/21684 + * config/mcore/mcore.h (SHIFT_COUNT_TRUNCATED): Define to 0. + +2005-08-17 Uros Bizjak + + PR target/23268 + * config/i386/i386.md ("*fist2_1"): New pattern. + ("lrint2"): Change expander to use "*fist2_1" pattern. + +2005-08-17 J"orn Rennecke + + * sh.c (sh_gimplify_va_arg_expr): Don't substitute a RECORD_TYPE + record with the type of its only member if the modes don't match. + + * varasm.c (decode_reg_name): Skip empty additional register names. + +2005-08-16 Zdenek Dvorak + + * tree-ssa-loop-im.c (MAX_LSM_NAME_LENGTH, lsm_tmp_name, + lsm_tmp_name_length): New. + (lsm_tmp_name_add, gen_lsm_tmp_name, get_lsm_tmp_name): New functions. + (schedule_sm): Use get_lsm_tmp_name instead of "lsm_tmp". + +2005-08-16 Ulrich Weigand + Andreas Krebbel + + * config.gcc: Added z9-109 switch. + * config/s390/2084.md ("x_int", "x_agen", "x_lr", "x_la", "x_larl", + "x_load", "x_store", "x_branch", "x_call", "x_mul_hi", "x_mul_sidi", + "x_div", "x_sem", "x_cs", "x_vs", "x_stm", "x_lm", "x_other", + "x_fsimpdf", "x_fsimpsf", "x_fdivdf", "x_fdivsf", "x_floaddf", + "x_floadsf", "x_fstore_df", "x_fstoresf", "x_ftoi", "x_itof"): Enable + for "z9_109" cpu attribute. + * config/s390/s390.c (z9_109_cost): New processor cost structure. + (CONST_OK_FOR_Os, CONST_OK_FOR_Op, CONST_OK_FOR_On): New macros. + (s390_handle_arch_option): Added z9-109 switch. + (override_options): Set respective cost function for z9-109. + (s390_const_ok_for_constraint_p): New constraints Os, Op, On. + (legitimate_reload_constant_p): Accept extended immediates. + (print_operand): Three new output modifiers added: k, m and o. + (s390_adjust_priority, s390_issue_rate): Handle Z9_109 like Z990. + (s390_output_mi_thunk): Use extended immediate when possible. + * config/s390/s390.h (processor_flags): Added PF_EXTIMM. + (TARGET_CPU_EXTIMM, TARGET_EXTIMM): New macros. + (CONSTRAINT_LEN): Added length of O constraint. + (CLZ_DEFINED_VALUE_AT_ZERO): Definition added. + * config/s390/s390.md ("cpu"): New value z9_109 added. + ("*tstdi_extimm", "*tstdi_ccconly_extimm", "*tstsi_extimm", + "*tstsi_cconly_extimm", "*movdi_64extimm", "*extendhidi2_extimm", + "*extendqidi2_extimm", "*extendhisi2_extimm", "*extendqisi2_extimm", + "*zero_extendsi2_extimm", "*anddi3_extimm", "*iordi3_extimm", + "*xordi3_extimm", "clzdi2", "clztidi2"): New patterns. + ("*tstdi", "*tstsi", "*movdi_64", "*extendhisi2", "*extendqisi2", + "*zero_extendsi2_64", "zero_extendqihi2", "*zero_extendqihi2_64", + "*anddi3", "*iordi3", "*xordi3"): Disable for TARGET_EXTIMM. + ("*cmpdi_cct", "*cmpsi_cct", "*cmpdi_ccs", "*cmpsi_ccs", "*cmpdi_ccu", + "*cmpsi_ccu", "*movsi_zarch", "*adddi3_imm_cc", "*adddi3_carry1_cc", + "*adddi3_carry2_cc", "*adddi3_cc", "*adddi3_64", "*addsi3_imm_cc", + "*addsi3_carry1_cc", "*addsi3_carry2_cc", "*addsi3_cc", "addsi3", + "*andsi3_cc", "*andsi3_cconly", "*andsi3_zarch", "*iorsi3_cc", + "*iorsi3_cconly", "*iorsi3_zarch", "*xorsi3_cc", "*xorsi3_cconly", + "*xorsi3", "*xorhi3", "*xorqi3"): Added instruction using extended + immediates. + ("extenddi2", "extendsi2", "zero_extenddi2", + "zero_extendsi2"): Allow memory operands and don't manually emit + insns for TARGET_EXTIMM. + +2005-08-17 Andreas Krebbel + + * testsuite/gcc.dg/20020926-1.c: Added "-mesa" to dg-options. + +2005-08-17 Nick Clifton + + * config/stormy16/stormy16.c (xstormy16_encode_section_info): + Call default_encode_section_info. + +2005-08-17 Steven Bosscher + + PR tree-optimization/21574 + * tree-ssa-ccp.c (likely_value): If the right hand side is a + constant, return CONSTANT. + (ccp_lattice_meet): Use operand_equal_p instead of simple_cst_equal. + (ccp_fold, visit_assignment): Likewise. + (evaluate_stmt): Handle UNDEFINED and UNKNOWN_VAL the same way. + +2005-08-16 James A. Morrison + + * c-typeck.c (build_function_call): Call fold_buildN_initializer or + fold_buildN instead of buildN then fold_initializer or fold. + (build_unary_op): Likewise. + (build_binary_op): Likewise. + * fold-const.c (fold_initializer): Remove. + (fold_build1_initializer): New function. + (fold_build2_initializer): New function. + (fold_build3_initializer): New function. + * tree.h (fold_initializer): Remove. + (fold_build1_initializer): New function. + (fold_build2_initializer): New function. + (fold_build3_initializer): New function. + +2005-08-16 James A. Morrison + + * fold-const.c (optimize_bit_field_compare): Remove extra fold call. + (try_move_mult_to_index): Call fold_build2 instead of build2. + (fold_binary): Don't call fold after calls to try_move_mult_to_index. + * tree-ssa-loop-niter.c (inverse): Call int_const_binop instead of + fold_binary_to_constant. + (infer_loop_bounds_from_undefined): Call fold_build2 instead of + fold (build. + * tree-data-ref.c (tree_fold_divides_p): Use tree_int_cst_equal to + check if A == gcd (A, B). Remove TYPE argument. + (analyze_offset) Use fold_build2 instead of fold (build. + (create_data_ref): Likewise. + (analyze_siv_subscript_cst_affine): Update calls to tree_fold_divides_p. + * tree-ssa-ccp.c (widen_bitfield): Call fold_build2 instead of build2 + then fold. + +2005-08-17 Kelley Cook + + * config/arm/unaligned-funcs.c,config/i386/crtfastmath.c, + ipa-cp.c,ipa-prop.c,ipa-prop.h: Update FSF address. + +2005-08-16 Andrew Pinski + + PR tree-opt/23402 + * gimplify.c (zero_sized_type): New function. + (gimplify_modify_expr_rhs): If we have a zero sized type, + replace the statement with an empty statement. + +2005-08-16 H.J. Lu + + * config/i386/crtfastmath.c (set_fast_math): Add "=m" for + fxsave. + +2005-08-16 Ian Lance Taylor + + * doc/tm.texi (Label Output): Correct typo. + +2005-08-16 Steven Bosscher + + PR target/23376 + * loop-unroll.c (analyze_insn_to_expand_var): Make sure that + force_operand will work later on using have_insn_for. + +2005-08-16 Volker Reichelt + + * fold-const.c (tree_expr_nonnegative_p): Regroup cases. + +2005-08-16 Ian Lance Taylor + + PR c++/23337 + * gimplify.c (gimplify_init_ctor_eval): If we see an element of + vector type, don't try to construct it element by element. Add an + assertion that we use a FIELD_DECL when building a COMPONENT_REF. + +2005-08-16 Volker Reichelt + + * fold-const.c (fold_ternary): Simplify folding of a CALL_EXPR. + +2005-08-16 Geoffrey Keating + + * doc/invoke.texi (Precompiled Headers): Document some more options + which are known to be safe. + +2005-08-16 James E Wilson + + PR tree-optimization/21105 + * c-decl.c (grokdeclarator): Use TYPE_SIZE_UNIT not TYPE_SIZE in + TREE_OVERFLOW check. + +2005-08-16 David Edelsohn + + * config/rs6000/rs6000.md (ltu): Convert to mode macro. + (neg_ltu): Same. + (gtu): Same. + (neg_gtu): Same. + +2005-08-16 Volker Reichelt + + * builtins.c (expand_builtin_strcat): Remove superfluous call to fold. + (fold_builtin_isdigit): Use fold_buildN. + (build_function_call_expr): Likewise. + * c-typeck.c (c_finish_loop): Likewise. + +2005-08-16 J"orn Rennecke + Richard Shann + + PR middle-end/20396: + * optabs.c (expand_binop): Take TRULY_NOOP_TRUNCATION into account. + +2005-08-16 Sebastian Pop + + * tree-ssa-loop-niter.c (scev_probably_wraps_p): Reword a comment. + +2005-08-15 Richard Earnshaw + + PR target/23355 + * arm.c (thumb_compute_save_reg_mask): Use similar logic to + arm_compure_save_reg0_reg12_mask to determine when the PIC register + must be saved. + +2005-08-15 John David Anglin + + PR middle-end/23369 + * fold-const.c (build_range_check): Disable optimization for function + pointer expressions on targets that require function pointer + canonicalization. + +2005-08-15 Ulrich Weigand + + * simplify-rtx.c (simplify_const_relational_operation): When + extracting arguments of a COMPARE, recompute the mode as well. + +2005-08-15 Ian Lance Taylor + + * tree.c (build_string): Mark tree CONSTANT and INVARIANT. + +2005-08-15 DJ Delorie + + * config/m32c/mov.md (movqi_op): Immediates can't be moved to + the stack. + (movsi_splittable): Allow, but split, moves to the stack. + * config/m32c/m32c.c (m32c_split_move): Always split moves to the + stack. + +2005-08-15 Kaveh R. Ghazi + + * aclocal.m4 (gcc_AC_FUNC_PRINTF_PTR): Delete. + * configure.ac: Don't call gcc_AC_FUNC_PRINTF_PTR. + * system.h (HOST_PTR_PRINTF): Don't define, poison it. + + * bitmap.c, c-decl.c, config/i386/i386-interix.h, + config/iq2000/iq2000.c, mips-tfile.c, print-rtl.c, print-tree.c: + Delete HOST_PTR_PRINTF. + + * configure, config.in: Regenerate. + +2005-08-15 David Edelsohn + + * config/rs6000/rs6000.md (QHSI): New mode macro. + (wd): Extend mode attr for QImode and HImode + (dbits): New mode attr. + (zero_extenddi2): Convert to mode macro. + +2005-08-15 Steve Ellcey + + PR target/21841 + * doc/invoke.texi (-mgnu-ld): Update description. + (-mhp-ld): Ditto. + +2005-08-15 Sebastian Pop + + PR 23391 + * Makefile.in (tree-chrec.o): Depends on real.h. + * tree-chrec.c: Include real.h. + (chrec_fold_plus_poly_poly, chrec_fold_multiply_poly_poly, + chrec_fold_plus_1): Use build_real for SCALAR_FLOAT_TYPE_P. + * tree-scalar-evolution.c (add_to_evolution_1, + interpret_rhs_modify_expr): Ditto. + +2005-08-15 Sebastian Pop + + PR 23386 + * tree-data-ref.c (estimate_niter_from_size_of_data): When + step is negative compute the estimation from init downwards to zero. + +2005-08-14 James A. Morrison + + * fold-const (fold_binary): Call fold_build2 instead of fold (build. + +2005-08-14 Ulrich Weigand + + * config/s390/s390.c (s390_const_ok_for_constraint_p): Add 'P' + constraint. + (legitimate_reload_constant_p): Fix handling of lliXX operands. + Accept double-word constants that can be split. + * config/s390/s390.md ("movti"): Use 'P' constraint. + ("*movdi_31", "*movdf_31"): Likewise. + +2005-08-14 Daniel Berlin + + Fix PR tree-optimization/22615 + + * tree-ssa-structalias.c (solution_set_add): Handle + first_vi_for_offset returning NULL. + (do_da_constraint): Ditto. + (do_sd_constraint): Ditto. + (do_ds_constraint): Ditto + (find_func_aliases): Ditto. + (build_constraint_graph): RHS is allowed be ANYTHING. + (first_vi_for_offset): Return NULL if we couldn't find anything at + the offset. + +2005-08-14 Ulrich Weigand + + * config/s390/s390.c (s390_canonicalize_comparison): Prefer register + over memory as first operand. + +2005-08-14 H.J. Lu + + PR target/23360 + * config/i386/crtfastmath.c (set_fast_math): Check if DAZ is + available for setting it. + +2005-08-14 Ira Rosen + + PR tree-optimization/23320 + * tree-data-ref.c (base_addr_differ_p): Add comment. Check + data-refs' types instead of base object nullness. Add check for + pointer type data-refs before first location comparison. Remove + assert. + +2005-08-14 Andreas Schwab + + * doc/md.texi (Machine Constraints): Fix misplaced @end table. + +2005-08-13 James E Wilson + + * doc/cpp.texi (__SSP__, __SSP_ALL__): Document. + * doc/invoke.texi (-Wstack-protector, -fstack-protector, + -fstack-protector-all, --param ssp-buffer-size): Document. + (-Wvariadic-macros): Alphabetize. + (-fsched-stalled-insns-dep): Add missing 'f'. + + * c-cppbuiltin.c (c_cpp_builtins): Add comment for flag_stack_protect + macros. + +2005-08-13 David Edelsohn + + * config/rs6000/rs6000.h (EXTRA_CONSTRAINT): Add 'a' for indexed + or indirect address operand. + (EXTRA_ADDRESS_CONSTRAINT): New. + * config/rs6000/rs6000.md (prefetch): Change constraint "p" to "a". + +2005-08-13 Sebastian Pop + + PR tree-optimization/22236 + * tree-cfg.c (print_pred_bbs, print_succ_bbs): Correctly print + successors and predecessors. + * tree-chrec.c (chrec_convert): Before converting, check that + sequences don't wrap. + * tree-data-ref.c (compute_estimated_nb_iterations): Moved ... + (analyze_array): Extern. + (find_data_references_in_loop): Remove call to + compute_estimated_nb_iterations. + * tree-data-ref.h (analyze_array): Declared. + * tree-flow-inline.h (single_ssa_tree_operand, single_ssa_use_operand, + single_ssa_def_operand, zero_ssa_operands): Fix documentation. + * tree-flow.h (scev_probably_wraps_p): Declare with an extra parameter. + * tree-scalar-evolution.c (instantiate_parameters_1): Factor entry + condition. + * tree-ssa-loop-ivcanon.c: Fix documentation. + * tree-ssa-loop-ivopts.c (idx_find_step): Add a fixme note. + * tree-ssa-loop-niter.c (compute_estimated_nb_iterations): ... here. + (infer_loop_bounds_from_undefined): New. + (estimate_numbers_of_iterations_loop): Use + infer_loop_bounds_from_undefined. + (used_in_pointer_arithmetic_p): New. + (scev_probably_wraps_p): Pass an extra parameter. Call + used_in_pointer_arithmetic_p. Check that AT_STMT is not null. + (convert_step): Fix documentation. + * tree-vrp.c (adjust_range_with_scev): Call instantiate_parameters. + Use initial_condition_in_loop_num and evolution_part_in_loop_num + instead of CHREC_LEFT and CHREC_RIGHT. Adjust the call to + scev_probably_wraps_p. + +2005-08-13 Ulrich Weigand + + * config/s390/s390.c (s390_split_branches): Revert 2005-08-12 change. + (s390_register_info): Ignore clobbered_regs information for fixed + registers, and only fixed registers. + (s390_init_frame_layout): Remove redundant call. + +2005-08-12 Gerald Pfeifer + + * doc/invoke.texi (C++ Dialect Options): Add dynamic_cast to + description of -Wold-style-casts. + +2005-08-12 Andreas Krebbel + Jakub Jelinek + + * config/s390/linux.h (TARGET_THREAD_SSP_OFFSET): Define. + * config/s390/s390-protos.h (s390_get_thread_pointer): Prototype added. + * config/s390/s390.c (print_operand): New output modifier 'G' added. + (get_thread_pointer): Renamed to s390_get_thread_pointer. + * config/s390/s390.md (stack_protect_set, stack_protect_test): If + TARGET_THREAD_SSP_OFFSET is defined, change operands[1] to + (MEM:P (PLUS:P (tp, TARGET_THREAD_SSP_OFFSET))). + (UNSPEC_SP_SET, UNSPEC_SP_TEST): New constants. + ("stack_protect_set", "stack_protect_test"): New expanders. + ("stack_protect_setsi", "stack_protect_setdi", "stack_protect_testsi", + "stack_protect_testdi"): New insn definitions. + +2005-08-12 Andreas Krebbel + + * config/s390/s390.md ("*movdf_31"): Changed constraint from P to K. + +2005-08-12 Paul Brook + + * config/arm/lib1funcs.asm: Error if __ARM_ARCH__ not set. + +2005-08-12 Andreas Krebbel + + * config/s390/predicates.md (setmem_operand): New predicate. + (shift_count_operand): Accept ANDs with special constants as + operand. + * config/s390/s390.c (print_shift_count_operand): Skip ANDs + with special constants. + * config/s390/s390.md ("setmem_long", "*setmem_long"): Replaced + shift_count_operand with setmem_operand. + +2005-08-12 Andreas Krebbel + + * config/s390/s390.c (s390_extract_part, s390_single_part): + Type cast added. + (s390_const_ok_for_constraint_p): Added SImode to the N constraint. + (s390_output_mi_thunk): Don't use lg on 31 bit. + * config/s390/s390.md ("*movdi_31", "*movdf_31"): Added lmy and stmy. + ("*llgt_sisi" and splitter): Replaced TARGET_64BIT with TARGET_ZARCH. + +2005-08-12 Andreas Krebbel + + * config/s390/s390.c (CONST_OK_FOR_J, CONST_OK_FOR_K): New macros. + (s390_select_ccmode, s390_rtx_costs, legitimate_reload_constant_p, + s390_init_frame_layout, s390_emit_prologue, s390_emit_epilogue, + s390_output_mi_thunk): Replaced uses of CONST_OK_FOR_CONSTRAINT_P + with one of the new macros. + +2005-08-12 Andreas Krebbel + + * config/s390/s390.c (s390_split_branches, s390_init_frame_layout): + Don't set save_return_addr_p. + (s390_register_info): Make clobbered_regs not depending on + save_return_addr_p. + +2005-08-12 Kaz Kojima + + * gcc.c (LINK_SSP_SPEC): Remove space before a trailing }. + (LINK_COMMAND_SPEC): Add space after %(link_ssp). + +2005-08-11 James E. Wilson + + * config/ia64/ia64.h (EXTRA_MEMORY_CONSTRAINT): New. + +2005-08-11 Jakub Jelinek + + * dwarf2out.c (add_location_or_const_value_attribute): Prefer + locations gathered by var-tracking in single entry loc_list + over loc_descriptor_from_tree. + + * dwarf2out.c (concat_loc_descriptor): Add can_use_fbreg argument, + pass it down to loc_descriptor. + (loc_descriptor): Pass can_use_fbreg to concat_loc_descriptor. + (containing_function_has_frame_base): Move earlier in the file. + (loc_descriptor_from_tree_1): Use containing_function_has_frame_base + instead of always assuming fbreg can't be used. + +2005-08-11 David Edelsohn + + * config/rs6000/altivec.md: Change constraint "m" to "Z". + * config/rs6000/predicates.md (indexed_or_indirect_operand): + Accept address wrapped in AND for Altivec. + * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): + Strip AND wrapping offset address for Altivec. + +2005-08-11 Richard Henderson + + PR middle-end/23312 + * gimplify.c (gimplify_one_sizepos): Check for INTEGER_TYPE + before using TYPE_IS_SIZETYPE. + +2005-08-11 Richard Henderson + + PR target/22225 + * config/alpha/alpha.c (alphaev4_insn_pipe): Add take pipes for + insn types not present on ev4. + (alphaev5_insn_pipe): Similarly. + +2005-08-11 Richard Earnshaw + + PR target/23250 + * arm.c (arm_override_options): If the user has selected callee-super- + interworking, then enable normal interworking. + +2005-08-11 Rainer Orth + + * config/i386/x86-64.h (ASM_OUTPUT_ALIGNED_BSS): Undef before + redefinition. + +2005-08-11 Wu Zhou + + * doc/rtl.texi: Fix two typos. + +2005-08-11 Richard Guenther + + PR target/23289 + * config/i386/i386.c (ix86_function_ok_for_sibcall): Handle + cases where we call to/from functions returning void. + +2005-08-10 James A. Morrison + + PR c++/23225 + * tree.c (build_pointer_type_for_mode): Robustify. + +2005-08-10 James E Wilson + + * defaults.h, config/alpha/alpha.h, config/ia64/ia64.h + (ASM_OUTPUT_ADDR_VEC_ELT): Delete. + + * config/alpha/alpha.c (alpha_arg_partial_bytes): Change "(CUM)." to + "cum->". + +2005-08-10 Eric Christopher + + * config/rs6000/rs6000.c (mems_ok_for_quad_peep): Rewrite. + * config/rs6000/rs6000.md (*lfq_power2, *stfq_power2): Use + V2DFmode. + +2005-08-10 Andrew Pinski + + PR target/21887 + * config/darwin.c (machopic_indirect_data_reference): Use a new register + for the high part when generating dynamic-no-pic code. + +2005-08-10 H.J. Lu + + * config.gcc (i[34567]86-*-linux*): Add i386/t-crtfm to tm-file. + (x86_64-*-linux*): Likewise. + + * config/i386/crtfastmath.c: New file. + * config/i386/t-crtfm: Likewise. + + * config/i386/linux.h (ENDFILE_SPEC): New. + * config/i386/linux64.h (ENDFILE_SPEC): Likewise. + + * config/i386/t-linux64 (EXTRA_MULTILIB_PARTS): Add + crtfastmath.o. + +2005-08-10 Dorit Nuzman + + * doc/md.texi: (reduc_smin, reduc_umin, reduc_splus, reduc_uplus): + (vec_shl, vec_shr): Document new operations. + * tree.def (VEC_RSHIFT_EXPR, VEC_LSHIFT_EXPR): Fix comment. + +2005-08-10 David Edelsohn + + * config/rs6000/predicates.md (indexed_or_indirect_address): New. + * config/rs6000/rs6000.md (prefetch): Remove operand 0 mode and + change predicate to indexed_or_indirect_address. + +2005-08-10 Richard Sandiford + + * config/arm/lib1funcs.asm (__aeabi_uidiv, __aeabi_idiv): New aliases. + * config/arm/libgcc-bpabi.ver (GCC_3.5): Add __aeabi_idiv, + __aeabi_uidiv, __aeabi_uread4, __aeabi_uread8, __aeabi_uwrite4 + and __aeabi_uwrite8. + * config/arm/unaligned-funcs.c: New file. + * config/arm/t-bpabi (LIB2FUNCS_EXTRA): Add unaligned-funcs.c. + +2005-08-09 Paolo Bonzini + + * bb-reorder.c (pass_duplicate_computed_gotos, pass_partition_blocks): + Add dump. + * cfglayout.c (pass_insn_locators_initialize): Add dump. + * emit-rtl.c (pass_unshare_all_rtl, pass_remove_unnecessary_notes): + Add dump. + * except.c (pass_convert_to_eh_region_ranges): Add dump. + * final.c (pass_shorten_branches): Add dump. + * flow.c (pass_recompute_reg_usage, pass_remove_death_notes): Add dump. + (pass_life): Rename dump. + (rest_of_handle_flow2): Remove initial verify_flow_info. + * function.c (pass_instantiate_virtual_regs): Add dump. + * integrate.c (pass_initial_value_sets): Add dump. + * jump.c (pass_cleanup_barriers, pass_purge_lineno_notes): Add dump. + * loop-init.c (pass_rtl_loop_init, pass_rtl_loop_done): Rename dump. + (pass_rtl_move_loop_invariants, pass_rtl_unswitch, pass_rtl_doloop, + pass_rtl_unroll_and_peel_loops): Rename dump and add gate. + (gate_rtl_move_loop_invariants, gate_rtl_unswitch, gate_rtl_doloop, + gate_rtl_unrool_and_peel_loops): New. + (rtl_move_loop_invariants, rtl_unswitch, rtl_unrool_and_peel_loops, + rtl_doloop): Do not look at flags. + * mode-switching.c (pass_mode_switching): Add dump. + * recog.c (pass_split_all_insns, pass_split_for_shorten_branches, + pass_split_before_regstack): Add dump. + * regmove.c (pass_stack_adjustments): Add dump. + * tree-optimize.c (pass_fixup_cfg): Add dump. + +2005-08-10 Kazuhiro Inaoka + + PR 23309 + * config/m32r/m32r.c (m32r_reload_lr): Fix off by one error when + deciding which instruction sequence to use. + +2005-08-09 Dorit Nuzman + + * tree-vect-transform.c (vect_create_epilog_for_reduction): Set + BIT_FIELD_REF_UNSIGNED for newly created BIT_FIELD_REFs. + +2005-08-09 Richard Guenther + + * c-common.c (builtin_function_2): Remove. + (def_builtin_1): New function. + (c_common_nodes_and_builtins): Use def_builtin_1 to + build builtin functions. + +2005-08-09 Jie Zhang + + * config/bfin/uclinux.h (NO_IMPLICIT_EXTERN_C): Define. + * config/bfin/elf.h (NO_IMPLICIT_EXTERN_C): Define. + * config/bfin/bfin.c (bfin_return_in_memory): Update to really match + Visual DSP. + +2005-08-09 James A. Morrison + + * tree-ssa-loop-niter.c (tree_simplify_using_condition_1): Use + fold_binary instead of fold_build2 since we don't care about the + resulting tree. + (loop_niter_by_eval): Likewise. + (compare_trees): Likewise. + (proved_non_wrapping_p): Likewise. + +2005-08-09 James A. Morrison + + PR c/23161 + PR c/23165 + * c-typeck.c (c_finish_if_stmt): Look into STATEMENT_LISTs to see + if the if is really empty. + +2005-08-09 Steven Bosscher + + PR tree-optimization/23234 + * tree-ssa-math-opts.c (place_reciprocal): New enum. + (execute_cse_reciprocals_1): Replace the 'phi' argument with an + argument of the new enum. + (execute_cse_reciprocals): Add reciprocals for function arguments + on the unique successor edge of the entry block. Update other calls + to execute_cse_reciprocals_1. + +2005-08-08 Richard Henderson + + PR 22439 + * gimplify.c (gimplify_one_sizepos): Preserve the original type. + +2005-08-08 Bob Wilson + + * expr.c (write_complex_part): Return after handling MEM. + +2005-08-08 Josh Conner + + PR rtl-optimization/23241 + * combine.c (simplify_comparison): Fix error in determining + whether to lift a subreg from comparison. + +2005-08-08 David Edelsohn + + PR target/18506 + * config/rs6000/altivec.md (vec_init): New. + (vec_set): New. + (vec_extract): New. + * config/rs6000/rs6000.c (rs6000_expand_vector_init): New. + (rs6000_expand_vector_set): New. + (rs6000_expand_vector_extract): New. + (rs6000_legitimate_offset_address_p): Offset addresses are valid + for Altivec modes before reload. + (altivec_expand_vec_init_builtin): New. + (get_element_number): New. + (altivec_expand_vec_set_builtin): New. + (altivec_expand_vec_ext_builtin): New. + (altivec_expand_builtin): Expand vec_init, vec_set, and vec_ext + builtins. + (altivec_init_builtins): Init vec_init, vec_set, and vec_ext + builtins. + * config/rs6000/rs6000.h (rs6000_builtins): Add + ALTIVEC_BUILTIN_VEC_INIT_, ALTIVEC_BUILTIN_VEC_SET_, + ALTIVEC_BUILTIN_VEC_EXT_. + * config/rs6000/rs6000-protos.h: Declare new functions. + +2005-08-08 Jan Hubicka + + * i386.c (legitimate_pic_address_disp_p): Refuse GOTOFF in 64bit mode. + (legitimate_address_p): Refuse GOT and GOTOFF in 64bit mode. + * i386.md (movdi*): Use pic_32bit_operand. + * predicates.md (pic_32bit_operand): New. + +2005-08-08 Nathan Sidwell + + PR c++/21166 + * stor-layout.c (finalize_type_size): Undo DECL_PACKED when possible. + +2005-08-07 James A. Morrison + + * tree-vrp.c (simplify_div_or_mod_using_range): Use build2. + (test_for_singularity): Use fold_build2. + +2005-08-07 John David Anglin + + * pa64-regs.h (CONDITIONAL_REGISTER_USAGE): Fix loop upper bound. + +2005-08-07 Danny Smith + + * config/i386/cygming.h (SUBTARGET_ENCODE_SECTION_INFO): Define. + (COMMON_ASM_OP) Define. + * config/i386/i386.c (ix86_in_large_data_p): Add ATTRIBUTE_UNUSED + (ix86_encode_section_info): Likewise. + (TARGET_ENCODE_SECTION_INFO): Conditionally define as + SUBTARGET_ENCODE_SECTION_INFO. + +2005-08-06 Richard Henderson + + PR 21894 + * tree-nested.c (convert_local_reference): Save and restore val_only + around component_ref and friends. Clear walk_subtrees by default. + +2005-08-06 Peter O'Gorman + + PR 21366 + * gcc.c (process_command): Check the argument to -b has a dash. + * doc/invoke.texi: Update -b and -V docs. + +2005-08-06 James E Wilson + + * config/mips/cross64.h, config/mips/t-cross64: Delete. + +2005-08-06 Michael Matz + + * genattrtab.c (write_attr_get, write_attr_case): Use insn_code + member only if only one insn is associated with the value. + +2005-08-06 Nick Clifton + + * config/stormy16/stormy16.h (SYMBOL_FLAG_XSTORMY16_BELOW100): + New define. + (ASM_OUTPUT_LABELREF): Delete - it is no longer needed. + * config/stormy16/stormy16.c (xstormy16_below100_symbol): + Check symbol flags instead of symbol name mangling. + (xstormy16_asm_output_aligned_common): Likewise. Also + simplify code since the bss100_section cass is the only case + where the below100 code will be triggered. + (xstormy16_encode_section_info): Encode below100 attribute + using the SYMBOL_FLAG_XSTORMY16_BELOW100 instead of mangling + the name. + (xstormy16_strip_name_encoding): Delete - this function is no + longer needed. + (TARGET_STRIP_NAME_ENCODING): Undefine. + * config/stormy16/stormy16-protos.h: Delete prototype for + xstormy16_strip_name_encoding. + +2005-08-06 Kazu Hirata + + * Makefile.in, cfgexpand.c, cfgloop.h, cfgloopmanip.c, + config.gcc, ipa-cp.c, ipa-prop.c, ipa-prop.h, reg-stack.c, + tree-ssa-structalias.c, tree-vrp.c, value-prof.c, vec.h, + config/linux.h, config/alpha/alpha.h, config/alpha/linux.h, + config/alpha/predicates.md, config/arc/arc.h, + config/arm/arm.h, config/arm/ieee754-df.S, + config/arm/ieee754-sf.S, config/bfin/bfin.c, + config/bfin/bfin.h, config/c4x/c4x.h, config/crx/crx.c, + config/fr30/fr30.h, config/frv/frv.h, config/h8300/h8300.h, + config/i386/i386.h, config/ia64/ia64.c, config/ia64/ia64.h, + config/m68hc11/m68hc11.h, config/mips/mips.c, + config/mips/mips.h, config/mips/openbsd.h, + config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.h, + config/pdp11/pdp11.h, config/rs6000/linux-unwind.h, + config/rs6000/rs6000.c, config/rs6000/rs6000.h, + config/s390/s390.c, config/sh/sh.c, config/sh/sh.h, + config/sparc/linux.h, config/sparc/linux64.h, + config/sparc/sparc.h, config/v850/v850.h, config/vax/vax.h, + doc/extend.texi, doc/gcov.texi, doc/install.texi, + doc/invoke.texi, doc/rtl.texi, doc/tm.texi: Fix comment/doc + typos. Follow spelling conventions. + +2005-08-06 Joseph S. Myers + + PR c/23113 + * stmt.c (warn_if_unused_value): Check TREE_NO_WARNING at start. + Don't handle NOP_EXPR, CONVERT_EXPR and NON_LVALUE_EXPR + specially. Check for side effects only for COND_EXPR. + * c-typeck.c (c_finish_stmt_expr): Mark statement expression + return with TREE_NO_WARNING. + +2005-08-06 Richard Sandiford + + PR rtl-optimization/23233 + * loop.c (combine_movables): Require the modes to be the same. + (move_movables): Remove handling of cases where the replacement + had a different mode to the original. + +2005-08-05 James A. Morrison + + PR tree-optimization/23128 + * tree-vrp.c (vrp_int_const_binop): Check if unsigned addition or + subtraction wrap, and set TREE_OVERFLOW if they do. + +2005-08-05 Richard Henderson + + PR 21728 + * tree-cfg.c (remove_bb): Transmute DECL_NONLOCAL labels into + FORCED_LABEL labels. + +2005-08-05 J"orn Rennecke + + PR middle-end/23135 + * reload.c (find_reloads_subreg_address): Pass down TYPE + unchanged. Change all callers except find_reloads_toplev. + +2005-08-05 Michael Matz + + * genattrtab.c (current_alternative_string): Remove. + (SIMPLIFY_ALTERNATIVE): Ditto. + (attr_alt_bit_p): Ditto. + (alternative_name): Make const char *. + (evaluate_eq_attr): Remove use of above things. + (simplify_test_exp): Ditto. + (simplify_test_exp ): Guard for insn_code < 0 . + (simplify_test_exp ): Correct typo (test 'right' not 'left'). + +2005-08-04 James E Wilson + + * config/ptx4.h, config/sol2.h, config/arm/freebsd.h, + config/arm/linux-elf.h, config/frv/frv.h, config/i386/freebsd.h, + config/i386/freebsd64.h, config/i386/netware.h, config/i386/sco5.h, + config/ia64/freebsd.h, config/rs6000/sysv4.h, config/sparc/freebsd.h + (LINK_SPEC): Delete useless %{Wl,*:%*} item. + +2005-08-04 Richard Henderson + + PR 21529 + * params.def (PARAM_SRA_MAX_STRUCTURE_COUNT): New. + * params.h (SRA_MAX_STRUCTURE_COUNT): New. + * tree-sra.c (decide_block_copy): Use it. Disable element copy + if we'd have to instantiate too many members. + +2005-08-04 Richard Henderson + + PR 21291 + * tree-outof-ssa.c (coalesce_asm_operands): New. + (coalesce_ssa_name): Use it. Split out ... + (coalesce_phi_operands, coalesce_result_decls): ... these. + +2005-08-04 Paul Brook + + * read-rtl.c (read_quoted_string): Break if EOF. + +2005-08-04 Andrew Pinski + + * tree.h (fold_build1): Change to macro and call fold_build1_stat. + (fold_build2): Likewise. + (fold_build3): Likewise. + (fold_build1_stat): New function prototype. + (fold_build2_stat): Likewise. + (fold_build3_stat): Likewise. + * fold-const.c (fold_build1): Rename to .. + (fold_build1_stat): this. Add MEM_STAT_DECL. Pass the mem stats + through to build1_stat. + (fold_build2): Rename to .. + (fold_build2_stat): this. Add MEM_STAT_DECL. Pass the mem stats + through to build2_stat. + (fold_build3): Rename to .. + (fold_build3_stat): this. Add MEM_STAT_DECL. Pass the mem stats + through to build3_stat. + +2005-08-04 David Edelsohn + Ian Lance Taylor + + * function.c (assign_stack_local_1): Do not correct stack slot + address if allocation size is smaller than mode size. + +2005-08-04 Diego Novillo + + PR 22037 + * tree-cfg.c (replace_uses_by): Call mark_new_vars_to_rename. + (tree_merge_blocks): Propagate anything allowed by + may_propagate_copy. + Clarify documentation. + * passes.c (execute_todo): If cleanup_tree_cfg invalidated the + SSA form, schedule an update if necessary. + +2005-08-04 Gerald Pfeifer + + * doc/install.texi (Binaries): Remove broken link to + Sinix/Reliant Unix binaries. + +2005-08-03 Richard Henderson + + PR 23221 + * function.c (stack_protect_epilogue): Export. + * tree.h (stack_protect_epilogue): Declare. + * calls.c (expand_call): Call it. + +2005-08-03 Eric Christopher + + * gcc.c (LINK_SSP_SPEC): Add fstack-protector-all. + * config/darwin.h (LINK_COMMAND_SPEC): Add link_ssp + spec. + +2005-08-04 Jan Hubicka + + * profile.c (branch_prob): Split edges with goto locus on them + to get proper line counts. + * tree-cfg.c (make_cond_expr_edges): Record user goto locuses, if any. + +2005-08-03 Paul Brook + + * function.c (assign_parms): Round current_function_args_size + to PARM_BOUNDARY, not STACK_BOUNDARY. + +2005-08-03 Geoffrey Keating + + * config/i386/i386.c (x86_elf_aligned_common) + (x86_output_aligned_bss): Don't try to use symbols that aren't defined. + +2005-08-03 Zdenek Dvorak + + PR tree-optimization/23157 + * tree-scalar-evolution.c (scev_const_prop): Unshare trees + before emitting them. + +2005-08-03 Volker Reichelt + + PR tree-optimization/19899 + * Makefile.in (tree-scalar-evolution.o): Add real.h. + * tree-scalar-evolution.c: Include real.h. + (add_to_evolution): Build constant -1 of correct type. + +2005-08-03 Jan Hubicka + + * cfgloop.h (DLTHE_FLAG_COMPLETTE_PEEL): New flag. + * cfgloopmanip.c (duplicate_loop_to_header_edge): Special case + profile updating for complette unrolling. + * loop-unroll.c (peel_loop_completely): Use it. + * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Likewise. + (tree_unroll_loops_completely): Disable code growing unrolling of cold + loops. + +2005-08-03 Paul Brook + + * combine.c (can_change_dest_mode): New function. + (try_combine, simplify_set): Use it. + +2005-08-03 Eric Botcazou + + * config/ia64/hpux.h (MEMBER_TYPE_FORCES_BLK): Only force + TFmode to BLKmode. + +2005-08-03 Gerald Pfeifer + + * doc/install.texi (Specific): Adjust link to openavr.org. + (Specific): Remove broken reference to GCC 2.8.1 for OS/2. + (Binaries): Adjust HP-UX Porting Center link. + (Binaries): Adjust Free Software Foundation ordering link. + +2005-08-03 Andrew Pinski + + * convert.c (convert_to_integer): Use fold_build1 instead of + build1 when converting an integer to an integer. + +2005-08-02 Richard Henderson + + * combine.c (combine_instructions): Don't use reg_equal/equiv + results if the mode doesn't match. + +2005-08-02 Mark Mitchell + + * config/i386/t-mingw32 (NATIVE_SYSTEM_HEADER_DIR): Set it. + * doc/fragments.texi (NATIVE_SYSTEM_HEADER_DIR): Document it. + +2005-08-02 Richard Henderson + + PR 23196 + * explow.c (memory_address): Remove special-case for + virtual_stack_vars_rtx and virtual_incoming_args_rtx. + +2005-08-02 Diego Novillo + + PR 23164 + * tree-cfgcleanup.c (cleanup_tree_cfg): Do not limit the + number of calls to cleanup_tree_cfg_1. + +2005-08-02 Martin Reinecke + + * doc/invoke.texi: document file extensions .F90 and .F95 + +2005-08-02 Richard Guenther + + * fold-const.c (tree_expr_nonnegative_p): frexp(x, &e) is + positive if its first argument is positive. + +2005-08-02 Richard Guenther + + PR tree-optimization/23177 + * tree-ssa-operands.c (get_tmr_operands): Use get_expr_operands + on TMR_TAG. + +2005-08-02 James A. Morrison + + PR tree-optimization/23129 + * tree-vrp.c (extract_range_from_binary_expr): Set value range to + varying for divisions with anti-ranges. + +2005-08-02 Jan Hubicka + + * tree-ssa-dom.c (thread_across_edge): Remove updating here. + * tree-ssa-threadupdate.c (thread_block): Add it here. + +2005-08-01 James E Wilson + + * config/mips/mips.c (mips_encode_section_info, mips_attribute_table, + TARGET_ENCODE_SECTION_INFO, TARGET_ATTRIBUTE_TABLE): New. + * config/mips/mips.h (SYMBOL_FLAG_LONG_CALL, SYMBOL_REF_LONG_CALL_P): + New. + * config/mips/predicates.md (const_call_insn_operand): Add check for + SYMBOL_REF_LONG_CALL_P. + * doc/extend.texi (long_call): Document the new attribute. + +2005-08-01 Ian Lance Taylor + Richard Henderson + + * Makefile.in (RTL_BASE_H): Add real.h. + * real.h (REAL_VALUE_FROM_CONST_DOUBLE): Use structure copy + instead of memcpy. + * emit-rtl.c (const_double_from_real_value): Likewise; use rtx.u.rv + directly. + * rtl.c (rtl_check_failed_code_mode): New. + * rtl.h (struct rtx_def): Add u.rv. + (XCMWINT, XCNMPRV): New. + (CONST_DOUBLE_LOW, CONST_DOUBLE_HIGH): Use XCMWINT. + (CONST_DOUBLE_REAL_VALUE): Use XCNMPRV; constify. + +2005-08-01 Richard Henderson + + * dwarf2out.c (mem_loc_descriptor): Use XEXP, not SUBREG_REG, + with auto-inc codes. + + * config/alpha/predicates.md (and_operand): Test mode of CONST_DOUBLE. + +2005-08-01 Jan Hubicka + + * i386-protos.h (asm_preferred_eh_data_format): Declare. + * i386.c: Include dwarf2.h + (asm_preferred_eh_data_format): New. + * i386.h (ASM_PREFERRED_EH_DATA_FORMAT): Move offline. + +2005-08-01 Ian Lance Taylor + + * config/host-linux.c (linux_gt_pch_get_address): Add new name + randomize_va_space for virtual address randomization control. + +2005-08-01 Steven Bosscher + + * common.opt (flag_ipa_cp): Put in right place to maintain + alphabetic sort. + +2005-08-01 Jan Hubicka + + * profile.c (compute_value_histograms): Fix thinko. + * value-prof.c: Include toplev.h + (check_counter): New function. + (tree_divmod_fixed_value_transform, tree_mod_pow2_value_transform, + tree_mod_subtract_transform): Add sanity check. + +2005-08-01 Richard Guenther + + PR tree-optimization/23133 + * tree-ssa-math-opts.c (execute_cse_reciprocals): Walk + current functions parameter decls to find defs to cse + reciprocals of. + +2005-08-01 Richard Guenther + + PR tree-optimization/23109 + * tree-ssa-math-opts.c (execute_cse_reciprocals_1): + If trapping math is in effect, use post-dominator information + to check if we'd in any case reach a trapping point before + doing the reciprocal insertion. + (execute_cse_reciprocals): Compute post-dominators, if necessary. + * tree-ssa-loop-im.c (determine_invariantness_stmt): RDIV + expressions are invariant only if trapping math is not in effect. + +2005-08-01 Razya Ladelsky + + * cgraph.h (update_call_expr, cgraph_copy_node_for_versioning, + cgraph_function_versioning): New declarations. + * cgraphunit.c: Add include to ipa-prop.h. + (update_call_expr, cgraph_copy_node_for_versioning, + cgraph_function_versioning): New functions. + * integrate.c (copy_decl_for_inlining): Remove. + * ipa-prop.h (ipa_replace_map): New struct. + (struct ipa_node): Add ipcp_orig_node, count_scale, new fields. + * ipa-cp.c (ipcp_method_orig_node, ipcp_method_is_cloned, + ipcp_method_set_orig_node, ipcp_cloned_create, ipcp_method_get_scale, + ipcp_method_set_scale, ipcp_method_compute_scale, ipcp_after_propagate, + ipcp_iterate_stage, ipcp_method_scale_print, + ipcp_profile_mt_count_print, ipcp_profile_cs_count_print, + ipcp_profile_edge_print, ipcp_profile_bb_print , ipcp_profile_print, + ipcp_replace_map_create, ipcp_redirect, ipcp_update_callgraph, + ipcp_update_bb_counts, ipcp_update_profiling, + ipcp_update_edges_counts): New functions. + (ipcp_method_cval_init): Remove restriction regarding local methods. + (ipcp_init_stage): Add ipcp_method_compute_scale. + (ipcp_insert_stage): Add versioning. + (ipcp_structures_print): Add ipcp_method_scale_print. + (ipcp_driver): Dump profiling info. + * Makefile.in: Remove integrate.h dependency from tree-inline.o. + Add ipa-prop.h dependency to tree-inline.o and cgraphunit.o. + * tree-inline.c: Remove include to integrate.h, Add include ipa-prop.h. + (struct inline_data): Add versioning_p, ipa_info, new fields. + (remap_decl, mark_local_for_remap_r, setup_one_parameter, + declare_return_variable): Replace calls to copy_decl_for_inlining with + copy_decl_for_dup. + (copy_body_r, copy_bb, copy_cfg_body, copy_tree_r, inlining_p): Add + versioning support. + (copy_decl_for_dup): Rename from copy_decl_for_inlining. + Add argument VERSIONING. + (copy_arguments_for_versioning, copy_static_chain, + function_versionable_p, tree_versionable_function_p, + tree_function_versioning, replace_ref_tree): New functions. + * tree-inline.h: Include varray.h. + (tree_versionable_function_p, tree_function_versioning, + tree copy_decl_for_dup): New declarations. + +2005-08-01 Razya Ladelsky + + * ipa-cp.c: New file. Contains IPCP specific functionality. + * ipa-prop.h: New file. Contains structures/definitions that can be + used by several interprocedural data flow optimizations (and also IPCP). + * ipa-prop.c: New file. + * Makefile.in: Add ipa-cp.c, ipa-prop.h, ipa-prop.c. + * common.opt: Add ipa-cp flag. + * timevar.def: Add IPCP optimization. + * tree-optimize.c (init_tree_optimization_passes): Schedule + pass_ipa_cp. + * tree-pass.h (pass_ipa_cp): Declare. + +2005-08-01 Kazu Hirata + + * dwarf2out.c, fold-const.c, ipa-type-escape.c, + loop-invariant.c, predict.c, predict.def, reload1.c, reorg.c, + tree-sra.c, config/arm/arm.c, config/crx/crx.c, + config/i386/i386.c, config/mips/mips.h, + config/rs6000/rs6000.h, config/sh/sh.c, + config/stormy16/stormy16.c: Fix comment typos. + +2005-08-01 Joseph S. Myers + + PR c/22311 + * c-typeck.c (build_binary_op): Use common_type wrapper on + shortened types. + (common_type): Update comment. + +2005-07-31 Steven Bosscher + + PR target/23095 + * common.opt (flag_gcse_after_reload): Don't initialize to 2. + (flag_rerun_cse_after_loop): Initialize this to 2 instead. + * postreload-gcse.c (hash_scan_set): Do not consider stack regs. + +2005-07-31 Jan Hubicka + + * pretty-print.h (pp_widest_integer): New macro. + * tree-pretty-print.c (dump_bb_header): Print BB frequencies and + counts. + +2005-07-31 Jan Hubicka + + * output.h (enum section_category): Export from varasm.c + (categorize_decl_for_section): Likewise. + * varasm.c (enum section_category): Kill. + (categorize_decl_for_section): Make global. + * i386-protos.h (x86_output_aligned_bss, x86_elf_aligned_common): + Declare. + * i386.c (ix86_section_threshold): New static variable. + (ix86_in_large_data_p, ix86_encode_section_info, + x86_64_elf_unique_section, + x86_64_elf_select_section): New functions. + (TARGET_ENCODE_SECTION_INFO): Define + (override_options): Enable medium model for PIC. + (ix86_expand_prologue): Expand gen_set_got_rex64. + (legitimate_constant_p): Handle new UNSPECs. + (legitimate_pic_address_disp_p): Likewise. + (legitimize_pic_address): Lower MEDIUM model addressing. + * i386.h (PIC_OFFSET_TABLE_REGNUM): Set for medium model PIC. + (enum cmodel): Add MEDIUM_PIC. + (SYMBOL_REF_FAR_ADDR_P): New macro. + (SYMBOL_FLAG_FAR_ADDR): New flag. + * i386.md (movdi): Support medium model. + (set_got_rex64): New pattern. + * i386.opt (mlarge-data-threshold): New flag. + * predicates.md (zext_operand/sext_operand): Deal with medium model. + * x86-64.h (ASM_OUTPUT_ALIGNED_BSS): Use x86_output_aligned_bss. + (ASM_OUTPUT_ALIGNED_COMMON, TARGET_ASM_SELECT_SECTION, + TARGET_ASM_UNIQUE_SECTION): New. + + * invoke.texi (-mlarge_data_threshold): Document + +2005-07-31 Jan Hubicka + + * tree-outof-ssa.c (coalesce_ssa_name): Use coalesce_cost. + (coalesce_vars): Likewise. + * tree-ssa-live.c (coalesce_cost): New. + (build_tree_conflict_graph): Use coalesce_cost. + * tree-ssa-live.h (coalesce_cost): Declare. + +2005-07-30 Richard Earnshaw + + * arm.md (all peepholes for post-increment operations): Delete. + (strqi_preinc, strqi_predec, loadqi_preinc, loadqi_predec) + (loadqisi_preinc, loadqisi_predec, strsi_preinc, strsi_predec) + (loadsi_preinc, loadsi_predec, strqi_shiftpreinc, strqi_shiftpredec) + (loadqi_shiftpreinc, loadqi_shiftpredec, strsi_shiftpreinc) + (strsishift_predec, loadsi_shiftpreinc, loadsi_shiftpredec): Delete. + +2005-07-30 James A. Morrison + + * fold-const.c (tree_expr_nonnegative_p): Always return true for + non-integral types. + +2005-07-29 Wolfgang Bangerth + + PR target/22582 + * doc/invoke.texi: Document -rdynamic. + +2005-07-30 Joseph S. Myers + + PR c/23143 + * c-parser.c (c_parser_parms_list_declarator): Call + mark_forward_parm_decls. + * c-decl.c (merge_decls): Only check DECL_IN_SYSTEM_HEADER for + decls with visibility structure. + +2005-07-30 Paul Brook + + * config/arm/arm.c (arm_coproc_mem_operand): Fix inaccurate comment. + +2005-07-30 Paul Brook + + * config/arm/arm-protos.h (arm_canonicalize_comparison): Update + prototype. + * config/arm/arm.c (arm_canonicalize_comparison): Use correct limit + value for mode. + * config/arm/arm.h (CANONICALIZE_COMPARISON): Pass mode argument. + +2005-07-29 Joseph S. Myers + + PR c/529 + * c-decl.c (warn_if_shadowing): Don't check for PARM_DECL in + nested function declarators. + (pushdecl): Don't call warn_if_shadowing for PARM_DECL. + (grokparms): Call warn_if_shadowing for parameters used within the + parameter list. + (store_parm_decls_newstyle): Call warn_if_shadowing for parameters + not used within the parameter list. + (store_parm_decls_oldstyle): Call warn_if_shadowing for parameters. + +2005-07-30 Jan Hubicka + + * expr.c (expand_expr_real_1): Do not load mem targets into register. + * i386.c (ix86_fixup_binary_operands): Likewise. + (ix86_expand_unary_operator): Likewise. + (ix86_expand_fp_absneg_operator): Likewise. + * optabs.c (expand_vec_cond_expr): Validate dest. + +2005-07-29 Joseph S. Myers + + PR c/21720 + * real.c (real_from_string): Also set last bit if there is a + nonzero hex digit beyond GCC's internal precision after ".". + +2005-07-29 David Edelsohn + + * config/rs6000/altivec.md: Convert UNSPEC numerical values to + define_constants. Change duplicate values to unassigned numbers. + Change UNSPEC_SUBS to UNSPEC_VSUBS. + (*altivec_vspltsf): New. + (altivec_vperm_v4sf): Delete. + (altivec_vperm_): Use mode macro V. + (altivec_vsldoi_): Convert to mode macro pattern. + (altivec_predicate_v4sf): Delete. + (altivec_predicate_): Use mode macro V. + (*altivec_lvesfx): New. + (*altivec_stvesfx): New. + (vec_realign_load_v4sf): Delete. + (vec_realign_load_): Use mode macro V. + * config/rs6000/rs6000.c (generate_set_vrsave): Use + UNSPECV_SET_VRSAVE. + +2005-07-29 Mark Mitchell + + PR bootstrap/23131 + * configure.ac (SYSTEM_HEADER_DIR): Avoid setting to empty + string. + * configure: Regenerated. + +2005-07-29 Paul Brook + + * doc/install.texi: Add link to GFortran binaries wiki page. + +2005-07-29 David Ung + + * config/mips/mips.c (mips_cpu_info_table): Add 5kf to the table. + (mips_rtx_cost_data): Add costs for 5kc and 5kf. + * config/mips/mips.h (processor_type): Add PROCESSOR_5KF. + * config/mips/mips.md (cpu): Add 5kf name. + (includes): Includes 5k.md. + * config/mips/5k.md: New DFA pipeline for the 5kc/5kf. + * doc/invoke.texi (MIPS Options): Updated cpu name supported with + -march flag. + +2005-07-29 Diego Novillo + + PR 22550 + * tree-cfgcleanup.c (cleanup_tree_cfg_1): Extract from ... + (cleanup_tree_cfg): ... here. + Call cleanup_tree_cfg_1 until there are no more cleanups to + do. + +2005-07-29 James A. Morrison + + * tree-vrp.c (compare_range_with_value): Return true or false + for ~[VAL_1, VAL_2] OP VAL if VAL_1 <= VAL <= VAL_2 for NE_EXPR and + EQ_EXPR respectively. + +2005-07-29 Kazu Hirata + + * cfg.c, tree-complex.c, config/frv/frv.c, config/i386/i386.c: + Fix comment typos. + +2005-07-29 Diego Novillo + + * tree-ssa-dom.c (struct opt_stats_d): Add field num_iterations. + (tree_ssa_dominator_optimize): Increment it. + (dump_dominator_optimization_stats): Print it. + +2005-07-29 Richard Earnshaw + Steven Bosscher + + PR rtl-optimization/23117 + * sched-rgn.c (add_branch_dependences): Handle COND_EXEC correctly + when head == tail. Tidy comment. + +2005-07-28 Richard Henderson + + * cse.c (exp_equiv_p): Special case CONST_DOUBLE. + * cselib.c (rtx_equal_for_cselib_p): Likewise. + * jump.c (rtx_renumbered_equal_p): Likewise. + * loop.c (rtx_equal_for_loop_p): Tidy and special case PC, CC0, + CONST_INT and CONST_DOUBLE. + (rtx_equal_for_prefetch_p): Likewise, plus LABEL_REF. + * reload.c (operands_match_p): Special case CONST_INT and + CONST_DOUBLE; check mode earlier. + +2005-07-29 Joseph S. Myers + + PR c/22240 + * c-typeck.c (convert_for_assignment): Do not check + DECL_IN_SYSTEM_HEADER on NULL fundecl. + +2005-07-29 Joseph S. Myers + + PR c/22192 + * c-typeck.c (composite_type): Prefer constant size arrays to + VLAs. + +2005-07-29 Joseph S. Myers + + PR c/21720 + * real.c (real_from_string): Set last bit if there is a nonzero + hex digit beyond GCC's internal precision. + +2005-07-28 Richard Henderson + + PR rtl-opt/22619 + * cfgcleanup.c (try_forward_edges): Watch out for end of + insn chain. + +2005-07-28 James E Wilson + + PR c/23106 + * doc/invoke.texi (Wstrict-aliasing=2): Fix misleading wording. + +2005-07-28 Jan Hubicka + + * Makefile.in (rtl-profile.o): Kill all traces of it. + * common.opt (fspeculative-prefetching, ftree-based-profiling): Kill. + * coverage.h (rtl_coverage_counter_ref): Kill. + * opts.c (flag_speculative_prefetching_set): Kill. + (flag_loop_optimize_set): New. + (common_handle_option): Disable loop optimizer when profiling; + do not handle speculative prefetching. + * passes.c (init_optimization_passes): Replace pass_profiling combo + by branch_prob pass. + * profile.c (compute_value_histograms): Update for simplified value + profiles. + (rtl_register_profile_hooks): Kill. + (pass_profiling): Kill. + (rest_of_handle_branch_prob): Do not profile. + * toplev.c (process_options): Remove speculative prefetching. + * toplev.h (flag_tree_based_profiling): Kill. + * tree-profile.c (prepare_instrumented_value, + tree_gen_interval_profiler, tree_gen_pow2_profiler, + tree_gen_one_value_profiler, do_tree_profiling): Update for + simplified datastructures. + * value-prof.c: Add comment that speculative prefetching was dropped; + update rest of file for simplified datastructures. + (NOPREFETCH_RANGE_MIN, NOPREFETCH_RANGE_MAX, + rtl_divmod_values_to_profile, insn_prefetch_values_to_profile, + find_mem_reference_1, find_mem_reference_2, find_mem_reference, + rtl_values_to_profile, rtl_divmod_fixed_value, rtl_mod_pow2, + rtl_mod_subtract, gen_speculative_prefetch, + rtl_divmod_fixed_value_transform, rtl_mod_pow2_value_transform, + rtl_mod_subtract_transform, speculative_prefetching_transform): Kill. + (gate_handle_value_profile_transformations, + rest_of_handle_value_profile_transformations, + pass_value_profile_transformations): Kill. + * value-prof.h (histogram_value_t): Remove IL based unions. + (rtl_register_value_prof_hooks, rtl_register_profile_hooks, + rtl_profile_hooks): Remove hooks. + + * invoke.texi (-ftree-based-profiling, -fspeculative-prefetching): Kill. + + * cgraph.c (cgraph_clone_edge): New UPDATE_ORIGINAL argument. + (cgraph_clone_node): Likewise. + * cgraph.h (cgraph_clone_edge): Update prototype. + (cgraph_clone_node): Likewise. + * ipa-inline.c (cgraph_clone_inlined_nodes): Update call of + cgraph_clone_node. + (lookup_recursive_calls): Consider profile. + (cgraph_decide_recursive_inlining): Fix updating; use new + probability argument; use profile. + * params.def (PARAM_MIN_INLINE_RECURSIVE_PROBABILITY): New. + * tree-inline.c (copy_bb): Update clal of clone_edge. + * tree-optimize.c (tree_rest_of_compilation): UPdate cal of clone_node. + + * invoke.texi (min-inline-recursive-probability): Document. + +2005-07-28 Gerald Pfeifer + + * doc/install.texi (Configuration): Update Valgrind homepage. + +2005-07-28 Richard Henderson + + PR middle-end/21362 + * cfgrtl.c (rtl_merge_blocks): Call maybe_remove_eh_handler on + labels we want to delete. + (cfg_layout_merge_blocks): Likewise. + +2005-07-28 Richard Henderson + + PR target/17692 + * config/i386/i386.c (ix86_split_sse_movcc): Emit DELETED note + when expanding to nothing. + +2005-07-28 Josh Conner + + * ipa-inline.c (update_caller_keys): Fix estimated_growth caching. + (cgraph_decide_inlining_of_small_functions): Likewise. + +2005-07-28 Josh Conner + + * ipa-inline.c (cgraph_edge_badness): Update comments. Invert shift + direction of badness if negative. + (cgraph_default_inline_p): Add reason to parameters, and assign it + a value. + (cgraph_decide_inlining_of_small_functions): New parameter in call + to cgraph_default_inline_p. + (cgraph_decide_inlining_incrementally): Likewise. + * cgraphunit.c (decide_is_function_needed): Likewise. + * cgraph.h (cgraph_default_inline_p): Likewise. + +2005-07-28 Volker Reichelt + + * builtins.c: Fix comment typo(s). + * genautomata.c: Likewise. + * gimplify.c: Likewise. + * tree-dfa.c: Likewise. + * tree-flow-inline.h: Likewise. + * tree-into-ssa.c: Likewise. + * tree-ssa-alias.c: Likewise. + * tree-ssa-ccp.c: Likewise. + * tree-ssa-copy.c: Likewise. + * tree-ssa-dce.c: Likewise. + * tree-ssa-dom.c: Likewise. + * tree-ssa-operands.c: Likewise. + * tree-tailcall.c: Likewise. + * tree-vectorizer.c: Likewise. + * tree-vrp.c: Likewise. + * tree.c: Likewise. + +2005-07-28 Jeff Law + + * tree-vrp.c (test_for_singularity): Extracted from ... + (simplify_cond_using_ranges): Attempt to simplify a relational + test to NE_EXPR. Dump information when a COND_EXPR is simplified. + +2005-07-28 Dorit Nuzman + + PR tree-optimization/22506 + * tree-vectorizer.c (update_phi_nodes_for_guard2): Skip loop-closed + phis whose argument is constant. + +2005-07-28 J"orn Rennecke + + PR rtl-optimization/18992 + Back out this patch: + 2003-10-08 John David Anglin + PR optimization/12142 + * cse.c (count_reg_usage): In a SET with a REG SET_DEST, count the + uses of the register in the SET_SRC. Remove unnecessary argument. + + Replace it with this: + * cse.c (count_reg_usage): In INSN, JUMP_INSN and CALL_INSN cases, + if flag_non_call_exceptions is set and the insn may trap, pass + pc_rtx as dest for recursion. + In SET_SRC part of SET case, if dest is already set, pass it down + unchanged. + +2005-07-28 Jan Hubicka + + * cfg.c (update_bb_profile_for_threading): Use RDIV. + (scale_bbs_frequencies_int): Likewise, assert for possible overflow. + (scale_bbs_frequencies_gcov_type): Be more curefull about overflows and + roundoff errors. + * tree-cfg.c (tree_duplicate_sese_region): Use counts for updating + profile when available. + +2005-07-28 Jan Beulich + + * config/ia64/ia64.c (ia64_load_pair_ok): New. + (ia64_print_operand): Describe and handle 'X'. + (ia64_register_move_cost): Also handle FP_REGS. + (ia64_preferred_reload_class): Likewise. + (ia64_secondary_reload_class): Likewise. + (ia64_dependencies_evaluation_hook): New local variable c. Initialize + it. Also check for ITANIUM_CLASS_FLDP. + * config/ia64/ia64.h (FP_REGNO_P): New. + (HARD_REGNO_MODE_OK): Remove explusion of TImode. + (reg_class): Add FP_REGS. + (REG_CLASS_NAMES): Adjust for it. + (REG_CLASS_CONTENTS): Likewise. + (REGNO_REG_CLASS): Use FP_REGS where appropriate. + (REG_CLASS_FROM_LETTER): Handle 'x'. + (CLASS_MAX_NREGS): Handle FP_REGS. + (MEMORY_MOVE_COST): Likewise. + * config/ia64/ia64.md (itanium_class): Add fldp. + (type): Handle fldp. + (movti_internal): More allowable operand combinations. Use ldfp8 when + splitting unnecessary. Remove predicable attribute. Adjust + itanium_class attribute. + (smuldi3_highpart): Remove outdated comment. + (mulditi3, umulditi3, rotlti3): New expanders. + (addti3, subti3, mulditi3_internal, umulditi3_internal, negti2, rotlti3_internal): New insns. + (absti2): Disabled new insn for future reference. + Respective new splitters. + * config/ia64/itanium1.md (1_fldp, 1b_fldp): New insn reservations. + * config/ia64/itanium2.md (2_fldp, 2b_fldp): Likewise. + * config/ia64/ia64-protos.h (ia64_load_pair_ok): New. + +2005-07-25 James A. Morrison + + PR rtl-optimization/23047 + * simplify-rtx.c (simplify_const_relational_operation): Respect + flag_wrapv for comparisons with ABS. + +2005-07-27 James A. Morrison + + PR tree-optimization/22493 + * tree-vrp.c (extract_range_from_unary_expr): Deal with -fwrapv and + VR_ANTI_RANGEs properly for NEGATE_EXPRs and ABS_EXPRs. + +2005-07-27 Aldy Hernandez + + * config/frv/frv.opt (moptimize-membar): New. + + * doc/invoke.texi: Document -moptimize-membar and its inverse. + + * config/frv/frv.h: Remove machine_function definition. + + * config/frv/frv.c (struct frv_io): New. + (struct machine_function): Moved from frv.h. Add has_membar_p. + (frv_same_doubleword_p, frv_io_fixed_order_p, frv_io_union) + (frv_extract_membar, frv_io_check_address, frv_io_handle_set) + (frv_io_handle_use_1, frv_io_handle_use, frv_optimize_membar_local) + (frv_optimize_membar_global, frv_optimize_membar): New functions. + (frv_reorg): Call frv_optimize_membar when appropriate. + (bdesc_loads, bdesc_stores): Use the membar code as the icode field. + (frv_expand_builtin): Adjust calls accordingly. + (frv_io_address_cookie): New function. + (frv_expand_load_builtin, frv_expand_store_builtin): Emit a normal + load or store rather than a special insn. Add ccnstant address and + io-type operands to the membar. + (frv_ifcvt_modify_tests): Unsign regno. + (frv_ifcvt_modify_tests): Same. + + * config/frv/frv.md: Remove UNSPEC_BUILTIN_{LOAD,STORE}. Change + UNSPEC_OPTIONAL_MEMBAR constant. + (builtin_read_): Delete. + (builtin_write_): Delete. + ("optional_membar_"): Add operand. + + * testsuite/gcc.target/frv/all-builtin-read8.c: Delete. + * testsuite/gcc.target/frv/all-builtin-read16.c: Delete. + * testsuite/gcc.target/frv/all-builtin-read32.c: Delete. + * testsuite/gcc.target/frv/all-builtin-read64.c: Delete. + * testsuite/gcc.target/frv/all-builtin-write8.c: Delete. + * testsuite/gcc.target/frv/all-builtin-write16.c: Delete. + * testsuite/gcc.target/frv/all-builtin-write32.c: Delete. + * testsuite/gcc.target/frv/all-builtin-write64.c: Delete. + * testsuite/gcc.target/frv/all-read-write-1.c: New. + +2005-07-28 Kaz Kojima + + * df.c (df_uses_record): Handle SCRATCH. + +2005-07-28 Steven Bosscher + + PR debug/20161 + * passes.c (rest_of_decl_compilation): If decl is a type and + we have encountered errors, don't emit debug information. + +2005-07-27 Kenneth Zadeck + + * params.def: Fixed comment. + +2005-07-27 Bjoern Haase + + PR target/19885 + * config/avr/avr.c (TARGET_ASM_ALIGNED_SI_OP): Add. + (TARGET_ASM_UNALIGNED_HI_OP): Add. + (TARGET_ASM_UNALIGNED_SI_OP): Add. + +2005-07-27 Steven Bosscher + + PR c++/22003 + * varasm.c (assemble_start_function): Don't do anything that may + require a CFG if the current function is a thunk. + +2005-07-25 Geoffrey Keating + + * doc/install.texi (Prerequisites): Mention that perl is needed + to do export control in libstdc++ targetting Darwin. + +2005-07-27 Steven Bosscher + + PR rtl-optimization/17808 + * sched-deps.c (sched_get_condition): Enable #if 0'ed code. + (sched_insns_conditions_mutex_p): Split out from... + (add_dependence): ...here. But don't call it from here. + (add_dependence_list): Check sched_insns_conditions_mutex_p + before calling add_dependence. + (add_dependence_list_and_free): Likewise. + (fixup_sched_groups): Likewise. + (sched_analyze_1): Likewise. + (sched_analyze_2): Likewise (and replace a "0" with REG_DEP_TRUE). + (sched_analyze): Likewise. + (sched_analyze_insn): Likewise. + * sched-ebb.c (add_deps_for_risky_insns): Likewise. + * sched-rgn.c (add_branch_dependences): Likewise. Also, add + dependencies on all COND_EXEC insns to jumps ending basic blocks + when doing intrablock scheduling. + * sched-int.h (sched_insns_conditions_mutex_p): Add prototype. + +2005-07-27 Jeff Law + + * tree-vrp.c (vrp_meet): Intersect the equivalency sets when + meeting a VR_ANTI_RANGE with a VR_RANGE. When intersecting + equivalency sets, correctly handle the case were vr0 has an + equivalency set, but vr1 does not. + +2005-07-27 Dorit Nuzman + + PR tree-optimization/23073 + * tree-vect-analyze.c (vect_analyze_data_refs_alignment): Call + vect_print_dump_info before fprintf. + +2005-07-27 Zdenek Dvorak + + PR tree-optimize/22348 + * tree-ssa-loop-niter.c (number_of_iterations_cond): + Fold the partial computation. + +2005-07-27 Zdenek Dvorak + + PR tree-optimization/22325 + * tree-flow.h (compute_phi_arg_on_exit, force_expr_to_var_cost): + Declare. + * tree-scalar-evolution.c (scev_const_prop): Add generic final + value replacement. + * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Split from ... + (force_var_cost): ... this function. + (compute_phi_arg_on_exit): Export. + +2005-07-27 Zdenek Dvorak + + PR tree-optimization/20773 + * tree-ssa-loop-ch.c (copy_loop_headers): Select the correct latch + edge. + +2005-07-27 Richard Guenther + + * tree-ssa-structalias.c (push_fields_onto_fieldstack): + Avoid pushing again if current struct contains only + fields we decomposed. + +2005-07-27 Jan Hubicka + + PR tree-optimization/22574 + * cgraph.c (cgraph_function_body_availability): Unanalyzed bodies are + not available. + + * tree-tailcall.c (decrease_profile): New function. + (eliminate_tail_call): Use it. + + * cgraphunit.c (cgraph_function_and_variable_visibility): Set + visibility flags correctly in whole program mode. + +2005-07-26 Steve Ellcey + + PR rtl-optimization/22472 + * config/pa/pa.h (HARD_REGNO_RENAME_OK): Define. + +2005-07-26 Steven Bosscher + + PR tree-optimization/22504 + * tree-complex.c (expand_complex_addition): Use 'code' instead + of MINUS_EXPR for (VARYING, ONLY_IMAG) and (ONLY_IMAG, VARYING). + +2005-07-26 Aldy Hernandez + + * config.gcc (cpu_type): Add frv case. + (with_cpu): Add frv400-*-*linux* and frv550-*-*linux* cases. + (supported_defaults): Add fr550 case. + +2005-07-26 Diego Novillo + + PR 22591 + * tree-ssa-alias.c (may_alias_p): Remove shortcut that tests + whether a pointer of type T * may point to objects of type T *. + +2005-07-26 DJ Delorie + + * configure: Regenerate. + +2005-07-26 Dale Johannesen + + * postreload-gcse.c (alloc_mem): Start CUID numbering at 1. + +2005-07-26 Mark Mitchell + + * doc/install.texi (--with-build-sysroot): Fix grammatical error. + Clarify use of "build" in name. + +2005-07-26 Aldy Hernandez + + * doc/extend.texi (Raw read/write Functions): New section. + * testsuite/gcc.target/frv/all-builtin-read8.c: New. + * testsuite/gcc.target/frv/all-builtin-read16.c: New. + * testsuite/gcc.target/frv/all-builtin-read32.c: New. + * testsuite/gcc.target/frv/all-builtin-read64.c: New. + * testsuite/gcc.target/frv/all-builtin-write8.c: New. + * testsuite/gcc.target/frv/all-builtin-write16.c: New. + * testsuite/gcc.target/frv/all-builtin-write32.c: New. + * testsuite/gcc.target/frv/all-builtin-write64.c: New. + * config/frv/frv.c: Add bdesc_loads global. + Add bdesc_stores global. + (frv_init_builtins): Add support for __builtin_{read/write}*. + (frv_volatile_memref): New. + (frv_expand_load_builtin): New. + (frv_expand_store_builtin): New. + * config/frv/frv.h (frv_builtins): Add FRV_BUILTIN_SCAN, + FRV_BUILTIN_READ8, FRV_BUILTIN_READ16, FRV_BUILTIN_READ32, + FRV_BUILTIN_READ64, FRV_BUILTIN_WRITE8, FRV_BUILTIN_WRITE16, + FRV_BUILTIN_WRITE32, FRV_BUILTIN_WRITE64. + * config/frv/frv.md (unspecs): Add UNSPEC_BUILTIN_LOAD, + UNSPEC_BUILTIN_STORE, UNSPEC_OPTIONAL_MEMBAR. + (builtin_read_): New. + (builtin_write_): New. + (builtin_write64): New. + (optional_membar_): New. + +2005-07-26 J"orn Rennecke + + * emit-rtl.c (gen_lowpart_common): Compare size of MODE in bits + (rather than units) against HOST_BITS_PER_WIDE_INT. + +2005-07-26 Kazu Hirata + + * ipa-pure-const.c, ipa-reference.c, ipa-reference.h, + ipa-type-escape.c, ipa-type-escape.h, ipa-utils.c, + ipa-utils.h, treestruct.def, config/crx/crx-protos.h, + config/crx/crx.c, config/crx/crx.h, config/crx/crx.md: Update + FSF address. + + * calls.c, fold-const.c, ipa-reference.c, ipa-type-escape.c, + tree-ssa-reassoc.c, tree-ssa-structalias.c, vec.h, + config/crx/crx.c, config/m32c/m32c.c, config/m32c/m32c.h: Fix + comment typos. + * doc/c-tree.texi, doc/tree-ssa.texi: Fix typos. + +2005-07-26 Richard Guenther + + PR tree-optimization/22486 + * fold-const.c (fold_unary): Fold away useless component + references of the form (T *)&T.x, if the address + doesn't change. + +2005-07-25 James E Wilson + + * dwarf2out.c (add_call_src_coords_attributes): New. + (gen_inlined_subroutine_die): Call it. + (maybe_emit_file, init_file_table): Add comments. + (prune_unused_types_walk_attribs): Pass DW_AT_call_file through + maybe_emit_file. + * tree-inline.c (remap_block): Copy BLOCK_SOURCE_LOCATION. + (expand_call_inline): Set BLOCK_SOURCE_LOCATION. + * tree.h (BLOCK_SOURCE_LOCATION): New. + (struct tree_block): New field locus. + +2005-07-26 Andreas Schwab + + PR rtl-optimization/23043 + * postreload-gcse.c (eliminate_partially_redundant_load): Fix typo + when allocating a struct unoccr. + +2005-07-25 Richard Henderson + + PR 22626 + * tree-complex.c (gate_no_optimization): True if errors. + * Makefile.in (tree-complex.o): Update dependencies. + +2005-07-25 Aldy Hernandez + + * config/frv/predicates.md (integer_register_operand): Use + GPR_AP_OR_PSEUDO_P. + +2005-07-25 Andrew Pinski + + PR tree-opt/22484 + * tree-ssa-ccp.c (fold_stmt_inplace): Strip useless type conversions + after fold. + * tree-ssa-propagate.c (set_rhs): Reject invalid conditional operands. + +2005-07-25 Andrew Pinski + + * tree-ssa-reassoc.c (reassociate_expr): Allow scaler floating point + types when flag_unsafe_math_optimizations is true. + +2005-07-25 Mark Mitchell + + * gcc.c (option_map): Add --sysroot. + (process_command): Handle --sysroot. + (display_help): Document it. + * doc/cppopts.tex (-isysroot): Document. + * doc/invoke.texi (--sysroot): Document. + * doc/install.texi (--with-build-sysroot): Document. + + * Makefile.in (inhibit_libc): New variable. + (INHIBIT_LIBC_CFLAGS): Likewise. + (LIBGCC2_CFLAGS): Include + $(INHIBIT_LIBC_CFLAGS). + (CRTSTUFF_CFLAGS): Include $(INHIBIT_LIBC_CFLAGS). + ($(T)crtbegin.o): Do not use @inhibit_libc@. + ($(T)crtend.o): Likewise. + ($(T)crtbeginS.o): Do not use @inhibit_libc@. + ($(T)crtendS.o): Likewise. + ($(T)crtbeginT.o): Do not use @inhibit_libc@. + ($(T)crtendT.o): Likewise. + (stmp-fixinc): Do not complain about missing headers if + inhibit_libc. + * configure.ac (inhibit_libc): Set it to true/false. + (--with-build-sysroot): New option. Use it to set + SYSTEM_HEADER_DIR. + * configure: Regenerated. + +2005-07-25 Manfred Hollstein + + * calls.c (store_one_arg): Fix unsigned comparison warning. + +2005-07-25 Serge Belyshev + + PR other/22337 + * ggc-zone.c (ggc_alloc_zone_stat): Do not use CHUNK_OVERHEAD. + (ggc_print_statistics): Initialize variable before use. + +2005-07-25 Richard Guenther + + * tree-dfa.c (mark_new_vars_to_rename): Protect against + calling with a PHI_NODE argument. + + * tree-flow-inline.h (overlap_subvar): Protect against + possible overflow. + +2005-07-25 Paolo Bonzini + + * aclocal.m4 (gcc_AC_CHECK_TOOL): Add /bin to default directory. + * configure: Regenerate. + +2005-07-25 Ira Rosen + + * expr.c (highest_pow2_factor): Make extern. + * tree-data-ref.c (ptr_decl_may_alias_p): New function. + (ptr_ptr_may_alias_p, may_alias_p, record_ptr_differ_p, + record_array_differ_p, array_ptr_differ_p): Likewise. + (base_object_differ_p): Rename (from array_base_name_differ_p). Support + additional cases. Call the above functions. + (base_addr_differ_p): Moved from tree-vect-analyze.c. Call + base_object_differ_p when there are two base objects. Otherwise, compare + base address and offset. Call may_alias_p. + (dump_data_reference): Use a correct field name. + (analyze_array): Make static. Initialize new data-ref fields. + (analyze_indirect_ref): New function. + (init_data_ref): Initialize new data-ref fields. + (strip_conversion): Moved from tree-vect-analyze.c. + (analyze_offset_expr, get_ptr_offset, address_analysis, + object_analysis): Likewise. + (analyze_offset): New function. + (create_data_ref): Likewise. + (initialize_data_dependence_relation): Call base_addr_differ_p. Compare + dimensions for ARRAY_REFs only. + (build_classic_dist_vector): Make static. + (access_functions_are_affine_or_constant_p): Call macro to get the + address of access functions. + (compute_all_dependences): Add new parameter + compute_self_and_read_read_dependences. Compute self and read-read + dependences if it is true. + (find_data_references_in_loop): Call create_data_ref. Initialize new + data-ref fields. + (compute_data_dependences_for_loop): Add new parameter + compute_self_and_read_read_dependences. Remove parameter nb_loops, + compute nb_loops. Call compute_all_dependences, + build_classic_dist_vector and build_classic_dir_vector with correct + parameters. + (analyze_all_data_dependences): Call compute_data_dependences_for_loop + with correct parameters. Compare dimensions for ARRAY_REFs only. + (free_data_refs): Call macro to free access functions. + * tree-data-ref.h (struct first_location_in_loop): New structure. Move + fields from stmt_vinfo. + (struct base_object_info): New structure. + (struct data_reference): Move fields to base_object_info. Add fields + first_location and object_info for above structures. Move fields from + stmt_info: memtag, ptr_info, subvars, misalignment. Add new field + aligned_to. Add macros to access the new fields. + Update functions declarations. + * tree-flow.h (is_aliased_with): Declare. + * tree-loop-linear.c (linear_transform_loops): Call + compute_data_dependences_for_loop with correct parameters. + * tree-ssa-alias.c (is_aliased_with): New function. + * tree-vect-analyze.c (vect_get_ptr_offset): Remove. + (vect_analyze_offset_expr, vect_base_addr_differ_p): Likewise. + (vect_analyze_data_ref_dependence): Get ddr. Remove call to + vect_base_addr_differ_p, compute_subscript_distance and + build_classic_dist_vector. Add printings. Check absolute value of + distance. + (vect_analyze_data_ref_dependences): Go through ddrs instead of + data-refs. + (vect_compute_data_ref_alignment): Get the fields of data-ref instead of + stmt. Check aligned_to. Check if the base is aligned. Remove conversion + to bytes. Add printing. + (vect_compute_data_refs_alignment): Go through loads and stores in one + loop. + (vect_enhance_data_refs_alignment, vect_analyze_data_refs_alignment, + vect_analyze_data_ref_access): Likewise. + (vect_analyze_pointer_ref_access): Remove. + (vect_address_analysis, vect_object_analysis): Likewise. + (vect_analyze_data_refs): Call compute_data_dependences_for_loop to find + and analyze data-refs in the loop. + * tree-vect-transform.c (vect_create_addr_base_for_vector_ref): Get the + fields of data-ref instead of stmt. Add init to the offset from the + base. + (vect_create_data_ref_ptr): Get the fields of data-ref instead of stmt. + (vect_update_init_of_dr): Likewise. + (vect_update_inits_of_drs): Go through loads and stores in one loop. + * tree-vectorizer.c (new_stmt_vec_info): Remove initialization of + removed fields. + (new_loop_vec_info): Initialize new fields. + (destroy_loop_vec_info): Free new fields. + (vect_strip_conversion): Remove. + * tree-vectorizer.h (enum verbosity_levels): Add new verbosity level. + (struct _loop_vec_info): Unify data_ref_writes and data_ref_reads into + datarefs. Add new field ddrs. + Add macros for the new fields access. + (struct _stmt_vec_info): Remove: base_address, initial_offset, step, + base_aligned_p, misalignment, memtag, ptr_info and subvars. + Remove their macros. + * tree.h (highest_pow2_factor): Declare. + +2005-07-25 Jakub Jelinek + + * calls.c (store_one_arg): Check for sibling call MEM arguments + from already clobbered incoming argument area. + +2005-07-24 Kaveh R. Ghazi + + * c-common.c (check_missing_format_attribute): New. + * c-common.h (check_missing_format_attribute): Likewise. + * c-typeck.c (convert_for_assignment): Use it. + +2005-07-24 Andreas Schwab + + * config/m68k/m68k.md ("extendqidi2"): When source is an address + register use a word move. Correct operand of ext.w in 68000 code. + +2005-07-23 Mark Mitchell + + * dwarf2out.c (gen_variable_die): Treat un-emitted COMDAT + variables as declarations, rather than definitions. + +2005-07-24 Ira Rosen + + PR tree-optimization/22526 + * tree-vectorizer.c (slpeel_tree_peel_loop_to_edge): Match the type + of the zero node. + +2005-07-24 Francois-Xavier Coudert + + * builtins.def: Add DEF_EXT_C99RES_BUILTIN to define builtins + that C99 reserve for future use. Use it to define clog10, + clog10f and clog10l. + +2005-07-23 Kaveh R. Ghazi + + * Makefile.in (STRICT2_WARN): Add -Wmissing-format-attribute. + * configure.ac: Check for -Wmissing-format-attribute. + + * configure: Regenerate. + +2005-07-23 Richard Henderson + + PR tree-optimization/22623 + * tree-complex.c (set_component_ssa_name): Use replace_ssa_name_symbol. + +2005-07-23 Giovanni Bajo + + PR target/22577 + * config/pa/pa.c (reloc_needed): Updated for VECs inside CONSTRUCTOR. + +2005-07-23 Kaveh R. Ghazi + + * Makefile.in (C_TREE_H): Update dependencies. + * c-tree.h: Include toplev.h. + * diagnostic.h (diagnostic_set_info): Add format attribute. + * rtl-error.c (diagnostic_for_asm): Likewise. + +2005-07-23 Chao-ying Fu + + * config/mips/mips-dsp.md: New file. + * config/mips/mips-modes.def (V4QI, V2HI, CCDSP): New modes. + * config/mips/mips.c (mips_function_type): Add types for DSP builtin + functions. + (mips_builtin_type): Add MIPS_BUILTIN_DIRECT_NO_TARGET and + MIPS_BUILTIN_BPOSGE32. + (mips_expand_builtin_direct): Add one parameter to indicate that + builtin functions need to return a value. + (mips_expand_builtin_bposge): New for expanding "bposge" builtin + functions. + (mips_regno_to_class): Add classes for 12 new DSP registers. + (mips_subword): Change to check four HI registers. + (mips_output_move): Output move to and from 6 new DSP accumulators. + (override_options): Make sure -mdsp and -mips16 are not used together. + Map 'A' to DSP_ACC_REGS and 'a' to ACC_REGS. Enable DSP accumulators + for machine modes. + (mips_conditional_register_usage): Disable 6 new DSP accumulators + when !TARGET_DSP. + (print_operand): Add 'q' for printing DSP accumulators. + (mips_cannot_change_mode_class): Check ACC_REGS. + (mips_secondary_reload_class): Check ACC_REGS. + (mips_vector_mode_supported_p): Enable V2HI and V4QI when TARGET_DSP. + (mips_register_move_cost): Check ACC_REGS. + (CODE_FOR_mips_addq_ph, CODE_FOR_mips_addu_qb, CODE_FOR_mips_subq_ph) + (CODE_FOR_mips_subu_qb): New code-aliasing macros. + (DIRECT_NO_TARGET_BUILTIN, BPOSGE_BUILTIN): New macros. + (dsp_bdesc): New array. + (bdesc_arrays): Add DSP builtin function table. + (mips_prepare_builtin_arg): Check predicate again after + copy_to_mode_reg. + (mips_expand_builtin): Add one more parameter to + mips_expand_builtin_direct. Expand MIPS_BUILTIN_DIRECT_NO_TARGET and + MIPS_BUILTIN_BPOSGE32. + (mips_init_builtins): Initialize new function types. + (mips_expand_builtin_direct): Check if builtin functions need to + return a value and pass operands properly. + (mips_expand_builtin_bposge): New function. + * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Add __mips_dsp. + (ASM_SPEC): Map -mdsp to -mdsp in GAS. + (FIRST_PSEUDO_REGISTER): Increase to 188. + (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS): + Update for 12 new DSP registers. + (DSP_ACC_REG_FIRST, DSP_ACC_REG_LAST, DSP_ACC_REG_NUM, AC1HI_REGNUM) + (AC1LO_REGNUM, AC2HI_REGNUM, AC2LO_REGNUM, AC3HI_REGNUM, AC3LO_REGNUM): + (DSP_ACC_REG_P, ACC_REG_P, ACC_HI_REG_P): New macros. + (reg_class): Add DSP_ACC_REGS and ACC_REGS. + (REG_CLASS_NAMES): Add names for DSP_ACC_REGS and ACC_REGS. + (REG_CLASS_CONTENTS): Update for DSP_ACC_REGS, ACC_REGS and ALL_REGS. + (REG_ALLOC_ORDER): Update for 12 new DSP registers. + (mips_char_to_class): Add 'A' for DSP_ACC_REGS and 'a' for ACC_REGS. + (UIMM6_OPERAND, IMM10_OPERAND): New macros. + (EXTRA_CONSTRAINT_Y): Add YA and YB extra constraints. + (REGISTER_NAMES): Add names for 12 new DSP registers. + * config/mips/mips.md: Include mips-dsp.md. + (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ, UNSPEC_SUBQ_S, UNSPEC_ADDSC) + (UNSPEC_ADDWC, UNSPEC_MODSUB, UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S) + (UNSPEC_PRECRQ_QB_PH, UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W) + (UNSPEC_PRECRQU_S_QB_PH, UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR) + (UNSPEC_PRECEQU_PH_QBL, UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA) + (UNSPEC_PRECEQU_PH_QBRA, UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR) + (UNSPEC_PRECEU_PH_QBLA, UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL) + (UNSPEC_SHLL_S, UNSPEC_SHRL_QB, UNSPEC_SHRA_PH, UNSPEC_SHRA_R) + (UNSPEC_MULEU_S_PH_QBL, UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH) + (UNSPEC_MULEQ_S_W_PHL, UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL) + (UNSPEC_DPAU_H_QBR, UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR) + (UNSPEC_DPAQ_S_W_PH, UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH) + (UNSPEC_DPAQ_SA_L_W, UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL) + (UNSPEC_MAQ_S_W_PHR, UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR) + (UNSPEC_BITREV, UNSPEC_INSV, UNSPEC_REPL_QB, UNSPEC_REPL_PH) + (UNSPEC_CMP_EQ, UNSPEC_CMP_LT, UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB) + (UNSPEC_CMPGU_LT_QB, UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH) + (UNSPEC_EXTR_W, UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H) + (UNSPEC_EXTP, UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP) + (UNSPEC_RDDSP): New constants. + (*movdi_32bit): Change 'x' to 'a' for ACC_REGS. + (*movsi_internal): Change 'x' to 'a' for ACC_REGS. Add an + A<-d alternative. + * config/mips/mips.opt (-mdsp): New option. + * config/mips/predicates.md (const_uimm6_operand, const_imm10_operand) + (reg_imm10_operand): New predicates. + * doc/extend.texi (MIPS DSP Built-in Functions): New section. + * doc/invoke.texi (-mdsp): Document new option. + +2005-07-22 DJ Delorie + + * c-objc-common.c (c_cannot_inline_tree_fn): Add warning control + to warning calls. + * tree-inline.c (inlinable_function_p): Likewise. + +2005-07-22 Mark Mitchell + + PR debug/21828 + * toplev.c (check_global_declarations): Do not mark undefined + variables as DECL_IGNORED_P. + * varasm.c (first_global_object_name): GTY it. + (weak_global_object_name): Likewise. + (notice_global_symbol): Use ggc_strdup, not xstrdup, when creating + a string to go into {weak,first}_global_object_name. + +2005-07-22 DJ Delorie + + * c-format.c (check_function_format): Change warning control + option from OPT_Wattribute to OPT_Wmissing_format_attribute. + +2005-07-22 Diego Novillo + + * tree-ssa-alias.c (count_ptr_derefs): Do not consider + &PTR->FLD a dereference of PTR. + * tree-ssa-structalias.c (update_alias_info): Consider &PTR->FLD + a potential dereference of PTR. + +2005-07-22 J"orn Rennecke + + PR rtl-optimization/20370 + * ifcvt.c (dead_or_predicable): Before calling propagate_block, + call allocate_reg_info if necessary. + + PR rtl-optimization/21848 + * calls.c (emit_library_call_value_1): For const functions, add + USEs of the stack slots to CALL_INSN_FUNCTION_USAGE. + + PR rtl-optimization/22445 + * cselib.c (target.h): Include. + (rtx_equal_for_cselib_p): Allow commutative matches. + (cselib_hash_rtx): Don't use MODE for CONST_INT hashing. + Remove MODE parameter. Changed all callers. + + PR rtl-optimization/22258 + * combine.c (likely_spilled_retval_1, likely_spilled_retval_p): + New functions. + (try_combine): Use likely_spilled_retval_p. + +2005-07-22 Paul Woegerer + + * config.gcc: Add crx-elf support. + + * doc/contrib.texi: Mention crx. + * doc/extend.texi: Document crx extensions. + * doc/install.texi: Document crx install. + * doc/invoke.texi: Document crx options. + * doc/md.texi: Document crx constraints. + + * config/crx/crx-protos.h: New file. + * config/crx/crx.c: New file. + * config/crx/crx.h: New file. + * config/crx/crx.md: New file. + * config/crx/crx.opt: New file. + * config/crx/t-crx: New file. + +2005-07-22 Manfred Hollstein + + * tree-ssa-structalias.c (merge_graph_nodes): Fix uninitialised + warnings. + (int_add_graph_edge): Likewise. + (collapse_nodes): Likewise. + (process_unification_queue): Likewise. + +2005-07-22 Richard Kenner + Laurent GUERBY + + PR tree-optimization/22336 + * function.c (record_block_change): Check for + cfun->ib_boundaries_block. + +2005-07-21 James A. Morrison + + * fold-const.c (fold_unary): Don't strip signed nops from ABS_EXPRs. + (tree_expr_nonnegative_p): Return try for TYPE_UNSIGNED. + +2005-07-21 DJ Delorie + + * toplev.c (warn_deprecated_use): Add warning control to warning + call. + * c-typeck.c (parser_build_binary_op): Likewise. + (c_finish_if_stmt): Likewise. + * c-common.c (check_function_sentinel): Likewise. + (check_nonnull_arg): Likewise. + +2005-07-21 Richard Henderson + + PR tree-opt/22504 + * tree-complex.c (complex_ssa_name_components): New. + (cvc_lookup): Allow entry not found. + (create_components): Remove. + (create_one_component_var, get_component_var): New. + (get_component_ssa_name, set_component_ssa_name): New. + (extract_component): Use get_component_ssa_name. + (update_complex_components): Use set_component_ssa_name. + (update_complex_components_on_edge): Likewise. + (update_phi_components): Create new PHI nodes directly, instead + of adding insns to edges. + (tree_lower_complex): Allocate and free complex_variable_components + and complex_ssa_name_components here. + +2005-07-20 Daniel Berlin + + * alias.c (nonoverlapping_component_refs_p): Use TYPE_MAIN_VARIANT, + revert to returning false. + +2005-07-21 Uros Bizjak + + PR target/21149 + * config/i386/i386.md (sse_movhlps): Fix vec_select values. + +2005-07-21 Uros Bizjak + + PR target/22576 + * config/i386/i386.md (cmpxf): Change operand constraints + to "nonmemory_operand". + +2005-07-21 Andrew Pinski + + * config/i386/i386.md (trap): Use "".word/t0x0b0f" instead of ud2. + +2005-07-21 Andrew Pinski + + PR middle-end/21180 + * fold-const.c (fold_build1): Add checksum for the operands. + (fold_build2): Likewise. + (fold_build3): Likewise. + +2005-07-21 Andrew Pinski + + PR middle-end/19055 + * fold-const.c (fold_binary): Transform "(X | Y) ^ X" to "Y & ~ X". + +2005-07-21 Paolo Bonzini + + * common.opt (-fforward-propagate): Committed by mistake, + removed. + +2005-07-21 Volker Reichelt + + * reg-stack.c: Fix comment typo(s). + * tree-ssa-operands.c: Likewise. + * tree-vectorizer: Likewise. + +2005-07-21 Nick Clifton + + * config/sh/symbian.c: Replace C++ style line comments with C + style line comments. + (symbian_add_attribute): Do not use a ? operator on the LHS of + an assignment. + (sh_symbian_handle_dll_attribute): Change the type of the + method vector to "VEC(tree,gc)*" and use vector accessor + macros to walk over the elements. + (symbian_export_vtable_and_rtti_p): Likewise. + (symbian_class_needs_attribute_p): Likewise. + +2005-07-21 Paolo Bonzini + + PR target/22085 + * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Do not + initialize targetm.resolve_overloaded_builtin here. + (altivec_expand_overloaded_builtin): Make it non-static. + * config/rs6000/rs6000-protos.h + (altivec_expand_overloaded_builtin): New prototype. + * config/rs6000/rs6000.h (REGISTER_TARGET_PRAGMAS): Initialize + targetm.resolve_overloaded_builtin here. + * config/rs6000/darwin.h (REGISTER_TARGET_PRAGMAS): Likewise. + +2005-07-21 Paolo Bonzini + Zdenek Dvorak + + PR tree-optimization/19210 + * common.opt (Wunsafe-loop-optimizations, funsafe-loop-optimizations): + New. + * Makefile.in (tree-ssa-loop-niter.o): Depend intl.o. + * loop-iv.c (get_simple_loop_desc): If -funsafe-loop-optimizations, + rely on unproven assumptions. + * predict.c (predict_loops): Adjust call to number_of_iterations_exit. + * tree-flow.h (number_of_iterations_exit): Add final parameter. + * tree-scalar-evolution.c (number_of_iterations_in_loop): Adjust call + to number_of_iterations_exit. + * tree-ssa-loop-ivcanon.c (empty_loop_p): Likewise. + * tree-ssa-loop-ivopts.c (niter_for_exit): Likewise. + * tree-ssa-loop-niter.c (find_loop_niter, + estimate_numbers_of_iterations_loop): Likewise. + (number_of_iterations_exit): Honor the new options. + * doc/invoke.texi (Wunsafe-loop-optimizations, + funsafe-loop-optimizations): Document them. + +2005-07-21 Richard Sandiford + + PR rtl-optimization/22167 + * gcse.c (hoist_code): Fix hoist_exprs[] check. + +2005-07-20 Adam Nemet + + * config/rs6000/lynx.h: Mark __do_global_ctors_aux and + __do_global_dtors_aux longcall. + +2005-07-20 Kazu Hirata + + * gensupport.c (old_preds): Don't reference PREDICATE_CODES. + (old_special_pred_table): Don't reference + SPECIAL_MODE_PREDICATES. + * system.h (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): Poison. + * config/arc/arc.h: Don't mention PREDICATE_CODES. + * config/sh/predicates.h: Don't mention + SPECIAL_MODE_PREDICATES. + * doc/tm.texi (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): + Remove. + +2005-07-20 DJ Delorie + + * config.gcc: Add m32c-elf support. + + * doc/contrib.texi: Mention m32c. + * doc/extend.texi: Document m32c extensions. + * doc/install.texi: Mention m32c. + * doc/invoke.texi: Document m32c options. + * doc/md.texi: Document m32c constraints. + + * config/m32c/addsub.md: New file. + * config/m32c/bitops.md: New file. + * config/m32c/cond.md: New file. + * config/m32c/jump.md: New file. + * config/m32c/m32c-lib1.S: New file. + * config/m32c/m32c-lib2.c: New file. + * config/m32c/m32c-modes.def: New file. + * config/m32c/m32c-pragma.c: New file. + * config/m32c/m32c-protos.h: New file. + * config/m32c/m32c.abi: New file. + * config/m32c/m32c.c: New file. + * config/m32c/m32c.h: New file. + * config/m32c/m32c.md: New file. + * config/m32c/m32c.opt: New file. + * config/m32c/minmax.md: New file. + * config/m32c/mov.md: New file. + * config/m32c/muldiv.md: New file. + * config/m32c/predicates.md: New file. + * config/m32c/prologue.md: New file. + * config/m32c/shift.md: New file. + * config/m32c/t-m32c: New file. + +2005-07-20 Kaz Kojima + + * config/sh/sh.md (UNSPEC_SP_SET, UNSPEC_SP_TEST): New constants. + (stack_protect_set, stack_protect_test): New expanders. + (stack_protect_set_si, stack_protect_set_si_media, + stack_protect_set_di_media, stack_protect_test_si, + stack_protect_test_si_media, stack_protect_test_di_media): + New insns. + +2005-07-20 Andrew Pinski + + * c-typeck.c (output_init_element): Don't copy the INTEGER_CST. + +2005-07-20 James A. Morrison + + * tree.h (tree_expr_nonzero_p): Export. + * fold-const.c (tree_expr_nonzero_p): Likewise. + Return true for CALL_EXPRs that are alloca calls. + (fold_binary): Use omit_one_operand when checking EQ_EXPRs or NE_EXPRs + against zero. + * tree-flow.h (expr_computes_nonzero): Remove. + * tree-vrp.c (expr_computes_nonzero): Remove. + (vrp_expr_computes_nonzero): Use tree_expr_nonzero_p. + (extract_range_from_unary_expr): Likewise. + * tree-ssa-dom.c (record_equivalences_from_stmt): Use + tree_expr_nonzero_p. + +2005-07-20 Bernd Schmidt + + * config/bfin/bfin-protos.h (legitimize_pic_address): Don't declare. + * config/bfin/bfin.c (legitimize_pic_address): Now static. Take + extra arg "picreg" and use it instead of pic_offset_table_rtx. + All callers changed. + (frame_related_constant_load): New arg "related" which controls + setting of RTX_FRAME_RELATED_P. All callers changed. + (bfin_load_pic_reg): New function, broken out of bfin_expand_prologue. + (bfin_expand_prologue): Add stack limit checking. + * config/bfin/bfin.md (trapifcc): New pattern. + + * config/bfin/bfin.c: Include "langhooks.h". + (def_builtin): Go through lang_hooks to call builtin_function. + + * config/bfin/bfin-protos.h (bfin_longcall_p): Declare. + * config/bfin/predicates.md (symbol_ref_operand): New. + (call_insn_operand): Delete. All callers changed to use + register_no_elim_operand. + * config/bfin/bfin.c (init_cumulative_args): Initialize the new + call_cookie field. + (function_arg): Use it to generate the call's operand 2. + (bfin_longcall_p): New function. + (bfin_expand_call): Extra arg "cookie". All callers and declaration + changed. Emit extra USE in the pattern. Use bfin_longcall_p to + determine if the address needs to be in a REG. + (bfin_handle_longcall_attribute): New function. + (bfin_attribute_table): Add "longcall" and "shortcall". + * config/bfin/bfin.h (CALL_NORMAL, CALL_LONG, CALL_SHORT): New macros. + (CUMULATIVE_ARGS): New member call_cookie. + (PREDICATE_CODES): Add symbol_ref_operand. + * config/bfin/bfin.md (call, call_value, sibcall, sibcall_value): Add + extra USE to the pattern. + (call_symbol, sibcall_symbol, call_value_symbol, sibcall_value_symbol): + New patterns, split off call_insn, sibcall_insn, call_value_insn and + sibcall_value_insn; now the new patterns handle direct calls and the + old ones indirect calls. + * doc/extend.texi: Mention Blackfin in longcall/shortcall docs. + +2005-07-20 Zdenek Dvorak + + * doc/trouble.texi: Update section on handling of empty loops. + +2005-07-20 Kazu Hirata + + * config.gcc: Remove support for sparc-*-openbsd*, + i860-*-sysv4*, ip2k-*-elf, ns32k-*-netbsdelf*, + ns32k-*-netbsd*. + * config.host: Remove support for i860-*-sysv4* as a host. + * config/i860/*, config/ip2k/*, config/ns32k/*, + config/sparc/openbsd.h, config/sparc/t-openbsd: Remove. + * doc/install.texi, doc/invoke.texi, doc/md.texi: Don't + mention obsolete ports. + +2005-07-20 Kaz Kojima + + * config/sh/sh.c (regno_reg_class): Add GENERAL_REGS for + soft frame pointer. + (sh_expand_prologue): Use hard_frame_pointer_rtx instead + of frame_pointer_rtx. + (sh_expand_epilogue): Likewise. + (sh_set_return_address): Likewise. + (initial_elimination_offset): Use HARD_FRAME_POINTER_REGNUM + instead of FRAME_POINTER_REGNUM if needed. Add elimination + offsets from FRAME_POINTER_REGNUM. + * config/sh/sh.h (SH_REGISTER_NAMES_INITIALIZER): Add sfp. + (sh_register_names): Add initializer for sfp. + (GENERAL_OR_AP_REGISTER_P): Permit FRAME_POINTER_REGNUM. + (VALID_REGISTER_P): Likewise. + (FIRST_PSEUDO_REGISTER): Update. + (DWARF_FRAME_REGISTERS): Define. + (FIXED_REGISTERS, CALL_USED_REGISTERS): Add sfp. + (HARD_FRAME_POINTER_REGNUM): Define. + (FRAME_POINTER_REGNUM): Redefine. + (ELIMINABLE_REGS): Never eliminate to FRAME_POINTER_REGNUM, + but HARD_FRAME_POINTER_REGNUM instead. Add eliminations + from FRAME_POINTER_REGNUM. + (CAN_ELIMINATE): Use HARD_FRAME_POINTER_REGNUM instead of + FRAME_POINTER_REGNUM. + (REG_CLASS_CONTENTS): Add sfp. + (REG_ALLOC_ORDER): Likewise. + (FRAME_GROWS_DOWNWARD): Set to 1. Update comment. + (GO_IF_LEGITIMATE_ADDRESS): Use hard_frame_pointer_rtx instead + of frame_pointer_rtx. + (LEGITIMIZE_RELOAD_ADDRESS): Likewise. + +2005-07-19 James A. Morrison + + * fold-const.c (tree_expr_nonnegative_p): Only return true for + ABS_EXPR when flag_wrapv is false because of INT_MIN. + (tree_expr_nonzero_p): Always call tree_expr_nonzero_p on the argument + of an ABS_EXPR. + (fold_unary): Always fold ABS_EXPR> into + ABS_EXPR. + +2005-07-20 Giovanni Bajo + + Make CONSTRUCTOR use VEC to store initializers. + * c-common.c (complete_array_type): Update to cope with VEC in + CONSTRUCTOR_ELTS. + * c-pretty-print.c (pp_c_initializer_list): Use pp_c_constructor_elts. + (pp_c_constructor_elts): New function. + * c-pretty-print.h (pp_c_constructor_elts): Declare. + * c-typeck.c (build_function_call, build_c_cast, digest_init, + struct constructor_stack, struct initializer_stack, + constructor_elements, push_init_level, pop_init_level, + add_pending_init, find_init_member, output_init_element): Update to + cope with VEC in CONSTRUCTOR_ELTS. + * coverage.c (build_fn_info_value, build_ctr_info_value, + build_gcov_info): Likewise. + * expr.c (categorize_ctor_elements_1, store_constructor, + expand_expr_real_1): Likewise. + * fold-const.c (fold_ternary): Likewise. + * gimplify.c (gimplify_init_ctor_preeval, zero_sized_field_decl, + gimplify_init_constructor, gimplify_expr): Likewise. + * tree-dump.c (dequeue_and_dump): Likewise. + * tree-inline.c (copy_tree_r): Add code to duplicate a CONSTRUCTOR + node. + * tree-pretty-print.c (dump_generic_node): Update to cope with VEC in + CONSTRUCTOR_ELTS. + * tree-sra.c (generate_element_init_1): Likewise. + * tree-ssa-ccp.c (fold_const_aggregate_ref): Likewise. + * tree-ssa-operands.c (get_expr_operands): Likewise. + * tree-vect-generic.c (expand_vector_piecewise): Likewise. + * tree-vect-transform.c (vect_get_vec_def_for_operand): + (get_initial_def_for_reduction): Likewise. + * tree-vn.c (set_value_handle, get_value_handle): CONSTURCTOR uses + value handle in annotations. + * tree.c (tree_node_kind, tree_code_size, make_node_stat, + tree_node_structure): Add support for constr_kind. + (build_vector_from_ctor, build_constructor_single, + build_constructor_from_list): New functions. + (build_constructor): Update to take a VEC instead of a TREE_LIST. + (simple_cst_equal, iterative_hash_expr, initializer_zerop, walk_tree): + Update to cope with VEC in CONSTRUCTOR_ELTS. + * tree.def (CONSTRUCTOR): Make it a tcc_exceptional node. + * tree.h (FOR_EACH_CONSTRUCTOR_VALUE, FOR_EACH_CONSTRUCTOR_ELT, + CONSTRUCTOR_APPEND_ELT): New macros. + (struct constructor_elt, struct tree_constructor): New data types. + (union tree_node): Add tree_constructor field. + * treestruct.def: Define TS_CONSTRUCTOR. + * varasm.c (const_hash_1, compare_constant, copy_constant, + compute_reloc_for_constant, output_addressed_constants, + initializer_constant_valid_p, output_constant, + array_size_for_constructor, output_constructor): Update to cope with + VEC in CONSTRUCTOR_ELTS. + * vec.h (VEC_empty, VEC_copy): New macros. + +2005-07-19 Devang Patel + + * dbxout.c (dbxout_type): Check Objective-C++ lang. + +2005-07-19 Richard Henderson + + PR tree-opt/22278 + * gimplify.c (gimplify_expr): Use main variant type for the temp + destination for a discarded volatile read. + * tree-ssa.c (tree_ssa_useless_type_conversion_1): Don't elide + casts between non-void types that change volatility. + +2005-07-15 DJ Delorie + + * toplev.h: Add comment about the first parameter for warning(). + * errors.h: Likewise. + + * c.opt (Wpragmas): New. + * doc/invoke.texi: Document it. + + * function.c (do_warn_unused_parameter): Add warning control to + warning call. + * c-decl.c (warn_if_shadowing): Likewise. + * c-lex.c (cb_def_pragma): Likewise. + * c-pragma.c (GCC_BAD, GCC_BAD2): Likewise. + (pop_alignment): Likewise. + (handle_pragma_pack): Likewise. + (apply_pragma_weak): Likewise. + (handle_pragma_weak): Likewise. + (handle_pragma_redefine_extname): Likewise. + (add_to_renaming_pragma_list): Likewise. + (handle_pragma_extern_prefix): Likewise. + (maybe_apply_renaming_pragma): Likewise. + (handle_pragma_visibility): Likewise. + + * config/c4x/c4x-c.c (BAD): Likewise. + (c4x_parse_pragma): Likewise. + * config/ia64/ia64-c.c (ia64_hpux_handle_builtin_pragma): Likewise. + * config/rs6000/rs6000-c.c (SYNTAX_ERROR): Likewise. + (rs6000_pragma_longcall): Likewise. + * config/v850/v850-c.c (pop_data_area): Likewise. + (ghs_pragma_section): Likewise. + (ghs_pragma_section): Likewise. + (ghs_pragma_interrupt): Likewise. + (ghs_pragma_starttda): Likewise. + (ghs_pragma_startsda): Likewise. + (ghs_pragma_startzda): Likewise. + (ghs_pragma_endtda): Likewise. + (ghs_pragma_endsda): Likewise. + (ghs_pragma_endzda): Likewise. + +2005-07-19 Danny Berlin + Kenneth Zadeck + + * Makefile.in: Removed tree-promote-statics.c + * tree-promote-statics.c: Removed. + * common.opt: Removed flag-promote-statics. + * opts.c: Ditto. + * passes.c: Removed tree-promote-statics pass. + * tree-pass.h: Ditto. + * timevar.def: Removed TV_PROMOTE_STATICS. + + +2005-07-19 Gerald Pfeifer + + * config.gcc: Add support for *-*-freebsd7, *-*-freebsd8, + and *-*-freebsd9. + * config/freebsd-spec.h (FBSD_TARGET_OS_CPP_BUILTINS): Ditto. + +2005-07-19 Kaveh R. Ghazi + + PR c/22476 + * c-common.c (check_function_arguments): Call + 'check_function_format' if either -Wformat or + -Wmissing-format-attribute are specified. + * c-format.c (check_function_format): Check -Wformat before + calling 'check_format_info'. + * c-opts.c (c_common_post_options): Don't warn for + -Wmissing-format-attribute without -Wformat. + * c-typeck.c (convert_for_assignment): Detect additional cases for + -Wmissing-format-attribute. + * doc/invoke.texi (-Wmissing-format-attribute): Document new + behavior. + +2005-07-19 Richard Guenther + + * config/i386/i386.md (lrint2): Use temporary + instead of clobbering non-existent memory. + +2005-07-19 Nick Clifton + + * config/avr/avr.c (legitimate_address_p): Fix debugging print + statement to avoid displaying ASCII control characters. + +2005-07-19 Ben Elliston + + * bt-load.c (link_btr_uses): Fix uninitialised warnings. + * cfganal.c (find_edge_index): Ditto. + * combine.c (combine_instructions): Ditto. + * ddg.c (create_scc): Ditto. + (find_successors): Ditto. + (find_predecessors): Ditto. + (find_nodes_on_paths): Ditto. + (longest_simple_path): Ditto. + * flow.c (update_life_info): Ditto. + (count_or_remove_death_notes): Ditto. + (clear_log_links): Ditto. + * modulo-sched.c (generate_reg_moves): Ditto. + (find_max_asap): Ditto. + (find_max_hv_min_mob): Ditto. + (find_max_dv_min_mob): Ditto. + * sbitmap.c (sbitmap_first_set_bit): Ditto. + * sched-rgn.c (extract_edgelst): Ditto. + * tree-into-ssa.c (prepare_names_to_update): Ditto. + (dump_update_ssa): Ditto. + (ssa_names_to_replace) Ditto. + (switch_virtuals_to_full_rewrite): Ditto. + (update_ssa): Ditto. + * tree-vect-transform.c (vect_create_epilog_for_reduction): Ditto. + +2005-07-18 Daniel Berlin + + Fix PR tree-optimization/22483 + + * tree-complex.c (create_components): Use + safe_referenced_var_iterator and FOR_EACH_REFERENCED_VAR_SAFE. + * tree-flow-inline.h (fill_referenced_var_vec): New function. + * tree-flow.h (safe_referenced_var_iterator): New structure. + (FOR_EACH_REFERENCED_VAR_SAFE): New macro. + * tree-ssa-alias.c (setup_pointers_and_addressables): Use + safe_referenced_var iterator. + (add_type_alias): Ditto. + +2005-07-19 Steven Bosscher + + * loop-init.c (rest_of_handle_loop2): Remove. + (rtl_loop_init, rtl_loop_done, rtl_move_loop_invariants, + rtl_unswitch, rtl_unroll_and_peel_loops, rtl_doloop): New functions. + (pass_rtl_loop_init, pass_rtl_loop_done, + pass_rtl_move_loop_invariants, pass_rtl_unswitch, + pass_rtl_unroll_and_peel_loops, pass_rtl_doloop): New passes. + * tree-ssa-loop.c (pass_loop, pass_loop_init, pass_loop_done, + pass_unswitch): Rename to pass_tree_loop, pass_tree_loop_init, + pass_tree_loop_done, and pass_tree_unswitch. + (gate_loop): Rename to gate_tree_loop. + * passes.c (init_optimization_passes): Update for renamed tree + loop passes. Add the new loop2 passes as subpasses of loop2. + * tree-pass.h: Add extern declarations for the new loop2 subpasses. + Update for the renamed tree loop passes. + +2005-07-18 Ian Lance Taylor + + PR middle-end/22057 + * tree-cfgcleanup.c (cleanup_tree_cfg): Only remove forwarder + blocks when optimizing. + +2005-07-18 Steve Ellcey + + * common.opt (frename-registers): Initialize to 2. + (fweb): Ditto. + (fgcse-after-reload): Ditto. + * toplev.c (AUTODETECT_FLAG_VAR_TRACKING): Rename to AUTODETECT_VALUE. + (process_options): Only change flag_web, flag_rename_registers, + and flag_rerun_cse_after_loop if not explicitly set by user. + +2005-07-18 Jan Beulich + + * config/i386/i386.c (ix86_expand_branch, ix86_expand_setcc, + ix86_expand_carry_flag_compare, ix86_expand_int_movcc): Handle TImode + in 64-bit mode the same as DImode in 32-bit mode. + (ix86_expand_ashl_const, ix86_split_ashl, ix86_split_ashr, + ix86_split_lshr): Likewise. Rename to no longer refer to a specific + mode. Add new mode parameter. + * config/i386/i386.h (CONST_OK_FOR_LETTER_P): Describe and handle 'O'. + * config/i386/i386.md (cmpti, addti3, subti3, negti2, ashlti3, ashrti3, + x86_64_shift_adj): New expanders. + (*addti3_1, *subti3_1, *negti2_1, ashlti3_1, *ashlti3_2, ashrti3_1, + *ashrti3_2, lshrti3_1, *lshrti3_2, x86_64_shld, x86_64_shrd): New + insns. + Respective new splitters. Use renamed shift splitter helpers in 32-bit + DImode shift splitters. + * config/i386/i386-protos.h (ix86_split_ashl, ix86_split_ashr, + ix86_split_lshr): Renamed from ix86_split_[al]sh[rl]di. Added new + mode parameter. + +2005-07-18 Jan Beulich + + * i386.md (movdi_extzv_1): New. + (zero_extendhidi2): Combine alternatives and never force use of + REX64 prefix. + (zero_extendqidi2): Likewise. Don't restrict input selection. + +2005-07-17 Daniel Berlin + + Fix PR tree-optimization/22531 + * tree-ssa-pre.c (do_eustores): Make sure LHS is a decl for the + moment. + +2005-07-17 Daniel Berlin + + * tree-promote-statics.c (pass_promote_statics): Change dump file + name. + +2005-07-17 Daniel Berlin + + * tree-optimize.c (init_tree_optimization_passes): Add + pass_eliminate_useless_stores pass. + * tree-pass.h (pass_eliminate_useless_stores): New pass structure. + * tree-ssa-pre.c (is_copy_stmt): New function. + (follow_copies_till_vuse): Ditto. + (do_eustores): Ditto. + (gate_eustores): Ditto. + +2005-07-16 Richard Henderson + + * gcc.c (MFWRAP_SPEC): Don't wrap pthread_join or pthread_exit. + +2005-07-16 Danny Berlin + Kenneth Zadeck + + * Makefile.in: Added rules for ipa-pure-const.c, ipa-reference.c, + ipa-reference.h, ipa-utils.c, ipa-utils.h, ipa-type-escape.c, + ipa-type-escape.h, tree-promote-statics.c + * ipa-pure-const.c, ipa-reference.c, ipa-reference.h, ipa-utils.c, + ipa-utils.h, ipa-type-escape.c, ipa-type-escape.h, + tree-promote-statics.c: new files. + * alias.c: (nonlocal_mentioned_p_1, nonlocal_mentioned_p, + nonlocal_referenced_p_1, nonlocal_referenced_p, nonlocal_set_p_1, + int nonlocal_set_p, mark_constant_function): Deleted. + (rest_of_handle_cfg): Removed call to mark_constant_function. + (nonoverlapping_component_refs_p): Added calls to support + type based aliasing. + * tree-ssa-alias.c (may_alias_p, + compute_flow_insensitive_aliasing): Ditto. + * calls.c (flags_from_decl_or_type): Removed reference to + cgraph_rtl_info. + * c-typeck.c (convert_arguments): Make builtins tolerant of having + too many arguments. This is necessary for Spec 2000. + * cgraph.h (const_function, pure_function): Removed. + * common.opt: Added "fipa-pure-const", "fipa-reference", + "fipa-type-escape", and "ftree-promote-static". + * opts.c: Ditto. + * passes.c: Added ipa and tree-promote-statics passes. + * timevar.def: Added TV_IPA_PURE_CONST, TV_IPA_REFERENCE, + TV_IPA_TYPE_ESCAPE, and TV_PROMOTE_STATICS. + * tree-dfa.c (referenced_var_lookup_if_exists): New function. + * tree-flow.h: Added exposed sra calls and addition of + reference_vars_info field for FUNCTION_DECLS. + * tree-pass.h: Added passes. + * tree-sra.c: (sra_init_cache): New function. + (sra_insert_before, sra_insert_after) Made public. + (type_can_be_decomposed_p): Renamed from type_can_be_decomposed_p + and made public. + * tree-ssa-alias.c (dump_alias_stats): Added stats for type based + aliasing. (may_alias_p): Added code to use type escape analysis to + improve alias sets. + * tree-ssa-operands.c (add_call_clobber_ops): Added parameter and + code to prune clobbers of static variables based on information + produced in ipa-reference pass. Changed call clobbering so that + statics are not marked as clobbered if the call does not clobber + them. + +2005-07-16 Daniel Berlin + + * tree-ssa-structalias.c (need_to_solve): Need to check for preds, + too. + +2005-07-16 Eric Botcazou + + * doc/install.texi (*-*-solaris2*): Document recommended version + of GNU binutils and mention GNU linker problem on Solaris 10. + +2005-07-16 Joseph S. Myers + + PR c/22421 + * c-decl.c (c_build_bitfield_integer_type): New function. + (finish_struct): Call it. + * c-pretty-print.c (pp_c_type_specifier): Handle bit-field types. + +2005-07-16 Kaveh R. Ghazi + + * c-typeck.c (digest_init): Call 'convert_for_assignment' + before returning. + +2005-07-16 Jan Hubicka + + * cfg.c (update_bb_profile_for_threading): Fix profile updating. + (scale_bbs_frequencies_int): Watch roundoff errors. + * predict.c (return_prediction): Initialize return_stmt. + +2005-07-16 Jan Hubicka + + * profile.c (rest_of_handle_branch_prob): Fix handling of estimation + after RTL profiling. + +2005-07-11 Andrew Pinski + + PR middle-end/22398 + * fold-const.c (build_range_check): Convert high/low to etype + if we are only comparing against exp. + +2005-07-13 Daniel Berlin + + Fix PR tree-optimization/22376 + * tree-ssa-structalias.c (build_constraint_graph): We really meant + special var here. + (need_to_solve): New function. + (compute_points_to_sets): Use it. + +2005-07-15 Jan Hubicka + + * cfg.c (update_bb_profile_for_threading): More diagnostic. + * tree-ssa-threadupdate.c (redirect_edges): Update profile of dup_block. + +2005-07-15 Richard Guenther + + * c-common.c (handle_flatten_attribute): New function. + Add flatten function attribute. + * doc/extend.texi: Document flatten function attribute. + * Makefile.in (ipa-inline.o): Depend on hashtab.h. + * ipa-inline.c (cgraph_find_cycles, cgraph_flatten_node): + New functions. + (cgraph_decide_inlining): Handle functions with flatten + attribute. + +2005-07-14 David Edelsohn + + * config/rs6000/rs6000.md (UNSPEC_SYNC, UNSPEC_LWSYNC, + UNSPEC_ISYNC, UNSPEC_SYNC_OP, UNSPEC_ATOMIC, UNSPEC_CMPXCHG, + UNSPEC_XCHG, UNSPEC_AND): New. + (UNSPECV_ATOMIC, UNSPECV_SYNC, UNSPECV_SYNC_OP, UNSPECV_CMPXCHG, + UNSPECV_LWSYNC, UNSPECV_ISYNC): Delete. + * config/rs6000/sync.md (FETCHOP): New code macro. + (fetchop_name, fetchop_pred, fetchopsi_constr, fetchopdi_constr): + New code attrs. + (memory_barrier, sync_internal): Use unspec instead of unspec_volatile. + (sync_compare_and_swap): Same. + (sync_lock_test_and_set): Same. + (sync_, sync_nand): Only use rs6000_emit_sync + for QImode and HImode, and not PPC405. + (sync_old_, sync_old_nand): Same. + (sync_new_, sync_new_nand): Same. + (sync_{si,di}_internal): New. + (sync_nand{si,di}_internal): New. + (sync_old_{si,di}_internal): New. + (sync_old_nand{si,di}_internal): New + (sync_new_{si,di}_internal): New. + (sync_new_nand{si,di}_internal): New. + (atomic_and{si,di}): New. + (sync_new_nand{si,di}_internal): New. + (atomic_and{si,di}): New. + (sync_add_internal): Delete. + (sync_addshort_internal): Use unspec instead of unspec_volatile. + (sync_sub_internal): Delte. + (sync_subshort_internal): New. + (sync_andsi_internal): Use unspec instead of unspec_volatile. + (sync_anddi_internal): Delete. + (sync_boolsi_internal): Use unspec instead of unspec_volatile. + (sync_booldi_internal): Delete. + (sync_boolc_internal): Delete. + (sync_boolcshort_internal): Use unspec instead of unspec_volatile. + (sync_boolc_internal2): Delete. + (sync_boolcc_internal): Delete. + (isync, lwsync): Use unspec instead of unspec_volatile. + * config/rs6000/rs6000.c (rs6000_emit_sync): Implement MINUS. + Revert UNSPEC_VOLATILE. + (rs6000_split_atomic_op): New. + * config/rs6000/rs6000-protos.h (rs6000_split_atomic_op): Declare. + +2005-07-14 Eric Christopher + + * config/mips/mips.c (mips_canonicalize_comparison): Cast + argument of trunc_int_for_mode to unsigned HOST_WIDE_INT. + +2005-07-14 Eric Christopher + + * config/s390/t-tpf (SHLIB_MAPFILES): Remove. + +2005-07-14 Steven Bosscher + + PR tree-optimization/22230 + * tree-vrp.c (extract_range_from_binary_expr): Fix logics thinko in + the computation of the four cross productions for "range op range". + +2005-07-14 Alexandre Oliva + Ulrich Weigand + + PR target/20126 + * loop.c (loop_givs_rescan): Do not ICE if unable to reduce an IV + in some insn. + +2005-07-14 Ulrich Weigand + + * config/s390/s390.h (TARGET_TPF_PROFILING): Add default definition. + +2005-07-14 Steve Ellcey + + * config/ia64/ia64.c (ia64_output_dwarf_dtprel): Support ILP32 mode. + +2005-07-14 Richard Guenther + + PR middle-end/22347 + * config/i386/i386-protos.h (ix86_function_value): Change + prototype to match new target hook. + * config/i386/i386.c (ix86_value_regno): Change prototype + to take extra type argument. + (TARGET_FUNCTION_VALUE): Define. + (ix86_function_ok_for_sibcall): Pass extra argument to + ix86_value_regno, check return slot rtx for exact match. + (ix86_function_value): Take extra parameter. Dispatch to + ix86_value_regno with fndecl/fntype as provided. + (ix86_value_regno): Handle extra type argument. + * config/i386/i386.h (FUNCTION_VALUE): No longer define. + + * testsuite/gcc.target/i386/sseregparm-3.c: New testcase. + * testsuite/gcc.target/i386/sseregparm-4.c: New testcase. + * testsuite/gcc.target/i386/sseregparm-5.c: New testcase. + * testsuite/gcc.target/i386/sseregparm-6.c: New testcase. + * testsuite/gcc.target/i386/sseregparm-7.c: New testcase. + +2005-07-14 Richard Guenther + + * Makefile.in (explow.o, reg-stack.o): Depend on target.h. + * calls.c (expand_call): Pass fntype to hard_function_value. + (emit_library_call_value_1): Likewise. + * explow.c: Include target.h. + (hard_function_value): Take extra argument, the fntype. + Use new target hook for function_value. + * expr.h (hard_function_value): Change prototype. + * function.c (aggregate_value_p): Pass 0 as fntype to + hard_function_value. + (assign_parms): Use new target hook for function_value. + Pass 0 as fntype to hard_function_value. + (expand_function_end): Likewise. + * reg-stack.c: Include target.h. + (stack_result): Use new target hook for function_value. + * target-def.h: New target hook function_value. + * target.h: Likewise. + * targhooks.c (default_function_value): New function. + * targhooks.h (default_function_value): Declare. + +2005-07-13 Ian Lance Taylor + + * config/mips/mips.h (CLZ_DEFINED_VALUE_AT_ZERO): Define. + +2005-07-14 Jan Hubicka + + * tree-dfa.c (dump_variable): Use default_def function. + * tree-ssa-alias.c (dump_points_to_info): Likewise. + * tree-ssa.c (verify_use): Likewise. + * tree-ssanames.c (release_ssa_name): Likewise. + * tree-tailcall.c (eliminate_tail_call): Likewise. + (tree_optimize_tail_calls_1): Likewise. + * tree-vrp.c (get_value_range): Likewise. + +2005-07-14 Ben Elliston + + * gcc.c (main): Compare language[0] with '*' when iterating over + the infiles. + +2005-07-13 Adrian Straetling + + * config/s390/s390.c: (s390_cc_modes_compatible): Move before + "s390_emit_compare". Add handling of CCZ1mode. + (s390_canonicalize_comparison): Simplify cascaded EQ, NE. + (390_emit_compare): Use "s390_cc_modes_compatible" for mode + checking. + (s390_branch_condition_mask): Add CCZ1mode handling. + * config/s390/s390.md: ("seq", "*seq"): New pattern. + ("sync_compare_and_swap_cc", "*sync_compare_and_swap_cc"): + Use CCZ1mode instead of CCZmode. + * config/s390/s390-modes.def: Add CCZ1mode. Comment new mode. + +2005-07-13 Adrian Straetling + + * config/s390/s390.md: ("cmpstrsi", "*cmpstr"): New + pattern. + ("strlen", "*strlen"): Use hard reg 0 in SImode. + +2005-07-13 Eric Christopher + + * config/mips/mips.c (mips_canonicalize_comparison): New. + (mips_emit_int_relational): Use. + +2005-07-13 Eric Christopher + + * config.gcc (s390x-ibm-tpf*): Add extra_options. Remove + static extra parts. + * config/s390/s390.md: Include tpf.md. Move tpf specific + patterns... + * config/s390/tpf.md: To here. + * config/s390/s390.opt: Move tpf specific options... + * config/s390/tpf.opt: to here. Add mmain option. + * config/s390/tpf-unwind.h: Remove unnecessary defines. + * config/s390/tpf.h: Rewrite. + +2005-07-13 H.J. Lu + + * doc/tm.texi: Remove @xref{Cross-profiling}. + +2005-07-13 Jeff Law + + * fold-const.c (fold_binary): When comparing two simple ADDR_EXPR + expressions, test their _DECL operands for pointer equality rather + than using operand_equal_p. + +2005-07-13 H.J. Lu + + * config/alpha/linux.h (TARGET_HAS_F_SETLKW): Renamed to ... + (TARGET_POSIX_IO): This. + * config/darwin.h: Likewise. + * config/freebsd.h: Likewise. + * config/linux.h: Likewise. + * config/lynx.h: Likewise. + * config/netbsd.h: Likewise. + * config/rs6000/linux64.h: Likewise. + * config/rs6000/linux.h: Likewise. + * config/s390/tpf.h: Likewise. + * config/sh/embed-elf.h: Likewise. + * config/sparc/linux64.h: Likewise. + * config/sparc/linux.h: Likewise. + * config/svr4.h: Likewise. + * gcov-io.h: Likewise. + + * doc/tm.texi: Updated. + + * libgcov.c (create_file_directory): Defined only if + TARGET_POSIX_IO is defined. + (gcov_exit): Call create_file_directory only if TARGET_POSIX_IO + is defined. + +2005-07-13 Jan Hubicka + + * tree-ssa-operands.c (get_expr_operands): Fix typo in previous patch. + +2005-07-13 David Edelsohn + + * tree-ssa-dom.c (lookup_avail_expr): Do not pass member in freed + structure as argument. + +2005-07-13 Paolo Bonzini + + PR tree-optimization/21921 + * tree-iterator.c (tsi_link_before): Support the case when + tsi_end_p (tsi) == true. + +2005-07-12 Zdenek Dvorak + + PR tree-optimization/22442 + * tree-chrec.c (chrec_fold_multiply_poly_poly): Associate chrecs + correctly. + +2005-07-12 Zdenek Dvorak + + PR rtl-optimization/20376 + * toplev.c (process_options): Enable -fweb and -frename-registers when + unrolling. + * doc/invoke.texi: Update the information about when -fweb and + -frename-registers are enabled. + +2005-07-12 Andrew Pinski + + PR tree-opt/21840 + * tree-ssa-pre.c (eliminate): Convert the sprime to the correct type + if *rhs_p is not a SSA_NAME. + +2005-07-12 Daniel Berlin + + Fix PR tree-optimization/22422 + * tree-ssa-structalias.c (struct variable_info): Add flag for + special vars. + (get_varinfo): Now a static function. + (new_varinfo): init has_union and is_special_var to false. + (solution_set_add): Check has_union. + (do_da_constraint): Move temporary variable so it gets reset + properly. + Also check for special variable. + (do_ds_constraint): Ditto. + (do_sd_constraint): Ditto. + (do_structure_copy): Check for special variable. + (find_func_aliases): Ditto. + (init_base_vars): Set special vars properly. + +2005-07-13 Jan Hubicka + + * cfgexpand.c (expand_one_stack_var): Do not expand variables when we + do unit-at-a-time. + + * tree-ssa-operands.c (parse_ssa_operands): Fix formatting. + (get_expr_operands): Fix thinko wrt flags and subvars. + + PR tree-optimize/22379 + * tree-inline.c (expand_call_inline): Do not output sorry in early + inlining. + +2005-07-12 Dale Johannesen + + * config/rs6000.c (rs6000_rtx_cost): Move FLOAT_EXTEND. + +2005-07-12 Andrew Pinski + + PR bootstrap/21704 + * host-linux.h: Include limits.h. + +2005-07-12 Dale Johannesen + + * expr.c (compress_float_constant): Add cost check. + * config/rs6000.c (rs6000_rtx_cost): Adjust FLOAT_EXTEND cost. + +2005-07-12 Dale Johannesen + + * gcc.target/i386/compress-float-sse.c: New. + * gcc.target/i386/compress-float-sse-pic.c: New. + * gcc.target/i386/compress-float-387.c: New. + * gcc.target/i386/compress-float-387-pic.c: New. + * gcc.dg/compress-float-ppc.c: New. + * gcc.dg/compress-float-ppc-pic.c: New. + +2005-07-12 Eric Christopher + + * config.gcc (s390x-ibm-tpf*): Add extra_options. Remove + static extra parts. + * config/s390/s390.md: Include tpf.md. Move tpf specific + patterns... + * config/s390/tpf.md: To here. + * config/s390/s390.opt: Move tpf specific options... + * config/s390/tpf.opt: to here. Add mmain option. + * config/s390/tpf-unwind.h: Remove unnecessary defines. + * config/s390/tpf.h: Rewrite. + +2005-07-12 Eric Christopher + + * gcc.c (struct infile): Update comment for language. + (main): Rewrite input file resetting code. + +2005-07-12 Andrew Pinski + + PR tree-opt/22335 + * tree-ssa-dom.c (eliminate_redundant_computations): Reject the prop if + requiring a cast in a non RHS of modify_expr. Add a cast when required. + (lookup_avail_expr): Use constant_boolean_node instead + of boolean_false_node/boolean_true_node. + +2005-07-12 Ben Elliston + + * tree-cfg.c (dump_cfg_stats): Add a new fmt_str_2 format string + and use it when printing num_edges. + +2005-07-12 Bernd Schmidt + + * doc/extend.texi (Blackfin Built-in Functions): New section. + * doc/invoke.texi (mcsync-anomaly, mno-csync-anomaly): Fix the + @opindex. + +2005-07-12 Adrian Straetling + + * builtins.c: (expand_builtin_memcmp, expand_builtin_strncmp): + s/cmpstrsi/cmpstrnsi + (expand_builtin_strcmp): Rewrite to support both 'cmpstrsi' and + 'cmpstrnsi'. + * optabs.c: (prepare_cmp_insn): Add availability of 'cmpstrn'. + (init_optabs): Initialize cmpstrn_optab. + * optabs.h: (enum insn_code cmpstrn_optab): Declare. + * genopinit.c: (optabs[]): Add 'cmpstrn' to initialisation. + * expr.c: (enum insn_code cmpstrn_optab): Declare. + * config/i386/i386.md: s/cmpstr/cmpstrn + * config/c4x/c4x.md: s/cmpstr/cmpstrn + * doc/md.texi: Update documentation. + +2005-07-11 Richard Henderson + + * config/alpha/alpha.c (alpha_gimplify_va_arg_1): Use + build_va_arg_indirect_ref. + (alpha_gimplify_va_arg): Likewise. + * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Likewise. + * config/i860/i860.c (i860_gimplify_va_arg_expr): Likewise. + * config/mips/mips.c (mips_gimplify_va_arg_expr): Likewise. + * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise. + * config/sh/sh.c (sh_gimplify_va_arg_expr): Likewise. + * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_arg): + Likewise. + * config/xtensa/xtensa.c (xtensa_gimplify_va_arg_expr): Likewise. + +2005-07-12 Zdenek Dvorak + + * tree-flow.h (remove_empty_loops, single_dom_exit): Declare. + * passes.c (init_optimization_passes): Add pass_empty_loop. + * tree-pass.h (pass_empty_loop): Declare. + * tree-ssa-loop-ivcanon.c (empty_loop_p, remove_empty_loop, + try_remove_empty_loop, remove_empty_loops): New functions. + * tree-ssa-loop-ivopts.c (single_dom_exit): Export. + * tree-ssa-loop.c (tree_ssa_empty_loop, pass_empty_loop): New. + +2005-07-12 Peter Barada + + PR middle-end/16719 + PR middle-end/18421 + * config/m68k/m68k.h (HARD_REGNO_MODE_OK): Disallow bytes + in address registers. + * config/m68k/m68k.c (hard_regno_mode_ok): Likewise. + * config/m68k/m68k.md: Replace 's' with 'i' in 4th + alternative of addsi3_5200. + +2005-07-11 Ian Lance Taylor + + * config/mips/mips.md (ffs2): Remove. + +2005-07-11 Ian Lance Taylor + + * doc/tree-ssa.texi (Cleanups): Improve description of + TRY_FINALLY_EXPR. + (GIMPLE Exception Handling): Clarify TRY_CATCH_EXPR cases. + +2005-07-11 Daniel Berlin + + * print-tree.c (print_node): Use DECL_ARGUMENT_FLD. + * tree.h (DECL_ARGUMENT_FLD): New macro. + +2005-07-11 Daniel Berlin + + Fix PR tree-optimization/22404 + + * tree-ssa-structalias.c (create_variable_info_for): Use + correct offset. + +2005-07-11 Bernd Schmidt + + * config/bfin/bfin.md (cmpsi, compare_eq, compare_ne, compare_lt, + compare_le, compare_leu, compare_ltu): Use reg_or_const_int_operand + for second comparison operand. + * config/bfin/predicates.md (reg_or_const_int_operand): New. + + * config/bfin/bfin.md (define_attr "type"): Add "sync". + (define_insn_reservation "alu"): Likewise. + (csync, ssync): Now of type sync. + * config/bfin/bfin.h (TARGET_DEFAULT): Defaults to + -mcsync-anomaly -mspecld-anomaly. + * config/bfin/bfin.opt (mcsync): Remove. + (mcsync-anomaly, mspecld-anomaly): Add. + * config/bfin/bfin.c: Include "insn-codes.h". + (bfin_reorg): Extend to handle the CSYNC anomaly as well. + (TARGET_DEFAULT_TARGET_FLAGS): New. + * doc/invoke.texi: Document -mcsync-anomaly, -mspecld-anomaly. + +2005-07-11 Steven Bosscher + + * basic-block.h: Give the BB flags enum a name, bb_flags. + Add new flags BB_FORWARDER_BLOCK, and BB_NONTHREADABLE_BLOCK. + * cfgcleanup.c (enum bb_flags): Remove here. + (BB_FLAGS, BB_SET_FLAG, BB_CLEAR_FLAG): Remove. + (notice_new_block): Set/test bb->flags instead of aux via BB_FLAGS. + (update_forwarder_flag): Likewise. + (thread_jump): Likewise. + (try_forward_edges): Likewise. + (try_optimize_cfg): Likewise. Clear bb->flags before updating the + forwarder flags. Don't clear bb->aux for all basic blocks. Only + reset the BB_FORWARDER_BLOCK and BB_NONTHREADABLE_BLOCK flags. + +2005-07-11 Richard Guenther + + * config/i386/i386.opt: New target option -msseregparm. + * config/i386/i386.c (override_options): Error out for + -msseregparm but no SSE support. + (ix86_function_sseregparm): Check for global sseregparm. + * doc/invoke.texi: Document -msseregparm. + +2005-07-11 Kazuhiro Inaoka + + * config.gcc (m32r-*-linux*): Use the default extra_parts. + (m32rle-*-linux*): Ditto. + +2005-07-11 Jakub Jelinek + + * cfgexpand.c (stack_protect_classify_type): Use TYPE_SIZE_UNIT (type) + instead of TYPE_MAX_VALUE (TYPE_DOMAIN (type)) to get array size in + bytes. + +2005-07-10 John David Anglin + + PR middle-end/22239 + PR target/20126 + * loop.c (loop_givs_rescan): Use expand_simple_binop instead of + gen_rtx_MINUS to handle non-replaceable (plus ((x) (const)). + +2005-07-07 Daniel Berlin + + * tree-ssa-structalias.c (struct variable_info): Heapify complex. + (varmap): Heapify varmap. + (constraints): Heapify constraints. + (struct constraint_graph): Heapify succs and preds. + (constraint_vec_find): Update for heapification. + (constraint_set_union): Ditto. + (insert_into_complex): Ditto. + (constraint_edge_vec_find): Ditto. + (erase_graph_self_edge): Ditto. + (add_graph_edge): Ditto. + (get_graph_weights): Ditto. + (merge_graph_nodes): Ditto. + (build_constraint_graph): Ditto. + (topo_visit): Ditto. + (solve_graph): Ditto. + (create_variable_info_for): Ditto. + (init_base_vars): Ditto. + (delete_points_to_sets): Free graph, varmap, and complex constraints. + (condese_varmap_nodes): Free complex vector. + (clear_edges_for_node): Clear succs and preds vector. + +2005-07-10 Daniel Berlin + + * tree-ssa-structalias.c (update_alias_info): Change counting of + references to not include vdefs. + +2005-07-10 Daniel Berlin + + * tree-ssa-alias.c (free_used_part_map): Add missing free. + (up_insert): Ditto. + +2005-07-10 John David Anglin + + * pa.c (pa_commutative_p): Make PLUS commutative when + TARGET_NO_SPACE_REGS is true. + +2005-07-09 Diego Novillo + + * Makefile.in (tree-ssa-alias.o): Depend on tree-ssa-structalias.h + * tree-cfg.c (CHECK_OP): Only test for is_gimple_val. + * tree-dfa.c (dump_subvars_for): New. + (debug_subvars_for): New. + (dump_variable): Show subvariables if VAR has them. + * tree-flow-inline.h (get_subvar_at): New. + (overlap_subvar): Change offset and size to unsigned HOST_WIDE_INT. + * tree-flow.h (struct ptr_info_def): Remove field pt_malloc. + Update all users. + (struct subvar): Change fields offset and size to unsigned + HOST_WIDE_INT. + (dump_subvars_for): Declare. + (debug_subvars_for): Declare. + (get_subvar_at): Declare. + (okay_component_ref_for_subvars): Change 2nd and 3rd argument + to unsigned HOST_WIDE_INT *. + (overlap_subvar): Likewise. + * tree-gimple.c (is_gimple_reg): Always return false for + SFTs and memory tags. + * tree-pass.h (pass_build_pta, pass_del_pta): Remove. + Update all callers. + * tree-ssa-alias.c: Include tree-ssa-structalias.h. + (compute_may_aliases): Call compute_points_to_sets. + (collect_points_to_info_for): Remove. + (compute_points_to_and_addr_escape): Remove. + (delete_alias_info): Call delete_points_to_sets. + (compute_flow_sensitive_aliasing): If the call to + find_what_p_points_to returns false, call set_pt_anything. + (add_may_alias): Set TREE_ADDRESSABLE when adding a new alias. + (set_pt_anything): Clear pi->pt_vars. + (set_pt_malloc): Remove. + (merge_pointed_to_info): Remove. + (add_pointed_to_expr): Remove. + (add_pointed_to_var): Remove. + (collect_points_to_info_r): Remove. + (is_escape_site): Make extern. + (create_sft): New. + (create_overlap_variables_for): Call it. + * tree-ssa-copy.c (merge_alias_info): Never merge + flow-sensitive alias information. + * tree-ssa-operands.c (get_expr_operands): Adjust variables + offset and size to be unsigned HOST_WIDE_INT. + (add_to_addressable_set): Rename from note_addressable. + Set TREE_ADDRESSABLE as the variables are added to the set. + Update all users. + (add_stmt_operand): Do not try to micro-optimize unmodifiable + operands into VUSEs when adding V_MAY_DEFs for members in an + alias set. + * tree-ssa-operands.h (add_to_addressable_set): Declare. + * tree-ssa-structalias.c: Include tree-ssa-structalias.h last. + (struct variable_info): Add bitfield is_heap_var. + (var_anyoffset, anyoffset_tree, anyoffset_id): Declare. + (new_var_info): Initialize is_heap_var. + (get_constraint_for): Add HEAP variables to the symbol table. + Mark them with is_heap_var. + (update_alias_info): New. Taken mostly from the old + compute_points_to_and_addr_escape. + (handle_ptr_arith): New. + (find_func_aliases): Call update_alias_info. + Call handle_ptr_info for tcc_binary expressions. + Call mark_stmt_modified. + (create_variable_info_for): If DECL has subvars, do not create + variables for its subvars. Always add all the fields. + (set_uids_in_ptset): If the solution includes ANYOFFSET and + SFTs, then add all the SFTs of the structure. + If VI->DECL is an aggregate with subvariables, add the SFT at + VI->OFFSET. + (find_what_p_points_to): If VI is an artificial variable, + translate to bitfields in SSA_NAME_PTR_INFO. + If the solution is empty, set pi->pt_vars to NULL + (init_base_vars): Create ANYOFFSET. + (compute_points_to_sets): Rename from create_alias_vars. + Make extern. + (pass_build_pta): Remove. + (delete_points_to_sets): Rename from delete_alias_vars. + (pass_del_pta): Remove. + * tree-ssa-structalias.h (struct alias_info): Move from + tree-ssa-alias.h. + (NUM_REFERENCES, NUM_REFERENCES_CLEAR, NUM_REFERENCES_INC, + NUM_REFERENCES_SET): Likewise. + (compute_points_to_sets, delete_points_to_sets): Declare. + +2005-07-09 Richard Henderson + + * config/alpha/alpha.c (emit_insxl, alpha_expand_compare_and_swap_12, + alpha_split_compare_and_swap_12, alpha_expand_lock_test_and_set_12, + alpha_split_lock_test_and_set_12): New functions. + * config/alpha/alpha-protos.h: Update. + * config/alpha/alpha.md (UNSPEC_MB, UNSPEC_ATOMIC, + UNSPEC_CMPXCHG, UNSPEC_XCHG): Rename from UNSPECV_FOO. + * config/alpha/sync.md (I12MODE): New. + (memory_barrier, mb_internal): Use unspec instead of unspec_volatile. + (sync_): Likewise. + (sync_nand): Likewise. + (sync_old_): Likewise. + (sync_new_): Likewise. + (sync_old_nand, sync_new_nand): Likewise. + (sync_compare_and_swap): Likewise. + (sync_lock_test_and_set): Likewise. + (sync_compare_and_swap): New. + (sync_compare_and_swap_1): New. + (sync_lock_test_and_set): New. + (sync_lock_test_and_set_1): New. + +2005-07-09 Diego Novillo + + PR 21356 + PR 22332 + * passes.c (execute_todo): Cleanup the CFG before updating SSA. + +2005-07-09 Jakub Jelinek + + * config/i386/i386.c (output_set_got): Don't omit OFFSET FLAT: + in Intel syntax add %reg, OFFSET FLAT:_GLOBAL_OFFSET_TABLE_+(.-.Lx). + +2005-07-09 Richard SAndiford + + PR target/21656 + * config/mips/elf.h (NO_IMPLICIT_EXTERN_C): Define. + +2005-07-08 David Edelsohn + + * config/rs6000/sync.md (load_locked_): Use Z for + memory_operand constraint. + (store_conditional_): Same. + (sync_compare_and_swap): Same. + (sync_lock_test_and_set): Same. + +2005-07-08 Hans-Peter Nilsson + + Rewrite PIC support to more closely model actual instructions. + * config/cris/cris-protos.h (cris_gotless_symbol, cris_got_symbol) + (cris_symbol): Remove prototypes for removed functions. + (cris_pic_symbol_type_of, cris_valid_pic_const) + (cris_expand_pic_call_address): Prototypes for new functions. + * config/cris/cris/cris.c (cris_pic_sympart_only): Remove unused + variable. + (cris_print_operand) : Remove cases for unused + modifiers. + : Add case for new punctuation character. + : Temporarily set flag_pic = 2 instead of incorrectly + emitting (extra) PIC modifier. + : Do not assert for PLT. + (cris_initial_frame_pointer_offset, cris_simple_epilogue) + (cris_expand_prologue, cris_expand_epilogue): Check + for pic_offset_table_rtx usage instead of taking + current_function_uses_pic_offset_table as the final word. + (cris_rtx_costs, cris_address_cost, cris_side_effect_mode_ok): + Remove flag_pic difference. + (cris_valid_pic_const, cris_pic_symbol_type_of): New functions, + the moral equivalents of... + (cris_symbol, cris_gotless_symbol, cris_got_symbol): Remove + functions. + (cris_legitimate_pic_operand): Just call cris_valid_pic_const. + (cris_handle_option): Mark ARG as unused. + (cris_expand_pic_call_address): New worker function for "call", + "call_value". + (cris_asm_output_symbol_ref, cris_asm_output_label_ref): Do not + output PIC constructs here. + (cris_output_addr_const_extra): Changes for emitting PIC modifiers + as symbol-specific modifers, not whole or part of operands. + * config/cris/cris/cris.h (EXTRA_CONSTRAINT): Remove 'U' case. + (EXTRA_CONSTRAINT_S): Changed semantics: allow only CONST-wrapped + constants and flag_pic. + (CONSTANT_INDEX_P): Adjust for new functions. + (enum cris_pic_symbol_type): New helper type. + (PRINT_OPERAND_PUNCT_VALID_P): Add ':'. + * config/cris/cris/cris.md (CRIS_UNSPEC_GOTREL) + (CRIS_UNSPEC_GOTREAD, CRIS_UNSPEC_PLTGOTREAD): New + define_constants. + ("movsi"): Emit actual instructions for GOT and relative access. + ("*movsi_got_load"): New pattern to set up the register holding + the GOT pointer. + ("*movsi_internal"): Operand 1 is not a plain general_operand. + Adjust FIXME for 'S'. + : Sanity-check UNSPEC types for PIC. + Use "movs" for -fpic cases. + ("addsi3"): Add alternative for 'S'; use adds.w when possible. + ("uminsi3","*expanded_call_value"): Remove 'S' alternative. + ("call", "call_value"): Just call cris_expand_pic_call_address for + PIC addresses. + ("*expanded_call_no_gotplt", "*expanded_call_value_no_gotplt"): + Remove special pattern. + ("*expanded_call_side", "*expanded_call_value_side"): New + patterns. + (gotplt-to-plt, gotplt-to-plt-side-call) + (gotplt-to-plt-side-call-value, gotplt-to-plt-side): New + peephole2:s. + * config/cris/cris/predicates.md + ("cris_general_operand_or_gotless_symbol"): Remove unused + predicate. + ("cris_general_operand_or_symbol"): Adjust for new functions. + +2005-07-08 Andrew Pinski + + * config/darwin.h (TARGET_C99_FUNCTIONS): Define to 1. + +2005-07-08 Daniel Berlin + + * Makefile.in (TREE_H): Add treestruct.def. + (c-decl.o): Add pointer-set.h + * c-decl.c (diagnose_mismatched_decls): Don't attempt to look at + visibility on regular DECL's. + (merge_decls): Fix the copying of decl nodes of various types for + the new structures. Don't update RTL, section name, weak status, + etc, on DECL's without RTL. + (grokdeclarator): DECL_ARG_TYPE_AS_WRITTEN is gone. + Don't check volatile on non-variable types. + (store_parm_decls_oldstyle): Use pointer_set instead of DECL_WEAK + to check whether we have seen arguments. + * c-objc-common.c (c_tree_printer): Reverse order of tests so that + flag is checked before field (flag is common, field is not). + * dwarf2out.c (decl_ultimate_origin): Only DECL's with + TS_DECL_COMMON could have an origin. + (add_location_or_const_value_attribute): Don't check section name + on non-var/function decls. + (dwarf2out_var_location): Reverse order of tests. + * emit-rtl.c (set_reg_attrs_for_parm): DECL_CHECK is dead, replace + with DECL_WRTL_CHECK. + * expmed.c (make_tree): rtl is now in decl_with_rtl. + * fold-const.c (fold_binary): Don't check weakness on + non-var/function decls. + (tree_expr_nonzero_p): Ditto. + (fold_checksum_tree): Use tree_decl_extra as sizeof + buffer. + * ggc-page.c (extra_order_size_table): Add sizes for + tree_decl_non_common, tree_parm_decl, tree_var_decl, and + tree_field_decl. + * gimplify.c (gimplify_bind_expr): Only set + DECL_SEEN_IN_BIND_EXPR_P on VAR_DECL. + * integrate.c (copy_decl_for_inlining): Don't set RTL on decl's + without RTL. + * langhooks-def.h (LANG_HOOK_INIT_TS): New. + * langhooks.h (init_ts). New langhook. + * passes.c (rest_of_decl_compilation): Reverse order of tests. + * print-tree.c (print_node): Update to only print fields that + exist in the structures the passed decl has. + * toplev.c (wrapup_global_declarations): Don't reset + DECL_DEFER_OUTPUT on DECL's that don't contain it. + * tree-browser.c (browse_tree): DECL_ARG_TYPE_AS_WRITTEN removed. + * tree-inline.c (remap_decl): Ditto. + * tree-outof-ssa.c (create_temp): Reverse order of tests. + * tree-pretty-print.c (print_declaration): Don't print + DECL_REGISTER on things that don't contain it. + * tree-vrp.c (expr_computes_nonzero): Don't check weakness on + non-var/function decls. + * tree.c (tree_contains_struct): New structure. + (init_priority_for_decl): New hashtable. + (tree_int_map): New structure. + (tree_int_map_eq): New function. + (tree_int_map_marked_p): Ditto. + (tree_int_map_hash): Ditto. + (tree_map): Move to tree.h. + (tree_map_eq): Externalize. + (tree_map_hash): Ditto. + (tree_map_marked_p): Ditto. + (init_ttree): Set up tree_contains_struct and call langhook. + (decl_assembler_name): Use DECL_NON_COMMON_CHECK.. + (tree_code_size): Update for new structures. + (tree_node_structure): Update for new structures. + (make_node_stat): Don't try to set DECL_IN_SYSTEM_HEADER on decls + without the field. + (copy_node_stat): Copy init priority. + (build_decl_stat): Ditto for visibility. + (ts_enum_names): New. + (tree_contains_struct_check_failed): New function. + (decl_init_priority_lookup): Ditto. + (decl_init_priority_insert): Ditto. + * treestruct.def: New file. + * tree.h (CODE_CONTAINS_STRUCT): New macro. + (CONTAINS_STRUCT_CHECK): Ditto. + (tree_contains_struct_check_failed): New prototype. + (DECL_CHECK): Removed. + (DECL_MINIMAL_CHECK): New. + (DECL_COMMON_CHECK): Ditto. + (DECL_WRTL_CHECK): Ditto. + (DECL_NON_COMMON_CHECK): Ditto. + (DECL_WITH_VIS_CHECK): Ditto. + (VAR_OR_FUNCTION_DECL_P): Ditto + (struct tree_decl_minimal): New structure. + (struct tree_decl_common): Ditto. + (struct tree_decl_with_rtl): Ditto. + (struct tree_decl_with_vis): Ditto. + (struct tree_decl_non_common): Ditto. + (struct tree_field_decl): Ditto. + (struct tree_parm_decl): Ditto. + (struct tree_var_decl): Ditto. + (struct tree_function_decl): Ditto. + (struct tree_const_decl): Ditto. + (struct tree_result_decl): Ditto. + (union tree_node): Add new structures. + * var-tracking.c (track_expr_p): Reverse order of tests. + + * doc/c-tree.texi: Add documentation on DECL node internal structure. + +2005-07-08 Kazu Hirata + + * cfgexpand.c (tree_expand_cfg): Don't use FINALIZE_PIC. + * system.h: Poison FINALIZE_PIC. + * doc/tm.texi (FINALIZE_PIC): Remove. + +2005-07-08 Andrew Pinski + + PR tree-opt/22329 + * tree-ssa-propagate.c (fold_predicate_in): Convert the value + to the correct type if we have a MODIFY_EXPR. + +2005-07-08 Kazu Hirata + + PR tree-optimization/22360 + * tree.c (upper_bound_in_type): Fix calculations for casting + to a non-wider signed type and casting a signed value to a + wider unsigned type. + (lower_bound_in_type): Fix calculations for casting to a + non-wider signed type. + + PR tree-optimization/20139 + * tree-cfg.c (remove_bb): Check in_ssa_p before calling + release_defs. + * tree-optimize.c (execute_cleanup_cfg_post_optimizing): Call + fold_cond_expr_cond. + * tree-ssanames.c (release_defs): Assert in_ssa_p. + * tree.c (upper_bound_in_type, lower_bound_in_type): Rewrite. + +2005-07-08 Andrew Pinski + + PR tree-opt/22356 + * tree-complex.c (expand_complex_libcall): Produce + REALPART_EXPR/IMAGPART_EXPR with the correct type. + +2005-07-08 Kenneth Zadeck + + * bitmap.c (bitmap_and, bitmap_and_into, bitmap_and_compl, + bitmap_and_compl_into, bitmap_xor, bitmap_xor_into): Removed "a != + b" assert and inserted fastpath code for this case. + (bitmap_ior): Removed "a != b" assert. + +2005-07-08 Kazuhiro Inaoka + + * config/m32r/linux.h (STARTFILE_SPEC): Support PIE. + (ENDFILE_SPEC): Likewise. + * config/m32r/m32r.h (ASM_SPEC): Likewise. + + * config/m32r/m32r.c (m32r_output_function_epilogue): Care for + a large stack frame at epilogue. + +2005-07-08 David Billinghurst + + * final.c: Include sdbout.h when required. + +2005-07-07 Geoffrey Keating + + * config.gcc (*-*-darwin*): Only one target-specific header file + for generic darwin. + (powerpc-*-darwin*): Add version-specific header files. + * configure.in (gcc_AC_CHECK_DECLS): Add strverscmp. + * config.in: Regenerate. + * configure: Regenerate. + * gcc.c: Include xregex.h. + (version_compare_spec_function): New. + (spec_function): Add version-compare. + (replace_outfile_spec_function): Reformat comment. + (compare_version_strings): New. + * config/darwin-c.c (version_as_macro): New. + (builtin_define): New. + (darwin_cpp_builtins): New. + * config/darwin-protos.h (darwin_cpp_builtins): New. + * config/darwin.h (CPP_SPEC): Don't define APPLE_CC here. + (LIB_SPEC): Make unconditional, update comment. + (TARGET_C99_FUNCTIONS): Define. + * config/darwin.opt: Sort. + (mmacosx-version-min=): New. + * config/darwin7.h: Delete. + * config/darwin8.h: Delete. + * config/i386/darwin.h (): Call darwin_cpp_builtins. + * config/rs6000/darwin.h (): Call darwin_cpp_builtins. + (TARGET_C99_FUNCTIONS): Define. + * config/rs6000/darwin7.h: New. + * config/rs6000/darwin8.h: New. + * doc/invoke.texi (Darwin Options): Add -mmacosx-version-min= + (-mmacosx-version-min): Document. + +2005-07-07 Ian Lance Taylor + + * config/mips/mips.md (abs2) [GPR]: Remove. + +2005-07-07 John David Anglin + + PR middle-end/22239 + * loop.c (loop_givs_rescan): Check that v->new_reg is a REG. + +2005-07-07 Khem Raj + + * config/arm/arm.c (thumb_output_function_prologue): Calculate offset + in bytes, not words. + +2005-07-07 Paul Brook + + * config/arm/arm.c (arm_pad_arg_upward): Compare return value of + DEFAULT_FUNCTION_ARG_PADDING to upward. + +2005-07-07 Richard Henderson + + * function.c (locate_and_pad_parm): Record parameter alignment in + stack_alignment_needed. + +2005-07-07 David Edelsohn + + * config/rs6000/rs6000.md (UNSPEC_SYNC, UNSPEC_SYNC_OP, + UNSPEC_SYNC_SWAP, UNSPEC_LWSYNC, UNSPEC_ISYNC): Delete. + (UNSPECV_LL, UNSPECV_SC, UNSPECV_ATOMIC, UNSPECV_SYNC, + UNSPECV_SYNC_OP, UNSPECV_CMPXCHG, UNSPECV_LWSYNC, UNSPECV_ISYNC): New. + (define_attr "type"): Add isync, sync, load_l, store_c. + * config/rs6000/sync.md (memory_barrier): Change to define_expand. + Create scratch volatile MEM. + (sync_internal): New. POWER mnemonic is dcs, not ics. Attribute + sync. + (load_locked_): New. + (store_conditional_): New. + (sync_compare_and_swap): Replace with splitter. + (sync_lock_test_and_set): Replace with splitter. + (sync_): Change to unspec_volatile UNSPECV_SYNC_OP + and UNSPECV_ISYNC. + (isync): Change to unspec_volatile UNSPECV_ISYNC. POWER mnemonic + is ics. Attribute isync. + (lwsync): Change to unspec_volatile UNSPECV_LWSYNC. Attribute + lwsync. + * config/rs6000/rs6000.c (rs6000_emit_sync): Use UNSPEC_VOLATILE + and UNSPECV_SYNC_OP. + (emit_unlikely_jump): New. + (emit_load_locked): New. + (emit_store_conditional): New. + (rs6000_split_compare_and_swap): New. + (rs6000_split_lock_test_and_set): New. + (is_dispatch_slot_restricted): Return 4 for TYPE_LOAD_L, + TYPE_STORE_C, TYPE_ISYNC, TYPE_SYNC. + * config/rs6000/rs6000-protos.h (rs6000_split_compare_and_swap, + rs6000_split_lock_test_and_set): Declare. + * config/rs6000/{40x.md,440.md,603.md,6xx.md,7450.md,7xx.md,8540.md, + mpc.md,power4.md,power5.md,rios1.md,rios2.md,rs64.md): Add load_l, + store_c, isync, sync. + +2005-07-07 Kelley Cook + + * Makefile.in (echo_quoted_to_gtyp): New template for outputing + filenames to gtyp-gen.h. + (s-typ-gen): Use it in place of for loops. + +2005-07-07 J"orn Rennecke + + * hooks.c (hook_bool_rtx_int_false): New function. + * hooks.h (hook_bool_rtx_int_false): Declare. + * target-def.h (TARGET_COMMUTATIVE_P): Define. + (TARGET_INITIALIZER): Add TARGET_COMMUTATIVE_P. + * target.h (struct gcc_target): Add commutative_p member. + * targhooks.c (hook_bool_rtx_commutative_p): New function. + * targhooks.h (hook_bool_rtx_commutative_p): Declare. + * pa.c (TARGET_COMMUTATIVE_P): Redefine. + (pa_commutative_p): New function. + * jump.c (target.h): Include. + (rtx_renumbered_equal_p): Use targetm.commutative_p. + * doc/tm.texi: Document TARGET_COMMUTATIVE_P. + +2005-07-07 Adrian Straetling + + * config/s390/s390-protos.h (s390_expand_clrmem): Delete. + (s390_expand_setmem): New. + * config/s390/s390.c: Likewise. + (print_shift_count_operand): Truncate to 12 bits instead of 6. + Adapt comments. + * config/s390/s390.md: ("setmem"): Accept character as + general_operand. Call new function "s390_expand_setmem". + ("clrmem_long", "*clrmem_long"): Rewrite to ... + ("setmem_long", "*setmem_long"): ... this. + +2005-07-07 Adrian Straetling + + * config/s390/s390.c: (optimization_options): Enable + TARGET_MVCLE at -Os. + * doc/invoke.texi: Document changes in default behaviour. + * config/s390/s390.opt: ("mvcle"): Fix typo: is "mmvcle". + +2005-07-07 Adrian Straetling + + * expr.c: (set_storage_via_setmem): Convert opchar to mode + defined by back-end. + +2005-07-07 Jakub Jelinek + + * config/sparc/sparc.md (stack_protect_testsi): Put clobbers after + all sets in the pattern. + * config/rs6000/rs6000.md (stack_protect_testsi, + stack_protect_testdi): Likewise. + +2005-07-06 Jeff Law + + * tree-vrp.c (simplify_using_ranges): Kill. + (vrp_finalize): Remove call to simplify_using_ranges. + (simplify_stmt_using_ranges): New function extracted from + simplify_using_ranges. + (simplify_div_or_mod_using_ranges): Likewise. + (simplify_abs_using_ranges): Likewise. + (simplify_cond_using_ranges): New function. + * tree-flow.h (simplify_stmt_using_ranges): Prototype. + * tree-ssa-propagate.c (substitute_and_fold): Call + simplify_stmt_using_ranges if we have range information. + +2005-07-06 James E. Wilson + + * config/ia64/ia64.c (ia64_reorg): Check optimize before + ia64_flag_schedule_isns2. + + * config/ia64/ia64.c (ia64_expand_movxf_movrf): Don't word swap when + reading/writing general registers. + (ia64_function_arg): Revert 2005-06-18 change. + +2005-07-06 John David Anglin + + * pa.c (legitimize_pic_address): Use gcc_assert instead of abort. + (legitimize_tls_address): Use gcc_unreachable instead of abort. + +2005-07-06 Kaz Kojima + + * function.c (expand_function_end): Revert part of 2005-06-27 + patch. Do sjlj_emit_function_exit_after after return_label. + +2005-07-06 Kazu Hirata + + * doc/install.texi (--disable-libssp): New. + +2005-07-06 Fariborz Jahanian + + * doc/invoke.texi: Update -fforce-mem documentation. + * dojump.c (compare_from_rtx,do_compare_rtx_and_jump): Remove + code for -fforce-mem. + * expmed.c: (store_bit_field,store_fixed_bit_field, + extract_bit_field): Ditto. + * expr.c: (convert_move): Ditto. + * optabs.c: (expand_binop,expand_twoval_unop,expand_twoval_binop, + expand_unop,emit_unop_insn,prepare_cmp_insn,emit_conditional_move, + emit_conditional_add,expand_float,expand_fix): Ditto. + * opts.c: (decode_options): Remove setting of flag_force_mem flag. + (common_handle_option): Issue warning when -fforce-mem specified. + +2005-07-06 Paul Brook + + * aclocal.m4: Work around a bug in AC_PATH_PROGS when its last + argument is empty. + * configure: Regenerate. + +2005-07-06 J"orn Rennecke + + * sh.c (final_prescan_insn): Undo bogus change from 2005-05-09. + +2005-07-06 Daniel Berlin + + Fix PR tree-optimization/22319 + Fix PR tree-optimization/22140 + Fix PR tree-optimization/22310 + + * tree-ssa-structalias.c (do_structure_copy): Give up earlier on + variable sized types. + Use correct type for intermediate structure on *a = *b structure + copies. + +2005-07-06 Jakub Jelinek + + * config/rs6000/rs6000.h (RS6000_VARARGS_AREA, RS6000_VARARGS_SIZE): + Remove. + (STARTING_FRAME_OFFSET): Don't add RS6000_VARARGS_AREA. + (machine_function): Move typedef to... + * config/rs6000/rs6000.c (machine_function): ... here. Add + varargs_save_offset field. + (rs6000_stack_t): Remove varargs_size field. + (setup_incoming_varargs): Allocate varargs save area using + assign_stack_local, try to make it as small as possible. + Save offset from virtual_stack_vars_rtx to the save area + in cfun->machine->varargs_save_offset. Use UNITS_PER_FP_WORD + instead of magic 8 when fp word byte size is used. + (rs6000_va_start): Use cfun->machine->varargs_save_offset + instead of -RS6000_VARARGS_SIZE. + (rs6000_stack_info, debug_stack_info, + rs6000_initial_elimination_offset): Remove all traces of + varargs_size. + * config/rs6000/sysv4.h (RS6000_VARARGS_AREA): Remove. + * config/rs6000/darwin.h (STARTING_FRAME_OFFSET): Don't add + RS6000_VARARGS_AREA. + +2005-07-06 Zdenek Dvorak + + PR tree-optimization/21963 + * tree-ssa-loop-ivopts.c (get_computation_aff): Use + constant_multiple_of in the same way get_computation_cost_at does. + +2005-07-06 Jakub Jelinek + + * config/sparc/sparc.h (sparc_compare_emitted): New extern. + * config/sparc/sparc.c (sparc_compare_emitted): New variable. + (gen_compare_reg): If sparc_compare_emitted is set, clear it + and return its previous value. + (emit_v9_brxx_insn): Assert sparc_compare_emitted is NULL. + * config/sparc/sparc.md (UNSPEC_SP_SET, UNSPEC_SP_TEST): New + constants. + (stack_protect_set, stack_protect_test): New expanders. + (stack_protect_setsi, stack_protect_setdi, stack_protect_testsi, + stack_protect_testdi): New insns. + * config/sparc/linux.h (TARGET_THREAD_SSP_OFFSET): Define. + * config/sparc/linux64.h (TARGET_THREAD_SSP_OFFSET): Define. + +2005-07-06 Jeff Law + + * tree-ssa-dce.c (cfg_altered): New global. + (tree_dce_init): Initialize cfg_altered. + (remove_dead_stmt): If we remove an edge in the CFG, then set + CFG_ALTERED. + (perform_tree_ssa_dce): If we altered the CFG, then invalidate + the dominators. + +2005-07-06 Kazu Hirata + + * Makefile.in (stamp-collect-ld): Use + $(ORIGINAL_LD_FOR_TARGET) instead of $<. Don't remove + ./collect-ld if it already exists. + (stamp-nm): Use $(ORIGINAL_NM_FOR_TARGET) instead of $<. + Don't remove ./nm if it already exists. + +2005-07-05 Devang Patel + + * tree-vectorizer.h (struct _loop_vec_info): Remove loop_line_number. + (LOOP_VINFO_LOC, LOOP_LOC): Remove. + * tree-vectorizer.c (vect_loop_location): New. + (vect_print_dump_info): Use vect_loop_location. + (new_loop_vec_info): Do not set LOOP_VINFO_LOC. + (vectorize_loops): Set vect_loop_location. + * tree-vect-analyze.c (vect_analyze_offset_expr, + vect_determin_vectorization_factor, vect_analyze_operations, + vect_analyze_scalar_cycles, vect_analyze_data_ref_dependence, + vect_analyze_data_ref_dependences, vect_compute_data_ref_alignment, + vect_analyze_data_refs_alignment, vect_analyze_data_ref_access, + vect_analyze_data_ref_accesses, vect_analyze_pointer_ref_access, + vect_object_analysis, vect_analyze_data_refs, vect_mark_relevant, + vect_stmt_relevant_p, vect_mark_stmts_to_be_vectorized, + vect_can_advance_ivs_p, vect_get_loop_niters, vect_analyze_loop_form, + vect_analyze_loop): Adjust vect_print_dump_info API. + * tree-vect-transform.c (vect_create_addr_base_for_vector_ref, + vect_create_data_ref_ptr, vect_init_vector, vect_get_vec_def_for_operand, + vect_finish_stmt_generation, vectorizable_assignment, + vectorizable_operation, vectorizable_store, vectorizable_load, + vectorizable_live_operation, vectorizable_condition, vect_transform_stmt, + vect_update_ivs_after_vectorizer, vect_do_peeling_for_loop_bound, + vect_gen_ninters_for_prolog_loop, vect_do_peeling_for_alignment, + vect_transform_loop): Same. + * tree-vectorizer.c (get_vectype_for_scalar_type, vect_is_simple_use, + vect_is_simple_reduction, vect_is_simple_iv_evolution, vectorize_loops): + Same. + +2005-07-05 Randolph Chung + + * configure.ac (hppa*-*-linux*: Check for a TLS capable gas. + * configure: Regenerate. + * config/pa/pa-protos.h (tls_symbolic_operand): Declare. + (pa_tls_referenced_p): Declare. + * config/pa/pa.c (legitimize_pic_address): Reject TLS operands. + (gen_tls_tga, gen_tls_get_addr, hppa_tls_call): New. + (legitimize_tls_address): New. + (hppa_legitimize_address): Handle TLS addresses. + (pa_tls_symbol_ref_1, pa_tls_referenced_p): New. + (TARGET_CANNOT_FORCE_CONST_MEM): Define. + (emit_move_sequence): Handle TLS addresses. + (pa_encode_section_info): Call default handler to handle common + sections. + * config/pa/pa.h (PA_SYMBOL_REF_TLS_P): New. + (CONSTANT_ADDRESS_P): Reject TLS operands. + (TARGET_HAVE_TLS) [HAVE_AS_TLS]: Define. + * config/pa/pa.md (UNSPEC_TP, UNSPEC_TLSGD, UNSPEC_TLSLDM) + (UNSPEC_TLSLDO, UNSPEC_TLSLDBASE, UNSPEC_TLSIE) + (UNSPEC_TLSLE): Define new constants. + (tgd_load, tld_load, tld_offset_load, tp_load, tie_load, tle_load): New. + * config/pa/predicates.md (symbolic_operand): Reject TLS operands. + (tls_symbolic_operand, tgd_symbolic_operand, tld_symbolic_operand) + (tie_symbolic_operand, tle_symbolic_operand): New + +2005-07-06 Kelley Cook + + * aclocal.m4: Update macros for autoconf 2.59 style. + * configure.ac: Likewise. + +2005-07-05 John David Anglin + + * pa.c (function_value): Handle small aggregates on 32-bit targets. + (function_arg): Pass small aggregates in general registers on 32-bit + targets. + * som.h (MEMBER_TYPE_FORCES_BLK): Delete define. + +2005-07-05 Andrew Pinski + + * Makefile.in (final.o): Fix dependencies. + +2005-07-05 Joseph S. Myers + + PR c/22013 + PR c/22098 + * langhooks.h (struct lang_hooks): Add expr_to_decl. + * langhooks.c (lhd_expr_to_decl): New. + * langhooks-def.h (lhd_expr_to_decl, LANG_HOOKS_EXPR_TO_DECL): + New. + (LANG_HOOKS_INITIALIZER): Update. + * tree.c (recompute_tree_invarant_for_addr_expr): Call + expr_to_decl langhook. + * c-tree.h (c_expr_to_decl): Declare. + * c-typeck.c (c_expr_to_decl): New. + (build_unary_op): Do not handle ADDR_EXPR of COMPOUND_LITERAL_EXPR + specially. + * c-objc-common.h (LANG_HOOKS_EXPR_TO_DECL): Define. + +2005-07-05 Joseph S. Myers + + PR c/22308 + * c-decl.c (finish_struct): Also copy C_TYPE_FIELDS_READONLY, + C_TYPE_FIELDS_VOLATILE and C_TYPE_VARIABLE_SIZE to type variants. + +2005-07-05 Paolo Bonzini + + * Makefile.in: Adjust dependencies. + * tree-pass.h: Add new passes and passes formerly in tree-optimize.c. + * basic-block.h (duplicate_computed_gotos): Remove, it is now static. + * alias.c (rest_of_handle_cfg, pass_cfg): New. + * bb-reorder.c (duplicate_computed_gotos): Make it static. + * cfgexpand.c (tree_expand_cfg): Add code formerly at the beginning of + rest_of_compilation. + + * bb-reorder.c (gate_duplicate_computed_gotos, + pass_duplicate_computed_gotos, gate_handle_reorder_blocks, + rest_of_handle_reorder_blocks, pass_reorder_blocks, + gate_handle_partition_blocks, rest_of_handle_partition_blocks, + pass_partition_blocks): New. + * bt-load.c (gate_handle_branch_target_load_optimize, + rest_of_handle_branch_target_load_optimize, + pass_branch_target_load_optimize): New. + * cfgcleanup.c (rest_of_handle_jump, pass_jump, rest_of_handle_jump2, + pass_jump2): New. + * cfglayout.c (pass_insn_locators_initialize): New. + * cfgrtl.c (pass_free_cfg): New. + * combine.c (gate_handle_combine, rest_of_handle_combine, + pass_combine): New. + * cse.c (gate_handle_cse, rest_of_handle_cse, pass_cse, + gate_handle_cse2, rest_of_handle_cse2, pass_cse2): New. + * emit-rtl.c (pass_unshare_all_rtl, pass_remove_unnecessary_notes): New. + * except.c (pass_set_nothrow_function_flags, + pass_convert_to_eh_region_ranges, gate_handle_eh, rest_of_handle_eh, + pass_rtl_eh): New. + * final.c (pass_compute_alignments, rest_of_handle_final, pass_final, + rest_of_handle_shorten_branches, pass_shorten_branches, + rest_of_clean_state, pass_clean_state): New. + * flow.c (pass_recompute_reg_usage, gate_remove_death_notes, + rest_of_handle_remove_death_notes, pass_remove_death_notes, + rest_of_handle_life, pass_life, rest_of_handle_flow2, + pass_flow2): New. + * function.c (pass_instantiate_virtual_regs, pass_init_function, + rest_of_handle_check_leaf_regs, pass_leaf_regs): New. + * gcse.c (gate_handle_jump_bypass, rest_of_handle_jump_bypass, + pass_jump_bypass, gate_handle_gcse, rest_of_handle_gcse, + pass_gcse): New. + * global.c (rest_of_handle_global_alloc, pass_global_alloc): New. + * ifcvt.c (gate_handle_if_conversion, rest_of_handle_if_conversion, + pass_rtl_ifcvt, gate_handle_if_after_combine, + rest_of_handle_if_after_combine, pass_if_after_combine, + gate_handle_if_after_reload, rest_of_handle_if_after_reload, + pass_if_after_reload): New. + * integrate.c (pass_initial_value_sets): New. + * jump.c (pass_cleanup_barriers, purge_line_number_notes, + pass_purge_lineno_notes): New. + * mode-switching.c (rest_of_handle_mode_switching, + pass_mode_switching): New. + * local-alloc.c (rest_of_handle_local_alloc, pass_local_alloc): New. + * loop-init.c (gate_handle_loop2, rest_of_handle_loop2, + pass_loop2): New. + * loop.c (gate_handle_loop_optimize, rest_of_handle_loop_optimize, + pass_loop_optimize): New. + * modulo-sched.c (gate_handle_sms, rest_of_handle_sms, + pass_sms): New. + * postreload-gcse.c (gate_handle_gcse2, rest_of_handle_gcse2, + pass_gcse2): New. + * postreload.c (gate_handle_postreload, rest_of_handle_postreload, + pass_postreload_cse): New. + * profile.c (gate_handle_profiling, pass_profiling, + rest_of_handle_branch_prob, pass_branch_prob): New. + * recog.c (pass pass_split_for_shorten_branches, gate_do_final_split, + pass_split_before_regstack, gate_handle_split_before_regstack, + gate_handle_peephole2, rest_of_handle_peephole2, pass_peephole2, + rest_of_handle_split_all_insns, pass_split_all_insns): New. + * reg-stack.c (gate_handle_stack_regs, rest_of_handle_stack_regs, + pass_stack_regs): New. + * regmove.c (gate_handle_regmove, rest_of_handle_regmove, pass_regmove, + gate_handle_stack_adjustments, rest_of_handle_stack_adjustments, + pass_stack_adjustments): New. + * regrename.c (gate_handle_regrename, rest_of_handle_regrename, + pass_regrename): New. + * reorg.c (gate_handle_delay_slots, rest_of_handle_delay_slots, + pass_delay_slots, gate_handle_machine_reorg, + rest_of_handle_machine_reorg, pass_machine_reorg): New. + * rtl.h (extern void purge_line_number_notes): New. + * sched-rgn.c (gate_handle_sched, rest_of_handle_sched, + gate_handle_sched2, rest_of_handle_sched2, pass_sched, + pass_sched2): New. + * tracer.c (gate_handle_tracer, rest_of_handle_tracer, + pass_tracer): New. + * value-prof.c (gate_handle_value_profile_transformations, + rest_of_handle_value_profile_transformations, + pass_value_profile_transformations): New. + * var-tracking.c (gate_handle_var_tracking, + pass_variable_tracking): New. + * web.c (gate_handle_web, rest_of_handle_web, pass_web): New. + + * passes.c (open_dump_file, close_dump_file, rest_of_handle_final, + rest_of_handle_delay_slots, rest_of_handle_stack_regs, + rest_of_handle_variable_tracking, rest_of_handle_machine_reorg, + rest_of_handle_old_regalloc, rest_of_handle_regrename, + rest_of_handle_reorder_blocks, rest_of_handle_partition_blocks, + rest_of_handle_sms, rest_of_handle_sched, rest_of_handle_sched2, + rest_of_handle_gcse2, rest_of_handle_regmove, + rest_of_handle_tracer, rest_of_handle_if_conversion, + rest_of_handle_if_after_combine, rest_of_handle_if_after_reload, + rest_of_handle_web, rest_of_handle_branch_prob, + rest_of_handle_value_profile_transformations, rest_of_handle_cfg, + rest_of_handle_jump_bypass, rest_of_handle_combine, + rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2, + rest_of_handle_gcse, rest_of_handle_loop_optimize, + rest_of_handle_loop2, rest_of_handle_branch_target_load_optimize, + rest_of_handle_mode_switching, rest_of_handle_jump, + rest_of_handle_eh, rest_of_handle_stack_adjustments, + rest_of_handle_flow2, rest_of_handle_jump2, + rest_of_handle_peephole2, rest_of_handle_postreload, + rest_of_handle_shorten_branches, rest_of_clean_state, + rest_of_compilation): Remove. + + * cgraphunit.c (ipa_passes): Moved from tree-optimize.c. + * passes.c (dump_flags, in_gimple_form, all_passes, + all_ipa_passes, all_lowering_passes, register_one_dump_file, + register_dump_files, next_pass_1, last_verified, execute_todo, + execute_one_pass, execute_pass_list, execute_ipa_pass_list): Moved + from tree-optimize.c. + (init_optimization_passes): Moved from tree-optimize.c, + adding the RTL optimizations. + * tree-dump.h (dump_info_p, dump_flag): Moved from tree.h. + * tree-optimize.c (dump_flags, in_gimple_form, all_passes, + all_ipa_passes, all_lowering_passes, register_one_dump_file, + register_dump_files, next_pass_1, last_verified, execute_todo, + execute_one_pass, execute_pass_list, execute_ipa_pass_list, + init_tree_optimization_passes, ipa_passes): Delete. + * tree-pass.h (enum tree_dump_index): Moved from tree.h, removing + the RTL dumps. + (TDF_*, get_dump_file_name, dump_enabled_p, dump_initialized_p, + dump_begin, dump_end, dump_node, dump_switch_p, dump_flag_name): Moved + from tree.h. + (ipa_passes): Remove. + (all_passes, all_ipa_passes, all_lowering_passes): Now extern. + * tree.h (enum tree_dump_index, TDF_*, get_dump_file_name, + dump_enabled_p, dump_initialized_p, dump_begin, dump_end, dump_node, + dump_switch_p, dump_flag_name): Moved to tree-pass.h. + (dump_info_p, dump_flag): Moved to tree-dump.h. + + * Makefile.in: Adjust dependencies for tree-pretty-print.c, + cgraph.c, opts.c. + * passes.c (finish_optimization_passes): Use dump_begin + and dump_end, TDI_end. + (gate_rest_of_compilation): New. + (pass_rest_of_compilation): Use it. + (gate_postreload, pass_postreload): New. + * toplev.c (general_init): Rename init_tree_optimization_passes. + * toplev.h (init_tree_optimization_passes): Rename to + init_optimizations_passes. + * tree-dump.c (dump_flag): Make static. + (dump_files): Remove RTL dumps. + * tree-optimize.c (pass_all_optimizations, pass_early_local_passes, + pass_cleanup_cfg, pass_free_cfg_annotations, + pass_cleanup_cfg_post_optimizing, pass_free_datastructures, + pass_init_datastructures, pass_fixup_cfg): Make non-static. + * tree-pretty-print.c: Include tree-pass.h. + * cgraph.c: Include tree-dump.h. + +2005-07-04 Daniel Berlin + + * tree-ssa-structalias.c (get_constraint_exp_from_ssa_var): + Only fall back to saying it points to readonly memory if + we can't do better. + +2005-07-05 Kazuhiro Inaoka + + * config/m32r/m32r-protos.h: Remove m32r_finalize_pic. + * config/m32r/m32r.c (m32r_compute_frame_size, + m32r_expand_prologue): Take current_function_profile into + account whenever we reference + current_function_uses_pic_offset_table. + (m32r_finalize_pic): Remove. + * config/m32r/m32r.h (FINALIZE_PIC): Likewise. + +2005-07-05 Kazu Hirata + + * Makefile.in (stamp-as): Use $(ORIGINAL_AS_FOR_TARGET) + instead of $<. Don't remove ./as if it already exists. + +2005-07-04 John David Anglin + + PR target/21723 + * pa.md: Remove fcpy alternative from movhi and movqi patterns. + * pa32-regs.h (HARD_REGNO_NREGS): Return two floating point registers + for complex modes when generating code for PA 1.0. + (VALID_FP_MODE_P): New macro. + (HARD_REGNO_MODE_OK): Use VALID_FP_MODE_P. Use non-overlapping register + sets for all general and floating point modes. Align wide floating + point modes to even register boundaries to comply with architectural + requirements. + (CLASS_MAX_NREGS): Update to align with change to HARD_REGNO_NREGS. + * pa64-regs.h (HARD_REGNO_NREGS): Update comment and formatting. + (VALID_FP_MODE_P): New macro. + (HARD_REGNO_MODE_OK): Use VALID_FP_MODE_P. Use non-overlapping register + sets for all general and floating point modes. Align wide floating + point modes to even register boundaries to comply with architectural + requirements. + +2005-07-04 Diego Novillo + + * tree-dump.c (dump_files): Initialize dump number for .cgraph + to 0. + +2005-07-04 Diego Novillo + + * tree-ssa-structalias.c: Don't include expr.h. + +2005-07-04 Diego Novillo + + * tree-iterator.h (TSI_NEW_STMT, TSI_SAME_STMT): Fix + comments. + +2005-07-04 Daniel Berlin + + Fix PR tree-optimization/22279 + + * tree-ssa-structalias.c (offset_overlaps_with_access): Use + correct operator. + +2005-07-04 J"orn Rennecke + + * sh.c (output_ieee_ccmpeq): Replace "\\;" with "\n\t". + +2005-07-03 Joseph S. Myers + + * bb-reorder.c, c-pch.c, c-pragma.c, c.opt, cfghooks.c, cfgloop.c, + cfgrtl.c, cgraphunit.c, config/c4x/c4x.c, config/cris/cris.c, + config/frv/frv.c, config/host-darwin.c, config/iq2000/iq2000.c, + config/lynx.h, config/m68k/m68k.c, config/pa/pa.c, config/sh/sh.h, + config/stormy16/stormy16.c, config/v850/v850.c, + config/vax/netbsd-elf.h, coverage.c, dwarf2out.c, emit-rtl.c, + except.c, gcc.c, tree-cfg.c, tree-eh.c, tree-ssa.c, xcoffout.c: + Avoid "." or "\n" at end of diagnostics and capital letters at + start of diagnostics. + * combine.c, cse.c: Don't translate dump file output. + * toplev.c (print_version): Only translate output if going to + stderr. + +2005-07-03 Kazu Hirata + + * c-decl.c, tree-object-size.c, tree-vectorizer.c, + config/arm/unwind-arm.c, config/arm/unwind-arm.h: Fix comment + typos. + +2005-07-03 John David Anglin + + * pa.c (fix_range): Fix typo in comment. + +2005-07-03 Kazu Hirata + + * tree-vrp.c (extract_range_from_assert): Replace + fold (build (...)) with fold_build2. + +2005-07-03 Kaveh R. Ghazi + + * c-format.c (gcc_gfc_format_type, gcc_gfc_flag_pairs, + gcc_gfc_char_table, init_dynamic_gfc_info): New. + (format_types_orig, handle_format_attribute): Add support for + format "gcc_gfc". + +2005-07-03 Gabriel Dos Reis + + * varasm.c (assemble_variable): Fix format specifier thinko. + +2005-07-03 Ira Rosen + + PR tree-optimization/22029 (and 22135) + * tree-pretty-print.c (dump_generic_node): Check that the node is not + a phi node before calling dump_vops. + +2005-07-02 Gabriel Dos Reis + + * tree-dump.h (dump_string_field): Declare. + * tree-dump.c: Use it instead of dump_string. + (dump_string_field): Make non-static. + +2005-07-03 Kaz Kojima + + * config/sh/sh.c (sh_output_mi_thunk): Initialize and clean + up the minimal CFG stuff always when optimize > 0. Call + split_all_insns_noflow in PIC case if needed. + +2005-07-02 Gabriel Dos Reis + Christian Ehrhardt + + PR c++/18279 + * c-decl.c (c_write_global_declarations): Dump contents of + external scope to. + * tree-dump.c (dequeue_and_dump): Dump abstract origin of a decl. + , , , , + , : Add. + (dump_enabled_p): Return TRUE if PHASE is TDI_all and any dump + is enabled. + +2005-07-03 Joseph S. Myers + + * c-common.h (GCC_DIAG_STYLE): Define. + * c-tree.h (GCC_DIAG_STYLE): Do not define. Change minimum GCC + version for format checking to 4.1. + * c-format.c: Include toplev.h after c-common.h. + (enum format_type): Add gcc_tdiag_format_type. + (gcc_tdiag_length_specs, gcc_tdiag_flag_pairs, + gcc_tdiag_flag_specs, gcc_tdiag_char_table): New. + (format_types_orig): Add gcc_tdiag. + (init_dynamic_diag_info): Support gcc_tdiag formats. + (handle_format_attribute): Likewise. + * toplev.h (NO_FRONT_END_DIAG, ATTRIBUTE_GCC_FE_DIAG): Remove. + (GCC_DIAG_STYLE): Default to __gcc_tdiag__. Change minimum GCC + version for format checking to 4.1. + (warning0, warning, error, pedwarn, sorry): Use + ATTRIBUTE_GCC_DIAG. + * config/rs6000/rs6000.c (altivec_expand_builtin), varasm.c + (finish_aliases_1): Do not use %qE. + * config/arm/arm.c, config/i386/i386.c, config/mmix/mmix.c, + config/pdp11/pdp11.c, stor-layout.c, tree-eh.c, tree-ssa.c: + Correct format bugs. + * config/v850/v850-protos.h (v850_output_aligned_bss): Change size + parameter to unsigned HOST_WIDE_INT. + * config/v850/v850.c (v850_output_aligned_bss): Likewise. + +2005-07-02 David Edelsohn + + PR middle-end/21742 + * expr.c (write_complex_part): Use adjust_address for MEM. + (read_complex_part): Same. + +2005-07-02 Daniel Berlin + + Fix PR tree-optimization/22280 + + * tree-sra.c (generate_element_init): Remove useless loop. + +2005-07-02 Richard Henderson + + * config/alpha/alpha.c (alpha_legitimize_address): Check for + TLS_MODEL_NONE. + (alpha_stdarg_optimize_hook): Use DECL_UID with va_list_vars. + +2005-07-02 Andrew Pinski + + PR middle-end/14490 + * fold-const.c (fold_binary): Handle the return value of + fold_to_nonsharp_ineq_using_bound if we get back the same operand back. + Implement "X +- C1 CMP C2" folding to "X CMP C2 -+ C1". + +2005-07-02 Jeff Law + + * tree-ssa-dom.c (find_equivalent_equality_comparison): Do not + a eliminate type conversion which feeds an equality comparison + if the original type or either operand in the comparison is a + function pointer. + +2005-07-02 Joseph S. Myers + + * c.opt, common.opt, config/bfin/bfin.opt, config/pa/pa.opt, + config/rs6000/rs6000.opt, params.def: Remove "." from end of help + texts. + * config/avr/avr.c: Do not use '`' as left quote. + * config/rs6000/rs6000.c, config/s390/s390.c, opts.c, tree.c: + Remove "." from end of diagnostics. Make diagnostics start with + lowercase letter. + +2005-07-02 Zack Weinberg + Joseph S. Myers + + * toplev.c (default_tree_printer): Handle setting location with + '+' flag. + * c-objc.common.c (c_tree_printer): Likewise. + * c-format.c (gcc_diag_flag_specs): Add '+'. + (gcc_cdiag_char_table): Allow '+' flag for tree formats. + (format_types_orig): Allow '+' flag for gcc_diag and gcc_cdiag + formats. + * c-common.c, c-decl.c, c-objc-common.c, c-pragma.c, + config/arm/pe.c, config/i386/winnt.c, config/ia64/ia64.c, + config/mcore/mcore.c, config/sh/symbian.c, config/sol2.c, + config/v850/v850.c, function.c, stor-layout.c, toplev.c, + tree-inline.c, tree-optimize.c, tree.c, varasm.c: Use '+' flag + instead of %J or %H. Use 'q' flag for quoting. Avoid '.' at end + of diagnostics. Use %q+D not %s for a decl. Do not pass excess + format arguments where %J is used without %D. + +2005-07-02 Jakub Jelinek + + * gcc.c (LINK_SSP_SPEC): Define. + (link_ssp_spec): New variable. + (LINK_COMMAND_SPEC): Add %(link_ssp). + (static_specs): Add link_ssp_spec. + * configure.ac (TARGET_LIBC_PROVIDES_SSP): New test. + * configure: Rebuilt. + * config.in: Rebuilt. + + * config/rs6000/linux.h (TARGET_THREAD_SSP_OFFSET): Define. + * config/rs6000/linux64.h (TARGET_THREAD_SSP_OFFSET): Likewise. + * config/i386/linux.h (TARGET_THREAD_SSP_OFFSET): Likewise. + * config/i386/linux64.h (TARGET_THREAD_SSP_OFFSET): Likewise. + * config/rs6000/rs6000.md (stack_protect_set, stack_protect_test): + If TARGET_THREAD_SSP_OFFSET is defined, use -0x7010(13) resp. + -0x7008(2) instead of reading __stack_chk_guard variable. + * config/i386/i386.md (UNSPEC_SP_SET, UNSPEC_SP_TEST): Change + number. + (UNSPEC_SP_TLS_SET, UNSPEC_SP_TLS_TEST): New constants. + (stack_protect_set, stack_protect_test): Use *_tls* patterns + if TARGET_THREAD_SSP_OFFSET is defined. + (stack_tls_protect_set_si, stack_tls_protect_set_di, + stack_tls_protect_test_si, stack_tls_protect_test_di): New insns. + + Revert: + 2005-06-27 Richard Henderson + * libgcc-std.ver (GCC_4.1.0): New. + * libgcc.h (__stack_chk_guard): Declare. + (__stack_chk_fail, __stack_chk_fail_local): Declare. + * libgcc2.c (L_stack_chk, L_stack_chk_local): New. + * mklibgcc.in (lib2funcs): Add them. + +2005-07-01 Richard Henderson + + * config/i386/linux-unwind.h (x86_64_fallback_frame_state): Cast to + void * before struct sigcontext *. + (x86_fallback_frame_state): Likewise. + +2005-07-01 James E. Wilson + + * doc/invoke.texi (-funit-at-a-time): Correct grammar in second bullet. + +2005-07-01 Andrew Pinski + + PR tree-opt/22269 + * tree-ssa-reassoc.c (should_transpose): Fix which operand + we check for SSA_NAME for. + +2005-07-01 Daniel Berlin + + Fix PR tree-optimization/22071 + + * tree-ssa-structalias.c (offset_overlaps_with_access): New + function. + (get_constraint_for_component_ref): Use it. + +2005-07-01 Andrew Pinski + + PR other/22264 + * diagnostic.c (diagnostic_report_current_module): Use pp_newline to + print out the last new line. + +2005-07-01 Hans-Peter Nilsson + + * config/cris/cris.md (CRIS_CC0_REGNUM): New constant. + Swap numbers for CRIS_AP_REGNUM and CRIS_MOF_REGNUM. + * config/cris/cris.c (cris_conditional_register_usage): Adjust + reg_names[CRIS_CC0_REGNUM] for early CRIS versions. + (cris_print_operand) : Handle CRIS_CC0_REGNUM. + (cris_md_asm_clobbers): Clobber CRIS_CC0_REGNUM for all asms. + * config/cris/cris.h (CRIS_CANONICAL_CC0_REGNUM): New macro. + (enum reg_class): New member CC0_REGS. + (REG_CLASS_FROM_LETTER): Add 'c' for CC0_REGS. + (FIRST_PSEUDO_REGISTER, CALL_USED_REGISTERS, REG_ALLOC_ORDER) + (HARD_REGNO_MODE_OK, MODES_TIEABLE_P, REG_CLASS_NAMES) + (CRIS_SPECIAL_REGS_CONTENTS, REG_CLASS_CONTENTS, REGNO_REG_CLASS) + (PREFERRED_RELOAD_CLASS, REGISTER_NAMES, DBX_REGISTER_NUMBER): + Adjust for register now described. + +2005-07-01 Jakub Jelinek + + PR target/22262 + * config/i386/i386.md (stack_protect_test_si, + stack_protect_test_di): Add earlyclobber for scratch 3. + * config/rs6000/rs6000.md (stack_protect_testsi, + stack_protect_testdi): Add earlyclobber for scratch 3, + remove earlyclobber from scratch 4. + +Older entries for 2005 can be found in ChangeLog-2005. 2005-06-30 Diego Novillo PR 21584