+2003-06-06 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ * pa.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_ALIGNED_COMMON,
+ ASM_OUTPUT_ALIGNED_LOCAL): Cast `SIZE' and `ALIGNED' parameters to
+ unsigned HOST_WIDE_INT.
+ * pa-pro-end.h (ASM_OUTPUT_ALIGNED_COMMOM, ASM_OUTPUT_ALIGNED_LOCAL):
+ Likewise.
+ * pa64-hpux.h (ASM_OUTPUT_ALIGNED_COMMON, ASM_OUTPUT_ALIGNED_LOCAL):
+ Likewise.
+
+2003-06-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * doc/install.texi (Prerequisites): New section documenting
+ tools and packages necessary prior to building and/or
+ modifying GCC.
+ * doc/install.texi2html: Also generate prerequisites.html.
+
+2003-06-06 Richard Earnshaw <rearnsha@arm.com>
+
+ PR target/11052
+ * ifcvt.c (noce_process_if_block): Fail if the destination has
+ side-effects.
+
+2003-06-06 Jason Merrill <jason@redhat.com>
+
+ * stmt.c (resolve_asm_operand_names): Rename from
+ resolve_operand_names. No longer static. Avoid needless copying.
+ Don't build array of constraints.
+ (expand_asm_operands): Build it here.
+ * tree.h: Declare resolve_asm_operand_names.
+
+ * stmt.c (expand_decl): Put artificial vars into registers even
+ when not optimizing, and don't mark the regs as user vars.
+
+2003-06-06 J"orn Rennecke <joern.rennecke@superh.com>
+
+ * sh.h (FUNCTION_ARG_1): Consistently use NEW_MODE for the mode
+ of the generated register.
+
+2003-06-06 Daniel Jacobowitz <drow@mvista.com>
+
+ * config.gcc: Add a missing sparc64 case.
+
+2003-06-06 Jakub Jelinek <jakub@redhat.com>
+
+ * mklibgcc.in: Propagate .note.GNU-stack section if needed into
+ the .hidden assembly stubs.
+
+2003-06-06 H.J. Lu <hongjiu.lu@intel.com>
+
+ * config.gcc (extra_headers): Add emmintrin.h for i[34567]86-*-*
+ and x86_64-*-*.
+
+ * config/i386/mmintrin.h: Update version and add alternate
+ intrinsic names.
+ * config/i386/xmmintrin.h: Likewise.
+
+ * config/i386/xmmintrin.h: Include <emmintrin.h>. Move SSE2
+ intrinsics to ...
+ * config/i386/emmintrin.h: Here. New file.
+
+2003-06-06 Roger Sayle <roger@eyesopen.com>
+
+ * fold-const.c (fold <ABS_EXPR>): Re-fold the result of folding
+ fabs(-x) into fabs(x). Use tree_expr_nonnegative_p to determine
+ when the ABS_EXPR (fabs or abs) is not required.
+ (tree_expr_nonnegative_p): Move the logic that sqrt and exp are
+ always nonnegative from fold to here. Additionally, cabs and fabs
+ are always non-negative, and pow and atan are non-negative if
+ their first argument is non-negative.
+
+ * builtins.c (fold_builtin_cabs): New function to fold cabs{,f,l}.
+ Evaluate cabs of a constant at compile-time. Convert cabs of a
+ non-complex argument into fabs. Convert cabs(z) into
+ sqrt(z.r*z.r + z.i*z.i) at the tree-level with -ffast-math or
+ -funsafe-math-optimizations or -ffast-math.
+ (fold_builtin): Convert BUILT_IN_FABS{,F,L} into an ABS_EXPR.
+ Fold BUILT_IN_CABS{,F,L} using fold_builtin_cabs.
+
+Thu Jun 5 20:51:09 CEST 2003 Jan Hubicka <jh@suse.cz>
+
+ * sourcebuild.texi (Front End Directory): Document new hooks.
+
+Fri Jun 6 11:02:35 CEST 2003 Jan Hubicka <jh@suse.cz>
+
+ * function.c (FLOOR_ROUND, CEIL_ROUND): Fix.
+ * i386.md (gen_pro_epilogue_adjust_stack): Deal with gigantic
+ stack frames.
+ (pro_epilogue_adjust_stack_rex64_2): New pattern
+
+Fri Jun 6 11:03:14 CEST 2003 Jan Hubicka <jh@suse.cz>
+ Pop Sebastian
+ Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
+ * cfghooks.h, cfghooks.c: New files.
+ * Makefile.in (BASIC_BLOCK_H): Depends on cfghooks.h.
+ (OBJS): Add cfghooks.o.
+ (cfghooks.o): New rule.
+ * basic-block.h (split_edge): Rename to rtl_split_edge.
+ (verify_flow_info): Rename to rtl_verify_flow_info.
+ (cfghooks.h): Included here.
+ * cfgrtl.c (split_edge): Renamed rtl_split_edge.
+ (verify_flow_info): Renamed rtl_verify_flow_info.
+ * toplev.c (rest_of_compilation): Call rtl_register_cfg_hooks.
+
+ * basic-block.h (split_block, split_edge, flow_delete_block,
+ redirect_edge_and_branch, redirect_edge_and_branch_force): Delete.
+ (flow_delete_block_noexpunge): Return void.
+ * cfg.c (verify_flow_info): New function.
+ * cfgcleanup.c (try_simplify_condjump, outgoing_edges_match,
+ try_crossjump_to_edge, try_optimize_cfg, delete_unreachable_blocks):
+ Use delete_block.
+ * cfglayout.c (function_footer): Rename to...
+ (cfg_layout_function_footer): ... this variable
+ (unlink_insn_chain): Make global.
+ (fixup_reorder_chain, record_effective_endpoints): Update.
+ (cleanup_unconditional_jumps): Use delete_block.
+ (cfg_layout_redirect_edge, cfg_layout_split_block): Move to cfgrtl.c
+ (cfg_layout_duplicate_bb): Use redirect_edge_and_branch_force.
+ (cfg_layout_initialize, cfg_layout_finalize): Update hooks.
+ * cfglayout.h (cfg_layout_redirect_edge, cfg_layout_split_block): Delete.
+ (cfg_layout_function_footer): Declare.
+ * cfgloopmanip (split_loop_bb): Do not update RBI.
+ (remove_bbs): Use delete_block.
+ (loop_reidrect_edge, loop_delete_branch_edge): Use
+ redirect_edge_and_branch.
+ (create_preheader): Use split_block and redirect_edge_and_branch_force.
+ (split_edge_with): Likewise.
+ * cfgrtl.c: Include cfglayout.h
+ (split_edge): Rename to ...
+ (rtl_split_edge) ... this one; make local.
+ (redirect_edge_and_branch): Rename to ...
+ (rtl_redirect_edge_and_branch) ... this one; make local.
+ (redirect_edge_and_branch_force): Rename to ...
+ (rtl_redirect_edge_and_branch_force) ... this one; make local.
+ (cfg_layout_delete_block, cfg_layout_delete_edge_and_branch_force): New.
+ (cfg_layout_redirect_edge_and_branch, cfg_layout_split_block): Move here from
+ cfglayout.c; update to directly call RTL counterparts.
+ (rtl_cfg_hooks, cfg_layout_rtl_cfg_hooks): New functions.
+ * ifcvt.c (find_cond_trap): Use delete_block.
+ (find_if_case_1): Use delete_block.
+ (find_if_case_2): Use delete_block.
+ * rtl.h (unlink_insn_chain): Declare.
+ * toplev.c (rtl_reigster_cfg_hooks): New.
+
+2003-06-05 Richard Henderson <rth@redhat.com>
+
+ * recog.c (peephole2_optimize): Revert last change.
+
+2003-06-05 Richard Henderson <rth@redhat.com>
+
+ * recog.c (peephole2_optimize): Don't split block unless
+ can_throw_internal.
+
+2003-06-06 Kazu Hirata <kazu@cs.umass.edu>
+
+ * config/h8300/h8300.c (get_shift_alg): Correct the syntax of rotxl.
+ * config/h8300/h8300.md (*addsi3_lshiftrt_16_zexthi): Likewise.
+
+2003-06-05 Kelley Cook <kelleycook@wideopenwest.com>
+
+ PR optimization/4490
+ * config/i386/i386.md: Don't use XFMode if TARGET_128BIT_LONG_DOUBLE.
+ * doc/invoke.texi (m96bit-long-double, m128bit-long-double): Reword
+ documentation to accurately reflect what these options do.
+
+2003-06-06 Kaz Kojima <kkojima@gcc.gnu.org>
+
+ * config/sh/linux.h (STARTFILE_SPEC): Handle -pie. Simplify.
+ (ENDFILE_SPEC): Redefine to handle -pie.
+
+2003-06-05 Phil Edwards <phil@jaj.com>
+
+ * Makefile.in (qmtest-g++): Use target_alias, not target.
+
+2003-06-05 Per Bothner <pbothner@apple.com>
+
+ * toplev.c (push_srcloc): Simplify behavior to save current location
+ and set current location to parameters.
+ (pop_srcloc): Simplify semantics.
+ (lang_dependent_init): Remove now-useless initial push_srcloc.
+
+2003-05-06 Richard Henderson <rth@redhat.com>
+
+ * dwarf2out.c (loc_descriptor_from_tree): Return 0 for
+ language-specific tree codes.
+
+2003-06-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ PR middle-end/9986
+ * pa.c (pa_init_builtins): Also set implicit_built_in_decls for
+ BUILT_IN_FPUTC_UNLOCKED to NULL_TREE.
+
+Thu Jun 5 18:32:46 CEST 2003 Jan Hubicka <jh@suse.cz>
+
+ * install.tex: Document profiledbootstrap.
+
+ * configure.in: Add support for lang.stageprofile and
+ lang.stagefeedback
+ * Makefile.in (clean, distclean): Kill new stages
+ (POSTSTAGE1_FLAGS_TO_PASS): Break from ...
+ (STAGE2_FLAGS_TO_PASS): ... this one.
+ (STAGEPROFILE_FLAGS_TO_PASS, STAGEFEEDBACK_FLAGS_TO_PASS): New.
+ (stage[2-4]_build): Add POSTSTAGE1_FLAGS_TO_PASS.
+ (stageprofile_build, stageprofile_copy, stagefeedback_build,
+ stagefeedback_copy): New.
+ (restageprofile, restagefeedback, stageprofile-start,
+ stageprofile, stagefeedback-start): Likewise.
+
+2003-06-05 David Miller <davem@redhat.com>
+ Richard Henderson <rth@redhat.com>
+
+ * optabs.c (HAVE_conditional_trap): Provide default.
+ (gen_conditional_trap): Likewise.
+ (init_optabs): Merge init_traps.
+ (gen_cond_trap): Use prepare_operand. Restructure and avoid ifdef.
+
+Thu Jun 5 14:59:44 CEST 2003 Jan Hubicka <jh@suse.cz>
+
+ * combine.c (simplify_if_then_else): (IF_THEN_ELSE (NE REG 0) (0) (8))
+ is REG for nonzero_bits (REG) == 8.
+
+Thu Jun 5 13:23:51 CEST 2003 Jan Hubicka <jh@suse.cz>
+
+ * i386.md (align): Fix warning; clarify what to do when no p2align
+ is available.
+
+2003-06-05 Nick Clifton <nickc@redhat.com>
+
+ * config.gcc (m32r-elf): Revert previous delta.
+ * config/m32r/t-m32r (crtinit.o): Fix rule to work with
+ multilibs. Remove m32rx specific version.
+ (crtfini.o): Likewise.
+ (EXTRA_MULTILIB_PARTS): Define.
+
+2003-06-05 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ * doc/md.texi (Machine Constraints): Correct the meaning of
+ constraints related to floating-point registers on SPARC.
+
+2003-06-05 Eric Botcazou <ebotcazou@libertysurf.fr>
+ Paolo Bonzini <bonzini@gnu.org>
+
+ PR target/10663
+ * configure.in (HAVE_LD_RO_RW_SECTION_MIXING): Redirect
+ assembler and linker output to /dev/null.
+ Use a 'sed' construct instead of 'grep -A1'.
+ * configure: Regenerate.
+
+2003-06-04 Richard Henderson <rth@redhat.com>
+
+ * config/i386/i386.c (struct ix86_address): Add seg.
+ (no_seg_address_operand): New.
+ (ix86_decompose_address): Restructure PLUS loop. Accept one
+ UNSPEC_TP if TARGET_TLS_DIRECT_SEG_REFS. Adjust ESP swap test
+ to test for a regnum, not stack_pointer_rtx.
+ (ix86_address_cost): Reduce cost if non-default segment.
+ (legitimate_address_p): Remove UNSPEC_TP check.
+ (get_thread_pointer): Add to_reg argument. Don't represent
+ the thread pointer as a memory load.
+ (legitimize_tls_address): Split out of ...
+ (legitimize_address): ... here.
+ (print_operand_address): Handle parts.seg.
+ (ix86_expand_move): Use legitimize_tls_address.
+ (ix86_rtx_costs): Handle UNSPEC_TP.
+ * config/i386/i386.h (MASK_TLS_DIRECT_SEG_REFS): New.
+ (TARGET_TLS_DIRECT_SEG_REFS): New.
+ (TARGET_SWITCHES): Add tls-direct-seg-refs.
+ (TARGET_TLS_DIRECT_SEG_REFS_DEFAULT): Default.
+ (PREDICATE_CODES): Add no_seg_address_operand.
+ * config/i386/i386.md (lea_1): Use it.
+ (lea_1_rex64, lea_1_zext, lea_2_rex64): Likewise.
+ (load_tp_si, add_tp_si, load_tp_di, add_tp_di): New.
+ * config/i386/linux.h (TARGET_TLS_DIRECT_SEG_REFS_DEFAULT): New.
+ * config/i386/linux64.h (TARGET_TLS_DIRECT_SEG_REFS_DEFAULT): New.
+ * doc/invoke.texi: Add -mtls-direct-seg-refs.
+
+2003-06-04 Mark Mitchell <mark@codesourcery.com>
+
+ * Makefile.in (QMTESTRUNFLAGS): Set for DejaGNU emulation.
+ (QMTEST_GPP_TESTS): Use "g++" by default.
+ (stamp-qmtest): Tweak database creation.
+ (QMTEST_DIR/context): Update context file format.
+ (qmtest-g++): Tweak command-line.
+
+2003-06-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * Makefile.in (varasm.o): Don't set -Wno-error.
+ * rs6000/t-rs6000 (varasm.o, out_object_file): Don't clear.
+
+2003-06-04 Zack Weinberg <zack@codesourcery.com>
+
+ PR bootstrap/3163
+ * aclocal.m4 (AC_FUNC_MMAP_ANYWHERE, AC_FUNC_MMAP_FILE): Delete.
+ (gcc_AC_FUNC_MMAP_BLACKLIST): New.
+ * configure.in: Check for sys/mman.h and mmap in AC_CHECK_HEADERS
+ and AC_CHECK_FUNCS lists, respectively. Use
+ gcc_AC_FUNC_MMAP_BLACKLIST, not AC_FUNC_MMAP_ANYWHERE nor
+ AC_FUNC_MMAP_FILE.
+ * configure, config.in: Regenerate.
+
+2003-06-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * arm/aout.h (ASM_OUTPUT_SKIP): Fix cast for format specifier warning.
+ * arm.c (arm_output_function_prologue): Fix format specifiers.
+ * arm.h (ARM_PRINT_OPERAND_ADDRESS): Likewise.
+ * m68k.c (m68k_output_mi_thunk): Use more readable %wd instead of
+ HOST_WIDE_INT_PRINT_DEC.
+ * vax.c (vax_output_function_prologue): Fix format specifiers.
+
+2003-06-04 Richard Henderson <rth@redhat.com>
+
+ * cse.c (find_best_addr): Consider binary operators even if second
+ argument is not CONST_INT.
+
+2003-06-04 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
+ * doc/invoke.texi (max-cse-path-length): Document.
+
+2003-06-04 Richard Henderson <rth@redhat.com>
+
+ * config/i386/i386.md (align): Use ASM_OUTPUT_*ALIGN macros.
+
+2003-06-04 Andrew Pinski <pinskia@physics.uc.edu>
+
+ * config/rs6000/darwin.h (RS6000_OUTPUT_BASENAME):
+ Remove semi-colon at the end of the expression.
+
+2003-06-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * i370.c (mvs_function_name_length): Fix signed/unsigned warnings.
+ * i370.h (mvs_function_name_length): Likewise.
+ * i960.h (CONSTANT_ALIGNMENT): Likewise.
+ * mips/linux.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
+ * pa/pa-pro-end.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
+ * pa.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
+ * rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Delete unused
+ variable.
+
+2003-06-04 Daniel Jacobowitz <drow@mvista.com>
+
+ * config.gcc: Reorganize --with-cpu logic. Set
+ configure_default_options according to the default CPU, --with-cpu,
+ --with-arch, --with-tune, --with-schedule, --with-abi, and
+ --with-float. Check for legal values of various options.
+ * configure.in: Define configure_default_options in configargs.h.
+ * configure: Regenerated.
+ * config/mips/mips.h (TARGET_DEFAULT_ARCH_P)
+ (TARGET_DEFAULT_FLOAT_P): New macros.
+ * gcc.c (do_option_spec): New function.
+ (struct default_spec, option_default_specs): New.
+ (main): Call do_option_spec.
+ * config/alpha/alpha.h, config/arm/arm.h, config/i386/i386.h,
+ config/mips/mips.h, config/pa/pa.h, config/rs6000/rs6000.h,
+ config/sparc/sparc.h (OPTION_DEFAULT_SPECS): Define.
+
+ * doc/install.texi: Update --with-cpu documentation. Mention
+ --with-arch, --with-schedule, --with-tune, --with-abi, and
+ --with-float.
+ * doc/tm.texi (Driver): Document OPTION_DEFAULT_SPECS.
+
+2003-06-04 Daniel Jacobowitz <drow@mvista.com>
+
+ * config.gcc: Only process --with-cpu logic in the third pass.
+
+2003-06-04 Daniel Jacobowitz <drow@mvista.com>
+
+ * config.gcc: Reorganize --with-cpu section. Remove an
+ obsolete comment about the default CPU for x86-64. Fix
+ a typo for the ep9312. Update the list of supported PowerPC
+ CPUs. Support a limited set of new --with-cpu options
+ for i386.
+
+2003-06-04 Aldy Hernandez <aldyh@redhat.com>
+
+ * config/rs6000/rs6000.c (rs6000_complex_function_value): Unpack
+ complex numbers <= 32 bits into two registers.
+
+2003-06-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * alpha.c (print_operand_address): Fix format specifier warnings.
+ * alpha/elf.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
+ * alpha/vms.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
+ * arm/aof.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Likewise.
+ * arm/pe.h (ASM_OUTPUT_COMMON): Likewise.
+ * avr.h (ASM_OUTPUT_COMMON, ASM_GENERATE_INTERNAL_LABEL,
+ ASM_OUTPUT_SKIP): Likewise.
+ * c4x.h (ASM_GENERATE_INTERNAL_LABEL): Likewise.
+ * dsp16xx.h (ASM_GENERATE_INTERNAL_LABEL): Likewise.
+ * h8300.h (ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_COMMON):
+ Likewise.
+ * i370.h (ASM_GENERATE_INTERNAL_LABEL): Likewise.
+ * i386/cygming.h (ASM_OUTPUT_COMMON): Likewise.
+ * i386/darwin.h (ASM_OUTPUT_COMMON): Likewise.
+ * i960.h (ASM_GENERATE_INTERNAL_LABEL): Likewise.
+ * m68k/hp320.h (PRINT_OPERAND_ADDRESS): Likewise.
+ * mcore.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
+ * pdp11.h (ASM_GENERATE_INTERNAL_LABEL): Likewise.
+ * ptx4.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
+ * sparc/freebsd.h (ASM_GENERATE_INTERNAL_LABEL): Likewise.
+ * svr3.h (ASM_OUTPUT_COMMON): Likewise.
+
+2003-06-04 J"orn Rennecke <joern.rennecke@superh.com>
+
+ * c-decl.c (c_init_decl_processing): Clear input_file_name
+ while building common nodes.
+ * dwarf2out.c (gen_compile_unit_die, dwarf2out_finish):
+ Don't add working directory for strings like <built-in> .
+
+2003-06-04 David Edelsohn <edelsohn@gnu.org>
+
+ * doc/install.texi (*-ibm-aix*): Native as and ld required
+ to bootstrap on AIX 5L.
+
+2003-06-04 Richard Henderson <rth@redhat.com>
+
+ * c-common.c (handle_cleanup_attribute): New.
+ (c_common_attributes): Add it.
+ * c-decl.c (finish_decl): Honor the cleanup attribute.
+ * doc/extend.texi (Variable Attributes): Document it.
+
+ * unwind-c.c: New file.
+ * Makefile.in (LIB2ADDEH): Add it.
+ * config/t-darwin, config/t-linux, config/t-linux-gnulibc1,
+ config/ia64/t-ia64: Likewise.
+
+2003-06-04 Jakub Jelinek <jakub@redhat.com>
+
+ * function.c (trampolines_created): New variable.
+ (expand_function_end): Set it when doing INITIALIZE_TRAMPOLINE.
+ * function.h (trampolines_created): Add.
+ * config/s390/linux.h (ASM_FILE_END): Define.
+ * config/alpha/linux-elf.h (ASM_FILE_END): Define.
+ * config/m68k/linux.h (ASM_FILE_END): Define.
+ * config/rs6000/linux.h (ASM_FILE_END): Define.
+ * config/rs6000/linux64.h (ASM_FILE_END): Define.
+ * config/rs6000/ppc-asm.h: Add .note.GNU-stack on powerpc-linux.
+ * config/sparc/linux.h (ASM_FILE_END): Define.
+ * config/sparc/linux64.h (ASM_FILE_END): Define.
+ * config/i386/i386.c (ix86_asm_file_end): Use SUBTARGET_FILE_END.
+ * config/i386/linux.h (SUBTARGET_FILE_END): Define.
+ * config/i386/linux64.h (SUBTARGET_FILE_END): Define.
+
+Wed Jun 4 18:39:33 CEST 2003 Jan Hubicka <jh@suse.cz>
+
+ * i386.c (min_insn_size, k8_avoid_jump_misspredicts): New functions
+ (ix86_reorg): Use it.
+ * i386.md (align): New insn pattern.
+
+2003-06-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * toplev.c (rest_of_type_compilation): Fix typo.
+
+2003-06-04 Jakub Jelinek <jakub@redhat.com>
+ Alan Modra <amodra@bigpond.net.au>
+
+ * config/i386/linux.h (NO_PROFILE_COUNTERS): Define to 1.
+ * config/i386/freebsd.h (NO_PROFILE_COUNTERS): Likewise.
+ * config/i386/netbsd-elf.h (NO_PROFILE_COUNTERS): Likewise.
+ * config/xtensa/xtensa.h (NO_PROFILE_COUTNERS): Likewise.
+ * config/darwin.h (NO_PROFILE_COUNTERS): Likewise.
+ * final.c (NO_PROFILE_COUNTERS): Define to 0 if not defined.
+ (profile_function): Allow NO_PROFILE_COUNTERS to be non-constant.
+ * config/rs6000/rs6000.c (output_profile_hook): Likewise.
+
+ * configure.in (powerpc*-*, s390*-*): Set tls_as_opt.
+ Pass it to $gcc_cv_as.
+ * configure: Rebuilt.
+
+ * config/rs6000/rs6000.c (rs6000_abi_name): Remove initializer.
+ (print_operand): Allow TARGET_AIX to be non-constant.
+ (rs6000_aix_emit_builtin_unwind_init, rs6000_emit_eh_toc_restore):
+ Define unconditionally.
+ (rs6000_elf_declare_function_name): New function.
+ * config/rs6000/rs6000.md (eh_return): Allow TARGET_AIX to be
+ non-constant.
+ * config/rs6000/linux64.h [!RS6000_BI_ARCH] (TARGET_64BIT): Define
+ to 1.
+ (DEFAULT_ARCH64_P, RS6000_BI_ARCH_P): Define.
+ [IN_LIBGCC2] (TARGET_64BIT): Define based on whether __powerpc64__
+ is defined.
+ (TARGET_AIX): Define to 1 if TARGET_64BIT.
+ (PROCESSOR_DEFAULT): Remove.
+ (TARGET_RELOCATABLE, RS6000_ABI_NAME, INVALID_64BIT,
+ INVALID_32BIT, SUBSUBTARGET_OVERRIDE_OPTIONS): Define.
+ [RS6000_BI_ARCH] (OVERRIDE_OPTIONS, ASM_FILE_START): Define.
+ (ASM_DEFAULT_SPEC, ASM_SPEC, LINK_OS_LINUX_SPEC): Define for both
+ -m32 and -m64.
+ (MULTILIB_DEFAULTS): Define.
+ (SUBSUBTARGET_EXTRA_SPECS): Define.
+ (ASM_SPEC32, ASM_SPEC64, ASM_SPEC_COMMON): Define.
+ (TARGET_TOC): Define only if !RS6000_BI_ARCH.
+ (TARGET_NO_TOC): Remove.
+ [!RS6000_BI_ARCH] (TARGET_RELOCATABLE, TARGET_EABI,
+ TARGET_PROTOTYPE): Define to 0.
+ (NO_PROFILE_COUNTERS): Define to TARGET_64BIT.
+ (PROFILE_HOOK): Only call output_profile_hook if TARGET_64BIT.
+ (ADJUST_FIELD_ALIGN, ROUND_TYPE_ALIGN): Adjust to work properly
+ if !TARGET_64BIT.
+ (USER_LABEL_PREFIX): Remove.
+ (JUMP_TABLES_IN_TEXT_SECTION): Define to TARGET_64BIT.
+ (SETUP_FRAME_ADDRESSES): Only call rs6000_aix_emit_builtin_unwind_init
+ if TARGET_64BIT.
+ (TARGET_OS_CPP_BUILTINS): Handle both -m32 and -m64.
+ (LINK_OS_LINUX_SPEC32, LINK_OS_LINUX_SPEC64): Define.
+ (STARTFILE_LINUX_SPEC, ENDFILE_LINUX_SPEC): Remove.
+ (TOC_SECTION_ASM_OP): Define depending on TARGET_64BIT.
+ (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
+ (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE): Define depending on
+ TARGET_64BIT.
+ (RS6000_CALL_GLUE): Likewise.
+ (SAVE_FP_PREFIX, SAVE_FP_SUFFIX, RESTORE_FP_PREFIX,
+ RESTORE_FP_SUFFIX): Likewise.
+ (ASM_DECLARE_FUNCTION_NAME): Remove.
+ (ASM_DECLARE_FUNCTION_SIZE, ASM_OUTPUT_SOURCE_LINE,
+ DBX_OUTPUT_BRAC, DBX_OUTPUT_NFUN): Only output dot before function
+ name if TARGET_64BIT.
+ (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Handle both TARGET_64BIT and
+ !TARGET_64BIT.
+ (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Remove undefs.
+ (ASM_PREFERRED_EH_DATA_FORMAT): Take TARGET_64BIT into account.
+ (DRAFT_V4_STRUCT_RET): Define.
+ (SIGNAL_FRAMESIZE): New enum value.
+ (MD_FALLBACK_FRAME_STATE_FOR): Define.
+ * config/rs6000/default64.h: New file.
+ * config/rs6000/sysv4.h (SUBTARGET_SWITCHES): Add -m32 and -m64
+ options.
+ (SUBTARGET_OVERRIDE_OPTIONS): If rs6000_abi_name is NULL, set it
+ to RS6000_ABI_NAME. Only disallow mixing of -fPIC with -mcall-aixdesc
+ if !TARGET_64BIT.
+ [!RS6000_BI_ARCH] (SUBSUBTARGET_OVERRIDE_OPTIONS): Define.
+ (ASM_DECLARE_FUNCTION_NAME): Use rs6000_elf_declare_function_name
+ function.
+ (TARGET_OS_SYSV_CPP_BUILTINS): Define.
+ (TARGET_OS_CPP_BUILTINS): Use it.
+ (CPP_SYSV_SPEC): Remove.
+ (CPP_SPEC): Remove cpp_sysv.
+ (SUBTARGET_EXTRA_SPECS): Remove cpp_sysv.
+ Add SUBSUBTARGET_EXTRA_SPECS.
+ (SUBSUBTARGET_EXTRA_SPECS): Define.
+ * config/rs6000/biarch64.h: New file.
+ * config/rs6000/rs6000-protos.h (rs6000_elf_declare_function_name):
+ New prototype.
+ * config/rs6000/x-linux64: New file.
+ * config/rs6000/t-linux64: Build -m64, -m32 and -m32 -msoft-float
+ multilibs.
+ * config/rs6000/eabi-ci.asm: Protect with #ifndef __powerpc64__.
+ * config/rs6000/eabi-cn.asm: Likewise.
+ * config/rs6000/tramp.asm: Likewise.
+ * config/rs6000/sol-ci.asm: Likewise.
+ * config/rs6000/sol-cn.asm: Likewise.
+ * config/rs6000/linux.h (TARGET_64BIT): Define to 0.
+ (TARGET_OS_CPP_BUILTINS): Use TARGET_OS_SYSV_CPP_BUILTINS.
+ * config/rs6000/ppc-asm.h: Move __powerpc64__ section before
+ _CALL_AIXDESC section.
+ * config.gcc (powerpc64-*-linux*): Configure a bi-arch compiler,
+ defaulting to -m64 unless --with-cpu= is one of the 32-bit CPUs
+ or default32.
+
+2003-06-04 Daniel Jacobowitz <drow@mvista.com>
+
+ * config.gcc: Revert accidentally committed ARM changes.
+
+2003-06-04 Roger Sayle <roger@eyesopen.com>
+
+ * builtins.c (dconstpi, dconste): New mathematical constants.
+ (init_builtin_dconsts): New function to initialize dconstpi
+ and dconste.
+ (fold_builtin): Optimize exp(1.0) = e. Evaluate exp(x) at
+ compile time with -ffast-math when x is an integer constant.
+ Optimize tan(0.0) = 0.0. Optimize atan(0.0) = 0.0,
+ atan(1.0) = pi/4 and tan(atan(x)) = x with -ffast-math.
+
+2003-06-04 Roger Sayle <roger@eyesopen.com>
+
+ * calls.c (expand_call): Avoid calling pure or const functions
+ when the result is ignored (or void) and none of the arguments
+ are volatile. Move warning diagnostic earlier in function.
+
+2003-06-04 Andreas Jaeger <aj@suse.de>
+
+ * system.h: Do not poison TDESC_SECTION_ASM_OP,
+ RDATA_SECTION_ASM_OP and SUBTARGET_PROLOGUE.
+
+2003-06-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * final.c (asm_fprintf): Update comments, accept "-+ #0" flags,
+ optimize '%' case, handle %c, don't accept %p, %e, %f or %g,
+ handle %ll, optimize regular character case.
+
+2003-06-04 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
+ * Makefile.in (cse.o): Add params.h dependency.
+ * cse.c: Include params.h.
+ (PATHLENGTH): Removed.
+ (struct cse_basic_block_data): Make path array dynamic.
+ (cse_end_of_basic_block): Use PARAM_MAX_CSE_PATH_LENGTH instead
+ of PATHLENGTH.
+ (cse_main, cse_basic_block): Allocate path array.
+ * params.def (PARAM_MAX_CSE_PATH_LENGTH): New.
+
+Wed Jun 4 09:49:21 CEST 2003 Jan Hubicka <jh@suse.cz>
+
+ * i386.c (ix86_reorg): Replace the jump instead of adding nop.
+ * i386.md (UNSPEC_REP): New constant.
+ (return_internal_long): New pattern.
+
+2003-06-04 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ PR optimization/11018
+ * config/sparc/sparc.c (sparc_v8plus_shift): Use which_alternative
+ consistently to decide whether the scratch register is really
+ required.
+
+2003-06-04 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ PR optimization/10876
+ * config/sparc/sparc.h (CONST_OK_FOR_LETTER): Add
+ new 'O' constraint for constant 4096.
+ (CONST_DOUBLE_OK_FOR_LETTER_P): Likewise.
+ * config/sparc/sparc.md (adddi3 expander): Canonicalize pattern.
+ Do not transform into MINUS insn for constant 4096.
+ (*adddi3_sp64 insn): Canonicalize pattern. Add new alternative
+ for constant 4096 as third operand.
+ (addsi3 expander): Remove.
+ (*addsi3 insn): Rename into 'addsi3'. Canonicalize pattern. Add
+ new alternative for constant 4096 as third operand.
+ (subdi3 expander): Do not transform into PLUS insn for constant 4096.
+ (*subdi3_sp64 insn): Add new alternative for constant 4096 as third
+ operand.
+ (subsi3 expander): Remove.
+ (*subsi3 insn): Rename into 'subsi3'. Add new alternative for
+ constant 4096 as third operand.
+ * doc/md.texi (Machine Constraints): Document new 'O' constraint for
+ the SPARC port.
+
+2003-06-03 Chris Demetriou <cgd@broadcom.com>
+
+ * config/mips/t-linux64 (CRTSTUFF_T_CFLAGS_S): Define.
+
+2003-06-04 Andreas Jaeger <aj@suse.de>
+
+ * config/i386/uwin.h: Remove SUBTARGET_PROLOGUE.
+
+ * config/i386/i386.c (ix86_expand_prologue): Do not use
+ SUBTARGET_PROLOGUE.
+
+ * system.h: Poision SUBTARGET_PROLOGUE.
+
+ * config/arm/arm-protos.h: Remove unused rdate_section prototype.
+
+ * output.h: Remove TDESC_SECTION_ASM_OP and RDATA_SECTION_ASM_OP
+ dependend code.
+
+ * system.h: Poison TDESC_SECTION_ASM_OP and RDATA_SECTION_ASM_OP.
+
+ * system.h: Poison INSN_CACHE_DEPTH, INSN_CACHE_SIZE and
+ INSN_CACHE_LINE_WIDTH.
+
+ * libgcc2.c (INSN_CACHE_PLANE_SIZE): Removed.
+ (__clear_cache): Remove code dependend on INSN_CACHE_DEPTH,
+ INSN_CACHE_SIZE and INSN_CACHE_LINE_WIDTH.
+
+ * doc/tm.texi (Trampolines): Remove INSN_CACHE_DEPTH,
+ INSN_CACHE_SIZE and INSN_CACHE_LINE_WIDTH.
+
+ * dbxout.c (dbxout_type): Remove usage of DBX_OUTPUT_ENUM.
+ (dbxout_symbol): Remove usage of DBX_OUTPUT_CONSTANT_SYMBOL.
+ (dbxout_block): Remove usage of DBX_OUTPUT_CATCH.
+ (dbxout_block): Remove usage of DBX_LBRAC_FIRST.
+ (dbxout_source_file): Remove usage of DBX_OUTPUT_SOURCE_FILENAME.
+ (dbxout_init): Remove test for DBX_WORKING_DIRECTORY.
+
+ * doc/tm.texi (DBX Options): Do not document DBX_LBRAC_FIRST,
+ DBX_OUTPUT_SOURCE_FILENAME and DBX_OUTPUT_ENUM and
+ DBX_WORKING_DIRECTORY.
+
+ * system.h: Poison DBX_LBRAC_FIRST, DBX_OUTPUT_ENUM,
+ DBX_OUTPUT_SOURCE_FILENAME and DBX_WORKING_DIRECTORY.
+
+ * config/frv/frv-protos.h: Remove unused const_section
+ declaration.
+ * config/vax/vax-protos.h: Likewise.
+
+ * output.h: Remove CONST_SECTION_ASM_OP usage.
+
+ * system.h: Poison CONST_SECTION_ASM_OP.
+
+ * crtstuff.c (__do_global_dtors_aux): Remove usage of
+ CRT_GET_RFIB_TEXT.
+ (frame_dummy): Likewise.
+ * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Likewise.
+ * system.h: Poison CRT_GET_RFIB_TEXT.
+
+ * collect2.c (is_ctor_dtor): Remove CFRONT_LOSSAGE dependend code.
+
+ * fix-header.c: Remove ADD_MISSING_EXTERN_C dependend variables.
+ (write_lbrac): Remove ADD_MISSING_EXTERN_C dependend code.
+ (recognized_function): Likewise.
+ (read_scan_file): Likewise.
+
+2003-06-03 Roger Sayle <roger@eyesopen.com>
+
+ * optabs.c (expand_binop): Optimize complex multiplication for
+ the case of squaring a complex argument.
+
+2003-06-03 Roger Sayle <roger@eyesopen.com>
+
+ * optabs.c (expand_binop): Attempt to reuse pseudos for duplicate
+ non-volatile operands of binary operations.
+ (prepare_cmp_insn): Likewise.
+
+2003-06-03 Roger Sayle <roger@eyesopen.com>
+
+ * varasm.c (force_const_mem): Handle alignment of constants not
+ representable as a type in the front-end language.
+
+2003-06-03 Kazu Hirata <kazu@cs.umass.edu>
+
+ * flow.c (initialize_uninitialized_subregs): Use
+ emit_move_insn instead of emitting a hardcoded move.
+
+2003-06-03 Richard Henderson <rth@redhat.com>
+
+ * optabs.c (expand_abs_nojump): Split out from ...
+ (expand_abs): ... here.
+ * optabs.h (expand_abs_nojump): Declare.
+ * ifcvt.c: (noce_try_abs): Use expand_abs_nojump.
+ * Makefile.in (ifcvt.o): Depend on optabs.h.
+
+2003-06-03 Alan Modra <amodra@bigpond.net.au>
+
+ * dwarf2out.c (DEBUG_STR_SECTION_FLAGS): Heed flag_merge_constants.
+
+2003-06-03 Jason Thorpe <thorpej@wasabisystems.com>
+
+ * config.gcc (default_use_cxa_atexit): New variable, defaults to no.
+ (*-*-netbsd[2-9]* | *-*-netbsdelf[2-9]*): Set default_use_cxa_atexit
+ to yes.
+ * configure.in: Allow default_use_cxa_atexit to determine the
+ value of DEFAULT_USE_CXA_ATEXIT if not explicitly enabled or
+ disabled.
+ * configure: Regenerate.
+
+2003-06-03 Douglas B Rupp <rupp@gnat.com>
+
+ * Makefile.in (TEXI_GCC_FILES): Remove vms.texi entry.
+ * doc/gcc.texi: Remove vms.texi section.
+ * doc/vms.texi: Remove obsolete file.
+
+2003-05-23 J"orn Rennecke <joern.rennecke@superh.com>
+
+ * configure.in (inhibit_libc): Don't define when configuring
+ with --with-newlib --with-headers.
+ * configure: Regenerate.
+
+ * t-sh: Remove LIB2FUNCS_EXTRA and embed-bb.c rules.
+
+2003-06-03 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
+
+ * configure.in (gcc_cv_as_hidden): Disable .hidden completely on
+ IRIX 6 without GNU ld.
+ * configure: Regenerate.
+
+2003-06-03 Roger Sayle <roger@eyesopen.com>
+
+ * expr.c (emit_move_insn_1): Use emit_move_insn to move the parts
+ of a complex number rather than invoke mov_optab directly.
+
2003-06-03 Kazu Hirata <kazu@cs.umass.edu>
* combine.c (simplify_set): Don't move a subreg in SET_SRC to
2003-06-03 Aldy Hernandez <aldyh@redhat.com>
- * function.c (assign_parms): Split complex arguments.
+ * function.c (assign_parms): Split complex arguments.
- * doc/tm.texi (SPLIT_COMPLEX_ARGS): Document.
+ * doc/tm.texi (SPLIT_COMPLEX_ARGS): Document.
- * expr.h (SPLIT_COMPLEX_ARGS): Define.
- (split_complex_types): Protoize.
- (split_complex_values): Protoize.
+ * expr.h (SPLIT_COMPLEX_ARGS): Define.
+ (split_complex_types): Protoize.
+ (split_complex_values): Protoize.
- * calls.c (expand_call): Split complex arguments on architectures
- that require it.
- (split_complex_values): New.
- (split_complex_types): New.
+ * calls.c (expand_call): Split complex arguments on architectures
+ that require it.
+ (split_complex_values): New.
+ (split_complex_types): New.
- * config/rs6000/rs6000.c (rs6000_libcall_value): New.
- (rs6000_function_value): Handle complex values on AIX.
- (rs6000_complex_function_value): New.
+ * config/rs6000/rs6000.c (rs6000_libcall_value): New.
+ (rs6000_function_value): Handle complex values on AIX.
+ (rs6000_complex_function_value): New.
- * config/rs6000/rs6000-protos.h (rs6000_libcall_value): Protoize.
+ * config/rs6000/rs6000-protos.h (rs6000_libcall_value): Protoize.
- * config/rs6000/rs6000.h (LIBCALL_VALUE): Call function.
- (SPLIT_COMPLEX_ARGS): New.
+ * config/rs6000/rs6000.h (LIBCALL_VALUE): Call function.
+ (SPLIT_COMPLEX_ARGS): New.
2003-06-03 Jakub Jelinek <jakub@redhat.com>
2003-06-02 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
- * gcc/config.gcc Add support multilib parts for m32rx processor.
+ * gcc/config.gcc Add support multilib parts for m32rx processor.
2003-06-02 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>