OSDN Git Service

PR rtl-optimization/20291
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index a9a890c..48e144d 100644 (file)
@@ -1,3 +1,271 @@
+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.
        (fold_binary): Optimize comparisons against widened operands if
        the extension is represented by a CONVERT_EXPR, same as a NOP_EXPR.
 
-2005-03-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
+2005-03-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
 
        * config/sparc/sparc.c (struct_value_alias_set): New global variable.
        (sparc_override_options): Initialize it.
        * configure.ac: Define GGC_ZONE for --with-gc=zone.
        * config.in: Regenerated.
        * configure: Regenerated.
-       * gentype.c (write_types_process_field, write_func_for_structure):
+       * 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.