OSDN Git Service

Fix problem reported by Dan Berlin on gcc list.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index 4c20840..bd948e3 100644 (file)
@@ -1,3 +1,597 @@
+2004-04-13  James E Wilson  <wilson@specifixinc.com>
+
+       * c-opt.c (c_common_post_options): If this_input_filename is NULL,
+       increment errorcount and return false instead of true.
+
+2004-04-13  Uros Bizjak  <uros@kss-loka.si>:
+
+       * optabs.c (expand_twoval_unop): Reorder function arguments.
+       * builtins.c (expand_builtin_mathfn_3): Update calls to
+       expand_twoval_unop.
+
+       * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_TAN_ONE
+       and UNSPEC_TAN_TAN. Add missing comment.
+
+       * config/i386/i386.md (*tandf3_1, *tansf3_1, *tanxf3_1): New
+       patterns to implement fptan x87 instruction.
+       (tandf2, tansf2, tanxf2): New expanders to implement tan, tanf
+       and tanl built-ins as inline x87 intrinsics. Define corresponding
+       peephole2 optimizers for 'fptan; fstp %st(0); fld1' sequence.
+       (UNSPEC_TAN_ONE, UNSPEC_TAN_TAN): New unspecs to represent
+       x87's fptan insn.
+
+2004-03-13  Richard Henderson  <rth@redhat.com>
+
+       * bb-reorder.c (fix_crossing_unconditional_branches): Use Pmode
+       for LABEL_REFs.
+
+       * defaults.h (HOT_TEXT_SECTION_NAME): Add leading dot.
+       (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Likewise.
+       * doc/invoke.texi: Update to match.
+
+       * varasm.c (unlikely_text_section): Use assemble_align instead of
+       ASM_OUTPUT_ALIGN.  Use it in the correct place with an approximately
+       correct alignment argument.
+
+2004-04-13  Ulrich Weigand  <uweigand@de.ibm.com>
+
+       * reload1.c (emit_reload_insns): Set reg_has_output_reload to one
+       after setting reg_last_reload_reg for optional output reloads.
+
+2004-04-12  Fariborz Jahanian <fjahanian@apple.com>
+
+       * config/rs6000/altivec.h (vec_mergeh, vec_mergel):
+       Definition of these two macros are corrected by adding
+       matchine right paren.
+
+2004-04-12  Jonathan Larmour  <jifl@eCosCentric.com>
+
+       * fix-header.c: kill(), putenv() and tzset() are POSIX not ANSI.
+
+2004-04-12  Roger Sayle  <roger@eyesopen.com>
+
+       * config/i386/i386.c (output_387_reg_move): New function.
+       * config/i386/i386-protos.h (output_387_reg_move): Prototype here.
+       * config/i386/i386.md (*movsf_1, *movsf1_nointerunit,
+       *movdf_nointeger, *movdf_integer, *movxf_nointeger, *movxf_integer,
+       *extendsfdf2_1,  *extendsfxf2_1, *extenddfxf2_1, truncdfsf2_noop,
+       truncxfsf2_noop, truncxfdf2_noop): Call output_387_reg_move.
+
+2004-04-12  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * c-decl.c (finish_decl): Make a decl_stmt for a variable-sized
+       TYPE_DECL.
+       * c-semantics.c (genrtl_decl_stmt): Handle TYPE_DECL.
+       * stmt.c (expand_decl): Remove redundant expansion of TYPE_DOMAIN.
+       * stor-layout.c (variable_size): Don't check for MINUS_EXPR.
+       Use skip_simple_arithmetic to find SAVE_EXPR.
+       (force_type_save_exprs, force_type_save_exprs_1): New functions.
+       * tree-inline.c (remap_type, case POINTER_TYPE, case REFERENCE_TYPE):
+       Properly chain multiple pointers.
+       (copy_tree_r): Copy a TYPE_DECL.
+       * tree.c (variably_modified_type_p): Add some missing tests and
+       make some other minor changes.
+       * tree.h (force_type_save_exprs): New declaration.
+
+2004-04-12  Roger Sayle  <roger@eyesopen.com>
+
+       * simplify-rtx.c (simplify_binary_operation) <UDIV, DIV, UMOD, MOD>:
+       Remove fall throughs.  Convert 0/x and 0%x into x&0 when x has
+       side-effects.  Don't convert x/1.0 into x if we honor signaling NaNs.
+       Convert x/-1.0 into -x if we don't honor signaling NaNs.  Convert
+       x/-1 into -x.  Optimize x%1 into x&0 if x has side-effects.  Optimize
+       x%-1 into 0 (or x&0 if x has side-effects).
+
+2004-04-11  Aldy Hernandez  <aldyh@redhat.com>
+
+       * config/rs6000/rs6000.md: Document why a pattern is not
+       available.
+
+       * config/rs6000/rs6000.c (rs6000_emit_cmove): Disable comparisons
+       of floats on the E500.
+       (branch_positive_comparison_operator): Do not allow NE even on the
+       E500.
+
+2004-04-11  Aldy Hernandez  <aldyh@redhat.com>
+
+       * config/rs6000/rs6000.c (rs6000_assemble_integer): Change
+       in_text_unlikely_section to in_unlikely_text_section.
+
+2004-04-11  Roger Sayle  <roger@eyesopen.com>
+
+       * fold-const.c (fold_binary_op_with_conditional_arg):  Tweak
+       calling convention to allow a NULL_TREE to be returned.  Factor
+       sanity checks from callers, return NULL_TREE when appropriate.
+       (fold): Handle COMPOUND_EXPR operands of binary expressions
+       before COND_EXPR operands.  Use reorder_operands_p(a,b) to check
+       whether a op (b,c) can be rewritten as (b, a op c).  Simplify
+       calls to fold_binary_op_with_conditional_arg.
+
+2004-04-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * config/mips/iris5.h (current_section_flags):  Add
+       in_unlikely_executed_text and default case.
+
+2004-04-11  Andreas Tobler  <a.tobler@schweiz.ch>
+
+       * bb-reorder.c (fix_crossing_conditional_branches): Fix bootstrap
+       failure on solaris. Place ifdef HAVE_return around gen_ret call.
+       * cfgrtl.c (force_nonfallthru_and_redirect): Remove ifdef
+       HAVE_return and place it around the place where it is needed.
+
+2004-04-11  Andrew Pinski  <pinskia@physics.uc.edu>
+
+       * varasm.c (text_section): Use TEXT_SECTION_ASM_OP and
+       ASM_OUTPUT_ALIGN instead of SECTION_FORMAT_STRING
+       and NORMAL_TEXT_SECTION_NAME.
+       (unlikely_text_section): Check targetm.have_named_sections
+       instead of TARGET_ASM_NAMED_SECTION and use TEXT_SECTION_ASM_OP
+       instead of SECTION_FORMAT_STRING.
+       * config/mips/iris5.h (current_section_name): Add
+       in_unlikely_executed_text case and move the abort into the switch.
+       * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME): Remove.
+       (NORMAL_TEXT_SECTION_NAME): Remove.
+       (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
+       (SECTION_FORMAT_STRING): Remove.
+       * defaults.h (SECTION_FORMAT_STRING): Remove.
+       * tm.texi (NORMAL_TEXT_SECTION_NAME): Remove.
+       (SECTION_FORMAT_STRING): Remove.
+
+2004-04-10  Joseph S. Myers  <jsm@polyomino.org.uk>
+
+       * c-typeck.c (common_type): Prefer long long to long when same
+       precision.
+
+2004-04-09  Zack Weinberg  <zack@codesourcery.com>
+
+       PR 14887
+       * config/ia64/hpux.h (MEMBER_TYPE_FORCES_BLK): Look only at
+       mode argument.
+       * config/ia64/ia64.c (ia64_hpux_file_end): Check
+       TREE_SYMBOL_REFERENCED on DECL_ASSEMBLER_NAME, not DECL_NAME.
+
+2004-04-09  Roger Sayle  <roger@eyesopen.com>
+
+       * simplify-rtx.c (mode_signbit_p): New function to check whether
+       an RTX is an immediate constant that represents the most significant
+       bit of a given machine mode.
+       (simplify_unary_operation) <NOT>: Optimize ~(X+C) as X ^ ~C, where
+       C is the sign bit.
+       (simplify_binary_operation) <PLUS>: Optimize (X^C1) + C2 as X^(C1^C2)
+       when C2 is the sign bit.
+       (simplify_binary_operation) <XOR>: Canonicalize X^C as X+C when C
+       is the sign bit.  Optimize (X+C1) ^ C2 as X^(C1^C2) when C1 is the
+       sign bit.
+
+2004-04-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * builtins.c (mathfn_built_in): Check TYPE_MAIN_VARIANT, not
+       TYPE_MODE.
+
+2004-04-09  Andrew Pinski  <pinskia@physics.uc.edu>
+
+       * c-common.c (handle_noreturn_attribute): Use TYPE_READONLY instead
+       of TREE_READONLY for types.
+
+2004-04-09  Caroline Tice  <ctice@apple.com>
+
+       * basic-block.h (struct edge_def):  Add new field, crossing_edge.
+       (struct basic_block_def):  Add new field, partition.
+       (UNPARTITIONED, HOT_PARTITION, COLD_PARTITION):  New constant macro
+       definitions.
+       (partition_hot_cold_basic_blocks): Add extern function
+       declaration.
+       * bb-reorder.c (function.h, obstack.h, expr.h, regs.h):  Add four new
+       include statements.
+       (N_ROUNDS): Increase the maximum number of rounds by 1.
+       (branch_threshold): Add array value for new round.
+       (exec_threshold): Add array value for new round.
+       (push_to_next_round_p): New function.
+       (add_unlikely_executed_notes): New function.
+       (find_rarely_executed_basic_blocks_and_crossing_edges): New function.
+       (mark_bb_for_unlikely_executed_section): New function.
+       (add_labels_and_missing_jumps): New function.
+       (add_reg_crossing_jump_notes): New function.
+       (fix_up_fall_thru_edges): New function.
+       (find_jump_block): New function.
+       (fix_crossing_conditional_branches): New function.
+       (fix_crossing_unconditional_branches): New function.
+       (fix_edges_for_rarely_executed_code): New function.
+       (partition_hot_cold_basic_blocks): New function.
+       (find_traces):  Add an extra round for partitioning hot/cold
+       basic blocks.
+       (find_traces_1_round): Add a parameter.  Modify to push all cold blocks,
+       and only cold blocks, into the last (extra) round of collecting traces.
+       (better_edge_p): Add a parameter.  Modify to favor non-crossing edges
+       over crossing edges.
+       (bb_to_key):  Add code to correctly identify cold blocks when
+       doing partitioning.
+       (connect_traces): Modify to connect all the non-cold traces first, then
+       go back and connect up all the cold traces.
+       (reorder_basic_blocks):  Add call to add_unlikely_executed_notes.
+       * cfg.c (entry_exit_blocks): Add initialization for partition field in
+       entry and exit blocks.
+       * cfgbuild.c (make_edges): Update current_function_has_computed_jump
+       if we are doing hot/cold partitioning.
+       * cfgcleanup.c (cfglayout.h): Add new include statement.
+       (try_simplify_condjump): Modify to not attempt on blocks with jumps
+       that cross section boundaries.
+       (try_forward_edges): Likewise.
+       (merge_blocks_move_predecessor_nojumps): Likewise.
+       (merge_blocks_move_successor_nojumps): Likewise.
+       (merge_blocks_move): Likewise.
+       (try_crossjump_to_edge): Modify to not attempt after we have done
+       the block partitioning.
+       (try_crossjump_bb): Modify to not attempt on blocks with jumps that
+       cross section boundaries.
+       (try_optimize_cfg): Likewise.
+       * cfghooks.c (tidy_fallthru_edges): Modify to not remove indirect
+       jumps that cross section boundaries.
+       * cfglayout.c (flags.h): Add new include statement.
+       (update_unlikely_executed_notes):  New function.
+       (fixup_reorder_chain):  Add code so when a new jumping basic block is
+       added, it's UNLIKELY_EXECUTED_CODE and REG_CROSSING_JUMP notes are
+       updated appropriately.
+       (duplicate_insn_chain):  Add code to duplicate the new NOTE insn
+       introduced by this optimization.
+       * cfglayout.h (scan_ahead_for_unlikely_executed_note):  Add new
+       extern function declaration.
+       * cfgrtl.c (can_delete_note_p):  Add NOTE_INSN_UNLIKELY_EXECUTED_CODE to
+       list of notes that can be deleted.
+       (create_basic_block_structure):  Add initialization for partition field.
+       (rtl_can_merge_blocks):  Modify to test blocks for jumps that cross
+       section boundaries.
+       (try_redirect_by_replacing_jump):  Modify to not attempt on jumps that
+       cross section boundaries.
+       (commit_one_edge_insertion): Add code so newly created basic block
+       ends up in correct (hot or cold) section.  Modify to disallow
+       insertions before NOTE_INSN_UNLIKELY_EXECUTED_CODE notes.
+       (rtl_verify_flow_info_1):  Add code to verify that no fall_thru edge
+       crosses section boundaries.
+       (cfg_layout_can_merge_blocks_p): Modify to test blocks for jumps that
+       cross section boundaries.
+       (force_nonfallthru_and_redirect): Modify to make sure new basic block
+       ends up in correct section, with correct notes attached.
+       * common.opt (freorder-blocks-and-partition):  Add new flag for this
+       optimization.
+       * dbxout.c (dbx_function_end):  Add code to make sure scope labels at
+       the end of functions are written into the correct (hot or cold)
+       section.
+       (dbx_source_file): Add code so writing debug file information
+       doesn't incorrectly change sections.
+       * defaults.h (NORMAL_TEXT_SECTION_NAME): New constant macro, for use
+       in partitioning hot/cold basic blocks into separate sections.
+       (SECTION_FORMAT_STRING): New constant macro, for linux/i386 hot/cold
+       section partitioning.
+       (HAS_LONG_COND_BRANCH): New constant macro, indicating whether or not
+       conditional branches can span all of memory.
+       (HAS_LONG_UNCOND_BRANCH): New constant macro, indicationg whether or not
+       unconditional branches can span all of memory.
+       * final.c (scan_ahead_for_unlikely_executed_note):  New function.
+       (final_scan_insn):  Add code to check for NOTE instruction indicating
+       whether basic block belongs in hot or cold section, and to make sure
+       the current basic block is being written to the appropriate section.
+       Also added code to ensure that jump table basic blocks end up in the
+       correct section.
+       * flags.h (flag_reorder_blocks_and_partition):  New flag.
+       * ifcvt.c (find_if_case_1):  Modify to not attempt if conversion if
+       one of the branches has a jump that crosses between sections.
+       (find_if_case_2): Likewise.
+       (ifcvt): Modify to not attempt to mark loop exit edges after
+       hot/cold partitioning has occurred.
+       * opts.c (decode_options): Code to handle new flag,
+       flag_reorder_blocks_and_partition; also to turn it off if
+       flag_exceptions is on.
+       (common_handle_option): Code to handle new flag,
+       flag_reorder_blocks_and_partition.
+       * output.h (unlikely_text_section): New extern function declaration.
+       (in_unlikely_text_section): New extern function declaration.
+       * passes.c (rest_of_handle_stack_regs):  Add
+       flag_reorder_blocks_and_partition as an 'or' condition for calling
+       reorder_basic_blocks.
+       (rest_of_handle_reorder_blocks):  Add flag_reorder_blocks_and_partition
+       as an 'or' condition for calling reorder_basic_blocks.
+       (rest_of_compilation):  Add call to partition_hot_cold_basic_blocks.
+       * print-rtl.c (print_rtx): Add code for handling new note,
+       NOTE_INSN_UNLIKELY_EXECUTED_CODE
+       * rtl.c  (NOTE_INSN_UNLIKELY_EXECUTED_CODE): New note insn (see below).
+       (REG_CROSSING_JUMP): New kind of reg_note, to mark jumps that
+       cross between section boundaries.
+       * rtl.h (NOTE_INSN_UNLIKELY_EXECUTED_CODE):  New note instruction,
+       indicating the basic block containing it belongs in the cold section.
+       (REG_CROSSING_JUMP): New type of reg_note, to mark jumps that cross
+       between hot and cold sections.
+       * toplev.c (flag_reorder_blocks_and_partition):  Add code to
+       initialize this flag, and to tie it to the command-line option
+       freorder-blocks-and-partition.
+       * varasm.c (cfglayout.h):  Add new include statement.
+       (unlikely_section_label_printed):  New global variable, used for
+       determining when to output section name labels for cold sections.
+       (in_section):  Add in_unlikely_executed_text to enum data structure.
+       (text_section):  Modify code to use SECTION_FORMAT_STRING and
+       NORMAL_TEXT_SECTION_NAME macros.
+       (unlikely_text_section):  New function.
+       (in_unlikely_text_section):  New function.
+       (function_section):  Add code to make sure beginning of function is
+       written into correct section (hot or cold).
+       (assemble_start_function):  Add code to make sure stuff is written to
+       the correct section.
+       (assemble_zeros):  Add in_unlikely_text_section as an 'or' condition
+       to an if statement that was checking 'in_text_section'.
+       (assemble_variable):  Add 'in_unlikely_text_section' as an 'or'
+       condition to an if statement that was checking 'in_text_section'.
+       (default_section_type_flags_1):  Add check: if in cold section
+       flags = SECTION_CODE.
+       * config/darwin.c (darwin_asm_named_section):  Modify to use
+       SECTION_FORMAT_STRING if we are partitioning hot/cold blocks.
+       * config/i386/i386.h (HAS_LONG_COND_BRANCH): Defined this macro
+       specifically for the i386.
+       (HAS_LONG_UNCOND_BRANCH):  Defined this macro specifically for the i386.
+       * config/rs6000/darwin.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Change
+       text string to something more informative.
+       (NORMAL_TEXT_SECTION_NAME): Add new definition.
+       (SECTION_FORMAT_STRING):  Add new definition.
+       * config/rs6000/rs6000.c (rs6000_assemble_integer):  Add
+       '!in_unlikely_text_section' as an 'and' condition to an if statement
+       that was already checking '!in_text_section'.
+       * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME,NORMAL_TEXT_SECTION_NAME,
+       UNLIKELY_EXECUTED_TEXT_SECTION_NAME,SECTION_FORMAT_STRING): Make
+       sure these are properly defined for linux on ppc.
+       * doc/invoke.texi  (freorder-blocks-and-partition): Add documentation
+       for this new flag.
+       * doc/rtl.texi (REG_CROSSING_JUMP):  Add documentation for new
+       reg_note.
+       * doc/tm.texi (NORMAL_TEXT_SECTION_NAME, SECTION_FORMAT_STRING,
+       HAS_LONG_COND_BRANCH, HAS_LONG_UNCOND_BRANCH): Add documentation for
+       these new macros.
+
+2004-04-08  Roger Sayle  <roger@eyesopen.com>
+
+       * function.c (gen_mem_addressof): When changing the RTX from a REG
+       to a MEM, clear MEM_VOLATILE_P which was formerly REG_USERVAR_P.
+
+2004-04-08  Roger Sayle  <roger@eyesopen.com>
+
+       PR target/14888
+       * config/i386/i386.md (truncdfsf2_noop, truncxfsf2_noop,
+       truncxfdf2_noop): Provide dummy "fmov" implementations.
+
+2004-04-08  Ian Lance Taylor  <ian@wasabisystems.com>
+
+       * gcc.c (default_compilers): Add missing initializers.
+
+       * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
+       Return 1 if file was successfully mapped.
+
+2004-04-08  Geoffrey Keating  <geoffk@apple.com>
+
+       PR pch/13419
+       PR pch/14137
+       Radar #: 3315288
+       * doc/invoke.texi (Precompiled Headers): Suggest -o
+       to put an output file in a particular place.  Be more detailed
+       about which options affect PCH validity and which options
+       might not work.
+       * c-pch.c (pch_matching): New.
+       (MATCH_SIZE): New.
+       (struct c_pch_validity): New field 'match'.
+       (pch_init): Handle pch_matching.
+       (c_common_valid_pch): Check pch_matching.
+
+       * explow.c: Fix typo defining default of PROMOTE_FUNCTION_MODE.
+
+2004-04-08  Mark Mitchell  <mark@codesourcery.com>
+
+       * doc/invoke.texi (Precompiled Headers): Warn about known
+       problems.
+
+2004-04-08  Danny Smith  <dannysmith@users.sourceforge.net>
+
+       PR c++/14808
+       * defaults.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): New macro. Default
+       to 1 if ASM_OUTPUT_DEF is defined.
+       * doc/tm.texi (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document.
+       * config/i386/cygming.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): Define.
+       Set to non-zero iff not a one_only decl.
+
+2004-04-08  Paul Brook  <paul@codesourcery.com>
+
+       * arm.h (CLASS_LIKELY_SPILLED_P): Define.
+
+2004-04-08  Paul Brook  <paul@codesourcery.com>
+
+       * explow.c (promote_mode): Use PROMOTE_FUNCTION_MODE instead of
+       PROMOTE_FOR_CALL_ONLY.
+       * config/arm/arm-protos.h (arm_function_value): Declare.
+       * config/arm/arm.h (TARGET_PROMOTE_FUNCTION_ARGS): Define.
+       (TARGET_PROMOTE_PROTOTYPES): Return false.
+       (arm_function_value): New function.
+       * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Define.
+       (FUNCTION_VALUE): Call arm_function_value.
+       * config/cris/cris.h (PROMOTE_MODE): Rename ...
+       (PROMOTE_FUNCTION_MODE): ... to this.
+       (PROMOTE_FOR_CALL_ONLY): Remove.
+       * config/mmix/mmix.h: Likewise.
+       * config/s390/s390.h: Likewise.
+       * config/sparc/sparc.h: Likewise.
+       * config/sparc/sparc.c: Update comments about PROMOTE_MODE.
+       * doc/tm.texi (PROMOTE_FUNCTION_MODE): Document.
+       (TARGET_PROMOTE_FUNCTION_MODE, TARGET_PROMOTE_FUNCTION_RETURN): Update.
+       (PROMOTE_FOR_CALL_ONLY): Remove.
+
+2004-04-08  Joel Sherrill <joel@oarcorp.com>
+
+       PR ada/14538
+       * ada/5rosinte.adb: Remove fake mprotect() body.
+       * ada/5rosinte.ads: Add SA_SIGINFO.
+       * ada/5rtpopsp.adb: Rewrite to use new interface.
+       * ada/init.c: Reorder so the simple single OS conditional __rtems__
+       is tested before more complex ones which mix UNIX and embedded
+       systems in the conditional.
+
+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, UNSPEC_SINCOS_COS): New unspecs to represent
+       x87's fsincos 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.
        * 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.
        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
 
 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
+       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>