X-Git-Url: http://git.sourceforge.jp/view?p=pf3gnuchains%2Fgcc-fork.git;a=blobdiff_plain;f=gcc%2FChangeLog;h=4ae02b3849e38f09f55be11d64ca8275e3e8556c;hp=89583f30a6921049c5dfc1f76553907d91cef760;hb=931f506f3df25d1ef1ea793584ae4845baa82ef2;hpb=44bbb5f37df96b6aa1bce7ef396fb6100a1b2b95 diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 89583f30a69..4ae02b3849e 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,761 @@ +2003-06-07 Magnus Kreth + Thibaud Gaillard + + * Makefile.in (install-common): Remove GCOV_INSTALL_NAME instead of + gcov. + +2003-06-07 Kelley Cook + + * configure.in (HAVE_LD_RO_RW_SECTION_MIXING): Remove quotes in + section names. + * configure: Regenerate. + +2003-06-07 Alan Modra + + * config/rs6000/linux64.h (CRT_CALL_STATIC_FUNCTION): Define. + +2003-06-06 James E Wilson + + PR inline-asm/10890 + * reload1.c (merge_assigned_reloads): Abort only if two reloads have + different in fields. + +2003-06-06 Nathanael Nerode + + * configure.in: Make $(target_subdir) correspond with top level usage. + * Makefile.in: Likewise. + * configure: Regenerate. + +2003-06-06 John David Anglin + + * 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 + + * 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 + + PR target/11052 + * ifcvt.c (noce_process_if_block): Fail if the destination has + side-effects. + +2003-06-06 Jason Merrill + + * 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 + + * sh.h (FUNCTION_ARG_1): Consistently use NEW_MODE for the mode + of the generated register. + +2003-06-06 Daniel Jacobowitz + + * config.gcc: Add a missing sparc64 case. + +2003-06-06 Jakub Jelinek + + * mklibgcc.in: Propagate .note.GNU-stack section if needed into + the .hidden assembly stubs. + +2003-06-06 H.J. Lu + + * 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 . Move SSE2 + intrinsics to ... + * config/i386/emmintrin.h: Here. New file. + +2003-06-06 Roger Sayle + + * fold-const.c (fold ): 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 + + * sourcebuild.texi (Front End Directory): Document new hooks. + +Fri Jun 6 11:02:35 CEST 2003 Jan Hubicka + + * 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 + Pop Sebastian + Zdenek Dvorak + + * 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 + + * recog.c (peephole2_optimize): Revert last change. + +2003-06-05 Richard Henderson + + * recog.c (peephole2_optimize): Don't split block unless + can_throw_internal. + +2003-06-06 Kazu Hirata + + * 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 + + 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 + + * config/sh/linux.h (STARTFILE_SPEC): Handle -pie. Simplify. + (ENDFILE_SPEC): Redefine to handle -pie. + +2003-06-05 Phil Edwards + + * Makefile.in (qmtest-g++): Use target_alias, not target. + +2003-06-05 Per Bothner + + * 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 + + * dwarf2out.c (loc_descriptor_from_tree): Return 0 for + language-specific tree codes. + +2003-06-05 John David Anglin + + 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 + + * 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 + Richard Henderson + + * 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 + + * 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 + + * i386.md (align): Fix warning; clarify what to do when no p2align + is available. + +2003-06-05 Nick Clifton + + * 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 + + * doc/md.texi (Machine Constraints): Correct the meaning of + constraints related to floating-point registers on SPARC. + +2003-06-05 Eric Botcazou + Paolo Bonzini + + 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 + + * 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 + + * 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 + + * 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 + + 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 + + * 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 + + * cse.c (find_best_addr): Consider binary operators even if second + argument is not CONST_INT. + +2003-06-04 Zdenek Dvorak + + * doc/invoke.texi (max-cse-path-length): Document. + +2003-06-04 Richard Henderson + + * config/i386/i386.md (align): Use ASM_OUTPUT_*ALIGN macros. + +2003-06-04 Andrew Pinski + + * config/rs6000/darwin.h (RS6000_OUTPUT_BASENAME): + Remove semi-colon at the end of the expression. + +2003-06-04 Kaveh R. Ghazi + + * 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 + + * 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 + + * config.gcc: Only process --with-cpu logic in the third pass. + +2003-06-04 Daniel Jacobowitz + + * 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 + + * config/rs6000/rs6000.c (rs6000_complex_function_value): Unpack + complex numbers <= 32 bits into two registers. + +2003-06-04 Kaveh R. Ghazi + + * 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 + + * 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 . + +2003-06-04 David Edelsohn + + * doc/install.texi (*-ibm-aix*): Native as and ld required + to bootstrap on AIX 5L. + +2003-06-04 Richard Henderson + + * 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 + + * 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 + + * 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 + + * toplev.c (rest_of_type_compilation): Fix typo. + +2003-06-04 Jakub Jelinek + Alan Modra + + * 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 + + * config.gcc: Revert accidentally committed ARM changes. + +2003-06-04 Roger Sayle + + * 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 + + * 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 + + * system.h: Do not poison TDESC_SECTION_ASM_OP, + RDATA_SECTION_ASM_OP and SUBTARGET_PROLOGUE. + +2003-06-04 Kaveh R. Ghazi + + * 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 + + * 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 + + * 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 + + 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 + + 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 + + * config/mips/t-linux64 (CRTSTUFF_T_CFLAGS_S): Define. + +2003-06-04 Andreas Jaeger + + * 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 + + * optabs.c (expand_binop): Optimize complex multiplication for + the case of squaring a complex argument. + +2003-06-03 Roger Sayle + + * 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 + + * varasm.c (force_const_mem): Handle alignment of constants not + representable as a type in the front-end language. + +2003-06-03 Kazu Hirata + + * flow.c (initialize_uninitialized_subregs): Use + emit_move_insn instead of emitting a hardcoded move. + +2003-06-03 Richard Henderson + + * 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 * dwarf2out.c (DEBUG_STR_SECTION_FLAGS): Heed flag_merge_constants. @@ -64,27 +822,27 @@ 2003-06-03 Aldy Hernandez - * 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 @@ -197,7 +955,7 @@ 2003-06-02 Kazuhiro Inaoka - * 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