+2005-03-16 James E. Wilson <wilson@specifixinc.com>
+
+ * 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 <dberlin@dberlin.org>
+
+ * 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 <dalej@apple.com>
+
+ * 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 <roger@eyesopen.com>
+
+ * 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 <rth@redhat.com>
+
+ 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 <dberlin@dberlin.org>
+
+ Fix PR tree-optimization/20489
+
+ * tree-ssa-alias.c (push_fields_onto_fieldstack): DTRT
+ for empty structures.
+
+2005-03-16 Daniel Berlin <dberlin@dberlin.org>
+
+ 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 <pinskia@physics.uc.edu>
+
+ * config/i386/emmintrin.h (_mm_extract_epi16): Correct the number
+ of closing parenthesis.
+
+2005-03-16 Kazu Hirata <kazu@cs.umass.edu>
+
+ * 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 <stevenb@suse.de>
+ Dorit Naishlos <dorit@il.ibm.com>
+
+ * 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 <stevenb@suse.de>
+
+ * tree-inline.c (walk_type_fields, walk_tree,
+ walk_tree_without_duplicates): Move from here...
+ * tree.c: ...to here.
+
+2005-03-15 Zack Weinberg <zack@codesourcery.com>
+
+ * 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 <roger@eyesopen.com>
+
+ 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 <roger@eyesopen.com>
+
+ * optabs.c (expand_doubleword_mult): Avoid clobbering op0 and
+ op1 whilst expanding the signed widenening multiply variant.
+
+2005-03-15 Richard Sandiford <rsandifo@redhat.com>
+
+ * 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 <roger@eyesopen.com>
+ Richard Henderson <rth@redhat.com>
+
+ * 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 <dorit@il.ibm.com>
+
+ * 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 <dan@codesourcery.com>
+
+ * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Don't clear
+ call_used_regs for wCG registers.
+
+2005-03-15 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * 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 <uros@kss-loka.si>
+
+ 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<mode>_i387_fisttp_1, fix_trunc<mode>_i387_fisttp,
+ fix_trunc<mode>_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<mode>_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<mode>_i387 and fix_trunc<mode>_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<mode>_i387 and
+ fix_trunc<mode>_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 <joern.rennecke@st.com>
+
+ 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 <echristo@redhat.com>
+
+ * config/mips/mips.h (DWARF_CIE_DATA_ALIGNMENT): Change for
+ STACK_GROWS_DOWNWARD.
+
+2005-03-14 Roger Sayle <roger@eyesopen.com>
+
+ * 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 <dberlin@dberlin.org>
+
+ 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 <geoffk@apple.com>
+
+ * 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 <dpatel@apple.com>
+
+ * doc/invoke.texi: Add reference to Visibility document.
+
+2005-03-14 Richard Sandiford <rsandifo@redhat.com>
+
+ * 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 <rsandifo@redhat.com>
+
+ * 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 <aoliva@redhat.com>
+
+ 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 <aoliva@redhat.com>
+
+ 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 <kazu@cs.umass.edu>
+
+ * cfgbuild.c: Update comments.
+
+2005-03-14 Roger Sayle <roger@eyesopen.com>
+
+ 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 <kazu@cs.umass.edu>
+
+ * 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 <dvorakz@suse.cz>
+
+ * 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 <dvorakz@suse.cz>
+
+ * 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 <uros@kss-loka.si>
+
+ 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_<mode>): Rename from *cmpfp_si. Use X87MODEI12 mode macro
+ to implement x87 FP compare with HImode input operands.
+ (*fp_jcc_8<mode>_387, splitter): Rename from *fp_jcc_8_387.
+ Use X87MODEI12 mode macro to handle HImode input operands.
+ (*fop_sf_2<mode>_i387, *fop_sf_3<mode>_i387, *fop_df_2<mode>_i387,
+ *fop_df_3<mode>_i387, *fop_xf_2<mode>_i387, *fop_xf_3<mode>_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 <dvorakz@suse.cz>
+
+ * 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 <dvorakz@suse.cz>
+
+ * basic-block.h (BB_VISITED): Removed.
+ * cfganal.c (dfs_enumerate_from): Do not use BB_VISITED flag.
+
+2005-03-14 Falk Hueffner <falk@debian.org>
+
+ PR bootstrap/20424
+ * config/alpha/alpha.c (alpha_fold_builtin_cmpbge): Fix typo.
+
+2005-03-14 Kazu Hirata <kazu@cs.umass.edu>
+
+ * 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 <amodra@bigpond.net.au>
+
+ * 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 <kazu@cs.umass.edu>
+
+ * 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 <amodra@bigpond.net.au>
+
+ * config.gcc: Remove excess indentation.
+ (powerpc*-*-*, rs6000-*-*): Accept --with-cpu/tune power5 and 8548.
+
+2005-03-13 Roger Sayle <roger@eyesopen.com>
+
+ 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 <ebotcazou@libertysurf.fr>
+
+ * 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 <edelsohn@gnu.org>
+
+ * 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 <dan@codesourcery.com>
+
+ * 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 <dan@codesourcery.com>
+ Joseph S. Myers <joseph@codesourcery.com>
+
+ * 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<mode>): Renamed from *load_got<mode>. Allow when
+ !TARGET_ABICALLS.
+ (tls_get_tp_<mode>): New instruction.
+
+2005-03-13 Daniel Jacobowitz <dan@codesourcery.com>
+
+ * configure.ac: Update checks for target tools.
+ * configure: Regenerated.
+
+2005-03-13 Daniel Jacobowitz <dan@codesourcery.com>
+
+ * varasm.c (decl_tls_model): Check flag_shlib instead of flag_pic.
+
+2005-03-13 Roger Sayle <roger@eyesopen.com>
+
+ * 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 <kazu@cs.umass.edu>
* tree-into-ssa.c (find_idf): Speed up by putting the indexes
* 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 <HutchinsonAndy@netscape.net>
PR target/18251
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
(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 <stevenb@suse.de>
* tree-cfg.c (make_goto_expr_edges): Don't use error_mark_node.
2005-03-12 Geoffrey Keating <geoffk@apple.com>
- * 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 <per@bothner.com>
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 <dvorakz@suse.cz>
2005-03-08 Fariborz Jahanian <fjahanian@apple.com>
- * 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 <kazu@cs.umass.edu>
(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,
* tree.h (DECL_IS_BUILTIN): Reverted my patch from earlier today.
2005-03-06 Andrew Pinski <pinskia@physics.uc.edu>
-
+
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.
* 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.
(ASM_SPEC): Pass down -msym32 and -mno-sym32.
2005-03-04 Devang Patel <dpatel@apple.com>
-
+
PR tree-optimization/18815
* tree-if-conv.c (combine_blocks): Adjust loop header edges for
loops with zero exit edges.
2005-03-04 Devang Patel <dpatel@apple.com>
* doc/invoke.texi: Remove reference to webpage that does not exist.
-
+
2005-03-04 John David Anglin <dave.danglin@nrc-cnrc.gc.ca>
Joseph S. Myers <joseph@codesourcery.com>
2005-03-04 Kazu Hirata <kazu@cs.umass.edu>
* fold-const.c (fold_ternary): Unroll the "for" loop to
- extract operands.
+ extract operands.
2005-03-04 Andrew Haley <aph@redhat.com>
2005-03-03 Daniel Berlin <dberlin@dbrelin.org>
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 <kazu@cs.umass.edu>
* fold-const.c (fold_ternary): New.
* config/darwin8.h (LIB_SPEC): Switch -lmx and -lSystem.
2005-03-02 Devang Patel <dpatel@apple.com>
-
+
Undo PR tree-optimization/18815 fix.
-
+
2005-03-02 Devang Patel <dpatel@apple.com>
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 <kazu@cs.umass.edu>
* cfg.c (connect_src, connect_dest, disconnect_src,