X-Git-Url: http://git.sourceforge.jp/view?a=blobdiff_plain;f=gcc%2FChangeLog;h=beaa6d50ee93cee35d396cd7818db45c7932dac5;hb=cf28d4b1ad6491ff30ecd6a426d088ccb864277a;hp=73e8079ba35ade57f04368a6306951c8e4c6d7b0;hpb=7532009b7582285c364c1f9253e92a7b6233a8c6;p=pf3gnuchains%2Fgcc-fork.git diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 73e8079ba35..beaa6d50ee9 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,744 @@ +2005-03-17 H.J. Lu + + PR target/18380 + * config/ia64/unwind-ia64.c (_Unwind_FindTableEntry): Removed. + +2005-03-17 Kazu Hirata + + * config/h8300/h8300.c (h8300_init_once): Use MASK_H8300S_1 + instead of MASK_H8300S. + * config/h8300/h8300.h (target_flags, MASK_H8300S, MASK_MAC, + MASK_INT32, MASK_ADDRESSES, MASK_QUICKCALL, MASK_SLOWBYTE, + MASK_NORMAL_MODE, MASK_RELAX, MASK_H8300H, MASK_ALIGN_300, + MASK_H8300SX, TARGET_INT32, TARGET_ADDRESSES, + TARGET_QUICKCALL, TARGET_SLOWBYTE, TARGET_H8300H, + TARGET_H8300XS, TARGET_NORMAL_MODE, TARGET_ALIGN_300, + TARGET_SWITCHES): Remove. + (TARGET_H8300S): Redefine interms of TARGET_H8300S_1 and + TARGET_H8300SX. + * config/h8300/h8300.opt: New. + + * config/alpha/alpha.opt, config/arc/arc.opt, + config/h8300/h8300.opt, config/mips/mips.opt: Add copyright + notices. + +2005-03-17 Ian Lance Taylor + + * gmon.c: Remove. + +2005-03-17 Richard Sandiford + + * config/arc/arc.c (arc_cpu_string): Make static. Default to "base" + (arc_text_string, arc_data_string, arc_rodata_string): Make static. + (TARGET_HANDLE_OPTION): Override default. + (arc_handle_option): New function. + (arc_init): Remove code to set arch_cpu_string. + * config/arc/arc.h (target_flags, TARGET_MASK_MANGLE_CPU) + (TARGET_MANGLE_CPU, TARGET_MASK_MANGLE_CPU_LIBGCC) + (TARGET_MANGLE_CPU_LIBGCC, TARGET_MASK_ALIGN_LOOPS, TARGET_ALIGN_LOOPS) + (TARGET_MASK_BIG_ENDIAN, TARGET_BIG_ENDIAN, TARGET_MASK_NO_COND_EXEC) + (TARGET_NO_COND_EXEC, TARGET_SWITCHES, TARGET_DEFAULT) + (SUBTARGET_SWITCHES, arc_cpu_string, arc_text_string, arc_data_string) + (arc_rodata_string, TARGET_OPTIONS): Delete. + * config/arc/arc.opt: New file. + +2005-03-17 Richard Henderson + + * doc/extend.texi (Weak Pragmas): New section. + (attribute alias): Clarify that target must be in the same + translation unit. + +2005-03-17 Richard Henderson + + * config/alpha/alpha.opt: New file. + * config/alpha/alpha.c (alpha_tune): New. Rename all existing uses + of alpha_cpu. + (alpha_cpu_string, alpha_tune_string, alpha_tp_string, + alpha_fprm_string, alpha_fptm_string): Make static. + (alpha_tls_size_string): Remove. + (alpha_handle_option): New. + (override_options): Update for alpha_cpu/alpha_tune split. + (alpha_file_start): Likewise. + (TARGET_DEFAULT_TARGET_FLAGS): New. + (TARGET_HANDLE_OPTION): New. + * config/alpha/alpha.h (alpha_tune): Declare. + (MASK_FP, MASK_FPREGS, TARGET_FPREGS, MASK_GAS, TARGET_GAS, + MASK_IEEE_CONFORMANT, TARGET_IEEE_CONFORMANT, MASK_IEEE, TARGET_IEEE, + MASK_IEEE_WITH_INEXACT, TARGET_IEEE_WITH_INEXACT, MASK_BUILD_CONSTANTS, + TARGET_BUILD_CONSTANTS, MASK_FLOAT_VAX, TARGET_FLOAT_VAX, MASK_BWX, + TARGET_BWX, MASK_MAX, TARGET_MAX, MASK_FIX, TARGET_FIX, MASK_CIX, + TARGET_CIX, MASK_EXPLICIT_RELOCS, TARGET_EXPLICIT_RELOCS, + MASK_SMALL_DATA, TARGET_SMALL_DATA, MASK_TLS_KERNEL, TARGET_TLS_KERNEL, + MASK_SMALL_TEXT, TARGET_SMALL_TEXT, MASK_LONG_DOUBLE_128, + TARGET_LONG_DOUBLE_128, MASK_CPU_EV5, TARGET_CPU_EV5, MASK_CPU_EV6, + TARGET_CPU_EV6, MASK_SUPPORT_ARCH): Remove. + (TARGET_SWITCHES, TARGET_OPTIONS): Remove. + (TARGET_DEFAULT): Remove MASK_FP. + (TARGET_FP): Redefined based on TARGET_SOFT_FP. + (TARGET_SUPPORT_ARCH): Default on if HAVE_AS_EXPLICIT_RELOCS. + (alpha_cpu_string, alpha_tune_string, alpha_fprm_string, + alpha_fptm_string, alpha_tp_string, alpha_mlat_string, + alpha_tls_size_string): Remove. + * config/alpha/alpha.md (prefetch): Use alpha_cpu. + (attribute tune): Rename from attribute cpu. + * config/alpha/ev4.md: Update to match. + * config/alpha/ev5.md, config/alpha/ev6.md: Likewise. + * config/alpha/freebsd.h (TARGET_DEFAULT): Remove MASK_FP. + * config/alpha/linux.h (TARGET_DEFAULT): Likewise. + * config/alpha/netbsd.h (TARGET_DEFAULT): Likewise. + * config/alpha/osf5.h (TARGET_DEFAULT): Likewise. + * config/alpha/vms.h (TARGET_DEFAULT): Likewise. + +2005-03-16 James E. Wilson + + * config/ia64/ia64.c (issue_nops_and_insn): Check first_insn attribute, + and return without creating new state if before_nops_num is nonzero. + * config/ia64/ia64.md (first_insn): New attribute. + (alloc): Set it to yes. + +2005-03-16 Daniel Berlin + + * tree-vectorizer.c (new_vec_stmt_info): Initialize + STMT_VINFO_SUBVARS to NULL. + * tree-vect-analyze.c (vect_analyze_data_refs): Ditto. + +2005-03-16 Dale Johannesen + + * rtlanal.c (find_first_parameter_load): Rewrite to + return actual first param load or the call if none, + instead of first in block, when not all loads exist. + +2005-03-16 Roger Sayle + + * optabs.c (expand_copysign_absneg): Make static. + * optabs.h (expand_copysign_absneg): Delete prototype. + * config/rs6000/rs6000.md (copysigntf3): Delete pattern. + +2005-03-16 Richard Henderson + + PR middle-end/15700 + * varasm.c (struct alias_pair): Rename from struct output_def_pair. + (alias_pairs): Rename from output_defs. + (find_decl_and_mark_needed): Split out from assemble_alias. + (do_assemble_alias): New. + (assemble_output_def): Remove. + (finish_aliases_1, finish_aliases_2): New. + (process_pending_assemble_output_defs): Remove. + (assemble_alias): Defer aliases for which we don't yet have a + non-external decl for the target symbol. + * passes.c (rest_of_decl_compilation): Register variables with cgraph. + * cgraphunit.c (cgraph_finalize_compilation_unit): Use finish_aliases_1. + * toplev.c (compile_file): Use finish_aliases_2 instead of + process_pending_assemble_output_defs. + * tree.h (finish_aliases_1, finish_aliases_2): Declare. + (process_pending_assemble_output_defs): Remove. + +2005-03-16 Daniel Berlin + + Fix PR tree-optimization/20489 + + * tree-ssa-alias.c (push_fields_onto_fieldstack): DTRT + for empty structures. + +2005-03-16 Daniel Berlin + + Fix PR tree-optimization/20490 + + * tree-ssa-pre.c (create_expression_by_pieces): Use + force_gimple_operand on result of fold. + +2005-03-16 Andrew Pinski + + * config/i386/emmintrin.h (_mm_extract_epi16): Correct the number + of closing parenthesis. + +2005-03-16 Kazu Hirata + + * builtins.c (expand_movstr): Update a call to + fold_builtin_strcpy. + (expand_builtin_strncpy): Update a call to + fold_builtin_strncpy. + (fold_builtin_strcpy, fold_builtin_strncpy): Take decomosed + arguments of CALL_EXPR. + (fold_builtin_1): Update calls to fold_builtin_strcpy and + fold_builtin_strncpy. + * tree-ssa-ccp.c (ccp_fold_builtin): Likewise. + * tree.h: Update the prototypes of fold_builtin_strcpy and + fold_builtin_strncpy. + +2005-03-16 Steven Bosscher + Dorit Naishlos + + * tree-vect-analyze.c (vect_enhance_data_refs_alignment): Copy + UNITS_PER_SIMD_WORD to a local variable to avoid a "division by zero" + error. + +2005-03-16 Steven Bosscher + + * tree-inline.c (walk_type_fields, walk_tree, + walk_tree_without_duplicates): Move from here... + * tree.c: ...to here. + +2005-03-15 Zack Weinberg + + * BASE-VER, DATESTAMP, DEV-PHASE: New files. + * Makefile.in (gcc_version, gcc_version_trigger, ): Delete. + (BASEVER, DEVPHASE, DATESTAMP, BASEVER_c, DEVPHASE_c, DATESTAMP_c) + (BASEVER_s, DEVPHASE_s, DATESTAMP_s): New variables. + (version): Define using $(BASEVER_c). + (Makefile, config.status, build/gcov-iov.o): No longer depends on + version.c. + (version.o): Depend on version files; add custom generation command. + (prefix.o): Define BASEVER on command line. + (s-iov): Depend on version files; adjust command. + (TEXI_CPP_FILES, TEX_IGCC_FILES, TEXI_GCCINT_FILES, TEXI_CPPINT_FILES): + Add gcc-vers.texi. + (gcc-vers.texi): New rule. + (doc/%.info, doc/%.dvi): Add -I . to command line. + (doc/gccinstall.dvi): Likewise. + (PACKAGE): Delete. All uses replaced with "gcc". + * aclocal.m4: Do not include gcc-version.m4. + * configure.ac: Do not invoke TL_AC_GCC_VERSION. + Do not AC_SUBST nor AC_DEFINE PACKAGE or VERSION. + Set is_release based on contents of DEV-PHASE. + Set gcc_version based on contents of BASE-VER. + Define WIN32_REGISTRY_KEY only if the user overrode the default. + * config.in, configure: Regenerate. + * gccbug.in: Determine version of GCC in use at runtime. + * gcov-iov.c: Get version number and development phase from + command line, not by including version.c. + * intl.c: Replace all uses of PACKAGE with "gcc". + * libada-mk.in: Delete unused "gcc_version" variable. + * prefix.c: Default WIN32_REGISTRY_KEY to BASEVER. + * version.c: (VERSUFFIX): New hook for redistributors; adjust + commentary to match. + (version_string): Put together from pieces. + * config/alpha/x-vms: Do not use $(gcc_version). + * config/i386/t-nwld: Likewise. + * doc/include/gcc-common.texi: Include gcc-vers.texi for + version-GCC and DEVELOPMENT. + +2005-03-15 Roger Sayle + + PR tree-optimization/17454 + * tree.c (tree_size): Add case for TREE_BINFO. + * fold-const.c (fold_checksum_tree): Only clear the overloaded + field TYPE_CACHED_VALUES if TYPE_CACHED_VALUES_P is set. + +2005-03-15 Roger Sayle + + * optabs.c (expand_doubleword_mult): Avoid clobbering op0 and + op1 whilst expanding the signed widenening multiply variant. + +2005-03-15 Richard Sandiford + + * toplev.c (display_target_options): Avoid unused variable warning if + TARGET_SWITCHES and TARGET_OPTIONS are both undefined. + * config/mips/mips.c (mips_arch_string, mips_tune_string): Make static. + (mips_isa_string, mips_abi_string, mips_fix_vr4130_string): Delete. + (mips_isa): Initialize to MIPS_ABI_DEFAULT. + (mips_isa_info): New variable. + (mips_parse_cpu): Remove the first argument and leave the caller + to report errors. + (TARGET_HANDLE_OPTION): Override default. + (mips_handle_option): New function. Move option validation code from... + (override_options): ...here. Update calls to mips_parse_cpu. + * config/mips/mips.h (mips_arch_string, mips_tune_string) + (mips_isa_string, mips_abi_string, TARGET_OPTIONS) + (SUBTARGET_TARGET_OPTIONS): Delete. + * config/mips/mips.opt (mabi=, march=, mflush-func=, mips) + (mno-flush-func, mtune=): New options. + +2005-03-15 Roger Sayle + Richard Henderson + + * real.c (c4x_single_format, c4x_extended_format): Provide values + for signbit_ro for c4x's single and extended floating point formats. + * optabs.c (expand_copysign): Use the floating point format's + signbit_ro for expanding via expand_copysign_absneg, and it's + signbit_rw field for expanding via expand_copysign_bit. + +2005-03-15 Dorit Naishlos + + * tree-vectorizer.h (unknown_alignment_for_access_p): Replaced by + known_alignment_for_access_p. + (known_alignment_for_access_p): New. + (do_peeling_for_alignment): Field made int instead of bool and renamed + to peeling_for_alignment. + (LOOP_DO_PEELING_FOR_ALIGNMENT): Renamed to LOOP_PEELING_FOR_ALIGNMENT. + * tree-vect-analyze.c (vect_determine_vectorization_factor): New. This + functionality used to be in vect_analyze_operations. + (vect_analyze_operations): Code to determine vectorization factor was + moved to vect_determine_vectorization_factor. + (vect_enhance_data_refs_alignment): Update to correct alignment when it + is known instead of -1. Set LOOP_PEELING_FOR_ALIGNMENT to peeling + factor. + (vect_analyze_loop): Call vect_determine_vectorization_factor (used to + be part of vect_analyze_operations). + * tree-vectorizer.c (slpeel_tree_peel_loop_to_edge): Use fold when + creating the guard condition, as the number of iterations may be + constant. + (slpeel_tree_peel_loop_to_edge): Use new name of + LOOP_DO_PEELING_FOR_ALIGNMENT. Set it to 0 instead of false. + * tree-vect-transform.c (vect_gen_niters_for_prolog_loop): Handle known + alignment case more efficiently. Use LOOP_PEELING_FOR_ALIGNMENT. + (vect_do_peeling_for_alignment): Use fold. + (vect_transform_loop): Use new name of LOOP_DO_PEELING_FOR_ALIGNMENT. + + (vect_update_inits_of_dr): Renamed to + vect_update_init_of_dr. + (vect_update_inits_of_drs): Use new name of vect_update_inits_of_dr. + (vectorizable_store): Fix assertion to use == instead of =. + +2005-03-15 Daniel Jacobowitz + + * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Don't clear + call_used_regs for wCG registers. + +2005-03-15 Ulrich Weigand + + * config/s390/s390.c (s390_secondary_output_reload_class): Adapt check + for non-offsettable memory references to cope with outstanding reload + replacements, take 2. + +2005-03-15 Uros Bizjak + + PR target/18668 + * config/i386/i386.h (x86_fisttp): New. + (TARGET_FISTTP): New macro. + * config/i386/i386.c (x86_fisttp): Set for NOCONA. + (output_fix_trunc): Add fisttp parameter. Generate fisttp x87 + instruction when fisttp flag is set. + * config/i386/i386-protos.h (output_fix_trunc): Change declaration. + + * config/i386/i386.md (type attribute): Add fisttp. + (unit attribute): Set to i387 for fisttp type. + (X87MODEF, X87MODEI, SSEMODEF, SSEMODEI24): New mode macros. + (fix_truncxfdi2, fix_truncxfsi2): Generate fisttp patterns for + TARGET_FISTTP. + (fix_truncdfdi2, fix_truncsfdi2, fix_truncdfsi2, fix_truncsfsi2): + Generate fisttp patterns for TARGET_FISTTP. Implement using mode + macros. + (fix_truncxfhi2, fix_truncdfhi2, fix_truncsfhi2): Generate fisttp + patterns for TARGET_FISTTP. Enable patterns for + (TARGET_FISTTP && !TARGET_SSE_MATH). Implement using mode macros. + (fix_trunc_i387_fisttp_1, fix_trunc_i387_fisttp, + fix_trunc_i387_fisttp_with_temp): New instruction patterns to + implement fisttp x87 insn. + (fix_trunc*_i387_fisttp splitters): New patterns. + (*fix_truncdi_i387, *fix_truncsi_i387, *fix_trunchi_i387): + Rename to *fix_trunc_i387_1. Implement using mode macros. + Disable patterns for TARGET_FISTTP. Add comment about FLAGS_REG + clobber. + (fix_truncdi_memory, fix_truncdi_nomemory, fix_trunchi_nomemory): + Rename to fix_trunc_i387 and fix_trunc_i387_with_temp. + Implement using mode macros. Disable patterns for TARGET_FISTTP. + (fix_truncsi_memory, fix_truncsi_nomemory, fix_trunchi_memory, + fix_trunchi_nomemory): Rename to fix_trunc_i387 and + fix_trunc_i387_with_temp. Implement using mode macros. + Disable patterns for TARGET_FISTTP. + (fix_trunc*_i387 splitters): Implement usign mode macros. + (fix_truncdfdi_sse, fix_truncsfdi_sse, fix_truncdfsi_sse, + fix_truncsfsi_sse): Disable for (TARGET_FISTTP && !TARGET_SSE_MATH). + (fix_trunx*_sse peephole2s): Implement using mode macros. + +2005-03-15 J"orn Rennecke + + PR rtl-optimization/20291 + * combine.c (try_combine): If splitting fails, re-try with + original combined pattern, i.e. before clobber stripping. + +2005-03-14 Eric Christopher + + * config/mips/mips.h (DWARF_CIE_DATA_ALIGNMENT): Change for + STACK_GROWS_DOWNWARD. + +2005-03-14 Roger Sayle + + * real.h (struct real_format): Split the signbit field into two + two fields, signbit_ro and signbit_rw. + * real.c (ieee_single_format, mips_single_format, ieee_double_format, + mips_double_format, ieee_extended_motorola_format, + ieee_extended_intel_96_format, ieee_extended_intel_96_round_53_format, + ieee_extended_intel_128_format, ibm_extended_format, + mips_extended_format, ieee_quad_format, mips_quad_format, + vax_f_format, vax_d_format, vax_g_format, i370_single_format, + i370_double_format, c4x_single_format, c4x_extended_format, + real_internal_format): Update initializers for new field. + * builtins.c (expand_builtin_signbit): Use signbit_ro field of the + real_format structure. + * optabs.c (expand_absneg_bit, expand_copysign): Use signbit_rw + field of the real_format structure. + +2005-03-14 Daniel Berlin + + Fix PR tree-optimization/20458 + + * tree-flow-inline.h (mark_call_clobbered): Don't fiddle + DECL_EXTERNAL on STRUCT_FIELD tags. + (clear_call_clobbered): Ditto. + * tree-ssa-operands.c (note_addressable): Make sure the original + variable doesn't slip into the addressable list if we have + subvars. + * tree-tailcall.c (suitable_for_tail_opt_p): Look at STRUCT_FIELD + tags too. + +2005-03-14 Geoffrey Keating + + * doc/cppopts.texi (-fexec-charset): Add concept index entry. + (-fwide-exec-charset): Likewise. + (-finput-charset): Likewise. + * doc/invoke.texi (Warning Options): Document -Wnormalized=. + * c-opts.c (c_common_handle_option): Handle -Wnormalized=. + * c.opt (Wnormalized): New. + +2005-03-14 Devang Patel + + * doc/invoke.texi: Add reference to Visibility document. + +2005-03-14 Richard Sandiford + + * config.gcc (mips*-*-*): Rename MASK_SPLIT_ADDRS to + MASK_SPLIT_ADDRESSES. + * config/mips/mips.h (target_flags, mips_fix_vr4130_string): Delete. + (MASK_INT64, MASK_LONG64, MASK_SPLIT_ADDR, MASK_NO_FUSED_MADD) + (MASK_EXPLICIT_RELOCS, MASK_MEMCPY, MASK_SOFT_FLOAT) + (MASK_FLOAT64, MASK_ABICALLS, MASK_XGOT, MASK_LONG_CALLS) + (MASK_64BIT, MASK_EMBEDDED_DATA, MASK_BIG_ENDIAN) + (MASK_SINGLE_FLOAT, MASK_MAD, MASK_4300_MUL_FIX, MASK_MIPS16) + (MASK_NO_CHECK_ZERO_DIV, MASK_BRANCHLIKELY) + (MASK_UNINIT_CONST_IN_RODATA, MASK_FIX_R4000, MASK_FIX_R4400) + (MASK_FIX_SB1, MASK_FIX_VR4120, MASK_VR4130_ALIGN) + (MASK_FP_EXCEPTIONS, MASK_DIVIDE_BREAKS, MASK_PAIRED_SINGLE) + (MASK_MIPS3D, MASK_SYM32, MASK_DEBUG, MASK_DEBUG_D) + (MASK_MIPS_TFILE, TARGET_INT64, TARGET_LONG64, TARGET_FLOAT64) + (TARGET_64BIT, TARGET_SPLIT_ADDRESSES, TARGET_DEBUG_MODE) + (TARGET_DEBUG_D_MODE, TARGET_MEMCPY, TARGET_ABICALLS) + (TARGET_XGOT, TARGET_SOFT_FLOAT, TARGET_HARD_FLOAT) + (TARGET_LONG_CALLS, TARGET_EMBEDDED_DATA) + (TARGET_UNINIT_CONST_IN_RODATA, TARGET_BIG_ENDIAN) + (TARGET_SINGLE_FLOAT, TARGET_DOUBLE_FLOAT, TARGET_MAD) + (TARGET_FUSED_MADD, TARGET_4300_MUL_FIX, TARGET_CHECK_ZERO_DIV) + (TARGET_DIVIDE_TRAPS, TARGET_BRANCHLIKELY, TARGET_FIX_SB1) + (TARGET_FIX_R4000, TARGET_FIX_R4400, TARGET_FIX_VR4120) + (TARGET_FIX_VR4130, TARGET_VR4130_ALIGN, TARGET_FP_EXCEPTIONS) + (TARGET_PAIRED_SINGLE_FLOAT, TARGET_MIPS3D, TARGET_SYM32) + (TARGET_EXPLICIT_RELOCS): Delete. + (TARGET_SWITCHES, SUBTARGET_TARGET_SWITCHES): Delete. + (TARGET_OPTIONS): Remove entry for -mfix-vr4130. + * config/mips/mips.c (TARGET_DEFAULT_TARGET_FLAGS): Define. + (override_options): Set MASK_LONG64 if -mint64 is given and no + -mlongXX option is. Complain about -mint64 -mlong32. + (override_options, CMP_BUILTINS, mips_bdesc, sb1_desc): Rename + MASK_PAIRED_SINGLE to MASK_PAIRED_SINGLE_FLOAT. + * config/mips/mips.opt: New file. + +2005-03-14 Richard Sandiford + + * config.gcc (extra_options): New variable for listing option files. + Add ${cpu_type}/${cpu_type}.opt to it if that file exists. + * configure.ac (extra_opt_files): New AC_SUBST variable. + (tm_file_list, tm_include_list): Include options.h first. + * configure: Regenerate. + * Makefile.in (extra_opt_files, ALL_OPT_FILES): New variables. + (s-options): Use $(ALL_OPT_FILES) instead of $(lang_opt_files) + (s-options-h): New rule. + (options.h): Depend on it. + (TEXI_GCCINT_FILES): Add options.texi. + * hooks.h (hook_bool_size_t_constcharptr_int_true): Declare. + * hooks.c (hook_bool_size_t_constcharptr_int_true): New function. + * target.h (gcc_target): Add default_target_flags and handle_option. + * target-def.h (TARGET_DEFAULT_TARGET_FLAGS) + (TARGET_HANDLE_OPTION): New macros. + (TARGET_INITIALIZER): Include them. + * opt-functions.awk (opt_args, nth_arg): New functions. + (switch_flags): Handle the "Target" flag. + (var_args): Delete. + (var_name): Use opt_args and nth_arg. + (var_set, var_ref): Likewise. Handle "Mask" and "InverseMask". + * opth-gen.awk: Declare target_flags. Declare MASK_* and TARGET_* + macros for the "Mask" and "InverseMask" options. + * opts.h (cl_var_cond): New enum. + (cl_option): Replace the "has_set_value" and "set_value" fields with + "var_cond" and "var_value". + (CL_TARGET): New macro. + (option_enabled, print_filtered_help): Declare. + (decode_options): Move definition. + * opts.c (handle_option): Search for the original option before + removing any "no-" prefix. Handle CL_TARGET. Adjust for the new + var_cond and var_value fields. Use targetm.handle_option to handle + target options. + (decode_options): Set target_flags to targetm.default_target_flags. + (print_filtered_help): Make global. Handle CL_TARGET. + (option_enabled): New function. + * toplev.c (target_switches): Guard with #ifdef TARGET_SWITCHES. + (display_target_options, set_target_switch, print_switch_values) + (default_pch_valid_p): Guard uses of target_switches with + #ifdef TARGET_SWITCHES. Also... + (display_target_options): Display the CL_TARGET entries in cl_options. + (set_target_option): Don't complain about the "" option when + TARGET_SWITCHES is undefined. + (print_switch_values): Use option_enabled. + (default_pch_valid_p): Check cl_options[] when looking for something + that has changed the value of target_flags. + * c.opt: Remove documentation from top of file. + * doc/gccint.texi: Add an "Options" chapter. Include options.texi. + * doc/sourecebuild.texi: Refer to the new options documentation + instead of c.opt. Document machine-specific .opt files. + * doc/tm.texi (target_flags): Say that this variable is declared + by options.h. + (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Document. + (TARGET_SWITCHES, TARGET_OPTIONS): Refer to the option files as + an alternative. + * doc/options.texi: New file. + +2005-03-14 Alexandre Oliva + + PR middle-end/18628 + * cse.c (fold_rtx_mem): Don't fold a load from a jumptable into a + register. + +2005-03-14 Alexandre Oliva + + PR c++/20280 + * gimplify.c (gimplify_cond_expr): Add fallback argument. Use a + temporary variable of pointer type if an lvalues is required. + (gimplify_modify_expr_rhs): Request an rvalue from it. + (gimplify_expr): Pass fallback on. + +2005-03-14 Kazu Hirata + + * cfgbuild.c: Update comments. + +2005-03-14 Roger Sayle + + PR rtl-optimization/17236 + * optabs.c (expand_doubleword_mult): New helper function split out + from expand_binop. Permute the order in which instructions are + emitted to minimize the number of simultaneously live registers. + (expand_binop): Call expand_doubleword_mult to synthesize a double + word multiplication. + +2005-03-14 Kazu Hirata + + * basic-block.h: Update the prototypes of cached_make_edge and + rtl_make_eh_edge. + * cfg.c (cached_make_edge): Take edge_cache representing one + row of the adjacency matrix of edges. + * cfgbuild.c (make_label_edge, rtl_make_eh_edge): Likewise. + (make_edges): Initialize edge_cache to represent one row of + the adjacency matrix of edges. + +2005-03-14 Zdenek Dvorak + + * tree-ssa-phiopt.c (minmax_replacement, blocks_in_phiopt_order): + New functions. + (tree_ssa_phiopt): Use blocks_in_phiopt_order and minmax_replacement. + Remove unused removed_phis variable. + (conditional_replacement): Use build1/build2. + (abs_replacement): Use last_and_only_stmt and build1/build2. + +2005-03-14 Zdenek Dvorak + + * builtin-attrs.def (ATTR_NOVOPS, ATTR_NOVOPS_LIST, + ATTR_PURE_NOTHROW_NOVOPS_LIST): New. + * builtins.def (ATTR_MATHFN_FPROUNDING): Use NOVOPS. + (BUILT_IN_PREFETCH): Set the NOVOPS attribute. + * c-common.c (handle_novops_attribute): New function. + (c_common_attribute_table): Add "no vops" entry. + * c-decl.c (merge_decls): Copy DECL_IS_NOVOPS. + * calls.c (flags_from_decl_or_type): Set ECF_NOVOPS. + * tree-ssa-operands.c (get_call_expr_operands): Do not + create virtual operands for calls with ECF_NOVOPS flag. + * tree.h (DECL_IS_NOVOPS): New macro. + (struct tree_decl): Add novops_flag. + (ECF_NOVOPS): New constant. + +2005-03-14 Uros Bizjak + + PR target/17688 + * config/i386/i386.c (x86_use_himode_fiop): New. + (x86_use_simode_fiop): Rename from x86_use_fiop. + * config/i386/i386.h (x86_use_himode_fiop): Declare. + (TARGET_USE_HIMODE_FIOP): New. + (x86_use_simode_fiop): Rename from x86_use_fiop. + (TARGET_USE_SIMODE_FIOP): Rename from TARGET_USE_FIOP. + + * config/i386/i386.md (X87MODEI12): New mode macro define. + (*cmpfp_): Rename from *cmpfp_si. Use X87MODEI12 mode macro + to implement x87 FP compare with HImode input operands. + (*fp_jcc_8_387, splitter): Rename from *fp_jcc_8_387. + Use X87MODEI12 mode macro to handle HImode input operands. + (*fop_sf_2_i387, *fop_sf_3_i387, *fop_df_2_i387, + *fop_df_3_i387, *fop_xf_2_i387, *fop_xf_3_i387): + Renamed from *fop_sf_2_i387, *fop_sf_3_i387, *fop_df_2_i387, + *fop_df_3_i387, *fop_xf_2_i387, *fop_xf_3_i387. Use X87MODEI12 mode + macro to implement x87 operators with HImode input operands. + (fop splitters): Use X87MODEI12 mode macro to handle HImode + input operands. + +2005-03-14 Zdenek Dvorak + + * tree-cfg.c (find_taken_edge_cond_expr): Use zero_p instead of + integer_zerop. + * tree-gimple.c (is_gimple_min_invariant): Consider overflowed + constants invariant. + +2005-03-14 Zdenek Dvorak + + * basic-block.h (BB_VISITED): Removed. + * cfganal.c (dfs_enumerate_from): Do not use BB_VISITED flag. + +2005-03-14 Falk Hueffner + + PR bootstrap/20424 + * config/alpha/alpha.c (alpha_fold_builtin_cmpbge): Fix typo. + +2005-03-14 Kazu Hirata + + * ggc-zone.c: Fix comment typos. + + * alloc-pool.c, except.h, ggc-common.c, ggc-zone.c, ggc.h, + stringpool.c, config/mips/mips-protos.h: Update copyright. + +2005-03-14 Alan Modra + + * config/rs6000/rs6000-protos.h: Replace "struct rtx_def *" + throughout with its typedef, "rtx". + * config/rs6000/rs6000.c: Likewise. Formatting fixes. + (rs6000_tls_symbol_ref_1): Remove inline keyword. + * config/rs6000/rs6000.h (REG_ALLOC_ORDER): Formatting. Reorder + regs in comment to match code. + +2005-03-14 Kazu Hirata + + * except.c (check_handled): Make it static. + * except.h: Remove the corresponding prototype. + + * function.c (get_func_frame_size): Make it static. + * function.h: Remove the corresponding type. + + * regclass.c (reg_class_superclasses, reg_class_subclasses): + Make them static. + * hard-reg-set.h: Remove the corresponding declarations. + + * tree-cfg.c (verify_stmts): Check that + bb_for_stmt (stmt) == bb for every PHI node and statement. + +2005-03-14 Alan Modra + + * config.gcc: Remove excess indentation. + (powerpc*-*-*, rs6000-*-*): Accept --with-cpu/tune power5 and 8548. + +2005-03-13 Roger Sayle + + PR middle-end/19331 + * tree.c (get_unwidened): Treat CONVERT_EXPR and NOP_EXPR identically. + * fold-const.c (fold_sign_changed_comparison): Likewise. + (fold_binary): Optimize comparisons against widened operands if + the extension is represented by a CONVERT_EXPR, same as a NOP_EXPR. + +2005-03-13 Eric Botcazou + + * config/sparc/sparc.c (struct_value_alias_set): New global variable. + (sparc_override_options): Initialize it. + (sparc_struct_value_rtx): Set it on the MEM to be returned. + +2005-03-13 David Edelsohn + + * config/rs6000/predicates.md (mem_or_easy_const_operand): Delete. + (reg_or_none500mem_operand): New predicate. + (zero_reg_mem_operand): New predicate. + * config/rs6000/rs6000.md (extendsfdf2): Change operand1 predicate + to reg_or_none500mem_operand. + (extendsfdf2_fpr): Add MEM alternative. + (extenddftf2_internal): Change operand2 predicate to + zero_reg_mem_operand. + +2005-03-13 Daniel Jacobowitz + + * ggc-zone.c: Rewritten. + + * alloc-pool.c (dump_alloc_pool_statistics): Don't print statistics + if there are none. + * configure.ac: Define GGC_ZONE for --with-gc=zone. + * config.in: Regenerated. + * configure: Regenerated. + * gengtype.c (write_types_process_field, write_func_for_structure): + Pass new argument to gt_pch_note_object. + * ggc-common.c (struct ptr_data): Add TYPE. + (gt_pch_note_object): Take TYPE argument and save it. + (call_count): Update call to ggc_pch_count_object. + (call_alloc): Update call to ggc_pch_alloc_object. + (gt_pch_save): Call ggc_pch_prepare_write after paddng the PCH + file. + * ggc-none.c (rtl_zone, garbage_zone, ggc_alloc_zone_stat): Delete. + * ggc-page.c (rtl_zone, tree_zone, garbage_zone) + (ggc_alloc_zone_stat): Delete. + (ggc_pch_count_object, ggc_pch_alloc_object): Add TYPE argument. + * ggc.h (gt_pch_note_object, ggc_pch_count_object) + (ggc_pch_alloc_object): Update prototypes. + (garbage_zone): Delete. + (tree_zone, rtl_zone, ggc_alloc_zone_stat, ggc_alloc_zone): Move to + GGC_ZONE conditional. Update. Change tree_zone and rtl_zone into + pointers. + (tree_id_zone): New variable. + (ggc_alloc_cleared_zone): Remove unused. + (ggc_alloc_zone): Define. + (ggc_alloc_rtvec, ggc_alloc_tree): Update to use ggc_alloc_zone. + * rtl.c (rtx_alloc_stat, shallow_copy_rtx_stat): Use + ggc_alloc_zone_stat. + * stringpool.c (gt_pch_n_S): Update call to gt_pch_note_object. + * tree.c (copy_node_stat, make_tree_binfo_stat, make_tree_vec_stat) + (tree_cons_stat, build1_stat): Update call to ggc_alloc_zone_stat. + (make_node_stat): Likewise. Use tree_id_zone. + +2005-03-13 Daniel Jacobowitz + Joseph S. Myers + + * configure.ac: Check for MIPS TLS. + * configure: Regenerated. + * config/mips/mips-protos.h (enum mips_symbol_type): Add + SYMBOL_TLS, SYMBOL_TLSGD, SYMBOL_TLSLDM, SYMBOL_DTPREL, + SYMBOL_GOTTPREL, and SYMBOL_TPREL. + * config/mips/mips.c (mips_regno_to_class): Handle V1_REG. + (TARGET_HAVE_TLS, TARGET_CANNOT_FORCE_CONST_MEM): Define. + (mips_classify_symbol, mips_symbolic_constant_p) + (mips_symbolic_address_p, mips_symbol_insns): Handle TLS symbols. + (mips_tls_operand_p, mips_call_tls_get_addr) + (mips_legitimize_tls_address, mips_cannot_force_const_mem) + (mips_tls_symbol_ref_1): New functions. + (mips_legitimize_address, mips_legitimize_const_move): Call + mips_legitimize_tls_address. + (override_options): Handle V1_REG and TLS symbols. Disable TLS + for MIPS16. + * config/mips/mips.h (enum reg_class, REG_CLASS_NAMES) + (REG_CLASS_CONTENTS, GR_REG_CLASS_P): Include V1_REG. + (mips_char_to_class): Document V1_REG. + (HAVE_AS_TLS): Provide default. + * config/mips/mips.md (UNSPEC_TLS_LDM, UNSPEC_TLS_GET_TP): New + constants. + (load_got): Renamed from *load_got. Allow when + !TARGET_ABICALLS. + (tls_get_tp_): New instruction. + +2005-03-13 Daniel Jacobowitz + + * configure.ac: Update checks for target tools. + * configure: Regenerated. + +2005-03-13 Daniel Jacobowitz + + * varasm.c (decl_tls_model): Check flag_shlib instead of flag_pic. + +2005-03-13 Roger Sayle + + * expmed.c (expand_mult): Use synthetic multiplication sequences for + more classes of DImode multiplication by constant. Allow both + multiplication by small negative constants (by performing a + multiplication by a positive constant and negating the result) and + multiplications by large powers of two, by using a left shift. + 2005-03-13 Kazu Hirata * tree-into-ssa.c (find_idf): Speed up by putting the indexes @@ -28,6 +769,9 @@ * tree-ssa-live.c (build_tree_conflict_graph): Remove local variable ann. + * tree-ssa-phiopt.c (value_replacement): Remove local variable + result. + 2005-03-13 Andy Hutchinson PR target/18251 @@ -73,7 +817,7 @@ Don't mark variables non-addressable if they still have addressable subvars. Also mark subvars addressable when the real variable is marked - addressable. + addressable. (add_pointed_to_var): Try to prune the pointed-to set by only pointing to subvars when possible. Otherwise, make sure we set addresses_needed and pt_vars to @@ -104,13 +848,13 @@ (STMT_VINFO_SUBVARS): New macro. * common.opts: add flag_tree_salias. - + * opts.c (decode_options): flag_tree_salias defaults to on. - + * doc/invoke.texi: Document fdump-tree-svars and -ftree-salias. * doc/tree-ssa.texi: Document structural alias analysis. - + 2005-03-12 Steven Bosscher * tree-cfg.c (make_goto_expr_edges): Don't use error_mark_node. @@ -166,7 +910,7 @@ 2005-03-12 Geoffrey Keating - * c-lex.c (c_lex_with_flags): Add parameter to call to + * c-lex.c (c_lex_with_flags): Add parameter to call to cpp_spell_token. 2005-03-11 Per Bothner @@ -249,7 +993,7 @@ ATTR_NOTHROW_NONNULL_1_4, ATTR_CONST_NOTHROW_NONNULL_1, ATTR_PURE_NOTHROW_NONNULL_1, ATTR_PURE_NOTHROW_NONNULL_1_2, ATTR_MALLOC_NOTHROW_NONNULL_1): Delete. - + * builtins.def: Use the non-specific "nonnull" attibute lists. 2005-03-11 Zdenek Dvorak @@ -568,17 +1312,17 @@ 2005-03-08 Fariborz Jahanian - * config/rs6000/rs6000.c (invalid_arg_for_unprototyped_fn): + * config/rs6000/rs6000.c (invalid_arg_for_unprototyped_fn): Define the real function for ppc-darwin. * c-typeck.c (convert_arguments): Check for target-specific invalid argument call to unprototyped function. - * target-def.h (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN): + * target-def.h (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN): New Macro. - * target.h (invalid_arg_for_unprototyped_fn): New field + * target.h (invalid_arg_for_unprototyped_fn): New field in struct calls. - * targhooks.c (hook_invalid_arg_for_unprototyped_fn): New + * targhooks.c (hook_invalid_arg_for_unprototyped_fn): New default target hook. - * targhooks.h (hook_invalid_arg_for_unprototyped_fn): + * targhooks.h (hook_invalid_arg_for_unprototyped_fn): Declare. 2005-03-08 Kazu Hirata @@ -642,9 +1386,9 @@ (alpha_v8qi_u, alpha_v8qi_s, alpha_v4hi_u, alpha_v4hi_s): New. (alpha_init_builtins): Init them. Set nothrow and const attributes on builtins. - (alpha_fold_builtin_cmpbge, alpha_fold_builtin_zapnot, - alpha_fold_builtin_extxx, alpha_fold_builtin_insxx, - alpha_fold_builtin_mskxx, alpha_fold_builtin_umulh, + (alpha_fold_builtin_cmpbge, alpha_fold_builtin_zapnot, + alpha_fold_builtin_extxx, alpha_fold_builtin_insxx, + alpha_fold_builtin_mskxx, alpha_fold_builtin_umulh, alpha_fold_vector_minmax, alpha_fold_builtin_perr, alpha_fold_builtin_pklb, alpha_fold_builtin_pkwb, alpha_fold_builtin_unpkbl, alpha_fold_builtin_unpkbw, @@ -702,7 +1446,7 @@ * tree.h (DECL_IS_BUILTIN): Reverted my patch from earlier today. 2005-03-06 Andrew Pinski - + PR tree-opt/17671 * tree-ssa-phiopt.c (tree_ssa_phiopt): Rewrite so we base the bbs on the COND_EXPR instead of the PHI_NODEs. @@ -757,7 +1501,7 @@ * tree-cfg.c (remove_bb): If USE_MAPPED_LOCATION, change type of local variable loc. Change logic appropriately. * tree-vect-transform.c (vect_finish_stmt_generation): Use - EXPR_LOCATION rather than EXPR_LOCUS if USE_MAPPED_LOCATION. + EXPR_LOCATION rather than EXPR_LOCUS if USE_MAPPED_LOCATION. * c-parser.c (c_parser_for_statement): Initialize loc variable. * tree.h (DECL_IS_BUILTIN): Temporarily revert definition of DECL_IS_BUILTIN in the USE_MAPPED_LOCATION because of jc1 issues. @@ -952,7 +1696,7 @@ (ASM_SPEC): Pass down -msym32 and -mno-sym32. 2005-03-04 Devang Patel - + PR tree-optimization/18815 * tree-if-conv.c (combine_blocks): Adjust loop header edges for loops with zero exit edges. @@ -960,7 +1704,7 @@ 2005-03-04 Devang Patel * doc/invoke.texi: Remove reference to webpage that does not exist. - + 2005-03-04 John David Anglin Joseph S. Myers @@ -1015,7 +1759,7 @@ 2005-03-04 Kazu Hirata * fold-const.c (fold_ternary): Unroll the "for" loop to - extract operands. + extract operands. 2005-03-04 Andrew Haley @@ -1080,13 +1824,13 @@ 2005-03-03 Daniel Berlin Fix PR debug/20253 - + * c-opts.c (c_common_parse_file): Call start_source_file and end_source_file at the approriate times. * dwarf2out.c (dwarf2out_finish): Don't auto-end the main file, it will be done for us now. - + 2005-03-04 Kazu Hirata * fold-const.c (fold_ternary): New. @@ -1202,15 +1946,15 @@ * config/darwin8.h (LIB_SPEC): Switch -lmx and -lSystem. 2005-03-02 Devang Patel - + Undo PR tree-optimization/18815 fix. - + 2005-03-02 Devang Patel PR tree-optimization/18815 * tree-if-conv.c (combine_blocks): Adjust loop header edges for loops with zero exit edges. - + 2005-03-02 Kazu Hirata * cfg.c (connect_src, connect_dest, disconnect_src,