X-Git-Url: http://git.sourceforge.jp/view?p=pf3gnuchains%2Fgcc-fork.git;a=blobdiff_plain;f=gcc%2FChangeLog;h=6feb09b5a9042c0a5e4ec690ffdbac1ec2032c4e;hp=bcdc638984b57e5a4d3a1fb08a52e6950ebced1f;hb=39db3cd8e873ccb4bbc0e274080d219719febba4;hpb=d90aa65d9fba4793cad1daf99f044800f6d1390c diff --git a/gcc/ChangeLog b/gcc/ChangeLog index bcdc638984b..6feb09b5a90 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,606 @@ +2004-12-15 Richard Sandiford + + * config/mips/mips.c (mips_arg_info): Use FUNCTION_ARG_BOUNDARY to + decide whether an argument is double-word aligned. + +2004-12-15 Richard Henderson + + * config/i386/i386.md: Fix missing modes on cmove splitters. + +2004-12-15 Jan Beulich + + * mklibgcc.in (libgcc2_c_dep): Add dependency on libgcc2.h. + +2004-12-15 Uros Bizjak + + * config/i386/i386.md (floathisf2, *floathisf2_1, floatsisf2, + *floatsisf2_i387, *floatsisf2_sse, floatdisf2, + *floatdisf2_i387_only, *floatdisf2_i387, *floatdisf2_sse, + floathidf2, *floathidf2_1, *floatsidf2_i387, *floatsidf2_sse, + floatdidf2, *floatdidf2_i387_only, *floatdidf2_i387, + *floatdidf2_sse, floatunssisf2, floatunsdisf2, floatunsdidf2): + Unify enable constraint with respect to TARGET_80387, TARGET_SSE, + TARGET_SSE2, TARGET_64BIT, TARGET_SSE_MATH and TARGET_MIX_SSE_I387. + (*float?i?f_i387): Rename to *float?i?f2_mixed. + (*float?i?f2_1): Rename to *float?i?f2_i387. + (*float?i?f2_i387_only): Rename to *float?i?f2_i387. + (float?ixf2): Penalize integer register operand. + +2004-12-14 John David Anglin + + PR c++/17242 + * configure.ac: Add GAS check for HP-UX .nsubspa comdat. + * configure, config.in: Rebuilt. + * config/pa/pa-hpux10.h (SUPPORTS_ONE_ONLY, MAKE_DECL_ONE_ONLY): Delete + defines. + * config/pa/pa.c (pa_select_section): Allow uninitialized variables in + one-only (comdat) subspaces. + * config/pa/som.h (SUPPORTS_SOM_COMDAT): New define. + (SUPPORTS_ONE_ONLY): True if SUPPORTS_WEAK or SUPPORTS_SOM_COMDAT are + true. + (MAKE_DECL_ONE_ONLY): Place uninitialized variables in common. + +2004-12-14 Ian Lance Taylor + + * combine.c (combine_validate_cost): Consider cost of + undobuf.other_insn rather than always allowing the recombination + if it is set. + +2004-12-14 John David Anglin + + * pa-host.c (MAP_FAILED): Define if not defined. + (pa_gt_pch_use_address): Handle short reads. + +2004-12-14 Richard Henderson + + PR target/17990 + * config/i386/i386.c (x86_use_bt): New. + (ix86_expand_unary_operator): Use MEM_P. + (ix86_expand_fp_absneg_operator): New. + * config/i386/i386.h (x86_use_bt): Declare. + (TARGET_USE_BT): New. + * config/i386/i386-protos.h: Update. + * config/i386/i386.md (negsf2): Use ix86_expand_fp_absneg_operator. + (negdf2, negxf2, abssf2, absdf2, absxf2): Likewise. + (negsf2_memory, negsf2_ifs, negsf2_if, negdf2_memory, negdf2_ifs, + negdf2_ifs_rex64, negdf2_if, negdf2_if_rex64, negxf2_if, + abssf2_memory, abssf2_ifs, abssf2_if, absdf2_memory, absdf2_ifs, + absdf2_ifs_rex64, absdf2_if, absxf2_if): Remove. + (absnegsf2_mixed, absnegsf2_sse, absnegsf2_i387, absnegdf2_mixed, + absnegdf2_sse, absnegdf2_i387, absnegxf2_i387): New. Merge all + neg and abs splitters. Handle DFmode in general regs in 64-bit mode. + (negextendsfdf2, absextendsfdf2): Disable for non-mixed sse math. + (btsq, btrq, btcq): New. Add peepholes as well. + (movv4sf_internal splitter): Postpone til after reload. + (movv2di_internal splitter): Likewise. + * config/i386/predicates.md (const_0_to_63_operand): New. + (absneg_operator): New. + +2004-12-14 John David Anglin + + * pa.h (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P, REGNO_OK_FOR_FP_P): + Check register number and that reg_renumber is nonzero before using it. + +2004-12-14 Steve Ellcey + + * doc/invoke.texi (IA-64 options): Add existing options that + weren't already listed. + +2004-12-14 Jeff Law + + * tree-outof-ssa.c (coalesce_abnormal_edges): Pass the correct target + partition to conflict_graph_merge_regs. + +2004-12-14 Uttam Pawar + Janis Johnson + + * rs6000.c (rs6000_handle_altivec_attribute_tree): Report errors + for vector types with invalid component types. + +2004-12-14 Jakub Jelinek + + PR middle-end/18951 + * builtins.c (expand_builtin_mathfn, expand_builtin_mathfn_2, + expand_builtin_mathfn_3): Avoid using arguments passed to + save_expr after that call. + + * fold-const.c (fold_single_bit_test): If flag_syntax_only, pretend + LOAD_EXTEND_OP is not defined. + (fold): Likewise. If flag_syntax_only, don't depend on BITS_PER_WORD. + +2004-12-14 Tobias Schlueter + + * tree.def, doc/c-tree.texi: Correctly document restrictions on the + shift width. + +2004-12-14 Kazu Hirata + + * expr.h (expand_modifier): Define EXPAND_STACK_PARM as 1. + +2004-12-14 Richard Earnshaw + + PR target/18973 + arm-cores.def (arm926ej-s, arm1026ej-s, arm1136j-s, arm1136-jfs) + (arm1176jz-s, arm1176jzf-s, mpcorenovfp, mpcore): Add load-scheduling + property to flags. + +2004-12-14 Diego Novillo + + * tree-gimple.c (get_base_address): Update documentation. + +2004-12-13 Richard Henderson + + PR middle-end/17930 + * passes.c (rest_of_clean_state): Fix computation of + preferred_incoming_stack_boundary. + +2004-12-13 Wolfgang Bangerth + + * reload.h: Remove struct needs and its only use. + +2004-12-13 Roger Sayle + + PR rtl-optimization/18928 + * simplify_rtx.c (plus_minus_operand_p): New function to encode + the test for suitable operands for calls to simplify_plus_minus. + Only allow (CONST (PLUS x y)) if both x and y are CONSTANT_P. + (simplify_binary_operation): Use plus_minus_operand_p. + +2004-12-13 Alexandre Oliva + + PR tree-opt/16951 + * tree-inline.c (setup_one_parameter): Don't directly map a + parameter to the address of another variable of the same + function. + +2004-13-12 Steven Bosscher + + * basic-block.h (PROP_POSTRELOAD): Do not include PROP_AUTOINC, we + can never create autoinc insns after reload. + +2004-12-13 Jeff Law + Kazu Hirata + + * tree-ssa-dom.c (thread_across_edge): Do not thread jumps if a + PHI argument is set from a PHI_RESULT in the same block and the + PHI argument is not the same as the PHI result. + +2004-12-13 David Edelsohn + + * xcoffout.c (xcoffout_declare_function): Always strip storage + class encoding. + +2004-12-13 Andrew Pinski + + PR target/18964 + * config/darwin.c (darwin_assemble_visibility): Fix minor diagnostic + problem, adding a space at the end of the string before concatenation. + +2004-12-13 Kazu Hirata + + * c-common.c (fname_as_string): Free namep if we are returning + cstr.text. + + * tree-ssa-dom.c (record_edge_info): Fix memory leak. + +2004-12-13 Andrew Pinski + + * tree-cfg.c (remove_useless_stmts_cond): Call fold on COND_EXPR_COND. + +2004-12-13 Kazu Hirata + + * tree-ssa-dom.c (record_equivalences_from_phis): Speed up by + doing a pointer comparison. + + * tree-ssa-dom.c (record_equivalences_from_phis): Add a + comment. + + * defaults.h, stmt.c, tree-cfg.c, tree-ssa-dce.c: Fix comment + typos. + +2004-12-13 Kazuhiro Inaoka + + * config/m32r/t-linux (SHLIB_MAPFILES): Add libgcc-glibc.ver to + the list rather than replacing the existing value. + +2004-12-13 Richard Henderson + + * cfg.c (dump_flow_info): Don't dump pseudo info after reload. + +2004-12-13 Richard Henderson + + * Makefile.in (insn-preds.o): Depend on REGS_H. + * genpreds.c (write_insn_preds_c): Include regs.h. + * config/i386/predicates.md (index_register_operand): Use + REG_OK_FOR_INDEX_STRICT_P and REG_OK_FOR_INDEX_NONSTRICT_P. + + * config/i386/i386.h (REG_CLASS_FROM_LETTER): Add 'l'. + * config/i386/i386.md (lea_general_1, lea_general_1_zext, + lea_general_2, lea_general_2_zext, lea_general_3, lea_general_3_zext, + adddi_1_rex64, addsi_1, addsi_1_zext, addhi_1_lea, addqi_1_lea, + ashldi3_1_rex64, ashlsi3_1, ashlsi3_1_zext, ashlhi3_1_lea, + ashlqi3_1_lea): Use 'l' for index register operand. + (ashldi3_1_rex64 splitter): Use index_register_operand. + (ashlsi3_1 splitter): Be more careful with modes. + +2004-12-13 Danny Smith + + PR target/18459 + * defaults.h (TARGET_USE_JCR_SECTION): New macro. + * doc/tm.texi (TARGET_USE_JCR_SECTION): Document it. + * config/i386/cygming.h (TARGET_USE_JCR_SECTION): Override + default. + +2004-12-13 Uros Bizjak + + PR target/14941 + PR target/18503 + * config/i386/i386.md (sse_movss, sse2_movsd, sse2_movhpd): + Fix wrong vec_merge selector bitmask. + +2004-12-12 Richard Henderson + + PR rtl-opt/17186 + * reg-stack.c (move_nan_for_stack_reg): New. + (subst_stack_regs_pat): Use it. + (move_for_stack_reg): Handle source register not live with a nan. + +2004-12-12 Richard Henderson + + * config/i386/i386.c (ix86_gimplify_va_arg): Fix type mismatch + errors across operations. + +2004-12-12 Di-an Jan + + * doc/passes.texi (Pass Manager): Correct list of source files. + +2004-12-12 Richard Henderson + + * expr.c (emit_move_change_mode): New. + (emit_move_via_alt_mode): Use it. + +2004-12-12 Nathanael Nerode + John David Anglin + + PR middle-end/17564 + * dojump.c (do_compare_and_jump): Only canonicalize function pointers + in a comparison if both sides are function pointers. + +2004-12-12 Richard Henderson + + PR target/18932 + * config/i386/i386.md (all splits and peepholes): Use flags_reg_operand + and compare_operator to propagate the input CC mode to the output. + * config/i386/predicates.md (compare_operator): New. + +2004-12-12 Andrew Pinski + + PR tree-opt/18040 + * expr.c (get_inner_reference): Remove NON_LVALUE_EXPR, NOP_EXPR, + CONVERT_EXPR cases. + (handled_component_p): Likewise. + +2004-12-12 Kazu Hirata + + * reg-stack.c (convert_regs_2): Free stack. + + * tree-ssa-dom.c (thread_across_edge, dom_opt_finalize_block): Fix + comment typos. + +2004-12-12 Daniel Berlin + + * tree-ssa-loop-ch.c (copy_loop_headers): Loop can be null. + * tree-ssa-loop-im.c (determine_lsm): tree_root may not have a real + inner loop. + +2004-12-12 Diego Novillo + + * tree-gimple.c (get_base_address): Update documentation. + +2004-12-12 Kazu Hirata + + * lcm.c (optimize_mode_switching): Free ptr even when mode_set + is NULL_RTX. + +2004-12-12 Roger Sayle + + * reg-stack.c (change_stack): Avoid placing the new top-of-stack in + its correct location during popping if we need to permute the stack + afterwards. Attempt to preserve the original stack ordering. + +2004-12-12 Kazu Hirata + + * lcm.c (optimize_mode_switching): Free insert and delete in + the "for" loop. + +2004-12-11 David Edelsohn + Ulrich Weigand + + PR target/18641 + * config/rs6000/darwin.h (PREFERRED_RELOAD_CLASS): Reload all + constants into all register classes intersecting with FLOAT_REGS + via memory. + * config/rs6000/rs6000.h (PREFERRED_RELOAD_CLASS): Same. + * config/rs6000/rs6000.md (movdi_internal32): Ignore FPRs when + choosing register preferences. + (movdi_internal64): Same. + +2004-12-11 Kazu Hirata + + * tree-into-ssa.c (rewrite_ssa_into_ssa): Free SSA_NAME_AUX + before we release an SSA_NAME. + +2004-12-11 Roger Sayle + + PR middle-end/18921 + * fold-const.c (fold_unwidened_comparison): Use omit_one_operand + instead of constant_boolean_node as arg0 may have side-effects. + +2004-12-10 John David Anglin + + * pa-host.c (pa_gt_pch_use_address): Use lseek and read to copy PCH + file to anonymous private map. + +2004-12-10 Roger Sayle + + PR target/18002 + PR middle-end/18424 + * dojump.c (do_jump): When attempting to reverse the effects of + fold_single_bit_test, we need to STRIP_NOPS and narrowing type + conversions, and handle BIT_XOR_EXPR that's used to invert the + sense of the single bit test. + +2004-12-10 Devang Patel + + PR 18732 + * gcc.c (main): Do not break out of loop when error is reported while + processing one source file. + +2004-12-10 Diego Novillo + + * tree-into-ssa.c (REWRITE_THIS_STMT): Define. + (mark_def_sites): Clear REWRITE_THIS_STMT for statements that + don't need any operands rewritten. + (rewrite_stmt): Ignore statements that don't need to be + rewritten. + (rewrite_operand): Validate that an existing SSA_NAME is + identical to the current reaching definition of the operand. + +2004-12-10 Diego Novillo + + * tree-dfa.c (mark_call_clobbered_vars_to_rename): New function. + * tree-vectorizer.c (vectorizable_load): Call it. + * tree-flow.h (mark_call_clobbered_vars_to_rename): Declare. + * tree-sra.c (mark_all_v_defs): Also mark VUSEs for renaming. + +2004-12-10 Kazu Hirata + + * regmove.c (combine_stack_adjustments_for_block): Free + memlist if it hasn't been freed. + +2004-12-10 Ziemowit Laski + + * c-typeck.c (lookup_field): Check if a TYPE_LANG_SPECIFIC + pointer field is set before dereferencing it. + +2004-12-10 Andrew Pinski + + PR middle-end/18903 + * tree-cfg.c (remove_bb): Put the moved label at the beginning + of the basic block. + +2004-12-10 Kazu Hirata + + * tree-data-ref.c (free_data_refs): Free each data_reference + object. + + * tree-ssa-dom.c (thread_across_edge): Speed up by avoiding a + call to is_gimple_min_invariant if we know the result. + +2004-12-10 Jeff Law + + * tree-ssa-alias.c (setup_pointers_and_addressables): Remove + redundant test of v_ann->mem_tag_kind. + + * tree-ssa-operands.c (get_indirect_ref_operands): Remove + redundant conditional clearing opf_kill_def. + +2004-12-10 Richard Sandiford + + * config/frv/frv-modes.def: Fix comment typos. + (CC_NZ): Define new mode. + * config/frv/frv-protos.h (frv_select_cc_mode): Declare. + (condexec_intop_cmp_operator): Delete. + * config/frv/frv.c (comparison_string): New function. + (frv_print_operand): Use it to handle 'c' and 'C'. + (relational_operator): Redefine in terms of integer_relational_operator + and float_relational_operator. + (signed_relational_operator, unsigned_relational_operator): Delete. + (integer_relational_operator): New predicate, combining the above. + Check the mode of the first operand but leave frv.md to check the rest. + (float_relational_operator): Just check the mode of the first operand + and leave frv.md to check the rest. + (intop_compare_operator): Assume the result is compared with zero + in mode CC_NZmode. Allow PLUS and MINUS. Leave frv.md to check + the operand predicates. + (condexec_intop_cmp_operator): Delete. + (frv_ifcvt_modify_tests, frv_ifcvt_modify_multiple_tests) + (frv_hard_regno_mode_ok): Handle CC_NZmode. + (frv_select_cc_mode): New function. + * config/frv/frv.h (SELECT_CC_MODE): Use frv_select_cc_mode. + (REVERSIBLE_CC_MODE): Include CC_NZmode. + (PREDICATE_CODES): Replace entries for signed_relational_operand and + unsigned_relational_operator with one for integer_relational_operator. + Delete entry for condexec_intop_cmp_operator. + * config/frv/frv.md (movcc_nz, *internal_movcc_nz, reload_incc_nz) + (reload_outcc_nz, *cmpsi_cc_nz, *cond_exec_cmpsi_cc_nz): New patterns. + (*combo_intop_compare2, *combo_intop_compare4): Delete. + (*combo_intop_compare1): Change mode to CC_NZ. + (*combo_intop_compare2): Likewise. Renamed from *combo_intop_compare3. + (branch_{un,}signed_true, branch_{un,}signed_false) + (*scc_{un,}signed, *scc_neg1_{un,}signed, *ck_{un,}signed) + (*movqicc_internal1_{un,}signed, *movqicc_internal2_{un,}signed) + (*movhicc_internal1_{un,}signed, *movhicc_internal2_{un,}signed) + (*movsicc_internal1_{un,}signed, *movsicc_internal2_{un,}signed) + (*movsfcc_has_fprs_{un,}signed, *movsfcc_no_fprs_{un,}signed) + (*return_{unsigned_,}true, *return_{unsigned_,}false): Merge these + pattern pairs. Use integer_relational_operator. Remove mode from + icc_operand. + +2004-12-10 Mark Dettinger + + * config/s390/s390.c (struct processor_costs): New fields ml, + sqdbr, sqebr. + (s390_rtx_costs): Added the missing handling of multiply & add, + square root, and umulsidi. + +2004-12-10 Kazu Hirata + + * expmed.c (synth_mult): Initialize new_limit.latency before + making a recursive call. + +2004-12-10 Nick Clifton + + * config/mn10300/mn10300.c (legitimate_address_p): Reject address + whose index is itself the sum of two other parts. + +2004-12-10 Alan Modra + + * config/t-slibgcc-sld (SHLIB_LINK): Correct symlink. + +2004-12-10 Uros Bizjak + + * config/i386/i386.md (*cmpfp_sf): Change type attribute to "multi". + +2004-12-09 Richard Henderson + + PR c/18282 + * attribs.c (decl_attributes): Use relayout_decl. + * c-common.c (handle_mode_attribute): Copy all relevant type + parameters from the new underlying integral type. + +2004-12-09 Richard Henderson + + * c-common.c (shorten_compare): Don't special-case min/maxval + for C enumerations. + +2004-12-09 Richard Sandiford + + * simplify-rtx.c (simplify_subreg): In the CONCAT case, check whether + the request subreg is entirely contained in the requested component. + (simplify_gen_subreg): Return null for CONCATs that are rejected + by simplify_subreg. + * expmed.c (store_bit_field): Create a temporary when changing the + value to an integer mode. + +2004-12-09 David Edelsohn + + * real.c (ibm_extended): Correct comment. + +2004-12-09 Stan Shebs + + * config/rs6000/darwin-asm.h: New file, 32/64-bit assembly macros + formerly in darwin-tramp.asm. + * config/rs6000/darwin-tramp.asm: Include darwin-asm.h. + * config/rs6000/darwin-fpsave.asm: Use 32/64-bit macros. + * config/rs6000/t-darwin: Add dependencies. + +2004-12-09 Richard Henderson + + PR target/17025 + * config/i386/i386.md (testqi_1_maybe_si, andqi_2_maybe_si): New. + (test_qi_1, andqi_2): Do not promote to simode. + +2004-12-09 Andrew Pinski + + PR tree-opt/18904 + * tree-chrec.c (chrec_convert): Use fold_convert + instead of convert. + +2004-12-09 Matt Rice + + PR preprocessor/18102 + * c-incpath.c (remove_duplicates): Check for construct + equality. + +2004-12-09 Dorit Naishlos + + * genopinit.c (vec_realign_store_optab): Initialization removed. + * optabs.c (optab_for_tree_code): REALIGN_STORE_EXPR case removed. + * optabs.h (optab_index): OTI_vec_realign_store Removed. + (vec_realign_store_optab): Removed. + * target-def.h (TARGET_VECTORIZE_BUILTIN_MASK_FOR_STORE): Removed. + * target.h (builtin_mask_for_store): Removed. + * tree.def (REALIGN_STORE_EXPR): Removed. + * config/rs6000/rs6000.c (rs6000_builtin_mask_for_store): Removed. + (altivec_builtin_mask_for_store): Removed. + (altivec_init_builtins): Removed initialization of + altivec_builtin_mask_for_store. + + * doc/tm.texi (TARGET_VECTORIZE_MISALIGNED_MEM_OK): New. + (TARGET_VECTORIZE_BUILTIN_MASK_FOR_LOAD): New. + +2004-12-09 Nathan Sidwell + + * tree.def (SET_TYPE): Remove. + (CONSTRUCTOR): Update description. + * builtins.c (type_to_class) Remove SET_TYPE case. + * dbxout.c (dbxout_type): Likewise. + * dwarf2out.c (is_base_type): Likewise. + (gen_set_type_die): Remove. + (gen_type_die): Remove SET_TYPE case. + * expr.c (count_type_elements): Likewise. + (mostly_zeroes_p): Likewise. + (store_constructor): Likewise. + * print_tree.c (print_node): Likewise. + * stor-layout.c (layout_type): Likewise. + * tree-browser.c (browse_tree): Likewise. + * tree-inline.c (remap_type): Likewise. + * tree-pretty-print.c (dump_generic_node): Likewise. + * tree.c (type_contains_plaeholder_1, type_hash_eq, + variably_modified_type_p, initializer_zerop): Likewise. + * tree.h (SET_OR_ARRAY_CHECK): Remove. + (AGGREGATE_TYPE_P): Remove SET_TYPE check. + (TYPE_DOMAIN): Use ARRAY_TYPE_CHECK. + * typeclass.h (enum type_class): Remove set_type_class. + * varasm.c (const_hash_1): Remove SET_TYPE case. + (compare_constant, copy_constant, output_constant): Likewise. + * config/i386/i386.c (classify_argument): Likewise. + * config/ia64/ia64.c (hfa_element_mode): Likewise. + * config/sparc/sparc.c (sparc_type_code): Likewise. + + PR c++/16681 + * tree-inline.c (estimate_num_insns_1): Add RANGE_EXPR case. + +2004-12-08 Richard Henderson + + * config/i386/i386.md: Use FLAGS_REG everywhere. + +2004-12-08 Eric Christopher + + * config/mips/mips.c (mips_scalar_mode_supported_p): Rewrite + to avoid call to default function. + +2004-12-08 Zack Weinberg + + PR 17982 + * varasm.c (pending_assemble_externals): New static. + (assemble_external_real): Meat of assemble_external split out + to this new function. + (process_pending_assemble_externals): New function. + (assemble_external): Use gcc_assert. If flag_unit_at_a_time + is true and the basic test passes, merely cons the decl onto + the pending list to be handled later. + * tree.h: Declare process_pending_assemble_externals. + * cgraphunit.c (cgraph_optimize): Call it. + + * config/h8300/h8300.h: Do not define ASM_OUTPUT_EXTERNAL. + +2004-12-08 Kazu Hirata + + * cfgloopmanip.c (create_preheader): Speed up by "unrolling" + and simplifying FOR_EACH_EDGE. + 2004-12-08 Richard Sandiford * config/frv/frv.c (frv_sort_insn_group): Always initialize @@ -82,9 +685,9 @@ 2004-12-07 David Mosberger - PR target/18443 - * config/ia64/ia64.c (ia64_assemble_integer): Add support for - emitting unaligned pointer-sized integers. + PR target/18443 + * config/ia64/ia64.c (ia64_assemble_integer): Add support for + emitting unaligned pointer-sized integers. 2004-12-07 Steven Bosscher