OSDN Git Service

2004-04-08 Andrew Pinski <pinskia@physics.uc.edu>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index a1fffe7..b0718ff 100644 (file)
@@ -1,3 +1,409 @@
+2004-04-08  Andrew Pinski  <pinskia@physics.uc.edu>
+
+       PR target/10129
+       * config/darwin.c (darwin_encode_section_info): When the decl has
+       a DECL_INITIAL, it is only defined also when it is not a common.
+
+2004-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * builtins.c (fold_builtin_isascii, fold_builtin_toascii): New.
+       (fold_builtin): Handle BUILT_IN_ISASCII and BUILT_IN_TOASCII.
+
+2004-04-07  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * config/ia64/ia64.c (ia64_encode_section_info): Don't prod
+       global register variables.
+
+2004-04-07  Joseph S. Myers  <jsm@polyomino.org.uk>
+
+       * fixinc/inclhack.def (rpc_xdr_lvalue_cast_a,
+       rpc_xdr_lvalue_cast_b): New fixes.
+       * fixinc/fixincl.x: Regenerate.
+       * fixinc/tests/base/rpc/xdr.h: Add new tests.
+
+2004-04-07  David Edelsohn  <edelsohn@gnu.org>
+
+       * config/rs6000/rs6000.c (processor_target_table): Add MASK_MFCRF
+       to power4 and power5 entries.
+
+2004-04-06  Geoffrey Keating  <geoffk@apple.com>
+
+       * c-common.h (pending_lang_change): Mark for PCH.
+
+2004-04-07  Caroline Tice  <ctice@apple.com>
+
+       * gcc.c (main): Move 'break' in main loops (on an error)
+       to wait until error processing has occurred.
+       
+2004-04-06  Nathanael Nerode  <neroden@gcc.gnu.org>
+
+       * config.gcc: Stop changing enable_threads midstream.
+       Replace uses of enable_threads_flag with enable_threads.
+       * configure.ac: Replace uses of enable_threads_flag with
+       enable_threads.  Improve autoconf quotation in one place.
+       * configure: Regenerate.
+
+2004-04-06  Uros Bizjak  <uros@kss-loka.si>
+
+       * builtins.c: Implement support for sincos function.
+       (expand_builtin_mathfn): Remove BUILT_IN_SIN{,F,L} and
+       BUILT_IN_COS{,F,L}.
+       (expand_builtin_mathfn_3): New function.
+       (expand_builtin): Expand BUILT_IN_SIN{,F,L} and
+       BUILT_IN_COS{,F,L} using expand_builtin_mathfn_3 if
+       flag_unsafe_math_optimization is set.
+
+       * optabs.h (enum optab_index): Add new OTI_sincos.
+       (sincos_optab): Define corresponding macro.
+
+       * optabs.c (init_optabs): Initialize sincos_optab.
+       (expand_twoval_unop): New function.
+
+       * genopinit.c (optabs): Implement sincos_optab using sincos?f3
+       patterns.
+
+       * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_SINCOS_COS
+       and UNSPEC_SINCOS_SIN.
+
+       * config/i386/i386.md (sincosdf3, sincossf3, *sincosextendsfdf3,
+       sincosxf3): New patterns to implement sincos, sincosf and sincosl
+       built-ins as inline x87 intrinsics. Define splits for
+       sindf2, sinsf2, *sinextendsfdf2, sinxf2, cosdf2,
+       cossf2, *cosextendsfdf2 and cosxf2 patterns from corresponding
+       sincos patterns.
+       (sindf2, sinsf2, sinxf2): Rename to *sindf2, *sinsf2, *sinxf2.
+       (cosdf2, cossf2, cosxf2): Rename to *cosdf2, *cossf2, *cosxf2.
+
+       (UNSPEC_SINCOS_SIN, UNPEC_SINCOS_COS): New unspecs to represent
+       x87's unspec insn.
+
+2004-04-06  Devang Patel  <dpatel@apple.com>
+
+       PR 14467
+       * config/darwin.h (LINK_COMMAND_SPEC): Use c++filt instead of c++filt3.
+       
+2004-04-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
+
+       * doc/install.texi: Update HP-UX 11 installation procedure.
+
+2004-04-06  Paul Brook  <paul@codesourcery.com>
+
+       * doc/sourcebuild.texi: Remove obsolete contraint on testcases.
+
+2004-04-05  Kaz Kojima  <kkojima@gcc.gnu.org>
+
+       * config/sh/sh.c (prepare_move_operands): Use emit_call_insn
+       when the TLS address is generated by a function call.
+       * config/sh/sh.md (tls_global_dynamic): Use a call expression.
+       (tls_local_dynamic): Likewise.
+
+2004-04-05  Andrew Pinski  <pinskia@physics.uc.edu>
+
+       * tree.c (reconstruct_complex_type): Use TYPE_READONLY
+       and TYPE_VOLATILE.
+
+2004-04-05  Caroline Tice  <ctice@apple.com>
+
+       * gcc.c (combine_flag): New global variable, for new driver option.
+       (struct compiler): Add two new fields, to be used when
+       combining multiple input files in a single pass (IMA).
+       (default_compilers):  Add values for the new fields to all 
+       compiler entries. Modify the "@c" compiler entry for doing IMA 
+       properly with "-save-temps" and the "combine" flag.
+       (option_map):  Add new driver option, "--combine", to tell driver
+       to pass multiple input files to compiler at one time.
+       (have_o_argbuf_index): New global variable.
+       (store_arg): Modify to assign value to have_o_argbuf_index.
+       (struct infile):  Add three new fields, to help with IMA.
+       (display_help): Add help for new "combine" option.
+       (process_command): Remove local variable have_o; add code to check
+       for new "combine" option; remove assignment to combine_inputs.
+       (do_spec_1):  Modify to deal with IMA better.
+       (main): Make variable 'lang_n_infiles' local to entire function
+       rather than to a single block.  Use flag combine_flag to 
+       determine whether to do IMA or not; Modify loop initializing 
+       infiles to deal properly with linker files.
+       Add code for doing preprocessing in presence of
+       IMA with "-save-temps" flag.  Modify "main" loop to handle
+       multiple input files, in multiple languages, with or without
+       preprocessing,  gracefully.
+       * toplev.c (set_src_pwd): Modify to not complain if attempting to
+       re-set it to same directory it's previously been set to (avoid
+       irritating, meaningless warning messages when doing IMA with 
+       save-temps).
+       * doc/invoke.texi: Add "-combine" to list of Overall Options;
+       remove documentation about IMA that is no longer accurate; Add
+       documentation explaining what "-combine" does.
+       * ada/lang-specs.h: Add initialization values for new fields in
+       "struct compiler".
+       * cp/lang-specs.h: Likewise.
+       * f/lang-specs.h: Likewise.
+       * java/lang-specs.h: Likewise.
+       * objc/lang-specs.h: Likewise.
+       * treelang/lang-specs.h: Likewise.
+
+2004-04-05  David Edelsohn
+
+       * config/rs6000/rs6000.c (VTABLE_NAME_P): Add _ZTI to special
+       symbol handling.
+
+2004-04-05  Jakub Jelinek  <jakub@redhat.com>
+           John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
+
+       PR optimization/13424 (hppa), bootstrap/14462, c/14828
+       * pa.md: Use replace_equiv_address to retain the attributes of the
+       memory operands used in the split and peephole2 patterns for optimizing
+       the pre-reload movstrsi, movstrdi, clrstrsi and clrstrdi patterns.
+
+2004-04-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * c-decl.c (build_compound_literal): Use TYPE_READONLY.
+       * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
+       * objc/objc-act.c (adorn_decl, gen_declspecs): Likewise.
+       * c-typeck.c (decl_constant_value): Don't access DECL_INITIAL of a
+       PARM_DECL.
+       * calls.c (flags_from_decl_or_type): Use TYPE_READONLY and do so only
+       for a type.
+       * print-tree.c (print_node): Properly handle side-effects, readonly,
+       and constant flags.
+       * tree.c (build1_stat, build_expr_wfl): Only look at TREE_SIDE_EFFECTS
+       and TREE_CONSTANT if not a type.
+       * tree.h (IS_NON_TYPE_CODE_CLASS): New macro.
+       (IS_EXPR_CODE_CLASS): Write 'E', not 'e'.
+       (NON_TYPE_CHECK): New macro.
+       (TREE_SIDE_EFFECT, TREE_READONLY, TREE_CONSTANT: Add check.
+
+2004-04-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
+
+       * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Set
+       to DWARF2_DEBUG unconditionally.
+       (ASM_DEBUG_SPEC): Set the default to --gdwarf2 unconditionally.
+
+2004-04-04  Ian Lance Taylor  <ian@wasabisystems.com>
+           Nathanael Nerode  <neroden@gcc.gnu.org>
+
+       PR target/14548
+       * config.host: Set the shell variable host_can_use_collect2.
+       Set it to yes by default, and to no for alpha*-dec-*vms*,
+       i[34567]86-*-mingw32*, and powerpc-*-beos*.
+       * configure.ac: Set and substitute the shell variable collect2.
+       Give an error if use_collect2 is yes and host_can_use_collect2 is
+       no.
+       * Makefile.in (COLLECT2): Rename from USE_COLLECT2.  Change all
+       uses.  Initialize to @collect2@.
+       (STAGESTUFF): Remove $(USE_COLLECT2).
+       * config/alpha/x-vms (USE_COLLECT2): Don't set.
+       * config/i386/t-mingw32 (USE_COLLECT2): Likewise.
+       * config/rs6000/t-beos (USE_COLLECT2): Likewise.
+       * config/pa/t-pa64: Remove commented out USE_COLLECT2.
+       * configure: Regenerate.
+
+2004-04-04  Roger Sayle  <roger@eyesopen.com>
+
+       * simplify-rtx.c (simplify_binary_operation): Constant fold
+       DIV, MOD, UDIV and UMOD using div_and_round_double.
+
+2004-04-04  Mark Mitchell  <mark@codesourcery.com>
+
+       PR c++/14804
+       * varasm.c (initializer_constant_valid_p): Allow NOP_EXPRs to
+       RECORD_TYPEs.
+
+2004-04-04  Mark Mitchell  <mark@codesourcery.com>
+
+       * doc/invoke.texi (-mabi=o64): Create link to O64 ABI
+       documentation.
+
+2004-04-04  Roger Sayle  <roger@eyesopen.com>
+
+       * cse.c (cse_insn): Correct usage of simplify_replace_rtx when
+       updating the REG_EQUAL note on an insn's libcall_insn.
+
+2004-04-04  Roger Sayle  <roger@eyesopen.com>
+
+       * df.h: Tidy up whitespace in the definitions of the DF_ flags.
+
+2004-04-03  Roger Sayle  <roger@eyesopen.com>
+
+       * fold-const.c (fold) <PLUS_EXPR>: Guard (-A)+B -> B-A transformation
+       with reorder_operands_p.
+
+2004-04-03  Jan Hubicka  <jh@suse.cz>
+
+       * md.texi (vec_set, vec_extract, vec_init): Document.
+
+2004-04-02  Gabor Loki <loki@inf.u-szeged.hu>
+
+       * opts.c (decode_options): Do function inlining with very small
+       max-inline-insns-* parameters when optimizing for size.
+
+2004-04-02  Vladimir Makarov  <vmakarov@redhat.com>
+
+       * config/i386/i386.h (TARGET_NOCONA): New macro.
+       (TARGET_CPU_CPP_BUILTINS): Add code for Nocona.
+       (processor_type): Add PROCESSOR_NOCONA.
+       
+       * config/i386/i386.md (cpu): Add nocona to the attribute values.
+
+       * config/i386/i386.c (nocona_cost): New variable.
+       (m_NOCONA): New macro.
+       (x86_push_memory, x86_movx, x86_cmove, x86_deep_branch,
+       x86_branch_hints, x86_use_sahf, x86_single_stringop,
+       x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8,
+       x86_integer_DFmode_moves, x86_partial_reg_dependency,
+       x86_memory_mismatch_stall, x86_accumulate_outgoing_args,
+       x86_decompose_lea, x86_arch_always_fancy_math_387,
+       x86_sse_partial_reg_dependency, x86_sse_load0_by_pxor,
+       x86_ext_80387_constants, x86_four_jump_limit):
+       (override_options): Add nocona_cost to processor_target_table.
+       Set up PROCESSOR_NOCONA for Nocona entry in processor_alias_table.
+       (incdec_operand): Prevent inc/dec generation for Nocona too.
+       (ix86_issue_rate): Add PROCESSOR_NOCONA.
+       
+2004-04-01  Andrew Pinski  <pinskia@physics.uc.edu>
+
+       * rtlanal.c (find_reg_note): Manually
+       unswitch the loop.
+
+2004-04-01  Mark Mitchell  <mark@codesourcery.com>
+
+       * genemit.c (gen_split): Change prototype of generated code.
+       * genrecog.c (write_action): Adjust prototype for and calls to
+       gen_split_*.
+       * gensupport.c (struct queue_elem): Add split field.
+       (queue_pattern): Return a value.  Clear the split field.
+       (process_rtx): Maintain an association between an insn and the
+       split generated from it for a define_insn_and_split.
+       (process_one_cond_exec): Generate a new split for a
+       define_insn_and_split.
+       * config/arm/arm-protos.h (arm_split_constant): Add insn
+       parameter.
+       (emit_constant_insn): New function.
+       (arm_gen_constant): Use it.
+       * config/arm/arm.md: Adjust calls to arm_split_constant.
+
+2004-04-02  Jan Hubicka  <jh@suse.cz>
+
+       * cgraph.c: Add overall comment.
+       (cgraph_inline_hash): New global variable.
+       (cgraph_create_node): Break out from ...
+       (cgraph_node): ... here.
+       (cgraph_edge): New function.
+       (cgraph_create_edge): New CALL_EXPR argument; some sanity checking.
+       (cgraph_remove_edge): Accept edge, intead of source and destination.
+       (cgraph_redirect_edge_callee): New.
+       (cgraph_remove_node): Update all new datastructures.
+       (cgraph_record_call, cgraph_remove_call): Kill.
+       (dump_cgraph_node): Break out from ... ; dump new datastructures.
+       (dump_cgraph): ... here.
+       (cgraph_function_possibly_inlined_p): Use new hashtable.
+       (cgraph_clone_edge, cgraph_clone_node): New.
+       * cgraph.h: Include hashtab.h
+       (struct cgraph_global_info): Kill cloned_times, inline_once, will_be_output
+       fields, add inlined_to pointer.
+       (cgraph_node): Add pointer to next_clone.
+       (cgraph_remove_edge, cgraph_create_edge): Update prototype.
+       (cgraph_remove_call, cgraph_record_call): Kill.
+       (cgraph_inline_hash): Declare.
+       (dump_cgraph_node, cgraph_edge, cg4raph_clone_edge, cgraph_clone_node,
+       cgraph_redirect_edge_callee): Declare.
+       (cgraph_create_edges, cgraph_inline_p): Update prorotype.
+       (cgraph_preserve_function_body_p, verify_cgraph, verify_cgraph_node,
+       cgraph_mark_inline_edge, cgraph_clone_inlined_nodes): Declare.
+       * cgraphunit.c: Add overall comment.
+       (cgraph_optimize_function): Kill.
+       (cgraph_assemble_pending_functions): Do not assemble inline clones.
+       (cgraph_finalize_function): Update call of cgraph_remove_node
+       (record_call_1): Record call sites.
+       (cgraph_create_edges): Accept node instead of decl argument.
+       (error_found): New static variable.
+       (verify_cgraph_node_1, verify_cgraph_node, verify_cgraph): New functions.
+       (cgraph_analyze_function): Update for new datastructures.
+       (cgraph_finalize_compilation_unit): Plug memory leak.
+       (cgraph_optimize_function): Kill.
+       (cgraph_expand_function): Do not use cgraph_optimize_function.
+       (INLINED_TIMES, SET_INLINED_TIMES, cgraph_inlined_into,
+       cgraph_inlined_callees): Kill.
+       (cgraph_remove_unreachable_nodes): Verify cgraph; update handling of
+       clones.
+       (estimate_growth): Simplify.
+       (cgraph_clone_inlined_nodes): New function.
+       (cgraph_mark_inline_edge): Re-implement.
+       (cgraph_mark_inline): Likewise.
+       (cgraph_check_inline_limits): Simplify.
+       (cgraph_recursive_inlining_p): New.
+       (update_callee_keys): Break out from ...
+       (cgraph_decide_inlining_of_small_functions): ... here; simplify.
+       (cgraph_decide_inlining, cgraph_decide_inlining_incrementally):
+       Likewise.
+       (cgraph_expand_all_functions):  Remove inline clones from the ordered
+       list.
+       (cgraph_preserve_function_body_p): New predicate.
+       (cgraph_optimize): Verify cgraph.
+       * function.h (struct function): Add fields saved_tree/saved_args.
+       * timevar.def (TV_CGRAPH_VERIFY): Use verifier.
+       * toplev.c (rest_of_compilation): Do not free cfun.
+       * tree-inline.c: Include function.h
+       (struct inline_data): Add saving_p field; replace decl/current_decl by
+       node/current_node.
+       (insert_decl_map): New function.
+       (copy_body_r): Handle saving; update cgraph datastructure.
+       (copy_body): Handle recursive inlining.
+       (initialize_inlined_parameters): Likewise.
+       (expand_call_inline): Propagate node attributes; update cgraph.
+       (optimize_inline_calls): Verify that datastructure still match.
+       (save_body): New function.
+       * tree-inline.h (save_body): New.
+       * tree-optimize.c (tree_rest_of_compilation): preserve function body; do inlining.
+       * langhooks-def.c (LANG_HOOKS_UPDATE_DECL_AFTER_SAVING): New.
+       * langhooks.c (lang_hooks): Add update_decl_after_saving.
+
+2004-04-01  Serge Belyshev  <1319@bot.ru>
+
+        PR target/14702
+        * config/i386/i386.md: fix source operand constraints in
+        mmx_pshufw, sse2_pshufd, sse2_pshuflw, sse2_pshufhw
+
+2004-04-01  Waldek Hebisch  <hebisch@math.uni.wroc.pl>
+
+       * fold-const.c (folda): Preserve types of comparisons.
+
+2004-04-01  Richard Henderson  <rth@redhat.com>
+
+       * toplev.c (backend_init): Move init_optimization_passes call ...
+       (lang_dependent_init): ... here.
+
+2004-04-01  Alan Modra  <amodra@bigpond.net.au>
+           Jakub Jelinek  <jakub@redhat.com>
+
+       * gcc.c (init_gcc_specs): If HAVE_LD_AS_NEEDED, link with
+       -lgcc --as-needed -lgcc_s --no-as-needed by default.
+       * configure.ac (HAVE_LD_AS_NEEDED): Check for ld --as-needed.
+       * configure: Rebuilt.
+       * config.in: Rebuilt.
+       * Makefile.in (stage1-start): Copy also libgcc_s*$(SHLIB_EXT).
+       (stage2-start, stage3-start, stage4-start): Likewise.
+       (stageprofile-start, stagefeedback-start): Likewise.
+
+2004-04-01  Jakub Jelinek  <jakub@redhat.com>
+
+       * config/sparc/sparc.h (DITF_CONVERSION_LIBFUNCS): Define to 0.
+       * config/sparc/linux.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
+       * config/sparc/linux64.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
+       * config/sparc/sol2.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
+       (SOLARIS_CONVERSION_LIBFUNCS): Rename to SUN_CONVERSION_LIBFUNCS.
+       * config/sparc/sparc.c (sparc_init_libfuncs): Initialize optabs
+       with _Q_qtoll, _Q_qtoull and _Q_lltoq if DITF_CONVERSION_LIBFUNCS.
+       * config.gcc (sparc-*-linux*): Revert 2004-03-23 change.
+       * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Likewise.
+       * config/sparc/t-linux: Removed.
+
+2004-04-01  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c++/14755
+       * fold-const.c (fold) <EQ_EXPR>: Properly compute newconst in
+       "bitfld++ == const" to "++bitfld == const + incr" transformations.
+
 2004-04-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
 
        * expr.c (get_inner_reference): Use DECL_UNSIGNED, not TREE_UNSIGNED.