OSDN Git Service

2004-04-08 Joel Sherrill <joel@oarcorp.com>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index 82b3453..7639f5e 100644 (file)
+2004-04-08  Joel Sherrill  <joel@oarcorp.com>
+
+       PR ada/14665
+       * ada/osint.adb (Find_Program_Name): Rework to properly handle
+       filenames which end in .exe or have versioning suffixes like VMS.
+
+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.
+       * stor-layout.c (layout_decl): Likewise.
+       * tree.c (get_narrower): Likewise and also use BIT_FIELD_REF_UNSIGNED.
+       * fold-const.c (make_bit_field_ref): Use BIT_FIELD_REF_UNSIGNED.
+       * print-tree.c (print_node): Handle various used of unsigned_flag.
+       * tree.def (BIT_FIELD_REF): Update comment.
+       * tree.h (TREE_UNSIGNED): Deleted.
+       (DECL_UNSIGNED, BIT_FIELD_REF_UNSIGNED): New macros.
+
+2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * builtins.c, c-aux-info.c, c-common.c, c-cppbuiltin.c, c-decl.c:
+       Change most occurrences of TREE_UNSIGNED to TYPE_UNSIGNED.
+       * c-format.c, c-opts.c, c-pretty-print.c, c-typeck.c: Likewise.
+       * calls.c, convert.c, dbxout.c, dojump.c, dwarf2out.c: Likewise.
+       * expmed.c, expr.c, fold-const.c, function.c, integrate.c: Likewise.
+       * optabs.c, sdbout.c, stmt.c, stor-layout.c, tree-dump.c: Likewise.
+       * tree.c, config/iq2000/iq2000.c, config/m32r/m32r.c: Likewise.
+       * config/mips/mips.c, config/rs6000/rs6000.c: Likewise.
+       * config/s390/s390.c, config/sparc/sparc.c, objc/objc-act.c: Likewise.
+       * stor-layout.c (layout_type, case COMPLEX_TYPE): Test for
+       REAL_TYPE, not INTEGER_TYPE.
+       (layout_type, case VECTOR_TYPE): Simplify code.
+       * tree.c (build_vector_type_for_mode): Remove dup unsigned setting.
+       * tree.h: Update comments.
+       (STRIP_NOPS): Use TYPE_UNSIGNED.
+       (TYPE_UNSIGNED): New macro.
+       (TYPE_TRAP_SIGNED): Remove now redundant check.
+       (SAVE_EXPR_NOPLACEHOLDER): Don't use TREE_UNSIGNED.
+
+2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * function.c (put_var_into_stack): Properly set orig_reg for indirect.
+
+2004-03-31  Andrew Pinski  <pinskia@physics.uc.edu>
+
+       * config/rs6000/t-darwin (LIB2FUNCS_STATIC_EXTRA):
+       Add darwin-fpsave.asm, darwin-vecsave.asm,
+       and darwin-world.asm.
+       (TARGET_LIBGCC2_CFLAGS): Add -Wa,-force_cpusubtype_ALL
+       as the asm files contain altivec instructions.
+       * config/rs6000/darwin-fpsave.asm: New file.
+       * config/rs6000/darwin-vecsave.asm: New file.
+       * config/rs6000/darwin-world.asm: New file.
+
+2004-03-31  Zack Weinberg  <zack@codesourcery.com>
+
+       * gengtype-yacc.y (option, stringseq): Add missing
+       terminating semicolon.
+
+2004-03-30  David Edelsohn  <edelsohn@gnu.org>
+
+       * config/rs6000/rs6000.md (tls_gd_32, tls_gd_64,
+       tls_ld_32, tls_ld_64, tls_dtprel_32, tls_dtprel_64,
+       tls_dtprel_ha_32, tls_dtprel_ha_64,
+       tls_dtprel_lo_32, tls_dtprel_lo_64,
+       tls_got_dtprel_64, tls_tprel_32, tls_tprel_64,
+       tls_tprel_ha_32, tls_tprel_ha_64,
+       tls_tprel_lo_32, tls_tprel_lo_64,
+       tls_got_tprel_32, tls_got_tprel_64,
+       tls_tls_32, tls_tls_64): Replace register_operand with
+       gpc_reg_operand.
+
+2004-03-30  Mostafa Hagog  <mustafa@il.ibm.com>
+
+       * config/rs6000/rs6000.md (*ctrsi_internal1, *ctrsi_internal2,
+       *ctrdi_internal1, *ctrdi_internal2, *ctrsi_internal3,
+       *ctrsi_internal4, *ctrdi_internal3, *ctrdi_internal4,
+       *ctrsi_internal5, *ctrsi_internal6, *ctrdi_internal5,
+       *ctrdi_internal6): Replace register_operand with
+       nonimmediate_operand.
+
+2004-03-29  Fariborz Jahanian <fjahanian@apple.com>
+
+       * fold-const.c (fold): Reassociate multiply expression
+       with an adjacent non-multiply expression to use
+       architecture's multiply-add instruction.
+
+2004-03-30  Zack Weinberg  <zack@codesourcery.com>
+
+       * gengtype.c (create_option): New function.
+       * gengtype.h: Prototype it.
+       * gengtype-yacc.y (stringseq): New rule.
+       (option): Use create_option.  Add new bare ID production.  Use
+       stringseq, not STRING directly.
+
+       * alias.c, bitmap.c, c-decl.c, cgraph.h, cpplib.h, cselib.h
+       * dwarf2out.c, emit-rtl.c, function.h, lists.c, tree.h
+       * varray.h, config/alpha/alpha.c:
+       Use new shorter form of GTY markers.
+
+       * doc/gty.texi: Rewrite.
+
+2004-03-30  Andrew Pinski  <pinskia@physics.uc.edu>
+
+       * config/darwin.c (machopic_function_base_name):
+       Remove current_name and getting the name of the
+       current function.
+
+2004-03-30  Nick Clifton  <nickc@redhat.com>
+
+       * config/arm/arm.md (thumb_jump): Reduce the backward branch
+       range, and increase the forward branch range, to allow for
+       the fact that the PC will be off by 4.
+
+2004-03-30  Alan Modra  <amodra@bigpond.net.au>
+
+       * .cvsignore: Add GPATH, GRTAGS, GSYMS and GTAGS (GNU GLOBAL)
+
+2004-03-30  Hartmut Penner  <hpenner@de.ibm.com>
+
+       * config/rs6000/rs6000.c (output_vec_const_move):
+       Find all cases of EASY_VECTOR_15_ADD_SELF.
+       (easy_vector_constant_add_self): Accept
+       all vector constant loadable by vsplt* and vadd*.
+       (easy_vector_same): Use easy_vector_splat_const.
+       (easy_vector_const): Use easy_vector_splat_const.
+       (easy_vector_splat_const): New function.
+       (gen_easy_vector_constant_add_self): New function.
+
+       * config/rs6000/rs6000-protos.c (gen_easy_vector_constant_add_self):
+       New prototype.
+
+       * config/rs6000/altivec.md (movv4si splitter): Change to
+       emit move insn with halfed vector constant.
+       (*movv8hi splitter): Likewise.
+       (*movv16qi splitter): Likewise.
+
+2004-03-30  Hartmut Penner  <hpenner@de.ibm.com>
+
+       PR 11591
+       * config/rs6000/rs6000.c (rs6000_legitimate_address):
+       Allow any offset to argument pointer in no-strict case.
+
+2004-03-30  Jan Hubicka  <jh@suse.cz>
+
+       * toplev.c (backend_init): Add missing call to inint_optimization_passes.
+       * passes.c (init_optimization_passes, finish_optimization_passes): Output cgraph
+       dump file in non-unit-at-a-time mode.
+
+2004-03-29  Hans-Peter Nilsson  <hp@axis.com>
+
+       * config/cris/cris.h: Correct #ifdef to test for
+       HAVE_AS_NO_MUL_BUG_ABORT_OPTION, not
+       HAVE_AS_MUL_BUG_ABORT_OPTION.
+
+2004-03-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * function.c (put_var_into_stack): If old RTL was ADDRESSOF, update
+       the address inside the old RTL.
+
+2004-03-28  Zack Weinberg  <zack@codesourcery.com>
+
+       * c-decl.c: Verify that C_SIZEOF_STRUCT_LANG_IDENTIFIER is correct.
+       (struct c_binding, struct c_scope): Add chain_next
+       attributes to GTY markers.
+       (struct lang_identifier, struct lang_tree_node): Define
+       here...
+       * c-tree.h: ... not here.  No longer need to declare struct
+       c_binding either.  Do define C_SIZEOF_STRUCT_LANG_IDENTIFIER.
+       * c-lang.c, objc/objc-lang.c: Set LANG_HOOKS_IDENTIFIER_SIZE
+       to C_SIZEOF_STRUCT_LANG_IDENTIFIER.
+
+       PR 14734, 11944
+       * c-decl.c (get_parm_info): If error_mark_node is encountered
+       in the bindings chain, unbind and discard it; don't abort.
+
+2004-03-28  Olga Golovonevsky <olga@il.ibm.com>
+           Dorit Naishlos <dorit@il.ibm.com>
+
+       * config/rs6000/altivec.md: (andvv16qi3, andv8hi3, one_cmplv16qi2,
+       one_cmplv8hi2, one_cmplv4si2, iorv16qi3, iorv8hi3,): New modelling.
+
+2004-03-28  Stephane Carrez  <stcarrez@nerim.fr>
+
+       * config/m68hc11/m68hc11-protos.h (m68hc11_page0_symbol_p): Declare.
+
+       * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute): New.
+       (m68hc11_attribute_table): New attribute "page0" to mark a global
+       variable as being allocated from within page0 section.
+       (m68hc11_encode_label): New function.
+       (m68hc11_strip_name_encoding): New function.
+       (m68hc11_page0_symbol_p): New function.
+       (m68hc11_indirect_p): Accept global variables marked in page0.
+       (m68hc11_encode_section_info): Lookup "page0" attribute.
+
+       * config/m68hc11/m68hc11.h (EXTRA_CONSTRAINT): 'R' constraint also
+       represents access to page0 variables.
+
+       * config/m68hc11/m68hc11.md ("*logicalsi3_zexthi"): Use gen_rtx_REG.
+       ("*logicalsi3_silshl16_zext"): Likewise.
+       ("*ashldi3_const32"): Likewise.
+       (peephole2 ashift): Likewise.
+
+2004-03-28  Joseph S. Myers  <jsm@polyomino.org.uk>
+
+       * c-tree.h (C_DECL_REGISTER): New.
+       * c-aux-info.c (gen_decl), c-decl.c (objc_mark_locals_volatile,
+       finish_decl, grokdeclarator, get_parm_info), c-typeck.c
+       (build_array_ref, c_mark_addressable): Set and use it.
+       * c-decl.c (grokdeclarator), c-typeck.c (c_mark_addressable):
+       Allow structures with volatile fields to be declared register.
+       Don't check TREE_ADDRESSABLE before warning about taking address
+       of register.
+       * c-decl.c (finish_decl): Don't allow structures with volatile
+       fields to be placed in named register.
+       * doc/trouble.texi: Remove reference to structures with volatile
+       fields in registers.
+
+2004-03-27  Ulrich Weigand  <uweigand@de.ibm.com>
+
+       * function.c (thread_prologue_and_epilogue): Move
+       NOTE_INSN_FUNCTION_END and NOTE_INSN_FUNCTION_BEG notes
+       before the epilogue.
+
+2004-03-27  Ulrich Weigand  <uweigand@de.ibm.com>
+
+       * expr.c (store_constructor): Use gen_int_mode to correctly
+       sign-extend CONST_INT value.
+
+2004-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * builtin-types.def (BT_WINT, BT_FN_INT_WINT, BT_FN_WINT_WINT): New.
+       * builtins.def (DEF_C94_BUILTIN): New.  Add wctype builtins.
+       * doc/extend.texi: Likewise.
+
+2004-03-26  Diego Novillo  <dnovillo@redhat.com>
+
+       * c-typeck.c (comptypes): Replace calls to TYPE_DOMAIN
+         with TYPE_ORIG_SIZE_TYPE.
+
+2004-03-25  Aldy Hernandez  <aldyh@redhat.com>
+
+       PR 14219
+       * c-typeck.c (build_binary_op): Do not allow comparisons of
+       vectors.
+
+2004-03-26  James A. Morrison  <ja2morri@uwaterloo.ca>
+
+       * config.gcc: Remove sparc-tti-*.
+       * config/sparc/pbd.h: Delete.
+
+       * config/sparc/sol2.h: Remove note about Sun OS 4.x.
+       * config/sparc/aout.h: Likewise.
+
+       * config/sparc/sparc.h: Remove if 0'd code.
+       * config/sparc/sparc.md (call): Remove if 0'd code.
+       (call_value): Likewise.
+       (nonlocal_goto): Likewise.
+       (unimp_insn): Delete.
+
+2004-03-25  Roger Sayle  <roger@eyesopen.com>
+
+       * fold-const.c (tree_expr_nonnegative_p): Handle BIT_XOR_EXPR like
+       BIT_IOR_EXPR; A^B is nonnegative when A and B are nonnegative.
+
+2004-03-25  Richard Henderson  <rth@redhat.com>
+
+       PR 11527
+       * c-typeck.c (pop_init_level): Emit pending init elements earlier
+       rather than later.
+
+2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * builtins.c (fold_builtin): Fix error in last change.
+
+2004-03-25  Richard Sandiford  <rsandifo@redhat.com>
+
+       * config/mips/mips.h: Formatting fix.
+
+2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * builtins.def: Add ctype builtins.
+       * doc/extend.texi: Likewise.
+
+2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * builtins.c (fold_builtin): Add new builtin optimizations for
+       sqrt and/or cbrt.
+       * fold-const.c (fold): Likewise.
+
+2004-03-25  David Edelsohn  <edelsohn@gnu.org>
+
+       * config/rs6000/rs6000.c (rs6000_always_hint): New variable.
+       (rs6000_sched_groups): New variable.
+       (processor_target_table): Add power5.
+       (rs6000_override_options): Set rs6000_sched_insert_nops,
+       rs6000_sched_costly_dep and rs6000_sched_restricted_insns_priority
+       from rs6000_sched_groups.
+       (output_cbranch): Use rs6000_always_hint.
+       (rs6000_variable_issue): Use rs6000_sched_groups.
+       (rs6000_adjust_cost): Add CPU_POWER5.
+       (is_microcoded_insn): Use rs6000_sched_groups.
+       (is_dispatch_slot_restricted): Use rs6000_sched_groups.
+       Return 2 for POWER5 cracked instructions.
+       (is_cracked_insn): Use rs6000_sched_groups.
+       (is_branch_slot_insn): Use rs6000_sched_groups.
+       (rs6000_issue_rate): Add CPU_POWER5.
+       (rs6000_sched_finish): Use rs6000_sched_groups.
+       (rs6000_rtx_costs): Add PROCESSOR_POWER5.
+       * config/rs6000/rs6000.h (processor_type): Add PROCESSOR_POWER5.
+       (DEFAULT_SCHED_COSTLY_DEP): Delete.
+       (DEFAULT_RESTRICTED_INSNS_PRIORITY): Delete.
+       (DEFAULT_SCHED_FINISH_NOP_INSERTION_SCHEME): Delete.
+       * config/rs6000/rs6000.md (define_attr "cpu"): Add power5.
+       * config/rs6000/power5.md: New file.
+       * doc/invoke.texi: Add power5 option.
+
+2004-03-25  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * cfgrtl.c, dbxout.c, tree.def, config/darwin.h,
+       config/arm/arm.c, objc/objc-act.c: Fix comment typos.
+       * doc/invoke.texi: Fix a typo.
+
+2004-03-25  Kazu Hirata  <kazu@cs.umass.edu>
+
+       PR optimization/9707.
+       * stmt.c (emit_case_nodes): Emit equality comparisons instead
+       of recursing if both children are single-valued cases with no
+       children.
+
+2004-03-25  Paul Brook  <paul@codesourcery.com>
+
+       * config/arm/arm.c (vfp_print_multi): Remove.
+       (arm_output_fldmx): New function.
+       (vfp_emit_fstmx): Return block size, not insn. Add ARM10 VFPr1 bugfix.
+       (arm_expand_prologue): Update to match.
+       (arm_get_vfp_saved_size): New Function.
+       (arm_get_frame_offsets): Use it.
+       (arm_output_epilogue): Use new functions.
+
+2004-03-24  Richard Henderson  <rth@redhat.com>
+
+       * alias.c (alias_invariant, alias_invariant_size): Mark GTY.
+       (reg_known_value, reg_known_value_size): Likewise; make static.
+       (reg_known_equiv_p): Make static.
+       (clear_reg_alias_info): Update for new indexing.
+       (get_reg_known_value, set_reg_known_value): New.
+       (get_reg_known_equiv_p, set_reg_known_equiv_p): New.
+       (canon_rtx): Use them.
+       (init_alias_analysis): Likewise.  Allocate reg_known_value with gc.
+       Don't play queer offsetting games with reg_known_value and
+       reg_known_equiv_p.
+       (end_alias_analysis): Free reg_known_value with gc.
+       * rtl.h (get_reg_known_value, get_reg_known_equiv_p): Declare.
+       * sched-deps.c (reg_known_equiv_p, reg_known_value): Remove.
+       (deps_may_trap_p, sched_analyze_1, sched_analyze_2): Use the new
+       functions instead.
+
+2004-03-24  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * dwarf2asm.c, loop.h, pretty-print.c, pretty-print.h,
+       config/i386/mmintrin.h: Update copyright.
+
+2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
+
+       * configure.ac: Add --enable-werror-always (for top level bootstrap
+       support).
+       * configure: Regenerate.
+
+2004-03-24  Ziemowit Laski  <zlaski@apple.com>
+
+       * objc/objc-act.c (objc_comptypes): Treat comparisons
+       between 'Class' and '<class> *' as explicitly invalid.
+
+2004-03-24  David Edelsohn  <edelsohn@gnu.org>
+
+       * doc/invoke.texi (-frename-registers: Add enabled at -O3.
+       (-fprofile-values): Add enabled with profile-{generate,use}.
+       (-fvpt): Same.
+       (-ftracer): Add enabled with profile-use.
+       (-funit-at-a-time): Add enabled at -O2,-O3.
+       (-funroll-loops): Add enabled with profile-use.
+       (-funswitch-loops): Add enabled with profile-use.  Remove duplicates.
+       (max-gcse-passes): Mention default.
+       (max-cse-path-length): Mention default.
+
+2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
+
+       * Makefile.in (STRICT2_WARN): Reorder.
+       * configure.ac: Check for -Wold-style-definition, and use it
+       in strict1_warn if it's available.
+       * configure: Regnerate.
+
+2004-03-24  Paul Brook  <paul@nowt.org>
+
+       * config.gcc <arm>: Add --with-abi=
+       * config/arm/arm-protos.h (arm_get_frame_size, thumb_get_frame_size,
+       thumb_far_jump_used): Remove prototypes.
+       (arm_needs_doubleword_align): Add prototype.
+       (thumb_compute_initial_elimination_offset): Ditto.
+       * config/arm/arm.c (arm_get_frame_offsets): New function.
+       (use_return_insn, output_return_instruction, arm_output_epilogue,
+       arm_output_function_epilogue, arm_compute_initial_elimination_offset,
+       arm_expand_prologue, thumb_expand_epilogue): Use it.
+       (arm_abi, target_abi_name, all_arm_abis): New variables.
+       (arm_override_options): Set them.  Set structure padding for AAPCS.
+       (arm_return_in_memory): Update ABI check.
+       (arm_init_cumulative_args): Initialize can_split.
+       (arm_needs_doubleword_align): New function.
+       (arm_function_arg): Don't split args after pushing to stack. Handle
+       doubleword/even reg alignment.
+       (arm_va_arg): Handle all doubleword aligned args.
+       (add_minpoolforward ref, dump_minpool, push_minpool_fix): Align based
+       on ABI, not CPU.
+       (arm_compute_save_reg0_reg12_mask): Fix comment.
+       (thumb_get_frame_size, thumb_get_frame_size): Remove.
+       (thumb_jump_far_used_p): Remove superfluous argument.  Return save
+       value for alignment.
+       (thumb_unexpanded_epilogue, thumb_output_function_prologue): Change
+       to match.
+       (thumb_compute_initial_elimination_offset): New function.
+       (thumb_expand_prologue): Use arm_get_frame_offsets.  Remove
+       unneccessary rounding.
+       * config/arm/arm.h (target_abi_name): Declare.
+       (ARM_DOUBLEWORD_ALIGN, DOUBLEWORD_ALIGNMENT, TARGET_IWMMXT_ABI,
+       arm_abi_type, ARM_DEFAULT_ABI): Define.
+       (ARM_FLAG_ATPCS): Remove.
+       (TARGET_OPTIONS, OPTION_DEFAULT_SPECS): Add -mabi=.
+       (BIGGEST_ALIGNMENT, PREFERRED_STACK_BOUNDARY, STACK_BOUNDARY): Use it.
+       (ADJUST_FIELD_ALIGN, DATA_ALIGNMENT, LOCAL_ALIGNMENT,
+       TYPE_NEEDS_IWMMXT_ALIGNMENT): Remove.
+       (LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P, FUNCTION_ARG_REGNO_P):
+       Contitionalize on ABI, not CPU.
+       (struct arm_stack_offsets): Define.
+       (struct machine_function): Add stack_offsets.  Remove frame_size.
+       (FUNCTION_ARG_PARTIAL_NREGS): Don't split if previous args have been
+       pushed.
+       (FUNCTION_ARG_ADVANCE, FUNCTION_ARG_BOUNDARY): Handle general
+       doubleword alignment.
+       (THUMB_INITIAL_ELIMINATION_OFFSET,
+       ARM_INITIAL_ELIMINATION_OFFSET): Remove.
+       (INITIAL_ELIMINATION_OFFSET): Call functions directly.
+       * config/arm/arm.md (align_8): Enable for all targets.
+       * config/arm/netbsd-elf.h (TARGET_DEFAULT): Remove TARGET_ATPCS.
+       (ARM_DEFAULT_ABI): Define.
+       * doc/invoke.texi <ARM>: Document -mabi=. Update documentation for
+       -mstructure-size-boundary.
+
+2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
+
+       * configure.ac: Check for -Wno-variadic-macros; don't use
+       -pedantic (in stage 1 or a simple 'make all') unless it's available,
+       and if it's available, use it.  Also, clean up check for
+       -Wno-long-long.
+       * configure: Regenerate.
+
+2004-03-24  Richard Sandiford  <rsandifo@redhat.com>
+
+       * config.gcc (mips64vr-*-elf*, mips64vrel-*-elf*): Remove tm_defines.
+       * config/mips/vr.h (DEFAULT_VR_ARCH): New macro, defined to vr4130.
+       (MULTILIB_DEFAULTS): Use it.
+       (MIPS_CPU_STRING_DEFAULT): Remove.
+       (MIPS_ABI_DEFAULT, MIPS_MARCH_CONTROLS_SOFT_FLOAT): Define.
+       (DRIVER_SELF_SPECS): Make -mfix-vr4122-bugs imply -march=vr4120.  Make
+       EABI64 -mlong32 the default ABI.  Enforce the default architecture.
+       * config/mips/t-vr (MULTILIB_OPTIONS): Add mfix-vr4122-bugs,
+       march=vr4130, march=vr4300, march=vr5000 and march=vr5500.
+       (MULTILIB_MATCHES): Use -mfix-vr4122-bugs multilibs for -march=vr4120.
+       (MULTILIB_EXCEPTIONS): Change choice of multilibs.  Update comments
+       accordingly.
+
+2004-03-24  DJ Delorie  <dj@redhat.com>
+           Richard Sandiford  <rsandifo@redhat.com>
+
+       * config/mips/mips.h (MASK_FIX_VR4122, TARGET_FIX_VR4122): New macros.
+       (TARGET_SWITCHES): Add -mfix-vr4122-bugs and -mno-fix-vr4122-bugs.
+       (ASM_SPEC): Pass down -mfix-vr4122-bugs.
+       * config/mips/mips.c (mips_avoid_hazards): Don't emit whole functions
+       in .set noreorder and .set nomacro if TARGET_FIX_VR4122.
+       (mips_init_libfuncs): Use special functions for divsi3 and modsi3
+       if TARGET_FIX_VR4122.
+       * config/mips/mips.md (define_attr length): Account for nops inserted
+       after macc and dmult when using -mfix-vr4122-bugs.
+       (umuldi3_highpart, divmodsi4, divmoddi4): Disable if TARGET_FIX_VR4122.
+       * config/mips/t-vr (LIB2FUNCS_STATIC_EXTRA): Define instead of
+       LIB2FUNCS_EXTRA.  Add config/mips/vr4122-div.S.
+       * config/mips/vr4122-div.S: New file.
+       * doc/invoke.texi: Document -mfix-vr4122-bugs.
+
+2004-03-24  Richard Sandiford  <rsandifo@redhat.com>
+
+       * config/mips/mips.h (PROCESSOR_R4130): New processor_type.
+       (TARGET_MIPS4130): New macro.
+       (ISA_HAS_MACC): Return true if TARGET_MIPS4130 && !TARGET_MIPS16.
+       * config/mips/mips.c (mips_cpu_info_table): Add a vr4130 entry.
+       (override_options): Extend MIPS_MARCH_CONTROLS_SOFT_FLOAT to deal
+       with PROCESSOR_R4130.
+       * config/mips/mips.md (define_attr cpu): Add r4130.
+       * doc/invoke.texi: Document vr4130 as a supported MIPS architecture.
+
+2004-03-24  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
+           Richard Sandiford  <rsandifo@redhat.com>
+
+       * doc/invoke.texi: Apply missed hunk from 2004-03-03 change.
+
+2004-03-24  Alexandre Oliva  <aoliva@redhat.com>
+
+       PR preprocessor/14438
+       * cpplib.c (do_pragma): Remove line_change call after pragma
+       handler.
+
+2004-03-23  Ian Lance Taylor  <ian@wasabisystems.com>
+
+       * doc/extend.texi (ARM Built-in Functions): Replace with correct
+       declarations.
+
+2004-03-23  Roger Sayle  <roger@eyesopen.com>
+
+       * reg-stack.c (get_true_reg): Handle FLOAT_TRUNCATE like FLOAT_EXTEND
+       if flag_unsafe_math_optimizations.
+       * config/i386/i386.md (truncdfsf2): If flag_unsafe_math_optimizations
+       and TARGET_80387 expand using truncdfsf2_noop pattern.
+       (truncxfsf2): Likewise using truncxfsf2_noop.
+       (truncxfdf2): Likewise using truncxfdf2_noop.
+       (truncdfsf2_noop, truncxfsf2_noop, truncxfdf2_noop): New patterns.
+
+2004-03-23  Ziemowit Laski  <zlaski@apple.com>
+
+       * hooks.c (hook_constcharptr_tree_null): New hook.
+       * hooks.h (hook_constcharptr_tree_null): New prototype.
+       * target-def.h (TARGET_MANGLE_FUNDAMENTAL_TYPE): New target hook.
+       * target.h (mangle_fundamental_type): New target hook.
+       * config/rs6000/rs6000.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Point
+       target hook at rs6000_mangle_fundamental_type.
+       (rs6000_mangle_fundamental_type): New function.
+       * doc/tm.texi (TARGET_MANGLE_FUNDAMENTAL_TYPE): Document.
+
+2004-03-23  Zack Weinberg  <zack@codesourcery.com>
+
+       PR 12267, 12391, 12560, 13129, 14114, 14133
+       * c-tree.h: Forward declare struct c_binding.  Declare
+       c_override_bindings_to_false.  Update prototypes.
+       (struct lang_identifier): Update comments.  Change fields to be
+       struct c_binding *.
+       (IDENTIFIER_SYMBOL_VALUE, IDENTIFIER_TAG_VALUE)
+       (IDENTIFIER_LABEL_VALUE, C_DECL_INVISIBLE)
+       (KEEP_NO, KEEP_YES, KEEP_MAYBE): Delete.
+       (C_DECL_IN_EXTERNAL_SCOPE, C_DECL_DECLARED_BUILTIN): New.
+       * c-common.h: Update prototypes.
+       * c-decl.c (struct c_scope): Update commentary.  Remove names,
+       names_last, parms, parms_last, tags, and shadowed fields.  Add
+       bindings and depth fields.
+       (scope_freelist): Move to more appropriate location.
+       (c_print_identifier): Update for changes to struct lang_identifier.
+       (objc_mark_locals_volatile): Update for new bindings structures.
+       (global_bindings_p): Honor c_override_global_bindings_to_false.
+       (pushlevel): Rename to push_scope; take no arguments; use the
+       scope_freelist; initialize scope->depth and check for overflow.
+       (poplevel): Rename to pop_scope; totally rewritten for new bindings
+       structures.
+       (diagnose_mismatched_decls): Use C_DECL_DECLARED_BUILTIN, not
+       C_DECL_INVISIBLE, for certain decisions.  Adjust some diagnostics.
+       Improve some commentary.  Adjust handling of forward parm decls.
+       (merge_decls): Set C_DECL_DECLARED_BUILTIN when appropriate.
+       Preserve C_DECL_IN_EXTERNAL_SCOPE.
+       (warn_if_shadowing): Correct indentation.  Improve diagnostics.
+       (pushdecl): Remove unnecessary assertion.  Short-circuit anonymous
+       decls.  Rewrite for new bindings structures.  Improve commentary.
+       Eliminate the copy_node call.
+       (implicit_decl_warning): Use the "diag" idiom (as seen in
+       locate_old_decl) to reduce code duplication; call locate_old_decl
+       if appropriate.  Relocate to remove need for forward declaration.
+       (implicitly_declare): Adjust for new bindings structures.  Kludge
+       around Objective-C not-really-builtin functions.
+       (undeclared_variable): Improve diagnostics.  If current_function_decl
+       is nonnull but current_function_scope is null, use current_scope.
+       Use bind.
+       (lookup_tag): Adjust for new bindings structures.  Kludge around
+       Objective-C's tag declarations that wind up in the external scope.
+       (lookup_name): Adjust for new bindings structures.  Kludge around
+       c-common.c's pseudo-typedefs that wind up in the external scope.
+       (lookup_name_current_level): Rename lookup_name_in_scope; take a
+       second argument indicating the scope to examine; rewrite for
+       new bindings structures.
+       (c_init_decl_processing): Adjust for renamed functions.  Do not
+       initialize current_file_decl, first_builtin_decl, last_builtin_decl.
+       First scope pushed is the external scope, not the global scope.
+       (builtin_function): Use bind, not pushdecl.  Adjust other bits
+       for new data structures.  Keep track of builtins that should be
+       made visible automatically.
+       (start_decl): Adjust diagnostics.  Remove unnecessary call to
+       expand_decl.
+       (grokparms): Return 0 if arg_types is error_mark_node.
+       (get_parm_info): Rename "void_at_end" argument to "ellipsis", with
+       reversed sense.  Rewrite for new bindings structures.  Do not
+       leave any decls in the scope, to prevent pop_scope from doing
+       contradictory things with them.
+       (finish_struct, finish_enum): Remove redundant diagnostics.
+       (build_enumerator): Don't cascade diagnostics for error_mark_node.
+       Mark location where -pedantic changes the meaning of the program.
+       (store_parm_decls_newstyle, store_parm_decls_oldstyle): Load the
+       parameter decls into the function's scope structure using bind.
+       Warn here about function definitions in the wrong style.
+       Adjust diagnostics.
+       (store_parm_decls): Correct the determination of whether a
+       function was defined with a prototype.
+       (c_write_global_declarations): Operate on all file decls and on
+       the external scope.  Split body of the loop to...
+       (c_write_global_declarations_1): ... this new function, to avoid
+       code duplication.
+       (truly_local_externals, first_builtin_decl, last_builtin_decl)
+       (make_scope, pop_scope, in_parm_level_p, set_block)
+       (any_external_decl, record_external_decl, bind_label, getdecls)
+       (link_hash_hash, link_hash_eq, merge_translation_unit_decls)
+       (c_reset_state): Delete.
+       (visible_builtins, c_override_global_bindings_to_false)
+       (c_binding, I_SYMBOL_BINDING, I_SYMBOL_DECL, I_TAG_BINDING)
+       (I_TAG_DECL, I_LABEL_BINDING, I_LABEL_DECL, file_scope)
+       (external_scope, binding_freelist, bind, free_binding_and_advance)
+       (push_file_scope, pop_file_scope): New.
+       (pushtag, pushdecl_top_level, lookup_label, declare_label)
+       (define_label, c_make_fname_decl, finish_decl)
+       (mark_forward_parm_decls, build_compound_literal)
+       (grokdeclarator, start_function, check_for_loop_decls)
+       (identifier_global_value, record_builtin_type): Minor adjustments
+       for new bindings structures.  Improve diagnostics and commentary.
+       * c-objc-common.c (start_cdtor, finish_cdtor): Adjust calls to
+       pushlevel/poplevel respectively.
+       (c_objc_common_finish_file): Don't call merge_translation_unit_decls.
+       * c-opts.c (c_common_parse_file): Remove spurious ATTRIBUTE_UNUSED.
+       Warn about YYDEBUG not being defined only if -dy.  Remove no-longer-
+       correct loop over multiple translation units; call fatal_error if
+       requested to compile more than one file at once.  (This disables
+       IMA temporarily - an up-front error being preferable to a crash.)
+       * c-parse.in (pushlevel, poplevel rules): Rename push_scope, pop_scope.
+       (all actions): Adjust calls to pushlevel/poplevel.
+       (parsing_iso_function_signature): Delete.
+       (extdef_1): Fold into extdef.
+       (old_style_parm_decls_1): Fold into old_style_parm_decls.  Don't
+       warn here about function definitions in the wrong style.
+       (after_tyle_declarator, parm_declarator_starttypename)
+       (parm_declarator_nostarttypename, notype_declarator): Remove
+       commented-out productions.
+       (parmlist_1, parmlist_2): Use make_node, not tree_cons, to create
+       an empty TREE_LIST node.  Adjust calls to get_parm_info.
+       (parmlist_2 : ELLIPSIS): Tag the arg-info block with error_mark_node
+       to suppress -Wold-style-definition after this error.
+       (c_parse_file): Don't clear the binding stack or call
+       finish_fname_decls here.  Correct comment.
+       * c-typeck.c (same_translation_unit_p): Export.
+       (common_type): Use c_override_global_bindings_to_false, not
+       pushlevel/poplevel/declare_parm_level.
+       * c-lang.c: Override LANG_HOOKS_CLEAR_BINDING_STACK,
+       LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK,
+       and LANG_HOOKS_GETDECLS with do-nothing stubs.
+       * objc/objc-lang.c: Likewise.
+       * objc/objc-act.c: Adjust all calls to pushlevel, poplevel,
+       get_parm_info.
+       (OBJC_VOID_AT_END): Delete; replace all uses
+       with void_list_node.
+       (generate_forward_declaration_to_string_table): Delete.
+       * objc/objc-act.h (OCTI_STRG_DECL, UOBJC_STRINGS_decl): Delete.
+
+       * coverage.c (create_coverage): Don't pushdecl anything.
+       * langhooks.c (lhd_clear_binding_stack): Call
+       lang_hooks.decls.poplevel, not poplevel.
+       * tree.c (list_length): If ENABLE_TREE_CHECKING, abort on a
+       circular list rather than going into an infinite loop.
+
+2004-03-23  Olivier Hainque  <hainque@act-europe.fr>
+
+       * optabs.c (expand_binop): When synthesizing double word rotates
+       from single word shifts, use a new register target if the provided
+       target is not a REG already.
+
 2004-03-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
 
        * alias.c (get_alias_set): Add support for TYPE_REF_CAN_ALIAS_ALL.
        * frontends.texi: Add missing line.
 
 2004-03-21  Zack Weinberg  <zack@codesourcery.com>
-            Chris Devers  <cdevers@pobox.com>
-            Joseph S. Myers  <jsm@polyomino.org.uk>
+           Chris Devers  <cdevers@pobox.com>
+           Joseph S. Myers  <jsm@polyomino.org.uk>
 
        * doc/frontends.texi: Rewrite.
        * doc/gcc.texi: Update last modification date.
        (ir_sr70_icmp): Delete.
 
 2004-03-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
-       
+
        * tree.h (TREE_CHECK2, TREE_CHECK3, TREE_CHECK5): New macros.
        (tree_check2_failed, tree_check3_failed, tree_check5_failed): New decl.
        (FUNC_OR_METHOD_CHECK, SET_ARRAY_OR_VECTOR_CHECK): New macros.
 
 2004-03-17  Fariborz Jahanian <fjahanian@apple.com>
 
-        * config/rs6000/rs6000.c (rs6000_stack_info): correct reg_size
-        for mixed mode.
-        (rs6000_emit_prologue): Ditto.
-        (rs6000_emit_epilogue): Ditto.
-        * config/rs6000/rs6000.h: Definition of DWARF_CIE_DATA_ALIGNMENT
-        macro for mixed mode.
+       * config/rs6000/rs6000.c (rs6000_stack_info): correct reg_size
+       for mixed mode.
+       (rs6000_emit_prologue): Ditto.
+       (rs6000_emit_epilogue): Ditto.
+       * config/rs6000/rs6000.h: Definition of DWARF_CIE_DATA_ALIGNMENT
+       macro for mixed mode.
 
 2004-03-18  Jan Hubicka  <jh@suse.cz>