| 2005-12-31 Andrew Pinski <pinskia@physics.uc.edu> |
| |
| 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 <kazu@codesourcery.com> |
| |
| * 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 <dberlin@dberlin.org> |
| |
| * 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 <gdr@integrable-solutions.net> |
| |
| * 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 <dave.anglin@nrc-cnrc.gc.ca> |
| |
| PR fortran/25586 |
| * pa.md: Remove REG_POINTER check from REG+REG peephole2 floating-point |
| store patterns. |
| |
| 2005-12-29 Kenneth Zadeck <zadeck@naturalbridge.com> |
| |
| * bitmap.c (bitmap_element_free, bitmap_element_link, |
| bitmap_elt_insert_after, bitmap_and, bitmap_and_compl, |
| bitmap_and_compl, bitmap_ior, bitmap_ior_into, bitmap_xor, |
| bitmap_xor_into): Added code to properly maintain the variants |
| associated with the CURRENT and HEAD fields. |
| (bitmap_popcount, bitmap_clear_range, bitmap_compl_and_into): New |
| functions. |
| * bitmap.h: Added defs for bitmap_popcount, bitmap_clear_range, |
| and bitmap_compl_and_into. |
| |
| |
| 2005-12-29 Mike Stump <mrs@apple.com> |
| |
| * 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 <nathan@codesourcery.com> |
| |
| * varasm.c (get_section): Use gcc_assert. |
| |
| 2005-12-29 Paul Brook <paul@codesourcery.com> |
| |
| * 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 <paul@codesourcery.com> |
| |
| * 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 <paul@codesourcery.com> |
| |
| * 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 <dan@codesourcery.com> |
| Paul Brook <paul@codesourcery.com> |
| |
| * 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 <amodra@bigpond.net.au> |
| |
| PR target/25572 |
| * config/rs6000/rs6000.c (create_TOC_reference): Set regs_ever_live. |
| |
| 2005-12-28 Nathan Sidwell <nathan@codesourcery.com> |
| |
| * 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 <dberlin@dberlin.org> |
| |
| Fix PR tree-optimization/25394 |
| * fold-const.c (fold_checksum_tree): Guard |
| portions of checksumming with correct structure checks. |
| |
| 2005-12-27 Kazu Hirata <kazu@codesourcery.com> |
| |
| * 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 <roger@eyesopen.com> |
| |
| * 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 <kazu@codesourcery.com> |
| |
| * tree-vrp.c (extract_range_from_binary_expr): Use |
| build_int_cst instead of fold_convert. |
| |
| 2005-12-26 Mark Mitchell <mark@codesourcery.com> |
| |
| 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 <kazu@codesourcery.com> |
| |
| PR tree-optimization/25125 |
| * convert.c (convert_to_integer): Don't narrow the type of a |
| PLUS_EXPR or MINUS_EXPR if !flag_wrapv and the unwidened type |
| is signed. |
| |
| 2005-12-26 Graham Stott <graham.stott@btinternet.com> |
| |
| PR middle-end/25568 |
| * combine.c (simplify_shift_const_1 <case PLUS>):Fix enable-checking |
| rtl bootstrap failure. |
| |
| 2005-12-25 Kazu Hirata <kazu@codesourcery.com> |
| |
| * 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 <roger@eyesopen.com> |
| |
| * 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 <mark@codesourcery.com> |
| |
| PR c++/23171 |
| * varasm.c (initializer_constant_valid_p): An ADDR_EXPR of a |
| CONSTRUCTOR is invalid. |
| |
| 2005-12-23 Daniel Berlin <dberlin@dberlin.org> |
| |
| * 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 <bonzini@gnu.org> |
| |
| * 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 <jakub@redhat.com> |
| |
| 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 <hp@axis.com> |
| |
| * 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 <jakub@redhat.com> |
| Richard Henderson <rth@redhat.com> |
| |
| 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<mode>): 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<mode>): New insn. |
| (sync_double_compare_and_swap<mode>): Likewise. |
| (*sync_double_compare_and_swapdi_pic): Likewise. |
| (sync_compare_and_swap_cc<mode>): 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<mode>): New insn. |
| (*sync_double_compare_and_swap_ccdi_pic): Likewise. |
| |
| 2005-12-22 Richard Henderson <rth@redhat.com> |
| |
| * 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 <amodra@bigpond.net.au> |
| |
| PR rtl-optimization/25432 |
| * reload1.c (eliminate_regs_in_insn): Update insn code on |
| successfully re-recognizing modified insn. |
| |
| 2005-12-22 Richard Guenther <rguenther@suse.de> |
| |
| * 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 <dalej@apple.com> |
| |
| * config/i386/sse.md (sse_movhlps): Reverse operands for |
| 2nd and 3rd alternatives. |
| |
| 2005-12-22 Andrew Pinski <pinskia@physics.uc.edu> |
| |
| PR tree-opt/25513 |
| * tree-dfa.c (make_rename_temp): Set DECL_COMPLEX_GIMPLE_REG_P complex |
| variables. |
| |
| 2005-12-22 Zdenek Dvorak <dvorakz@suse.cz> |
| Steven Bosscher <stevenb@suse.de> |
| |
| * 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 <reichelt@igpm.rwth-aachen.de> |
| |
| 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 <kazu@codesourcery.com> |
| |
| 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 <kazu@codesourcery.com> |
| |
| * tree-vrp.c (extract_range_from_binary_expr): Clean up uses |
| of vr0.type. |
| |
| 2005-12-21 Joseph S. Myers <joseph@codesourcery.com> |
| |
| PR middle-end/24998 |
| * config/arm/t-arm-elf (LIB1ASMFUNCS): Add _floatundidf and |
| _floatundisf. |
| |
| 2005-12-21 Andrew Haley <aph@redhat.com> |
| |
| PR middle-end/25121 |
| * recog.c (peephole2_optimize): Don't peephole any |
| RTX_FRAME_RELATED_P insns. |
| |
| 2005-12-21 Kazu Hirata <kazu@codesourcery.com> |
| |
| * 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 <stevenb@suse.de> |
| |
| 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 <kazu@codesourcery.com> |
| |
| PR tree-optimization/25382. |
| * tree-vrp.c (extract_range_from_binary_expr): Extract a range |
| from BIT_AND_EXPR. |
| |
| 2005-12-21 Janis Johnson <janis187@us.ibm.com> |
| Ben Elliston <bje@au.ibm.com> |
| |
| * 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 <mrs@apple.com> |
| |
| * 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 <zadeck@naturalbridge.com> |
| |
| * 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 <roger@eyesopen.com> |
| Paolo Bonzini <bonzini@gnu.org> |
| |
| 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 <rguenther@suse.de> |
| |
| 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 <kazu@codesourcery.com> |
| |
| 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 <rguenther@suse.de> |
| |
| Revert |
| 2005-12-02 Richard Guenther <rguenther@suse.de> |
| |
| * tree-cfg.c (mark_used_vars): New function. |
| (dump_function_to_file): Dump only used VAR_DECLs. |
| |
| 2005-12-19 Roger Sayle <roger@eyesopen.com> |
| |
| * combine.c (try_combine): Improve splitting of binary operators |
| by taking advantage of reassociative transformations. |
| |
| 2005-12-19 Jeff Law <law@redhat.com> |
| |
| * 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 <dj@redhat.com> |
| |
| * reload1.c (spill_failure): Dump reload data to dump file. |
| (find_reload_regs): Likewise. |
| |
| 2005-12-19 Zdenek Dvorak <dvorakz@suse.cz> |
| |
| 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 <zadeck@naturalbridge.com> |
| |
| * 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 <dvorakz@suse.cz> |
| |
| * 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 <joern.rennecke@st.com> |
| |
| * cfgcleanup.c: Temporarily revert patches for PR 20070 till Bernd |
| comes back. |
| |
| 2005-12-19 J"orn Rennecke <joern.rennecke@st.com> |
| |
| * struct-equiv.c (struct_equiv_improve_checkpoint): Fix sets_cc0_p |
| check. |
| |
| 2005-12-19 Ben Elliston <bje@au.ibm.com> |
| |
| * doc/install.texi (Configuration): Typo in Fortran subheading. |
| |
| 2005-12-19 Nathan Sidwell <nathan@codesourcery.com> |
| |
| * 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 <zadeck@naturalbridge.com> |
| |
| * 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 <dvorakz@suse.cz> |
| |
| * tree-ssa-structalias.c (update_alias_info): Remove handling |
| of may_be_aliased (SSA_NAME_VAR (op)) case. |
| |
| 2005-12-19 Zdenek Dvorak <dvorakz@suse.cz> |
| |
| * 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 <geoffk@apple.com> |
| |
| * 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 <rguenther@suse.de> |
| |
| 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 <jgrimm2@us.ibm.com> |
| Janis Johnson <janis187@us.ibm.com> |
| Ben Elliston <bje@au.ibm.com> |
| |
| * 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 <uweigand@de.ibm.com> |
| |
| 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 <krebbel1@de.ibm.com> |
| |
| * tree-cfg.c (tree_flow_call_edges_add): Check for empty basic blocks. |
| |
| 2005-12-18 Steven Bosscher <stevenb@suse.de> |
| |
| * 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 <gdr@integrable-solutions.net> |
| |
| * doc/objc.texi (Type encoding): Fix typo. |
| |
| 2005-12-17 Gabriel Dos Reis <gdr@integrable-solutions.net> |
| |
| * 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 <dorit@il.ibm.com> |
| |
| PR tree-optimization/24378 |
| * tree-vect-transform.c (vect_transform_loop): Create single-predecessor |
| basic-block after loop-versioning. |
| |
| 2005-12-18 Jeff Law <law@redhat.com> |
| |
| * 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 <pinskia@physics.uc.edu> |
| |
| * doc/objc.texi (Type encoding): Add documentation about encoding |
| complex types and _Bool. |
| |
| 2005-12-17 Paul Brook <paul@codesourcery.com> |
| |
| * 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 <gdr@integrable-solutions.net> |
| |
| * 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 <gdr@integrable-solutions.net> |
| |
| * 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 <dberlin@dberlin.org> |
| Kenneth Zadeck <zadeck@naturalbridge.com> |
| |
| * 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 <jh@suse.cz> |
| |
| * 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 <law@redhat.com> |
| |
| * 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 <berndtrog@yahoo.com> |
| |
| PR target/20016 |
| * config/avr/t-avr: Add -Os to TARGET_LIBGCC2_CFLAGS. |
| |
| 2005-12-17 Kazu Hirata <kazu@codesourcery.com> |
| |
| PR rtl-optimization/25456 |
| * struct-equiv.c (struct_equiv_improve_checkpoint): Replace |
| info->x_start with p->x_start. |
| |
| 2005-12-17 Alan Modra <amodra@bigpond.net.au> |
| |
| * simplify-rtx.c (simplify_binary_operation_1 <IOR>): Correct bug |
| introduced 2005-12-16. |
| |
| 2005-12-16 Steven Bosscher <stevenb@suse.de> |
| |
| 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 <dave.anglin@nrc-cnrc.gc.ca> |
| |
| 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 <stevenb@suse.de> |
| |
| * loop-invariant.c (move_loop_invariants): Add missing hunk from |
| the previous patch, to nullify df. |
| |
| 2005-12-16 Steven Bosscher <stevenb@suse.de> |
| |
| * 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 <jakub@redhat.com> |
| |
| 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 <nathan@codesourcery.com> |
| |
| * config/mt/mt.h (LIB_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Correct |
| names of ms1-16-002 files. |
| |
| 2005-12-16 Alan Modra <amodra@bigpond.net.au> |
| |
| 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 <bonzini@gnu.org> |
| |
| * combine.c (combine_simplify_rtx <case NOT, NEG, TRUNCATE, |
| FLOAT_TRUNCATE, FLOAT_EXTEND, PLUS, MINUS, AND, IOR, XOR, |
| ABS, VEC_SELECT, POPCOUNT, PARITY, FFS, FLOAT>, |
| 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 <krebbel1@de.ibm.com> |
| |
| PR 24823 |
| * flow.c (mark_used_dest_regs): New function. |
| (mark_used_regs): Call mark_used_dest_regs. |
| |
| 2005-12-16 Jeff Law <law@redhat.com> |
| |
| * 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 <jgrimm2@us.ibm.com> |
| Janis Johnson <janis187@us.ibm.com> |
| Ben Elliston <bje@au.ibm.com> |
| |
| * 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 <amodra@bigpond.net.au> |
| |
| * reload.c (find_reloads): Fix comment typo. |
| * recog.h (recog_memoized): Correct comment. |
| |
| 2005-12-16 Kazu Hirata <kazu@codesourcery.com> |
| |
| * 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 <bje@au.ibm.com> |
| |
| * real.c (decimal_quad_format): Correct values for emin, emax. |
| |
| 2005-12-15 DJ Delorie <dj@redhat.com> |
| |
| * 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 <jh@suse.cz> |
| |
| PR rtl-optimization/25224 |
| * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Free copy |
| tables. |
| |
| 2005-12-15 Zdenek Dvorak <dvorakz@suse.cz> |
| Steven Bosscher <stevenb@suse.de> |
| |
| * 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 <jakub@redhat.com> |
| |
| * varasm.c (default_unique_section_1): Use special section |
| names for SECCAT_DATA_REL{,_RO}{,_LOCAL}. |
| |
| 2005-12-16 Ben Elliston <bje@au.ibm.com> |
| |
| * doc/invoke.texi (Warning Options): Document -Walways-true being |
| enabled by -Wall. |
| |
| 2005-12-15 Joseph S. Myers <joseph@codesourcery.com> |
| |
| 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 <rodrigc@gcc.gnu.org> |
| |
| * 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 <pinskia@physics.uc.edu> |
| |
| * config/t-darwin (darwin-c.o): Depend on $(TREE_H) instead of tree.h. |
| |
| 2005-12-15 Richard Sandiford <richard@codesourcery.com> |
| |
| * config/arm/predicates.md (call_memory_operand): New. |
| * config/arm/arm.md (*call_mem, *call_value_mem): Use it. |
| |
| 2005-12-15 Andrew Haley <aph@redhat.com> |
| |
| * 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 <nathan@codesourcery.com> |
| |
| * 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 <hainque@adacore.com> |
| |
| * 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 <jh@suse.cz> |
| |
| PR target/24969 |
| * i386.c (classify_argument): Properly adjust offset of bitfield for |
| substructures. |
| |
| 2005-12-15 Richard Sandiford <richard@codesourcery.com> |
| |
| * 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 <nathan@codesourcery.com> |
| |
| 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 <rguenther@suse.de> |
| |
| * 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 <bonzini@gnu.org> |
| |
| * 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 <amodra@bigpond.net.au> |
| |
| 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 <uweigand@de.ibm.com> |
| |
| 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 <jakub@redhat.com> |
| |
| 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 <richard@codesourcery.com> |
| |
| * config/arm/arm.md: Provide a big-endian version of the |
| (zero_extend:SI (subreg:QI ...)) splitter. |
| |
| 2005-12-14 J"orn Rennecke <joern.rennecke@st.com> |
| |
| * struct-equiv.c (note_local_live): Handle hard regs with different |
| hard_regno_nregs. |
| |
| 2005-12-14 Jeff Law <law@redhat.com> |
| |
| * 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 <straetling@de.ibm.com> |
| |
| * 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 <straetling@de.ibm.com> |
| |
| * config/s390/s390.md ("d0", "1"): New mode attributes. |
| ("<shift>di3", "<shift>si3"): Merge. |
| ("*<shift>di3_and", "*<shift>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 <straetling@de.ibm.com> |
| |
| * config/s390/s390.md ("extend<mode>di2", "extend<mode>si2"): Merge. |
| ("*extendqidi2_extimm", "*extendqisi2_extimm"): Merge. |
| ("*extendqidi2", "*extendqisi2") Merge. |
| ("*extendqidi2_short_displ", "*extendqisi2_short_displ"): Merge. |
| ("zero_extendhidi2", "zero_extendqidi2"): Merge. |
| ("*zero_extend<mode>di2_extimm", "*zero_extend<mode>si2_extimm"): Merge. |
| Move some patterns to retain partial ordering. |
| |
| 2005-12-14 Adrian Straetling <straetling@de.ibm.com> |
| |
| * config/s390/s390.md ("atype", "length"): Rewrite. |
| ("*insv<mode>_reg_imm", "*insv<mode>_reg_extimm"): Add mode. |
| |
| 2005-12-14 Sebastian Pop <pop@cri.ensmp.fr> |
| |
| * tree-ssa-operands.c (build_ssa_operands): Update leading comment. |
| |
| 2005-12-14 J"orn Rennecke <joern.rennecke@st.com> |
| |
| * struct-equiv.c (rtx_equiv_p): Allow arbitrary RVALUE values for |
| PARALLELs with a mode. |
| |
| 2005-12-14 Sebastian Pop <pop@cri.ensmp.fr> |
| |
| * cfgloopmanip.c (lv_adjust_loop_entry_edge): Adjust the type of |
| cond_expr parameter. |
| |
| 2005-12-14 Sebastian Pop <pop@cri.ensmp.fr> |
| |
| * loop-unswitch.c (unswitch_loop): Free zero_bitmap before returning. |
| |
| 2005-12-14 J"orn Rennecke <joern.rennecke@st.com> |
| |
| 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 <jakub@redhat.com> |
| |
| 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 <bje@au.ibm.com> |
| |
| * 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 <paul@codesourcery.com> |
| |
| * config/m68k/fpgnulib.c (__unordsf2, __unorddf2, __unordxf2, |
| __floatunsidf, __floatunsisf, __floatunsixf): New functions. |
| |
| 2005-12-13 Nathan Sidwell <nathan@codesourcery.com> |
| |
| * config/mt/t-mt (crti.o, crtn.o): Add multilib options. |
| (EXTRA_MULTILIB_PARTS): Define. |
| |
| 2005-12-13 J"orn Rennecke <joern.rennecke@st.com> |
| |
| 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 <kazu@cs.umass.edu> |
| * recog.c (verify_changes): Make it static. |
| * recog.h: Remove the corresponding prototype. |
| |
| 2005-12-13 J"orn Rennecke <joern.rennecke@st.com> |
| |
| * rtlhooks.c (gen_lowpart_general): Handle SUBREGs of floating point |
| values. |
| |
| 2005-12-13 Nathan Sidwell <nathan@codesourcery.com> |
| |
| * 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 <jakub@redhat.com> |
| |
| 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 <carlos@codesourcery.com> |
| |
| * 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 <paul@codesourcery.com> |
| |
| * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Pass -meabi=gnu for |
| apcs/atpcs. |
| |
| 2005-12-11 Rafael vila de Espndola <rafael.espindola@gmail.com> |
| |
| * 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 <law@redhat.com> |
| |
| * 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 <dberlin@dberlin.org> |
| |
| * 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 <dave.anglin@nrc-cnrc.gc.ca> |
| |
| * 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 <joern.rennecke@st.com> |
| |
| * 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 <nathan@codesourcery.com> |
| |
| * 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 <gdr@integrable-solutions.net> |
| |
| * 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 <amodra@bigpond.net.au> |
| |
| 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 <dberlin@dberlin.org> |
| |
| * 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 <dberlin@dberlin.org> |
| |
| * 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 <dberlin@dberlin.org> |
| |
| * 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 <mark@codesourcery.com> |
| |
| 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 <schwab@suse.de> |
| |
| * except.c (switch_to_exception_section): Only define if |
| TARGET_UNWIND_INFO is not defined. |
| |
| 2005-12-10 Richard Sandiford <richard@codesourcery.com> |
| |
| * 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 <richard@codesourcery.com> |
| |
| * 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 <richard@codesourcery.com> |
| |
| * 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 <bernd.schmidt@analog.com> |
| |
| * 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 <dnovillo@redhat.com> |
| |
| * tree.c (recompute_tree_invariant_for_addr_expr): Rename from |
| recompute_tree_invarant_for_addr_expr. |
| Update uses everywhere. |
| |
| 2005-12-09 Aldy Hernandez <aldyh@redhat.com> |
| |
| * config/ms1/t-ms1 (MULTILIB_OPTIONS): Define. |
| (MULTILIB_DIRNAMES): Define. |
| |
| 2005-12-09 Ulrich Weigand <uweigand@de.ibm.com> |
| |
| 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 <ths@networkno.de> |
| |
| * config/mips/mips.c (override_options): Don't allow too small |
| integers in FP registers. |
| |
| 2005-12-09 Ulrich Weigand <uweigand@de.ibm.com> |
| |
| * 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 <amodra@bigpond.net.au> |
| |
| 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 <reichelt@igpm.rwth-aachen.de> |
| Christophe Jaillet <christophe.jaillet@wanadoo.fr> |
| |
| * 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 <nathan@codesourcery.com> |
| |
| * 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 <dvorakz@suse.cz> |
| |
| 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 <gdr@integrable-solutions.net> |
| |
| * tree.h (DECL_EXTERNAL): Clarify documentation. |
| |
| 2005-12-08 Andreas Krebbel <krebbel1@de.ibm.com> |
| Jakub Jelinek <jakub@redhat.com> |
| |
| 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 (<shift>di3_31_and, <shift>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, |
| <shift>si3_and, ashrsi3_cc_and, ashrsi3_cconly_and, ashrsi3_and, |
| rotl<mode>3_and, setmem_long_and): New insns. |
| (<shift>di3_31, <shift>di3_64, ashrdi3_cc_31, ashrdi3_cconly_31, |
| ashrdi3_31, ashrdi3_cc_64, ashrdi3_cconly_64, ashrdi3_64, |
| <shift>si3, ashrsi3_cc, ashrsi3_cconly, ashrsi3, rotl<mode>3, |
| <shift>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 <dan@codesourcery.com> |
| Andreas Tobler <a.tobler@schweiz.ch> |
| |
| * Makefile.in (ALL_GTFILES_H): Replace sed statement with more portable |
| tr expression. |
| |
| 2005-12-07 J"orn Rennecke <joern.rennecke@st.com> |
| |
| * expr.c (force_operand): Use convert_to_mode for conversions. |
| |
| 2005-12-07 J"orn Rennecke <joern.rennecke@st.com> |
| |
| * 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 <richard@codesourcery.com> |
| Andreas Tobler <a.tobler@schweiz.ch> |
| |
| * config/darwin.h: Guard section variables with #ifndef USED_FOR_TARGET. |
| |
| 2005-12-07 Daniel Berlin <dberlin@dberlin.org> |
| |
| * 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 <straetling@de.ibm.com> |
| |
| * 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 <straetling@de.ibm.com> |
| |
| * 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 <dberlin@dberlin.org> |
| |
| Fix PR tree-optimization/25291 |
| * tree-ssa-operands.c (add_call_clobber_ops): Remove |
| redundant and crashing check. |
| |
| 2005-12-08 Alan Modra <amodra@bigpond.net.au> |
| |
| 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 <joern.rennecke@st.com> |
| |
| 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 <richard@codesourcery.com> |
| |
| * 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 <richard@codesourcery.com> |
| |
| * coretypes.h (section): Provide dummy definition for target files. |
| * config/darwin.h: Revert previous change. |
| |
| 2005-12-07 Rafael vila de Espndola <rafael.espindola@gmail.com> |
| |
| * 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 <rafael.espindola@gmail.com> |
| |
| * Makefile.in: Document the use of stamps. |
| |
| 2005-12-07 Rafael vila de Espndola <rafael.espindola@gmail.com> |
| |
| * 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 <richard@codesourcery.com> |
| |
| * reload.c (push_secondary_reload): Fix typo: |
| s/insn_constraint/scratch_constraint/. |
| |
| 2005-12-07 Richard Sandiford <richard@codesourcery.com> |
| |
| * config/darwin.h: Guard section variables with #ifndef IN_LIBGCC2. |
| |
| 2005-12-07 Richard Sandiford <richard@codesourcery.com> |
| |
| * 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 <amodra@bigpond.net.au> |
| |
| * gcc.c (init_gcc_specs): Match braces inside conditionally |
| compiled strings. |
| |
| 2005-12-06 Geoffrey Keating <geoffk@apple.com> |
| |
| * config/darwin.h (TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT): New. |
| |
| 2005-12-06 Aldy Hernandez <aldyh@redhat.com> |
| |
| 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 <straetling@de.ibm.com> |
| |
| * doc/md.texi: Adapt to implementation. |
| |
| 2005-12-06 Andreas Schwab <schwab@suse.de> |
| |
| * opts.c (decode_options): Fix typo in message. |
| |
| 2005-12-06 Alan Modra <amodra@bigpond.net.au> |
| |
| PR other/13873 |
| * longlong.h: Merge PPC tests from upstream. |
| |
| 2005-12-06 Richard Guenther <rguenther@suse.de> |
| |
| * fold-const.c (fold_convert): Do not build and fold |
| CONVERT_EXPR, but always use NOP_EXPR. |
| |
| 2005-12-06 Jan Beulich <jbeulich@novell.com> |
| |
| * 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 <wilson@specifix.com> |
| |
| PR target/24934 |
| * opts.c (decode_options): Turn off partitioning if flag_unwind_tables |
| is set. |
| |
| 2005-12-05 Daniel Berlin <dberlin@dberlin.org> |
| |
| * 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 <dalej@apple.com> |
| |
| * config/i386/xmmintrin.h (_MM_TRANSPOSE4_PS): Fix to match |
| what was approved (PR 24323). |
| |
| 2005-12-05 Gabriel Dos Reis <gdr@integrable-solutions.net> |
| |
| * doc/c-tree.texi (Function Bodies): Remove description of |
| RETURN_INIT. |
| |
| 2005-12-05 Joseph S. Myers <joseph@codesourcery.com> |
| |
| * 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 <geoffk@apple.com> |
| |
| * 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 <bonzini@gnu.org> |
| |
| * 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 <jbeulich@novell.com> |
| |
| * 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<mode>_internal_rex64, mov<mode>_internal, |
| movv2sf_internal_rex64, movv2sf_internal): Correct type attribute. |
| * config/i386/sse.md (mov<mode>_internal, movv2df_internal): Simplify |
| mode attribute. |
| (sse2_vmsqrtv2df2): Correct mode attribute. |
| |
| 2005-12-05 Jan Beulich <jbeulich@novell.com> |
| |
| * 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 <jbeulich@novell.com> |
| |
| * libgcc2.c (__popcountSI2): Don't use wide type for iterator and |
| result. |
| (__popcountDI2): Likewise. |
| |
| 2005-12-04 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> |
| |
| 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 <joseph@codesourcery.com> |
| |
| * 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 <joseph@codesourcery.com> |
| |
| * 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 <roger@eyesopen.com> |
| |
| 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 <joseph@codesourcery.com> |
| |
| * 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 <amodra@bigpond.net.au> |
| |
| PR rtl-optimization/25197 |
| * dwarf2out.c (dwarf2out_frame_debug_expr <rule 12>): Assert we |
| have a reg. |
| |
| 2005-12-02 Stuart Hastings <stuart@apple.com> |
| |
| * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Remove -fpic |
| warning. |
| |
| 2005-12-03 Joseph S. Myers <joseph@codesourcery.com> |
| |
| * 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 <amodra@bigpond.net.au> |
| |
| * 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 <jakub@redhat.com> |
| |
| 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 <rguenther@suse.de> |
| |
| * 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 <rguenther@suse.de> |
| |
| * 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 <rguenther@suse.de> |
| |
| * 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 <rguenther@suse.de> |
| |
| * 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 <dave.anglin@nrc-cnrc.gc.ca> |
| |
| * pa.c (pa_secondary_reload): Revise initialization of variable regno. |
| |
| 2005-12-02 Gabriel Dos Reis <gdr@integrable-solutions.net> |
| |
| * ggc.h (GGC_RESIZEVEC): New. |
| |
| 2005-12-02 Volker Reichelt <reichelt@igpm.rwth-aachen.de> |
| |
| * gcc.c (execute): Improve readability. |
| |
| 2005-12-02 Richard Guenther <rguenther@suse.de> |
| |
| * tree-cfg.c (mark_used_vars): New function. |
| (dump_function_to_file): Dump only used VAR_DECLs. |
| |
| 2005-12-02 Richard Guenther <rguenther@suse.de> |
| |
| * convert.c (convert_to_integer): Fix compare for nonpositive |
| constant to use tree_int_cst_sgn <= 0. |
| |
| 2005-12-02 Richard Guenther <rguenther@suse.de> |
| |
| * 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 <rguenther@suse.de> |
| |
| * tree-pretty-print.c (op_symbol): Handle LROTATE_EXPR |
| and RROTATE_EXPR. |
| |
| 2005-12-02 Alan Modra <amodra@bigpond.net.au> |
| |
| PR target/21017 |
| * combine.c (simplify_logical <IOR>): Simplify more patterns to |
| rotates. |
| |
| 2005-12-02 Alan Modra <amodra@bigpond.net.au> |
| |
| PR middle-end/25176 |
| * function.c (expand_function_end): Emit blockage for unwinder |
| after return label. |
| |
| 2005-12-01 Roger Sayle <roger@eyesopen.com> |
| |
| * 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 <jgrimm2@us.ibm.com> |
| Janis Johnson <janis187@us.ibm.com> |
| David Edelsohn <dje@watson.ibm.com> |
| Ben Elliston <bje@au.ibm.com> |
| |
| * 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 <amodra@bigpond.net.au> |
| |
| * simplify-rtx.c (simplify_plus_minus): Do simplify constants. |
| Delete dead code. |
| |
| 2005-12-01 Richard Henderson <rth@redhat.com> |
| |
| * optabs.c (expand_vec_cond_expr): Use EXPAND_NORMAL. |
| |
| 2005-12-01 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> |
| |
| * 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 <rguenther@suse.de> |
| |
| * fold-const.c (fold_binary): Use fold_build2, not |
| fold (build (...)). |
| |
| 2005-12-01 Nathan Sidwell <nathan@codesourcery.com> |
| |
| * config/ms1/ms1.c (ms1_reorg_hazard): Don't count noop moves. |
| |
| * vec.h (VEC_block_remove): New. |
| |
| 2005-12-01 Gabriel Dos Reis <gdr@integrable-solutions.net> |
| |
| PR c/13384 |
| * c-common.c (lvalue_error): Fix wording. |
| |
| 2005-12-01 Richard Guenther <rguenther@suse.de> |
| |
| * tree-ssa-forwprop.c (forward_propagate_addr_expr): Fix |
| thinko in last patch. |
| |
| 2005-12-01 Geoffrey Keating <geoffk@apple.com> |
| |
| * config/t-slibgcc-darwin (SHLIB_LINK): Use -single_module rather |
| than -flat_namespace. |
| |
| 2005-12-01 Ben Elliston <bje@au.ibm.com> |
| |
| * 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 <ghazi@caip.rutgers.edu> |
| |
| PR middle-end/25158 |
| * builtins.c (fold_builtin_fputs): Defer check for missing |
| replacement functions. |
| |
| 2005-11-30 Kean Johnston <jkj@sco.com> |
| |
| * 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 <rguenther@suse.de> |
| |
| 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 <reichelt@igpm.rwth-aachen.de> |
| |
| * 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 <dalej@apple.com> |
| Andrew Pinski <pinskia@physics.uc.edu> |
| |
| * combine.c (find_split_point): Sign extend bitmask |
| when changing bitfield assignment to IOR of AND. |
| |
| 2005-11-30 Nathan Sidwell <nathan@codesourcery.com> |
| |
| * 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 <dave.anglin@nrc-cnrc.gc.ca> |
| Bernd Schmidt <bernd.schmidt@analog.com> |
| |
| * 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 <nathan@codesourcery.com> |
| |
| * loop-doloop.c (add_test): Only add jump notes if we did emit a |
| jump. |
| |
| 2005-11-30 Jeff Law <law@redhat.com> |
| |
| * tree-ssa-uncprop.c (associate_equivalences_with_edges): Properly |
| handle SSA_NAME_OCCURS_IN_ABNORMAL_PHI. |
| |
| 2005-11-30 Jakub Jelinek <jakub@redhat.com> |
| |
| * 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 <bonzini@gnu.org> |
| |
| * 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 <evan.cheng@apple.com> |
| |
| * config/i386/xmmintrin.h (_MM_TRANSPOSE4_PS): Rewrite using high/low |
| moves and unpack to speed up. |
| |
| 2005-11-29 David S. Miller <davem@sunset.davemloft.net> |
| |
| * 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 <pinskia@physics.uc.edu> |
| |
| * fold-const.c (negate_expr) <case BIT_NOT_EXPR>: Add break after |
| the if. |
| |
| 2005-11-29 Andrew Pinski <pinskia@physics.uc.edu> |
| |
| * fold-const.c (negate_expr_p): Return true for BIT_NOT_EXPR. |
| (fold_unary) <case NEGATE_EXPR>: Move -(~a) transformation to ... |
| (negate_expr): Here. |
| |
| 2005-11-29 Ben Elliston <bje@au.ibm.com> |
| |
| * config/i386/i386.h (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN): |
| Fix typo in comment. |
| |
| 2005-11-29 Ben Elliston <bje@au.ibm.com> |
| |
| * 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 <ghazi@caip.rutgers.edu> |
| |
| 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 <paul@codesourcery.com> |
| |
| * config.gcc: Do not use fixproto on m68k-elf. |
| |
| 2005-11-28 Roger Sayle <roger@eyesopen.com> |
| |
| * 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 <aoliva@redhat.com> |
| |
| PR libfortran/24991 |
| * config/darwin.c (machopic_indirection_name, |
| machopic_output_indirection): Follow transparent alias chain. |
| |
| 2005-11-28 Alexandre Oliva <aoliva@redhat.com> |
| |
| * varasm.c (ultimate_transparent_alias_target): Add comment. |
| |
| 2005-11-28 Kazu Hirata <kazu@codesourcery.com> |
| |
| * config/m68k/m68k.c (notice_update_cc): Use SET_DEST and |
| SET_SRC instead of XEXP where appropriate. |
| |
| 2005-11-28 Joseph S. Myers <joseph@codesourcery.com> |
| |
| * config/fp-bit.c (isnan, isinf, pack_d, unpack_d): Use |
| __builtin_expect. |
| |
| 2005-11-28 Joseph S. Myers <joseph@codesourcery.com> |
| |
| * 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 <bernd.schmidt@analog.com> |
| |
| * 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 <nathan@codesourcery.com> |
| |
| 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 <rguenther@suse.de> |
| |
| * c-common.c (strict_aliasing_warning): Handle all |
| component-ref like accesses. |
| |
| 2005-11-28 Roger Sayle <roger@eyesopen.com> |
| Uros Bizjak <uros@kss-loka.si> |
| |
| PR middle-end/20219 |
| * fold-const.c (fold binary) <RDIV_EXPR>: 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 <mark@codesourcery.com> |
| |
| * gcc.c (main): Change type of argv to "char **". |
| |
| 2005-11-28 Alan Modra <amodra@bigpond.net.au> |
| |
| * 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 <amodra@bigpond.net.au> |
| |
| 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 <kazu@codesourcery.com> |
| |
| * config/m68k/m68k.c (notice_update_cc): Remove useless code. |
| |
| 2005-11-27 Andrew Pinski <pinskia@physics.uc.edu> |
| |
| 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 <schwab@suse.de> |
| |
| * config/m68k/m68k.c: Reindent and fix whitespace, remove |
| redundant parens. |
| |
| 2005-11-27 Steven Bosscher <stevenb@suse.de> |
| |
| * cfgcleanup.c (try_crossjump_to_edge): Always split SRC2 if it |
| has EH predecessor edges. |
| |
| 2005-11-26 Eric Christopher <echristo@apple.com> |
| |
| * config/i386/i386.md (*zero_extendqihi2_movzbw): Avoid partial |
| register stalls by zero extending to the full register. |
| |
| 2005-11-27 Joseph S. Myers <joseph@codesourcery.com> |
| |
| * 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 <rth@redhat.com> |
| |
| * 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 <pinskia@physics.uc.edu> |
| |
| 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 <hp@axis.com> |
| |
| * doc/md.texi (Insn Canonicalizations): Refer to the |
| function commutative_operand_precedence for further rules. |
| |
| 2005-11-25 Roger Sayle <roger@eyesopen.com> |
| |
| 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 <ghazi@caip.rutgers.edu> |
| |
| 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 <hp@axis.com> |
| |
| * config/cris/cris.md ("reload_out<mode>"): 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 <reichelt@igpm.rwth-aachen.de> |
| |
| * 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 <joseph@codesourcery.com> |
| |
| 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 <amodra@bigpond.net.au> |
| |
| * config/rs6000/ppc64-fp.c (__floatunditf): New function. |
| (__floatundidf, __floatundisf): Likewise. |
| |
| 2005-11-25 David Edelsohn <edelsohn@gnu.org> |
| |
| * 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 <pinskia@physics.uc.edu> |
| |
| 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 <pinskia@physics.uc.edu> |
| |
| 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 <joseph@codesourcery.com> |
| |
| 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 <bernd.schmidt@analog.com> |
| |
| * expr.c (expand_expr_real_1): Fix error in last change. |
| |
| 2005-11-24 J"orn Rennecke <joern.rennecke@st.com> |
| |
| * 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 <joern.rennecke@st.com> |
| 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}<mode>. |
| * 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 <uros@kss-loka.si> |
| |
| * 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 <rguenther@suse.de> |
| Dirk Mueller <dmueller@suse.de> |
| |
| 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 <bonzini@gnu.org> |
| |
| * optabs.c (expand_binop): Use swap_commutative_operands_with_target |
| to order operands. |
| (swap_commutative_operands_with_target): New. |
| |
| 2005-11-24 Paolo Bonzini <bonzini@gnu.org> |
| |
| * 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 <bje@au.ibm.com> |
| |
| * 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 <bje@au.ibm.com> |
| |
| * optabs.c (prepare_cmp_insn): Use SCALAR_FLOAT_MODE_P. |
| Remove unused `class' variable. |
| |
| 2005-11-23 Gabriel Dos Reis <gdr@integrable-solutions.net> |
| |
| 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 <gdr@integrable-solutions.net> |
| |
| 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 <mark@codesourcery.com> |
| |
| * 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 <dnovillo@redhat.com> |
| |
| * passes.c (init_optimization_passes): Document |
| sequencing of passes. |
| |
| 2005-11-23 Kazu Hirata <kazu@codesourcery.com> |
| |
| * 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 <bje@au.ibm.com> |
| |
| * dwarf2.h (enum dwarf_type): Add DW_ATE_decimal_float. |
| |
| 2005-11-22 J"orn Rennecke <joern.rennecke@st.com> |
| |
| 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 <ebotcazou@adacore.com> |
| |
| PR middle-end/22561 |
| * tree-ssa-structalias.c (get_constraint_for): Handle ARRAY_RANGE_REF. |
| |
| 2005-11-22 Ian Lance Taylor <ian@airs.com> |
| |
| * 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 <kazu@codesourcery.com> |
| |
| 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 <pinskia@physics.uc.edu> |
| |
| PR middle-end/23606 |
| * fold-const.c (fold_unary) <case NOP_EXPR, CONVERT_EXPR>: 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 <pinskia@physics.uc.edu> |
| |
| PR target/24988 |
| * config/rs6000/darwin.h (TARGET_OS_CPP_BUILTINS): Remove call |
| to SUBTARGET_OS_CPP_BUILTINS. |
| |
| 2005-11-22 Richard Earnshaw <richard.earnshaw@arm.com> |
| |
| * 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 <amodra@bigpond.net.au> |
| |
| PR target/24954 |
| * config/rs6000/predicates.md (easy_vector_constant_add_self): Fix |
| typo last change. |
| |
| 2005-11-22 Alan Modra <amodra@bigpond.net.au> |
| |
| 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 <amodra@bigpond.net.au> |
| |
| 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 <bje@au.ibm.com> |
| |
| * 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 <ghazi@caip.rutgers.edu> |
| |
| * 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 <joseph@codesourcery.com> |
| |
| * 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 <joseph@codesourcery.com> |
| |
| * 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 <joel.sherrill@oarcorp.com> |
| |
| * 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 <bje@au.ibm.com> |
| |
| * cse.c (fold_rtx): Typo fix. |
| (find_comparison_args): Pass the mode of arg1, not arg1 itself. |
| |
| 2005-11-21 Richard Henderson <rth@redhat.com> |
| |
| * 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 <bje@au.ibm.com> |
| |
| * 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 <bonzini@gnu.org> |
| |
| PR target/24951 |
| * config/rs6000/rs6000.c (output_vec_const_move): Load cst and |
| cst2 only for SPE vectors. |
| |
| 2005-11-21 David Edelsohn <edelsohn@gnu.org> |
| |
| PR target/24953 |
| * config/rs6000/predicates.md (vrsave_operation): Check |
| UNSPEC_VOLATILE value. |
| |
| 2005-11-21 Jan Hubicka <jh@suse.cz> |
| |
| PR tree-optimization/24653 |
| * tree-ssa-ccp.c (ccp_fold): Strip down useless conversions. |
| |
| 2005-11-21 Uros Bizjak <uros@kss-loka.si> |
| |
| * 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 <uros@kss-loka.si> |
| |
| * fold-const.c (fold_binary) <RDIV_EXPR>: Optimize A / A to 1.0 |
| if we don't care about NaNs or Infinities. |
| |
| 2005-11-20 Ian Lance Taylor <ian@airs.com> |
| |
| 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 <kazu@codesourcery.com> |
| |
| PR middle-end/20583 |
| * cse.c (cse_insn): Reject invalid forms of CONST earlier. |
| |
| 2005-11-20 Joseph S. Myers <joseph@codesourcery.com> |
| |
| * 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 <rth@redhat.com> |
| |
| PR 24931 |
| * tree-sra.c (struct sra_elt): Add all_no_warning. |
| (struct sra_walk_fns) <use>: 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 <bernd.schmidt@analog.com> |
| |
| * 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 <btinternet.com> |
| |
| * gensupport.c (std_preds): Fixed extraneous `false` in last change. |
| |
| 2005-11-20 Andreas Schwab <schwab@suse.de> |
| |
| PR target/24757 |
| * config/ia64/ia64.c (ia64_expand_atomic_op): Fix condition of cmp |
| insn. |
| |
| 2005-11-19 Richard Henderson <rth@redhat.com> |
| |
| 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 <phython@gcc.gnu.org> |
| |
| * 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 <hp@axis.com> |
| |
| 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 <rguenther@suse.de> |
| |
| * fold-const.c (fold_indirect_ref_1): Make sure we fold |
| ARRAY_REFs of constant strings. |
| |
| 2005-11-19 Jakub Jelinek <jakub@redhat.com> |
| |
| * gcc.c (version_compare_spec_function): Use '%s' rather than %qs in |
| fatal format string. |
| |
| 2005-11-19 Joseph S. Myers <joseph@codesourcery.com> |
| |
| * combine.c (make_compound_operation): Swap operands of |
| commutative operation if necessary before returning. |
| |
| 2005-11-19 Richard Guenther <rguenther@suse.de> |
| |
| 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 <bonzini@gcc.gnu.org> |
| |
| * 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 <mark@codesourcery.com> |
| |
| * BASE-VER: Change to 4.2.0. |
| |
| 2005-11-18 James E Wilson <wilson@specifix.com> |
| |
| * builtins.c (fold_builtin_strstr): Pass s1 through fold_convert before |
| returning it. |
| |
| 2005-11-18 Mike Stump <mrs@apple.com> |
| |
| * 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 <richard.earnshaw@arm.com> |
| |
| 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 <phython@gcc.gnu.org> |
| |
| * 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 <jie.zhang@analog.com> |
| |
| * config/bfin/bfin.md (trap): New pattern. |
| |
| 2005-11-18 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> |
| |
| * 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 <dvorakz@suse.cz> |
| |
| PR rtl-optimization/24497 |
| * loop-unroll.c (apply_opt_in_copies): Do not verify equality of |
| the copied insn. |
| |
| 2005-11-18 Zdenek Dvorak <dvorakz@suse.cz> |
| |
| * tree-scalar-evolution.c (expression_expensive_p): New function. |
| (scev_const_prop): Use compute_overall_effect_of_inner_loop. |
| |
| 2005-11-18 Bernd Schmidt <bernd.schmidt@analog.com> |
| |
| * config/bfin/crtlibid.s: New file. |
| |
| 2005-11-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> |
| |
| 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 <aoliva@redhat.com> |
| |
| * 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 <wilson@specifix.com> |
| |
| * tree.def (FUNCTION_DECL): Correct typo in comment. |
| |
| 2005-11-17 Richard Henderson <rth@redhat.com> |
| |
| * 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 <bernd.schmidt@analog.com> |
| |
| * 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 <rguenther@suse.de> |
| |
| 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 <rth@redhat.com> |
| |
| PR middle-end/23497 |
| * tree-ssa.c (warn_uninitialized_var): Skip real and imaginary |
| parts of an SSA_NAME. |
| |
| 2005-11-16 Richard Earnshaw <richard.earnshaw@arm.com> |
| |
| PR target/24861 |
| * arm.md (split for movsf with immediate): Restrict split to insns |
| that set a general register. |
| |
| 2005-11-16 Daniel Jacobowitz <dan@codesourcery.com> |
| |
| * 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 <dan@codesourcery.com> |
| |
| * unwind-sjlj.c (_Unwind_GetCFA): Handle the builtin_setjmp case. |
| |
| 2005-11-16 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * config/alpha/alpha.c (alpha_init_builtins): Use type_for_mode |
| langhook to get a DImode integer type. |
| |
| 2005-11-16 Richard Henderson <rth@redhat.com> |
| J"orn Rennecke <joern.rennecke@st.com> |
| Ulrich Weigand <uweigand@de.ibm.com> |
| |
| 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 <ebotcazou@adacore.com> |
| |
| * 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 <dan@codesourcery.com> |
| |
| * 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 <nathan@codesourcery.com> |
| |
| * 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. |
| * 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 <edelsohn@gnu.org> |
| |
| 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 <bernd.schmidt@analog.com> |
| |
| * 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 <tobias.schlueter@physik.uni-muenchen.de> |
| |
| 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 <ebotcazou@adacore.com> |
| |
| * config/alpha/alpha.c (alpha_expand_prologue): Fix off-by-one bug |
| in the stack probing loop. |
| |
| 2005-11-15 David Edelsohn <edelsohn@gnu.org> |
| |
| * configure.ac: Use .machine power5 not power5x. |
| * configure: Regenerate. |
| |
| 2005-11-15 Mike Stump <mrs@apple.com> |
| |
| * 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 <amodra@bigpond.net.au> |
| |
| 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 <edelsohn@gnu.org> |
| |
|