OSDN Git Service

2005-06-01 Paul Thomas <pault@gcc.gnu.org>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index 5c9b9fd..45feeac 100644 (file)
@@ -1,3 +1,401 @@
+2005-06-01  Jan Hubicka  <jh@suse.cz>
+
+       * except.c (struct eh_region): Kill unused fields.
+       * basic-block.h (struct basic_block_def): Likewise.
+
+2005-06-01  J"orn Rennecke <joern.rennecke@st.com>
+
+       PR rtl-optimization/21767
+       * rtl.h (function_invariant_p): Re-add declaration.
+       * reload1.c (function_invariant_p): No longer static.
+       * ifcvt.c (dead_or_predicable): Remove REG_EQUAL notes that
+       might have become invalid.
+
+2005-06-01  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c/21536
+       PR c/20760
+       * gimplify.c (gimplify_decl_expr): Call gimplify_type_sizes
+       on variable sizes types if a decl is a pointer to a VLA.
+       (gimplify_type_sizes): Handle POINTER_TYPE and REFERENCE_TYPE.
+       Call gimplify_type_sizes on aggregate fields.  Prevent infinite
+       recursion.
+
+       * fold-const.c (fold_ternary): Optimize BIT_FIELD_REF of VECTOR_CST.
+
+       * config/i386/xmmintrin.h (_mm_setzero_ps, _mm_set_ss, _mm_set1_ps,
+       _mm_set_ps, _mm_setr_ps): Add __extension__.
+       * config/i386/emmintrin.h (_mm_set_sd, _mm_set1_pd, _mm_set_pd,
+       _mm_setr_pd, _mm_setzero_pd, _mm_set_epi64x, _mm_set_epi64x,
+       _mm_set_epi32, _mm_set_epi16, _mm_set_epi8, _mm_setzero_si128):
+       Likewise.
+       (_mm_clflush): Don't use return in void function.
+
+       * config/i386/emmintrin.h (_mm_castpd_ps, _mm_castpd_si128,
+       _mm_castps_pd, _mm_castps_si128, _mm_castsi128_ps, _mm_castsi128_pd):
+       Use __inline instead of inline.
+
+2005-06-01  Richard Guenther  <rguenth@gcc.gnu.org>
+
+       * fold-const.c (fold_binary): Fix types in strlen vs.
+       zero comparison folding.
+
+2005-06-01  Richard Henderson  <rth@redhat.com>
+
+       * configure.ac (HAVE_AS_JSRDIRECT_RELOCS): New.
+       * config.in, configure: Rebuild.
+       * config/alpha/alpha.c (print_operand): Add 'j'.
+       * alpha.md (divmodsi_internal_er_1): Use it.
+       (divmoddi_internal_er_1): Likewise.
+
+2005-06-01  Richard Sandiford  <rsandifo@redhat.com>
+
+       * system.h (TARGET_OPTIONS, TARGET_SWITCHES): Poison.
+       * opts.h (print_filtered_help): Delete.
+       * opts.c (handle_option, decode_options): Remove calls to
+       set_target_switch.
+       (print_target_help): New function.
+       (common_option, print_help): Call print_target_help instead of
+       display_target_options.
+       (print_filtered_help): Make static.
+       * toplev.h (display_target_options, set_target_switch): Delete.
+       * toplev.c (target_switches, target_options, display_target_options)
+       (set_target_switch): Delete.
+       (print_switch_values): Remove handling of TARGET_SWITCHES and
+       TARGET_OPTIONS.
+       (default_get_pch_validity): Likewise.  Only treat target_flags
+       specially if targetm.check_pch_target_flags is nonnull.
+       (pch_option_mismatch): New function.
+       (default_pch_valid_p): Use it.  Remove handling of TARGET_SWITCHES
+       and TARGET_OPTIONS.  Only treat target_flags specially if
+       targetm.check_pch_target_flags is nonnull.
+       * config/ia64/ia64.c (ia64_override_options): Don't mention
+       TARGET_OPTIONS in comment.
+       * config/m68k/m68k-none.h (CC1_SPEC): Likewise.
+       * doc/invoke.texi: Remove a reference to TARGET_SWITCHES.
+       * doc/tm.texi (TARGET_DEFAULT_TARGET_FLAGS): Don't mention the
+       interaction with TARGET_SWITCHES.
+       (TARGET_@var{featurename}, TARGET_SWITCHES, TARGET_OPTIONS): Delete.
+
+2005-06-01  Richard Sandiford  <rsandifo@redhat.com>
+
+       * config/sh/sh.c (multcosts): Check sh_multcost rather than
+       sh_multcost_str.
+       (sh_register_move_cost): Likewise sh_gettrcost and sh_gettrcost_str.
+       (sh_multcost_str, sh_gettrcost_str, sh_div_str, sh_divsi3_libfunc)
+       (cut2_workaround_str): Delete.
+       * config/sh/sh.h (SUBTARGET_OPTIONS, TARGET_OPTIONS)
+       (TARGET_SH5_CUT2_WORKAROUND, sh_multcost_str, sh_gettrcost_str)
+       (sh_div_str, sh_divsi3_libfunc, cut2_workaround_str): Delete.
+       * config/sh/sh.opt (mcut2-workaround, mdiv=, mdivsi3_libfunc=)
+       (mgettrcost=, multcost=): New options.
+
+2005-06-01  Richard Sandiford  <rsandifo@redhat.com>
+
+       * opts.h (cl_option_state): New structure.
+       (get_option_state): Declare.
+       * opts.c (get_option_state): New function.
+       * toplev.c (option_affects_pch_p): New function.
+       (default_get_pch_validity): Store the state of all options for which
+       option_affects_pch_p returns true.
+       (default_pch_valid_p): Check the state of those options here.
+       Only check target_flags separately if targetm.check_pch_target_Flags
+       is nonnull or if TARGET_SWITCHES is defined.
+
+2005-06-01  Richard Sandiford  <rsandifo@redhat.com>
+
+       * config/mips/mips-protos.h (mips_use_ins_ext_p): Remove parameter
+       names.
+
+2005-06-01 Mostafa Hagog <mustafa@il.ibm.com>
+
+       * modulo-sched.c (undo_generate_reg_moves ): Fix PR 21138.
+
+2005-06-01 Mostafa Hagog <mustafa@il.ibm.com>
+
+       * gcse.c (compute_transp, load_killed_in_block): Use 
+       MEM_READONLY_P.
+
+2005-06-01  David.Billinghurst  <David.Billinghurst@riotinto.com>
+
+       PR target/21854
+       * config/mips/mips-protos.h: Declare mips_use_ins_ext_p
+       
+2005-05-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * errors.h (warning, error, fatal, internal_error): Add printf
+       attribute.
+       * genmodes.c (make_vector_mode): Fix format arguments.
+
+2005-05-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * basic-block.h, bb-reorder.c, c-gimplify.c, config/darwin.c,
+       config/rs6000/rs6000-c.c, dominance.c, gimple-low.c, gimplify.c,
+       lambda-code.c, lambda-trans.c, tree-browser.c, tree-cfg.c,
+       tree-chrec.c, tree-data-ref.c, tree-dfa.c, tree-eh.c,
+       tree-if-conv.c, tree-into-ssa.c, tree-loop-linear.c,
+       tree-mudflap.c, tree-nomudflap.c, tree-outof-ssa.c,
+       tree-pretty-print.c, tree-scalar-evolution.c, tree-sra.c,
+       tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
+       tree-ssa-dse.c, tree-ssa-forwprop.c, tree-ssa-live.c,
+       tree-ssa-operands.c, tree-ssa-phiopt.c, tree-ssa-pre.c,
+       tree-ssa-propagate.c, tree-ssa-sink.c, tree-ssa-threadupdate.c,
+       tree-ssa-uncprop.c, tree-ssa.c, tree-vect-analyze.c,
+       tree-vect-transform.c, tree-vectorizer.c, vec.c: Don't include
+       errors.h and include toplev.h if necessary.
+       
+       * rtl.c, varray.c: If we're compiling as a GENERATOR_FILE, include
+       errors.h otherwise include toplev.h.
+       
+       * Makefile.in: Update dependencies.
+       
+
+2005-06-01  Danny Smith  <dannysmith@users.sourceforge.net>
+
+       * config/i386/cygming.h (NO_PROFILE_COUNTERS): Define.
+
+2005-05-31  Geoffrey Keating  <geoffk@geoffk.org>
+
+       * config/rs6000/rs6000.md (sync_boolcshort_internal): New.
+       * config/rs6000/rs6000.c (rs6000_emit_sync): Shift count must
+       be complemented for big-endian.  Mask for AND must be rotated,
+       not shifted.  Handle short operands with NOT on the memory
+       operation.
+
+2005-05-30  Daniel Berlin  <dberlin@dberlin.org>
+
+       * c-objc-common.c (c_tree_printer): Check flag before hashtable.
+       Use DECL_DEBUG_EXPR and SET_DECL_DEBUG_EXPR.
+       * dwarf2out.c (dwarf2out_var_location): Ditto.
+       * toplev.c (default_tree_printer): Ditto.
+       * tree-outof-ssa.c (create_temp): Ditto.
+       * tree-sra.c (instantiate_element): Ditto.
+       * var-tracking.c (track_expr_p): Ditto.
+       * tree.c (struct tree_map): New structure.
+       (debug_expr_for_decl): New.
+       (tree_map_eq): New function.
+       (tree_map_hash): Ditto.
+       (tree_map_marked_p): Ditto.
+       (print_debug_expr_statistics): Ditto.
+       (decl_debug_expr_lookup): Ditto.
+       (decl_debug_expr_insert): Ditto.
+       (dump_tree_statistics): Dump debug_expr hashtable stats.
+       * tree.h (DECL_DEBUG_EXPR): Change
+       (SET_DECL_DEBUG_EXPR): Add.
+       
+2005-06-01  Alan Modra  <amodra@bigpond.net.au>
+
+       * configure.ac: Add --enable-secureplt.
+       (HAVE_AS_REL16): Test for R_PPC_REL16 relocs.
+       * config.in: Regenerate.
+       * configure: Regenerate.
+       * config.gcc (powerpc64-*-linux*, powerpc-*-linux*): Add
+       rs6000/secureplt.h to tm_file when enable_secureplt.
+       * doc/invoke.texi (msecure-plt, mbss-plt): Document.
+       * doc/install.texi: Document --enable-targets and --enable-secureplt.
+       Correct xrefs to "Using the GNU Compiler Collection (GCC)".
+       * config/rs6000/secureplt.h: New file.
+       * config/rs6000/sysv4.h (TARGET_SECURE_PLT): Define.
+       (SUBTARGET_OVERRIDE_OPTIONS): Error if -msecure-plt given without
+       assembler support.
+       (CC1_SECURE_PLT_DEFAULT_SPEC): Define.
+       (CC1_SPEC): Delete duplicate mno-sdata.  Invoke cc1_secure_plt_default.
+       (SUBTARGET_EXTRA_SPECS): Add cc1_secure_plt_default.
+       * config/rs6000/sysv4.opt (msecure-plt, bss-plt): Add options.
+       * config/rs6000/rs6000.h (TARGET_SECURE_PLT): Define.
+       * config/rs6000/rs6000.c (rs6000_emit_load_toc_table): Handle
+       TARGET_SECURE_PLT got register load sequence.
+       (rs6000_emit_prologue): Call rs6000_emit_load_toc_table when
+       TARGET_SECURE_PLT.
+       (rs6000_elf_declare_function_name): Don't emit toc address offset
+       word when TARGET_SECURE_PLT.
+       * config/rs6000/rs6000.md (elf_high, elf_low): Move past load_toc_*.
+       (load_toc_v4_PIC_1) Enable for TARGET_SECURE_PLT.
+       (load_toc_v4_PIC_3b, load_toc_v4_PIC_3c): New insns.
+       (call, call_value): Mark pic_offset_table_rtx used for sysv pic and
+       TARGET_SECURE_PLT.
+       (call_nonlocal_sysv, call_value_nonlocal_sysv, sibcall_nonlocal_sysv,
+       sibcall_value_nonlocal_sysv): Add 32768 offset when TARGET_SECURE_PLT
+       and -fPIC.
+       * config/rs6000/tramp.asm (trampoline_initial): Use "bcl 20,31".
+       (__trampoline_setup): Likewise.  Init r30 before plt call.
+
+2005-05-31  DJ Delorie  <dj@redhat.com>
+
+       * expr.c (convert_move): When a partial_int requires multiple
+       conversion steps, make sure successive steps convert the
+       intermediate value, not the original value.
+
+       * expmed.c (expand_mult): Convert partial_int multiplies to
+       shift/add combinations too.
+
+       * genmodes.c (mode_data): Add wider_2x.
+       (calc_wider_mode): Calculate twice-wider mode too.
+       (emit_mode_wider): Emit twice-wider mode too.
+       * machmode.h (mode_2xwider, GET_MODE_2XWIDER_MODE): New.
+       * expr.c (expand_expr_real_1): Use it for expanding
+       multiplies.
+
+2005-05-31  Zdenek Dvorak  <dvorakz@suse.cz>
+
+       PR tree-optimization/21817
+       * tree-ssa-loop-im.c (for_each_index): Handle VECTOR_CST.
+
+2005-05-31  Pat Haugen  <pthaugen@us.ibm.com>
+
+       * loop.c (loop_invariant_p, valid_initial_value_p): Revert last
+       change.
+
+2005-05-31  Andrew Pinski  <pinskia@physics.uc.edu>
+
+       PR middle-end/20931
+       PR middle-end/20946
+       * fold-const.c (fold_checksum_tree): Copy types also if
+       TYPE_CONTAINS_PLACEHOLDER_INTERNAL is set.
+       Don't call fold_checksum_tree for TREE_LIST's TREE_CHAIN
+       first.
+       Tail recurse TREE_LIST's TREE_CHAIN.
+
+2005-05-31  Andrew Pinski  <pinskia@physics.uc.edu>
+
+       PR tree-opt/21732
+       * tree-ssa-copy.c (dump_copy_of): Create a bitmap and don't visit a
+       SSA_NAME twice and cause the loop to become finite.  Remove the test
+       for val.
+
+2005-05-31  Andrew Pinski  <pinskia@physics.uc.edu>
+
+       * tree-cfg.c (verify_expr): Add checking for COND_EXPR's conditional
+       expression.
+
+2005-05-31  Richard Sandiford  <rsandifo@redhat.com>
+
+       * doc/tm.texi (TARGET_GET_PCH_VALIDITY, TARGET_PCH_VALID_P): Tweak
+       the documentation to make it more future-proof.
+       (TARGET_CHECK_PCH_TARGET_FLAGS): Document this new hook.
+       * target.h (gcc_target): Add check_pch_target_flags.
+       * target-def.h (TARGET_CHECK_PCH_TARGET_FLAGS): New macro.
+       (TARGET_INITIALIZER): Include it.
+       * toplev.c (default_pch_valid_p): Use targetm.check_pch_target_flags.
+       * config/sh/sh-protos.h (sh_pch_valid_p): Delete.
+       * config/sh/sh.c (TARGET_PCH_VALID_P, sh_pch_valid_p): Delete.
+       (sh_check_pch_target_flags): New function.
+       (TARGET_CHECK_PCH_TARGET_FLAGS): Override default.
+
+2005-05-31  Richard Guenther  <rguenth@gcc.gnu.org>
+
+       * fold-const.c (extract_array_ref): Handle more cases,
+       do some useful canonicalization of the base.
+       (fold_binary): Explicitly deal with arrays of zero-sized
+       structures during folding of &a[i] == &a[j].
+
+2005-05-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
+
+       * doc/install.texi (sparc-sun-solaris2*): Update note
+       about Sun bug 4910101.
+       (sparc-sun-solaris2.7): Document bootstrap
+       failure with Sun WorkShop 6 99/08/18 as.
+
+2005-05-30  Pat Haugen  <pthaugen@us.ibm.com>
+
+       * loop.c (loop_invariant_p, valid_initial_value_p): Use
+       regs_invalidated_by_call instead of call_used_regs.
+
+2005-05-30  Paolo Carlini  <pcarlini@suse.de>
+
+       PR middle-end/21743
+       * builtins.def (BUILT_IN_CLOG, BUILT_IN_CLOGF, BUILT_IN_CLOGL):
+       Enable.
+       * doc/extend.texi: Add clog, clogf, clogl.
+
+2005-05-30  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR middle-end/20303
+       * c-pragma.c: Include "vec.h".
+       (handle_pragma_visibility): Use VEC.
+
+       * doc/invoke.texi: Remove the nested visibility push limit.
+
+2005-05-30  Roger Sayle  <roger@eyesopen.com>
+
+       PR rtl-optimization/15422
+       * reg-stack.c (starting_stack_p): New static global.
+       (straighten_stack): Delete prototype. Change to update the stack
+       before the current insn.
+       (subst_stack_regs): Update call to straighten stack.
+       (emit_swap_insn): Delete prototype.  For the first insn in a
+       basic block, update stack_in instead of emitting a real swap.
+       (change_stack): When changing the stack before the first insn
+       in a basic block, update stack_in instead of emitting real code.
+       (compensate_edges): Clear starting_stack_p during compensation.
+       (convert_regs_1): Keep track of starting_stack_p whilst processing
+       a basic block.
+
+2005-05-30  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * tree-ssa-ccp.c (const_val): Make it static.
+
+2005-05-29  Geoffrey Keating  <geoffk@apple.com>
+
+       PR target/21761
+       * config/rs6000/rs6000.md: Remove stray TARGET_32BIT from
+       pattern involving `:P'.
+
+       * Makefile.in (install-cpp): Depend on installdirs.
+
+2005-05-30  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * tree-outof-ssa.c (_elim_graph): Change the type of edge_list
+       to VEC(int,heap)*.
+       (new_elim_graph, clear_elim_graph, delete_elim_graph,
+       elim_graph_add_edge, elim_graph_remove_succ_edge,
+       FOR_EACH_ELIM_GRAPH_SUCC, FOR_EACH_ELIM_GRAPH_PRED): Use VEC
+       instead of VARRAY.
+
+2005-05-29  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * cgraphunit.c, ipa-inline.c, loop-iv.c, modulo-sched.c,
+       opts.c, postreload-gcse.c, tree-browser.def, tree-eh.c,
+       tree-ssa-copyrename.c, tree-vect-analyze.c: Fix typos and
+       follow spelling conventions in error/dump messages.
+
+2005-05-29  Roger Sayle  <roger@eyesopen.com>
+           Richard Henderson  <rth@redhat.com>
+
+       * ifcvt.c (noce_emit_move_insn): Construct a SET pattern directly
+       if the RHS isn't suitable for calling emit_move_insn.
+
+2005-05-29  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * tree-ssa-ccp.c (ccp_fold): Return immediately after calling
+       fold_unary and fold_binary.
+
+2005-05-29  Roger Sayle  <roger@eyesopen.com>
+
+       * reg-stack.c (propagate_stack): Always copy the source stack to
+       the destination.  This routine is now only called when this is safe.
+       (better_edge): New function split out from convert_regs_1 to
+       determine which of two edges is better to propagate across.
+       (convert_regs_1):  We need only search for a best edge if the
+       stack layout hasn't been defined yet.  Use better_edge to help
+       find beste.  No longer traverse unnecessary edges.
+
+2005-05-29  Keith Besaw  <kbesaw@us.ibm.com>
+
+       * tree-ssa-alias.c (new_type_alias): New procedure to
+       create a type memory tag for a pointer with a may-alias
+       set determined from a variable declaration.
+       * tree-flow.h: export declaration of new_type_alias
+       * tree-optimize.c (init_tree_optimization_passes): document
+       that pass_may_alias cannot be called after pass_vectorize.
+       * tree-vect-transform (vect_create_data_ref_ptr): Call
+       new_type_alias when an type memory tag isn't available
+       for a reference.
+       (vectorizable_store): Use copy_virtual_operands to update
+       virtual defs in place (so that loop_version can be called).
+       Call mark_for_renaming for the virtual defs in case peeling
+       is done and virtual uses outside the loop need to be updated.
+
 2005-05-29  Dorit Naishlos  <dorit@il.ibm.com>
 
        PR tree-optimization/21639