diff --git a/gcc/ChangeLog b/gcc/ChangeLog index b197c751d40..3680afd3c5e 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,16352 +1,2 @@ -2003-12-31 Richard Kenner - * print-rtl.c (print_rtx): For hard register, write out register - number and register name instead of calling PRINT_REG. - * defaults.h (PRINT_REG): Deleted. - * config/i386/i386.c (print_reg): Remove handling of CODE of -1. - Move comments here from i386.h. - (print_operand, print_operand_address): Call print_reg directly. - * config/i386/i386.h (PRINT_REG): Deleted. - -2003-12-31 Roger Sayle - - * config/ia64/hpux.h (TARGET_OS_CPP_BUILTINS): Define - _INCLUDE_LONGLONG. - -2003-12-31 Zack Weinberg - - * gcc.c (init_spec): Add -lunwind to shared case too if - USE_LIBUNWIND_EXCEPTIONS. - -2003-12-31 Joseph S. Myers - - * doc/include/texinfo.tex: Update to version 2003-12-21.10. - * doc/gcc.texi, doc/gccint.texi: Don't set font for - @def... commands. - * doc/invoke.texi: Don't use empty @opindex. - -2003-12-31 Mark Mitchell - - * c-common.c (c_expand_expr): Remove code to return a value - different from that returned by expand_expr. - * expr.c (store_expr): Use the validity of a target MEM, rather - than checking DECL_RTL (exp), to figure out if a copy is - required. - -2003-12-31 Kazu Hirata - - * config/v850/lib1funcs.asm: Fix comment formatting. - * config/v850/v850.c: Likewise. - * config/v850/v850.h: Likewise. - * config/v850/v850.md: Likewise. - -2003-12-31 Kazu Hirata - - * config/i386/i386.md (*movqi_insv_2): Remove AND in the - set source. - -2003-12-31 Kazuhiro Inaoka - - * config.gcc: Added m32r-linux m32rle-elf and m32le-linux targets. - * doc/invoke.texi: Document -mflush-func, -mflush-trap options. - Also add documentation for -mdebug, -malign-loops, -missue-rate, - and -mbranch-cost options. - * config/m32r/t-linux: New file: m32r-linux support. - * config/m32r/xm-linux.h: Likewise. - * config/m32r/xm-m32r.h: Likewise. - * config/m32r/linux.h: Likewise. - * config/m32r/little.h: New file: Little endian code generation - support. - * config/m32r/m32r-protos.h (m32r_legitimize_pic_address, - m32r_legitimate_pic_operand_p, load_pic_register): Add - prototypes. - * config/m32r/m32r.c (m32r_init): Add options for cache-flush. - (addr24_operand): Changes for PIC code generation. - * config/m32r/m32r.h (LABEL_ALIGN): Define to calculate PNOP - length at labels. - (ASM_SPEC): Add PIC support. - (FUNCTION_PROFILER): New define. - (TRAMPOLINE_SIZE, INITIALIZE_TRAMPOLINE): Changed to support - trampoline. - (CONDITIONAL_REGISTER_USAGE, CONSTANT_ADDRESS_P, - LEGITIMIZE_ADDRESS, JUMP_TABLES_IN_TEXT_SECTION, - PIC_OFFSET_TABLE_REGNUM, FINALIZE_PIC, LEGITIMATE_PIC_OPERAND_P, - ASM_OUTPUT_ADDR_DIFF_ELT, CASE_VECTOR_MODE): Define for PIC. - (move_src_operand, m32r_compute_frame_size, m32r_expand_prologue, - m32r_finalize_pic): Changes for PIC and profile support. - (global_offset_table, load_pic_register, m32r_legitimate_pic_operand_p, - m32r_legitimize_pic_address): Add for PIC support. - (m32r_file_start): Changed for little-endian-target. - * config/m32r/m32r.md (mvqi, movhi, movsi, movdi, movsf, movdf, - tablejump, tablejump_insn, call, call_value, call_value_via_label): - Changes for PIC. - (pic_load_addr, get_pc, builtin_setjmp_receiver): Added for PIC. - (flush_icache): Changes for cache-flush trap. - -2003-12-30 Kazu Hirata - - * config/i386/i386.h: Remove an unnecessary #undef. - -2003-12-30 Roger Sayle - - * cppfiles.c (pch_open_file): Minor tweak to work-around native - HPPA compiler bug. - -2003-12-30 Kazu Hirata - - * config/rs6000/aix.h: Fix comment formatting. - * config/rs6000/rs6000-modes.def: Likewise. - * config/rs6000/rs6000.c: Likewise. - * config/rs6000/rs6000.h: Likewise. - * config/rs6000/rs6000.md: Likewise. - -2003-12-30 Kazu Hirata - - * config/i386/i386-protos.h: Remove prototype for - const_int_1_operand. - * config/i386/i386.c (const_int_1_operand): Remove. - * config/i386/i386.h (PREDICATE_CODES): Remove - const_int_1_operand. - * config/i386/i386.md: Replace all uses of const_int_1_operand - with const1_operand. - * config/i386/pentium.md: Likewise. - -2003-12-30 Geoffrey Keating - - * doc/tm.texi (PREFERRED_RELOAD_CLASS): Describe use of NO_REGS - with constants. - -2003-12-30 Mark Mitchell - - * stor-layout.c (layout_decl): Turn bitfields into ordinary - fields, even if they are the first field in a structure. - -2003-12-30 Roger Sayle - - * fold-const.c (fold) : Don't require strict type - equality, instead just prevent replacing a COND_EXPR of non-void - type by one of its operands of void type. - -2003-12-30 Andreas Schwab - - * doc/c-tree.texi: Fix @item vs. @itemx. - * doc/cpp.texi: Likewise. - * doc/install.texi: Likewise. - * doc/invoke.texi: Likewise. - -2003-12-30 Nathan Sidwell - - * builtins.c (expand_builtin_apply_args_1): Fix typo in previous - change. - -2003-12-30 Jan Hubicka - - PR target/11936 - * i386.h (CLASS_LIKELY_SPILLED_P): Return true for - FP_TOP_REG/FP_SECOND_REG. - -2003-12-30 Steven Bosscher - - Backport from tree-ssa (relevant changes only): - 2003-12-18 Zdenek Dvorak - - * et-forest.h (et_forest_create, et_forest_delete, - et_forest_add_node, et_forest_add_edge, et_forest_remove_node, - et_forest_remove_edge, et_forest_parent, - et_forest_common_ancestor, et_forest_node_value, - et_forest_enumerate_sons): Declarations removed. - (struct et_node): New. - (et_new_tree, et_free_tree, et_set_father, et_split, et_nca, - et_below): Declare. - * et-forest.c (struct et_forest_occurrence, struct et_forest, - struct et_forest_node): Removed. - (et_forest_create, et_forest_delete, - et_forest_add_node, et_forest_add_edge, et_forest_remove_node, - et_forest_remove_edge, et_forest_parent, - et_forest_common_ancestor, et_forest_node_value, - et_forest_enumerate_sons, splay, remove_all_occurrences, - find_leftmost_node, find_rightmost_node, calculate_value): Removed. - (struct et_occ): New. - (et_nodes, et_occurences): New. - (set_depth, set_depth_add, set_prev, set_next, et_recomp_min, - et_check_occ_sanity, et_check_sanity, et_check_tree_sanity, - record_path_before_1, record_path_before, check_path_after_1, - check_path_after, et_splay, et_new_occ, et_new_tree, - et_free_tree, et_set_father, et_split, et_nca, et_below): New. - * basic-block.h (struct basic_block_def): New field dom. - (struct dominance_info): Type removed. - (calculate_dominance_info, free_dominance_info, - nearest_common_dominator, set_immediate_dominator, - get_immediate_dominator, dominated_by_p, get_dominated_by, - add_to_dominance_info, delete_from_dominance_info, - recount_dominator, redirect_immediate_dominators, - iterate_fix_dominators, verify_dominators): Declarations - changed. - (enum dom_state): New. - (dom_computed): New variable. - (first_dom_son, next_dom_son): Declare. - * dominance.c (struct dominance_info): Removed. - (BB_NODE, SET_BB_NODE): Removed. - (calculate_dominance_info, free_dominance_info, - nearest_common_dominator, set_immediate_dominator, - get_immediate_dominator, dominated_by_p, get_dominated_by, - add_to_dominance_info, delete_from_dominance_info, - recount_dominator, redirect_immediate_dominators, - iterate_fix_dominators, verify_dominators, - debug_dominance_info): Work over new datastructure. Access - dominance datastructures through CFG. - (assign_dfs_numbers, compute_dom_fast_query, first_dom_son, - next_dom_son): New. - * bt-load.c (dom): Variable removed. - (augment_live_range, combine_btr_defs, migrate_btr_def, - migrate_btr_defs, branch_target_load_optimize): Updated for the - new interface for dominance information. - * cfg.c {exit_entry_blocks): Update initializer. - * cfglayout.c (copy_bbs): Removed loops argument. Updated for - the new interface for dominance information. - * cfglayout.h (copy_bbs): Declaration changed. - * cfgloop.c (flow_loop_pre_header_find, flow_loops_cfg_dump, - flow_loop_scan, canonicalize_loop_headers, flow_loops_find): Updated - for the new interface for dominance information. - (flow_loop_scan): Loops argument removed. - (flow_loops_free): Don't release dominators. - * cfgloop.h (struct cfg): Dom field removed. - (flow_loop_scan, loop_split_edge_with, simple_loop_p, - just_once_each_iteration_p, split_loop_bb): Declaration changed. - * cfgloopanal.c (simple_loop_exit_p, simple_increment, - just_once_each_iteration_p, simple_loop_p): Remove loops argument. - Updated for the new interface for dominance information. - * cfgloopmanip.c (remove_bbs, find_path, create_preheader, - split_loop_bb, loopify, duplicate_loop_to_header_edge, - force_single_succ_latches, loop_split_edge_with): Ditto. - * gcse.c (dominators): Variable removed. - (free_code_hoist_mem, compute_code_hoist_data, hoist_code): - Updated for the new interface for dominance information. - * ifcvt.c (post_dominators): Variable removed. - (mark_loop_exit_edges, merge_if_block, find_if_header, - find_cond_trap, find_if_case_1, find_if_case_2, if_convert): - Updated for the new interface for dominance information. - * loop-init.c (rtl_loop_optimizer_init, - rtl_loop_optimizer_finalize): Ditto. - * loop-unroll.c (decide_peel_simple, decide_peel_once_rolling, - decide_peel_completely, decide_unroll_stupid, - decide_unroll_constant_iterations, - decide_unroll_runtime_iterations): Loops argument removed. - Updated for the new interface for dominance information. - (unroll_and_peel_loops, peel_loops_completely, - unroll_loop_runtime_iterations): Updated for the new interface for - dominance information. - * loop-unswitch.c (may_unswitch_on_p, unswitch_loops, - unswitch_single_loop, unswitch_loop): Updated for the new - interface for dominance information. - * predict.c (process_note_predictions, process_note_prediction, - estimate_probability, note_prediction_to_br_prob): Ditto. - * sched-rgn.c (find_rgns, init_regions): Ditto. - * toplev.c (rest_of_handle_branch_prob): Free the dominators. - -2003-12-30 Jan Hubicka - - PR target/13456 - * i386.md (allocate_stack_worker): Use different pattern for pre and - post reload expansion. - (allocate_stack_worker_1, allocate_stack_worker_rex64): Use - match_scratch. - (allocate_stack_worder_1_postreload, - allocate_stack_worker_rex64_postreload): New. - -2003-12-29 Nathan Sidwell - - * builtins.c (expand_builtin_apply_args_1): Add pretend args size - to the virtual incoming args pointer for downward stacks. - -2003-12-29 Roger Sayle - - PR fortran/12632 - * fold-const.c (fold) : Don't fold a constant condition, - if the type of the selected branch doesn't match its' parent. - -2003-12-29 Jan Hubicka - - * coverage.c (read_counts_file): Better error messages; cause corrupted - profiles to produce hard errors, not just warnings - (get_coverage_counts): Similarly. - - * toplev.c (rest_of_handle_loop_optimize): Enable LOOP_AUTO_UNROLL. - -2003-12-29 Phil Edwards - - * doc/cppopts.texi: Use of -idirafter, -iprefix, -iwithprefix, and - -iwithprefixbefore is not discouraged. - -2003-12-28 Mostafa Hagog - - * sbitmap.c (sbitmap_union_of_diff_cg, sbitmap_a_and_b_cg, - sbitmap_a_xor_b_cg): Accumulate "changed" properly. - (sbitmap_not): Zero all bits past n_bit. - -2003-12-27 Zdenek Dvorak - - PR opt/13159 - * cfgloopanal.c (mark_irreducible_loops): Fix the strongly connected - components detection. - * loop-unswitch.c (unswitch_loop): Preserve simple preheaders. - -2003-12-27 Bernardo Innocenti - - * config/m68k/uclinux.h (LIB_SPEC): Add elf2flt magic required for - correct linking of executables using id-based shared libraries. - -2003-12-27 Kazu Hirata - - * config/i386/i386-interix.h: Remove uses of "register" - specifier in declarations of arguments and local variables. - * config/i386/i386.c: Likewise. - * config/i386/i386elf.h: Likewise. - * config/i386/ptx4-i.h: Likewise. - * config/i386/sysv4.h: Likewise. - -2003-12-26 Fariborz Jahanian - Geoffrey Keating - David Edelsohn - - * config/rs6000/rs6000.c (legitimate_offset_address_p): Do not - restrict DFmode and TFmode to word alignment. - * config/rs6000/rs6000.md (movdf_hardfloat64): Use 'o' constraint - for ld/std and order before mr. - -2003-12-26 Andrew Pinski - - * config/darwin.h (LINK_COMMAND_SPEC): Arrange - -fprofile-generate to imply -lgcov. - -2003-12-26 Kazu Hirata - - * config/h8300/h8300.md (ldm_h8300s_2_normal): Use HImode for - addresses. - -2003-12-25 Kazu Hirata - - * config/m32r/m32r.md: Remove a constraint from a splitter. - -2003-12-25 Andrew Pinski - - PR C++/13429, C/11944 - * c-common.c (c_build_qualified_type): Return early when type is - error_mark_node. - (c_apply_type_quals_to_decl): Likewise. - -2003-12-25 Kazu Hirata - - * config/alpha/alpha-modes.def: Fix comment formatting. - * config/alpha/alpha.c: Likewise. - * config/alpha/alpha.h: Likewise. - * config/alpha/elf.h: Likewise. - * config/alpha/lib1funcs.asm: Likewise. - * config/alpha/openbsd.h: Likewise. - * config/alpha/vms-cc.c: Likewise. - * config/alpha/vms-crt0-64.c: Likewise. - * config/alpha/vms-crt0.c: Likewise. - * config/alpha/vms-ld.c: Likewise. - * config/alpha/vms-psxcrt0-64.c: Likewise. - * config/alpha/vms-psxcrt0.c: Likewise. - * config/alpha/vms.h: Likewise. - * config/arc/arc.c: Likewise. - * config/arm/aof.h: Likewise. - * config/arm/arm-modes.def: Likewise. - * config/arm/arm.c: Likewise. - * config/arm/arm.h: Likewise. - * config/arm/arm.md: Likewise. - * config/arm/linux-elf.h: Likewise. - * config/arm/vxworks.h: Likewise. - * config/avr/avr.c: Likewise. - * config/avr/avr.h: Likewise. - -2003-12-24 Kazu Hirata - - * config/xtensa/elf.h: Fix comment formatting. - * config/xtensa/xtensa-protos.h: Likewise. - * config/xtensa/xtensa.c: Likewise. - * config/xtensa/xtensa.h: Likewise. - -2003-12-24 Kazu Hirata - - * config/avr/avr.c: Fix comment formatting. - * config/avr/avr.md: Likewise. - -2003-12-24 Kazu Hirata - - PR target/12721. - * config/avr/avr.c: Include ggc.h. - (tmp_reg_rtx): Declare with GTY. - (zero_reg_rtx): Likewise. - (ldi_reg_rtx): Remove. - (avr_override_options): Initialize zero_reg_rtx and - ldi_reg_rtx. - (avr_init): Remove. - Include gt-avr.h. - * config/avr/avr.h (LDI_REG_REGNO): Remove. - Remove externs for tmp_reg_rtx, zero_reg_rtx, and ldi_reg_rtx. - -2003-12-24 David Edelsohn - - * doc/md.texi: Document PowerPC vector register constraint letter. - -2003-12-23 Mark Mitchell - - * calls.c (expand_call): Recognize calls to "sqrt" and create - corresponding notes. - -2003-12-23 Kaveh R. Ghazi - - * config/mips/mips.c (override_options): Use `inform' instead - of `warning' for -g -mabi=32 and native assembler. - - * config/mips/t-iris6 (CRTSTUFF_T_CFLAGS, TARGET_LIBGCC2_CFLAGS): - Don't pass -Wno-error. - -2003-12-23 David Edelsohn - - * function.c (assign_parms): Update max_parm_reg and - parm_reg_stack_loc when adding new parm reg. - -2003-12-23 Kazu Hirata - - * config/ns32k/ns32k.c: Convert to ISO-C. - -2003-12-23 Zack Weinberg - - * config/ia64/ia64.c (ia64_va_arg): Pass pointer for - variable-sized type through convert_memory_address. - (ia64_in_small_data_p): Always return false for FUNCTION_DECLs. - -2003-12-23 Jan Hubicka - - * common.opt (fprofile-generate,fprofile-use): Add. - * gcc.c (LINK_COMMAND_SPEC): Arrange -fprofile-generate to imply -lgcov - * opts.c (profile_arc_flag_set, flag_profile_values_set, - flag_unroll_loops_set, flag_tracer_set, - flag_value_profile_transformations_set, - flag_peel_loops_set): New static variables. - (common_handle_option): Deal with -fprofile-generate/-fprofile-use - * invoke.texi (-fprofile-generate, -fprofile-use): Describe. - -2003-12-23 Mark Mitchell - - * Makefile.in (OBJS-common): Remove dwarfout.o. - (dwarfout.o): Remove. - * common.opt: Remove -gdwarf, -gdwarf+. - * defaults.h (PREFERRED_DEBUGGING_TYPE): Do not check for - DWARF_DEBUGGING_INFO. - * dwarf2out.c: Fix typo in comment. - * dwarfout.c: Remove. - * opts.c (common_handle_option): Remove OPT_gdwarf, OPT_gdwarf_. - * toplev.c (process_options): Remove check for - DWARF_DEBUGGING_INFO. - * config/elfos.h (DWARF_DEBUGGING_INFO): Do not #define it or - #undef it. - * config/netware.h (DWARF_DEBUGGING_INFO): Likewise. - * config/ptx4.h (DWARF_DEBUGGING_INFO): Likewise. - * config/vxworks.h (DWARF_DEBUGGING_INFO): Likewise. - * config/alpha/unicosmk.h (DWARF_DEBUGGING_INFO): Likewise. - * config/arc/arc.h (DWARF_DEBUGGING_INFO): Likewise. - * config/i386/sco5.h (DWARF_DEBUGGING_INFO): Likewise. - * config/i386/x86-64.h (DWARF_DEBUGGING_INFO): Likewise. - * config/m32r/m32r.h (DWARF_DEBUGGING_INFO): Likewise. - * config/mcore/mcore-elf.h (DWARF_DEBUGGING_INFO): Likewise. - * config/sparc/linux64.h (DWARF_DEBUGGING_INFO): Likewise. - * config/sparc/liteelf.h (DWARF_DEBUGGING_INFO): Likewise. - * config/sparc/sol26-sld.h (DWARF_DEBUGGING_INFO): Likewise. - * config/sparc/sp86x-elf.h (DWARF_DEBUGGING_INFO): Likewise. - * doc/invoke.texi: Do not mention -gdwarf, -gdwarf-1, -gdwarf-1+, - or -gdwarf+. - * doc/tm.texi: Likewise. - - * c-common.c (flag_abi_version): Default to 2. - * c-cppbuiltin.c (c_cpp_builtins): Define __GXX_ABI_VERSION - uniformly for versions above 2. - * doc/invoke.texi: Update documentation for -fabi-version. - -2003-12-22 Geoffrey Keating - - * config/rs6000/rs6000.md: Change many instances of '! - TARGET_POWERPC64' to 'TARGET_32BIT' when the pattern being guarded - was guarded only because it changed CR0 or the carry bit in XER. - -2003-12-23 Eric Botcazou - - PR optimization/13394 - * toplev.c (rest_of_compilation): Move call to - check_function_return_warnings right after the sibcall - optimization pass. - -2003-12-23 Eric Botcazou - - PR c/13382 - * c-typeck.c (convert_for_assignment): When converting from - integral type to pointer type, always call convert. - -2003-12-22 Mark Mitchell - - * doc/invoke.texi: Deprecate -fwritable-strings. - - * c-common.c (flag_external_templates): Remove. - (flag_alt_external_templates): Likewise. - * c-common.h (flag_external_templates): Remove. - (flag_alt_external_templates): Likewise. - * c-opts.c (c_common_handle_option): Unsupport - -falt-external-templates and -ftemplates. - * doc/invoke.texi: Remove mention of -fexternal-templates and - -falt-external-templates. - -2003-12-22 Andrew Pinski - - PR target/13466 - * config.gcc (powerpc-*-darwin): Remove overridden value of need_64bit_hwint. - - * emit-rtl.c (copy_rtx_if_shared): Add comment about its use of - copy_rtx_if_shared_1. - (copy_rtx_if_shared_1): Add comment about what the function does. - - * c-decl.c (finish_function): Change order of checks. - (c_expand_body): Likewise. - -2003-12-22 Fariborz Jahanian - - * config/rs6000/rs6000.c (legitimate_offset_address_p): Correct - check for the legitimate offset when memory of - DImode/DFmode/TFmode/TImode mode is being referenced and target - is TARGET_POWERPC64. - -2003-12-22 Dale Johannesen - - * reload1.c: Add reg_reloaded_call_part_clobbered. - (reload_as_needed): Use it. - (forget_old_reloads_1): Ditto. - (emit_reload_insns): Ditto. - -2003-12-22 Dale Johannesen - - PR optimization/12828 - * loop.c: Add find_regs_nested to look inside CLOBBER(MEM). - (scan_loop): Call it. - * regclass.c (reg_scan_mark_regs): Look inside CLOBBER(MEM). - -2003-12-22 Andrew Pinski - - PR c/9163 - * c-decl.c (poplevel): Only set DECL_INITIAL of a current function - if it is non-null. - (finish_function): Check for error_mark_node or null on DECL_RESULT and - DECL_RESULT of fndecl. - (c_expand_body): Only expand when DECL_INITIAL of fndecl is not - error_mark_node and not null. - -2003-12-21 Dan Nicolaescu - - * rtl.h (dump_rtx_statistics): Declare it. - * rtl.c (rtx_alloc_counts, rtx_alloc_sizes, rtvec_alloc_counts, - rtx_alloc_sizes): New static vars. - (rtx_alloc, rtvec_alloc): Update them. - (dump_rtx_statistics): New function. - * toplev.c (finalize): Call it. - * ggc-page.c (struct globals): Fix comments. Add new member - total_allocated_per_order. - (ggc_alloc): Keep track of the total allocated memory. - (ggc_print_statistics): Clarify message. Print total allocated - memory stats. - * configure.in (gather-detailed-mem-stats): New flag. - * configure: Regenerate. - * config.in: Regenerate. - * doc/install.texi (Configuration): Document - --enable-gather-detailed-mem-stats. - -2003-12-22 Kazu Hirata - - * system.h (CONVERT_HARD_REGISTER_TO_SSA_P): Poison. - * config/i386/i386.h (CONVERT_HARD_REGISTER_TO_SSA_P): Remove. - -2003-12-21 Roger Sayle - - * config/ia64/hpux.h (TARGET_OS_CPP_BUILTINS): Define _ILP32 - when compiling in ILP32 mode. - -2003-12-21 Andrew Pinski - - * config/rs6000/rs6000.c (rs6000_tls_referenced_p): Return early if - TARGET_HAVE_TLS is false. - -2003-12-21 Kazu Hirata - - * config/ip2k/ip2k-protos.h: Remove the prototype for - asm_output_section_name. - * config/ip2k/ip2k.c (asm_output_section_name): Remove. - -2003-12-21 Kazu Hirata - - * alias.c: Fix comment formatting. - * alloc-pool.c: Likewise. - * bitmap.c: Likewise. - * bitmap.h: Likewise. - * bt-load.c: Likewise. - * c-common.c: Likewise. - * c-common.h: Likewise. - * c-decl.c: Likewise. - * c-opts.c: Likewise. - * c-pretty-print.c: Likewise. - * caller-save.c: Likewise. - * cfghooks.h: Likewise. - * cgraph.c: Likewise. - * collect2.c: Likewise. - * cppfiles.c: Likewise. - * cpplib.h: Likewise. - * dwarf2out.c: Likewise. - * dwarfout.c: Likewise. - * emit-rtl.c: Likewise. - * final.c: Likewise. - * function.c: Likewise. - * gcov.c: Likewise. - * gcse.c: Likewise. - * genemit.c: Likewise. - * ggc.h: Likewise. - * haifa-sched.c: Likewise. - * ifcvt.c: Likewise. - * libgcc2.h: Likewise. - * loop.c: Likewise. - * predict.h: Likewise. - * unwind-libunwind.c: Likewise. - * varasm.c: Likewise. - -2003-12-21 Kazu Hirata - - * config/mn10300/mn10300.c (mn10300_encode_section_info): Fix - a warning. - -2003-12-21 Kazu Hirata - - * config/arm/arm.c: Convert to ISO-C. - * config/avr/avr.h: Likewise. - * config/fr30/fr30.c: Likewise. - * config/ip2k/ip2k.c: Likewise. - * config/mn10300/mn10300.c: Likewise. - -2003-12-20 Andrew Pinski - Matt Thomas - - PR target/12749 - * config/i386/i386.c (print_operand): Print only the first - 8 characters of the float in hex. - -2003-12-20 John David Anglin - - * pa.h (TRAMPOLINE_TEMPLATE): Shorten sequence when generating PA - 2.0 code. - (TRAMPOLINE_CODE_SIZE, MIN_CACHELINE_SIZE): New defines. - (INITIALIZE_TRAMPOLINE): Rework to pass line length, and aligned start - and end addresses to I and D cache instruction patterns. - * pa.md (anddi3, iordi3): Change predicates of operands 1 and 2 to - and_operand and ior_operand, respectively. When generating 64-bit - code, only one operand needs to be a register operand. - (xordi3): Change predicates of operands 1 and 2 to register_operand. - (one_cmpldi2): Change predicate of operand 1 to register_operand. - (dcacheflush, icacheflush): Revise to flush an arbitrary number of - cache lines. - -2003-12-20 Josef Zlomek - - PR optimization/13430, PR optimization/12322 - * bb-reorder.c (copy_bb_p): Do not allow block with many successors to - be copied. - (find_traces_1_round): Surround check for fake edges by - #ifdef ENABLE_CHECKING #endif. - -2003-12-20 Eric Botcazou - - PR other/7956 - * genmultilib: New variable disable_multilib. Set it to 'yes' - if enable_multilib was set to 'no'. Emit DISABLE_MULTILIB - if disable_multilib was set to 'yes'. - * gcc.c: Include multilib.h before tm.h. - * config/sparc/sol2-bi.h (LINK_ARCH_SPEC): Emit an error - message for multiarch options if DISABLE_MULTILIB is set. - * config/sparc/sol2-gld-bi.h (LINK_ARCH_SPEC): Likewise. - -2003-12-20 Eric Botcazou - - PR c/12085 - * c-typeck.c (build_function_call): Issue a warning if a - function is called through an incompatible prototype and - replace the call by a trap in this case. - -2003-12-19 James E Wilson - - * install.texi (ia64-*-linux): Document minimum libunwind version - number. - -2003-12-19 Per Bothner - - * langhooks.c (lhd_print_error_function): Fix for PR c/13110. - Don't do pp_newline; it causes an extra blank line. - * pretty-print.c (pp_base_flush): Clear pp_needs_newline. - -2003-12-19 Jason Merrill - - * tree.c (get_unwidened): Decide whether to narrow a bitfield - reference based on TYPE_SIZE, not TYPE_PRECISION. - - * stmt.c (parse_output_constraint): Warn about in-out constraint - that doesn't allow a register. - (parse_input_constraint): Warn about matching constraint that - doesn't allow a register. - -2003-12-19 James E Wilson - - * flow.c (mark_set_regs, case PARALLEL): Scan loop forwards. - Add case for ASM_OPERANDS. - * global.c (global_alloc): Set regs_ever_live for regs_asm_clobbered - registers. - -2003-12-19 Kazu Hirata - - * expr.c (check_max_integer_computation_mode): Remove. - * dojump.c (do_jump): Don't use MAX_INTEGER_COMPUTATION_MODE. - * fold-const.c (fold): Likewise. - * system.h (MAX_INTEGER_COMPUTATION_MODE): Poison. - * doc/tm.texi (MAX_INTEGER_COMPUTATION_MODE): Remove. - -2003-12-19 James E Wilson - - * configure.in: Delete libunwind_has_eh_support test. - * configure: Regenerate. - * config.gcc (ia64*-*-linux*): Delete reference to t-libunwind-no-eh - and libunwind_has_eh_support check. - * config/t-libunwind-no-eh: Delete. - -2003-12-19 Joseph S. Myers - - * c-format.c (print_char_table): Allow 'I' flag on floating point - decimal formats. - -2003-12-19 Stuart Hastings - - * gcc/config/i386/i386.c (ix86_expand_call, x86_output_mi_thunk): - Trivial fixes for i386.c on Darwin/x86. - -2003-12-19 Fariborz Jahanian - - * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): Add code to - recognize macho-style lo_sum adrress patterns. - -2003-12-19 Kazu Hirata - - * dwarfout.c: Remove uses of "register" specifier in - declarations of arguments and local variables. - * gensupport.c: Likewise. - * local-alloc.c: Likewise. - * regclass.c: Likewise. - -2003-12-19 Kelley Cook - - * config.guess: Remove. - -2003-12-19 Jakub Jelinek - - * config/ia64/unwind-ia64.c (ia64_copy_rbs): New function. - (unw_access_gr): Only call ia64_rse_rnat_addr if addr is above - regstk_top. - (uw_frame_state_for): Handle locations inside bundles. - (uw_init_context_1): Initialize context->rnat. - Set context->regstk_top to lowest rbs address which has nat collection - in context->rnat. - (uw_install_context): Fix rnat restoring. - Restore ar.rsc to previous state. - * config/ia64/linux.h (MD_FALLBACK_FRAME_STATE_FOR, - MD_HANDLE_UNWABI): Handle unwinding through SA_ONSTACK frames. - -2003-12-19 Jakub Jelinek - - PR c++/13239 - * builtins.c (expand_builtin_expect_jump): Update - TREE_VALUE (arglist) if unsave_expr_now langhook - created a new tree. - -2003-12-19 Richard Earnshaw - - * arm.c (thumb_base_register_rtx_p): Use regno in comparison against - FIRST_PSEUDO_REGISTER. - -2003-12-18 Hartmut Penner - - * gcc/config/rs6000/rs6000.c (USE_ALTIVEC_FOR_ARG_P): Don't check - for SVR4 ABI. - -2003-12-18 Geoffrey Keating - - * config/rs6000/aix.h (OS_MISSING_POWERPC64): Define. - (OS_MISSING_ALTIVEC): Define. - * config/rs6000/darwin.h (ASM_SPEC): Be generous about supplying - -force_cpusubtype_ALL. - * config/rs6000/rs6000.c (rs6000_override_options): Rearrange - CPU information table; now always set all CPU-specific values. - Also, use Altivec and powerpc64 when chip and OS supports them. - -2003-12-18 Geoffrey Keating - - * fixinc/inclhack.def (darwin_macho_dyldh): New. - * fixinc/fixincl.x: Regenerate. - -2003-12-18 Dara Hazeghi - - * version.c (version_string): Renumber as 3.4.0 - * doc/include/gcc-common.texi: Likewise - -2003-12-18 Richard Henderson - - * genrecog.c (print_host_wide_int): New. - (write_switch, write_cond): Use it. - -2003-12-18 Richard Henderson - - * c-decl.c (check_bitfield_type_and_width): Remove enum special - case suppression of pedwarn. - * system.h (ENUM_BITFIELD): Use __extension__. - (CHAR_BITFIELD): Likewise. - -2003-12-18 Ulrich Weigand - Mark Dettinger - - * config/s390/s390.md (UNSPEC_SRST): New constant. - ("strlendi", "strlensi"): New expanders. - ("*strlendi", "*strlensi"): New insns. - -2003-12-18 Mark Mitchell - - * config/sol2.h (LINK_ARCH32_SPEC): Define in terms of ... - (LINK_ARCH32_SPEC_BASE): ... this new macro. - * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC): Define in terms of - ... - (LINK_ARCH64_SPEC_BASE): ... this new macro. - * config/sparc/sol2-gld-bi.h (LINK_ARCH32_SPEC): New macro. - (LINK_ARCH64_SPEC): Likewise. - -2003-12-18 Jason Merrill - - PR middle-end/13234 - * tree-dump.c (dequeue_and_dump): Handle 'r' and 's' code - classes. - -2003-12-18 Steven Bosscher - - * Makefile.in (tracer.o, bb-reorder.o): Depend on timevar.h - * toplev.c (rest_of_handle_reorder_blocks, rest_of_handle_tracer): - Don't push and pop TV_REORDER_BLOCKS timevars, do it... - * bb-reorder.c (reorder_basic_blocks): ...here, and... - * tracer.c (tracer): here. - -2003-12-18 Ulrich Weigand - - * loop.c (move_movables): Handle combination of m->consec, - m->move_insn_first, and m->insert_temp all nonzero correctly. - -2003-12-18 Kazu Hirata - - * calls.c (load_register_parameters): Don't use - LOAD_ARGS_REVERSED. - * system.h (LOAD_ARGS_REVERSED): Poison. - * doc/tm.texi (LOAD_ARGS_REVERSED): Remove. - -2003-12-17 Per Bothner - - * emit-rtl.c (set_new_first_and_last_label_num): Remove function. - * rtl.h (set_new_first_and_last_label_num): Remove declaration. - -2003-12-17 Alexandre Oliva - - * config/frv/frv.c (frv_ifcvt_modify_insn): Don't leave alone - scratch insns of the then branch that clobber regs needed by the - else branch. - -2003-12-17 Kazu Hirata - - * calls.c (expand_call): Update comments. - * system.h (PRETEND_OUTGOING_VARARGS_NAMED): Poison. - * targhooks.c: Do not refer to PRETEND_OUTGOING_VARARGS_NAMED. - -2003-12-17 James E Wilson - Roger Sayle - - * Makefile.in (gcse.o): Add $(TREE_H) to dependencies. - * gcse.c: Include tree.h. - (implicit_set_cond_p): New. - (find_implicit_sets): Call it. - -2003-12-17 Santiago Vila - - * config/kfreebsdgnu.h (TARGET_OS_CPP_BUILTINS): Rename from - TARET_OS_CPP_BUILTINS. - -2003-12-16 Kazu Hirata - - * emit-rtl.c: Fix signed/unsigned comparison warnings. - -2003-12-17 Joseph S. Myers - - * predict.c (struct block_info_def, struct edge_info_def): Change - bit-fields of width 1 to unsigned int. - -2003-12-16 Geoffrey Keating - - PR 12480 - * c-pch.c (pch_init): Improve error message when precompiled - header can't be written. - - PR 12606 - * c-pch.c (pch_init): Make a PCH file appear invalid while it's - being written. - (c_common_write_pch): Make it valid once it's done. - -2003-12-17 Ulrich Weigand - - PR target/11992 - * config/s390/s390.md ("*cmpmem_long_64"): Use CLCLE instruction - instead of CLCL. - ("*cmpmem_long_31"): Likewise. - -2003-12-17 Vladimir Makarov - - * config/ia64/ia64.c: Add more comments about insn bundling. - -2003-12-17 Richard Earnshaw - - PR optimization/10592 - * caller-save.c (mark_referenced_regs): Don't short-circuit a reg - or subreg in SET_DEST if it isn't a hard register. - -2003-12-17 David Edelsohn - - * collect2.c (main): Add -fno-profile-arcs -fno-test-coverage - -fno-branch-probabilities to arguments when compiling ctors and - dtors. - -2003-12-17 Eric Botcazou - - * config/sparc/sol2.h: Set SUPPORTS_INIT_PRIORITY to 0. - * config/sparc/sol2-gld.h: Set SUPPORTS_INIT_PRIORITY to 1. - -2003-12-17 Richard Earnshaw - - * arm.c (thumb_base_register_rtx_p): Don't allow virtual registers - as base registers for sub-word operations. - (thumb_legitimate_address_p): Simplify REG+REG test. - -2003-12-17 Segher Boessenkool - - * opts.c (wrap_help): Fix overflow. - -2003-12-17 Fred Fish - - * configure.in: Remove code to examine linker scripts and set - HAVE_MIPS_LIBGLOSS_STARTUP_DIRECTIVES. - * configure, config.in: Regenerate. - -2003-12-16 Mark Mitchell - - PR c++/12218 - * varasm.c (initializer_constant_valid_p): Allow a conversion from - an integral constant to an OFFSET_TYPE. - -2003-12-16 Kazu Hirata - - PR target/11012 - * config/m32r/m32r.c (gen_compare): Call gen_addsi3 instead of - gen_cmp_ne_small_const_insn. - * config/m32r/m32r.md (cmp_ne_small_const_insn): Remove. - -2003-12-17 Neil Booth - Joseph S. Myers - - PR c/3347 - * c-decl.c (enum_decl_context): Remove BITFIELD. - (grokdeclarator): Take bit-field width as an input. - Perform bit-field width validation with - check_bitfield_type_and_width rather than waiting for - finish_struct. - (groktypename, groktypename_in_parm_context, start_decl, - push_parm_decl, grokfield, start_function): Update calls to - grokdeclarator. - (check_bitfield_type_and_width): New function. - (finish_struct): Move bit-field validation to grokdeclarator - and check_bitfield_type_and_width. - -2003-12-16 John David Anglin - - PR bootstrap/13386 - * configure.in (gcc_cv_ld_hidden): Set to yes on hppa64*-*-hpux* when - using HP native linker. - * configure: Rebuilt. - -2003-12-16 Mark Mitchell - - PR c++/13275 - * c-common.h (enum rid): Add RID_OFFSETOF. - * c-parser.in (rid_to_yy): Ignore RID_OFFSETOF. - * ginclude/stddef.h (offsetof): Reimplement for C++, using - __offsetof__. - * doc/extend.texi: Document __offsetof__. - -2003-12-16 Stan Cox - - * config/iq2000/iq2000.h: Formatting. - (MAX_INT_TYPE_SIZE, MAX_INT_TYPE_SIZE, CONST_COSTS, RTX_COSTS) - (ADDRESS_COST, ASM_OUTPUT_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL) - (IMPLICIT_FIX_EXPR, EASY_DIV_EXPR, SLOW_ZERO_EXTEND): Remove - * config/iq2000/iq2000.c: Formatting. - (iq2000_rtx_costs): New. - -2003-12-16 Richard Earnshaw - - * arm.md (addsi3_carryin_shift): Add missing register constraints. - -2003-12-16 Loren James Rittle - - * testsuite/g++.old-deja/g++.eh/badalloc1.C: Tweak to - pass with -pthread on FreeBSD systems. - -2003-12-16 Richard Sandiford - - * config/mips/mips.c (mips_file_end): Only write symbols that have - been referenced at some point. - -2003-12-16 Richard Sandiford - - * config/mips/mips.c: Include langhooks.h - (mips_build_builtin_va_list): Use lang_hooks.types.make_type. - -2003-12-16 Eric Botcazou - - PR optimization/13313 - * combine.c (make_extraction) [REG]: Do not use - gen_lowpart_for_combine when POS is non-zero. - -2003-12-16 Hartmut Penner - - * altivec.h (vec_cmple, vec_all_numeric): Fix typo. - * testsuite/gcc.dg/altivec-10.c: Test for above. - -2003-12-15 David O'Brien - - * Makefile.in (CPPFLAGS): Initialize from configure. - -2003-12-15 Roger Sayle - - PR middle-end/13400 - * ifcvt.c (noce_process_if_block): Disable unconditional write - optimizations if we could introduce a store to trapping memory - that wasn't present previously. - -2003-12-15 Kazu Hirata - - * system.h (DEFAULT_CALLER_SAVES): Poison. - * toplev.c (flag_caller_saves): Always initialize with 0. - * doc/tm.texi (DEFAULT_CALLER_SAVES): Remove. - -2003-12-15 Kazu Hirata - - * flow.c (EXIT_IGNORE_STACK): Move to ... - * defaults.h (EXIT_IGNORE_STACK): ... here. - * dojump.c (clear_pending_stack_adjust): Don't use #ifdef - EXIT_IGNORE_STACK. - * function.c (expand_function_end): Likewise. - * global.c (global_alloc): Likewise. - * ra.c (init_ra): Likewise. - * reload1.c (init_elim_table): Likewise. - * reorg.c (fill_simple_delay_slots): Likewise. - * resource.c (init_resource_info): Likewise. - * doc/tm.texi (EXIT_IGNORE_STACK): Document that the default - is 0. - -2003-12-15 J"orn Rennecke - - * reload.c (reg_overlap_mentioned_for_reload_p): - When looking at a PLUS in X, avoid spuriously returning nonzero - when IN is a REG or another simple PLUS, or a MEM containing one. - - * loop.c (loop_invariant_p): Amend comment about where new registers - might come from. - -2003-12-15 Andreas Jaeger - - * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Remove - handling of obsolete language CHILL. - -2003-12-15 Waldek Hebisch - - * tree.c (initializer_zerop): Add test for empty set. - * integrate.c (function_cannot_inline_p): Forbid inlining - functions calling `longjmp'. - -2003-12-15 Nathan Sidwell - - PR c++/11773 - * doc/gcov.texi (Gcov and Optimization): Document inline function - behaviour. Fix some file suffixes. - -2003-12-14 David O'Brien - - * config/i386/i386.h (__amd64, __amd64__): Remove duplicates. - -2003-12-14 Mark Mitchell - - * c-common.h (c_parse_error): Declare it. - * c-common.c (c_parse_error): New function. - * c-parse.y (yyerror): Use it. - -2003-12-14 John David Anglin - - PR target/13054 - * pa-protos.h (indexed_memory_operand, borx_reg_operand, - move_dest_operand, move_src_operand): New protypes. - (basereg_operand, move_operand, reg_or_nonsymb_mem_operand): Deleted. - * pa.c (copy_reg_pointer, indexed_memory_operand, move_dest_operand, - move_src_operand): New functions. - (basereg_operand, reg_or_nonsymb_mem_operand, move_operand): Delete. - (reg_or_0_or_nonsymb_mem_operand): Return false for unscaled indexed - address until cse is not expected on targets with non-equivalent - space registers. - (hppa_legitimize_address): Canonicalize unscaled indexed addresses - on targets non-equivalent space registers. - (emit_move_sequence): Break out indexed addresses from destination - operand. Similarly, break out unscaled indexed addresses from - source operand on targets with non-equivalent space registers. Fix - REG_POINTER flag when possible. Mark register pointer when creating - new pointers. - (print_operand): Handle unscaled index addresses. - * pa.h (IS_INDEX_ADDR_P, IS_LO_SUM_DLT_ADDR_P): New macro subroutines - for EXTRA_CONSTRAINT. - (EXTRA_CONSTRAINT): Rework to make more readable. - (MODE_OK_FOR_SCALED_INDEXING_P, MODE_OK_FOR_UNSCALED_INDEXING_P): New - subroutines for GO_IF_LEGITIMATE_ADDRESS. - (GO_IF_LEGITIMATE_ADDRESS): Rework using new subroutines. Allow scaled - and unscaled addresses. Canonicalize unscaled indexed addresses on - targets with non-equivalent space registers. Document issues in - handling indexed address modes on PA-RISC. - (PREDICATE_CODES): Update for new and deleted predicates. - * pa.md (move_dest_operand, move_src_operand, indexed_memory_operand): - Use new predicates in move patterns. - Add peephole2 patterns to optimize floating point stores. Fix - constrain preferencing in move patterns. Delete patterns for handling - unscaled indexed memory loads. Add missing load and store with - base-register modification patterns. Correct SFmode floating point - store pattern. Add missing zero extension loads. - -2003-12-13 Steven Bosscher - - * ggc-zone.c (struct alloc_zone): Don't pre-declare, it already - comes in with ggc.h. Add a new bool field `dead'. - (destroy_ggc_zone): Don't destroy a zone at once. Instead, only - set the `dead' flag for the dead zone. Wrap a sanity check in - ENABLE_CHECKING. - (ggc_collect_1): Always mark and sweep if a zone has the `dead' - flag set. - (ggc_collect): Free dead zones after collecting. - -2003-12-13 Jan Hubicka - - * coverage.c (get_coverage_counts): Use inform instead of warning - about missing profile. - -2003-12-12 Steven Bosscher - - * Makefile.in (opts.o, explow.o): Depend on langhooks.h - -2003-12-12 Geoffrey Keating - - * config.gcc : Don't use fixproto. - : Likewise. - -2003-12-12 Jakub Jelinek - - * config/ia64/linux.h (IA64_GATE_AREA_END): Increase by 64K. - (MD_FALLBACK_FRAME_STATE_FOR): Set fpsr_loc, br_loc[6] and - br_loc[7]. Update comment. - (MD_HANDLE_UNWABI): Define. - * config/ia64/unwind-ia64.c (struct unw_state_record): Add - unwabi field. - (struct _Unwind_Context): Increase br_loc array size to 8 entries. - (desc_abi): Set unwabi. - (uw_update_reg_address): Allow br up to 7. - (uw_update_context): Invoke MD_HANDLE_UNWABI if defined. - (uw_install_context): Load b1..b5 from correct locations. - Fix insn loading ar.fpsr. - * doc/tm.texi: Document MD_HANDLE_UNWABI. - -2003-12-12 Roger Sayle - - PR optimization/13037 - * loop.c (update_giv_derive): Ignore redundant sets of a biv when - calculating how to derive a giv from a biv. - -2003-12-12 Neil Booth - - PR preprocessor/12935 preprocessor/12952 preprocessor/13046 - * cpplib.c (prepare_directive_trad): Clear skipping only in - #if and #elif directives. - (do_undef): Call the handler even if the identifier is not a macro. - * cpptrad.c (scan_parameters): Emit an error message. - (_cpp_create_trad_definition): Remember the params list even on - failure. - -2003-12-11 Zack Weinberg - - * arm.c (ARM_ADDRESS_COST, THUMB_ADDRESS_COST): Convert macros - to inline functions: arm_arm_address_cost, arm_thumb_address_cost - respectively. - (arm_address_cost): Use 'em. - -2003-12-12 Rainer Orth - - * config/alpha/osf.h (TARGET_OS_CPP_BUILTINS): Define - __STDC_VERSION__ to ISO C94 for C++. - - * fixinc/inclhack.def (alpha_wchar): New fix. - * fixinc/fixincl.x: Regenerate. - * fixinc/tests/base/wchar.h: New file. - -2003-12-11 David Mosberger - - * unwind-libunwind.c (_Unwind_SetGR): Clear the NaT bit as - required by C++ ABI for Itanium. - * config/t-libunwind (LIB2ADDEH): Remove unwind-libunwind.c. - * config/t-libunwind-no-eh: New file. - * configure.in: Check libunwind for _Unwind_Resume() and if it's - present, set libunwind_has_eh_support to "yes". - * configure: Regenerate. - * config.gcc (ia64*-*-linux*): If $libunwind_has_eh_support is - set to yes, use t-libunwind, otherwise, use t-libunwind-no-eh. - -2003-12-11 Richard Sandiford - - * config/mips/mips.c (mips_global_pointer): Force functions with - a nonlocal goto to set up $gp. - -2003-12-11 James E Wilson - - PR target/13132 - * function.c (gen_mem_addressof): When no decl, explicitly clear flag - bits. - -2003-12-12 Nick Clifton - - * config/m32r/m32r.c: Convert to ISO-C - -2003-12-12 Kazuhiro Inaoka - - * doc/invoke.texi: Replace Mitsubishi with Renesas. - * config/m32r/m32r.h: Ditto. - * config/m32r/m32r.c: Ditto. - * config/m32r/m32r.md: Ditto. - -2003-12-11 Steven Bosscher - - * basic-block.h (BLOCK_HEAD, BLOCK_END): Remove. - (BLOCK_HEAD_TREE, BLOCK_END_TREE): Remove. - (basic_block_def): Rename `head' to `head_' and `end' to `end_'. - (BB_HEAD, BB_END): New accessor macros for the `head_' and `end_' - fields of a basic block. - * bb-reorder.c, bt-load.c, caller-save.c, cfg.c, cfganal.c, - cfgbuild.c, cfgcleanup.c, cfglayout.c, cfgloop.c, cfgloopanal.c, - cfgloopmanip.c, cfgrtl.c, combine.c, conflict.c, df.c, emit-rtl.c, - final.c, flow.c, function.c, gcse.c, global.c, graph.c, - haifa-sched.c, ifcvt.c, lcm.c, local-alloc.c, loop-unswitch.c, - loop.c, postreload.c, predict.c, profile.c, ra-build.c, ra-debug.c, - ra-rewrite.c, ra.c, recog.c, reg-stack.c, regclass.c, regmove.c, - regrename.c, reload1.c, resource.c, sched-ebb.c, sched-rgn.c, - sibcall.c, tracer.c, config/frv/frv.c, config/i386/i386.c, - config/ia64/ia64.c: Use the BB_HEAD and BB_END macros instead of - accessing the `head' and `end' fields of a basic block directly. - - * gengtype.c: Teach about "void**" pointers and "void *" function - types. Fixes earlier commit. - -2003-12-10 Geoffrey Keating - - * doc/extend.texi (Vector Extensions): Document that bitwise - operations also work on vectors. - -2003-12-10 Richard Earnshaw - - * arm.md: New split patterns for optimizing bitfield accesses. - -2003-12-10 Steven Bosscher - - * README.Portability: Remove K+R section. - - * gengtype-lex.l: Teach about "void**" pointers and - "void*" function types. - -2003-12-10 Eric Botcazou - - PR target/13354 - * config/sparc/sparc.c (sparc_output_mi_thunk): Load DELTA - manually if one can do that with only one instruction. - -2003-12-10 Nick Clifton - - * config.gcc (arm-linux): Include linux.h in tm_file so that - LINUX_TARGET_OS_CPP_BUILTINS is defined. - * config/arm/linux-elf.h (LIB_SPEC): Protect the definition. - -2003-12-09 James E Wilson - - * rtl.def (CODE_LABEL, NOTE): Correct operand numbers in comments. - -2003-12-09 Matt Austern - - PR c/13134 - * c-decl.c (duplicate_decls): Copy visibility flag when appropriate. - -2003-12-09 Kazuhiro Inaoka - - * config/m32r/m32r.h: Add support for m32r2 processor. Including - a new command line option -m32r2 to select it. - * config/m32r/m32r.c: Add support for the new processor variant. - * config/m32r/m32r.md: Likewise. - * config/m32r/t-m32r: Add m32r2 multilibs. - * doc/invoke.texi: Document the new command line switch. - -2003-12-08 Kazu Hirata - - * defaults.h (LOCAL_REGNO): Give the default definition. - * flow.c (LOCAL_REGNO): Remove. - * reload1.c (LOCAL_REGNO): Likewise. - -2003-12-08 Geoffrey Keating - - PR target/11848 - * rs6000.h (CANNOT_CHANGE_MODE_CLASS): Allow change of mode - in floating-point registers between TFmode and DImode. - * rs6000.c (rs6000_emit_move): Split moves early. - (secondary_reload_class): Random Whitespace Change. - (rs6000_split_multireg_move): Support moves involving FP registers. - Emit instructions directly. - * rs6000-protos.h (rs6000_split_multireg_move): Update prototype. - * altivec.md: Update for changes to rs6000_split_multireg_move. - * rs6000.md: Update for changes to rs6000_split_multireg_move. - (movtf_internal): Support moves to/from GPRs. - -2003-12-08 Stuart Hastings - - * config/i386/i386.md: Typo in split of fp-valued if_then_else. - -2003-12-08 James E Wilson - - PR target/13132 - * expmed.c (extract_bit_field): Only call mode_for_size for scalar - integer modes. - -2003-12-08 Nathanael Nerode - - * doc/install.texi: Revert change of Dec 7; gcc is still a 2.13 - directory. - -2003-12-08 Alexandre Oliva - - * config/frv/frv.md (subdi2): Merge with _internal insn_and_split, - by using match_scratch. - (negdi2): New. - -2003-12-08 Jason Merrill - Daniel Berlin - - PR debug/11114 - Support namespaces in DWARF 2 output. - * dwarf2out.c (gen_namespace_die): New function. - (force_namespace_die, setup_namespace_context): New fns. - (declare_in_namespace): New fn. - (gen_decl_die): Call declare_in_namespace. Handle namespaces. - (dwarf2out_decl): Handle namespaces. - (scope_die_for): Pass through a namespace scope. - (class_scope_p): Rename to class_or_namespace_scope_p. - (gen_subprogram_die, gen_variable_die): Adjust. - (gen_struct_or_union_die): Always emit a declaration - if context_die is a namespace. - -2003-12-08 Jan Hubicka - - * unwind-pe.h (read_uleb128): Fix handling of large values - (read_sleb128): Fix handling of large values - -2003-12-08 Andrew Pinski - - PR middle-end/10060 - * emit-rtl.c (copy_rtx_if_shared): Split out into ... - (copy_rtx_if_shared_1): here and optimize the last one - in the sequence into tail-recursion. - (reset_used_flags): Optimize the last one - in the sequence into tail-recursion. - -2003-12-08 Richard Earnshaw - - * arm.md: New split to transform ((X << y) - 1) into ~(~(X-1) << y) - for constant X. - -2003-12-08 Richard Sandiford - - * calls.c (expand_call): Don't try using tail or recursive calls - after the function body has been expanded. - -2003-12-08 Jan Hubicka - - * i386.md (cmpstr expander): Obey TARGET_INLINE_ALL_STRINGOPS - -2003-12-08 Arnaud Charlet - - PR ada/13324, PR ada/12614 - * doc/install.texi: Update requirements for building Ada. - -2003-12-07 David Edelsohn - Graham Reed - - * collect2.c (GCC_OK_SYMBOL): Add support for AIX C_WEAKEXT. - (GCC_UNDEF_SYMBOL): Same. - -2003-12-07 Kazu Hirata - - * final.c (final_scan_insn): Don't use FINAL_PRESCAN_LABEL. - * system.h (FINAL_PRESCAN_LABEL): Poison. - * doc/tm.texi (FINAL_PRESCAN_LABEL): Remove. - -2003-12-07 Kaveh R. Ghazi - - * Makefile.in (compare): Combine toplevel and $(SUBDIRS) cases. - -2003-12-07 Nathanael Nerode - - * configure.in, aclocal.m4: Revert to pre-2.5x conversion status. - * configure: Regenerate with autoconf 2.13. - - * configure.in: Replace AC_INIT, AC_OUTPUT, AC_CANONICAL_SYSTEM - with modern equivalents. - * configure: Regenerate. - - * configure.in: Replace gcc_AC_CHECK_TYPE with AC_CHECK_TYPE. - * aclocal.m4 (gcc_AC_CHECK_TYPE): Remove. - * configure: Regenerate. - - * configure: Regenerate with (preferred) autoconf 2.57. - * doc/install.texi: Note that 'gcc' is now a 2.57 directory. - -2003-12-07 Eric Botcazou - - PR optimization/12965 - * caller-save.c (save_call_clobbered_regs): Do not save/restore - registers around no-return calls. - -2003-12-07 Nathanael Nerode - - * configure.in: Make minimum necessary changes for autoconf 2.5x. - * aclocal.m4: Make minimum necessary changes for autoconf 2.5x. - * configure: Regenerate with autoconf 2.58. - -2003-12-07 Eric Botcazou - - PR optimization/13318 - * loop.c (express_from): Protect integer division from overflow. - -2003-12-07 Eric Botcazou - - PR optimization/13060 - * function.c (fixup_var_refs_1) [SUBREG]: Recognize even if a - replacement already exists. Fix again the whole insn if that fails. - -2003-12-06 Andrew Pinski - - * config/rs6000/rs6000.c (macho_branch_islands): Use - HOST_WIDE_INT_PRINT_UNSIGNED. - -2003-12-06 Richard Sandiford - - * varasm.c (incorporeal_function_p): New. - (assemble_external): Use it as a filter. - * config/mips/mips.c (mips_output_external): Don't check for builtin - functions here. - -2003-12-06 Richard Earnshaw - - * arm.md (IOR (COMPARISON) (AND)): New define_splits. - -2003-12-06 Kelley Cook - - * Makefile.in (program_transform_cross_name): Delete. - (GCC_CROSS_NAME, CPP_CROSS_NAME): Delete. - (PROTOIZE_CROSS_NAME, UNPROTOIZE_CROSS_NAME): Delete. - (AR_FOR_TARGET, RANLIB_FOR_TARGET, NM_FOR_TARGET): Adjust for above. - (install_cpp, install_driver, install-man, uninstall): Likewise. - -2003-12-06 Alan Modra - - PR 13169 - * basic-block.h (PROP_ASM_SCAN): Define. - * final.c (regs_asm_clobbered): New array. - * regs.h (regs_asm_clobbered): Declare. - * flow.c (life_analysis): Init it. - (mark_set_regs): Set PROP_ASM_SCAN for asms. - (mark_set_1): Set regs_asm_clobbered. - * global.c (global_alloc): Don't set eliminable_regset when - regs_asm_clobbered. - -2003-12-05 Mark Mitchell - - * config/ia64/ia64.h (MUST_PASS_IN_STACK): Define. - - PR c++/13314 - * emit-rtl.c (set_mem_attributes_minus_bitpos): Robustify. - -2003-12-05 Andrew Pinski - - PR driver/13211 - * gcc.c (execute) Increment execution_count when returning - early because verbose_only_flag is true. - -2003-12-05 Per Bothner - - * cppfiles.c (file_hash_hash): New static function. - (hash_string_eq): Renamed static function to file_hash_eq. - (_cpp_init_files): Create file_hash table with above callbacks. - (cpp_included): Must use htab_find_with_hash insead of htab_find. - (_cpp_find_find, make_cpp_dir): Must use htab_find_slot_with_hash. - -2003-12-05 Per Bothner - - * line-map.h (source_location): New typedef. - (fileline): Redefined as source_location. - (struct line_map, linemap_add, linemap_lookup): Replace filefile - by source_location. - * line-map.c (linemap_add, linemap_lookup): Use source_location. - -2003-12-05 Richard Henderson - - * config/alpha/alpha.c (alpha_build_builtin_va_list): Add dummy - field to suppress -Wpadded warnings. - -2003-12-05 Stuart Hastings - - * config/rs6000/rs6000.md: Correct macro test of TARGET_MACHO. - -2003-12-05 Stuart Menefy - J"orn Rennecke - - PR target/13302 - * sh.c (sh_build_builtin_va_list): Use (*lang_hooks.types.make_type). - -2003-12-05 Roger Sayle - - * dojump.c (do_jump): If the expression being compared against - zero, is the subreg of a promoted variable, perform the comparison - in the promoted mode. - * simplify-rtx.c (simplify_unary_operation): Optimize sign and - zero-extensions of subregs of promoted variables where the - extension is identical to that used to promote the variable. - -2003-12-05 Hans-Peter Nilsson - - PR target/13256 - * resource.h (enum mark_resource_type): Remove member MARK_DEST. - The only user changed as follows: - * resource.c (mark_set_resources) : Always recurse for - SET_SRC (x). - : Always recurse on - operands. - : Delete, deferring to default code. - -2003-12-05 Waldek Hebisch - - * stmt.c (expand_nl_goto_receiver): Copy hard register clobbers - and ASM_INPUT barrier from expand_builtin_setjmp_receiver. - -2003-12-05 Richard Sandiford - - * config/mips/mips.c (mips_expand_call): Don't allow laziy binding - for n32 & n64 abicalls. - -2003-12-05 Richard Sandiford - - PR bootstrap/13145 - * config/mips/mips.h (FIRST_PSEUDO_REGISTER): Adjust comment. - * config/mips/mips.c (mips_reg_names, mips_sw_reg_names): Add $fcall. - (mips_load_got): Always create a constant MEM. - (mips_expand_call): Use load_callsi and load_calldi. - * config/mips/mips.md (UNSPEC_LOAD_CALL, FAKE_CALL_REGNO): New consts. - (load_callsi, load_calldi): New patterns. - -2003-12-05 Peter Gerwinski - - * tree.def (PLACEHOLDER_EXPR): Clarify commentary. - -2003-12-05 Steven Bosscher - - * config/d30v/d30v-protos.h , config/d30v/d30v.c, - config/dsp16xx/dsp16xx-protos.h, config/dsp16xx/dsp16xx.c, - config/fr30/fr30-protos.h, config/fr30/fr30.c, - config/i370/i370-protos.h, config/i370/i370.c, - config/i960/i960-protos.h, config/i960/i960.c, - config/ip2k/ip2k-protos.h, config/ip2k/ip2k.c, - config/m32r/m32r-protos.h, config/m32r/m32r.c, - config/mn10300/mn10300-protos.h, config/mn10300/mn10300.c, - config/ns32k/ns32k-protos.h, config/ns32k/ns32k.c: - Convert to ISO C90 function declarations and definitions. - -2003-12-05 Eric Botcazou - - * doc/extend.texi (Constructing Calls): Add warning about - the limitations of the functions. - -2003-12-05 Eric Botcazou - - PR middle-end/11151 - * function.h (struct function): New field 'x_naked_return_label'. - * function.c (free_after_compilation): Set it to NULL. - (expand_function_end): Emit 'naked_return_label' if it exists. - * rtl.h (expand_naked_return): Declare. - * stmt.c (expand_naked_return): New function to generate a - jump to 'naked_return_label'. - * builtins.c (expand_builtin_return): Call expand_naked_return - instead of expand_null_return. - * config/sparc/sparc.md (untyped_return): Likewise. - -2003-12-04 Andrew Pinski - - PR target/11322 - * config/sh/netbsd-elf.h (NO_PROFILE_COUNTERS): Define. - - PR target/12467 - * config/rs6000/altivec.md (altivec_vmsummbm): Fix typo. - -2003-12-04 Stuart Hastings - - * rs6000.c (output_call, macho_branch_islands, - add_compiler_branch_island, no_previous_def, get_previous_label) - Revisions of xx_stub functions for branch islands, - add -fPIC support for Darwin. - * rs6000-protos.h (output_call) Prototype. - * rs6000.md Use output_call. - * invoke.texi Explain Darwin semantics of -longcall. - * testsuite/gcc.dg/darwin-abi-1.c Revise testcase for -longcall/jbsr. - -2003-12-04 Richard Henderson - - * config/i386/i386.md (addqi3_carry): Use q not r constraints. - (subqi3_carry): Likewise. - -2003-12-04 J"orn Rennecke - - PR optimization/13260 - * sh-protos.h (sh_expand_t_scc): Declare. - * sh.h (PREDICATE_CODES): Add cmpsi_operand. - * sh.c (cmpsi_operand, sh_expand_t_scc): New functions. - * sh.md (cmpsi): Use cmpsi_operand. If T_REG is compared to - something that is not a CONST_INT, copy it into a pseudo register. - (subc): Fix description of new T value. - (slt, sgt, sge, sgtu): Don't clobber T after rtl generation is over. - (sltu, sleu, sgeu): Likewise. - (seq, sne): Likewise. Use sh_expand_t_scc. - -2003-12-04 Nathanael Nerode - - * configure.in: Generalize the CONFIG_HEADERS pattern under which - we stamp cstamp-h. - * configure: Regenerate. - - * configure.in: Pull AC_CHECK_HEADER call out of shell if statement - to avoid trouble when updating to autoconf 2.5x. - * configure: Regenerate (with autoconf 2.13 still). - -2003-12-04 J"orn Rennecke - - * sh.md (truncdiqi2): Use andi opcode for immediate. - (reload_outdf+1,reload_outdf+2): Remove constraints. - (movv16sf_i): Fxi multiplier for SUBREG_BYTE. - (movv8qi_i+2): Zero-extend low byte before adding it to high byte. - (fipr, ftrv): Add .s suffix to opcode. - -2003-12-04 Richard Sandiford - - PR target/13186 - - Revert all of the following patch, except the addition of - hook_bool_machine_mode_true: - - 2003-11-02 Richard Sandiford - - * Makefile.in (targhooks.o, reload.o): Update dependencies. - (GTFILES): Add targhooks.c. - (gt-targhooks.h): New rule; depend on s-gtype. - * target.h (direct_pool_load_p): New hook. - * target-def.h (TARGET_DIRECT_POOL_LOAD_P): New macro. - (TARGET_INITIALIZER): Include it. - * targhooks.h (default_direct_pool_load_p): Declare. - (hook_bool_machine_mode_true): Declare. - * targhooks.c: Include insn-config.h, recog.h, ggc.h and - gt-targhooks.h. - (pool_symbol): New variable. - (default_direct_pool_load_p): New function. - (hook_bool_machine_mode_true): New function. - * reload.c: Include target.h. - (find_reloads): If an alternative will force a constant into memory, - count an extra reload if constant pool symbols are not valid - addresses. If an alternative uses memory to move values between - registers, count the move as two reloads rather than one. - * config/s390/s390.c (TARGET_DIRECT_POOL_LOAD_P): Define. - * doc/tm.texi (TARGET_DIRECT_POOL_LOAD_P): Document. - -2003-12-03 Mark Mitchell - - * config/ia64/hpux.h (TARGET_HAVE_TLS): Define it to false. - * config/ia64/ia64.h (TARGET_HAVE_TLS): Define it to true if - HAVE_AS_TLS is true. - * config/ia64/ia64.c (TARGET_HAVE_TLS): Do not define it. - -2003-12-03 James E Wilson - - * gcc.c (init_spec): Pass -lunwind to init_gcc_specs in eh_name. - - * gcc-page.c (extra_order_size_tab): Correct comment. - -2003-12-03 Kazu Hirata - - * config/h8300/h8300.c (push): Call gen_push_h8300hs_advanced - instead of gen_push_h8300hs. - (pop): Call gen_pop_h8300hs_advanced instead of - gen_pop_h8300hs. - * config/h8300/h8300.h (TRAMPOLINE_SIZE): Use Pmode. - * config/h8300/h8300.md (*tablejump_h8300hs_advanced): - Tighten the predicate. - (*tablejump_h8300hs_normal): Tighten the predicate. - (push_h8300hs): Change to - push_h8300hs_advanced. - (pop_h8300hs): Change to pop_h8300hs_advanced. - -2003-12-03 Eric Christopher - - * rtl.c: Fix typo. - * config/mips/mips.h: Ditto. Fix formatting. - -2003-12-04 Ben Elliston - - * future.options: Remove. Move to gnu.org web pages. - -2003-12-03 Eric Christopher - - * c-parse.in (c_in_iteration_stmt, c_in_case_stmt): Move - from here... - * c-tree.h: to here. - -2003-12-03 Jan Hubicka - - PR optimization/12324 - * toplev.c (rest_of_decl_compilation): Do not deffer when compiling - in unit-at-a-time mode. - -2003-12-03 Jakub Jelinek - - * expr.c (store_constructor): Only set RTX_UNCHANGING_P for - read-only field if cleared is 0. - -2003-12-03 Nathanael Nerode - - * config.gcc: Mark obsolete targets for GCC 3.4. - -2003-12-03 Zack Weinberg - - * aclocal.m4 (AM_ICONV): Add explicit check for iconv.h. - * config.in, configure.in: Regenerate. - * cpphash.h: Check both HAVE_ICONV and HAVE_ICONV_H before - including iconv.h. - -2003-12-03 Alan Modra - - PR target/11229 - * cse.c (cse_insn): Set classp using src_const_elt if - src_eqv_elt is NULL. - -2003-12-03 Richard Earnshaw - - * gcse.c (reg_clear_last_set): New function. - (reg_set_info): If data is non-null, treat it as an sbitmap of - registers, set the bit for the register being set. - (compute_store_table): Allocate last_set_in with xcalloc. Do not - memset this array on each iteration. Pass reg_set_in_block[bb->index] - to note_stores while computing last_set_in instead of scanning - last_set_in after the first pass through the insns. - Clear last_set_in using reg_clear_last_set instead of explicitly - rescanning after each insn. If checking is enabled, assert that - last_set_in is completely zeroed after each bb has been processed. - -2003-12-02 Geoffrey Keating - - * df.c (df_uses_record) : The argument of a MEM is read-only, - never read-write. - : Delete incorrect comment. - : Remove 'use_flags' variable. - -2003-12-03 David Edelsohn - - * function.c (assign_parms): Make sure parm PARALLEL combined - in reg is composed of more than one object and the mode really - produces a reg. - -2003-12-03 Jan Hubicka - - * i386.c (classify_argument): Make it 64bit clean. - -2003-12-02 Richard Sandiford - - * config/mips/mips.c (mips_output_external): Replace checks for - specific builtin-in functions with a check for DECL_BUILTIN_IN. - -2003-12-02 Richard Henderson - - * rtl.h (PUT_CODE, PUT_MODE): Remove ENUM_BITFIELD cast. - * tree.h (TREE_SET_CODE): Likewise. - * recog.h (struct insn_operand_data): Move const after ENUM_BITFIELD. - -2003-12-02 Ben Elliston - - * dbxstclass.h: Rename from this .. - * xcoff.h: .. to this. - * xcoffout.c: Include xcoff.h. - -2003-12-01 Kaveh R. Ghazi - - * Makefile.in (GCC_CFLAGS): Add -Wold-style-definition. - -2003-12-01 James Lemke - - * config/arm/arm.c (arm_rtx_costs): Improve for xscale multiply. - -2003-12-01 Roger Sayle - - PR optimization/11634 - * recog.c (split_insn): Factor test of INSN_P and handling of - set_noop_p out of here into the two callers. - (split_all_insns): Add INSN_P test and set_noop_p handling here. - If deleting a no-op set after reload that has a REG_UNUSED note, - mark the basic block as changed and recalculate life information. - (split_all_insns_noflow): Add INSN_P test and set_noop_p handling - here. - -2003-12-01 Roger Sayle - - PR optimization/12322 - * gcse.c (struct ls_expr): Change type of hash_index from int to - unsigned int. - (hash_expr): Document hash_table_size parameter and wrap long line. - (ldst_entry): Calculate expression's hash_index and record in ptr. - (trim_ld_motion_mems): Use hash_index to search a single bucket - instead of scanning the entire hash_table. Remove the "del" local - variable and use the equivalent "expr == 0" instead. Change last - to be a pointer to the pointer to the current element, to simplify - and speed-up deleting from a linked list. - -2003-12-01 James E Wilson - - * doc/contrib.texi: Update David Mosberger. - - * doc/c-tree.texi (CONSTRUCTOR): Clarify element order and handling - of missing fields. - - PR target/8407 - * config/ia64/ia64.c (ia64_function_arg): For single-reg HFA, call - gen_rtx_REG to create new reg with argument mode. - -2003-12-01 Steven Bosscher - - * ggc.h (struct alloc_zone): Move forward declaration up. - (new_ggc_zone): New function prototype. - (destroy_ggc_zone): Ditto. - * ggc-simple.c (new_ggc_zone): New function, does nothing. - (destroy_ggc_zone): Ditto. - * ggc-page.c (new_ggc_zone): New function, does nothing. - (destroy_ggc_zone): Ditto. - * ggc-zone.c (struct page_entry): Fix comment. - (ggc_alloc_typed): Use a switch statement instead of ifs. - (new_ggc_zone): New function to set up a new GC zone. - (destroy_ggc_zone): New function to remove a GC zone. - init_ggc): Use new_ggc_zone to set up the default zones. - (ggc_collect): Walk a list of zones, instead of just the - default zones. Report statistics using the zone name. - -2003-12-01 Ulrich Weigand - - * unroll.c (find_splittable_givs): Add missing extend_value_for_giv. - -2003-12-01 Roger Sayle - - PR optimization/12628 - * toplev.c (rest_of_handle_jump_bypass): Call reg_scan. - * regclass.c (reg_scan): Include allocate_reg_info time in - TV_REG_SCAN. Minor clean-ups. - (reg_scan_update): Minor clean-ups. - -2003-12-01 Ulrich Weigand - - * config.gcc (s390x-ibm-tpf*): Add extra_parts. - -2003-12-01 James E Wilson - - * config/ia64/ia64.h (FUNCTION_ARG_REGNO_P): Use AR_REG_FIRST not - GR_ARG_FIRST. - -2003-12-01 Zack Weinberg - - * common.opt: Remove -fgnu-linker. - * flags.h: Remove flag_gnu_linker. - * opts.c: Don't handle OPT_fgnu_linker. - * toplev.c: Don't initialize flag_gnu_linker. - Remove gnu-linker entry from f_options. - * config/dsp16xx/dsp16xx.h (OPTIMIZATION_OPTIONS): - Don't reset flag_gnu_linker. - * config/mips/mips.c (override_options): Likewise. - * doc/invoke.texi: Remove all mention of -fgnu-linker. - -2003-12-01 Daniel Berlin - - * ggc-zone.c (ggc_pch_write_object): Calculate object size using - ggc_get_size (which accounts for large objects properly). - -2003-12-01 Jeff Sturm - - PR optimization/13024 - * toplev.c (rest_of_handle_new_regalloc): Remove rebuild_notes - parameter. - (rest_of_handle_old_regalloc): Likewise. Add rebuild_notes - declaration. Rebuild jump labels following local_alloc if necessary. - (rest_of_compilation): Remove rebuild_label_notes_after_reload - declaration. Don't pass rebuild_notes parameter to - rest_of_handle_new_regalloc and rest_of_handle_old_regalloc. - Don't rebuild jump labels. - -2003-12-01 Jeff Law - - * flow.c (count_or_remove_death_notes_bb): New. Extracted from - count_or_remove_death_notes. - (count_or_remove_death_notes): Use EXECUTE_IF_SET_IN_SBITMAP. - -2003-12-01 Andreas Krebbel - - * builtins.c (expand_builtin_longjmp): Added two memory clobbers. - -2003-12-01 Ulrich Weigand - - * reload.c (find_reloads_address): Split addresses of type - (plus (plus (reg) (reg)) (const_int)) only if one register - is either a valid base register or else one of the stack - frame related registers (sp/fp/ap). - -2003-12-01 Steven Bosscher - - * function.c (update_epilogue_consts): Don't use PARAMS. - * rtl.h (web_main): Ditto. - * target.h (is_costly_dependence): Ditto - -2003-12-01 Eric Botcazou - - PR middle-end/7847 - * expr.c (expand_expr) [normal_inner_ref]: When 'offset' is non-zero, - do not recheck that 'op0' is a MEM. Move comment. When testing for - unaligned objects, take also into account the alignment of 'op0' and - 'mode1' if 'op0' is a MEM. - -2003-12-01 Gabriel Dos Reis - - * doc/c-tree.texi (Function Bodies): Update HANDLER documentation. - -2003-12-01 Kelley Cook - - * doc/install.texi: Note that fastjar is built with automake 1.7.x - and autoconf 2.57. - -2003-12-01 Alan Modra - - * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Test - target_flags directly rather than using TARGET_* defines. - -2003-11-30 Ben Elliston - - * doschk.c: Remove. - -2003-11-30 Richard Sandiford - - PR target/12727 - * config/mips/mips.c (mips_save_reg): Fix frame information for sdc1 - on 32-bit big-endian targets. - -2003-11-30 Kazu Hirata - - * genemit.c (register_constraints): Remove. - -2003-11-30 Andreas Krebbel - - * config/s390/s390.md ("tmdi_reg", "tmsi_reg", "*movdi_64", "*movdi_31", - "iordi3"): Insns now use multiple letter constraints. - ("*movdi_lhi", "*movdi_lli", "*movdi_lay"): Insns deleted. They are now - covered by "*movdi_64". - ("*movsi_lhi", "*movsi_lli", "*movsi_lay"): Insns deleted. They are now - covered by "*movsi_zarch" and "*movsi_esa". - ("*movsi_zarch", "*movsi_!zarch"): New insns. - ("*llgt_sisi_split", "*llgt_didi_split"): Insns deleted. Now covered - by "*andsi3_zarch" and "anddi3". - ("*anddi3_ni"): Insn merged with "anddi3". - ("*andsi3_ni"): Insn merged with "*andsi3_zarch". - ("*andsi3_zarch", "*andsi3_esa"): New insns. - ("*iordi3_oi"): Insn merged with "iordi3". - ("*iorsi3_oi"): Insn merged with "*iorsi3_zarch". - ("*iorsi3_zarch", "*iorsi3_esa"): New insns. - - * config/s390/s390.c (s390_single_qi, s390_single_hi): Functions - merged to s390_single_part. - (s390_single_part): New function. - NOTE: Semantics have changed a bit. Now the value of the part must - be different from the others to get a non-negative return value. - (s390_extract_qi, s390_extract_hi): Functions merged to - s390_extract_part. - (s390_extract_part, s390_extra_constraint_str, - s390_const_ok_for_constraint_p): New functions. The L constraint got a - new meaning and the N constraint was added as a multiple letter - constraint. - (s390_extra_constraint): Function deleted. - (print_operand): New output modifier 'i' and 'j' added. - All uses of CONST_OK_FOR_LETTER_P were replaced by - CONST_OK_FOR_CONSTRAINT_P. - - * config/s390/s390-protos.h: Function prototypes adapted. - * doc/md.texi: Documentation for new constraint letters added. - -2003-11-30 Andreas Schwab - - * Makefile.in ($(DESTDIR)$(infodir)/%.info): Fix missing semicolon. - -2003-11-29 James E Wilson - - * gcc.c (init_spec): Pass -lunwind to init_gcc_specs in eh_name - instead of in shared_name. - - * final.c (final_start_function): Delete code for NON_SAVING_SETJMP. - * reload1.c (reload): Re-add it here. - -2003-11-30 Alan Modra - - * config/rs6000/rs6000.c (rs6000_elf_section_type_flags): Don't - set SECTION_WRITE on TARGET_RELOCATABLE. - -2003-11-29 Kazu Hirata - - * config/h8300/h8300.h (LIBCALL_VALUE): Use R0_REG. - -2003-11-28 Gunther Nikl - - * config/m68k/m68k.c (MOTOROLA): Move from here... - * config/m68k/m68k.h (MOTOROLA): ... to here. - (OUTPUT_JUMP): Use do {...} while (0). - * config/m68k/m68k.md: Replace #ifdef MOTOROLA with C statements. - -2003-11-28 Gunther Nikl - - * config.gcc (m68020-*-elf*, m68k-*-elf*, m68010-*-netbsdelf*, - m68k*-*-netbsdelf*, m68k-*-rtems*): Add tm_defines containing - MOTOROLA and USE_GAS. - * config/m68k/rtemself.h (MOTOROLA): Delete. - * config/m68k/netbsd-elf.h (MOTOROLA, USE_GAS): Delete. - * config/m68k/m68kelf.h (MOTOROLA, USE_GAS, SGS_CMP_ORDER): Delete. - -2003-11-29 Kazu Hirata - - * config/h8300/h8300.h (WORDS_BIG_ENDIAN): Update the comment. - -2003-11-29 Kelley Cook - - * Makefile.in (install-info): Install gccinstall.info too. - -2003-11-29 Ulrich Weigand - - * config/s390/s390.md ("cmpint_di"): Fix incorrect instruction lengths. - -2003-11-29 Ulrich Weigand - - * config/s390/s390.md ("movhi"): Do not emit extender pattern - when loading from a (MEM (ADDRESSOF ...)). - ("movqi"): Likewise. - -2003-11-29 Joseph S. Myers - - PR c/10333 - * c-parse.in (typespec_reserved_nonattr): Reject typeof on - bit-fields. - -2003-11-29 Richard Sandiford - - * stmt.c (expand_asm_operands): Check whether force_const_mem - succeeded. - -2003-11-28 Kaveh R. Ghazi - - * config/gnu.h (HURD_TARGET_OS_CPP_BUILTINS): New. - * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): New. - - * config/alpha/gnu.h, config/alpha/linux.h, - config/arm/linux-elf.h, config/cris/cris.h, config/cris/linux.h, - config/i370/linux.h, config/i386/gnu.h, config/i386/i386.h, - config/i386/linux-aout.h, config/i386/linux.h, - config/i386/linux64.h, config/ia64/linux.h, config/m68k/linux.h, - config/m68k/uclinux.h, config/mips/linux.h, - config/mn10300/linux.h, config/pa/pa-linux.h, - config/rs6000/sysv4.h, config/s390/linux.h, config/sh/linux.h, - config/sparc/linux.h, config/sparc/linux64.h, - config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Use - HURD_TARGET_OS_CPP_BUILTINS/LINUX_TARGET_OS_CPP_BUILTINS or ensure - all necessary assertions are included. - -2003-11-28 Jan Hubicka - - * emit-rtl.c (set_used_flags): New. - (verify_rtx_sharing, verify_rtl_sharing): New. - (unshare_all_rtl_1): Rename to.... - (unshare_all_rtl_in_chain): ... this one; make static. - (copy_rtx_if_shared): LABEL_REF chan be shared. - * ifcvt.c (unshare_ifcvt_sequence): New. - (noce_try_move, noce_try_store_flag, noce_try_store_flag_constants, - noce_try_addcc, noce_try_addcc, noce_try_store_flag_mask, - noce_try_cmove, noce_try_store_flag_mask, noce_try_minmax, - noce_try_abs, noce_process_if_block, find_cond_trap - * rtl.h (verify_rtl_sharing, set_used_flags, unshare_all_rtl_in_chain): - Declare. - -2003-11-28 Kazu Hirata - - * config/h8300/h8300.md: Fix a comment typo. - -2003-11-28 Kazu Hirata - - * config/h8300/h8300.md (*movsf_h8300h): Change to - *movsf_h8300hs. - (addsi_h8300): Change to *addsi_h8300. - (addsi_h8300h): Change to *addsi_h8300hs. - (subsi3_h8300): Change to *subsi3_h8300. - (subsi3_h8300h): Change to *subsi3_h8300hs. - (neghi2_h8300h): Change to *neghi2_h8300hs. - (negsi2_h8300h): Change to *negsi2_h8300hs. - -2003-11-28 Kazu Hirata - - * config/h8300/h8300.md (*subhi3_h8300): Remove '&' from the - constraint. - (*subhi3_h8300hs): Likewise. - -2003-11-28 David Edelsohn - - * config/rs6000/rs6000.h (MASK_MFCRF): New. - (TARGET_MFCRF): Test target_flags, not processor type. - (TARGET_SWITCHES): Add mfcrf and no-mfcrf. - Change Don't to Do not. - * config/rs6000/rs6000.c (processors_target_table): Add MASK_MFCRF - to power4, 970, G5. - -2003-11-27 J"orn Rennecke - - * cse.c (cse_set_around_loop): When changing a constant load - to a register -register copy, add a REG_EQUAL note. - -2003-11-27 Randolph Chung - John David Anglin - - * pa.c (hppa_profile_hook): Split gen_call_profiler into separate - insns. Use the regular call expander for the call to the profiler. - * pa.md (call_profiler): Delete. - (load_offset_label_address): New insn to load the address of the - current function for the profiler. - (lcla1, lcla2): New insns to output a code label and load its address. - -2003-11-27 Kazu Hirata - - * final.c (final_scan_insn): Remove commented-out code. - -2003-11-27 Nathanael Nerode - - * doc/install.texi: Remove ADAC reference and make accurate. - -2003-11-27 Kazu Hirata - - * config/h8300/h8300.h (FUNCTION_VALUE): Use R0_REG. - (FUNCTION_VALUE_REGNO_P): Likewise. - * config/h8300/h8300.md: Define R0_REG. - -2003-11-27 Kazu Hirata - - * config/h8300/h8300.c: Fix formatting. - * config/h8300/h8300.md: Likewise. - -2003-11-27 Kazu Hirata - - * config/h8300/h8300.h (ELIMINABLE_REGS): Update a comment. - -2003-11-27 Kazu Hirata - - * config/h8300/h8300.md: Give names to anonymous insns. - -2003-11-27 Kazu Hirata - - * config/h8300/h8300.md (extendqisi2): Remove constraints. - -2003-11-27 Gunther Nikl - - * doc/tm.texi (SYSROOT_HEADERS_SUFFIX_SPEC): Fix typo. - -2003-11-27 Eric Botcazou - - PR optimization/13041 - * final.c (frame_pointer_needed): Fix comment. - * reload1.c (reload): Decrease alignment of the frame - pointer if it was used for register allocation. - -2003-11-27 Eric Botcazou - - PR target/12900 - * reg-stack (move_for_stack_reg): New prototype. Return - whether a control flow insn was deleted. - (subst_stack_regs_pat): Likewise, using the information provided - by move_for_stack_reg. - (subst_stack_regs): Likewise, using the information provided - by subst_stack_regs_pat. - (convert_regs_1): Record whether a control flow insn was deleted, - using the information provided by subst_stack_regs. Purge dead - edges only if a control flow insn was deleted. - -2003-11-27 Eric Botcazou - - PR middle-end/8028 - PR middle-end/9890 - PR middle-end/11151 - PR middle-end/12210 - PR middle-end/12503 - PR middle-end/12692 - * builtins.c (expand_builtin_apply): Use virtual_outgoing_args_rtx - as the base address to copy the memory arguments to. - -2003-11-26 Danny Smith - - * config/i386/cygming.h (ASM_OUTPUT_DEF_FROM_DECLS): Declare - function aliases as functions. - -2003-11-26 Nathanael Nerode - - * aclocal.m4 (gcc_AC_PROG_GNAT): Rewrite to account for removal - of ADAC. - * configure: Regenerate. - - * Makefile.in: Remove references to ADAC. - - * configure.in: Remove check for whether ${ADAC} accepts -Wno-long-long. - * configure: Regenerate. - -2003-11-26 Eric Botcazou - Olivier Hainque - - PR target/6466 - * config/sparc/sparc-protos.h (compute_frame_size): New prototype. - (sparc_flat_compute_frame_size): Likewise. - (sparc_flat_save_restore): Move prototype... - * config/sparc/sparc.c (sparc_flat_save_restore): ...here. - (save_regs): New prototype. - (build_big_number): Likewise. - (apparent_fsize): Change type to HOST_WIDE_INT. - (actual_fsize): Likewise. - (frame_base_offset): Likewise. - (build_big_number): Add support for HOST_BITS_PER_WIDE_INT == 64. - Change string descriptor to HOST_WIDE_INT_PRINT_DEC. - [TARGET_ARCH64]: Use the sequence of sparc_emit_set_const64_longway - to load a 64-bit constant. - (sparc_nonflat_function_prologue): Change string descriptor to - HOST_WIDE_INT_PRINT_DEC. Change offset type to HOST_WIDE_INT. - (output_restore_regs): Change offset type to HOST_WIDE_INT. - (sparc_nonflat_function_epilogue): Change string descriptor to - HOST_WIDE_INT_PRINT_DEC. Use build_big_number. - (output_sibcall): Change size type to HOST_WIDE_INT. Use - build_big_number. Change string descriptor to HOST_WIDE_INT_PRINT_DEC. - (sparc_frame_info): Change types for several components. - (sparc_flat_compute_frame_size): Update types according to previous - change. - (sparc_flat_function_prologue): Change string descriptor to - HOST_WIDE_INT_PRINT_DEC. Change offset type to int. Use - build_big_number. - (sparc_flat_function_epilogue): Change offset type to int. - Rename 'size1' into 'reg_offset1'. Change string descriptor to - HOST_WIDE_INT_PRINT_DEC. Use build_big_number. Change big number - limit to 4096 instead of 4095. - - * config/sparc/sparc.c (mems_ok_for_ldd_peep): Change offset type to - HOST_WIDE_INT. - -2003-11-24 Waldek Hebisch - - * function.c: Make outer_function-chain external. - * function.h: Likewise. - -2003-11-24 Richard Sandiford - - * config.gcc (mips-sgi-irix6*): Add t-iris6gld to tmake_file when - using GNU ld. - * config/mips/iris6.h (IRIX6_STARTFILE_SPEC): New, taking the - whole of the previous STARTFILE_SPEC except crtbegin.o%s. - (IRIX6_ENDFILE_SPEC): Likewise ENDFILE_SPEC and crtend.o%s. - (STARTFILE_SPEC, ENDFILE_SPEC): Define in terms of the above. - (SUBTARGET_EXTRA_SPECS): Define. - * config/mips/iris6gld.h (LINK_SPEC): Change -init function - to __gcc_init and -fini function to __gcc_fini. - (STARTFILE_SPEC): Redefine, including irix6-crti.o before crtbegin.o. - (ENDFILE_SPEC): Likewise, including irix6-crtn.o after crtend.o. - (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP): Define. - * config/mips/t-iris6gld, - * config/mips/irix6-crti.asm, - * config/mips/irix6-crtn.asm: New files. - -2003-11-24 Eric Christopher - - PR C/13014 - * c-decl.c (c_in_iteration_stmt, c_in_case_stmt): New. - (start_function): Use. - (c_push_function_context): Ditto. - (c-pop_function_context): Ditto. - (language_function): Move... - * c-tree.h: ... here. Add x_in_iteration_stmt, and - x_in_case_stmt. - * c-parse.in (do_stmt_start, select_or_iter_stmt, stmt): Use - c_in_iteration_stmt, c_in_case_stmt for parser state. Move - check for valid break or continue statment here... - * c-semantics.c (genrtl_break_stmt, genrtl_continue_stmt): From - here. Change original errors to abort. - -2003-11-24 Jan Hubicka - - * fold-const.c (fold): Do not return early when optimizing - COMPONENT_REF and constant. - -2003-11-24 Kazu Hirata - - * config/h8300/h8300.md (tablejump_h8300): Change to - *tablejump_h8300. - (tablejump_h8300h): Change to *tablejump_h8300hs_advanced. - (tablejump_normal_mode): Change to *tablejump_h8300hs_normal. - (indirect_jump_h8300): Change to *indirect_jump_h8300. - (indirect_jump_h8300h): Change to - *indirect_jump_h8300hs_advanced. - (indirect_jump_normal_mode): Change to - *indirect_jump_h8300hs_normal. - -2003-11-24 Kazu Hirata - - * config/h8300/h8300.md: Remove constraints from expanders. - -2003-11-24 Kazu Hirata - - * config/h8300/h8300.md: (stm_h8300s_2): Change the name to - stm_h8300s_2_advanced. - (stm_h8300s_2_normal): New. - (stm_h8300s_2): Likewise. - (stm_h8300s_3): Change the name to stm_h8300s_3_advanced. - (stm_h8300s_3_normal): New. - (stm_h8300s_3): Likewise. - (stm_h8300s_4): Change the name to stm_h8300s_4_advanced. - (stm_h8300s_4_normal): New. - (stm_h8300s_4): Likewise. - (ldm_h8300s_2): Change the name to ldm_h8300s_2_advanced. - (ldm_h8300s_2_normal): New. - (ldm_h8300s_2): Likewise. - (ldm_h8300s_3): Change the name to ldm_h8300s_3_advanced. - (ldm_h8300s_3_normal): New. - (ldm_h8300s_3): Likewise. - (ldm_h8300s_4): Change the name to ldm_h8300s_4_advanced. - (ldm_h8300s_4_normal): New. - (ldm_h8300s_4): Likewise. - (two peephole2's): Enable only with !TARGET_NORMAL_MODE. - (two peephole2's): New. - -2003-11-24 Zdenek Dvorak - - * genattrtab.c (simplify_cond): Update indices correctly. - (attr_alt_subset_p, attr_alt_subset_of_compl_p, attr_alt_intersection, - attr_alt_union, attr_alt_complement, attr_alt_bit_p, mk_attr_alt): New. - (check_attr_test, encode_units_mask, compute_alternative_mask, - make_alternative_compare, simplify_and_tree, - attr_rtx_cost, simplify_test_exp, gen_attr, - write_test_expr, walk_attr_value): Handle EQ_ATTR_ALT. - * rtl.def (EQ_ATTR_ALT): New. - -2003-11-23 Zdenek Dvorak - - * genattrtab.c (strcmp_check, DEF_ATTR_STRING): New macros. - (length_str, delay_type_str, delay_1_0_str, num_delay_slots_str): - New variables. - (main): Initialize them. - (find_attr): Canonicalize the attribute name string. - (attr_rtx_1, copy_boolean, expand_delays, gen_unit): Always canonicalize - string arguments. - (attr_printf, attr_eq): Use DEF_ATTR_STRING. - (check_attr_test, check_attr_value, make_length_attrs, - write_length_unit_log, simplify_by_exploding, gen_attr, - write_test_expr, write_attr_value, write_eligible_delay, - write_complex_function, make_internal_attr, - write_const_num_delay_slots): Changed due to change of type of - find_attr. - (fill_attr, evaluate_eq_attr, simplify_and_tree, - attr_rtx_cost, simplify_by_exploding, walk_attr_value): Use - strcmp_check. - -2003-11-23 Kazu Hirata - - PR target/13122 - * config/h8300/h8300.c (push): Call push_h8300hs_normal in - normal mode. - (pop): Call pop_h8300hs_normal in normal mode. - * config/h8300/h8300.md: Likewise. - (pushqi1_h8300hs_normal): New. - (pushqi1): Call pushqi1_h8300hs_normal in normal mode. - (pushhi1_h8300hs_normal): New. - (pushhi1): Call pushhi1_h8300hs_normal in normal mode. - (push_h8300hs_normal): New. - (pop_h8300hs_normal): Likewise. - -2003-11-23 Zdenek Dvorak - - * genattrtab.c (count_sub_rtxs): Removed. - -2003-11-23 Richard Earnshaw - - * recog.c (preprocess_constraints): Only zero those elements of - recog_op_alt that are needed for this insn. - * arm.c (note_invalid_constants): A function can't contain invalid - constants if it has no constraints. - -2003-11-22 Jan Hubicka - - * i386.c (classify_argument): Pass __float128 in memory. - (ix86_return_in_memory): Likewise. - (ix86_libcall_value): Likewsie. - -2003-11-22 Kazu Hirata - - * config/h8300/h8300.c (dosize): Convert to ISO-C. - -2003-11-22 J"orn Rennecke - - * flow.c (update_life_info): Amend comment about when a register - can become dead. - -2003-11-21 Kelley Cook - - * doc/.cvsignore: Delete. - -2003-11-21 Daniel Berlin - David Edelsohn - - * dwarf2out.c (add_location_or_const_value_attribute): Add support - for PARALLEL. - -2003-11-21 Rainer Orth - - * config/mips/t-iris6 (CRTSTUFF_T_CFLAGS): Add -Wno-error. - (TARGET_LIBGCC2_CFLAGS): Define. - - * crtstuff.c [HAS_INIT_SECTION] (__do_global_dtors): Declare. - (__do_global_ctors): Likewise. - -2003-11-21 Mark Wielaard - - * doc/invoke.texi (-O2): Doesn't enable -fweb. - -2003-11-21 Kazu Hirata - - * doc/invoke.texi: Mention dV and dZ. - -2003-11-21 Kazu Hirata - - * doc/invoke.texi: Update dump file names. - Remove de, dW, and dX. - -2003-11-20 James E Wilson - - PR c/13133 - * reload1.c (reload): Delete special handling for setjmp. - -2003-11-21 Andreas Tobler - - * mklibgcc.in: Evaluate shlib_slibdir_qual during link - step too. - * config/t-slibgcc-darwin: Adjust install path. - * config/rs6000/t-darwin: Revert multilib matches since - it is not used on darwin. - -2003-11-20 Richard Henderson - - * ssa.c, ssa-dce.c, ssa-ccp.c: Remove files. - * Makefile.in (OBJS-common, GTFILES): Don't reference them. - (gtype-desc.o, toplev.o, flow.o): Remove ssa.h. - (ssa.o, ssa-dce.o, ssa-ccp.o): Remove. - * flow.c: Don't include ssa.h. - (set_phi_alternative_reg): Remove. - (calculate_global_regs_live): Don't call it. - (mark_used_regs): Don't handle PHI. - * gengtype.c (open_base_files): Don't reference ssa.h. - * rtl.def (PHI): Remove. - * timevar.def (TV_TO_SSA, TV_SSA_CCP, TV_SSA_DCE, TV_FROM_SSA): Kill. - * common.opt: Remove -fssa, -fssa-ccp, -fssa-dce. - * opts.c (common_handle_option): Likewise. - * toplev.c (f_options): Likewise. - (DFI_ssa, DFI_ssa_ccp, DFI_ssa_dce, DFI_ussa): Remove. - (dump_file): Update to match. - (flag_ssa, flag_ssa_ccp, flag_ssa_dce): Remove. - (rest_of_handle_ssa): Remove. - (rest_of_compilation): Don't call it. - * toplev.h (flag_ssa, flag_ssa_dce, flag_ssa_ccp): Remove. - * doc/invoke.texi: Remove -fssa, -fssa-ccp, -fssa-dce. - * doc/passes.texi (SSA optimizations): Remove. - -2003-11-20 Bob Wilson - - * configure.in: Add xtensa-*-* targets to test for dwarf2 debug_line. - * configure: Regenerate. - -2003-11-20 Kelley Cook - - * Makefile.in (Makefile): Pass along CONFIG_SHELL. - -2003-11-20 David Mosberger - - * config/t-libunwind (LIB2ADDEH): Add unwind-c.c. - (SHLIB_LC): Define. - * unwind-libunwind.c (_Unwind_GetCFA): Implement. - (_Unwind_GetBSP) [UNW_TARGET_IA64]: New function. - -2003-11-20 Fariborz Jahanian - David Edelsohn - - * calls.c (expand_call): Allocate new temp in pass1. - (store_one_arg): If PARALLEL, calculate excess using mode size of - rtvec elt. - * expr.c (emit_push_insn): If PARALLEL, calculate offset using - mode size of rtvec elt. - * function.c (assign_parms): Use parm in register, if available. - -2003-11-20 Kazu Hirata - - * config/h8300/lib1funcs.asm (MOVP): Remove. - (ADDP): Likewise. - (CMPP): Likewise. - -2003-11-20 Richard Earnshaw - - * arm.c (use_return_insn): New argument, SIBLING. Support returning - with a single instruction if the stack has been decremented by 4 - and we have a frame pointer. Update all callers. - (output_return_instruction): Likewise. - (arm_output_epilogue): Change argument to SIBLING. Calculate - really_return from the new argument. Update all callers. - * arm.h (USE_RETURN_INSN): Pass NULL for the sibling. - * arm.md (sibcall_epilogue): Call use_return_insn directly, and - pass the sibling call. - * arm-protos.h (use_return_insn, arm_output_epilogue): Update - prototypes. - -2003-11-20 Joseph S. Myers - - * Makefile.in (extraclean): Delete. - * configure.in (target_list): Remove extraclean. - * configure: Regenerate. - * doc/makefile.texi, doc/sourcebuild.texi: Update. - * objc/Make-lang.in (objc.extraclean): Delete. - -2003-11-20 Joseph S. Myers - - * Makefile.in (lang_checks): Add. - (check-c++, check-f77, check-java, check-g++, check-g77, - check-objc): Remove hardcoded targets. - * doc/sourcebuild.texi: Document testsuite hooks. - * objc/Make-lang.in (check-objc, lang_checks): Add. - -2003-11-19 Scott Snyder - - PR target/13131 - * dwarf2out.c (gen_array_type_die): DW_AT_declaration should be a - flag, not a constant. - -2003-11-19 Kelley Cook - - * config/arc/arc-protos.h: Update to C90 prototypes. - * config/arc/arc.c: Likewise. - * config/arc/initfini.c: Likewise. - -2003-11-19 Andreas Krebbel - - * stmt.c (expand_goto): Memory clobbers added. - -2003-11-19 Andreas Krebbel - - * reload.c (find_reloads): Added missing type casts. - -2003-11-19 James E Wilson - - * combine.c (sets_function_arg_p): Delete unused function. - -2003-11-19 Eric Christopher - - * reload1.c (reload): Revert 2 previous checkins. - -2003-11-19 Nathanael Nerode - - * cpptrad.c (_cpp_scan_out_logical_line): Improve test for - whether directive begins at the beginning of a line. - -2003-11-19 Richard Sandiford - - * config/frv/frv.c (frv_init_libfuncs): Correct ufix_optab entries. - -2003-11-19 Gerald Pfeifer - - * doc/install.texi (Specific): Remove information on old versions - of glibc versus old versions of GCC. - -2003-11-19 Richard SAndiford - - * emit-rtl.c (gen_lowpart): Don't force MEMs into a register unless - the register lowpart is a TRULY_NOOP_TRUNCATION. - -2003-11-19 Richard Henderson - - * config/i386/i386.c (print_reg): Handle QI and HI modes for - non Q regs. - -2003-11-19 Andreas Tobler - - * config/config.gcc (powerpc-*-darwin*): Add libgcc build - specification file. - * config/t-slibgcc-darwin: New file, libgcc build specification. - * config/t-darwin: Add libgcc2 flag -fPIC. - * config/rs6000/t-darwin: Multilib matches float. - * libgcc-darwin.ver: New file, contains libgcc symbols. - -2003-11-18 Nathanael Nerode - - * config/ns32k/ns32k.h: Remove obsolete comment. - -2003-11-18 Roger Sayle - - PR middle-end/11821 - * config/arm/arm.c (arm_rtx_costs_1): Improve estimate of the code - size for calls to libgcc's div & mod subroutines when using -Os. - -2003-11-18 Jan Hubicka - - * cgraph.c (change_decl_assembler_name): Avoid bogus warnings. - -2003-11-18 Marc Espie - - * config/rs6000/sysv4.h: OpenBSD hooks. - -2003-11-18 Richard Henderson - - * expr.c (expand_expr): Don't look through constant arrays if - they don't bind locally. - -2003-11-17 Richard Kenner - - * expr.c (convert_move): Use GET_MODE_PRECISION instead of bitsize - when seeing if truncation or extension. - -2003-11-17 Eric Christopher - - * reload1.c (reload): Fix previous change. - -2003-11-17 Scott Snyder - - PR debug/11325 - * dwarf2out.c (struct die_struct): Add die_definition field. - (add_AT_specification): New. - (gen_subprogram_die, gen_variable_die, - gen_struct_or_union_type_die): Use it. - (prune_unused_types_mark): If we're marking a forward declaration, - also mark the full definition, if it exists. - -2003-11-16 Nick Clifton - - * config/stormy16/stormy16.h (BUILD_VA_LIST_TYPE): Delete. - * config/stormy16/stormy16-protos.h (xstormy16_build_va_list): - Remove prototype. - * config/stormy16/stormy16.c (xstormy16_build_va_list): Rename - to xstormy16_build_builtin_va_list and make static. - (TARGET_BUILD_BUILTIN_VA_LIST): Define. - -2003-11-16 Kazu Hirata - - * config/h8300/h8300-protos.h: Add the prototype for - same_cmp_following_p. - * config/h8300/h8300.c (same_cmp_following_p): New. - * config/h8300/h8300.md (peephole2): Use it. - -2003-11-16 Kazu Hirata - - * config/h8300/h8300.md: Don't use REGNO when its operand is - not guaranteed to be a REG. - -2003-11-16 Richard Sandiford - - * Makefile.in (expr.o): Depend on $(TARGET_H). - * target.h (return_in_msb): New target hook. - * target-def.h (TARGET_RETURN_IN_MSB): New macro. - (TARGET_CALLS): Include it. - * calls.c (shift_returned_value): New function. - (expand_call): Use it. - * expr.c: Include target.h. - (copy_blkmode_from_reg): Check targetm.calls.return_in_msb when - deciding what padding is needed. Change the name of the local - padding variable from big_endian_correction to padding_correction. - * stmt.c (shift_return_value): New function. - (expand_return): Use it. Adjust memory->register copy in the same - way as copy_blkmode_from_reg. Only change the return register's - mode if it was originally BLKmode. - * doc/tm.texi (TARGET_RETURN_IN_MSB): Document. - * config/mips/mips.c (TARGET_RETURN_IN_MSB): Define. - (mips_fpr_return_fields): New, split out from mips_function_value. - (mips_return_in_msb, mips_return_fpr_pair): New functions. - (mips_function_value): Rework to use the functions above. - * config/mips/irix6-libc-compat.c: Delete. - * config/mips/t-iris6 (LIB2FUNCS_STATIC_EXTRA): Undefine. - -2003-11-16 Kazu Hirata - - * doc/install.texi (--enable-checking): Update valgrind's URL. - -2003-11-16 Kazu Hirata - - * config/h8300/h8300.md: Fix warnings by replacing -2147483648 - with -2147483647 - 1. - -2003-11-16 Gerald Pfeifer - - Fix links in online manuals. - * doc/invoke.texi (H8/300 Options): @xref to ld, not ld.info. - (Precompiled Headers): @pxref to cpp, not cpp.info. - -2003-11-16 Jason Merrill - - * Makefile.in, objc/Make-lang.in (objc.tags): Create TAGS.sub - files in each directory and TAGS files that include them for each - front end. - -2003-11-15 Kazu Hirata - - * config/h8300/lib1funcs.asm (divnorm): Store the sign in bit - 3 of S2L. - (modnorm): Likewise. - (exitdiv): Look at bit 3 of S2L only. - -2003-11-15 Kazu Hirata - - * config/h8300/h8300.h (DO_GLOBAL_CTORS_BODY): Fix warnings. - (DO_GLOBAL_DTORS_BODY): Likewise. - -2003-11-15 Joseph S. Myers - - * doc/install.texi (Prerequisites): Refine documentation of - autoconf, automake and perl requirements. Document required - gettext version. - -<2003-11-14 Jason Merrill - - * function.c (assign_parms): Use TREE_TYPE to determine the real - type of the argument object. - -2003-11-14 Kazu Hirata - - * config/h8300/lib1funcs.asm (___udivsi3): Peel off the first - iteration. - -2003-11-14 Fariborz Jahanian - - * config/rs6000/rs6000.c (rs6000_move_block_from_reg): - New routine to save vararg registers on stack. Support for - -mpowerpc64 in mixed mode. - -2003-11-14 Bernardo Innocenti - - * config/m68k/m68k.c: Use C statements instead of #ifdef's when testing - for MOTOROLA versus MIT syntax. Improves readability and provides - better compile-time error checking for both code paths. - -2003-11-14 Kelley Cook - - * config/frv/frv-protos.h: Update for C90. - * config/frv/frv.h: Likewise. - * config/frv/frvbegin.c: Likewise. - * config/frv/frv.c: Likewise. - (frv_adjust_field_align): Delete unused variable. - -2003-11-14 Geoffrey Keating - - * config/rs6000/rs6000.md: Add 'DEFAULT_ABI == ABI_DARWIN' - to each place where TARGET_LONG_DOUBLE_128 is used with - DEFAULT_ABI == ABI_AIX. - - * cppfiles.c (_cpp_find_file): Make 'one or more PCH files were found' - message comply with GNU standards. - -2003-11-14 Richard Kenner - - PR/6552 - * function.c (struct epi_info): New field const_equiv. - (update_epilogue_consts): New function. - (keep_stack_depressed): Clear new field and verify scratch register - doesn't have it set. - Call new function via note_stores. - (handle_epilogue_set): Allow setting SP equiv reg in different mode. - Allow PLUS where second operand is register known set to constant. - (emit_equiv_load): Write load using proper mode if source different. - * config/mips/mips.md (return_internal): Put (return) first. - -2003-11-14 Kazu Hirata - - * config/h8300/lib1funcs.asm (___udivsi3): Add a comment. - -2003-11-14 Kazu Hirata - - * config/h8300/lib1funcs.asm (modsi3): Don't save unused - registers. - (divsi3): Likewise. - (reti): Don't restore unused registers. - -2003-11-14 Nick Clifton - - * config/fr30/fr30.c: Include toplev.h - -2003-11-14 Richard Earnshaw - - * except.c (sjlj_emit_function_enter): Mark internal label as LOCAL. - -2003-11-14 Richard Earnshaw - - * arm.c (arm_emit_vector_const, arm_output_load_gr): Use ISO C - function definition syntax. - -2003-11-14 Eric Christopher - - * reload1.c (reload): Revert previous patch. Make - check for assignment into reg_equiv_address stricter. - -2003-11-14 Arnaud Charlet - - * Makefile.in (POSTSTAGE1_FLAGS_TO_PASS): Pass ADAFLAGS. - -2003-11-14 Richard Sandiford - - * config/frv/frv.c (frv_in_small_data_p): Return false for unknown - section names. - -2003-11-14 Jason Merrill - - PR middle-end/12526 - * tree.c (build): A CALL_EXPR has side-effects if its arguments do. - * calls.c (call_expr_flags): New fn. - * tree.h: Declare it. - -2003-11-13 Kazu Hirata - - * config/h8300/lib1funcs.asm (__udivsi3): Remove. - (divmodsi3): Change the name to ___udivsi3. - Update all callers. - -2003-11-13 Kaveh R. Ghazi - - * libgcc2.c (__negdi2, __addvsi3, __addvdi3, __subvsi3, __subvdi3, - __mulvsi3, __negvsi2, __negvdi2, __mulvdi3, __lshrdi3, __ashldi3, - __ashrdi3, __ffsDI2, __muldi3, __clzDI2, __ctzDI2, __parityDI2, - __udivmoddi4, __divdi3, __moddi3, __cmpdi2, __ucmpdi2, - __fixunstfDI, __fixunsxfDI, __fixunsdfDI, __fixunssfDI, - __floatdixf, __floatditf, __floatdidf, __floatdisf, __gcc_bcmp): - Const-ify and/or initialize automatic variables at declaration. - -2003-11-13 Kazu Hirata - - * config/h8300/lib1funcs.asm (divmodsi4): Replace all the uses - of er4 with er3. Adjust all callers. - -2003-11-13 Andrew Pinski - - * config/darwin.c (machopic_output_possible_stub_label): - Allow stub symbol be not defined when outputting possible - stub label. - -2003-11-13 Kazu Hirata - - * config/h8300/lib1funcs.asm (___udivsi3): Jump to reti - instead of exitdiv. - (___umodsi3): Likewise. - (exitdiv): Do not restore any register. - (reti): Restore registers. - -2003-11-13 Steven Bosscher - - * tree-inline.c (walk_tree): Handle PLACEHOLDER_EXPR. - -2003-11-13 Kazu Hirata - - * config/h8300/lib1funcs.asm: Fix comment typos. - -2003-11-13 Kazu Hirata - - * config/h8300/lib1funcs.asm (udivsi3): Don't save/restore - unused registers. Don't jump to exitdiv. - (umodsi3): Likewise. - -2003-11-13 Mark Mitchell - Kean Johnston - - PR c/13029 - * toplev.c (check_global_declarations): Do not warn about unused - static consts. - -2003-11-13 Pavel Pisa - Kazu Hirata - - * config/h8300/lib1funcs.asm (DenHighNonZero): Optimize using - the approximate quotient method. - -2003-11-13 Richard Earnshaw - - * combine.c (distribute_notes): When re-distributing the notes from - an insn we are about to delete, ensure we can't end up with a cyclic - list of notes. - -2003-11-13 Eric Botcazou - - PR optimization/12926 - * expr.c (expand_assignment) [COMPONENT_REF]: Don't put - the UNCHANGING_RTX_P flag on memory references to read-only - components that are not addressable. - -2003-11-12 Kazu Hirata - - * config/h8300/lib1funcs.asm (divmodsi4): Clear S0P in - DenHighNonZero. - -2003-11-13 Jan Hubicka - - PR opt/12275 - * c-decl.c (finish_decl): Use change_decl_assembler_name. - * c-pragma.c (handle_pragma_redefine_extname): Likewise. - * varasm.c (make_decl_rtl): Likewise. - * cgraph.c (change_decl_assembler_name): New function. - * tree.h (set_decl_assembler_name): Kill dead declaration. - (change_decl_assembler_name): Declare. - - * decl.c (make_rtl_for_nonlocal_decl): Use change_decl_assembler_name. - * decl2.c (make_rtl_for_nonlocal_decl): Use change_decl_assembler_name. - -2003-11-12 Kazu Hirata - - * config/h8300/lib1funcs.asm (___mulsi3): Don't save/restore - an unused register. - -2003-11-12 Richard Sandiford - - PR bootstrap/12752 - * config/mips/t-iris6 (MULTILIB_OPTIONS): Put -mabi=n32 first. - (MULTILIB_OSDIRNAMES): Reorder accordingly. - -2003-11-12 Janis Johnson - - * rs6000-protos.h (rs6000_initial_elimination_offset): Add. - (rs6000_stack_info): Remove. (debug_stack_info): Remove. - (rs6000_emit_eh_reg_restore): Add - * rs6000.c (rs6000_stack_t): Move from rs6000.h, change data type - of vars_size and total_size to HOST_WIDE_INT. - (emit_frame_save): Change parameter size to HOST_WIDE_INT. - (rs6000_stack_info): Make static; change data size to HOST_WIDE_INT. - (debug_stack_info): Make static; change output format of HOST_WIDE_INT - values. - (rs6000_emit_eh_reg_restore): New, with code formerly in rs6000.md. - (rs6000_initial_elimination_offset): New, with code formerly in - INITIAL_ELIMINATION_OFFSET. - * rs6000.h (rs6000_stack_t): Remove. - (INITIAL_ELIMINATION_OFFSET): Replace code with call to function - rs6000_initial_elimination_offset. - * rs6000.md (UNSPECV_EH_RR split): Replace code with call to - rs6000_emit_eh_reg_restore. - -2003-11-12 Mike Stump - - * c-typeck.c (c_convert_parm_for_inlining): Add argnum, which - is the argumnt we are processing so that warnings and errors - will have that information. - * c-tree.h (c_convert_parm_for_inlining): Add argnum. - * lang-hooks-def.h - (lhd_tree_inlining_convert_parm_for_inlining): Likewse. - * langhooks.c (lhd_tree_inlining_convert_parm_for_inlining): Likewise. - * langhooks.h (convert_parm_for_inlining): Likewise. - * tree-inline.c (initialize_inlined_parameters): Compute and - pass argnum down. - -2003-11-12 Alexey Starovoytov - Roger Sayle - - PR optimization/12953 - * tree-inline.c (inline_forbidden_p_1): Added check for BUILT_IN - before switch by FUNCTION_CODE. - -2003-11-12 Richard Earnshaw - - * arm.md (storehi): Avoid use of explicit subreg. - (storehi_bigend, storeinthi, movhi_bigend): Likewise. - -2003-11-12 J"orn Rennecke - - * config/sh/sh.md (prefetch): New pattern. - -2003-11-11 Eric Christopher - - * reload1.c (reload): Verify that addresses for - reg_equiv_* are valid for the architecture. - -2003-11-11 Eric Christopher - - * function.c (purge_addressof_1): Add libcall check. - Remove test for cached replacements on fallback case. - Simplify mode comparisons. Add libcall test for - paradoxical subregs. - -2003-11-11 Kazu Hirata - - * config/h8300/t-h8300: Fix an obsolete comment. - -2003-11-11 James E Wilson - - * expmed.c (store_bit_field, extract_bit_field): Revert last two - changes. - -2003-11-11 Kazu Hirata - - * config/h8300/lib1funcs.asm: Replace DenHighZero with - DenHighNonZero. - -2003-11-11 Jan Hubicka - - * cgraphunit.c (cgraph_function_possibly_inlined_p): Use - really_no_inline. - -2003-11-11 John David Anglin - - * pa.h (TRAMPOLINE_TEMPLATE): Fix flushing of cache lines when - generating 64-bit code. - -2003-11-10 David Edelsohn - - * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): Remove - accidental commit in previous change. - -2003-11-10 Fariborz Jahanian - - * config/rs6000/rs6000.h (STACK_SIZE_MODE): Add definition. - * config/rs6000/rs6000.c (reg_or_mem_operand): Add macho-style - address recognition. - (macho_lo_sum_memory_operand): Routine to recognize macho-style - address recognition. - -2003-11-10 Richard Henderson - - * dwarf2out.c (gen_label_die): Cope with DECL_RTL not set. - -2003-11-10 Matt Austern - - * config/darwin-protos.h (darwin_assemble_visibility): Declare. - * config/darwin.c (darwin_assemble_visibility): Define. Warn for - anything other than VISIBILITY_DEFAULT and VISIBILITY_HIDDEN. - * config/darwin.h (TARGET_ASM_ASSEMBLE_VISIBILITY): Use - darwin_assemble_visibility instead of default. - -2003-11-10 Waldek Hebisch - - PR target/12865 - * config/sparc/sparc.c (sparc_initialize_trampoline): Call - __enable_execute_stack only after writing onto the stack. - (sparc64_initialize_trampoline): Likewise. - -2003-11-09 Roger Sayle - - * loop.c (check_dbra_loop): Try swapping the comparison operands - of the loop condition to identify a suitable induction variable. - * unroll.c (loop_iterations): Likewise. - -2003-11-09 Kaveh R. Ghazi - - * config/sparc/sparc.h (TARGET_CPU_CPP_BUILTINS): Fix sparc vs - sparc64 #cpu and #machine assertions. - -2003-11-09 Richard Henderson - - * Makefile.in (rtlanal.o): Depend on BASIC_BLOCK_H. - -2003-11-09 Jan Hubicka - - * tree-optimize.c (tree_rest_of_compilation): Fix warning. - - * cgraphunit.c (cgraph_expand_function): Use - cgraph_possibly_inlined_p. - * tree-optimize.c (tree_rest_of_compilation): Do not kill saved tree. - - * opts.c (common_handle_option): Do not set max-inline-insns. - * params.def: Update comments. - (PARAM_MAX_INLINE_INSNS): Kill. - * invoke.texi (max-inline-insns): Kill. - -2003-11-08 Joseph S. Myers - - PR c/3190 - PR c/8714 - * c-format.c (set_Wformat): Do not enable -Wformat-y2k by default. - * invoke.texi: Update. - -2003-11-08 John David Anglin - - PR optimization/12630 - * pa.c (compute_movstrsi_length): Rename to compute_movstr_length. - Handle length computation 64-bit moves. - (compute_clrstr_length, output_block_clear): Implement block clear. - (output_block_move): Handle 64-bit moves. - (pa_adjust_insn_length): Use compute_movstr_length and - compute_clrstr_length. - * pa.md (movstrsi): Revise operand order and comments. Don't use - match_scratch. - (movstrsi_internal): Delete. - (movstrsi_prereload, movstrsi_postreload): New insns. Define splitter - and peephole2 patterns to transform prereload to postreload form. - (movstrdi, movstrdi_prereload, movstrdi_postreload, clrstrsi, - clrstrsi_prereload, clrstrsi_postreload, clrstrdi, clrstrdi_prereload, - clrstrdi_postreload): New patterns for 64-bit block move, and block - clear. - * pa-protos.h (output_block_clear): New prototype. - -2003-11-08 Andreas Schwab - - * dbxout.c (current_file): Also wrap inside DBX_DEBUGGING_INFO || - XCOFF_DEBUGGING_INFO. - -2003-11-08 Kaveh R. Ghazi - - * dbxout.c (current_file): Wrap declaration in DBX_USE_BINCL. - -2003-11-07 Geoffrey Keating - - * config/rs6000/rs6000.c (rs6000_legitimize_address): Remove - redundant parens. - - * cppfiles.c (pch_open_file): New parameter 'invalid_pch', set it. - (find_file_in_dir): Likewise. - (_cpp_find_file): Print message if no header file is found - but an invalid PCH file was. - -2003-11-08 Joseph S. Myers - - * c-typeck.c (pedantic_lvalue_warning): Deprecate compound - expressions as lvalues. - (internal_build_compound_expr): Remove special handling for - non-pedantic case. - * doc/extend.texi: Document that all extended lvalues are now - deprecated. - -2003-11-07 Geoffrey Keating - - PR 11654 - * dbxout.c (struct dbx_file): Do not save for PCH. - (current_file): Likewise. - (dbxout_init): Don't allocate struct dbx_file using GC. - (dbxout_start_source_file): Likewise. - -2003-11-07 Falk Hueffner - - * config/alpha/elf.h, config/alpha/unicosmk.h, - config/alpha/vms.h: Convert to ISO C90. - -2003-11-07 Nathanael Nerode - - * config/arm/pe.h: Convert to ISO C90. - -2003-11-07 J"orn Rennecke - - * sh-protos.h (sh_pch_valid_p): Declare. - * sh.c ("intl.h"): Include. - (TARGET_PCH_VALID_P): Override. - (sh_target_switches): New variable. - (target_switches): Define. - (sh_pch_valid_p): New function. - - * sh.h (MODE_AFTER): Don't change mode unless TARGET_HITACHI. - -2003-11-07 Jan Hubicka - - * i386.c (x86_64_sign_extended_value): Return false from tls variables. - (x86_64_zero_extended_value): likewise. - -2003-11-07 Richard Sandiford - - * config/mips/mips.md (loadgp): Take $25 as a second operand. - * config/mips/mips.c (mips_expand_prologue): Modify accordingly. - -2003-11-06 Matt Austern - - * c-common.c (handle_visibility_attribute): Set DECL_VISIBILITY - field instead of hanging an attribute object off the decl. - * tree.h (DECL_VISIBLITY): New accessor macro for - symbol_visibility field in struct tree_decl. - (enum symbol_visibility): Move definition to before tree_decl. - (struct tree_decl): Define new two-bit field, symbol_visibility. - (decl_visibility): Remove declaration. - * varasm.c (maybe_assemble_visibility): Use DECL_VISIBILITY - instead of decl_visibility. - (default_binds_local_p_1): Use DECL_VISIBILITY instead of - decl_visibility. - (decl_visibility): Remove. - -2003-11-06 Ulrich Weigand - - * config/s390/s390.c (s390_emit_epilogue): Recognize more cases - where register 14 will be saved. - -2003-11-06 Geoffrey Keating - - * config/rs6000/rs6000.h (USE_FP_FOR_ARG_P): Move to rs6000.c. - (USE_ALTIVEC_FOR_ARG_P): Likewise. - * config/rs6000/rs6000.c (USE_FP_FOR_ARG_P): Move from rs6000.h. - Take a pointer as the CUM parameter. Update callers. - (USE_ALTIVEC_FOR_ARG_P): Likewise. Also correct for Darwin/AIX - 32-bit ABIs. - (function_arg_advance): Use USE_ALTIVEC_FOR_ARG_P. Correct case - of vector parameters as named arguments of stdarg function. - (function_arg): Likewise. - - * config/rs6000/darwin.h (ASM_SPEC): Use -force_cpusubtype_ALL when - -maltivec is specified, not the non-existent -faltivec. - -2003-11-06 Ulrich Weigand - - * config/s390/s390-protos.h (s390_function_value): Declare. - * config/s390/s390.c (TARGET_RETURN_IN_MEMORY): Define. - (s390_return_in_memory): New function. - (s390_function_value): New function. - (s390_function_arg_float): Return false for all arguments larger - than 8 bytes. - (s390_function_arg_pass_by_reference): Likewise. Return true for - all vector arguments. - (s390_function_arg_integer): New function. - (s390_function_arg_advance): Call it. Add sanity checks. - (s390_function_arg): Likewise. - * config/s390/s390.h (FUNCTION_VALUE): Call s390_function_value. - (LIBCALL_VALUE): Likewise. - (RET_REG): Remove. - (RETURN_IN_MEMORY): Remove. - -2003-11-06 Richard Sandiford - - * config/mips/mips-protos.h (mips_initial_elimination_offset): Change - return type to HOST_WIDE_INT. - * config/mips/mips.c (mips_frame_info): Give sizes type HOST_WIDE_INT. - Make initialized a bool. Make register masks unsigned ints. - (compute_frame_size): Make same mask change here. Use HOST_WIDE_INT - where appropriate. - (mips_initial_elimination_offset): Return a HOST_WIDE_INT. - (mips_output_function_prologue): Print sizes as HOST_WIDE_INTs. - -2003-11-06 Richard Sandiford - - * config/frv/frv.c (frv_initial_elimination_offset): Remove bogus - negation. - -2003-11-06 Richard Sandiford - - * config/frv/frv.h (ASM_OUTPUT_ALIGN_WITH_NOP): Define. - -2003-11-06 Momchil Velikov - - * config/mips/mips.c (override_options): Set MASK_SOFT_FLOAT - for VR4111 too. - -2003-11-06 Jan Hubicka - - * builtins.c (simplify_builtin_strrchr, simplify_builtin_strpbrk): Add - missing casts. - -2003-11-06 Zack Weinberg - - * genmodes.c: Change the word "bitsize" to "precision" throughout. - * machmode.def: Likewise. - * machmode.h (GET_MODE_SIZE): Cast value to unsigned short. - (GET_MODE_BITSIZE): Define as GET_MODE_SIZE * BITS_PER_UNIT. - (GET_MODE_PRECISION): New macro. - (mode_bitsize): Renamed mode_precision. - * stor-layout.c (mode_for_size, smallest_mode_for_size): - Use GET_MODE_PRECISION; clarify comments. - -2003-11-05 Joseph S. Myers - - * doc/install-old.texi: Remove old documentation of building - cross-compilers. - * doc/install.texi: Move some of it to here. - -2003-11-05 Per Bothner - - PR preprocessor/12891 - * c-opts.c (finish_options): Set include_cursor to disable premature - calls to push_command_line_include from cpp_scan_nooutput. - Fixes bug reported by DJ Delorie. - -2003-11-05 Geoffrey Keating - - * config/rs6000/rs6000.c (setup_incoming_varargs): Remove - code supporting old-style varargs. - - * config/rs6000/rs6000.c (rs6000_machopic_legitimize_pic_address): Use - an intermediate register for better optimisation. - -2003-11-05 Zdenek Dvorak - - PR optimization/10080 - * cfgloopanal.c (variable_initial_value, variable_initial_values, - simple_loop_exit_p): Record the fact that initial value is extended - from inner mode. - (count_strange_loop_iterations, count_loop_iterations): Handle - ivs that iterate in a narrower mode. Fix handling of overflows. - Improve handling of NE conditions. - (inverse, fits_in_mode_p): New static functions. - (simple_increment): Detect variables that iterate in a narrower mode. - * cfgloop.h (struct loop_desc): Fields inner_mode and extend added. - -2003-11-05 Geoffrey Keating - - * config/rs6000/rs6000.c (compute_vrsave_mask): Correct off-by-one - error. - - * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Darwin - needs VRSAVE. - -2003-11-05 Joseph S. Myers - - * c-typeck.c (pedantic_lvalue_warning): Deprecate use of - conditional expressions as lvalues. - -2003-11-05 Kazu Hirata - - * tsystem.h: Add the prototype of strlen. - * unwind-pe.h (read_encoded_value_with_base): Add an - appropriate cast to handle a case where the pointer size is - smaller than sizeof (int). - -2003-11-04 Richard Sandiford - - * config/mips/mips-protos.h (mips_global_pic_constant_p): Delete. - (mips_delegitimize_address): Delete. - (mips_gotoff_global, mips_load_got_page): Declare. - (mips_load_got_global, mips_rewrite_small_data): Declare. - - * config/mips/mips.h (FIND_BASE_TERM): Remove definition. - (DANGEROUS_FOR_LA25_P): Use global_got_operand. - (PREDICATE_CODES): Add global_got_operand, local_got_operand and - small_data_pattern. Remove CONST from const_arith_operand's entry. - - * config/mips/mips.c (UNSPEC_ADDRESS_P, CONST_GP_P): New macros. - (UNSPEC_ADDRESS, UNSPEC_ADDRESS_TYPE): Likewise. - (mips_constant_type): Delete. - (mips_symbol_type): Add SYMBOL_GOTOFF_PAGE, SYMBOL_GOTOFF_GLOBAL, - SYMBOL_GOTOFF_CALL and SYMBOL_GOTOFF_LOADGP. - (NUM_SYMBOL_TYPES): New macro. - (mips_address_type): Remove ADDRESS_INVALID. - (machine_function): Add has_gp_insn_p. - (mips_constant_info): Delete. - (mips_address_info): Add the address type as an extra field. Replace - the c field with symbol_type. - (mips_split_p, mips_lo_relocs, mips_hi_relocs): New arrays. - (TARGET_DELEGITIMIZE_ADDRESS): Remove definition. - (mips_reloc_offset_ok_p, mips_classify_constant): Delete. - (mips_split_const, mips_symbolic_constant_p): New functions. - (mips_symbolic_address_p): Take the symbol type and mode as arguments. - (mips_classify_address): Return true if the address is valid, storing - its type in INFO. Use mips_symbolic_constant_p. Use mips_lo_relocs[] - to test whether a LO_SUM address is allowed. - (mips_symbol_insns): Return 0 for general mips16 symbols. - Reorder SYMBOL_GOT_GLOBAL case to match mips_symbol_type definition. - Handle the new SYMBOL_GOTOFF_*s. - (mips_address_insns): Update call to mips_classify_address. - (mips_const_insns): Be more fussy about HIGH constants. Remove use - of mips_classify_constant. Be more accurate about CONSTs. - (mips_global_pic_constant_p): Delete. - (const_arith_operand): Only accept CONST_INTs. - (call_insn_operand): Remove call to mips_classify_constant. - Let mips_symbolic_constant_p check for invalid offsets. - (move_operand): Check for general_operands first. Only accept symbolic - constants if they satisfy mips_symbolic_constant_p and cannot be split. - (symbolic_constant): Use mips_symbolic_constant_p. - (global_got_operand, local_got_operand): New predicates. - (stack_operand): Update call to mips_classify_address. - (mips_legitimate_address_p): Likewise. - (mips_reloc, mips_lui_reloc): Delete. - (mips_force_temporary): Only use the given temporary if no_new_pseudos. - Use emit_move_insn. - (mips_split_symbol, mips_unspec_address): New functions. - (mips_unspec_offset_high): New function. - (mips_load_got): Replace reloc argument with a symbol_type. - Use mips_unspec_address to create the address and put it in a - LO_SUM with the base register. - (mips_load_got16, mips_load_got32): Delete. - (mips_emit_high, mips_legitimize_symbol): Delete. - (mips_gotoff_global): New function. - (mips_load_got_page, mips_load_got_global): New functions. - (mips_legitimize_symbol): Inline handling of LO_SUM splits. - (mips_legitimize_const_move): Likewise. Remove HIGH handling. - Inline code to handle constants plus invalid offsets. Use - mips_split_symbol to legitimize constant pool addresses. - (mips_delegitimize_address): Delete. - (mips_rtx_costs): Give legitimate symbolic constants and CONST_DOUBLEs - a cost of 1 insn. Give the rest a cost of CONSTANT_POOL_ADDRESS. - (mips_subword): Pass memrefs through mips_rewrite_small_data. - (mips_output_move): Remove use of mips_classify_constant. - (mips_expand_call): Use mips_unspec_offset_high to calculate the - high part of the GOT address for calls to global functions. - (override_options): Initialize mips_split_p[], mips_lo_relocs[] - and mips_hi_relocs[]. - (print_operand): Use print_operand_reloc to handle '%h' and '%R'. - Remove use of mips_classify_constant. - (mips_reloc_string): Delete. - (print_operand_reloc): New function. - (print_operand_address): Update call to mips_classify_address. - (mips_rewrite_small_data_p, small_data_pattern_1): New functions. - (small_data_pattern): New predicate. - (mips_rewrite_small_data_1, mips_rewrite_small_data): New functions. - (mips_function_has_gp_insn): New function. - (mips_global_pointer): Use it. - (mips_gp_insn): Delete. - (mips_expand_prologue): When compiling for n32/n64 abicalls, use a - single loadgp pattern to initialize $gp. Pass it the offset of _gp - from the start of the current function. - (mips16_gp_pseudo_reg): Revert last patch. - - * config/mips/mips.md (RELOC_*): Delete. - (UNSPEC_LOADGP, UNSPEC_FIRST_ADDRESS): New constants. - (got): New insn attribute. - (type): Set to "load" if got == load. - (length): Set to 4 if got == load, 8 if got == xgot_high. - (lui[sd]i): Delete. - (*xgot_hi[sd]i, *xgot_lo[sd]i): New patterns. - (*got_disp[sd]i, *got_page[sd]i): Likewise. - (*low[sd]i): Change constraints to "d". Add a new define_split to - rewrite small data constants into LO_SUMs. - (loadgp): New insns. - -2003-11-04 Rainer Orth - - * config/mips/_tilib.c: Use _ABI* in _MIPS_SIM tests. - -2003-11-04 DJ Delorie - - * config/v850/v850.md (mulhisi3): Expand the const_int case - separately to avoid trying to sign extend the const. - -2003-11-04 Richard Sandiford - - * emit-rtl.c (copy_rtx_if_shared): Don't allow MEMs with constant - addresses to be shared. - (force_const_mem): Return a copy of the pool entry. - -2003-11-03 Andreas Jaeger - - * Makefile.in (GCC_CFLAGS): Remove @WERROR@ again. - -2003-11-03 Kelley Cook - - * Makefile.in (cpp.dvi): New target split from cpp.info. - (gcc.dvi): New target split from gcc.info. - (gccint.dvi): New target split from gccint.info. - (cppinternals.dvi): New target split from cppinternals.info - (gccinstall.info): New specific rule. - (gccinstall.dvi): Likewise. - (dvi): Move targets to $(docobjdir). - ($(docobjdir)/%.dvi): New implicit rule. - -2003-11-03 Richard Kenner - - * doc/gty.texi (tag, desc): Say more about role of desc values in - selecting between tags. - -2003-11-03 Alexander Kabaev - - * real.c (encode_ieee_single): Ensure proper promotion. - -2003-11-03 Volker Reichelt - - * doc/contrib.texi: Add Giovanni Bajo, Dara Hazeghi, Falk Hueffner, - and Andrew Pinski. - -2003-11-03 Syd Polk - - * config/rs6000/rs6000.c (rs6000_override_options): Add G3, G4, and G5 - marketing names to the list of supported processors. - * config/rs6000/rs6000.h: Ditto. - * doc/invoke.texi: Ditto. - * config.gcc: Ditto. - -2003-11-03 Rainer Orth - - * fixinc/inclhack.def (stdio_va_list): Allow tab before va_list. - Merge two substitutions. - * fixinc/fixincl.x: Regenerate. - Fixes PR bootstrap/12666. - -2003-11-03 Joseph S. Myers - - * doc/install-old.texi: Remove VMS documentation. - -2003-11-03 Jan Hubicka - - * i386.c (override_options): Remove hack enabling 128bit long double - commited by accident. - -2003-11-02 Per Bothner - - * c-opts.c (needValue): Do cpp_find_main_file before processing - any imacros flags, so pfile->main_file is set for the latter. - -2003-11-03 Andreas Jaeger - Zack Weinberg - - * Makefile.in (GCC_CFLAGS): Allow blacklisting of warnings. - (SYSCALLS.c.X-warn): Suppress warnings. - -2003-11-02 John David Anglin - - PR optimization/12845 - * pa.c (output_cbranch): Use cmpb for DImode comparisons with 0. - -2003-11-02 Zack Weinberg - - * print-rtl.c (print_rtx): Call PRINT_REG with second argument -1. - * config/i386/i386.c (print_reg): Abort on a virtual register - if code != -1; not if file == asm_out_file. - * config/i386/i386.h (PRINT_REG): Document meaning of CODE == -1. - (DEBUG_PRINT_REG): Delete, unused. - -2003-11-02 Andreas Schwab - - * config/ia64/fde-glibc.c (_GNU_SOURCE): Define to 1 instead of - empty to avoid conflict with the definition from configure. - -2003-11-02 Roger Sayle - - PR optimization/10817 - * ifcvt.c (noce_emit_move_insn): Improve documentation comment. - (noce_try_move): New function to optimize an if-the-else into an - unconditional move, i.e. "if (a!=b) x=a; else x=b" into "x=a". - (noce_process_if_block): Attempt simplification with noce_try_move. - - * simplify-rtx.c (simplify_ternary_operation): Some minor fixes - and improvements to the optimizations of IF_THEN_ELSE expressions. - (simplify_subreg): Silence signed/unsigned comparison warning. - -2003-11-02 Richard Sandiford - - * Makefile.in (targhooks.o, reload.o): Update dependencies. - (GTFILES): Add targhooks.c. - (gt-targhooks.h): New rule; depend on s-gtype. - * target.h (direct_pool_load_p): New hook. - * target-def.h (TARGET_DIRECT_POOL_LOAD_P): New macro. - (TARGET_INITIALIZER): Include it. - * targhooks.h (default_direct_pool_load_p): Declare. - (hook_bool_machine_mode_true): Declare. - * targhooks.c: Include insn-config.h, recog.h, ggc.h and - gt-targhooks.h. - (pool_symbol): New variable. - (default_direct_pool_load_p): New function. - (hook_bool_machine_mode_true): New function. - * reload.c: Include target.h. - (find_reloads): If an alternative will force a constant into memory, - count an extra reload if constant pool symbols are not valid - addresses. If an alternative uses memory to move values between - registers, count the move as two reloads rather than one. - * config/s390/s390.c (TARGET_DIRECT_POOL_LOAD_P): Define. - * doc/tm.texi (TARGET_DIRECT_POOL_LOAD_P): Document. - -2003-11-02 Eric Botcazou - - PR optimization/12799 - * postreload.c (reload_cse_move2add): Generate the add2 - patterns manually. - -2003-11-02 Eric Botcazou - - * config/sparc/sparc.c (function_arg_partial_nregs) [TARGET_ARCH64]: - Return 0 for all complex modes whose size is lesser or equal to - a word. Add a ??? comment for the condition used with 16-byte - aligned modes. - -2003-11-01 Kelley Cook - - * .cvsignore: Remove c-parse* and tradcif.c. - * objc/.cvsignore: Delete. - -2003-11-01 Roger Sayle - - * unwind-sjlj.c (_Unwind_GetCFA): Return (_Unwind_Word)0 instead - of NULL. - -2003-11-01 John David Anglin - - * som.h (DO_GLOBAL_DTORS_BODY): Change to C90 declaration. - - * libgcc2.c (SYMBOL__MAIN): Provide C90 declaration. - - * collect2.c (scan_libraries): Fix typos. - - PR preprocessor/12847 - * cppfiles.c, cppexp.c, cpperror.c, cpplib.h, cpplib.c, cpplex.c, - cppinit.c, cpptrad.c, cppmacro.c, fix-header.c, cpppch.c, c-pch.c, - c-incpath.c, cppcharset.c (DL_WARNING, DL_WARNING_SYSHDR, DL_PEDWARN, - DL_ERROR, DL_ICE, DL_EXTRACT, DL_WARNING_P): Prefix macro names with - "CPP_". - -2003-11-01 Fariborz Jahanian - - * config/rs6000/rs6000.c (rs6000_mixed_function_arg): Correct - no_units calculation. - -2003-11-01 Andreas Jaeger - - * unwind-dw2.c (_Unwind_FrameState): Remove commas at end of - enumeration list. - -2003-11-01 Andreas Schwab - - * config/ia64/sysv4.h (SDATA_SECTION_FUNCTION): Update to C90 - prototypes. - (SBSS_SECTION_FUNCTION): Likewise. - -2003-11-01 Andreas Jaeger - - * Makefile.in (GCC_CFLAGS): Add @WERROR@ for target files. - -2003-11-01 Andreas Tobler - - * config/rs6000/sysv4.h (EXTRA_SECTION_FUNCTIONS): Update to C90 - prototypes. - -2003-11-01 Andreas Jaeger - - * unwind-dw2.c (_Unwind_FindEnclosingFunction): Constify variable. - (uw_frame_state_for): Constify variables. - (extract_cie_info): Constify first argument. - - * unwind-dw2-fde-darwin.c: Adjust prototype of - _Unwind_Find_registered_FDE for recent changes. - (examine_objects): Constify return value and local variable result. - (_Unwind_Find_FDE): Constify return value and local variable ret. - -2003-10-31 Per Bothner - - * c-opts.c (finish_options): Change to returns boolean - false iff - the call to cpp_find_main_file fails. - (c_common_init): Skip preprocess_file if finish_options failed. - (c_common_parse_file): Break if finish_options failed. - Fixes PR preprocessor/12545. - -2003-10-31 John David Anglin - - * aclocal.m4: Blacklist ultrix* for mmap file. - * configure: Rebuilt. - - * function.c (assign_parms): Add ATTRIBUTE_UNUSED to variable - reg_parm_stack_space. - * toplev.c (default_get_pch_validity): Fix warning. - - * vax.c: Include toplev.h. - (vax_init_libfuncs): Fix typo (umod). - * vax.h (ASM_COMMENT_START): Define. - (PRINT_OPERAND): Fix warning when HOST_WIDE_INT is a long long. - -2003-10-31 Roger Sayle - - PR middle-end/11968 - * expr.c (expand_expr ): Remove inappropriate and - confusing comment; distributivity isn't handled in expand_expr. - * fold-const.c (extract_muldiv_1 ): Allow overflow - in distributivity, if wrap-around semantics are specified with - -fwrapv. - -2003-11-01 Alan Modra - - PR 12315 - * final.c (profile_function): Allow for NULL svrtx. - -2003-10-31 John David Anglin - - * pa.c (pa_select_section): Use new style declaration. - * som.h (readonly_data): Likewise. - -2003-10-31 Kelley Cook - - * config/rs6000/rs6000.c: Update to C90 prototypes. - -2003-10-31 Richard Earnshaw - - PR target/7513 - * arm.h (CONDITIONAL_REGISTER_USAGE): Disable use of LR in Thumb - code. - -2003-10-31 Andreas Jaeger , - Zack Weinberg - - - * crtstuff.c (__register_frame_info, __register_frame_info_bases) - (__deregister_frame_info, __deregister_frame_info_bases): - Constify void * argument. - * unwind-dw2-fde.h (struct fde_vector): - Constify 'orig_data' and 'array' fields. - (__register_frame_info, __register_frame_info_bases) - (__deregister_frame_info, __deregister_frame_info_bases): - Constify void * argument. - (get_cie, next_fde, _Unwind_Find_FDE): Constify arguments, - return values, and casts of type fde *, struct dwarf_fde *, - and struct dwarf_cie *. - * unwind-dw2-fde.c (__register_frame_info, __register_frame_info_bases) - (__deregister_frame_info, __deregister_frame_info_bases): - Constify void * argument. - (get_cie_encoding, ): Constify struct dwarf_cie * argument. - (get_fde_encoding, fde_unencoded_compare, fde_single_encoding_compare) - (fde_mixed_encoding_compare, fde_compare_t, start_fde_sort, fde_insert) - fde_split, SWAP, frame_downheap, frame_heapsort) - (classify_object_over_fdes, add_fdes, linear_search_fdes, - binary_search_unencoded_fdes, binary_search_single_encoding_fdes, - binary_search_mixed_encoding_fdes, search_object, _Unwind_Find_FDE): - Constify arguments, local variables, return values, and casts - of type fde *, fde **, struct dwarf_fde *, and struct dwarf_cie *. - Use const pointer types in sizeof expressions, for clarity. - * unwind-dw2-fde-glibc.c - (_Unwind_find_registered_FDE, _Unwind_find_FDE): Constify return value. - (struct unw_eh_callback_data): Constify 'ret' field. - -2003-10-31 Fariborz Jahanian - David Edelsohn - - * config/rs6000/rs6000.c (rs6000_mixed_function_arg): New. - (function_arg): Call it. - (rs6000_function_value): Widen integral return value to mode based - on TARGET_32BIT, not word_mode. - * config/rs6000/rs6000.h (PROMOTE_MODE): Likewise. - (UNITS_PER_ARG): New. - (RS6000_ARG_SIZE): Use it. - -2003-10-31 Gerald Pfeifer - - * .cvsignore: No longer ignore gengtype-lex.c, gengtype-yacc.c, - and gengtype-yacc.h. - -2003-10-31 Richard Earnshaw - - PR optimization/8896 - * postreload.c (reload_combine): Check that REGY doesn't die in an - insn of the form (set (regx) (plus (regx) (regy))), ie REGX != REGY. - -2003-10-31 Josef Zlomek - - PR/10239 - * cfgrtl.c (delete_insn): Decrease LABEL_NUSES for all REG_LABEL notes. - -2003-10-31 Josef Zlomek - - PR/11640 - * cfgrtl.c (try_redirect_by_replacing_jump): Move jump - immediatelly before BARRIER. - -2003-10-31 Kelley Cook - - * Makefile.in (STRICT2_WARN): Add -Wold-style-definition. - -2003-10-31 Richard Earnshaw - - PR target/11271 - * reload.c (find_reloads_address): Handle any register in - (PLUS (PLUS (REG) (REG)) (CONST_INT). - -2003-10-31 Richard Earnshaw - - * ggc-page.c (ggc_pch_read): Wrap call to poison_pages in - ENABLE_GC_CHECKING not in GGC_POISON. - -2003-10-31 Nathanael Nerode - - PR bootstrap/9863 - * configure.in: Bail out if awk is missing. - * configure: Regenerate. - - PR ada/12761 - * Makefile.in: Move default definitions of X_ADA_CFLAGS, - T_ADA_CFLAGS, X_ADAFLAGS, T_ADAFLAGS from ada/Make-lang.in to here. - -2003-10-30 Richard Henderson - - * c-objc-common.c (c_tree_printer): Handle types correctly. - Factor code a bit. - -2003-10-30 Kelley Cook - - * value-prof.c, web.c: Update to C90. - -2003-10-30 Eric Christopher - - * function.c (purge_addressof_1): Add case for REG_RETVAL - notes when modes are unequal. - -2003-10-31 Jan Hubicka - - * i386-modes.def: Add XFmode format adjustment. - -2003-10-30 Jan Hubicka - - * real.c (encode_ieee_extended): Back out previous patch. - -2003-10-30 Jan Hubicka - - * real.c (encode_ieee_extended): Initialize whole array. - * reg-stack.c (move_for_stack_reg0: Use always XFmode. - * i386-modes.def: Change definitions of TFmode and XFmode. - * i386.c (classify_argument): Rename TFmodes to XFmodes; add new TFmode - code. - (construct_container): Allow constructing of TFmode integer containers. - (ix86_return_in_memory): XFmode is not returned in memory. - (init_ext_80387_constants): Always use XFmode. - (print_operand): Likewise. - (ix86_prepare_fp_compare_regs): Likewise. - (split_to_parts): Deal with TFmode. - (split_long_move): Simplify. - (ix86_init_mmx_sse_builtins): Add __float80, __float128. - (ix86_memory_move_cost): Do not confuse TFmode. - * i386.h (LONG_DOUBLE_TYPE_SIZE): Set to 96. - (IS_STACK_MODE): TFmode is not stack mode. - (HARD_REGNO_NREGS, CLASS_MAX_NREGS): Deal nicely with XFmode. - (VALID_SSE_REG_MODE): Allow TFmode. - (VALID_FP_MODE_P): Disallow TFmode. - (VALID_INT_MODE_P): Allow TFmode in 64bit mode. - * i386.md (TFmode patterns): Kill. - (movtf, motf_rex64): New patterns. - -2003-10-30 Richard Sandiford - - * config/mips/mips.md (adddi3): Fix typo in mips16 stack pointer code. - -2003-10-30 Richard Sandiford - - * config/mips/mips.md (mov_lwl): Use memory_operand where appropriate. - (mov_lwr, mov_swl, mov_swr): Likewise. - (mov_ldl, mov_ldr, mov_sdl, mov_sdr): Likewise. - -2003-10-30 Richard Sandiford - - * config/mips/mips.c (mips_global_pointer): Don't try to use $25. - -2003-10-30 Richard Henderson - - * config/mips/mips.c (mips_build_builtin_va_list): Use runtime - test for irix6 rather than preprocessor test. - -2003-10-30 Richard Henderson - - * cppcharset.c (one_utf8_to_utf16): Initialize 's' to silence warning. - -2003-10-30 Ulrich Weigand - - * config/s390/s390.c (struct machine_function): Use save_return_addr_p - as a general flag that the return address register needs to be saved, - not necessarily because of __builtin_return_addr (0). - (s390_split_branches): Remove TEMP_REG and TEMP_USED arguments, - remove special handling of zSeries machines. - (s390_optimize_prolog): Remove TEMP_USED argument, treat the return - register as a regular register on zSeries machines. - (s390_reorg): Adjust calls to s390_split_branches and - s390_optimize_prolog. - (s390_frame_info): On zSeries machines, do not assume the return - register is always used. Update regs_ever_live with current data - for the special registers. - (s390_emit_epilogue): Use save_return_addr_p to determine whether - the return register was saved. - * config/s390/s390.h (CONDITIONAL_REGISTER_USAGE): Do not mark - RETURN_REGNUM fixed on zSeries machines. - (REG_ALLOC_ORDER): Use RETURN_REGNUM last. - * config/s390/s390.md ("*doloop_si"): Handle branch overflow - via ahi-jgne pair on zSeries machines. - ("*doloop_di"): Likewise. - ("*doloop_di_long"): Remove. - -2003-10-30 Richard Earnshaw - - * arm.c (arm_override_options): Revert change of arm_constant_limit - when optimizing for size. - -2003-10-29 Richard Henderson - - * fold-const.c (fold_single_bit_test): Convert the input to the - operational intermediate type. - -2003-10-29 Richard Henderson - - * builtins.c (std_build_builtin_va_list): New. - * expr.h (std_build_builtin_va_list): Declare. - * defaults.h (BUILD_VA_LIST_TYPE): New. - * system.h (BUILD_VA_LIST_TYPE): Poison. - * target-def.h (TARGET_BUILD_BUILTIN_VA_LIST): New. - * target.h (struct gcc_target): Add build_builtin_va_list. - * tree.c (build_common_tree_nodes_2): Use it. - - * config/alpha/alpha-protos.h, config/alpha/alpha.c, - config/alpha/alpha.h, config/alpha/unicosmk.h, - config/d30v/d30v-protos.h, config/d30v/d30v.c, config/d30v/d30v.h, - config/i386/i386-protos.h, config/i386/i386.c, config/i386/i386.h, - config/i860/i860-protos.h, config/i860/i860.c, config/i860/i860.h, - config/i960/i960-protos.h, config/i960/i960.c, config/i960/i960.h, - config/mips/iris6.h, config/mips/mips-protos.h, config/mips/mips.c, - config/mips/mips.h, config/rs6000/rs6000-protos.h, - config/rs6000/rs6000.c, config/rs6000/rs6000.h, - config/s390/s390-protos.h, config/s390/s390.c, config/s390/s390.h, - config/sh/sh-protos.h, config/sh/sh.c, config/sh/sh.h, - config/xtensa/xtensa-protos.h, config/xtensa/xtensa.c, - config/xtensa/xtensa.h: Rename foo_build_va_list to - foo_build_builtin_va_list; make it static. Define - TARGET_BUILD_BUILTIN_VA_LIST. Remove BUILD_VA_LIST_TYPE. - Update protos. - - * config/i386/i386.c (ix86_expand_carry_flag_compare): Make static. - * config/iq2000/iq2000.h (BUILD_VA_LIST_TYPE): Remove. - -2003-10-29 James E Wilson - - * recog.c (asm_operand_ok): Add missing break after case 'X'. - Change if statements to else if statements in default case. - (extract_constrain_insn_cached): Fix misspelling of constrain_operands - in comment. - (constrain_operands_cached): Likewise. - (constrain_operands): Change if statements to else if statements in - default case. - * reload.c (find_reloads): Likewise. - -2003-10-29 Richard Henderson - - * config/m68k/m68k.c (notice_update_cc): Clear cc status for - shifts and rotates. - -2003-10-30 Alan Modra - - * config/rs6000/rs6000.md: Remove duplicate pattern. - -2003-10-29 Hans-Peter Nilsson - - * real.c (do_divide): Initialize result with a 0. - - * configure.in : Look for - first. AC_DEFINE HAVE_VALGRIND_MEMCHECK_H - if it exists. - * configure, config.in: Regenerate. - * ggc-common.c [ENABLE_VALGRIND_CHECKING && - HAVE_VALGRIND_MEMCHECK_H]: Include . Use - #elif for other alternatives. - * ggc-page.c: Ditto. - * ggc-zone.c: Don't assume ; instead copy - include structure from ggc-common.c. - -2003-10-29 John David Anglin - - * pa-linux.h (ASM_OUTPUT_ADDR_VEC_ELT): Use label in big switch ELTs. - (ASM_OUTPUT_ADDR_DIFF_ELT): Use label difference in big switch ELTs. - * pa.c (pa_adjust_insn_length): Check for btable branches using - attribute TYPE_BTABLE_BRANCH. - (pa_reorg): Simplify. - * pa.h (CASE_VECTOR_MODE): Change big switch mode to SImode. - (ASM_OUTPUT_ADDR_VEC_ELT): As above. - (ASM_OUTPUT_ADDR_DIFF_ELT): As above. - * pa.md (btable_branch): New instruction type. - (in_branch_delay, in_nullified_branch_delay, in_call_delay): Disallow - btable branches. - (define_delay): Add btable branches to insn types that may have an - insn in the delay position. - (Z2, Z3): Add btable branch to list. - Simplify unamed pattern set copy pic_label_operand to register. Add - PA 2.0 variant. - (short_jump): New jump for use in branch tables. - (casesi, casesi0): Revise for new branch table formats. - (casesi32, casesi32p, casesi64p): New casesi patterns. - (indirect_jump): Move. - -2003-10-29 David Edelsohn - - * config/rs6000/rs6000.h (UNITS_PER_WORD): Revert to - !TARGET_POWERPC64. - (UNITS_PER_GPR_WORD): Delete. - (HARD_REGNO_NREGS): Revert to UNITS_PER_WORD. - (HARD_REGNO_MODE_OK): Same. - (CLASS_MAX_NREGS): Same. - -2003-10-29 John David Anglin - - * pa.h (ASM_COMMENT_START): Define. - -2003-10-29 Zack Weinberg - - * genmodes.c (complete_mode): Record MODE_CC, MODE_INT, - MODE_FLOAT, and MODE_PARTIAL_INT modes as having one - component, not zero. - -2003-10-29 Andreas Schwab - - * config/ia64/t-ia64 (LIB2ADDEH): Add $(srcdir)/gthr-gnat.c. - -2003-10-29 Eric Botcazou - - * config/sparc/sparc.c (function_arg_partial_nregs) [TARGET_ARCH64]: - Never return 1 for complex integral modes whose size is lesser or - equal to a word. - (function_arg_pass_by_reference) [TARGET_ARCH64]: Mention CTImode - in the comment. - (function_arg_advance) [TARGET_ARCH64]: Don't special-case complex - modes. - (sparc_va_arg) [TARGET_ARCH64]: Handle any types whose size is - greater than 16 bytes by reference. - -2003-10-29 Richard Kenner - - * config/ia64/ia64.c (ia64_assemble_integer): Test POINTER_SIZE, - not TARGET_ILP32. - (ia64_initialize_trampoline): Use globalize_label target call. - -2003-10-29 Andreas Schwab - - * doc/install.texi (Building): Add a sentence about building Ada - for a canadian cross. - -2003-10-28 Zack Weinberg - - * config/ia64/ia64.c (cmptf_libfunc): New static. - (ia64_expand_compare): Add logic to open-code calls to - _U_Qfcmp for TFmode comparisons. - (ia64_hpux_init_libfuncs): Initialize cmptf_libfunc. - Set libfuncs for TFmode eq/ne/gt/ge/lt/gt to 0; these should - never be generated anymore. - * config/ia64/ia64.md (cmptf): New expander. - -2003-10-28 Zack Weinberg - - * ia64.md (UNSPEC_SETF_EXP,UNSPEC_FR_SQRT_RECIP_APPROX): New constants. - (*sqrt_approx): New instruction pattern for approximate square roots. - (*setf_exp_xf): New instruction pattern for exponentiation. - (*maddxf4_alts_truncsf): New instruction pattern for truncation. - (sqrtsf2_internal_thr): New define_and_split implementing - throughput-optimized inline calculation of SFmode square root. - (sqrtdf2_internal_thr): Likewise for DFmode. - (sqrtxf2_internal_thr): Likewise for XFmode. - (sqrtsf2, sqrtdf2, sqrtxf2): New expanders to choose between - latency- and throughput-optimized square root algorithms. - * ia64.h (MASK_INLINE_SQRT_LAT, MASK_INLINE_SQRT_THR, - TARGET_INLINE_SQRT_LAT, TARGET_INLINE_SQRT_THR, TARGET_INLINE_SQRT): - New macros. - (TARGET_SWITCHES): Add -minline-sqrt-min-latency and - -minline-sqrt-max-throughput. - * ia64.c (ia64_override_options): If both -minline-sqrt-min-latency - and -minline-sqrt-max-throughput are given, notify the user - that both options cannot be used simultaneously. - If -minline-sqrt-min-latency is given, notify the user that - this mode is not yet implemented. - (rtx_needs_barrier): Reformat initial comment to obey - 72-character width limit. Support UNSPEC_SETF_EXP and - UNSPEC_FR_SQRT_RECIP_APPROX. - -2003-10-29 Alan Modra - - * config/rs6000/rs6000.md (movdf_softfloat64): Allow dummy ctr,ctr - moves. - -2003-10-28 Franz Sirl - - PR target/11598 - PR libgcj/10610 - * config/rs6000/sysv4.h (PREFERRED_STACK_BOUNDARY): New macro. - -2003-10-28 Richard Earnshaw - - * arm.c (arm_output_epilogue): When using a frame pointer, don't emit - an extra stack adjustment insn if the stack pointer is already - pointing at the right place. - (use_return_insn): Allow a return insn to be used when we have a - frame pointer if the stack pointer is in the right place. - (output_return_instruction): Handle it. - -2003-10-28 Andreas Jaeger - - * ggc-zone.c (check_cookies): Add missing variable. - Add void to prototypes. - -2003-10-27 Kaveh R. Ghazi - - * config/mips/irix6-libc-compat.c (inet_makeaddr): Prototype. - * crtstuff.c (__do_global_ctors_1): Move prototype. - * unwind-dw2.c (NO_SIZE_OF_ENCODED_VALUE): Define when - appropriate. - * unwind-sjlj.c (_Unwind_GetCFA, _Unwind_FindEnclosingFunction): - Mark parameter with __attribute__((unused)). - -2003-10-27 Zack Weinberg - - * c-decl.c (pushdecl): Clarify comment. - -2003-10-27 Arnaud Charlet - - * doc/install.texi: Update instructions for Ada cross builds - - PR ada/5909: - * doc/sourcebuild.texi: Document Ada test suite. - -2003-10-27 Stephane Carrez - - * config/m68hc11/m68hc11.c: Convert to ISO C90. - * config/m68hc11/m68hc11-protos.h: Likewise. - -2003-10-27 Jan Hubicka - Eric Botcazou - - * toplev.c (enum dump_file_index, dump_file): Fix ordering of - webizer pass dump. - -2003-10-27 Jakub Jelinek - Jan Hubicka - - * reload1.c (struct elim_table): Change offset, initial_offset and - previous_offset fields to HOST_WIDE_INT. - (offsets_at): Change from int to HOST_WIDE_INT. - (reload): Adjust offsets_at initialization. - (eliminate_regs_in_insn): Change type of offset to HOST_WIDE_INT. - (verify_initial_elim_offsets): Change type of t to HOST_WIDE_INT. - * config/i386/i386.c (ix86_compute_frame_layout): Change offset type - to HOST_WIDE_INT. Don't save regs using mov for huge frame sizes - if TARGET_64BIT. - (pro_epilogue_adjust_stack): New function. - (ix86_expand_prologue, ix86_expand_epilogue): Use it. - * config/i386/i386.md (pro_epilogue_adjust_stack): Remove. - (pro_epilogue_adjust_stack_1): Remove * in front of name. - (pro_epilogue_adjust_stack_rex64): Handle -2147483648 properly. - (pro_epilogue_adjust_stack_rex64_2): New insn. - - * config/i386/i386.c (ix86_expand_epilogue): Fix comment typo. - - * config/i386/i386.c (ix86_expand_call): Replace 40 with - FIRST_REX_INT_REG + 3 /* R11 */. - -2003-10-26 Richard Henderson - - * config/alpha/alpha.md (attr cannot_copy): New. - (call_osf_2_er, call_value_osf_2_er, ldgp_er_1, ldgp_er_2, - prologue_ldgp_er_2, prologue_ldgp_1): Set it. - * config/alpha/alpha.c (alpha_cannot_copy_insn_p): Test it. - -2003-10-26 Daniel Berlin - - * ggc-zone.c: New file, zone allocating collector. - * configure: Accept zone option for --with-gc - * configure.in: Ditto. - * ggc.h (ggc_pch_count_object): Pass bool indicating - stringiness. Update all callers. - (ggc_pch_alloc_object): Ditto. - (ggc_pch_write_object): Ditto. - (ggc_alloc_rtx): Use typed allocation, since all RTX's are of a single - type. - (ggc_alloc_rtvec): Ditto. - (ggc_alloc_tree): Use zone allocation, since some things using this macro - aren't a single typecode. - * ggc-none.c (ggc_alloc_typed): New function. - (ggc_alloc_zone): Ditto. - * ggc-page.c: Ditto on both functions. - -2003-10-26 Gunther Nikl - - * config/m68k/m68k.c (m68k_compute_frame_layout): Ensure FPU related - frame information is always valid. - (m68k_output_function_prologue): Remove superfluous TARGET_68881 - test; fix formatting. - -2003-10-26 Gunther Nikl - - * config/m68k/m68k.c (m68k_compute_frame_layout): Swap reg_mask and - reg_rev_mask computation. - (m68k_output_function_prologue): Fix usage of current_frame (one typo - and one missing); use reg_rev_mask not reg_mask. - (m68k_output_function_epilogue): Fix usage of current_frame; - use fpu_rev_mask not fpu_mask. - -2003-10-26 Bernardo Innocenti - - * config/m68k/m68k.c (m68k_output_function_prologue): Eliminate - num_saved_regs, use current_frame.reg_no instead. - -2003-10-26 Bernardo Innocenti - Paul Dale - - * doc/extend.texi (interrupt_handler): Add m68k to the - list of processors implementing it. - * doc/invoke.texi (-msep-data): Document new m68k option. - (-mno-sep-data): Likewise. - (-mid-shared-library): Likewise. - (-mno-id-shared-library): Likewise. - (-mshared-library-id): Likewise. - -2003-10-26 Andreas Jaeger - - * unwind-dw2.c (_Unwind_GetGR): Avoid warning about unsigned - comparison. - (_Unwind_SetGR): Likewise. - -2003-10-26 Ottavio Campana - - PR target/12690 - * config/i386/mmintrin.h (_mm_set1_pi8): Fix comment. - -2003-10-26 Gunther Nikl - - * config/m68k/m68k.c (m68k_output_function_prologue): Move front - comment from here to... - (m68k_save_reg): ...here. Fix comment formatting. - (m68k_output_function_prologue): Fix comment formatting. - (m68k_output_function_epilogue): Likewise. - (const_method): Likewise. - -2003-10-26 Kazu Hirata - - * toplev.c (default_get_pch_validity): Guard the use of - target_options with #ifdef TARGET_OPTIONS. - (default_pch_valid_p): Likewise. - -2003-10-26 Andreas Jaeger - Zack Weinberg - Andreas Tobler - - * dwarf2out.c (output_cfi): Use HOST_WIDE_INT_PRINT. - (output_die): Likewise. - (print_die): Likewise. - -2003-10-26 Andreas Jaeger - - * tree.h (dwarf2out_def_cfa, dwarf2out_args_size, - dwarf2out_reg_save, new_loc_descr): Update prototypes for recent - dwarf2out.c change. - - * toplev.c (default_pch_valid_p): Fix warning. - -2003-10-25 Roger Sayle - - * simplify-rtx.c (simplify_replace_rtx): Avoid allocating duplicate - RTL nodes. If an operator's operands are unchanged, return the - original argument unchanged. - -2003-10-26 Graham Stott - - Fix bootstrap failure. - * expmed.c (store_bit_field): Don't compare bitsize against - modes with zero bit-size. - - (extract_bit_field): Likewise - -2003-10-25 Jan Hubicka - - * dwarf2out.c (dw_cfi_oprnd_struct): Offset is HOST_WIDE_INT. - (cfa_loc): Likewise. - (reg_save, stack_adjust_offset, queue_reg_save): Replace long by - HOST_WIDE_INT. - (args_size, old_args_size): change type to HOST_WIDE_INT. - (dwarf2out_def_cfa, dwarf2out_args_size, - dwarf2out_reg_save, new_loc_descr): offset is HOST_WIDE_INT. - (dw_val_struct): integers, unsigneds and offsets are HOST_WIDE_INT. - (add_AT_int, add_AT_unsigned, att_AT_offset, AT_int, AT_unsigned, - AT_offset): Use HOST_WIDE_INT. - (based_loc_descr): offset is HOST_WIDE_INT. - (add_data_member): Likewise. - (add_const_value_attribute): Simplify. - -2003-10-25 Richard Henderson - - * config/i386/i386.c (ix86_eax_live_at_start_p): New. - (ix86_expand_prologue): Save and restore eax around stack probe - if it's live. - -2003-10-25 Jan Hubicka - - * cppcharset.c (one_utf8_to_utf32): Initialize 's' to silence warning. - -2003-10-25 Eric Botcazou - - PR target/12712 - * reg-stack.c (convert_regs_1): Create an arbitrary input stack - if the block has no predecessors. - (convert_regs_2): Document the problem with successors whose - only predecessor is the block to be processed. - (convert_regs): Don't create the arbitrary input stack here. - -2003-10-24 Zack Weinberg - - * genmodes.c (struct mode_data): Add contained and next_cont - fields. - (complete_mode): Maintain linked list of modes that have a - given component. - (emit_mode_unit_size): Delete. - (emit_mode_nunits): New. - (emit_insn_modes_c): Update to match. - (emit_mode_adjustments): Propagate size and alignment - adjustments from component modes to their containers. - * machmode.h (mode_unit_size): Delete. - (mode_nunits): New. - (GET_MODE_NUNITS): Just return the value in the table. - (GET_MODE_UNIT_SIZE): Compute using GET_MODE_INNER and - GET_MODE_SIZE. - * expmed.c (store_bit_field, extract_bit_field): Can use a - plain move instruction if bitsize >= GET_MODE_BITSIZE of - destination/source mode, respectively. - * varasm.c (assemble_real): Write out the full size of the - constant, not just its bitsize. - (output_constant): Honor TYPE_MODE of TREE_REAL_CSTs. - - * config/ia64/ia64-modes.def: Define XFmode as well as TFmode. - Use ADJUST_BYTESIZE and ADJUST_ALIGNMENT to set size and - alignment of XF and TF modes in compliance with ia64 ABIs. - Can now hardwire the format of both modes. - * config/ia64/ia64.c: Change TFmode to XFmode wherever appropriate. - (general_tfmode_operand, destination_tfmode_operand) - (tfreg_or_fp01_operand, spill_tfmode_operand): Rename to - general_xfmode_operand, destination_xfmode_operand, - xfreg_or_fp01_operand, spill_xfmode_operand respectively. - (ia64_init_builtins): Make TYPE_PRECISION of fpreg_type - and float80_type be 96 so they get XFmode. Use !TARGET_HPUX, - not INTEL_EXTENDED_IEEE_FORMAT, to decide how to define - __float128. - * config/ia64/ia64.h: Default TARGET_HPUX to 0. - Change TFmode to XFmode wherever appropriate. Remove all - references to INTEL_EXTENDED_IEEE_FORMAT. - (LONG_DOUBLE_TYPE_SIZE): Varies with TARGET_HPUX. - (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define (always 96). - (PREDICATE_CODES): Update to match function renames. - * config/ia64/ia64.md: Change TF to XF throughout; rename all - patterns to match. Remove all references to - INTEL_EXTENDED_IEEE_FORMAT. Update predicate calls to match - function renames. - * config/ia64/ia64-protos.c: Update all prototypes to match - renamed functions. - * config/ia64/hpux.h: Redefine TARGET_HPUX to 1. - Remove all references to INTEL_EXTENDED_IEEE_FORMAT. - * config/ia64/lib1funcs.asm: Add __divxf3 as new name for - __divtf3; keep old name for backward compatibility. - (L__compat): New section providing forwarding stubs for - __fixtfti, __fixunstfti, __floattitf. - * config/ia64/t-ia64: Add __compat to LIB1ASMFUNCS. - -2003-10-24 Geoffrey Keating - - PR 10757 - * c-pch.c: Include target.h. Improve comments. - (struct c_pch_validity): Add target_data_length. - (pch_init): Add target's validity data. - (c_common_valid_pch): Check target's validity data. - * target-def.h (TARGET_GET_PCH_VALIDITY): New. - (TARGET_PCH_VALID_P): New. - (TARGET_INITIALIZER): Add new fields. - * target.h: Include tm.h. - (struct gcc_target): Add get_pch_validity, pch_valid_p. - * toplev.h (default_get_pch_validity): New prototype. - (default_pch_valid_p): New prototype. - * toplev.c (default_get_pch_validity): New routine. - (default_pch_valid_p): New routine. - * Makefile.in (TARGET_H): Add TM_H. Replace all users of - target.h with $(TARGET_H). - (c-pch.o): Add TARGET_H. - * doc/tm.texi (PCH Target): New node. - (TARGET_GET_PCH_VALIDITY): Document. - (TARGET_PCH_VALID_P): Document. - -2003-10-24 Kelley Cook - - * Makefile.in: Define a vpath for %.texi. Remove explicit $(docdir) - and $(docdir)/include from any *.texi dependencies. - ($(docobjdir)/%.dvi): Depend on stmp-docobjdir. - ($(docobjdir)/%.1): Depend on .pod instead of .texi. - ($(docobjdir)/%.7): Likewise. - (%.pod): New implicit rule. - (cpp.pod): New dependency only rule. - (gcc.pod): New intermediate rule with dependencies and commands. - (gfdl.pod): Likewise. - (fsf-funding.pod): Likewise. - -2003-10-24 Nathanael Nerode - - * fixinc/mkfixinc.sh: Remove special cases for svr4 and ptx, and - related code. - * fixinc/fixinc.ptx: Remove. - * fixinc/fixinc.svr4: Remove. - -2003-10-24 Ulrich Weigand - - * config/s390/s390.c (load_multiple_operation): Allow both SImode - and DImode if word_mode is DImode. - (store_multiple_operation): Likewise. - * config/s390/s390.md ("load_multiple", "store_multiple"): Likewise. - ("*load_multiple_di"): Allow only if word_mode == DImode. - ("movqi"): Use LLGC whenever TARGET_ZARCH. - ("fix_truncdfsi2"): Fix incorrect temporary size. - ("fix_truncsfsi2"): Likewise. - ("*bras_r", "*brasl_r", "*basr_r"): Remove predicate and constraint - string for function return value operand. - ("*bras_tls", "*brasl_tls", "*basr_tls"): Likewise. - -2003-10-24 Joseph S. Myers - - * c-parse.in (array_declarator): Use expr_no_commas. - Fixes PR c/11943. - -2003-10-24 Richard Sandiford - - * config/mips/linux.h: Wrap MD_FALLBACK_FRAME_STATE_FOR and - associated includes in #ifndef inhibit_libc. - -2003-10-24 Roger Sayle - - * doc/libgcc.texi: Document some more of the libgcc API. - -2003-10-24 Richard Earnshaw - - * arm.c (arm_rtx_costs_1, case TARGET_THUMB): Adjust costs for - comparing a constant with small negative numbers and add costing - for constants in conjunction with AND. - (note_invalid_constants): Tidy previous change. - (thumb_cmp_operand): Tidy. - (thumb_cmpneg_operand): New function. - * arm.h (CONDITIONAL_REGISTER_USAGE): Don't use HI regs if optimizing - for size. - (FIRST_LO_REGNUM, FIRST_HI_REGNUM, LAST_HI_REGNUM): Define. - (PREDICATE_CODES): Add thumb_cmpneg_operand. - * arm.md (cbranchsi4): Convert to define_expand. Handle comparison - with a negative constant. - (cbranchsi4_insn): Matcher for cbranchsi4. - (cbranchsi4_scratch): Similar, but a scratch is available for - handling negative constants. - (movsi_cbranchsi4): New pattern. - (tstsi3_cbranch): Renamed from andsi3_cbranch_scratch, remove scratch - and use the TST instruction. - (andsi3_cbranch, orrsi3_cbranch, xorsi3_cbranch, cbranchne_decr1) - (addsi3_cbranch, subsi3_cbranch): Ensure that register preferencing - cannot see high regs or memory alternatives. - (bicsi3_cbranch_scratch, bicsi3_cbranch): New patterns. - -2003-10-24 Richard Earnshaw - - * arm.c (note_invalid_constants): Try to extract the constant - pool value using avoid_constant_pool_reference; only use - get_pool_constant if that returns the original reference. - -2003-10-24 Jan Hubicka - - PR c++/12624 - * varasm.c (notice_global_symbol): Disqualify global registers. - -2003-10-23 Roger Sayle - - PR middle-end/11414 - * loop.c (load_mems): Use redirect_jump to forward jumps from - the original loop end label to the new "loop sink" block's label. - -2003-10-23 Roger Sayle - - PR middle-end/12705 - * optabs.c (expand_binop): When expanding complex operations - inline, always calculate result into a new temporary register. - Minor code clean-ups. - -2003-10-24 Rainer Orth - - * objc/lang-specs.h: Handle -print-objc-runtime-info. - * doc/invoke.texi (Objective-C Dialect Options): Document it. - -2003-10-24 Danny Smith - - * config/i386/cygwin.asm: Add copyright notice. Add comment - on why this code is needed. - -2003-10-23 Kazu Hirata - - * config/h8300/clzhi2.c: Fix warnings. - * config/h8300/ctzhi2.c: Likewise. - * config/h8300/fixunssfsi.c: Likewise. - * config/h8300/parityhi2.c: Likewise. - * config/h8300/popcounthi2.c: Likewise. - -2003-10-23 James E Wilson - - * gcc.c (option_map): Delete --target and --use-version. - -2003-10-23 Fariborz Jahanian - David Edelsohn - - * config/rs6000/rs6000.h (UNITS_PER_WORD): Use TARGET_32BIT, not - TARGET_POWREPC64. - (UNITS_PER_GPR_WORD): Define. - (HARD_REGNO_NREGS): Use UNITS_PER_GPR_WORD. - (HARD_REGNO_CALL_PART_CLOBBERED): Define. - (HARD_REGNO_MODE_OK): Use UNITS_PER_GPR_WORD. - (CLASS_MAX_NREGS): Use UNITS_PER_GPR_WORD. - * config/rs6000/rs6000.c (function_arg): Generate PARALLEL for - DFmode and DImode in 32-bit ABI / 64-bit computation mode. - (rs6000_emit_prologue): Select reg_mode and reg_size using - TARGET_32BIT, not TARGET_POWERPC64. - (rs6000_function_value): Generate PARALLEL for DImode in 32-bit - ABI / 64-bit computation mode - -2003-10-22 Andrew Haley - - * toplev.c (output_file_directive): Allow for null input_name. - -2003-10-22 Waldek Hebisch - - * config/i386/i386.c (classify_argument): Handle SET_TYPE. - -2003-10-22 Chris Demetriou - - * configure.in: In --enable-generated-files-in-srcdir option - handling, fix default case handling. - * configure: Regenerate. - -2003-10-22 Phil Edwards - - * config.gcc: Update *-*-vxworks* generic hook and comments. - (arm-wrs-vxworks, i[4567]86-wrs-vxworks, mips-wrs-vxworks, - mips-wrs-windiss, sh-wrs-vxworks): New stanzas. - * genmultilib: Allow the MULTILIB_OSDIRNAMES to be mapped directly. - * config/svr4.h (SWITCH_TAKES_ARG): Undefine it before redefining it. - * config/windiss.h: New file. - * config/arm/t-vxworks: New file. - * config/arm/vxworks.h: New file. - * config/i386/t-vxworks: New file. - * config/i386/vxworks.h: New file. - * config/mips/t-vxworks: New file. - * config/mips/vxworks.h: New file. - * config/mips/windiss.h: New file. - * config/sh/t-vxworks: New file. - * config/sh/vxworks.h: New file. - -2003-10-22 Kazu Hirata - - * config/h8300/h8300.c (h8300_output_function_epilogue): Remove. - (h8300_saveall_function_p): New. - (h8300_insert_attributes): Insert the saveall attribute if - #pragma saveall is specified. - (h8300_attribute_table): Add saveall. - (TARGET_ASM_FUNCTION_EPILOGUE): Remove. - * doc/extend.texi: Mention the saveall attribute. - -2003-10-22 Joseph S. Myers - - * c-typeck.c (pedantic_lvalue_warning): Unconditionally warn of - deprecation of casts as lvalues. - * fixinc/inclhack.def (obstack_lvalue_cast): New fix. - * fixinc/fixincl.x: Regenerate. - * fixinc/tests/base/obstack.h: New test. - -2003-10-22 Andreas Schwab - - PR target/12676 - * config/m68k/m68k.c (output_addsi3): Fix range check to work on - LP64 platforms. - -2003-10-22 Jan Hubicka - - * dwarf2out.c (dwarf2out_abstract_function): Use DW_AT to check - presence of DW_AT_inline. - (gen_subprogram_die): Likewise; do not abort instead of emitting - DW_AT_not_inline. - -2003-10-22 Jan Hubicka - - * cgraph.c (cgraph_function_possibly_inlined_p): Be conservative when - global info is not ready. - -2003-10-22 Kazu Hirata - - * doc/extend.texi: Mention H8S wherever H8/300H is mentioned. - -2003-10-22 Ulrich Weigand - - * config/s390/s390.md ("movstr_short_64", "movstr_short_31"): Merge ... - ("*movstr_short"): ... into this insn pattern. - ("movstr_short"): New expander. - ("*movstr_long_64"): Rename from "movstr_long_64", simplify. - ("*movstr_long_31"): Rename from "movstr_long_31", simplify. - ("movstr_long"): New expander. - ("clrstr_short_64", "clrstr_short_31"): Merge ... - ("*clrstr_short"): ... into this insn pattern. - ("clrstr_short"): New expander. - ("*clrstr_long_64"): Rename from "clrstr_long_64", simplify. - ("*clrstr_long_31"): Rename from "clrstr_long_31", simplify. - ("clrstr_long"): New expander. - ("cmpmem_short_64", "cmpmem_short_31"): Merge ... - ("*cmpmem_short"): ... into this insn pattern. - ("cmpmem_short"): New expander. - ("*cmpmem_long_64"): Rename from "cmpmem_long_64". - ("*cmpmem_long_31"): Rename from "cmpmem_long_31". - ("cmpmem_long"): New expander. - * config/s390/s390.c (s390_expand_movstr): Use new expanders. - (s390_expand_clrstr): Likewise. - (s390_expand_cmpmem): Likewise. - -2003-10-22 Mark Mitchell - - * c-pch.c (struct c_pch_validity): Add pch_init field. - (pch_init): Set it. - (c_common_valid_pch): Check it. - -2003-10-22 David Taylor - - PR debug/12500 - * dbxout.c (dbxout_typedefs): Use COMPLETE_OR_VOID_TYPE_P. - -2003-10-22 Richard Kenner - - * config/alpha/alpha.c (function_value [ENABLE_CHECKING]): Don't call - alpha_return_in_memory if no VALTYPE specified. - -2003-10-22 Jan Hubicka - - PR debug/12389 - * Makefile.in (dwarf2out.o): Depend on cgraph.h. - * cgraph.c (cgraph_function_possibly_inlined_p): New function. - * cgraph.h (cgraph_function_possibly_inlined_p): Declare. - (cgraph_global_info): Add flag inlined - * dwarf2out.c (gen_subprogram_die, gen_decl_die): Use - cgraph_function_possibly_inded_p - * cgraphunit.c (mark_inline): Set inlined flag. - * toplev.c (rest_of_decl_compilation): Call outlining_inline_function - only for possibly inlined functions. - * c-decl.c (duplicate_decls): Never output abstract DIE representing old - body of function. - -2003-10-22 Andrew Haley - - * varasm.c (output_constructor): Make constructor annotation - conditional on ASM_COMMENT_START. - -2003-10-21 Jason Merrill - - * tree.c (get_unwidened): Check TREE_UNSIGNED on the field's type. - (get_narrower): Likewise. - - * stor-layout.c (layout_decl): Do packed field alignment for - bit-fields, too. - -2003-10-21 Eric Christopher - - * expr.c (convert_move): Use FLOAT_EXTEND for extensions. - -2003-10-21 Geoffrey Keating - - * c-pch.c: Add comments in various places. - (struct c_pch_validity): Add the lengths of various strings. - (host_machine): New static. - (target_machine): New static. - (get_ident): Bump version number. - (pch_init): Write out version, host, target validity data. - (c_common_valid_pch): Check version, host, target. - * Makefile.in (c-pch.o): Add version.h; define HOST_MACHINE and - TARGET_MACHINE. - -2003-10-21 Jason Merrill - - * tree.h (IS_EXPR_CODE_CLASS): Use strchr. - (EXPR_P): New macro. - -2003-10-21 Zack Weinberg - - * config/ia64/ia64.md (cmpxchg_acq_si): Mark operand 3 as DImode. - * config/ia64/ia64.c (ia64_expand_fetch_and_op, - ia64_expand_op_and_fetch): Make sure the REG for ar.ccv is - DImode. Use convert_move to load ar.ccv. - (ia64_expand_compare_and_swap): Likewise. - If expand_expr doesn't put 'old' and 'new' in the proper - modes, run them through convert_to_mode. - -2003-10-21 Eric Christopher - - * config/frv/frv.c (frv_adjust_field_align): Check DECL_ARTIFICIAL - for too large bitfields. - -2003-10-21 Mark Mitchell - - * Makefile.in ($(docobjdir)/%.info): Honor BUILD_INFO. - -2003-10-21 Andrew Haley - - * varasm.c (output_constructor): Annotate constructor. - -2003-10-21 Mark Mitchell - - * Makefile.in ($(DESTDIR)$(infodir)/%.info): Conditionalize chmod - on existence of destination file. - -2003-10-21 Jan Hubicka - - * haifa-sched.c (choose_ready): Initialize index. - -2003-10-21 Jason Merrill - - * tree.c (build1): Fix off-by-one error. - -2003-10-21 Robert Millan - - * config/i386/kfreebsdgnu.h: New. i386-*-kfreebsd-gnu definitions. - * config/kfreebsdgnu.h: New. *-*-kfreebsd-gnu definitions. - * config/t-kfreebsd-gnu: New. *-*-kfreebsd-gnu tmake_file. - * config.gcc: Add *-*-kfreebsd*-gnu and i[34567]86-*-kfreebsd*-gnu. - -2003-10-21 Eric Botcazou - - * web.c: Fix various comments. - -2003-10-20 Nicolas Pitre - - * config/arm/arm.c (arm_override_options): Set arm_constant_limit - to 2 instead of 1 when optimize_size is true. Gather code based on - optimize_size together. Add comment about XScale load latency. - -2003-10-21 Gunther Nikl - - * config/m68k/m68k.c (m68k_output_function_prologue): Remove - obsolete comments. - -2003-10-20 Kelley Cook - - * Makefile.in: Get parsedir and docobjdir from configure. - * configure.in: Recogonize --enable-generated-files-in-srcdir. - Pass along parsedir and docobjdir. - * configure: Regenerate. - * doc/install.texi: Document --enable-generated-files-in-srcdir. - -2003-10-20 Kelley Cook - - * Makefile.in: Define $(docdir) before the Make-lang.in fragments are - included. - -2003-10-20 Joseph S. Myers - - * c-common.c (expand_tree_builtin): Ensure creal and cimag - functions do not return lvalues. - -2003-10-20 Jason Merrill - - PR c/12553 - * tree.c (build1) : Set TREE_SIDE_EFFECTS - appropriately. - - PR c/11446 - * stor-layout.c (layout_decl): Fix alignment handling. - -2003-10-20 Joseph S. Myers - - * doc/extend.texi: Deprecate casts as lvalues. - -2003-10-20 Jan Hubicka - - * toplev.c (rest_of_compilation): Fix webizer pass ordering. - - * cgraphunit.c (decide_is_function_needed): Fix test dealing - with functions implicitly made inline. - - * cgraphunit.c (cgraph_decide_inlining_incrementally): New function. - (cgraph_finalize_function): Use it. - (cgraph_mark_inline): Allow incrmental decisions - * invoke.texi (max-inline-slope, min-inline-insns): Kill. - * params.def (PARAM_MAX_INLINE_SLOPE, PARAM_MIN_INLINE_INSNS): Kill. - * tree-inline.c (limits_allow_inlining): Kill. - (expand_call_inline): Always use unit-at-a-time path. - -2003-10-20 Zack Weinberg - - * fixinc/inclhack.def (hpux11_snprintf): New edit. - * fixinc/fixincl.x: Regenerate. - * fixinc/tests/base/stdio.h: Add test for hpux11_snprintf. - -2003-10-20 Mark Mitchell - - * Makefile.in (install-info): Simplify. - ($(DESTDIR)$(infodir)/%.info): New rule. - * configure.in (target_list): Remove install-info. - * doc/.cvsignore (gcc.info*): Remove. - (gccint.info*): Likewise. - (gccinstall.info*): Likewise. - (cpp.info*): Likewise. - (cppinternals.info*): Likewise. - (*.info*): Add it. - * doc/sourcebuild.texi: Update description of install-info. - * objc/Make-lang.in (objc.install-info): Remove. - -2003-10-20 Rainer Orth - - * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Define _ABIO32. - Use it in _MIPS_SIM definition. - * config/mips/mips.h (CRT_CALL_STATIC_FUNCTION): Likewise. - -2003-10-20 Zack Weinberg - - * config/i386/i386.c (print_reg): Abort if REGNO (x) is a - virtual register, but only if file == asm_out_file. - * config/i386/i386.h (HI_REGISTER_NAMES): Use "argp", not "", - for ARG_POINTER_REGNUM. - -2003-10-20 Zack Weinberg - - * c-common.c (registered_builtin_types): New static. - (c_common_type_for_mode): Consult registered_builtin_types. - (c_register_builtin_type): Add type to registered_builtin_types. - * optabs.c (init_floating_libfuncs): Initialize libfuncs for - all MODE_FLOAT modes, not just the ones corresponding to - float_type_node, double_type_node, and long_double_type_node. - -2003-10-20 Richard Henderson - - * config/alpha/alpha.h (PREDICATE_CODES): Add normal_memory_operand. - * config/alpha/alpha-protos.h: Remove PREDICATE_CODES prototypes. - -2003-10-20 Dorit Naishlos - - * config/rs6000/rs6000.h: (rs6000_sched_insert_nops): - support new flag -minsert-sched-nops. - (DEFAULT_SCHED_FINISH_NOP_INSERTION_SCHEME): Define. - * config/rs6000/rs6000.c: (rs6000_sched_insert_nops): - support new flag -minsert-sched-nops. - (is_cracked_insn, is_microcoded_insn): New functions. - (rs6000_sched_finish): New function. - (rs6000_issue_rate): Return 5 for power4. - (get_next_active_insn, insn_terminates_group_p): New - functions. - (is_costly_group, force_new_group): New functions. - (redefine_groups, pad_groups): New functions. - (rs6000_variable_issue): Use new functions. - * doc/invoke.texi (-minsert-sched-nops): Document new - option. - -2003-10-20 David S. Miller - - * config/sparc/sparc.md (type attribute): Add new insn types - fpa, fpm_pack, fgm_mul, fgm_pdist, and fgm_cmp for VIS. - (patterns emitting VIS insns): Use them. - * config/sparc/ultra1_2.md: Add VIS scheduling rules. - * config/sparc/ultra3.md: Likewise. - -2003-10-20 Falk Hueffner - - PR target/12654 - * config/alpha/alpha.c (alpha_emit_conditional_branch): Don't do - comparison against constant by adjusting the argument except for - EQ and NE. - -2003-10-19 Mark Mitchell - - * config.gcc: Add support for arm926ejs, arm1026ejs, arm1136js, - arm1136jfs, and armv6j. - * config/arm/arm.c (FL_ARCH6J): New macro. - (FL_VFPV2): Likewise. - (all_cores): Add entries for arm926ejs, arm1026ejs, arm1136js, - and arm1136jfs. - (all_architectures): Add entry for armv6j. - (arm_override_options): Add entries for arm926ejs, arm1026ejs, - arm1136js, and arm1136jfs. - * config/arm/arm.h (TARGET_CPU_arm926ej_s): New macro. - (TARGET_CPU_arm1026ej_s): Likewise. - (TARGET_CPU_arm1136j_s): Likewise. - (TARGET_CPU_arm1136jf_s): Likewise. - * doc/invoke.texi: Document new ARM cores and architecture - variants. - -2003-10-19 Zdenek Dvorak - - * Makefile.in (toplev.o): Add value-prof.h dependency. - (value-prof.o): Add REGS_H dependency. - * common.opt (fprofile-values, fvpt): New. - * flags.h (flag_value_profile_transformations): Declare. - * opts.c (common_handle_option): Handle -fprofile_values and - -fvpt. - * profile.c (branch_prob): Don't remove death notes here. - * timevar.def (TV_VPT): New. - * value-prof.c: Include regs.h. - (insn_divmod_values_to_profile, gen_divmod_fixed_value, gen_mod_pow2, - gen_mod_subtract, divmod_fixed_value_transform,mod_pow2_value_transform, - mod_subtract_transform, value_profile_transformations): New. - (insn_values_to_profile): Call insn_divmod_values_to_profile. - (find_values_to_profile): Add dumps. - * value-prof.h (value_profile_transformations): Declare. - * toplev.c: Include value-prof.h. - (rest_of_handle_value_profile_transformations): New. - (enum dump_file_index): Add DFI_vpt. - (dump_file): Add vpt dump. - (flag_value_profile_transformations): New. - (lang_independent_options): Add flag_profile_values and - flag_value_profile_transformations. - (rest_of_compilation): Call - rest_of_handle_value_profile_transformations. - (process_options): Let -fvpt imply -fprofile-values. - * doc/invoke.texi (-fvpt): Document. - -2003-10-19 Jan Hubicka - - * i386.c (print_reg): Do not abort on certain registers. - - PR optimization/12612 - * reg-stack.c (subst_stack_regs_pat): Use st(1) for clobbers. - * i386.md (fpatan, fyl2x, fscale patterns and expanders): Use - match_scratch; avoid bogus paralles. - - PR target/12674 - * i386.c (ix86_function_regparm): Disable implicit register passing - conventions when profiling. - -2003-10-19 Eric Botcazou - Richard Henderson - - PR optimization/8178 - * config/i386/i386.md (*movsi_zero): Delete. - (*ffs_no_cmove): Use ix86_expand_clear to zero the third operand. - -2003-10-19 Richard Henderson - - * config/alpha/alpha.c (fix_operator): New. - (divmod_operator): Tidy. - (alpha_emit_xfloating_cvt): Handle UNSIGNED_FIX. - * config/alpha/alpha.h (FIXUNS_TRUNC_LIKE_FIX_TRUNC): Remove. - (PREDICATE_CODES): Update. - * config/alpha/alpha.md (fix_truncdfsi_ieee): Use match_operator. - (fix_truncdfsi_internal, fix_truncdfdi_ieee): Likewise. - (fix_truncsfsi_ieee, fix_truncsfsi_internal): Likewise. - (fix_truncsfdi_ieee): Likewise. - (fix_truncdfdi2, fix_truncsfdi2): Turn into define_expand. - (fixuns_truncdfdi2, fixuns_truncsfdi2, fixuns_trunctfdi2): New. - * config/alpha/alpha-protos.h: Update. - -2003-10-19 Richard Sandiford - - * config/mips/mips.h (INITIALIZE_TRAMPOLINE): Simplify. - * config/mips/mips.c (mips_load_got): Assume Pmode == ptr_mode. - * config/mips/mips.md (extendsidi2, *extendsidi2): Merge. Don't accept - constant operands. - -2003-10-18 Kazu Hirata - - * doc/extend.texi: Fix typos. - * doc/invoke.texi: Likewise. - -2003-10-18 Nicolas Pitre - - * config/arm/arm.c (arm_override_options): Use arm_tune_xscale for - XScale optimizations not arm_arch_xscale. - * config/arm/arm.h (CONSTANT_ALIGNMENT_FACTOR, MOVE_RATIO): Likewise. - -2003-10-18 Ulrich Weigand - - * config/s390/s390-protos.h (shift_count_operand): Add prototype. - * config/s390/s390.c (shift_count_operand): New function. - (s390_extra_constraint): Use it to implement 'Y' constraint. - (print_shift_count_operand): New function. - (print_operand): Use it to implement '%Y'. - * config/s390/s390.h (EXTRA_ADDRESS_CONSTRAINT): Add 'Y' constraint. - (PREDICATE_CODES): Add shift_count_operand. - * config/s390/s390.md ("rotldi3"): Merge alternatives, - using "shift_count_operand" predicate and "Y" constraint, - and "%Y" to output the combined shift count. - ("rotlsi3"): Likewise. - ("ashldi3", "*ashldi3_31", "*ashldi3_64"): Likewise. - ("ashrdi3", "*ashrdi3_31", "*ashrdi3_64", "*ashrdi3_cc_31", - "*ashrdi3_cc_64", "*ashrdi3_cconly_31", "*ashrdi3_cconly_64"): Likewise. - ("ashlsi3", "ashrsi3", "*ashrsi3_cc", "*ashrsi3_cconly"): Likewise. - ("lshrdi3", "*lshrdi3_31", "*lshrdi3_64"): Likewise. - ("lshrsi3"): Likewise. - -2003-10-18 Gunther Nikl - - * config/m68k/m68k.c (m68k_output_function_epilogue): Add missing - argument to asm_fprintf statement. - -2003-10-18 Fariborz Jahanian - - * rs6000.md: Separate TARGET_POWERPC64 patterns for TARGET_64BIT or TARGET_32BIT. - (ashrdisi3_noppc64) Generate more efficient code for 32-bit right-shift of - a "long long" argument. - -2003-10-18 Alexandre Oliva - - * final.c (final_scan_insn): Run FINAL_PRESCAN_INSNS on asm insns - as well. - -2003-10-18 Richard Sandiford - - * rtl.h (rtl_size): Declare. - (rtunion): Remove rtwint. - (rtx_def): Replace 'fld' with a union of an rtunion or a HOST_WIDE_INT. - (RTX_HDR_SIZE, RTX_SIZE): New macros. - (RTL_CHECK1): Adjust for new rtx_def layout. - (RTL_CHECK2, RTL_CHECKC1, RTL_CHECKC2): Likewise. - (XWINT, XCWINT): Likewise. Access the rtx structure directly. - (X0WINT): Remove. - (X0ANY): New macro. - * rtl.def: Adjust comments for new rtx_def layout. - * ggc.h (ggc_alloc_rtx): Take the rtx code as argument, not the - number of slots. - * rtl.c (rtx_size): New array. - (rtx_alloc): Adjust call to ggc_alloc_rtx. Use RTX_HDR_SIZE. - (copy_rtx): Use RTX_HDR_SIZE. Adjust for new rtx_def layout. - (shallow_copy_rtx): Adjust call to ggc_alloc_rtx. Use RTX_SIZE. - * integrate.c (copy_rtx_and_substitute): Use X0ANY to copy '0' fields. - * emit-rtl.c (copy_most_rtx): Likewise. - (copy_rtx_if_shared): Use RTX_SIZE. - (copy_insn_1): Use RTX_HDR_SIZE. Adjust for new rtx_def layout. - * gengenrtl.c (gendef): Adjust ggc_alloc_rtx call. Use RTX_HDR_SIZE. - * gengtype.c (write_rtx_next): Use RTX_HDR_SIZE. - (adjust_field_rtx_def): Expect "rtx_def" to be a union rather than - an array. Adjust output for new rtx_def layout. - * ggc-page.c (RTL_SIZE): Use RTX_HDR_SIZE. - * reload1.c (eliminate_regs): Use RTX_SIZE. - * rtlanal.c (loc_mentioned_in_p): Adjust for new rtx_def layout. - * gdbinit.in (pi): Likewise. - -2003-10-18 Jan Hubicka - - * integrate.c (copy_decl_for_inlining): Revert previous patch. - -2003-10-18 Jan Hubicka - - * integrate.c (copy_decl_for_inlining): Fix copying of copies. - -2003-10-18 Roger Sayle - - * libgcc.texi: Group multi-word types, such as "long double" and - "unsigned int", using braces in @deftypefn and @deftypefnx nodes. - Document __unord?f2 as returning a non-zero value, not just one. - -2003-10-18 Hans-Peter Nilsson - - * config/mmix/t-mmix (CRTSTUFF_T_CFLAGS): Define. - ($(T)crti.o, $(T)crtn.o): Pass CRTSTUFF_T_CFLAGS here too. - -2003-10-18 Eric Botcazou - - * config/i386/k6.md (k6_alux): Use the 'mode' attribute instead of - match_operand. - -2003-10-18 Eric Botcazou - - * config/sparc/sparc.c (function_arg_record_value_1): New fourth - parameter packed_p. Search for a DECL_PACKED field only if - packed_p is false. Pass packed_p recursively. - (function_arg_record_value_2): Likewise. - (function_arg_record_value): Update calls to - function_arg_record_value_1 and function_arg_record_value_2. - -2003-10-18 Eric Botcazou - - * cse.c (cse_insn) [src_folded]: Check that the tentative replacement - was successfully forced to memory before using the result. - -2003-10-18 Eric Botcazou - - PR optimization/8178 - * config/i386/i386.md (*movsi_zero): New insn to set - a register to zero on TARGET_USE_MOV0 targets. - -2003-10-18 Kelley Cook - - * Makefile.in (Makefile): Depend on the all Make-lang.in fragments. - (POSTSTAGE1_FLAGS_TO_PASS): Pass down MAKEINFO and MAKEINFOFLAGS. - -2003-10-17 David Edelsohn - - * doc/invoke.texi (gcse-las): Fix typo. - -2003-10-17 Andrew Pinski - - * doc/install.texi: Remove first part of the sentence for - zsh not working. Change gcc to GCC. - - PR bootstrap/12546 - * doc/install.texi: Document that zsh does not work when - configuring gcc. - -2003-10-17 Nathanael Nerode - - * config/ptx4.h: Switch to DWARF 2; update comments. - -2003-10-17 Segher Boessenkool - Hartmut Penner - - PR 10404, partial 11591, partial 11601 - * config/rs6000/altivec.md ("altivec_dst", "altivec_dstt", - "altivec_dstst", "altivec_dststt", "altivec_lvsl", "altivec_lvsr", - "altivec_lvebx", "altivec_lvehx", "altivec_lvewx", "altivec_lvxl", - "altivec_lvx", "altivec_stvx", "altivec_stvxl", "altivec_stvebx", - "altivec_stvehx", "altivec_stvewx"): Use a memory_operand. - * config/rs6000/rs6000.c (altivec_expand_lv_builtin): New function. - (altivec_expand_stv_builtin): Adjust for the memory_operand. - (altivec_expand_builtin): Call altivec_expand_lv_builtin. - (altivec_init_builtins): Use `long int' for memory offsets. - -2003-10-17 Jan Hubicka - - * opts.c (common_handle_option): Handle OPT_fweb - * invoke.texi (-fweb): Add missing parts of documentation. - -2003-10-17 Rainer Orth - - * config/mips/linux.h (FUNCTION_NAME_ALREADY_DECLARED): Undef - before redefinition. - -2003-10-17 Mostafa Hagog - - * common.opt: Add description of the new -fgcse-las flag. - * flags.h (flag_gcse_las): Declaration of global flag_gcse_las. - * gcse.c (hash_scan_set): Handle the case of store expression and - insert the memory expression to the hash table, this way we make it - possible to discover redundant loads after stores and remove them. - (pre_insert_copy_insn): moved the call to update_ld_motion_stores, - to pre_insert_copies, it is not the correct place to call it after - adding stores to be in the available expression hash table. - (pre_insert_copies): Added the call to update_ld_motion_stores when - one or more copies were inserted. - * opts.c (common_handle_option): Handle the -fgcse-las flag. - * toplev.c (flag_gcse_las): Initialization of flag_gcse_las. - - * doc/invoke.tex: Document new -fgcse-las flag. - -2003-10-18 Alan Modra - - * config/rs6000/crtsavres.asm: Correct alignment of powerpc64 code - for posterity, then remove it. - -2003-10-17 Richard Earnshaw - Nathan Sidwell - - * config/arm/arm.c (use_return_insn): Not a single instruction, if - there's a frame pointer. - (arm_output_epilogue): Protect stack pointer from being corrupted - on interrupt. - -2003-10-17 Ulrich Weigand - - * ifcvt.c (noce_try_addcc): Handle ifs with 'else' case. - -2003-10-17 Ulrich Weigand - - * combine.c (simplify_set): Do not clear out undobuf.other_insn - already set elsewhere. - -2003-10-17 Kelley Cook - - * config/i386/i386.c (ix86_expand_prologue): Use - gen_allocate_stack_worker. - -2003-10-17 Rainer Orth - - * config.gcc (mips-sgi-irix6*o32): Only enable use_collect2 - without gas. - (mips-sgi-irix6*): Likewise. - - * config/mips/iris6gas.h: New file. - * gcc/config.gcc (mips-sgi-irix6*): Use it. - - * config/mips/mips.h (TARGET_IRIX): Provide default. - (TARGET_IRIX5): Likewise. - (TARGET_SGI_O32_AS): Likewise. - * config/mips/iris5.h (TARGET_IRIX): Redefine as 1. - (TARGET_IRIX5): Likewise. - * config/mips/iris6.h (TARGET_IRIX6): Remove. - (TARGET_IRIX5): Redefine as 0. - - * config/mips/mips.c (mips_output_external): Test for IRIX 6 O32 - linker workaround with TARGET_IRIX and mips_abi instead of - ASM_OUTPUT_UNDEF_FUNCTION. - (mips_file_end): Inline old ASM_OUTPUT_UNDEF_FUNCTION definition, - testing TARGET_IRIX and mips_abi explicitly. - * config/mips/iris5.h (ASM_OUTPUT_UNDEF_FUNCTION): Remove. - * config/mips/iris6.h (ASM_OUTPUT_UNDEF_FUNCTION): Remove undef. - - * config/mips/mips.c (irix_output_external_libcall): Renamed from - mips_output_external_libcall. - Use new TARGET_IRIX in guard. - * config/mips/mips-protos.h (irix_output_external_libcall): Match - this. - * config/mips/iris5.h (TARGET_ASM_EXTERNAL_LIBCALL): Likewise. - - * config/mips/iris5gas.h (HAVE_GAS_SHF_MERGE): Update comment. - Define as 0. - - * config/mips/iris6.h (FUNCTION_NAME_ALREADY_DECLARED): Define - depending on mips_abi. - * config/mips/linux.h (FUNCTION_NAME_ALREADY_DECLARED): Define as 1. - * config/mips/mips.c (mips_output_function_prologue): Test - FUNCTION_NAME_ALREADY_DECLARED at runtime. - (mips_output_function_epilogue): Likewise. - (build_mips16_function_stub): Likewise. - (build_mips16_call_stub): Likewise. - * config/mips/mips.h (FUNCTION_NAME_ALREADY_DECLARED): Provide - default. - - * config/mips/iris6.h (DWARF2_UNWIND_INFO): Don't define for native - IRIX 6 O32 assembler. - (SUBTARGET_CC1_SPEC): Enforce mips2 ISA with O32 ABI. - (TARGET_OS_CPP_BUILTINS): Define _ABIO32, use it to define - _MIPS_SIM for O32 ABI. - (DWARF2_FRAME_INFO): Don't define for native IRIX 6 O32 assembler. - (ASM_DECLARE_FUNCTION_NAME): Integrate mips.h version. - (ASM_DECLARE_FUNCTION_SIZE): Move undef before redefinition. - Integrate O32 version. - (SUBTARGET_ASM_SPEC): Handle -mabi=32. - (SUBTARGET_ASM_DEBUGGING_SPEC): Add mdebug_asm_spec for gas with - O32 ABI. - (BSS_SECTION_ASM_OP_32): Define. - (BSS_SECTION_ASM_OP_64): Likewise. - (BSS_SECTION_ASM_OP): Define differently for O32 and N32/N64 ABIs - using them. - (TARGET_ASM_NAMED_SECTION): Reflect renaming. - Move up to allow override for O32 ABI without GNU as. - (EH_FRAME_SECTION_NAME): Define explicitly. - (MUST_USE_SJLJ_EXCEPTIONS): Define. - [_MIPS_SIM == _ABIO32 && !GAS] (CTORS_SECTION_ASM_OP, - DTORS_SECTION_ASM_OP): Dummy definitions. - (TARGET_ASM_NAMED_SECTION): Undef statically. - (EH_FRAME_SECTION_NAME): Likewise. - (ASM_OUTPUT_FILENAME): Integrate mips.h version. - (LINK_SPEC): Only use default options -call_shared -no_unresolved - without -r. - Don't pass -init, -fini with -mabi=32. - (COLLECT_PARSE_FLAG): Define. - - * config/mips/mips.c (iris6_asm_named_section_1): Changed guard to - TARGET_IRIX. - Renamed to use irix_ prefix. - (iris6_asm_named_section): Likewise. - (iris_section_align_entry_eq): Likewise. - (iris_section_align_entry_hash): Likewise. - (iris6_file_start): Likewise. - (iris6_section_align_1): Likewise. - (iris6_file_end): Likewise. - (iris6_section_type_flags): Likewise. - (iris_section_align_htab): Likewise. - (iris_orig_asm_out_file): Likewise. - [TARGET_IRIX] (TARGET_ASM_FILE_START): Reflect rename. - (TARGET_ASM_FILE_END): Likewise. - (TARGET_SECTION_TYPE_FLAGS): Likewise. - - * config/mips/mips.c [TARGET_IRIX5 && !TARGET_IRIX6] - (TARGET_ASM_UNALIGNED_HI_OP): Use runtime initialization in - override_options instead. - (TARGET_ASM_UNALIGNED_SI_OP): Likewise. - (TARGET_ASM_UNALIGNED_DI_OP): Likewise. - * config/mips/mips.c (override_options) [USE_COLLECT2]: Restore - flag_gnu_linker to defaults without USE_COLLECT2 for non-IRIX O32 - assemblers. - Likewise for constructor/destructor handling. - (override_options): Handle IRIX O32 assembler quirks. - [TARGET_IRIX] (irix_asm_named_section): Handle O32 ABI with and - without gas. - (mips_file_start): Use new TARGET_IRIX. - (mips_declare_object_name): No special processing for IRIX O32 - assembler. - (mips_finish_declare_object): Likewise. - (irix_asm_output_align): Renamed from iris6_asm_output_align. - Don't record alignment for O32 ABI. - (irix_file_start): Renamed from iris6_file_start. - Return early for O32 ABI. - (irix_file_end): Renamed from iris6_file_end. - Don't emit .section directives for O32 ABI. - * config/mips/iris6.h (ASM_OUTPUT_ALIGN): Reflect renaming. - * config/mips/mips-protos.h (irix_asm_output_align): Likewise. - - * config/mips/t-iris6 (MULTILIB_OPTIONS): Add mabi=32. - (MULTILIB_OSDIRNAMES): Likewise. - -2003-10-17 Rainer Orth - - * collect2.c (COLLECT_PARSE_FLAG): Provide default. - (main): Use it. - * doc/tm.texi (COLLECT_PARSE_FLAG): Document it. - -2003-10-17 Richard Earnshaw - - * arm-modes.def (CC_Nmode): New condition code mode. - * arm.c (thumb_condition_code): Delete. - (arm_select_cc_mode): Handle single-bit test for Thumb. - (arm_print_operand, cases 'd' and 'D'): Don't special case the - condition code logic for Thumb. - (get_arm_condition_code): Handle CC_Nmode. - (thumb_cbrch_target_operand): New function. - * arm.h (PREDICATE_CODES): Add thumb_cbrch_target_operand. - * arm-protos.h (thumb_cbrch_target_operand): Add prototype. - * arm.md: Add Thumb split patterns for zero_extract and - sign_extract. - (tbit_cbranch, andsi3_cbranch_scratch, andsi3_cbranch) - (orrsi3_cbranch_scratch, orrsi3_cbranch, xorsi3_cbranch_scratch) - (xorsi3_cbranch, addsi3_cbranch, addsi3_cbranch_scratch) - (subsi3_cbranch, subsi3_cbranch_scratch): New Thumb patterns. - (cbranchne_decr1): Re-work to use CC_Nmode. - - * arm.c (thumb_expand_epilogue): Add clobbers of registers restored - by the return instruction. Add a use of the link register if it - wasn't stored. - -2003-10-17 Richard Earnshaw - - * flow.c (init_propagate_block_info): Don't abort if a conditional - jump is not a comparison of a register. Instead, just don't record - conditional life information. - -2003-10-16 Jan Hubicka - - PR optimization/12630 - * pa.md (movstrsi, movstrsi_internal): Use match_scratch in clobbers - for operands 7 and 8. - -2003-10-16 Kelley Cook - - * objc/Make-lang.in (objc-parse.o): Honor $(parsedir) for objc-parse.c. - -2003-10-16 Danny Smith - - * config/i386/cygming.h (ASM_OUTPUT_DEF_FROM_DECLS): Define. - - * config/i386/winnt.c (gen_stdcall_suffix): Make static - (gen_fastcall_suffix): Likewise. - (i386_pe_dllexport_p): Likewise. - (i386_pe_dllimport_p): Likewise. - (i386_pe_mark_dllexport): Likewise. - (i386_pe_mark_dllimport): Likewise. - (i386_pe_asm_named_section): Fix formatting. - -2003-10-16 Zack Weinberg - - * configure.in: Add snprintf to gcc_AC_CHECK_DECLS list. - * system.h: Declare snprintf if necessary. - * configure, config.in: Regenerate. - -2003-10-15 David Edelsohn - - * config/rs6000/rs6000.c (rs6000_va_arg): Only align vector - arguments if TARGET_ALTIVEC_ABI. - -2003-10-15 Roger Sayle - - * builtins.c (fold_builtin_memcpy, fold_builtin_mempcpy, - fold_builtin_memmove, fold_builtin_strcpy, fold_builtin_strncpy, - fold_builtin_memcmp, fold_builtin_strcmp, fold_builtin_strncmp): - New functions. - (expand_builtin_memcpy): Use integer_zerop instead of testing - host_integerp and tree_low_cst directly. Move misapplied hunk - for optimization wher SRC and DEST point to the same location. - (expand_builtin_mempcpy): From here. - (expand_builtin_memmove): Use integer_zerop instead of testing - host_integerp and tree_low_cst_directly. - (expand_builtin_memset): Likewise. - (expand_builtin_memcmp): Likewise (and for integer_onep). - (expand_builtin_strncmp): Likewise. - (fold_builtin): Call the appropriate fold_builtin_foo functions - to optimize memcpy, mempcpy, memmove, strcpy, strncpy, memcmp, - strcmp and strncmp. - -2003-10-15 Geoffrey Keating - - * config/darwin-protos.h (machopic_non_lazy_ptr_name): Delete - prototype. Clean up some whitespace. - * config/darwin.c: Use gen_rtx_FOO (...) rather than - gen_rtx (FOO, ...). - (machopic_non_lazy_ptr_name): Make static. - (name_needs_quotes): Allow '.' and '$' unquoted. - (machopic_legitimize_pic_address): Improve codegen in dynamic-no-pic - case. - -2003-10-15 Gábor Lóki - - * fold-const.c (tree_swap_operands_p): Disable some features - when optimizing for size. - -2003-10-15 David Daney - - * config/mips/linux.h (MD_FALLBACK_FRAME_STATE_FOR): New - * config/mips/mips.h (DWARF_FRAME_REGNUM): Fixed to allow unwind - from leaf functions. - (DWARF_FRAME_RETURN_COLUMN): Ditto. - (SIGNAL_UNWIND_RETURN_COLUMN): New, used - by MD_FALLBACK_FRAME_STATE_FOR. - * testsuite/gcc.dg/cleanup-9.c: Added mips*-*-linux* target. - -2003-10-15 Zack Weinberg - - * genmodes.c: Include hashtab.h. - (modes_by_name, hash_mode, eq_mode, struct mode_adjust) - (adj_bytesize, adj_alignment, adj_format, new_adjust) - (_ADD_ADJUST, ADJUST_BYTESIZE, ADJUST_ALIGNMENT, ADJUST_FORMAT) - (print_maybe_const_decl, emit_mode_adjustments): New. - (known_modes): Rename to modes. - (find_mode): Kill class argument; look up in hash table. - (new_mode): Insert into hash table also. - (new_adjust): New. - (reset_float_format, make_partial_integer_mode) - (make_vector_mode): Tweak error reporting. - (reset_float_format): Correct type of fourth argument. - (emit_insn_modes_h): Add #defines to help make mode_size, - mode_base_align, and real_format_for_mode conditionally const. - (emit_mode_size, emit_mode_base_align): Use print_maybe_const_decl. - (emit_real_format_for_mode): Likewise, but temporarily disabled. - (emit_insn_modes_c): Call emit_mode_adjustments. - (main): Initialize modes_by_name. - * Makefile.in: Update dependencies. - * machmode.def: Document EXPR arguments and new ADJUST_* statements. - * machmode.h: Use CONST_MODE_SIZE and CONST_MODE_BASE_ALIGN in - declarations of mode_size and mode_base_align. Declare - init_adjust_machine_modes. - * toplev.c (backend_init): Call init_adjust_machine_modes. - -2003-10-15 Olivier Hainque - - * genmodes.c (calc_wider_mode): Allocate enough room for all the - entries we'll possibly assign in the sort buffer. - -2003-10-15 Ulrich Weigand - - * config.gcc (s390x-ibm-tpf*): New target. - * doc/install.texi: Document it. - * config/s390/t-tpf: New file. - * config/s390/tpf.h: New file. - -2003-10-15 Hans-Peter Nilsson - - PR target/12598 - * config/cris/cris.md (define_split "*mov_sidesi_biap_mem"+1) - (define_splits "*mov_sidesi_mem"+1, "casesi"+9, +10, +11, +12): - Use cris_mem_op and replace_equiv_address, not gen_rtx_MEM. - ("call", "call_value", define_split "*mov_sidesi_mem"+19, +20) - (define_split "*mov_sidesi_mem"+21, +22, +23, +24, +25, +26, +27) - (define_split "*mov_sidesi_mem"+28, +29, +30): Use - replace_equiv_address, not gen_rtx_MEM. - * config/cris/cris.c (cris_mem_op): New match_operator function. - (cris_notice_update_cc): Use replace_equiv_address, not - gen_rtx_MEM. - * config/cris/cris.h (PREDICATE_CODES): Add cris_mem_op. - -2003-10-15 Bernardo Innocenti - - * config/m68k/m68k.h (MASK_SEP_DATA, TARGET_SEP_DATA, - MASK_ID_SHARED_LIBRARY, TARGET_ID_SHARED_LIBRARY): Move - definitions after the other flags. - -2003-10-14 Ziemowit Laski - - * c-parse.in (methoddef, methodproto): Call objc_add_method() - instead of add_method(). - * objc/objc-act.c (objc_check_decl): Do not check for - constant_string_type. - (add_method): Rename to objc_add_method(). - (really_start_method): Call objc_add_method() instead of - add_method(). - * objc/objc-act.h (add_method): Rename to objc_add_method(). - -2003-10-14 Ulrich Weigand - - * config/s390/s390-protos.h (s390_alc_comparison): Add prototype. - (s390_slb_comparison): Likewise. - * config/s390/s390.c (s390_alc_comparison, s390_slb_comparison): - New functions. - * config/s390/s390.h (PREDICATE_CODES): Add s390_alc_comparison - and s390_slb_comparison. - * config/s390/s390.md ("*adddi3_31", "*subdi3_31"): Do not use on - zSeries machines. - ("*adddi3_31z", "*subdi3_31z"): New insns. - ("*adddi3_alc_cc", "*adddi3_alc", "*subdi3_slb_cc", "*subdi3_slb", - "*addsi3_alc_cc", "*addsi3_alc", "*subsi3_slb_cc", "*subsi3_slb"): - New insns. - -2003-10-14 Nathanael Nerode - - * configure.in: Clean up some feedback echoes. - * configure: Regenerate. - - * aclocal.m4: Properly quote names of macros being defined. - - * config.gcc (am33_2.0-*-linux*): Use t-slibgcc-elf-ver. - -2003-10-14 Steve Ellcey - - * config/ia64/ia64.c (ia64_expand_call): Force function address - to DImode. - * config/ia64/ia64.md (call_gp): Put DImode on operand 0. - -2003-10-14 Ulrich Weigand - - * config/s390/s390.md ("muldf3", "*muldf3", "*muldf3_ibm", - "mulsf3", "*mulsf3", "*mulsf3_ibm"): Do not clobber CC. - ("divdf3", "*divdf3", "*divdf3_ibm", "divsf3", "*divsf3", - "*divsf3_ibm"): Likewise. - -2003-10-14 Nathanael Nerode - - * config.gcc, config/m68hc11/t-m68hc11-gas: Replace uses of - target_alias with target_noncanonical. - -2003-10-14 Geoffrey Keating - - * expr.c (block_move_libcall_safe_for_call_parm): Clean up, - and add case for machines where outgoing register parameters - get stack space. - - * config/darwin.c (machopic_indirect_data_reference): Use a scratch - register when generating indirect address. - -2003-10-14 Richard Earnshaw - - * arm.c (arm_addimm_operand): MODE arguemnt is unused. - * arm.md (cbranchne_decr1): Fix bootstrap warning. - -2003-10-14 Rainer Orth - - * fixinc/inclhack.def (alpha_pthread_gcc): New fix. - * fixinc/fixincl.x: Regenerate. - * fixinc/tests/base/pthread.h [ALPHA_PTHREAD_GCC_CHECK]: New - testcase. - Fixes PR bootstrap/9330. - -2003-10-13 Eric Christopher - - * config/frv/frv.c (frv_adjust_field_align): Redo check for - too wide bitfields. - (frv_hard_regno_mode_ok): Add SPR_P and AP_FIRST. - * config/frv/frv.h (FUNCTION_PROFILER): Remove abort call. - (SBSS_SECTION_ASM_OP): Remove. - (EXTRA_SECTIONS): Remove in_sbss. - (EXTRA_SECTION_FUNCTIONS): Remove SBSS_SECTION_FUNCTION. - (SBSS_SECTION_FUNCTION, sbss_section): Remove. - (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Change sbss_section to - named_section. - -2003-10-13 Nathanael Nerode - - * Makefile.in, configure.in, config.host, mkheaders.in: Replace - uses of ${target_alias} for directory names (and other places which - won't like the empty string) with ${target_noncanonical}. Introduce - call early in configure.in to _GCC_TOPLEV_NONCANONICAL_TARGET so it's - available. - * configure: Regenerate. - -2003-10-13 Ian Lance Taylor - - * config/arm/iwmmxt.md (cond_iwmmxt_movsi_insn): New pattern. - * config/arm/arm.md: For splits which rely on conditional moves, - remove ! TARGET_IWMMXT condition. - -2003-10-13 David S. Miller - - * ifcvt.c (num_removed_blocks): Rename to num_true_changes. - (find_cond_trap): Always increment if we emit a conditional - trap insn. - -2003-10-13 Zack Weinberg - - * Makefile.in (BUILD_RTL): Replace $(BUILD_PREFIX)insn-modes.o - with min-insn-modes.o. - (STAGESTUFF): Add min-insn-modes.c. - (genobjs): Add genmodes.o. - (print-rtl.o, print-rtl1.o): Depend on $(TM_P_H). - (insn-modes.o): Depend on $(TM_H) not $(GTM_H); also real.h. - (min-insn-modes.c, min-insn-modes.o): New rules. - (s-modes): Also generate min-insn-modes.c. - ($(BUILD_PREFIX_1)insn-modes.o): Kill. - * genmodes.c (struct mode_data): Add format field. - (blank_mode, validate_mode, complete_mode): Update to match. - (make_scalar_mode): Separate into make_int_mode and make_float_mode. - (_SCALAR_MODE): Kill. - (FLOAT_MODE, FRACTIONAL_FLOAT_MODE): Add format argument. - (emit_insn_modes_c_header): Adjust. - (emit_min_insn_modes_c_header, emit_real_format_for_mode) - (emit_min_insn_modes_c): New functions. - (emit_insn_modes_c): Call emit_real_format_for_mode. - (main): Add -m option to generate min-insn-modes.c. - * machmode.h: Update documentation. Add format argument to - all uses of FLOAT_MODE. - * real.c: Don't define real_format_for_mode here. - - * dwarfout.c: Move default definition of PRINT_REG... - * defaults.h: ...here. - * print-rtl.c: Include tm_p.h. - (DEBUG_PRINT_REG, DEBUG_REGISTER_NAMES, debug_reg_names, reg_names): - Kill. - (print_rtx): Use PRINT_REG, not DEBUG_PRINT_REG. But surround - this entire block with #ifndef GENERATOR_FILE. - * regclass.c: Unconditionally define reg_names. - * config/mips/mips.h, config/rs6000/rs6000.h, config/sh/sh.h - Don't define DEBUG_REGISTER_NAMES. - * config/rs6000/darwin.h: Don't use DEBUG_REGISTER_NAMES in - redefinition of REGISTER_NAMES. - * config/i386/i386.h: Don't define DEBUG_PRINT_REG. - - * combine.c: Change all preprocessor conditionals on - EXTRA_CC_MODES to use SELECT_CC_MODE instead; rearrange a bit - for clarity. - * genopinit.c: Remove mention of EXTRA_CC_MODES in comment. - * configure.in: Don't define EXTRA_CC_MODES. - * configure, config.in: Regenerate. - * doc/tm.texi: Remove documentation of EXTRA_CC_MODES. - - * config/arc/arc.c, config/m32r/m32r.c, config/sparc/sparc.c: - May assume that GET_MODE_CLASS is accurate for extra CC modes - at all times. - - * config/i860/i860.h (INIT_CUMULATIVE_ARGS): Pass correct - number of arguments to aggregate_value_p. - - * genmodes.c (RESET_FLOAT_FORMAT, reset_float_format): New. - * machmode.def: Explain ARCH-modes.def. Document - RESET_FLOAT_FORMAT. Improve commentary on various mode - clusters. Do not define OI, PQI, PHI, PSI, PDI, QF, HF, TQF, - XF, or TF modes here. Remove backward-compatibility - definition of CC. - - * config/alpha/alpha-modes.def: New file; define TF mode. - * config/arc/arm-modes.def: Define XF mode. - * config/c4x/c4x-modes.def: Define QF and HF modes. Unset - float format for SF and DF modes. - * config/dsp16xx/dsp16xx-modes.def: New file; define HF mode. - * config/i386/i386-modes.def: Define XF and TF modes. - * config/i960/i960-modes.def: Define TF mode. - * config/ia64/ia64-modes.def: Define TF and OI modes. - * config/m68k/m68k-modes.def: New file; define XF mode. - * config/mips/mips-modes.def: New file; define TF mode, reset - formats for SF and DF modes. - * config/pa/pa-modes.def: Define TF mode. - * config/rs6000/rs6000.c: Define TF and PSI modes. - * config/s390/s390-modes.def: Define OI mode. - * config/sh/sh-modes.def: New file; define PSI mode. - * config/sparc/sparc-modes.def: Define TF mode. - * config/vax/vax-modes.def: New file; reset formats for SF and - DF modes. - - * config/c4x/c4x.c (c4x_override_options): No need to mess - with real_format_for_mode or set REAL_MODE_FORMATs. - (c4x_immed_int_constant): Don't apply GET_MODE_CLASS to rtx - variable. - * config/i386/i386.c (override_options): No need to set - REAL_MODE_FORMATs here. - * config/i960/i960.c (i960_initialize): Likewise. - * config/m68k/m68k.c (m68k_override_options): Likewise. - * config/ia64/ia64.c (ia64_override_options): Set REAL_MODE_FORMAT - for TFmode only if not the default. - * config/mips/mips.c (override_options): Likewise. - * config/vax/vax.c (override_optionms): Set REAL_MODE_FORMAT for - DFmode only if not the default. - - * config/i370/i370.h (RET_REG): Don't consider TFmode. - * config/m68hc11/m68hc11.c (print_operand): Don't consider XFmode. - * config/dsp16xx/dsp16xx.c (hard_regno_mode_ok): #if 0 out use - of modes that don't appear anywhere in the machine description. - - * config/arc/arc-modes.def, config/arm/arm-modes.def - * config/c4x/c4x-modes.def, config/frv/frv-modes.def - * config/i386/i386-modes.def, config/i960/i960-modes.def - * config/ia64/ia64-modes.def, config/mmix/mmix-modes.def - * config/pa/pa-modes.def, config/pdp11/pdp11-modes.def - * config/rs6000/rs6000-modes.def, config/s390/s390-modes.def - * config/sparc/sparc-modes.def: Convert to new style for - declaring extra CC modes. - -2003-10-13 Zack Weinberg - - * cpplex.c (_cpp_clean_line): In the common case of a line - with no trigraphs and no \-newline, avoid writing to memory. - (_cpp_skip_block_comment): Use a local 'cur' pointer instead - of the buffer member. Make c an uchar to avoid unnecessary - sign extensions. - -2003-10-13 Nathanael Nerode - - * configure.in: Remove unnecessary test. - * configure: Regenerate. - - * configure.in: Fix grammatical error. Move UWIN host error to... - * config.host: Here. - * configure: Regenerate. - -2003-10-13 Andreas Krebbel - - * config/s390/s390.md ("*fmadddf4", "*fmsubdf4", "*fmaddsf4", - "*fmsubsf4"): Insns are now dependent on TARGET_FUSED_MADD instead - of flag_unsafe_math_optimizations. - * config/s390/s390.h ("MASK_NO_FUSED_MADD", "TARGET_NO_FUSED_MADD", - "TARGET_FUSED_MADD", "TARGET_SWITCHES"): Introduced new target flags - fused-madd and no-fused-madd. - * doc/invoke.texi: Documented the new options fused-madd and - no-fused-madd for S/390. - -2003-10-14 Alan Modra - - * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Choose - MASK_ALIGN_NATURAL if rs6000_alignment_string not given. Don't - assign DEFAULT_ABI. - (ADJUST_FIELD_ALIGN, ROUND_TYPE_ALIGN): Update comment. - * config/rs6000/rs6000.c: Formatting. - (rs6000_parse_alignment_option): Only set rs6000_alignment_flags - when rs6000_alignment_string given. - -2003-10-13 Eric Botcazou - - PR target/12538 - * config/sparc/sparc.c (MUST_SAVE_REGISTER): Delete. - (sparc_flat_must_save_register_p): New function to decide whether - a register must be saved/restored in the function prologue/epilogue. - (sparc_flat_compute_frame_size): Use it instead of MUST_SAVE_REGISTER. - -2003-10-12 Steven Bosscher - - * config/avr/avr.c, config/avr/avr-protos.h: Convert to - ISO C90 function declarations and definitions. - * config/sh/sh.c, config/sh/sh-protos.h: Likewise. - -2003-10-12 Nathanael Nerode - - * config.gcc (*-*-freebsd*): Use tm_defines instead of tiny - config files which do the same thing. - * config/freebsd3.h, config/freebsd4.h, config/freebsd5.h, - config/freebsd6.h: Remove now unnecessary files. - -2003-10-12 Steven Bosscher - - * c-common.c (c_common_truthvalue_conversion): Warn if the - address of a non-weak function is used as a truth value. - -2003-10-12 Kazu Hirata - - * config/h8300/h8300.c (WORD_REG_USED): Use SP_REG instead of - a literal. - * config/h8300/h8300.h (REGNO_OK_FOR_BASE_P): Use MAC_REG - instead of a literal. - -2003-10-12 Hans-Peter Nilsson - - * doc/extend.texi (Function Attributes): Mention the exceptional - path for noreturn-marked functions. - -2003-10-12 Jan Hubicka - - * cgraphunit.c (cgraph_decide_inlining): Fix uninitialized variable - warning. - -2003-10-12 Danny Smith - - * config/i386/i386.c (x86_this_parameter): Fix typo. - -203-10-11 Jan Hubicka - - * Makefile.in (web.o): New. - * web.c: New file. - * rtl.h (web_main): Declare. - * timervar.def (TV_WEB): New. - * toplev.c (dump_file_index, dump_file_info): Add DFI_web. - (rest_of_hanle_web): New. - (flag_web): New static variable. - (lang_independent_options): Add "web". - (rest_of_compilation): Call rest_of_handle_web. - * invoke.texi (-fweb): Document. - * common.opt (fweb): New. - * flags.h (flag_web): New. - * opts.c (decode_options): Set flag_web at -O3. - - * passes.texi (web construction): Document. - * invoke.texi (-O3): Document that -fweb is enabled. - - * regrename.c (regrename_optimize): Deal better with situation when - replacement failed. - - * sched-ebb.c: Include params.h and profile.h - (schedule_ebbs): Use tracer parameters to discover superblocks - * Makefile.in (sched-ebb.o): Add dependencies. - -2003-10-11 Roger Sayle - - * fold-const.c (negate_mathfn_p): New function to determine whether - a built-in mathematical function is sign preserving, f(-x) == -f(x). - Add support for BUILT_IN_ASIN, BUILT_IN_ASINF and BUILT_IN_ASINL. - (tree_swap_operands_p): Change API to take an additional argument - indicating that the swapped operands evaluate in reverse order. - Canonicalize VAR_DECLs and PARM_DECLs last if we can, i.e. neither - operand side-effects or we don't care about flag_evaluation_order. - (reorder_operands_p): New function to check whether its safe to - evaluate the given operands in reverse order. - (negate_expr_p): We can always negate integer constants unless - we honor -ftrapv and the signed type would overflow. Only allow - -(A-B) into B-A if reorder_operands_p says that its OK. Allow - negation of COMPLEX_CST if both real and imaginary parts can be - negated. Allow negation through floating point extensions and - sign-preserving built-in functions. - (negate_expr): Move the code to negate integers from "fold" to - here. Always negate integer constants unless we honor -ftrapv - and the signed type would overflow. Always negate real constants - unless we honor -ftrapping-math. Only convert -(A-B) into B-A - if allowed by reorder_operands_p. Add support for COMPLEX_CST. - Optimize negation through floating point extensions and - sign-preserving built-in functions (as defined by negate_mathfn_p). - (fold): Adjust calls to tree_swap_operands_p. - (fold ): Move the remaining negation optimizations - to negate_expr_p/negate_expr. - (fold ): Use reorder_operands_p to check whether we're - allowed to convert (-A) - B into (-B) - A. - -2003-10-11 Roger Sayle - - * builtins.c (expand_builtin_strcmp): Defend against the possibility - that gen_cmpstrsi may fail: Stabilize the argument list against - re-evaluation and expand the library call directly using this saved - argument list if a cmpstrsi sequence can't be generated. - (expand_builtin_strncmp): Likewise. - - * config/i386/i386.md (cmpstrsi, movstrsi): Disable with -Os. - -2003-10-11 Roger Sayle - - PR optimization/12260 - * simplify-rtx.c (simplify_unary_operation): Simplify all unary - operations through CONST nodes. Optimize (neg (plus X C)) as - (minus -C X) for constant values C. - (simplify_binary_operation): Optimize (minus (neg X) C) as - (minus -C X) for constant values C. - (simplify_plus_minus): Avoid creating (neg (const (plus X C)), - instead create (minus -C X). - -2003-10-11 Roger Sayle - - * expr.c (expand_expr ): Let expand_operands call - safe_from_p for us, once it chooses an evaluation order. - (expand_expr ): Likewise. - (expand_expr ): Likewise. If expand_operands - places the second operand in "target", swap the operands. - (do_store_flag): Let expand_operands call safe_from_p for us. - -2003-10-11 Eric Botcazou - - PR optimization/12544 - * function.c (put_var_into_stack): Don't generate ADDRESSOFs - for DECL_NONLOCAL decls. - -2003-10-11 Kazu Hirata - - * expr.c: Follow spelling conventions. - * final.c: Likewise. - * optabs.c: Likewise. - * sched-deps.c: Likewise. - * sdbout.c: Likewise. - -Sat Oct 11 12:24:23 CEST 2003 Jan Hubicka - - * varasm.c (notice_global_symbol): Fix handling of variables; avoid - re-computing of variable. - -2003-10-11 Richard Henderson - - * config/alpha/alpha.c (alpha_return_in_memory): Rename from - return_in_memory, make static, change signature to match target hook. - (alpha_setup_incoming_varargs): Make static, change signature to - match target hook, add code for vms and unicos. - (TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN, - TARGET_PROMOTE_PROTOTYPES, TARGET_STRUCT_VALUE_RTX, - TARGET_RETURN_IN_MEMORY, TARGET_SETUP_INCOMING_VARARGS, - TARGET_STRICT_ARGUMENT_NAMING, - TARGET_PRETEND_OUTGOING_VARARGS_NAMED): New. - * config/alpha/alpha-protos.h: Update. - * config/alpha/alpha.h (PROMOTE_FUNCTION_ARGS, - PROMOTE_FUNCTION_RETURN, RETURN_IN_MEMORY, - SETUP_INCOMING_VARARGS): Remove. - * config/alpha/unicosmk.h (SETUP_INCOMING_VARARGS): Remove. - * config/alpha/vms.h (SETUP_INCOMING_VARARGS): Remove. - -2003-10-11 Ian Lance Taylor - - * config/arm/arm.c (arm_regno_class): Handle IWMMXT_GR_REGS. - -2003-10-11 Kazu Hirata - - * config/m68k/lb1sf68.asm: Follow spelling conventions. - * config/m68k/m68k.c: Likewise. - * config/m68k/m68k.h: Likewise. - * config/m68k/m68k.md: Likewise. - -2003-10-11 Roger Sayle - - * builtins.c (expand_builtin_memcpy): Optimize case when the two - pointer arguments are the equal, non-volatile and side-effect free. - (expand_builtin_mempcpy): Likewise. - (expand_builtin_memmove): Likewise. - (expand_builtin_strcpy): Likewise. - (expand_builtin_memcmp): Likewise. - (expand_builtin_strcmp): Likewise. - (expand_builtin_strncmp): Likewise. - -2003-10-11 Roger Sayle - - * combine.c (apply_distributive_law): Enable "distributive" floating - point optimizations with -funsafe-math-optimizations. - -2003-10-11 Andrew Pinski - - * genmodes.c (emit_mode_mask) Change MASK to MODE_MASK. - -2003-10-11 Kazu Hirata - - * config/m68k/m68k-protos.h: Remove the prototype for - finalize_pic. - -2003-10-11 Kazu Hirata - - * config/m68k/m68k.c: Fix comment typos. - -2003-10-11 Bernardo Innocenti - - * config/m68k/m68k-protos.h (use_return_insn): Change return type from - int to bool. - * config/m68k/m68k.c (struct m68k_frame): Add funcdef_no member. - (current_frame): New global var. - (m68k_compute_frame_layout): Cache computations in current_frame. - (m68k_initial_elimination_offset): Use values from current_frame - instead of recomputing them. - (use_return_insn): Likewise. - (m68k_output_function_prologue): Likewise. - (m68k_output_function_epilogue): Likewise. - * config/m68k/m68k.h (TARGET_CPU_CPP_PREDEFINES): Fold __PIC__ handling - inside the block for __pic__. - -2003-10-11 Peter Barada - Bernardo Innocenti - - * config/m68k/m68k.c (m68k_frame): Move before protos referencing it. - (m68k_save_reg): Add boolean parameter `interrupt_handler'. - (m68k_interrupt_function_p): New function. - (m68k_handle_fndecl_attribute): Ditto. - (m68k_compute_frame_layout): Ditto. - (m68k_attribute_table): Define back-end specific attributes. - (m68k_output_function_epilogue): Emit RTE instruction for interrupt - functions. - -2003-10-11 Bernardo Innocenti - - * config/m68k/t-uclinux: New target Makefile fragment. - * config/m68k/uclinux.h: New target macro file. - * config.gcc (m68k-*-uclinux): New target definition. - -2003-10-10 Roger Sayle - - * builtins.c (builtin_mathfn_code): Generalize to check whether - the call is to any built-in function by comparing the call's - argument list against the builtin decl's function type. - -2003-10-10 Roger Sayle - - * cse.c (constant_pool_entries_regcost): New global variable to - hold the register cost component of constant_pool_entries_cost. - (fold_rtx): Calculate constant_pool_entries_regcost at the same - time as constant_pool_entries_cost. - (cse_insn): Set both src_folded_cost and src_folded_regcost from - constant_pool_entries_cost and constant_pool_entries_regcost. - (cse_main): Initialize constant_pool_entries_regcost to zero. - - * optabs.c (expand_unop): Attach a REG_EQUAL note describing - the semantics of the sequence of bit operations used to negate - a floating-point value. - (expand_abs_nojump): Likewise attach a REG_EQUAL note describing - the semantics of the bit operations used to abs a floating point - value. - -2003-10-11 Bernardo Innocenti - Paul Dale - - * config/m68k/lb1sf68.asm: Add __PIC__ and __ID_SHARED_LIBRARY__ - support. - * config/m68k/m68k-none.h (ASM_SPEC): Pass --pcrel to assembler on - -fpic, -fPIC, -msep-data and -mid-shared-library. - * config/m68k/m68k.c (m68k_library_id_string): New global variable. - (override_options): Add -msep-data and -mshared-library-id support. - (m68k_output_function_prologue): Generate code to load A5 for - TARGET_ID_SHARED_LIBRARY and TARGET_SEP_DATA. - (m68k_output_mi_thunk): Emit indirect jump on TARGET_ID_SHARED_LIBRARY. - (m68k_output_pic_call): New function. - * gcc/config/m68k/m68k.h (TARGET_SEP_DATA): New target flag. - (TARGET_ID_SHARED_LIBRARY): Ditto. - (TARGET_SWITCHES): Add switches for -mid-shared-library and -msep-data. - * gcc/config/m68k/m68k.md (call): Call m68k_output_pic_call(). - (call_value): Likewise. - -2003-10-10 Zack Weinberg - - * gengenrtl.c (find_formats, genheader): Make i an unsigned - int, remove cast of NUM_RTX_CODE. - * machmode.h: Make the HAVE_MACHINE_MODES #ifdef encompass the - entire file. Remove the #ifs on GET_MODE_MASK etc and - GET_MODE_WIDER_MODE etc. - -2003-10-10 Eric Christopher - - * lcm.c (optimize_mode_switching): Change NORMAL_MODE - to MODE_ENTRY and MODE_EXIT. Add MODE_AFTER for insns - that set mode. - * config/sh/sh.h (MODE_ENTRY): New macro. - (MODE_EXIT): Ditto. - (MODE_AFTER): Ditto. - * config/sh/sh.md: Change for MODE_AFTER. Add - fp_set attribute. - * doc/tm.texi: Document MODE_AFTER, MODE_ENTRY, and MODE_EXIT. - -2003-10-10 Zack Weinberg - - * genmodes.c, mode-classes.def: New files. - * machmode.def: Rewritten to genmodes.c interface. - * Makefile.in (extra_modes_file): New substitution variable. - (MACHMODE_H): No longer includes machmode.def or - @extra_modes_file@; instead, mode-classes.def and insn-modes.h. - (BUILD_RTL): Add $(BUILD_PREFIX)insn-modes.o. - (OBJS-common): Add insn-modes.o. - (STAGESTUFF): Add insn-modes.c, insn-modes.h, s-modes, and - genmodes$(build_exeext). - (insn-modes.o, insn-modes.c, insn-modes.h, s-modes, genmodes.o, - genmodes$(build_exeext), $(BUILD_PREFIX_1)insn-modes.o): New targets. - (s-genrtl): Don't depend on $(RTL_BASE_H). - (gengenrtl.o): Don't depend on coretypes.h, $(GTM_H), real.h, - or $(RTL_BASE_H); just rtl.def. - * gengenrtl.c: Don't include coretypes.h, tm.h, rtl.h, or - real.h. Give fake definition of CONST_DOUBLE_FORMAT and - substitute definition of NUM_RTX_CODE. Add casts to avoid - warnings. - * machmode.h: Include insn-modes.h, not machmode.def. Include - mode-classes.def to define enum mode_class. Tweak definitions - of GET_MODE_CLASS, GET_MODE_SIZE, GET_MODE_BITSIZE, GET_MODE_MASK, - GET_MODE_INNER, GET_MODE_WIDER_MODE, GET_CLASS_NARROWEST_MODE. - (inner_mode_array): Renamed mode_inner. - (mode_base_align): New. - * rtl.c (mode_name, mode_class, mode_bitsize, mode_size, - mode_unit_size, mode_wider_mode, mode_mask_array, - inner_mode_array, class_narrowest_mode): Delete definitions. - * stor-layout.c (get_mode_alignment): Use mode_base_align. - * real.h: Use MIN_MODE_FLOAT and MAX_MODE_FLOAT, not QFmode - and TFmode, in real_format_for_mode and REAL_MODE_FORMAT. - - * config/ip2k/ip2k.h, config/iq2000/iq2000.h: - No need to define BITS_PER_UNIT. - -2003-10-10 Richard Kenner - - * config/ia64/ia64.c (ia64_vms_init_libfuncs): New function. - (ia64_output_function_prologue): Only write .prologue if --with-gnu-as. - (ia64_initialize_trampoline): If not using GAS, declare trampoline - as global. - * config/ia64/ia64.h (ASM_APP_ON, ASM_APP_OFF): Add vers for not GAS. - (ASM_OUTPUT_DEBUG_LABEL): Likewise. - - * stor-layout.c (compute_record_mode): Don't force BLKmode if - field is zero-length BLKmode. - * expr.c (expand_expr, case COMPONENT_REF): Handle case of BLKmode - zero-size references. - - * combine.c (distribute_links): Properly test for REG being set. - - * config/alpha/alpha.c (alpha_expand_block_mode): Don't use - gen_lowpart and company except for REG. - -2003-10-10 John David Anglin - - * pa64-hpux.h (LINK_SPEC): Use `-z' option with HP ld. - -2003-10-10 Nathanael Nerode - - * config.gcc (mips*-*-netbsd*): Remove content-free line. - -2003-10-10 Herman A.J. ten Brugge - - * gcov-io.h: Check BITS_PER_UNIT when defining gcov_unsigned_t, - gcov_position_t and gcov_type. - -2003-10-09 Kaz Kojima - - * configure.in (HAVE_AS_TLS): Add sh-*-* and sh[34]*-*-* cases. - * configure: Regenerate. - -2003-10-09 Kazu Hirata - - * config/h8300/h8300.md (define_asm_attributes): Specify - the length of an asm insn more precisely. - -2003-10-09 Rainer Orth - - * config/mips/iris6.h (SUBTARGET_CPP_SPEC): Define. - -2003-10-09 Bob Wilson - - * config/xtensa/xtensa.c (xtensa_dbx_register_number): Change first - FP register number to 48 and MAC16 accumulator to 0x210. - -2003-10-09 Nathanael Nerode - - * config.gcc: Remove redundant thread_file setting clauses for - various *-*-linux* targets. - -2003-10-09 Kazu Hirata - - * config/h8300/h8300.md (define_asm_attributes): New. - -2003-10-09 Roger Sayle - - * optabs.c (prepare_float_lib_cmp): Always attach a REG_EQUAL note - to the comparison, as emit_libcall_block calls copy_rtx on equiv. - -2003-10-09 Dorit Naishlos - - * haifa-sched.c (ok_for_early_schedule): New function. - (early_queue_to_ready): New function. - (schedule_block): Allow early removal of insns from Q. - (schedule_insn): Update INSN_TICK in case of premature - issue. - * common.opt (sched_stalled_insns): New flag. - (sched_stalled_insns_dep): New flag. - * flags.h: Same above flags. - * opts.c: Same as above. - * toplev.c: Same as above. - * target.h (targetm.sched.is_costly_dependence): New - hook. - * target-def.h: Same as above. - * config/rs6000/rs6000.h: (rs6000_sched_costly_dep): - Support new flag -msched-costly-dep. - (DEFAULT_SCHED_COSTLY_DEP): Define. - * config/rs6000/rs6000.c: - (rs6000_is_costly_dependence): New function. - (is_load_insn, is_store_insn): New functions. - (is_load_insn1, is_store_insn1, is_mem_ref): New - functions. - * doc/invoke.texi (-fsched-stalled-insns-dep) - (-fsched-stalled-insns, -msched-costly-dep): Document - options. - * doc/tm.texi (is_costly_dependence): Define new - scheduler target hook. - -2003-10-09 Jason Merrill - - PR c++/6392 - * c-common.c (c_build_qualified_type): Look through arrays first. - (c_apply_type_quals_to_decl): Look through arrays. - - * c-common.c (c_apply_type_quals_to_decl): Unset TREE_READONLY for - types with constructors. - - * coverage.c (build_ctr_info_value): Use build_decl to make a - VAR_DECL. - (create_coverage): Likewise. - - * stmt.c (resolve_asm_operand_names): Call check_unique_operand_names - here. - (expand_asm_operands): Not here. - (parse_input_constraint): No longer static. - * tree.h: Declare it. - -2003-10-08 Kaz Kojima - - * config/sh/t-linux (SHLIB_LINK): Override to use a linker script - libgcc_s.so. - (SHLIB_INSTALL): Likewise. - -2003-10-08 Nathanael Nerode - - * doc/install.texi: Remove reference to removed 'pthreads' thread - option. - -2003-10-08 Aldy Hernandez - - * config/rs6000/rs6000.md ("abssi2_isel"): Add early clobber to - operand 2. - -2003-10-08 Nathanael Nerode - - * config.gcc: Don't accept --enable-threads=pthreads. Clean - up related case statements. - * configure.in: Don't accept --enable-threads=pthreads, - decosf1, mach, or os2 (none of which work anyway). Alphabetize - supported thread files in case clause. - * configure: Regenerate. - -2003-10-08 Geoffrey Keating - - * function.c (pad_to_arg_alignment): Move 'boundary_in_bytes' - definition to above SPARC_STACK_BOUNDARY_HACK. - -2003-10-08 Jason Merrill - - * c-pretty-print.c (pp_c_postfix_expression) - : Fix thinko. - -2003-10-08 Rainer Orth - - * mklibgcc.in: Don't hide undefined or typeless symbols. - -2003-10-08 John David Anglin - - PR optimization/12142 - * cse.c (count_reg_usage): In a SET with a REG SET_DEST, count the - uses of the register in the SET_SRC. Remove unnecessary argument. - * pa.c (legitimize_pic_address): Before reload, use a scratch register - for the intermediate result in loading the address of a SYMBOL_REF. - Set the MEM_NOTRAP_P flag for the MEM. Add a REG_EQUAL to the insn - which loads the SYMBOL_REF address. - -2003-10-08 Timo Kokkonen - Eric Botcazou - - PR bootstrap/12490 - * scan-decls.c (MAX_EXTERN_C_BRACES): New preprocessor constant - to define the size of the extern_C_braces array. Set it to 200. - (scan_decls): Abort when extern_C_braces_length is out-of-bounds. - -2003-10-08 Carlo Wood - - * Makefile.in (gengtype-lex.c): flex 2.5.4[a] doesn't understand - a space after the -o option. flex 2.5.31 understands both, with - and without the space. Removed that space. - -2003-10-08 Richard Sandiford - - * config/mips/mips.c (mips_frame_info): Add cprestore_size field. - (compute_frame_size): Initialize it. Remove the .cprestore slot - from args_size. - (mips_output_function_prologue): Simplify accordingly. - (mips_debugger_offset): Change the mips16 frame pointer offset from - current_function_outgoing_args to cfun->machine->frame.args_size. - (mips_initial_elimination_offset): Likewise. - (mips_expand_prologue): Likewise. - (mips_expand_epilogue): Likewise. - -2003-10-08 Richard Sandiford - - * config/mips/mips.h (EXTRA_CONSTRAINT): Add 'W' constraint. - (EXTRA_MEMORY_CONSTRAINT): Define. - (CAN_ELIMINATE): Remove lwu workaround. - * config/mips/mips.md (*zero_extendsidi2_mem): Enable for mips16 too. - Use a 'W' constraint for the source operand. - -2003-10-08 Kazu Hirata - - * genopinit.c (main): Output code to declare undefined - variables. - -2003-10-07 Kelley Cook - - * gengtype-lex.l: Remove -Wtraditional cruft. - * Makefile.in (gengtype-lex.c): Likewise. - -2003-10-07 Zdenek Dvorak - - * cfgloopmanip.c (fix_irreducible_loops): Initialize e correctly. - -2003-10-07 Jason Merrill - - PR c++/12519 - * c-semantics.c (genrtl_cleanup_stmt): Ignore the CLEANUP_DECL if - it isn't a decl. - -2003-10-07 Alexandre Oliva - - * gcc.c (cpp_options): Only pass -fworking-directory for -g* if - not overridden. - Fixes PR bootstrap/12173. - -2003-10-07 Zack Weinberg - - * errors.c: Don't include coretypes.h or tm.h. - (trim_filename): Use IS_DIR_SEPARATOR. - * Makefile.in: Update dependencies of errors.o and - $(BUILD_PREFIX_1)errors.o. - -2003-10-07 Geoffrey Keating - - * function.c (pad_to_arg_alignment): Take STACK_POINTER_OFFSET into - account when aligning arguments. - * calls.c (STACK_POINTER_OFFSET): Move default from here ... - * defaults.h (STACK_POINTER_OFFSET): ... to here. - * config/sparc/sparc.h (STACK_BOUNDARY): Add comment about how - it's wrong when TARGET_ARCH64 && TARGET_STACK_BIAS. - (SPARC_STACK_BOUNDARY_HACK): Define. - * config/rs6000/rs6000.c (function_arg): On non-SVR4 systems, - arrange for vector parameters to varargs functions to be passed - in both memory and GPRs when appropriate. - (rs6000_va_arg): Vector arguments passed in memory are 16-byte - aligned. - - * hooks.c (hook_bool_tree_true): New. - (hook_rtx_tree_int_null): New. - (hook_rtx_rtx_null): Use NULL, not 0. - * hooks.h: Add 'extern' to everything. - (hook_bool_tree_true): New. - (hook_rtx_tree_int_null): New. - * targhooks.c (hook_bool_CUMULATIVE_ARGS_true): New. - * targhooks.h (hook_bool_CUMULATIVE_ARGS_true): New. - * config/rs6000/rs6000-protos.h (setup_incoming_varargs): Remove - prototype. - * config/rs6000/rs6000.c (rs6000_return_in_memory): New. - (setup_incoming_varargs): Prototype. - (TARGET_PROMOTE_FUNCTION_ARGS): Define. - (TARGET_PROMOTE_FUNCTION_RETURN): Define. - (TARGET_STRUCT_VALUE_RTX): Define. - (TARGET_RETURN_IN_MEMORY): Define. - (TARGET_SETUP_INCOMING_VARARGS): Define. - (TARGET_STRICT_ARGUMENT_NAMING): Define. - (TARGET_PRETEND_OUTGOING_VARARGS_NAMED): Define. - (init_cumulative_args): Use rs6000_return_in_memory. - (setup_incoming_varargs): Make 'static'. - * config/rs6000/rs6000.h (PROMOTE_FUNCTION_ARGS): Delete. - (PROMOTE_FUNCTION_RETURN): Delete. - (STRUCT_VALUE): Delete. - (RETURN_IN_MEMORY): Delete. - (SETUP_INCOMING_VARARGS): Delete. - -2003-10-07 Gerald Pfeifer - - * doc/invoke.texi (Warning Options): Simplify and clarify the - descriptions of -Wnonnull and -Winit-self. - -2003-10-07 Richard Earnshaw - - * optabs.c (init_intraclass_conv_libfuncs): Fix order of array - indicees for floating-point conversersion libcalls. - -2003-10-07 Nathanael Nerode - - * Makefile.in: Add more comments separating large conceptually - separate sections. - - * configure.in: Clean up thread file logic. - * configure: Regenerate. - -2003-10-07 Danny Smith - - * config/i386/cygming.h (READONLY_DATA_SECTION_ASM_OP): Define. - (switch_to_section): Handle in_readonly_data. - * config/i386/winnt.c (i386_pe_asm_named_section): Handle - readonly data. - -2003-10-07 Richard Earnshaw - - * arm.md (cmpsi2_addneg): New ARM pattern. Add peephole2 to generate - it. - (cbranchne_decr1): New Thumb pattern. - * arm.c (arm_addimm_operand): New insn predicate. - * arm-protos.h: Add a prototype for it. - * arm.h (PREDICATE_CODES): Add it. - -2003-10-07 Dorit Naishlos - - * sched-int.h (sched_info): New field - sched_max_insns_priority. - * sched-rgn.c (init_ready_list): Add invocations to - targetm.sched.adjust_priority. - (sched_max_insns_priority): Init new field. - * sched-ebb.c (sched_max_insns_priority): Init new field. - * haifa-sched.c (set_priorities): Set - sched_info->sched_max_insns_priority. - * config/rs6000/rs6000.h: - (rs6000_sched_restricted_insns_priority_str): Support new - flag -mprioritize-restricted-insns. - (DEFAULT_RESTRICTED_INSNS_PRIORITY): Define. - * config/rs6000/rs6000.c (is_dispatch_slot_restricted): New - function. - (rs6000_adjust_priority): Change priority of restricted - insns, using above new function and new flag. - * doc/invoke.texi (-mprioritize-restricted-insns): Document - new option. - -2003-10-07 Zack Weinberg - - * expr.c (cmpstr_optab, cmpmem_optab): New. - * genopinit.c: Initialize them. - * optabs.h: Declare them. - * optabs.c (init_optabs): Clear them. - (prepare_cmp_insn): Use cmpstr_optab and cmpmem_optab to find - block memory compare insns, not conditional chains. Restructure - the fallback generation of a call to memcmp/bcmp for better - readability. - -2003-10-07 Richard Sandiford - - * config/mips/mips.c (MIPS_MAX_FIRST_STACK_STEP): New macro. - (mips_save_restore_fn): New typedef. - (mips_add_large_offset_to_sp, mips_emit_frame_related_store): Remove. - (mips_set_frame_expr, mips_frame_set): Move above prologue code. - (save_restore_insns): Remove, replacing with... - (mips_save_restore_reg, mips_for_each_saved_reg): ...these new fns. - (mips_save_reg, mips_restore_reg): New function. - (mips_expand_prologue, mips_expand_epilogue): Rework. - * config/mips/mips.h (MIPS_TEMP1_REGNUM, MIPS_TEMP2_REGNUM): Remove. - (MIPS_PROLOGUE_TEMP_REGNUM, MIPS_EPILOGUE_TEMP_REGNUM): New macros. - (MIPS_PROLOGUE_TEMP, MIPS_EPILOGUE_TEMP): New macros. - -2003-10-07 Richard Sandiford - - * config/mips/mips.c (mips_expand_prologue): Remove unused - traversal of function arguments. - -2003-10-07 Richard Sandiford - - * doc/invoke.texi: Remove documentation of -mentry. - * config/mips/mips.c (mips_entry_string, mips_entry): Remove. - (override_options, mips_save_reg_p): Remove handling. - (compute_frame_size, mips_output_function_prologue): Likewise. - (mips_expand_prologue, mips_expand_epilogue): Likewise. - * config/mips/mips.h (mips_entry_string): Remove declaration. - (TARGET_OPTIONS): Remove -mentry. - * config/mips/mips16.S: Remove mention of -mentry. - -2003-10-06 Zack Weinberg - - * libfuncs.h (LTI_extendsfdf2, LTI_extendsfxf2, LTI_extendsftf2) - (LTI_extenddfxf2, LTI_extenddftf2, LTI_truncdfsf2, LTI_truncxfsf2) - (LTI_trunctfsf2, LTI_truncxfdf2, LTI_trunctfdf2, LTI_floatsisf) - (LTI_floatdisf, LTI_floattisf, LTI_floatsidf, LTI_floatdidf) - (LTI_floattidf, LTI_floatsixf, LTI_floatdixf, LTI_floattixf) - (LTI_floatsitf, LTI_floatditf, LTI_floattitf, LTI_fixsfsi, LTI_fixsfdi) - (LTI_fixsfti, LTI_fixdfsi, LTI_fixdfdi, LTI_fixdfti, LTI_fixxfsi) - (LTI_fixxfdi, LTI_fixxfti, LTI_fixtfsi, LTI_fixtfdi, LTI_fixtfti) - (LTI_fixunssfsi, LTI_fixunssfdi, LTI_fixunssfti, LTI_fixunsdfsi) - (LTI_fixunsdfdi, LTI_fixunsdfti, LTI_fixunsxfsi, LTI_fixunsxfdi) - (LTI_fixunsxfti, LTI_fixunstfsi, LTI_fixunstfdi, LTI_fixunstfti) - (extendsfdf2_libfunc, extendsfxf2_libfunc, extendsftf2_libfunc) - (extenddfxf2_libfunc, extenddftf2_libfunc, truncdfsf2_libfunc) - (truncxfsf2_libfunc, trunctfsf2_libfunc, truncxfdf2_libfunc) - (trunctfdf2_libfunc, floatsisf_libfunc, floatdisf_libfunc) - (floattisf_libfunc, floatsidf_libfunc, floatdidf_libfunc) - (floattidf_libfunc, floatsixf_libfunc, floatdixf_libfunc) - (floattixf_libfunc, floatsitf_libfunc, floatditf_libfunc) - (floattitf_libfunc, fixsfsi_libfunc, fixsfdi_libfunc, fixsfti_libfunc) - (fixdfsi_libfunc, fixdfdi_libfunc, fixdfti_libfunc, fixxfsi_libfunc) - (fixxfdi_libfunc, fixxfti_libfunc, fixtfsi_libfunc, fixtfdi_libfunc) - (fixtfti_libfunc, fixunssfsi_libfunc, fixunssfdi_libfunc) - (fixunssfti_libfunc, fixunsdfsi_libfunc, fixunsdfdi_libfunc) - (fixunsdfti_libfunc, fixunsxfsi_libfunc, fixunsxfdi_libfunc) - (fixunsxfti_libfunc, fixunstfsi_libfunc, fixunstfdi_libfunc) - (fixunstfti_libfunc): Delete. - * optabs.h (struct optab_handlers): Break out of struct optab. - (struct convert_optab, convert_optab, enum convert_optab_index, - convert_optab_table, sext_optab, zext_optab, trunc_optab, - sfix_optab, ufix_optab, sfixtrunc_optab, ufixtrunc_optab, - sfloat_optab, ufloat_optab): New. - (set_conv_libfunc): Prototype. - (GEN_FCN): Use C90 indirect call syntax, remove unnecessary cast. - (trunc_optab): Renamed btrunc_optab. - * builtins.c (expand_builtin_mathfn): Update to match. - * optabs.c (extendtab, fixtab, fixtrunctab, floattab): Delete. - (convert_optab_table, new_convert_optab, init_convert_optab) - (init_interclass_conv_libfuncs, init_intraclass_conv_libfuncs) - (set_conv_libfunc): New. - (can_extend_p, gen_extend_insn, can_fix_p, can_float_p) - (expand_float, expand_fix): Use new conversion optabs, - not old insn code tables or long chains of ifs. - (init_optabs): No need to clear old insn code tables. - Initialize the new optabs, not the old libfunc array entries. - Don't handle FIXUNS_TRUNC_LIKE_FIX_TRUNC here. - * genopinit.c: Initialize conversion optabs, not the - former insn code tables. Remove unnecessary casts. - Handle FIXUNS_TRUNC_LIKE_FIX_TRUNC here. - * expr.c (convert_move): Remove redundant check that - to_real==from_real. Use the conversion optabs instead - of long chains of tests of modes. Move partial-integer-mode - interconversion above all integer conversion. Do not recurse - on a value forced into a register in the original mode. - - * config/gofast.h, config/frv/frv.c, config/ia64/ia64.c - * config/mips/mips.c, config/pa/pa.c, config/rs6000/rs6000.c - * config/sparc/sparc.c: Use set_conv_libfunc to adjust entries - in new conversion optabs; do not reference the old libfunc - array entries. No need to include libfuncs.h. - -2003-10-06 Roger Sayle - - * config/i386/i386.c (ix86_expand_setcc): Annotate the floating - point comparison sequence with a REG_EQUAL note that describes - the comparison's semantics. - -2003-10-06 Roger Sayle - - * expr.c (expand_expr ): Handle the void type semantics - of COND_EXPR when expanding the "A op 0 ? FOO : A" optimizations. - -2003-10-06 Roger Sayle - Zack Weinberg - - * optabs.c (prepare_float_lib_cmp): Avoid searching for REG_RETVAL - instruction by using LCT_CONST and then calling emit_libcall_block - ourselves. - -2003-10-06 Falk Hueffner - - PR optimization/11974 - * optabs.c (expand_unop): Promote libcall outmode according to - hard_libcall_value. - -2003-10-06 Zack Weinberg - - * real.h (REAL_MODE_FORMAT): New macro. - * c-cppbuiltin.c, optabs.c, real.c, config/alpha/alpha.c - * config/c4x/c4x.c, config/i370/i370.c, config/i386/freebsd.h - * config/i386/i386.c, config/i960/i960.c, config/ia64/ia64.c - * config/m68k/m68k.c, config/mips/mips.c, config/rs6000/rs6000.c - * config/vax/vax.c: Use REAL_MODE_FORMAT instead of referring - directly to real_format_for_mode array, wherever possible. - -2003-10-06 Devang Patel - - * dwarf2out.c (is_main_source): Remove variable. - (dwarf2out_start_source_file): Do not check is_main_source. - Do not reset is_main_source. - (dwarf2out_init): Do not initialize is_main_source. - -2003-10-06 Rainer Orth - - * fixinc/inclhack.def (stdio_va_list): Removed _ap fix. - (irix_stdio_va_list): Don't require leading printf, IRIX 6.5.21 - introduced some multi-line prototypes. - * fixinc/fixincl.x: Regenerate. - -2003-10-06 Richard Sandiford - - * config/mips/mips.h (PREDICATE_CODES): Add stack_operand. - * config/mips/mips.c (stack_operand): New predicate. - * config/mips/mips.md: Use it for the destination of mips16 insns - that store $31. - -2003-10-06 Richard Sandiford - - * config/mips/mips.md (*lowsi): Renamed from lowsi. - (*lowdi): Likewise lowdi. - (*lowsi_mips16, *lowdi_mips16): New patterns. - * config/mips/mips.c (mips_const_insns, mips_output_move): Remove - mips16 CONSTANT_RELOC handling. - (mips_delegitimize_address): Adjust for new sdata representation. - -2003-10-06 Richard Sandiford - - * config/mips/mips.c (mips_arg_info): If MUST_PASS_IN_STACK, - skip any remaining register arguments. - -2003-10-06 Ulrich Weigand - - * reload.c (find_reloads_subreg_address): Use correct offset for - paradoxical MEM subregs on big-endian targets. - -2003-10-06 Andrew Haley - - * tree.c (get_callee_fndecl): Call - lang_hooks.lang_get_callee_fndecl. - * langhooks-def.h (LANG_HOOKS_GET_CALLEE_FNDECL): New. - (lhd_get_callee_fndecl): New. - -2003-10-06 Andrew Pinski - - * config/darwin.c (machopic_non_lazy_ptr_name): Fix off by one - error in calculating the length of the string. - (machopic_stub_name): Likewise. - -2003-10-06 Roger Sayle - - * optabs.c (prepare_float_lib_cmp): Attach a REG_EQUAL note - describing the return value of the comparison libcall to the - REG_RETVAL instruction of the emitted sequence. - -2003-10-06 Eric Botcazou - - PR optimization/12215 - * cse.c (cse_set_around_loop): Emit the move at the beginning - of the next basic block for trapping sets. - -2003-10-06 Eric Botcazou - - PR optimization/11637 - * combine.c (adjust_for_new_dest): New function to adjust the - notes and LOG_LINKS when the dest of an insn has changed. - (try_combine): Use it when deleting the first insn of a two-insn - parallel or splitting a two-load parallel. - -2003-10-06 Richard Sandiford - - * config/mips/mips.c (mips_classify_constant): Only allow UNSPECs - if TARGET_EXPLICIT_RELOCS. - -2003-10-06 Mark Mitchell - - PR bootstrap/12512 - * Makefile.in (info): Use double-colon rules. - (dvi): Likewise. - (generated-manpages): Likewise. - * configure.in: Do not create lang.info, lang.dvi, or - lang.generated-manpages hooks. - * configure: Regenerated. - * objc/Make-lang.in (objc.info): Remove. - (objc.dvi): Remove. - (objc.generated-manpages): Remove. - * doc/sourcebuild.texi: Update description of info, dvi, and - generated-manpages hooks. - -2003-10-06 Richard Sandiford - - * config/mips/mips.md: Merge mips16 lw/srl pattern with its splitter. - -2003-10-05 Andrew Pinski - - * config/darwin.c (machopic_non_lazy_ptr_name): Fix off by one - errors in memcpy destinations. - (machopic_stub_name): Likewise. - -2003-10-05 Andrew Pinski - - * config/darwin.c (machopic_non_lazy_ptr_name): - Change strcat to memcpy and add length together. - (machopic_stub_name): Likewise. - -2003-10-05 Kaz Kojima - - * config/sh/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Handle new - signal trampoline codes. - -2003-10-05 Chris Demetriou - - * config/mips/mips.md (*divsf3): Move description of - SB-1 F2 erratum from here to... - (divsf3): Here. Disable if TARGET_FIX_SB1 is set and - flag_unsafe_math_optimizations is not. - -2003-10-05 Aldy Hernandez - - * config/rs6000/linuxspe.h: Define TARGET_SPE_ABI, TARGET_SPE, - TARGET_E500, TARGET_ISEL, and TARGET_FPRS. - -2003-10-05 Kazu Hirata - - * c-pretty-print.c: Fix comment typos. - * c-pretty-print.h: Likewise. - * calls.c: Likewise. - * cfgloopmanip.c: Likewise. - * cgraphunit.c: Likewise. - * cppfiles.c: Likewise. - * final.c: Likewise. - * function.c: Likewise. - * gcov-io.h: Likewise. - * gcse.c: Likewise. - * genoutput.c: Likewise. - * loop.c: Likewise. - * postreload.c: Likewise. - * reg-stack.c: Likewise. - * regmove.c: Likewise. - * sched-int.h: Likewise. - * sched-rgn.c: Likewise. - * simplify-rtx.c: Likewise. - * tree-inline.c: Likewise. - * config/m68hc11/m68hc11.h: Likewise. - * config/mmix/mmix.c: Likewise. - * config/mn10300/mn10300.md: Likewise. - * config/sh/sh.h: Likewise. - -2003-10-05 Richard Henderson - - * tree-inline.c (remap_type): New. - (remap_decl): Use it. Remap DECL_SIZE*. - (copy_body_r): Use it. - (walk_tree): Walk TREE_TYPE too. - (copy_tree_r): Don't walk subtrees of types. - * tree.c (variably_modified_type_p): Restructure. Consider integer - types with non-const bounds variably modified. - -2003-10-05 Kazu Hirata - - * doc/invoke.texi: Fix typos. - -2003-10-05 Kazu Hirata - - * fold-const.c: Follow spelling conventions. - * function.c: Likewise. - * config/c4x/c4x.h: Likewise. - * config/c4x/c4x.md: Likewise. - * config/frv/frv.md: Likewise. - * config/rs6000/aix.h: Likewise. - * config/rs6000/linux64.h: Likewise. - * config/xtensa/xtensa.c: Likewise. - -2003-10-05 Kazu Hirata - - * c-pretty-print.c: Fix comment formatting. - * cfglayout.c: Likewise. - * cfgloopanal.c: Likewise. - * cppcharset.c: Likewise. - * dbxout.c: Likewise. - * ggc-page.c: Likewise. - * ggc.h: Likewise. - * target.h: Likewise. - -2003-10-04 Kelley Cook - - * gengtype-lex.l: Recognize typedef of functions without PARAMS macro. - -2003-10-04 Nathanael Nerode - - * config/v850/v850-c.c, config/v850/v850-protos.h, config/v850/v850.c: - Convert to ISO C90 function declarations and definitions. - -2003-10-04 Zack Weinberg - - * libfuncs.h - (LTI_eqhf2, LTI_nehf2, LTI_gthf2, LTI_gehf2, LTI_lthf2) - (LTI_lehf2, LTI_unordhf2, LTI_eqsf2, LTI_nesf2, LTI_gtsf2) - (LTI_gesf2, LTI_ltsf2, LTI_lesf2, LTI_unordsf2, LTI_eqdf2) - (LTI_nedf2, LTI_gtdf2, LTI_gedf2, LTI_ltdf2, LTI_ledf2) - (LTI_unorddf2, LTI_eqxf2, LTI_nexf2, LTI_gtxf2, LTI_gexf2) - (LTI_ltxf2, LTI_lexf2, LTI_unordxf2, LTI_eqtf2, LTI_netf2) - (LTI_gttf2, LTI_getf2, LTI_lttf2, LTI_letf2, LTI_unordtf2) - (eqhf2_libfunc, nehf2_libfunc, gthf2_libfunc, gehf2_libfunc) - (lthf2_libfunc, lehf2_libfunc, unordhf2_libfunc, eqsf2_libfunc) - (nesf2_libfunc, gtsf2_libfunc, gesf2_libfunc, ltsf2_libfunc) - (lesf2_libfunc, unordsf2_libfunc eqdf2_libfunc, nedf2_libfunc) - (gtdf2_libfunc, gedf2_libfunc, ltdf2_libfunc, ledf2_libfunc) - (unorddf2_libfunc eqxf2_libfunc, nexf2_libfunc, gtxf2_libfunc) - (gexf2_libfunc, ltxf2_libfunc, lexf2_libfunc, unordxf2_libfunc - (eqtf2_libfunc, netf2_libfunc, gttf2_libfunc, getf2_libfunc) - (lttf2_libfunc, letf2_libfunc, unordtf2_libfunc): - Delete. - * optabs.h (OTI_eq, OTI_ne, OTI_gt, OTI_ge, OTI_lt, OTI_le) - (OTI_unord, eq_optab, ne_optab, gt_optab, ge_optab, lt_optab) - (le_optab, unord_optab): New. - - * optabs.c (prepare_float_lib_cmp): Rewrite. Get the libfuncs - from the code_to_optab table, not a giant switch; use - swap_condition; do widening only if a comparison function that - we can call exists in a wider mode, not if a cmp_optab insn or - libfunc exists in a wider mode; call protect_from_queue - exactly once on each operand. - (init_optabs): Initialize the new optabs, not the deleted libfuncs. - - * config/gofast.h, config/ia64/ia64.c, config/mips/mips.c - * config/pa/pa.c, config/rs6000/rs6000.c, config/sparc/sparc.c: - Set floating point comparison libfuncs using set_optab_libfunc - on the appropriate optab. - - * config/ia64/ia64.c (ia64_hpux_init_libfuncs): Fix typo. - * config/rs6000/rs6000.c (rs6000_init_libfuncs): Correct ABI - selector conditionals. - -2003-10-04 Stephane Carrez - - * config/m68hc11/t-m68hc11-gas (MULTILIB_MATCHES): m68hcs12 is - identical to m68hc12 as far as libraries are concerned. - -2003-10-04 Eric Botcazou - - PR c/12446 - * c-typeck.c (convert_for_assignment): Issue an error for - array to pointer assignment after default conversion. - (digest_init): Likewise. - -2003-10-04 Fariborz Jahanian - - * c-decl.c (duplicate_decls): retain DECL_COMMON of old declaration - -2003-10-03 Gerald Pfeifer - - * doc/extend.texi (Function Attributes): Fix title of GNU C - Preprocessor manual. - (C++ Extensions): Fix reference to "Predefined Macros" in the - GNU C Preprocessor manual. - -2003-10-04 Richard Earnshaw - - * doc/extend.texi: Document how GCC estimates and relies on the size - of an asm. - -2003-10-04 Richard Sandiford - - * config/mips/mips.c (mips_pad_arg_upward): Pad floating-point - arguments downward for big-endian o64. - -2003-10-03 Robert Bowdidge - - * ggc-page.c (ggc_pch_write_object): Replace fseek() with fwrite() in - PCH generation, avoiding too-frequent flushes when writing to NFS - file system. - -2003-10-03 Ziemowit Laski - - * objc/objc-act.c (lookup_category): Mark as 'inline'. - -2003-10-03 Alexander Malmberg - Ziemowit Laski - - * objc/objc-act.c (add_method_to_hash_list, lookup_category): - New functions. - (lookup_method_in_hash_lists): New parameter indicating whether - we are messaging 'Class' or 'id'. - (check_duplicates): Likewise; do not assume all methods will - be either class or instance methods. - (generate_category, finish_class): Use lookup_category(). - (add_method): Use add_method_to_hash_list(); insert instance - methods of root classes into the global class method hash table. - (add_category): Use lookup_category(); avoid constructing - duplicate categories. - (really_start_method): Add method to corresponding @interface, - if not already there (and if the @interface exists). - (finish_message_expr, finish_objc): Adjust calls to - check_duplicates(). - -2003-10-03 Roger Sayle - - PR optimization/9325, PR java/6391 - * fold-const.c (fold_convert): For floating point to integer - conversions, return the maximum/minimum representable integer - value if the real constant overflows the destination type. - * tree.c (real_value_from_int_cst): Allow the type to be NULL, - meaning don't truncate the result to a floating point mode. - Simplify the logic by calling real_from_integer directly. - * simplify-rtx.c (simplify_unary_operation): Implement the - same semantics for folding floating point to integer conversions - in RTL. - -2003-10-03 Chris Demetriou - - * config/mips/mips.c (mips_emit_prefetch): Restructure - to avoid use of arrays, handle indexed prefetch. - * config/mips/mips.h (ISA_HAS_FP4, ISA_HAS_PREFETCH): Update comments. - (ISA_HAS_PREFETCHX): New deffine. - * config/mips/mips.md ("type" attr): Add new "prefetchx" value, - update comments. - (prefetch_indexed_di, prefetch_indexed_si): New insns. - -2003-10-03 Jeff Sturm - Roger Sayle - - PR optimization/12289 - * calls.c (emit_call_1): Pretend to have popped the arguments - to noreturn and longjmp functions instead of ignoring them. - (expand_call): Don't adjust stack_pointer_dela while - inhibit_defer_pop is set. - -2003-10-03 Andreas Schwab - - PR bootstrap/12276 - * configure.in: Check for libunwind on the host only if building - a native compiler. - * configure: Regenerated. - -2003-10-03 Paolo Carlini - - * unwind-pe.h (read_encoded_value_with_base): Constify u and - its inizialization cast. - -2003-10-03 Richard Sandiford - - PR target/12485 - * config/mips/mips.c (mips_load_got): GOT accesses can't trap. - -2003-10-02 Mark Mitchell - - PR optimization/12180 - * tree-inline.c (inline_forbidden_p_1): Do not permit inlining of - functions containing calls to __builtin_next_arg. - -2003-10-02 Chris Demetriou - - * config/mips/mips.c (mips_emit_prefetch): Use operand 3 - in instructions being output. - * config/mips/mips.md (prefetch_si_address): Change third - operand's constraint letter to 'I'. - (prefetch_di_address): Likewise. - (prefetch_si, prefetch_di): Set third operand to const0_rtx. - -2003-10-02 Zack Weinberg - - * system.h: Poison macros obsoleted by earlier patch. - * config/cris/cris.c: C90-ify a function definition. - -2003-10-02 Josef Zlomek - - PR/12292 - * combine.c (make_field_assignment): Check whether rtx's code - is CONST_INT before using INTVAL. - -2003-10-02 Josef Zlomek - - * cgraph.c (cgraph_node): Use INSERT instead of 1 in - htab_find_slot_with_hash. - (cgraph_node_for_identifier): Use NO_INSERT. - (cgraph_remove_node): Use NO_INSERT. - (cgraph_varpool_node): Use INSERT. - (cgraph_varpool_node_for_identifier): Use NO_INSERT. - -2003-10-02 Josef Zlomek - - Waldek Hebisch - PR/12072 - * varasm.c (compare_constant): Fix thinko. - -2003-10-02 Richard Sandiford - - * config/frv/frv.c (frv_issue_rate): New function. - (frv_pack_insns): Use it. - (TARGET_SCHED_ISSUE_RATE): Define. - -2003-10-02 Steven Bosscher - - * config/mcore/mcore.c: Convert to ISO C90 function declarations - and definitions. - * config/mcore/mcore.h: Likewise. - * config/mcore/mcore-protos.h: Likewise. - -2003-10-02 Richard Sandiford - - * config/frv/frv.c (frv_use_dfa_pipeline_interface): New function. - (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define. - -2003-10-01 Per Bothner - - * c-lex.c (src_line): Remove unneeded static variable. - (cb_line_change): Set input_line directly, instead of src_line. - (get_non_padding_token): We no longer need to compensate for the - "horrible things" the C++ front-end does with the current line number, - - * cpplib.c (_cpp_pop_buffer): Do generate a _cpp_do_file_change - callback even when popping the main file. - * c-lex.c (fe_file_change): Handle a NULL new_map. - * fix-header.c (cb_file_change): Likewise. - * c-ppoutput.c (pp_file_change): Likewise. - - * cppinit.c (cpp_read_main_file): Split into two functions: - Distribute _cpp_stack_file call over the two functions. - (cpp_find_main_file): New function. - Don't call _cpp_do_file_change even if working_directory flag set. - (cpp_push_main_file): New function. - * cppfiles.c (_cpp_find_failed): New helper function. - (find_file): Made non-static and renamed to _cpp_find_file. - (_cpp_stack_file): No longer needed. But note the following. - (stack_file): Made non-static and renamed to _cpp_stack_file. - * fix-header.c (cpp_read_main_file): Replace cpp_read_main_file - call with calls to cpp_find_main_file and cpp_push_main_file. - (search_path_head): If there is no current buffer, use main_file. - * cpphash.h: Update function declarations. - * cpplib.h: Update function declarations. - - * c-opts.c (c_common_post_options): Don't call cpp_find_main_file yet. - (c_common_parse_file): No longer need to call cpp_read_main_file - when file_index > 0 (as in multi-file or server compiation). - (finish_options): Change to is an LC_ENTER, not LC_RENAME - as this now happens before cpp_push_main_file. - (push_command_line_include): When done with options, pass LC_LEAVE - instead of LC_RENAME to cpp_change_file and finally cpp_push_main_file. - (fe_file_change): Handle NULL new_map, and simplify. - * cpplex.c (_cpp_get_fresh_line): Revert my no-longer-needed - 08-28 change, since we're never called with a NULL buffer. - (_cpp_lex_direct): Likewise. - * cpptrad.c (_cpp_read_logical_line_trad): Likewise. - Return false if buffer is NULL at end. - - * cpplex.c (_cpp_get_fresh_line): Return value now just depends on - whether pfile->buffer is NULL after pop, ignoring return_at_eof. - * cpphash.h (struct cpp_buffer): Remove unused return_at_eof field. - * cpplib.c (cpp_push_buffer): Since we no longer set return_at_eof, - remove the unused return_at_eof parameter. - * cppfiles.c, cpplib.c, cppmacro.c, cpppch.c, fix-header.c: - Update callers of cpp_push_buffer. - -2003-10-01 Zack Weinberg - - * target.h (init_libfuncs): New hook. - * target-def.h: Default TARGET_INIT_BUILTINS and - TARGET_INIT_LIBFUNCS to hook_void_void. Add - TARGET_INIT_LIBFUNCS to TARGET_INITIALIZER. - * builtins.c (default_init_builtins): Delete. - * expr.h (default_init_builtins): Delete prototype. - * doc/tm.texi: Document TARGET_INIT_LIBFUNCS and US_SOFTWARE_GOFAST. - Tweak documentation of TARGET_FLOAT_LIB_COMPARE_RETURNS_BOOL. - Remove documentation of INIT_TARGET_OPTABS, MULSI3_LIBCALL, - DIVSI3_LIBCALL, UDIVSI3_LIBCALL, MODSI3_LIBCALL, UMODSI3_LIBCALL, - MULDI3_LIBCALL, DIVDI3_LIBCALL, UDIVDI3_LIBCALL, MODDI3_LIBCALL, - and UMODDI3_LIBCALL, - - * Makefile.in (optabs.o): Depends on target.h. - * defaults.h: Provide default for FLOAT_LIB_COMPARE_RETURNS_BOOL. - * optabs.c: Include target.h. - (prepare_float_lib_cmp): No need for #ifdef around use of - FLOAT_LIB_COMPARE_RETURNS_BOOL. - (set_optab_libfunc): New function. - (init_optabs): Delete use of all *_LIBCALL defines. - Call targetm.init_libfuncs not INIT_TARGET_OPTABS. - * optabs.h: Prototype set_optab_libfunc. - - * config.gcc: Remove all references to pa/long_double.h, - ia64/hpux_longdouble.h, and gofast.h. - (mips-*-*): When --enable-gofast, just add US_SOFTWARE_GOFAST - to tm_defines; don't set INIT_SUBTARGET_OPTABS or change tm_file. - - * config/alpha/alpha.c, config/c4x/c4x.c, config/cris/cris.c - * config/frv/frv.c, config/h8300/h8300.c, config/i860/i860.c - * config/ia64/ia64.c, config/ip2k/ip2k.c, config/m68hc11/m68hc11.c - * config/mips/mips.c, config/pa/pa.c, config/rs6000/rs6000.c - * config/sparc/sparc.c, config/vax/vax.c: - Provide a definition for TARGET_INIT_LIBFUNCS. Where - necessary, include optabs.h, libfuncs.h, and/or config/gofast.h. - - * config/alpha/unicosmk.h, config/alpha/vms.h, config/c4x/c4x.h - * config/avr/avr.h, config/cris/cris.h, config/frv/frv.h - * config/h8300/h8300.h, config/i860/i860.h, config/ip2k/ip2k.h - * config/iq2000/iq2000.h, config/m68hc11/m68hc11.h, config/mips/mips.h - * config/rs6000/aix.h, config/rs6000/sysv4.h, config/sparc/elf.h - * config/sparc/lite.h, config/sparc/netbsd-elf.h, config/sparc/sol2.h - * config/sparc/sparc.h, config/v850/v850.h, config/vax/vax.h - * config/vax/elf.h: Don't define or use INIT_TARGET_OPTABS, - INIT_SUBTARGET_OPTABS, or any *_LIBCALL macros. - - * config/ia64/hpux.h: Redefine INTEL_EXTENDED_IEEE_FORMAT to 0. - Set TARGET_INIT_LIBFUNCS and FLOAT_LIB_COMPARE_RETURNS_BOOL here. - * config/pa/pa-hpux.h: Define LONG_DOUBLE_TYPE_SIZE, - HPUX_LONG_DOUBLE_LIBRARY, and FLOAT_LIB_COMPARE_RETURNS_BOOL here. - * config/ia64/hpux_longdouble.h, config/pa/long_double.h: Delete. - - * config/rs6000/xcoff.h: Don't define RS6000_ITRUNC nor RS6000_UITRUNC. - * config/sparc/sparc.h: Default SUN_CONVERSION_LIBFUNCS and - SUN_INTEGER_MULTIPLY_64 to 0. - * config/sparc/sol2.h: Redefine SUN_CONVERSION_LIBFUNCS and - SUN_INTEGER_MULTIPLY_64 to 1. - * config/sparc/elf.h: Redefine SUN_CONVERSION_LIBFUNCS and - SUN_INTEGER_MULTIPLY_64 to 0. - * config/sparc/lite.h, config/sparc/liteelf.h, config/sparc/sp86x-elf.h: - Define US_SOFTWARE_GOFAST. - * config/vax/vax.h: Default TARGET_ELF to 0. - * config/vax/elf.h: Redefine TARGET_ELF to 1. - - * config/gofast.h: Don't define any macros here. Provide one - static function, gofast_maybe_init_libfuncs, which does what - INIT_GOFAST_LIBFUNCS used to do but only if US_SOFTWARE_GOFAST - is already defined. Do not clear negation libfuncs. Do - not mess with HFmode, XFmode, or TFmode libfuncs. - - * config/avr/avr.c (avr_init_once): #if 0 out; mark FIXME. - -2003-10-01 Kelley Cook - - PR C/12466 - * c-parse.in (parmlist_2): Mark declaration with an ellipsis as ISO C. - -2003-10-01 Rainer Orth - - * config/mips/xm-iris5.h: Remove, unnecessary. - * config.build (mips-sgi-irix5*): Remove. - (mips-sgi-irix6*o32): Likewise. - * config.gcc (mips-sgi-irix6*o32): Remove xm_file. - (mips-sgi-irix5cross64): Likewise. - (mips-sgi-irix5*): Likewise. - * config.host (mips-sgi-irix5*): Remove. - (mips-sgi-irix6*o32): Likewise. - -2003-10-01 Zack Weinberg - - * dbxout.c (dbxout_fptype_value): Delete. - (dbxout_type): Emit R3 for all COMPLEX_TYPEs. - -2003-10-01 Alexandre Oliva - - * output.h (compute_reloc_for_constant): Declare. - * varasm.c (compute_reloc_for_constant): Extract from... - (output_addressed_constants): ... here. Adjust all callers. - -2003-10-01 John David Anglin - - * aclocal.m4: Add hpux10* and hpux11.00 to /dev/zero blacklist. - * configure: Rebuilt. - -2003-10-01 Richard Kenner - - * fold-const.c (make_range): When handling unsigned, don't reverse - range if high bound is zero. - -2003-09-30 Alexandre Oliva - - * config/frv/frv.h (PREDICATE_CODES): Added - condexec_si_media_operator, condexec_sf_add_operator and - condexec_sf_conv_operator. Removed condexec_sf_binary_operator - and condexec_sf_unary_operator. - -2003-10-01 John David Anglin - - * aclocal.m4: Add ultrix* to /dev/zero blacklist. - * configure: Rebuilt. - -2003-10-01 Rainer Orth - - * except.h (MUST_USE_SJLJ_EXCEPTIONS): Revert 2003-09-23 change. - Allow override. - * doc/tm.texi (MUST_USE_SJLJ_EXCEPTIONS): Document. - -2003-09-23 David S. Miller - - * config/sparc/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Undefine - before redefining. - * config/sparc/linux64.h (LINK_GCC_C_SEQUENCE_SPEC): Likewise. - -2003-10-01 Steven Bosscher - - * config/cris/cris-protos.h, config/cris/cris.c: Convert to ISO - C90 function declarations and definitions. - -2003-10-01 Nathanael Nerode - - * config.gcc (cris-*-linux*): Revert mistaken commit. - -2003-10-01 Eric Botcazou - - PR optimization/11753 - * config/sparc/sparc.md (length attribute) [fcc branch]: Add 1 to - the length in the non-V9 case. - -2003-09-30 Richard Henderson - - * dwarf2out.c (expand_builtin_init_dwarf_reg_sizes): Honor - DWARF_ALT_FRAME_RETURN_COLUMN. - * unwind-dw2.c (dwarf_reg_size_table): Expand by one. - (_Unwind_GetGR, _Unwind_SetGR): Validate lookup column. - (uw_frame_state_for): Return end-of-stack for null return address. - * doc/tm.texi (DWARF_ALT_FRAME_RETURN_COLUMN): Add. - - * config/alpha/alpha.c (alpha_sa_mask): Add r31 for eh_return. - (alpha_expand_prologue): Store a zero for it. - (alpha_expand_epilogue): Don't reload it. - * config/alpha/alpha.h (DWARF_ALT_FRAME_RETURN_COLUMN): New. - * config/alpha/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Use column 64 - for the sigframe return address. - -2003-09-30 Kelley Cook - - * sdbout.c: Convert to ISO C90 prototypes. - * objc/objc-act.c: Likewise. - -2003-09-30 Kelley Cook - - * config/i386/cygwin1.c: Convert to ISO C90 prototypes. - * config/i386/winnt.c: Likewise. - * config/i386/cygming.h: Likewise. - -2003-09-30 Kazu Hirata - - * fold-const.c (fold): Fold (A & ~B) - (A & B) into - (A ^ B) - B for any B. - -2003-09-30 Nathanael Nerode - - * config.gcc (arm*-*-kaos*, i[34567]86-*-kaos*, powerpc-*-kaos*, - powerpcle-*-kaos*, strongarm-*-kaos*): Disable fixproto. - -2003-09-30 Richard Earnshaw - - * arm/ieee754-sf.S: Tidy formatting. - -2003-09-30 Nicolas Pitre - - * arm/lib1funcs.asm (ARM_DIV_MOD_BODY): Split into ARM_DIV_BODY - and ARM_MOD_BODY. - (ARM_MOD_BODY): Rewritten. added clz insns for __ARM_ARCH__ >= 5. - (ARM_DIV_BODY): Added clz insns for __ARM_ARCH__ >= 5, - added better divisor alignment in the other case. - (ARM_DIV2_ORDER): Added, finds the order of a single bit divisor. - (__divsi3, __udivsi3, __modsi3, __umodsi3): rewritten using the - macros above, add fast exits for divisor >= dividend, etc. - -2003-09-30 Nicolas Pitre - - * arm/ieee754-df.S: Split compilation of fixunsdfsi from - L_fixdfsi target. - * arm/t-arm-elf (LIB1ASMFUNCS): Add _fixunsdfsi. - -2003-09-30 Nathanael Nerode - - * config.gcc: Default use_fixproto to 'no'. - -2003-09-30 Richard Sandiford - - PR optimization/12345 - * config/mips/mips-protos.h (mips_restore_gp): Remove. - (mips_gp_save_slot): Declare. - * config/mips/mips.c (mips_restore_gp): Remove in favor of... - (mips_gp_save_slot): ...this new function. - * config/mips/mips.md (exception_receiver): Use mips_gp_save_slot - and mips_output_move to generate the output template. - (call_internal): Force splitting if TARGET_SPLIT_CALLS. Don't emit - a gp load after a noreturn call. Load the gp using a move rather - than an exception_receiver pattern. - (call_value_internal, call_value_multiple_internal): Likewise. - (call_split, call_value_split, call_value_multiple_split): Clobber $28. - -2003-09-30 Carlo Wood - - PR debug/12319 - * cfglayout.c (insn_scope): Use prologue_locator and - epilogue_locator; return the outer function scope for - pro- and epilogue insns. - -2003-09-29 Zack Weinberg - - * objc/objc-act.c (encode_type): Encode INTEGER_TYPEs and - REAL_TYPEs based on the bitsize of the type's mode, not the - mode directly. - -2003-09-29 Rainer Orth - - * dwarf2out.c (default_eh_frame_section): Split into ... - (named_section_eh_frame_section, collect2_eh_frame_section): ... new - functions. - * output.h (named_section_eh_frame_section): Declare. - (collect2_eh_frame_section): Likewise. - -2003-09-29 Zack Weinberg - - * real.c (real_sqrt): Use get_canonical_qnan directly. - - * dwarf2out.c (add_const_value_attribute): Use real_to_target. - - * varasm.c (assemble_real): Use real_to_target directly, - calculate the number of significant elements of the result - array and write them out in a loop, instead of using a giant - switch statement to pick the correct REAL_VALUE_TO_TARGET_* - macro. - -2003-09-29 Jan Hubicka - - PR c++/12175 - * varasm.c (notice_global_symbol): Discard external symbols. - - PR optimization/12286 - * gcov-io.c (gcov_read_words): Fix memmove call. - * profile.c (compute_branch_probabilities): Add extra sanity checks. - -2003-09-29 Rainer Orth - - * config.gcc (sparc-*-solaris2*): Handle Solaris 10 and up like - Solaris 7-9. - - * fixinc/inclhack.def (solaris_widec): Replace solaris2.[0-5]* by - wildcards which explicitly match micro versions. - * fixinc/fixincl.x: Regenerate. - -2003-09-29 Kazu Hirata - - * fold-const.c (fold): Fold (A & ~B) - (A & B) into - (A ^ B) - B, where B is any power of 2 minus 1. - -2003-09-29 Jan Hubicka - - * libgcov.c (gcov_exit): Fix two pastos. - -2003-09-29 Kazu Hirata - - * config/h8300/h8300.md (*tst_extzv_1_n): Combine with the - define_split immediately below to form define_insn_and_split. - -2003-09-29 Kazu Hirata - - * config/h8300/h8300.md (*tstsi_variable_bit): New. - (*tstsi_variable_bit_qi): Likewise. - -2003-09-28 Phil Edwards - - * doc/cppopts.texi: Use 'dashMP' instead of '-MP' as a cross- - reference name. - -2003-09-28 Richard Henderson - - * c-decl.c (duplicate_decls): Copy DECL_SOURCE_LOCATION, not - file and line separately. - -2003-09-28 Ulrich Weigand - - * config/s390/s390.md ("*adddi3_carry1_cc", "*adddi3_carry1_cconly", - "*adddi3_carry2_cc", "*adddi3_carry2_cconly", "*subdi3_borrow_cc", - "*subdi3_borrow_cconly"): New insns. - ("*addsi3_sub", "*subsi3_sub"): Remove. - ("*subdi3_cc", *subdi3_cconly"): Use only if TARGET_64BIT. - ("*subsi3_cc"): Fix op_type attribute. - -2003-09-28 Richard Henderson - - * stmt.c (expand_asm_operands): Take a location_t, instead of - individual file and line. - * c-typeck.c (c_expand_asm_operands): Likewise. - * tree.h (expand_asm_operands): Update decl. - * c-common.h (c_expand_asm_operands): Likewise. - * c-semantics (genrtl_asm_stmt): Update call. - -2003-09-28 Philip Blundell - - * config/arm/arm.c (legitimize_pic_address): Check - SYMBOL_REF_LOCAL_P, not ENCODED_SHORT_CALL_ATTR_P. - (arm_assemble_integer): Likewise. - -2003-09-28 Steven Bosscher - - * config/pdp11/pdp11-protos.h, config/pdp11/pdp11.c, - config/c4x/c4x-c.c, config/c4x/c4x-protos.h, config/c4x/c4x.c, - config/c4x/c4x.h: - Convert to ISO C90 function declarations and definitions. - -2003-09-28 Steven Bosscher - - * config/stormy16/stormy16.c, config/stormy16/stormy16-protos.h: - Convert to ISO C90 function declarations and definitions. - -2003-09-28 Richard Sandiford - - * config/mips/mips.c (mips_constant_info): Add reloc field. - (mips_classify_constant): Initialize it. Always set SYMBOL to the - underlying symbol, not to an unspec. - (mips_delegitimize_address, print_operand): Clean up accordingly. - -2003-09-28 Richard Sandiford - - * config/mips/mips-protos.h (mips16_gp_pseudo_reg): Remove. - * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Remove orphaned comment. - * config/mips/mips.c (mips_reloc_offset_ok_p): New function. - (mips_classify_constant): Use it. - (mips_splittable_symbol_p): Add an offset argument. - (mips_classify_address): Adjust call accordingly. - (mips_legitimize_symbol): Handle sdata references with LO_SUM rather - than a relocation unspec. Update call to mips_splittable_symbol_p. - Generalize the code that copes with symbols + invalid offsets. - (print_operand): Allow '%R' to be applied to small data addresses. - (mips_reloc_string): Remove RELOC_GPREL16. - (mips_sdata_pointer): Renamed from mips16_gp_pseudo_reg. Return $gp - for TARGET_EXPLICIT_RELOCS. Return null if we can't use gp-relative - relocation operators. - * config/mips/mips.md (RELOC_GPREL16): Remove. Shuffle other reloc - constants accordingly. - -2003-09-27 Roger Sayle - - * toplev.c (flag_evaluation_order): New global variable. - * flags.h (flag_evaluation_order): Prototype here. - * expr.c (expand_operands): If we need to preserve observable - evaluation order, protect exp1 from clobbering exp0's result. - -2003-09-28 Andreas Jaeger - - * c-decl.c (finish_function): Convert definition to ISO C90. - * ifcvt.c (mark_loop_exit_edges): Likewise. - * ra-rewrite.c (emit_colors): Likewise. - -2003-09-27 Nathanael Nerode - - * config.gcc (alpha*-dec-osf[45]*): Disable fixproto. - * config.gcc (arm*-*-uclinux*): Disable fixproto. - * config.gcc (powerpc-*-eabispe*, powerpc-*-eabisimaltivec*, - powerpc-*-eabialtivec*): Disable fixproto. - -2003-09-27 Eric Botcazou - - PR optimization/12340 - * loop.h (struct induction): Document the new semantics - of the 'same' field for bivs. - * unroll.c (biv_total_increment): Don't count the same - biv increment several times. - (loop_iterations) [GENERAL_INDUCT]: Likewise. - -2003-09-27 Graham Stott - - * unroll.c (loop_interations)[GT]: Add missing break. - -2003-09-27 Kelley Cook - - * config/chorus.h, config/darwin-c.c, config/darwin-protos.h, - config/darwin.c, config/darwin.h, config/dbx.h, config/dbxcoff.h, - config/dbxelf.h, config/elfos.h, config/fp-bit.h, - config/freebsd-nthr.h, config/freebsd-spec.h, config/freebsd.h, - config/freebsd3.h, config/freebsd4.h, config/freebsd5.h, - config/freebsd6.h, config/netbsd-aout.h, config/netbsd-elf.h, - config/netbsd.h, config/netware.h, config/openbsd-oldgas.h, - config/openbsd.h, config/ptx4.h, config/alpha/alpha-protos.h, - config/alpha/alpha.c, config/alpha/alpha.h, config/alpha/alpha.md, - config/alpha/elf.h, config/alpha/ev4.md, config/alpha/ev5.md, - config/alpha/ev6.md, config/alpha/freebsd.h, config/alpha/linux-elf.h, - config/alpha/linux.h, config/alpha/netbsd.h, config/alpha/openbsd.h, - config/alpha/osf.h, config/alpha/osf5.h, config/alpha/unicosmk.h, - config/alpha/vms-cc.c, config/alpha/vms-crt0-64.c, - config/alpha/vms-crt0.c, config/alpha/vms-dwarf2.asm, - config/alpha/vms-dwarf2eh.asm, config/alpha/vms-ld.c, - config/alpha/vms-psxcrt0-64.c, config/alpha/vms-psxcrt0.c, - config/alpha/vms.h, config/alpha/vms64.h, config/alpha/vms_tramp.asm, - config/alpha/xm-vms.h, config/arc/arc-modes.def, - config/arc/arc-protos.h, config/arc/arc.c, config/arc/arc.h, - config/arc/arc.md, config/arc/initfini.c, config/arc/lib1funcs.asm, - config/avr/avr-protos.h, config/avr/avr.c, config/avr/avr.h, - config/avr/avr.md, config/d30v/d30v-protos.h, config/d30v/d30v.h, - config/d30v/d30v.md, config/fr30/fr30-protos.h, config/fr30/fr30.c, - config/fr30/fr30.h, config/fr30/fr30.md, config/fr30/lib1funcs.asm, - config/frv/cmovd.c, config/frv/cmovh.c, config/frv/cmovw.c, - config/frv/frv-abi.h, config/frv/frv-asm.h, config/frv/frv-modes.def, - config/frv/frv-protos.h, config/frv/frv.c, config/frv/frv.h, - config/frv/frv.md, config/frv/frvbegin.c, config/frv/frvend.c, - config/frv/lib1funcs.asm, config/h8300/clzhi2.c, config/h8300/ctzhi2.c, - config/h8300/parityhi2.c, config/h8300/popcounthi2.c, - config/i370/i370-c.c, config/i370/i370-protos.h, config/i370/i370.c, - config/i370/i370.h, config/i370/i370.md, config/i370/linux.h, - config/i370/mvs.h, config/i370/oe.h, config/i386/darwin.h, - config/i960/i960-c.c, config/i960/i960-coff.h, - config/i960/i960-modes.def, config/i960/i960-protos.h, - config/i960/i960.c, config/i960/i960.h, config/i960/i960.md, - config/i960/rtems.h, config/ia64/elf.h, config/ia64/ia64.h, - config/m32r/initfini.c, config/m32r/m32r-protos.h, config/m32r/m32r.c, - config/m32r/m32r.h, config/m32r/m32r.md, config/m68hc11/larith.asm, - config/m68hc11/m68hc11-protos.h, config/m68hc11/m68hc11.c, - config/m68hc11/m68hc11.h, config/m68hc11/m68hc11.md, - config/m68hc11/m68hc12.h, config/m68k/coff.h, config/m68k/crti.s, - config/m68k/crtn.s, config/m68k/hp320.h, config/m68k/hp320base.h, - config/m68k/lb1sf68.asm, config/m68k/linux.h, config/m68k/m68020-elf.h, - config/m68k/m68k-aout.h, config/m68k/m68k-none.h, - config/m68k/m68k-protos.h, config/m68k/m68k.c, config/m68k/m68k.h, - config/m68k/m68k.md, config/m68k/m68kelf.h, config/m68k/m68kv4.h, - config/m68k/netbsd-elf.h, config/m68k/openbsd.h, - config/m68k/rtemself.h, config/m68k/sgs.h, config/mcore/lib1.asm, - config/mcore/mcore-elf.h, config/mcore/mcore-pe.h, - config/mcore/mcore-protos.h, config/mcore/mcore.c, - config/mcore/mcore.md, config/mips/elf.h, config/mips/elf64.h, - config/mips/elforion.h, config/mips/iris5.h, config/mips/iris6.h, - config/mips/iris6gld.h, config/mips/irix6-libc-compat.c, - config/mips/linux.h, config/mips/mips-protos.h, config/mips/mips.c, - config/mips/mips.h, config/mips/mips.md, config/mips/netbsd.h, - config/mips/openbsd.h, config/mips/r3900.h, config/mips/rtems.h, - config/mips/vr.h, config/mn10300/linux.h, - config/mn10300/mn10300-protos.h, config/mn10300/mn10300.c, - config/mn10300/mn10300.h, config/mn10300/mn10300.md, - config/ns32k/__unorddf2.c, config/ns32k/__unordsf2.c, - config/ns32k/netbsd.h, config/ns32k/ns32k-protos.h, - config/ns32k/ns32k.c, config/ns32k/ns32k.h, config/ns32k/ns32k.md, - config/pdp11/2bsd.h, config/pdp11/pdp11-modes.def, - config/pdp11/pdp11-protos.h, config/pdp11/pdp11.c, - config/pdp11/pdp11.h, config/pdp11/pdp11.md, config/rs6000/biarch64.h, - config/rs6000/default64.h, config/sh/coff.h, config/sh/crt1.asm, - config/sh/crti.asm, config/sh/crtn.asm, config/sh/elf.h, - config/sh/embed-elf.h, config/sh/linux.h, config/sh/little.h, - config/sh/netbsd-elf.h, config/sh/rtems.h, config/sh/rtemself.h, - config/sh/sh-protos.h, config/sh/sh.c, config/sh/sh.h, - config/sh/sh.md, config/sh/sh64.h, config/sh/shmedia.h, - config/sh/sshmedia.h, config/sh/ushmedia.h, config/sparc/pbd.h, - config/sparc/sparc.h, doc/install-old.texi, fixinc/fixinc.ptx, - fixinc/fixinc.svr4: GNU CC -> GCC. - -2003-09-26 Loren James Rittle - - * objc/objc-act.c (tm_p.h): Tweak order. - * objc/Make-lang.in (objc/objc-act.o): Add $(TM_P_H). - -2003-09-26 Nathanael Nerode - - * config.gcc (hppa*64*-*-linux* | parisc*64*-*-linux*): - Include t-slibgcc-elf-ver and t-linux in tmake_file. - * config.gcc (hppa*64*-*-linux* | parisc*64-*-linux*): - Disable fixproto. - * config.gcc (i960-*-coff*, m68k-*-aout*, sparclite-*-coff*): - Disable fixproto. - * config.gcc (i[34567]86-*-solaris2*, sparc64-*-solaris2*, - sparcv9-*-solaris2*, sparc-*-solaris2*): Disable fixproto. - - * config/i386/unix.h: Remove (unused) DEFAULT_ASSEMBLER_DIALECT. - -2003-09-26 Loren James Rittle - - * config/i386/i386.h (ix86_return_in_memory): Revert my last patch. - * objc/objc-act.c (tm_p.h): Include. - -2003-09-26 Per Bothner - - * dbxout.c (dbxout_typedefs): Output typedefs in forward order. - No longer any need to reverse by recursion. - -2003-09-26 Roger Sayle - Richard Henderson - - PR optimization/11741 - * gcse.c (pre_insert_copy_insn): Tweak the logic for finding the - appropriate set to match that in hash_scan_insn. Fall back to - the original copy method, if we can't validate changing insn. - (pre_delete): Only delete instructions that have a single_set, - instead of aborting when we encounter an PARALLEL insn with more - then one SET. - -2003-09-26 Andreas Krebbel - - * config/s390/s390.md ("builtin_setjmp_setup"): Insn deleted. - ("builtin_longjmp"): Insn deleted. - ("save_stack_nonlocal"): Save literal pool base pointer behind - backchain and stack pointer. - ("restore_stack_nonlocal"): Restore literal pool base pointer. - * config/s390/s390.h (STACK_SAVEAREA_MODE): Double size of - the stack save area for the nonlocal goto case. - -2003-09-26 John David Anglin - - PR bootstrap/12358 - * pa.c (output_bvb): Fix typo. - -2003-09-26 Richard Sandiford - - * expmed.c (store_bit_field): Don't search for an integer mode - unless we need the result. - -2003-09-26 Richard Sandiford - - * expr.c (emit_move_insn_1): If there is no move pattern for the - original mode, try using a pattern for the corresponding integer mode. - -2003-09-26 Richard Sandiford - - PR middle-end/9200 - * combine.c (if_then_else_cond): Tighten mode check. - -2003-09-25 Nathanael Nerode - - * cppcharset.c, cpphash.h: Rename 'struct strbuf' to - 'struct _cpp_strbuf'. - - * config/i386/netbsd-elf.h, config/i386/netbsd64.h, - config/i386/netware.h, config/i386/nto.h, config/i386/openbsd.h, - config/i386/pentium.md, config/i386/pmmintrin.h, config/i386/ppro.md, - config/i386/ptx4-i.h, config/i386/rtemself.h, config/i386/sco5.h, - config/i386/sol2.h, config/i386/svr3gas.h, config/i386/sysv3.h, - config/i386/sysv4-cpp.h, config/i386/sysv4.h, config/i386/sysv5.h, - config/i386/unix.h, config/i386/uwin.h, config/i386/vsta.h, - config/i386/xm-cygwin.h, config/i386/xm-djgpp.h, - config/i386/xm-mingw32.h, config/i386/xmmintrin.h: Replace - "GNU CC", "GNU compiler", and "GNU C-compiler" with "GCC". - * config/i386/i386-aout.h, config/i386/i386-coff.h, - config/i386/i386-interix.h, config/i386/i386-interix3.h, - config/i386/i386-modes.def, config/i386/i386-protos.h, - config/i386/i386.c, config/i386/i386.h, config/i386/i386.md, - config/i386/i386elf.h, config/i386/k6.md, config/i386/kaos-i386.h, - config/i386/linux-aout.h, config/i386/linux.h, config/i386/linux64.h, - config/i386/lynx-ng.h, config/i386/lynx.h, config/i386/mingw32.h, - config/i386/mmintrin.h, config/i386/moss.h: GNU CC -> GCC. - "GNU compiler" -> GCC. - * config/i386/att.h, config/i386/beos-elf.h, config/i386/biarch64.h, - config/i386/bsd.h, config/i386/crtdll.h, config/i386/cygming.h, - config/i386/cygwin.h, config/i386/cygwin1.c, config/i386/cygwin2.c, - config/i386/darwin.h, config/i386/djgpp.h, config/i386/emmintrin.h, - config/i386/freebsd-aout.h, config/i386/freebsd.h, - config/i386/freebsd64.h, config/i386/gas.h: GNU CC -> GCC. - -2003-09-25 Kelley Cook - - * cgraph.c (dump_cgraph): Don't output newline before dump. Add in - "local" to the callgraph dump. Output "after inlining" earlier. - * cgraphunit.c: Fix dumpfile whitespace and commonize headers of the - callgraph dumps. Correct misspellings. - (cgraph_decide_inlining): Output number of insns before inlining. - Output the calling function into which a function is inlined. - (cgraph_decide_small_functions): Format dump file like always_inline. - -2003-09-25 Loren James Rittle - - * config/i386/i386.h (ix86_return_in_memory): Add prototype. - -2003-09-25 Ulrich Weigand - - * config/s390/s390.c (s390_emit_prologue): Simplify accesses to - FPR slots in the save area. - (s390_emit_epilogue): Likewise. - -2003-09-25 Richard Sandiford - - * cgraph.h (cgraph_remove_edge): Declare. - * cgraph.c (cgraph_remove_edge): Make extern. - * cgraphunit.c (cgraph_finalize_function): Call cgraph_remove_edge - instead of cgraph_remove_call. - -2003-09-25 Ulrich Weigand - - * objc/objc-act.c (gen_declaration_1): Fix printf format. - -2003-09-25 Richard Earnshaw - - * arm.c (all_cores): arm710t, arm720t and arm740t are all based on the - arm7tdmi core. - -2003-09-25 Ziemowit Laski - - * config/darwin-protos.h (objc_image_info_section): - New prototype. - -2003-09-25 Ziemowit Laski - - * Makefile.in (stub-objc.o): Depend on $(GGC_H). - -2003-09-25 Nathanael Nerode - - * config.gcc: Get rid of more gratuitious 'x'es. Actually allow - tsc701 as a --with-cpu, --with-tune setting for sparc. - -2003-09-25 Ziemowit Laski - - * c-parse.in (objc_try_stmt): Do not specify a %type. - -2003-09-25 Nathanael Nerode - - * config.gcc: New 'widely ported system' clause for rtems. - Set thread file there, not in individual clauses. - -2003-09-25 Richard Sandiford - - PR target/6222 - * config/mips/mips.c (mips_va_arg): Handle arguments that must be - passed on the stack. - -2003-09-25 Nathanael Nerode - - * config.gcc (widely ported systems section): Mostly alphabetize - by system. Comment the case where we can't. - * config.gcc (widely ported systems section): Reindent and clean up. - - * config.gcc: Remove some unnecessary uses of 'x' in case statements. - Actually allow ep9312 as an arm --with-arch setting. - - * config.gcc (*-hpux11): Disable fixproto. - -2003-09-24 Phil Edwards - - PR pch/12112 - * gcc/cppfiles.c (pch_open_file): Return based on combined - result of all files. - (validate_pch): Return validate flag for current file. - -2003-09-24 Roger Sayle - - PR bootstrap/12358 - * fold-const.c (tree_swap_operands_p): Only reorder operands when - one of the operands is constant. - -2003-09-24 Ziemowit Laski - - MERGE OF objc-improvements-branch into MAINLINE: - * Makefile.in (C_OBJS): Add in stub-objc.o. - (c-parse.y): Change sed demarcations to begin with '@@'. - (stub-objc.o): New rule. - * c-common.c (flag_nil_receivers, flag_objc_exceptions, flag_zero_link, - flag_replace_objc_classes): New flags. - * c-common.h (RID_AT_THROW, RID_AT_TRY, RID_AT_CATCH, RID_AT_FINALLY, - RID_AT_SYNCHRONIZED): New keywords. - (flag_nil_receivers, flag_objc_exceptions, flag_zero_link, - flag_replace_objc_classes): New flags. - (lookup_interface, is_class_name, objc_is_object_ptr, objc_check_decl, - objc_comptypes, objc_message_selector, lookup_objc_ivar, - get_current_scope, objc_mark_locals_volatile): New prototypes, - some moved from c-tree.h. - * c-decl.c (get_current_scope, objc_mark_locals_volatile): New functions. - (finish_decl): Adjust where objc_check_decl() gets called. - * c-lang.c (lookup_interface, is_class_name, objc_is_id, objc_check_decl, - objc_comptypes, objc_message_selector, lookup_objc_ivar): Remove stubs. - * c-opts.c (c_common_handle_option): Add handling for flag_nil_receivers, - flag_objc_exceptions, flag_replace_objc_classes and flag_zero_link. - * c-parse.in: Replace 'ifc' and 'end ifc' sed markers with '@@ifc' and - '@@end_ifc', respectively. - (AT_THROW, AT_TRY, AT_CATCH, AT_FINALLY, AT_SYNCHRONIZED): New %tokens. - (objc_try_stmt, superclass, class_ivars, objc_try_catch-stmt, - objc_finally_block): New rules. - (component_decl_list2): Clean up semantic action for @defs construct. - (component_decl, c99_block_start): Remove call to add_objc_decls(). - (poplevel): Add call to objc_clear_super_receiver(). - (stmt): Add rules for @throw, @try..@catch..@finally and @synchronized - constructs. - (classdef, methodprotolist): Clean up/simplify. - (methodprotolist2): Eliminate. - (methodproto): Call add_method() instead of add_class_method() and - add_instance_method(). - (receiver): Add TYPENAME production. - (reswords): Add "throw", "try", "catch", "finally" and "synchronized". - (rid_to_yy): Add AT_THROW, AT_TRY, AT_CATCH, AT_FINALLY and - AT_SYNCHRONIZED. - * c-tree.h (lookup_interface, is_class_name, objc_is_id, objc_check_decl, - objc_comptypes, objc_message_selector) - * c-typeck.c (comptypes): In ObjC mode, call objc_comptypes() for - struct and pointer types. - (build_c_cast): Do not discard ObjC protocol qualifiers. - (convert_for_assignment): Cache result of comp_target_types() instead - of calling it more than once. - * c.opt (fnext-runtime): Update description string. - (fnil-receivers, fobjc-exceptions, freplace-objc-classes, fzero-link): - New ObjC/ObjC++-specific flags. - * function.h (GCC_FUNCTION_H): Header guard. - * gengtype-lex.l: Teach lexer about new @@... sed demarcations. - * stub-objc.c: New file, to be used to satisfy references to ObjC - functions by the C and C++ front-ends. - * config/darwin.c (_OBJC_IMAGE_INFO): New global metadata. - * config/darwin.h (FUNCTION): Add in_objc_image_info. - (SECTION_FUNCTION): Add objc_image_info_section. - * doc/invoke.texi: Link to GCC web site for Objective-C information. - (-fconstant-string-class): Update documentation. - (-fno-nil-receivers, -fobjc-exceptions, -freplace-objc-classes, - -fzero-link): New documentation. - * objc/Make-lang.in (objc-parse.y): Change sed demarcations to begin - with '@@'. - * objc/lang-specs.h (@objective-c-header): Fix -E spec. - * objc/objc/objc-act.c: Replace TYPE_NAME with OBJC_TYPE_NAME - throughout; provide casts for return values from memory allocation - functions (xmalloc, alloca, ggc_alloc, etc.). - (OBJC_VOID_AT_END): New macro. - (rtl.h): Do not #include any more. - (STRING_OBJECT_GLOBAL_NAME): Replaced with STRING_OBJECT_GLOBAL_FORMAT. - (TAG_MSGSEND_STRET, TAG_MSGSENDSUPER_STRET, TAG_MSGSEND_NONNIL, - TAG_MSGSEND_NONNIL_STRET, TAG_EXCEPTIONEXTRACT, TAG_EXCEPTIONTRYENTER, - TAG_EXCEPTIONTRYEXIT, TAG_EXCEPTIONMATCH, TAG_EXCEPTIONTHROW, - TAG_SYNCENTER, TAG_SYNCEXIT): New NeXT runtime entry points. - (struct val_stack, catch_count_stack, exc_binding_stack, val_stack_push, - val_stack_pop): New. - (objc_check_decl): Fix precondition for error message, along with - the message itself. - (lookup_and_install_protocols): Remove nonexistent protocols from - protocol list instead of returning error_mark_node. - (create_builtin_decl): Use DECL_ARTIFICIAL only for VAR_DECLs. - (setup_string_decl): Generalize to use STRING_OBJECT_GLOBAL_FORMAT. - (synth_module_prologue): General clean-up; construct NeXT-specific - runtime API prototypes if needed. - (build_string_class_template): Remove. - (check_string_class_template, string_layout_checked): New. - (build_objc_string_object): Generalize to work with - -fconstant-string-class. - (build_objc_symtab_template): Fix layout for the NeXT runtime. - (build_metadata_decl): New. - (forward_declare_categories): Call build_metadata_decl() instead of - create_builtin_decl() et al. - (build_module_descriptor): Use OBJC_VOID_AT_END instead of - void_list_node_1. - (build_selector_reference_decl, build_class_reference_decl, - build_objc_string_decl): Do not set TREE_READONLY. - (get_proto_encoding): Do not call hack_method_prototype(). - (get_class_reference): Add failure mode for invalid class names; - support -fzero-link; defer if in an ObjC++ template declaration. - (objc_declare_alias, objc_declare_class): Fix up duplicate name - lookup; check for global scope if in ObjC++. - (is_class_name): Generalize to work with various tree nodes (TYPE_DECL, - RECORD_TYPE, IDENTIFIER_NODE, etc.) - (objc_is_id): Removed. - (objc_is_object_ptr): New function. - (get_class_ivars_from_name): New function, used for @defs construct. - (get_class_ivars): Add option to return raw ivars; create a - ClASS_OWN_IVARS list for each class as needed. - (objc_enter_block, objc_exit_block, objc_declare_variable, - objc_build_throw_stmt, val_stack_push, val_stack_pop, - objc_build_try_enter_fragment, objc_build_extract_expr, - objc_build_try_exit_fragment, objc_build_extract_fragment, - objc_build_try_prologue, objc_build_try_epilogue, - objc_build_catch_stmt, objc_build_catch_epilogue, - objc_build_finally_prologue, objc_build_finally_epilogue, - objc_build_try_catch_finally_stmt, objc_build_synchronized_prologue, - objc_build_synchronized_epilogue, build_objc_exception_stuff): - New functions. - (_JBLEN): _setjmp jmpbuf size (needs to be made a target hook in - the future). - (build_private_template): Fix up calls to get_class_ivars(). - (offset_is_register, forwarding_offset): Remove. - (objc_method_parm_type, objc_encoded_type_size): New functions. - (encode_method_prototype): Simplify to no longer depend on - back-end information. - (build_tmp_function_decl_xxx, build_tmp_function_decl, - hack_method_prototype): Removed. - (generate_protocol_references): Remove calls to - build_tmp_function_decl(). - (generate_protocols): Adjust calls to encode_method_prototype(). - (build_class_template): Generate sel_id' and 'gc_object_type' fields - for the NeXT runtime. - (synth_forward_declarations): Call build_metadata_decl(). - (check_ivars): Check that the number of ivars matches also. - (build_super_template): Modify super_type directly; disable debugging - output while generating decl. - (build_ivar_list_initializer): Skip list elements that are not - FIELD_DECLs. - (ivar_list_length): New function. - (generate_ivar_lists): Call ivar_list_length() instead of list_length() - and encode_method_prototype() instead of encode_method_def(). - (build_shared_structure_initializer): Generate 'sel_id' field for - the NeXT runtime. - (generate_category): Do not set TREE_USED. - (build_keyword_selector): Ditto; transform into a function argument - chain. - (get_arg_type_list): If there are no user-specified arguments, use - '...'; use OBJC_VOID_AT_END. - (check_duplicates): Add a parameter indicating whether methods or - selectors are being checked. - (receiver_is_class_object): Add parameters indicating whether - receiver is 'self' or 'super'; robustify. - (build_message_expr): Defer call to finish_message_expr() if - inside an ObjC++ template. - (lookup_method_in_hash_lists): New function. - (finish_message_expr): Complete rewrite/fix. - (build_objc_method_call): Ditto; factor out commonalities between - the GNU and NeXT runtimes; acccommodate ..._stret and ...NonNil - messenger variants on the NeXT. - (lookup_instance_method_static, lookup_class_method_static): - Fold into a single lookup_method_static() function with an - additional parameter. - (add_class_method, add_instance_method): Fold into a single - add_method() function with an additional parameter. - (add_category): Make duplicate categories a hard error in ObjC++. - (add_instance_variable): Properly handle unnamed ivars, arrays of - zero or no size and bitfields. In ObjC++, check for nontrivial - C++ class instances. - (is_public): Allow C functions to access non-@public ivars, with - a warning. - (start_class): Move common initializations to - synth_module_prologue(); check for global scope if in ObjC++. - (continue_class): Fix calls to finish_struct(). - (objc_declare_protocols, start_protocol): Check for global scope - if in ObjC++. - (encode_pointer): Encode 'BOOL *' specially on the NeXT. - (encode_aggregate_within): Rewrite to properly distinguish - struct tags from typedefs in both ObjC and ObjC++. - (encode_bitfield, encode_complete_bitfield): Remove. - (encode_next_bitfield, encode_gnu_bitfield): New functions. - (encode_field_decl): Call encode_next_bitfield() or - encode_gnu_bitfield() as needed. - (synth_self_and_ucmd_args): New function. - (start_method_def): Use it. - (objc_types_are_equivalent): New function. - (comp_proto_with_proto): Use it instead of comptypes(), since - we need symmetry. - (really_start_method): Use lookup_method_static() instead of - lookup_class_method_static() and lookup_instance_method_static(); - Emit 'extern "C"' if in ObjC++ mode. - (add_objc_decls): Removed. - (UOBJC_SUPER_scope): New variable. - (get_super_receiver): Move construction of 'super' from - add_objc_decls(); remove dependency on struct objc_class. - (encode_method_def): Removed; encode_method_prototype() is - used instead. - (objc_clear_super_receiver): New function. - (objc_expand_function_end): Do not do anything for ordinary - C functions. - (finish_method_def): Mark ObjC methods as un-inlinable. - (gen_declaration_1): Emit widths of bitfields. - (finish_objc): Call generate_objc_image_info() if needed; - use check_duplicates() when checking for selector duplicates. - (generate_objc_image_info): New function. - * objc/objc-act.h (add_instance_method, add_class_method, - get_class_ivars): Remove prototypes. - (objc_build_throw_stmt, objc_build_try_catch_finally_stmt, - objc_build_synchronized_prologue, objc_build_synchronized_epilogue, - objc_build_catch_stmt, objc_build_catch_epilogue, - objc_build_finally_prologue, objc_build_finally_epilogue, - add_method, get_class_ivars_from_name): New prototypes. - (CLASS_BINFO_ELTS, PROTOCOL_BINFO_ELTS): New. - (TYPE_PROTOCOL_LIST): Robustify to distinguish from - TRANSLATION_UNIT_DECLs. - (OBJC_TYPE_NAME): New. - (objc_tree_code): Ensure that either or - got included. - (IS_SUPER): Robustify. - (umsg_stret_decl, umsg_super_stret_decl, umsg_nonnil_decl, - umsg_nonnil_stret_decl, objc_storage_class, objc_exception_extract_decl, - objc_exception_try_enter_decl, objc_exception_try_exit_decl, - objc_exception_match_decl, objc_exception_throw_decl, - objc_sync_enter_decl, objc_sync_exit_decl, objc_exception_data_template, - objc_setjmp_decl, objc_stack_exception_data, objc_caught_exception, - objc_rethrow_exception, objc_eval_once, objc_exception_block_stack, - objc_catch_type): New ObjC/ObjC++ roots. - * objc/objc-tree.def (MESSAGE_SEND_EXPR, CLASS_REFERENCE_EXPR): New - ObjC/ObjC++ tree node codes. - -2003-09-24 Alexandre Oliva - - * cpplib.c (do_pragma): Reintroduce cb_line_change call in the - code path that calls a handler. - -2003-09-24 Nathanael Nerode - - * config.gcc (c4x-*, tic4x-*, d30v-*, mmix-knuth-mmixware): - Disable fixproto. - - * config.gcc: Clean up and reindent $with_cpu=yes|no clause and - the section giving $with_cpu defaults by target. - - * config.gcc (arm-*-coff*, armel-*-coff*, arm*-*-ecos-elf, - arm*-*-elf, ep9312-*-elf, arm*-wince-pe*, arm*-*-pe*, arm*-*-pe*, - rs6000-ibm-aix4.[3456789]*, powerpc-ibm-aix4.[3456789]*, - rs6000-ibm-aix5.1.*, powerpc-ibm-aix5.1.*, - rs6000-ibm-aix[56789].*, powerpc-ibm-aix[56789].*, - i[34567]86-pc-msdosdjgpp*): Disable fixproto. - -2003-09-24 David Edelsohn - - * config/rs6000/rs6000.md (movti_power): Collapse case 1 and 2 - together. Protect load string instruction with TARGET_STRING. - (movti_string): Collapse case 1 and 2 together. - -2003-09-24 Nathan Sidwell - - * c-common.c (c_common_type_for_mode): Check for VOIDmode. - -2003-09-24 Richard Earnshaw - - * arm.h (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Wrap in - do...while(0) - -2003-09-23 Nathanael Nerode - - * config.gcc: Move use_fixproto=no from generic vxworks clause to - specific one. - - * config.gcc (powerpc-*-gnu-gnualtivec*): Disable fixproto - (accidentally missed in last pass). - -2003-09-23 Andrew Pinski - - PR bootstrap/12383 - * configure: Regenerate. - -2003-09-23 Nathanael Nerode - - * config.gcc (x86_64-*-freebsd*): Disable fixproto (accidentally - missed in last pass). - -2003-09-23 Alexandre Oliva - - * config/mn10300/mn10300.md (andsi3): Fix cut&pasto in 0xfffffffe - constant. - -2003-09-23 Nathanael Nerode - - * config.gcc: Move vax-*-vms* unsupported notice up with the rest. - - * config.gcc (alpha64*-dec-*vms*, alpha*-dec-*vms*, - powerpc-*-eabisim*, powerpc-*-eabi*, powerpcle-*-eabisim*, - powerpcle-*-eabi*): Disable fixproto. - - * config.gcc: Move use_fixproto=no from generic FreeBSD clause to - specific FreeBSD clauses. - * config.gcc: Move use_fixproto=no from generic NetBSD clause to - specific NetBSD clauses. - * config.gcc: Move use_fixproto=no from generic OpenBSD clause - to specific OpenBSD clauses. - -2003-09-23 John David Anglin - - * pa.c (hppa_expand_prologue): Do pic register save in frame marker - without adding a frame note. - * pa.md (allocate_stack): Save pic register in new frame marker when - generating pic code. - -2003-09-23 Kelley Cook - - * cgraphunit.c (cgraph_expand_all_functions): Renamed from - cgraph_expand_functions. - -2003-09-23 Kaveh R. Ghazi - - * Makefile.in (gnucompare*): Merge into ... - (slowcompare*): ... here. - (fastcompare*): New targets. - * aclocal.m4 (gcc_AC_PROG_CMP_IGNORE_INITIAL): Add checks for - other "fast" cmp programs. - * configure: Regenerate. - -2003-09-23 Rainer Orth - - * targhooks.c: Include output.h. - * Makefile.in (targhooks.o): Add output.h to dependency list. - -2003-09-23 Rainer Orth - - * config.host: Removed superfluous newline. - -2003-09-23 Nathanael Nerode - - * config.gcc: Use ${target}, not $machine. - * configure.in: Don't set $machine. - * configure: Regenerate. - -2003-09-23 Geoffrey Keating - - * config/t-darwin (crt2.o): Add stmp-int-hdrs to dependencies. - - * config/rs6000/rs6000.c (function_arg_pass_by_reference): Don't - pass zero-size arrays by reference. - (rs6000_va_arg): Likewise. - -2003-09-23 Nathanael Nerode - - * config.gcc: Set use_fixproto=no in each specific *-gnu* - configuration, rather than the generic one. - -2003-09-23 Richard Henderson - - * tree-inline.c (remap_save_expr): Map new save_expr to identity - rather than to error_mark_node. - -2003-09-23 Rainer Orth - - * configure.in (HAVE_GAS_SHF_MERGE): Always define to test result. - Update description. - * configure: Regenerate. - * config.in: Likewise. - * dwarf2out.c (DEBUG_STR_SECTION_FLAGS): Test for - HAVE_GAS_SHF_MERGE value. - * varasm.c (mergeable_string_section): Likewise. - (mergeable_constant_section): Likewise. - -2003-09-23 Rainer Orth - - * except.h (MUST_USE_SJLJ_EXCEPTIONS): Test for DWARF2_UNWIND_INFO - value. - -2003-09-23 Rainer Orth - - * target.h (struct gcc_target): New member external_libcall. - * target-def.h (TARGET_ASM_EXTERNAL_LIBCALL): Provide default. - (TARGET_ASM_OUT): Use it. - * doc/tm.texi (TARGET_ASM_EXTERNAL_LIBCALL): Document. - * targhooks.c: Convert to ISO C 90. - (default_external_libcall): New function. - * targhooks.h (default_external_libcall): Declare. - * varasm.c (assemble_external_libcall): Use - targetm.asm_out.external_libcall instead of - ASM_OUTPUT_EXTERNAL_LIBCALL. - * config/mips/mips-protos.h [TARGET_IRIX5 || TARGET_IRIX 6] - (mips_output_external_libcall): Declare. - * config/mips/mips.c (mips_output_external_libcall): Change - definition guard. - Change to match TARGET_ASM_EXTERNAL_LIBCALL. - Only operate for O32 ABI. - * config/mips/iris5.h (TARGET_ASM_EXTERNAL_LIBCALL): Define - instead of ASM_OUTPUT_EXTERNAL_LIBCALL. - * config/mips/iris6.h (ASM_OUTPUT_EXTERNAL_LIBCALL): Don't undef, - superceded by TARGET_ASM_EXTERNAL_LIBCALL. - -2003-09-22 Nathnael Nerode - - * config.gcc: Do per-target disabling of fixproto here in clauses, - not in t- fragments. - * configure.in: Adjust to set STMP_FIXPROTO correctly. - * configure: Regenerate. - * config/arm/t-semi, config/cris/t-cris, config/i386/t-beos, - config/i386/t-cygming, config/i386/t-nto, config/ia64/t-hpux, - t-freebsd, t-linux, t-netbsd, t-openbsd, t-rtems, t-vxworks, - xtensa/t-xtensa: Remove setting of STMP_FIXPROTO. - * config/i370/t-oe, config/i386/t-netware, config/pa/t-bsd, - t-interix, t-linux-aout: Delete files consisting only of - setting of STMP_FIXPROTO. - - * config.host: Allow unknown hosts (not targets). Allow - ns32k-*-netbsdelf* as a host (not a target). Remove redundant - empty clauses. Remove useless obsolete-configuration clause. - Prune unsupported configuration list. Collapse identical - clauses for closely related systems. Rewrite comment for - unsupported hosts list. Reorganize a little. - -2003-09-22 Richard Henderson - - * c-common.c (c_common_signed_or_unsigned_type): Examine mode, - not precision. - -2003-09-22 David Edelsohn - Hartmut Penner - Segher Boessenkool - - * config/rs6000/rs6000.c (altivec_in_gprs_p): Rename to ... - (gpr_or_gpr_p): Test INT_REGNO_P and convert to boolean. - (rs6000_split_altivec_in_gprs): Rename to ... - (rs6000_split_multireg_move): Add support for update addressing. - * config/rs6000/rs6000-protos.h: Same. - * config/rs6000/altivec.md: Same. - * config/rs6000/rs6000.md (movdi_internal32): Use new splitter for - multiple GPRs. - (movti): Remove TARGET_STRING || TARGET_POWERPC64 final condition. - (movti_power): Use new splitter for multiple GPRs. - (movti_string): Same. - (movti_ppc64): Same. - -2003-09-22 Bob Wilson - - * config/xtensa/xtensa-protos.h: Convert to ISO C90. - * config/xtensa/xtensa.c: Convert to ISO C90. Minor formatting fixes. - -2003-09-22 Alexandre Oliva - - * config/mn10300/mn10300.md: Revert 2003-09-17's patch. - (andsi3): Set attr cc to set_zn when using shifts or adds. - -2003-09-22 Bernardo Innocenti - - * doc/contrib.texi: Add Peter Barada, Paul Dale and myself. - -2003-09-22 Bernardo Innocenti - - * config/m68k/m68k.h (MASK_RTD, TARGET_RTD, RETURN_POPS_ARGS): - Resurrect -mrtd option. - -2003-09-21 Andrew Pinski - - PR target/12281 - * config/darwin.c (machopic_validate_stub_or_non_lazy_ptr): Call - mark_referenced instead of setting TREE_SYMBOL_REFERENCED. - -2003-09-22 Olivier Hainque - - PR target/9786 - * reg-stack.c (convert_regs_1): Purge possible dead eh edges - after potential deletion of trapping insn. Avoids later ICE - from call to fixup_abnormal_edges. - (convert_regs_2): Stack the current block successors before - processing this block, that is, before the potential deletion of - dead edges by convert_regs_1, because these edges have been used - to initialize the predecessors count. - -2003-09-22 Eric Botcazou - - * real.c: Fix several nits in the head comment. - -2003-09-21 Richard Henderson - - * tree.h c-aux-info.c, c-decl.c, c-parse.in, coverage.c, dbxout.c, - diagnostic.c, dwarf2out.c, dwarfout.c, function.c, integrate.c, - print-tree.c, stmt.c, toplev.c, tree-dump.c, tree-inline.c, - tree-optimize.c, tree.c, tree.def, xcoffout.c, config/alpha/alpha.c, - config/mips/mips.c, doc/c-tree.texi, objc/objc-act.c: Revert. - -2003-09-21 Richard Henderson - - * tree.h (TREE_LOCUS): Rename from DECL_SOURCE_LOCATION; make const. - (TREE_FILENAME, TREE_LINENO): Likewise. - (set_tree_locus, copy_tree_locus, set_tree_file_line): New. - (TREE_LOCUS_SET_P): New. - * c-aux-info.c, c-decl.c, c-parse.in, coverage.c, dbxout.c, - diagnostic.c, dwarf2out.c, dwarfout.c, function.c, integrate.c, - print-tree.c, stmt.c, toplev.c, tree-dump.c, tree-inline.c, - tree-optimize.c, tree.c, tree.def, xcoffout.c, config/alpha/alpha.c, - config/mips/mips.c, doc/c-tree.texi, objc/objc-act.c: Update to match. - -2003-09-21 Nathanael Nerode - - * config/vax/vax-protos.h: Convert to ISO C90. - * config/vax/vax.c: Convert to ISO C90. - -2003-09-21 Graham Stott - - PR target/12353 - * config/i386/i386.md(ffs_no_cmove): Fix operand 2 constraint. - -2003-09-21 Eric Botcazou - - PR target/12301 - * reorg.c (stop_search_p): Return 1 for insns that can - throw internally. - -2003-09-20 Richard Henderson - - * c-format.c (gcc_diag_char_table): Add %J. - (gcc_cdiag_char_table, gcc_cxxdiag_char_table): Likewise. - (check_format_types): Fix wanted_type name lookup. - (init_dynamic_diag_info): Setup %J. - * diagnostic.c (text_specifies_location): Implement %J. - * c-common.c, c-decl.c, c-objc-common.c, c-pragma.c, calls.c, - dwarfout.c, expr.c, function.c, stmt.c, stor-layout.c, toplev.c, - tree-inline.c, tree-optimize.c, varasm.c, config/arm/pe.c, - config/i386/winnt.c, config/ia64/ia64.c, config/mcore/mcore.c, - config/v850/v850.c, objc/objc-act.c: Use %J in diagnostics. - - * tree-inline.c: Include intl.h - (inline_forbidden_p_1): Fix i18n of inline_forbidden_reason. - * Makefile.in (tree-inline.o): Update. - -2003-09-20 Roger Sayle - - * config/i386/i386.c (ix86_expand_carry_flag_compare): Fix - transformation of a>=0 into (unsigned)a<0x80000000. - -2003-09-20 Andrew Pinski - - * config/darwin.c (machopic_select_rtx_section): Fix check for PIC code. - -2003-09-20 Nathanael Nerode - - * Makefile.in: Don't set (unused) DLLTOOL. - - * config/arm/t-linux, config/arm/t-netbsd, config/arm-t-semi: - Remove obsolete references to ENQUIRE. - -2003-09-19 Nathanael Nerode - - * configure.in: Remove --with-elf, which doesn't work. - * configure: Regenerate. - * config.gcc: Remove references to $elf, which does nothing. - - * config/i386/xm-vsta.h: Remove xm-file believed useless. - * config.build (i386-vsta): Remove reference to it. - * config.host (i386-vsta): Remove reference to it. - -2003-09-19 Phil Edwards - - * doc/install.texi: Document the multiple testsuite options. - -2003-09-19 Gerald Pfeifer - - * doc/install.texi (Specific): Add the specific versions of GCC - where support for FreeBSD 1, HP-UX version 9 and older, and AIX - version 3 and older was discontinued. - -2003-09-19 Joel Sherrill - - * config/m68k/t-m68kbare, config/m68k/t-rtems: Change 68681 to - 68881. - -2003-09-19 Bernardo Innocenti - - * config/m68k/m68k.h (TARGET_CPU_CPP_PREDEFINES): Add predefines - for -m68030, -m68020-60 and -m68020-40. - * config/m68k/m68k.h (TARGET_68030): New target flag. - * config/m68k/m68k.h (MASK_RTD, TARGET_RTD, MASK_REGPARM, - TARGET_REGPARM): Remove. - * config/m68k/m68k.h: Regroup and renumber target flags. - * config/m68k/m68k.h (TARGET_SWITCHES): Fix some tabulations. - * config/m68k/m68k.h (RETURN_POPS_ARGS): Always evaluate to 0. - * config/m68k/m68k.h (FUNCTION_ARG): Likewise. - * config/m68k/m68k.h (FUNCTION_ARG_PARTIAL_NREGS): Likewise. - * config/m68k/m68k-none.h: Use MASK_xxx values in M68K_CPU_xxx macros. - -2003-09-19 Ralf Corsepius - - * config/m68k/t-rtems (m68k-*-rtems*): New. - * config.gcc: Use config/m68k/t-rtems. - -2003-09-19 Ralf Corsepius - - * config/mips/t-rtems: New. - * config.gcc (mips*-*-rtems*): Use config/mips/t-rtems. - -2003-09-19 Kelley Cook - - * cgraph.c: Fix typo in debugging output. - -2003-09-19 T. Papadopoulo - Eric Botcazou - - PR target/12166 - * config/sparc/sol2-c1.asm (start): Set __Argv if GCRT1. - -2003-09-18 Mike Stump - - * c-ppoutput.c (print): Use fileline typedef for field 'line'. - (print_line, maybe_print_line, cb_define, cb_undef, cb_include, - cb_ident, cb_def_pragma): Use fileline typedef. - * cpphash.h (struct cpp_reader): Likewise for field out.first_line. - -2003-09-18 Danny Smith - - * config/i386/winnt.c (gen_stdcall_suffix): Quit summation of - total parm size if a parm has incomplete type. - (gen_fastcall_suffix): Likewise. - -2003-09-18 Richard Kenner - - * except.c (output_function_exception_table): Adjust last change - to handle TYPE of INTEGER_CST. - -2003-09-18 Mark Mitchell - - PR target/11184 - * builtins.c (expand_builtin_apply): Use convert_memory_address - before returning the value. - - * alias.c (find_base_value): Simplify use of - convert_memory_address. - (find_base_term): Likewise. - * builtins.c (expand_builtin_stejmp_setup): Likewise. - (expand_builtin_longjmp): Likewise. - (expand_builtin_prefetch): Likewise. - (get_memory_rtx): Likewise. - (expand_builtin_return): Likewise. - (expand_builtin_memcpy): Likewise. - (expand_builtin_strncpy): Likewise. - (expand_builtin_memset): Likewise. - (expand_builtin_va_arg): Likewise. - (expand_builtin_va_copy): Likewise. - (expand_builtin_alloca): Likewise. - * calls.c (expand_call): Likewise. - * except.c (expand_builtin_extract_return_addr): Likewise. - (expand_builtin_eh_return): Likewise. - * explow.c (convert_memory_address): Define even when - POINTER_EXTEND_UNSIGNED is not defined. Do nothing if the address - is already in the right mode. - * explow.c (memory_address): Simplify use of convert_memory_address. - (probe_stack_range): Likewise. - * expmed.c (make_tree): Likewise. - * expr.c (emit_block_move_in_libcall): Likewise. - (expand_assignment): Likewise. - (expand_expr): Likewise. - * function.c (assign_parms): Likewise. - (expand_function_end): Likewise. - * integrate.c (copy_rtx_and_substitute): Likewise. - * stmt.c (expand_computed_goto): Likewise. - -2003-09-18 Roger Sayle - - * simplify-rtx.c (simplify_unary_operation): Only transform - (not (eq X Y)) into (ne X Y) when mode is BImode or STORE_FLAG_VALUE - is -1. RTL "not" is a bit-wise not, "~", not a logical not "!". - -2003-09-18 Zdenek Dvorak - - PR target/11674 - * config/i386/i386.c (x86_emit_floatuns): Also handle SImode operand. - -2003-09-18 Roger Sayle - - * tree.def (FFS_EXPR, CLZ_EXPR, CTZ_EXPR, POPCOUNT_EXPR, - PARITY_EXPR): Delete unused tree codes. - * c-common.c (c_common_truthvalue_conversion): Delete references - to FFS_EXPR and POPCOUNT_EXPR. - * c-pretty-print.c (pp_c_postfix_expression): Remove FFS_EXPR. - (pp_c_expression): Likewise. - * expr.c (expand_expr): Delete RTL expansion of FFS_EXPR, CLZ_EXPR, - CTZ_EXPR, POPCOUNT_EXPR and PARITY_EXPR. - * fold-const.c (tree_expr_nonnegative_p): Remove FFS_EXPR, CLZ_EXPR, - CTZ_EXPR, POPCOUNT_EXPR and PARITY_EXPR. Add support for calls to - BUILT_IN_FFS, BUILT_IN_PARITY and BUILT_IN_POPCOUNT and their long - and long long variants. - -2003-09-18 Gabriel Dos Reis - - * c-pretty-print.h (pp_type_specifier_seq): Fix thinko. - * c-pretty-print.c: Fix formatting. - (pp_c_integer_constant): Append type annotation to literals. Tidy. - (pp_c_type_specifier): Tidy. - (pp_c_compound_literal): New function. - (pp_c_initializer): Simplify.. - (pp_c_initializer_list): Likewise. - (pp_c_brace_enclosed_initializer_list): New function. - (pp_c_postfix_expression): Simplify. - -2003-09-17 Alexandre Oliva - - * config/mn10300/mn10300.md (andsi3, iorsi3, xorsi3, - one_complsi2, bit-clear, bit-set, iorqi3): Make them set_zn. - -2003-09-17 Richard Henderson - - * tree-optimize.c (tree_rest_of_compilation): Save and restore - input_location. - -2003-09-17 Daniel Jacobowitz - - * config/rs6000/sysv4.h (LIB_LINUX_SPEC): Give -lpthread before -lc. - -2003-09-17 Richard Henderson - - * cfg.c (dump_flow_info): Skip register dump if reg_n_info null. - -2003-09-17 Rainer Orth - - * configure.in (gcc_cv_ld_hidden): Don't test gnu_ld_flag. - * configure: Regenerate. - -2003-09-17 Mark Mitchell - - PR debug/12066 - * dbxout.c (dbxout_init): Use a langhook to find builtin types. - * langhooks-def.h (lhd_return_null_tree_v): New function. - (LANG_HOOKS_BUILTIN_TYPE_DECLS): New macro. - (LANG_HOOKS_DECLS): Add it to the intializer. - * langhooks.c (lhd_return_null_tree_v): New function. - * langhooks.h (lang_hooks_for_decls): Add builtin_type_decls. - -2003-09-17 Daniel Jacobowitz - - * configure.in: Quote gcc_config_arguments for configargs.h. - * configure: Regenerated. - * gccbug.in: Don't shell-expand gcc_config_arguments. - -2003-09-17 Gabriel Dos Reis - - PR c++/11357 - * c-pretty-print.c (pp_c_floating_constant): Append - type-annotation to floating constants. - -2003-09-17 Rainer Orth - - * config/mips/iris5.h (TARGET_OS_CPP_BUILTINS): Define _LONGLONG. - Define _ABIO32. - Use it for _MIPS_SIM. - * config/mips/iris6-o32.h (TARGET_OS_CPP_BUILTINS): Removed. - - * config/mips/iris6-o32-as.h (SUBTARGET_ASM_OPTIMIZING_SPEC): - Moved ... - * config/mips/iris5.h (SUBTARGET_ASM_OPTIMIZING_SPEC): ... here, - updating comment. - Fixes PR target/10190. - -2003-09-17 Daniel Jacobowitz - - * config/rs6000/sysv4.h (LIB_LINUX_SPEC): Make -pthread apply - to shared libraries. - -2003-09-17 Eric Botcazou - - PR optimization/11646 - * cfgrtl.c (purge_dead_edges) [JUMP_INSN]: Rematerialize the - EDGE_ABNORMAL flag for EH edges. - * toplev.c (rest_of_handle_cse): Delete unreachable blocks - if dead edges were purged. - -2003-09-16 Bernardo Innocenti - - * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Add target predefines. - * config/m68k/m68k-none.h (CPP_CPU_DEFAULT_SPEC): Kill all definitions. - * config/m68k/m68k-none.h (CPP_FPU_SPEC): Remove. - * config/m68k/m68k-none.h (CPP_SPEC): Likewise. - -2003-09-16 Ian Lance Taylor - - * cfgcleanup.c (label_is_jump_target_p): Correct use of table - returned by tablejump_p. - -2003-09-16 Joel Brobecker - - * dwarf2asm.c (dw2_asm_output_nstring): Add comment. - -2003-09-16 Roger Sayle - - PR bootstrap/12269 - * simplify-rtx.c (simplify_gen_relational): Allow the cmp_mode - argument to be VOIDmode, taking the mode of the comparison from - the operands. Only call simplify_relational_operation if we - know the mode of the comparison. Honor FLOAT_STORE_FLAG_VALUE - if comparison has a floating point result. Ensure that the - result is always of the specified mode. - (simplify_replace_rtx): Simplify call to simplify_gen_relational. - (simplify_unary_operation): Ensure the correct mode and cmp_mode - are always passed to simplify_gen_relational. Simplify NOT of - comparison operator in any mode, not just BImode. - (simplify_ternary_operation): Correct tests on the return value - of simplify_relational_operation to use const_true_rtx, not - const1_rtx. Abort if it ever returns a non-constant result. - - * cfgloopanal.c (count_strange_loop_iterations): Use the function - simplify_relational_operation, not simplify_gen_relational, if - we're only interested in constant comparisons and will ignore - non-constant results. - -2003-09-16 Roger Sayle - - * fold-const.c (tree_swap_operands_p): New function to determine - the prefered ordering of operands. - (fold): Numerous clean-ups. Use tree_swap_operands_p when swapping - operands to commutative, comparison or ternary operators. Replace - uses of TREE_SET_CODE with recursive call to fold. Remove duplicate - transformation of A ? B : C into !A ? C : B. - -2003-09-16 Jakub Jelinek - - * config/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Define. - * config/alpha/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Define. - * config/arm/linux-elf.h (LINK_GCC_C_SEQUENCE_SPEC): Define. - * config/rs6000/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Define. - * config/rs6000/linux64.h (LINK_GCC_C_SEQUENCE_SPEC): Define. - * config/sh/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Define. - * config/sparc/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Define. - * config/sparc/linux64.h (LINK_GCC_C_SEQUENCE_SPEC): Define. - -2003-09-16 Jason Merrill - Jakub Jelinek - - * c-common.c (handle_warn_unused_result_attribute): New function. - (c_common_attribute_table): Add warn_unused_result. - (c_expand_expr): Issue warning when result of inlined function - with warn_unused_result attribute is ignored. - * calls.c (expand_call): Issue warning when result of function - with warn_unused_result attribute is ignored. - * c-common.h (STMT_EXPR_WARN_UNUSED_RESULT): Define. - * expr.c (expr_wfl_stack): Define. - (expand_expr) : If ignore, - pass const0_rtx as target. Chain locations into expr_wfl_stack. - * tree-inline.c (expand_call_inline): Set STMT_EXPR_WARN_UNUSED_RESULT - bit if inlined function has warn_unused_result attribute. - * input.h (expr_wfl_stack): Declare. - * doc/extend.texi: Document warn_unused_result attribute. - -2003-09-15 Alexandre Oliva - - * cpplib.c (do_pragma): Remove unnecessary cb_line_change. - -2003-09-15 Bob Wilson - - * config/xtensa/xtensa.c (xtensa_multibss_section_type_flags): Add - ATTRIBUTE_UNUSED. - (call_insn_operand): For PIC, don't allow a direct call to a - function in a different section than the current one. - -2003-09-16 Volker Reichelt - - * doc/invoke.texi (Warning Options): Add missing hyphen before - "Wimport". Change "-Wno-endif-labels" to "-Wendif-labels". - Move "-Wold-style-definition" to the C-only section. - Fix the ordering of the warning options. - -2003-09-15 Zdenek Dvorak - Jeff Law - - * gcse.c (remove_reachable_equiv_notes): New. - replace_store_insn): Call it. Update antic list. - (store_killed_in_insn): Take REG_EQUAL notes into account. - (build_store_vectors, delete_store): Add parameter to - replace_store_insn call. - -2003-09-15 Bob Wilson - - * config/xtensa/xtensa.h (LEGITIMATE_PIC_OPERAND_P): Use - SYMBOL_REF_LOCAL_P. - -2003-09-15 Kazu Hirata - - * expr.h (DEFAULT_FUNCTION_ARG_PADDING): New. - (FUNCTION_ARG_PADDING): Use DEFAULT_FUNCTION_ARG_PADDING. - * config/ia64/ia64.c (ia64_hpux_function_arg_padding): - Likewise. - * config/m68hc11/m68hc11.c (m68hc11_function_arg_padding): - Likewise. - * config/rs6000/rs6000.c (function_arg_padding): Likewise. - * config/sparc/sparc.c (function_arg_padding): Likewise. - -2003-09-15 Vladimir Makarov - - * haifa-sched.c (schedule_block): Use ready_remove_first instead - of choose_ready for non-dfa insn scheduling. - -2003-09-15 Andreas Jaeger - Kaveh R. Ghazi - - * doc/invoke.texi (Warning Options): Describe -Wold-style-definition. - * c-opts.c (c_common_handle_option): Handle OPT_Wold_style_definition. - * c-parse.in: Warn about old-style parameter definition. - * c-common.c: Define warn_old_style_defintion. - * c-common.h: Declare it. - * c.opt: Add Wold-style-defintion. - -2003-09-15 Andreas Jaeger - - * config/rs6000/altivec.h: Convert () prototypes to ISO C90. - * config/rs6000/rs6000.c: Likewise. - -2003-09-12 Zdenek Dvorak - - PR optimization/10914 - * expr.h (get_condition, canonicalize_condition): Declaration changed. - * cfgloopanal.c (simple_loop_exit_p): Add parameter to a get_condition - and canonicalize_condition calls. - * gcse.c (fis_get_condition, delete_null_pointer_checks_1, - delete_null_pointer_checks): Ditto. - * ifcvt.c (noce_get_alt_condition, noce_get_condition): Ditto. - * predict.c (estimate_probability, expected_value_to_br_prob): Ditto. - * loop.c (check_dbra_loop, get_condition_for_loop): Ditto. - (canonicalize_condition, get_condition): Allow to return comparisons - of cc mode registers. - * loop-unswitch.c (may_unswitch_on_p, unswitch_single_loop): Allow - cc mode registers comparison in condition. - -2003-09-12 Mark Mitchell - - * coverage.c (create_coverage): Do not call pushlevel/poplevel. - * langhooks-def.h (lhd_do_nothing_iii_return_null_tree): New - function. - * langhooks.c (lhd_do_nothing_iii_return_null_tree): Define it. - -2003-09-14 Kazu Hirata - - * combine.c (simplify_comparison): Convert - (ne (and (lshiftrt (xor X CST) Y) 1) 0) into - (eq (and (lshiftrt X Y) 1) 0). - -2003-09-14 Kazu Hirata - - * alias.c: Follow spelling conventions. - * cpphash.h: Likewise. - * fold-const.c: Likewise. - -2003-09-14 Alexandre Oliva - - * c-ppoutput.c (cb_line_change): Revert 2003-08-04's change. - * c-lex.c (cb_line_change): Skip line changing whenever - c-ppoutput.c would. - -2003-09-14 Steven Bosscher - - * ra.c: Convert to ISO C90 prototypes. - * ra-build.c: Likewise. - * ra-colorize.c: Likewise. - * ra-debug.c: Likewise. - * ra-rewrite.c: Likewise. - -2003-09-14 Richard Sandiford - - * Makefile.in (%.dvi): Remove excess $(docdir). - -2003-09-14 Richard Sandiford - - * function.c (STACK_BYTES): Move definition to head of file. - (assign_parms): Don't pass current_function_pretend_args_size - directly to SETUP_INCOMING_VARARGS. For partial register arguments, - round current_function_pretend_args_size up to STACK_BYTES. Skip any - excess before laying out the argument. - -2003-09-14 Andreas Jaeger - - * objc/objc-act.c: Convert to ISO C90 prototypes. - * objc/objc-act.h: Likewise. - -2003-09-14 Olaf Hering - - * config/rs6000/rs6000.c: Fix typo: Remove extra ')'. - -2003-09-13 Andrew Pinski - - PR target/12021 - * config/m68k/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Remove the asserts - as they already are done in config/m68k/m68k.h. - * config/m68k/netbsd.h (TARGET_OS_CPP_BUILTINS): Likewise - - * config/rs6000/rs6000.c (GEN_LOCAL_LABEL_FOR_SYMBOL): Remove. - (machopic_output_stub): Only generate pic base symbols when using pic - and generate them in the form L00000000$spb. - -2003-09-13 Richard Henderson - - * cgraphunit.c (cgraph_assemble_pending_functions): Export. - (cgraph_finalize_function): Revert TREE_ASM_WRITTEN check. - * cgraph.h: Update. - -2003-09-12 Dale Johannesen - - * config/rs6000/rs6000.c: Fix typos in previous. - -2003-09-12 Ziemowit Laski - - * pretty-print.c (pp_construct): Use xcalloc instead of xmalloc - when allocating pp->buffer. - -2003-09-12 Geoffrey Keating - - * config/darwin.c (machopic_select_rtx_section): Use - const_data_section for things that might require relocation. - -2003-09-12 H.J. Lu - - PR bootstrap/12264 - * tree-inline.c (inline_forbidden_p_1): Cast the 3rd arg to tree. - -2003-09-12 Bob Wilson - - * config/xtensa/elf.h (ASM_SPEC): Remove no-density option. Reformat. - * config/xtensa/linux.h (ASM_SPEC): Likewise. - * config/xtensa/xtensa.h (TARGET_SWITCHES): Remove -mbig-endian, - -mlittle-endian, -m[no-]density, -m[no-]abs, -m[no-]addx, -m[no-]mac16, - -m[no-]mul16, -m[no-]mul32, -m[no-]nsa, -m[no-]minmax, -m[no-]sext, - -m[no-]booleans, -mhard-float, -msoft-float, -m[no-]hard-float-div, - -m[no-]hard-float-recip, -m[no-]hard-float-sqrt, and - -m[no-]hard-float-rsqrt options. Delete corresponding MASK_* macros - and redefine corresponding TARGET_* macros with constants from the - xtensa-config.h header. - * doc/invoke.texi (Option Summary, Xtensa Options): Remove documention - for the options listed above. - -2003-09-12 Dale Johannesen - - * config/rs6000/rs6000-protos.h: Use C90 prototypes. - * config/rs6000/rs6000-c.c: Ditto. - * config/rs6000/rs6000.c: Ditto. - * config/rs6000/ sysv4.h: Ditto. - -2003-09-12 Chris Lattner - - * loop.c: Move comments describing BIV's and GIV's to top of file - -2003-09-12 Roger Sayle - - PR optimization/8967 - * alias.c (write_dependence_p): Modify to take an additional constp - argument that controls whether the UNCHANGING_RTX_P flags are used. - (anti_dependence, output_dependence): Adjust write_dependence_p - callers to pass this additional argument, to return the same result. - (unchanging_anti_dependence): New variant of anti_dependence that - ignores the UNCHANGING_RTX_P property on memory references. - * rtl.h (unchaning_anti_dependence): Prototype here. - * flow.c (init_propagate_block): Place fake constant mem writes on - the mem_set_list so that dead writes to const variables are deleted. - (insn_dead_p): Change anti_dependence to unchanging_anti_dependence. - (mark_used_regs): Likewise. - -2003-09-12 Richard Sandiford - - * config/mcore/mcore-protos.h (mcore_r15_operand_p): Declare. - (mcore_secondary_reload_class): Declare. - (mcore_output_inline_const_forced): Remove. - * config/mcore/mcore.md (movsi): Remove the code that forced - non-inlineable constants into a register if the target was r15 - or the stack pointer. Remove constant restrictions from the main - define_insn. Remove r <- I, r <- M and r <- N alternatives in favor - of an r <- P alternative. Remove fallback define_insn for reload. - (movhi, movqi): Use gen_lowpart rather than gen_SUBREG. Remove reload - define_insn. Use mcore_output_move in the remaining define_insn. - Adjust condition and constraints in the way as for movsi. - (movdi): Always split unacceptable constants into two. Use - simplify_gen_subreg instead of operand_subword{,_force}. - * config/mcore/mcore.c (mcore_output_inline_const_forced): Remove. - (mcore_output_move): Support HImode and QImode moves as well. - (mcore_m15_operand_p): New function. - (mcore_reload_class): Use it to detect cases where LRW_REGS are better. - (mcore_secondary_reload_class): New function. - * config/mcore/mcore.h (SECONDARY_RELOAD_CLASS): Redefine in - terms of mcore_secondary_reload_class. - -2003-09-11 Mike Stump - - * c-lex.c (fe_file_change): Don't transform to_line with SOURCE_LINE. - -2003-09-11 Kaveh R. Ghazi - - * builtins.c (fold_builtin_logarithm): if N can't be truncated to - MODE exactly, then only convert logN(N) -> 1.0 if - flag_unsafe_math_optimizations is set. - - * builtins.c (builtin_dconsts_init, dconstpi, dconste, - init_builtin_dconsts): Delete. - * emit-rtl.c (dconstpi, dconste): Define. - (init_emit_once): Initialize dconstpi & dconste. - * real.h (dconstpi, dconste): Declare. - -2003-09-11 Alexandre Oliva - - PR fortran/11522 - * dwarf2out.c (gen_inlined_subroutine_die): Emit abstract function - for ultimate origin even if block is abstract. - -2003-09-11 Roger Sayle - - * combine.c (combine_simplify_rtx): Move several NOT and NEG - optimizations from here... - * simplify-rtx.c (simplify_unary_operation): to here. Recursively - simplify expressions using simplify_gen_*ary instead of gen_rtx_*. - -2003-09-11 Richard Henderson - - * cgraphunit.c (cgraph_finalize_function): Add nested arg. - Tweek tests for function already generated. - (cgraph_expand_function): Don't double announce in !unit-at-a-time. - * cgraph.h (cgraph_finalize_function): Update for extra arg. - * c-decl.c (finish_function): Likewise. - -2003-09-10 Joe Buck - - * c-decl.c (poplevel): Eliminate use of |= in function_body assignment. - -2003-09-10 Jerry Quinn - - * real.c: Update URL to VAX floating point docs. - (decode_vax_d): Extract 8 exponent bits instead of 7. - -2003-09-10 Ian Lance Taylor - - * combine.c (force_to_mode): Set fuller_mask based only on mask, - not op_mode. - -2003-09-11 Jan Hubicka - - * c-objc-common.c (c_cannot_inline_tree_fn): Warn - on why function is not inlinable; do not check - the body. - (inline_forbidden_p): Move to... - * tree-inline.c (inline_forbidden_p_1): ... here; Add warnings; - deal with alloca, longjmp. - (inline_forbidden_p): New static function. - (find_alloca_call_1, find_alloca_call, find_builtin_longjmp_call_1, - find_builtin_longjmp_call): Kill. - -2003-09-10 Richard Henderson - - * cgraph.h (struct cgraph_node): Rename lowered to analyzed. - * cgraphunit.c: Update to match. - (record_call_1): Rearrange. Call lang hook for language nodes. - (cgraph_analyze_function): Don't call lower_function. - * langhooks.h (struct lang_hooks_for_callgraph): Replace - lower_function with analyze_expr. - * langhooks-def.h: Update to match. - * langhooks.c (lhd_callgraph_analyze_expr): New. - -2003-09-10 Martin Husemann - - PR target/11965 - * config/sparc/sparc.c (sparc_v8plus_shift): Protect against - constants greater than 63. - * config/sparc/sparc.md (ashlsi3, ashrsi3, lshrsi3): Protect - against constants greater than 31. - (*ashldi3_sp64, *ashrdi3_sp64, *lshrdi3_sp64): Protect against - constants greater than 63. - -2003-09-09 Richard Henderson - - * cgraphunit.c (cgraph_finalize_function): Remove unused argument. - * cgraph.h (cgraph_finalize_function): Update. - * c-decl.c (finish_function): Update. - -2003-09-09 Devang Patel - - * config/darwin.h (LINK_SPEC): Pass -nofixprebinding to linker. - * doc/invoke.texi: Document new Darwin linker option -nofixprebinding. - -2003-09-09 Eric Christopher - - * configure.in: Change usage of 'head' to 'sed 1q'. - * configure: Regenerate. - -2003-09-09 Richard Henderson - - * except.c: Include cgraph.h. - (output_function_exception_table): Invoke - cgraph_varpool_mark_needed_node. - * Makefile.in (except.o): Update. - -2003-09-07 Kelley Cook - - * Makefile.in: Define REMAKEFLAGS for LANGUAGES & BOOT_CFLAGS - and use it throughout. - -2003-09-09 Kaveh R. Ghazi - - * builtins.c (real_dconstp, fold_builtin_logarithm, - fold_builtin_exponent): New, split out from fold_builtin. Also - generalize to add log2, log10, exp2 and exp10/pow10 equivalents. - * emit-rtl.c (dconst3, dconst10, dconstthird): New. - (init_emit_once): Initialize new dconsts, use ARRAY_SIZE in lieu - of hardcoded array size. - * fold-const.c (fold): Add cases for exp2, exp10 and pow10. - (tree_expr_nonnegative_p): Likewise. - * real.h (dconst3, dconst10, dconstthird): New. - -2003-09-09 Jan Hubicka - - * cgraphunit.c (cgraph_finalize_function): Fix handling of extern - inline functions. - (cgraph_finalize_compilation_unit): Fix crash when dealing with lost - DECL_SAVED_TREE. - -2003-09-09 Roger Sayle - - * builtins.c (fold_builtin_cabs): Protect the complex argument - against multiple evaluation when optimizing cabs* into sqrt*. - -2003-09-09 Jan Hubicka - - * varasm.c (notice_global_symbol): Properly deal with weak symbols. - -2003-09-08 Kelley Cook - - * Makefile.in: Revert yesterday's change. - -2003-09-08 Bernardo Innocenti - Peter Barada - - * config/m68k/coff.h (REGISTER_NAMES): Add fake register `argptr' - * config/m68k/hp320.h (REGISTER_NAMES): Likewise. - * config/m68k/linux.h (REGISTER_NAMES): Likewise. - * config/m68k/m68kelf.h (REGISTER_NAMES): Likewise. - * gcc/config/m68k/sgs.h (REGISTER_NAMES): Likewise. - * config/m68k/m68k-protos.h (m68k_initial_elimination_offset): Add prototype. - * config/m68k/m68k.c (m68k_frame): New struct, simular to ix86 back-end. - (m68k_compute_frame_layout): New function. - (m68k_initial_elimination_offset): New function. - (m68k_output_function_prologue): ColdFire-specific movem handling. - (m68k_output_function_epilogue): Likewise. - * config/m68k/m68k.h (FIRST_PSEOUDO_REGISTER): Make room for argptr reg. - (ARG_POINTER_REGNUM): Add new definition. - (INITIAL_FRAME_POINTER_OFFSET): Remove macro. - (ELIMINABLE_REGS): Define new macro, like in ix86 back-end. - (CAN_ELIMINATE): Likewise. - (INITIAL_ELIMINATION_OFFSET): Likewise. - -2003-09-08 Bernardo Innocenti - - * config/m68k/m68k.c (m68k_output_function_prologue): Simplify - by removing redundant variable cfa_store_offset. - -2003-09-08 Mark Mitchell - - * langhooks-def.h (lhd_register_builtin_type): New function. - (LANG_HOOKS_REGISTER_BUILTIN_TYPE): New macro. - (LANG_HOOKS_FOR_TYPES_INITIALIZER): Update. - * langhooks.h (lang_hooks_for_types): Add register_builtin_type. - * langhooks.c (lhd_register_builtin_type): New function. - * c-common.h (c_register_builtin_type): Declare. - * c-common.c (c_register_builtin_type): New function. - * c-lang.c (LANG_HOOKS_REGISTER_BUILTIN_TYPE): Define to - c_register_builtin_type. - * config/ia64/hpux.h (TARGET_OS_CPP_BUILTINS): Remove __fpreg, - __float80, and __float128 macros. - * config/ia64/ia64.c (ia64_init_builtins): Create __fpreg, - __float80, and __float128 types. - -2003-09-08 Kaveh R. Ghazi - - * builtin-types.def - (BT_FN_COMPLEX_LONGDOUBLE_COMPLEX_LONGDOUBLE_COMPLEX_LONGDOUBLE, - BT_FN_COMPLEX_DOUBLE_COMPLEX_DOUBLE_COMPLEX_DOUBLE, - BT_FN_COMPLEX_FLOAT_COMPLEX_FLOAT_COMPLEX_FLOAT): New. - * builtins.def (BUILT_IN_CACOS, BUILT_IN_CACOSF, BUILT_IN_CACOSH, - BUILT_IN_CACOSHF, BUILT_IN_CACOSHL, BUILT_IN_CACOSL, - BUILT_IN_CARG, BUILT_IN_CARGF, BUILT_IN_CARGL, BUILT_IN_CASIN, - BUILT_IN_CASINF, BUILT_IN_CASINH, BUILT_IN_CASINHF, - BUILT_IN_CASINHL, BUILT_IN_CASINL, BUILT_IN_CATAN, - BUILT_IN_CATANF, BUILT_IN_CATANH, BUILT_IN_CATANHF, - BUILT_IN_CATANHL, BUILT_IN_CATANL, BUILT_IN_CCOS, BUILT_IN_CCOSF, - BUILT_IN_CCOSH, BUILT_IN_CCOSHF, BUILT_IN_CCOSHL, BUILT_IN_CCOSL, - BUILT_IN_CEXP, BUILT_IN_CEXPF, BUILT_IN_CEXPL, BUILT_IN_CPOW, - BUILT_IN_CPOWF, BUILT_IN_CPOWL, BUILT_IN_CPROJ, BUILT_IN_CPROJF, - BUILT_IN_CPROJL, BUILT_IN_CSIN, BUILT_IN_CSINF, BUILT_IN_CSINH, - BUILT_IN_CSINHF, BUILT_IN_CSINHL, BUILT_IN_CSINL, BUILT_IN_CSQRT, - BUILT_IN_CSQRTF, BUILT_IN_CSQRTL, BUILT_IN_CTAN, BUILT_IN_CTANF, - BUILT_IN_CTANH, BUILT_IN_CTANHF, BUILT_IN_CTANHL, BUILT_IN_CTANL): - New. - * doc/extend.texi: Document new builtins. - -2003-09-09 Jan Hubicka - - * cgraph.c (cgraph_varpool_finalize_decl): Sanity check duplicated - finalization. - * cgraphunit.c (decide_is_fnction_needed): Avoid special case of nested - functions, check for COMDAT. - (cgraph_assemble_pending_functions): Break out from... - (cgraph_finalize_function): ... here; allow redefinig of extern inline - functions. - (record_call_1): Record function references only in non-unit-at-a-time - mode. - (cgraph_analyze_function): Reset current_function_decl. - (cgraph_finalize_compilation_unit): Assemble pending functions. - -2003-09-08 Mark Mitchell - - * mklibgcc.in (libcc.a): Depend on stmp-dirs. - (libgov.a): Likewise. - (libgcc_eh.a): Likewise. - -2003-09-08 Roger Sayle - - * fold-const.c (operand_equal_p): Clarify documentation. - -2003-09-08 Richard Henderson - - * c-decl.c (c_expand_body_1): Push and pop function context here. - * tree-optimize.c (tree_rest_of_compilation): ... not here. Take - nested argument instead of computing nesting ourselves. - -2003-09-08 Jakub Jelinek - - * toplev.c (rest_of_handle_stack_regs): Call split_all_insns before - regstack if optimizing but not scheduling after reload. - -2003-09-08 Jakub Jelinek - - * config/sparc/sparc.c (struct machine_function): New type. - (TARGET_HAVE_TLS, TARGET_CANNOT_FORCE_CONST_MEM): Define. - (sparc_override_options): Initialize init_machine_status. - (tls_symbolic_operand, tgd_symbolic_operand, tld_symbolic_operand, - tie_symbolic_operand, tle_symbolic_operand): New functions. - (symbolic_operand): Disallow tls_symbolic_operand. - (symbolic_memory_operand): Likewise. - (tls_call_delay, sparc_cannot_force_const_mem, legitimate_constant_p, - constant_address_p, legitimate_pic_operand_p, legitimate_address_p): - New functions. - (sparc_tls_symbol): New variable. - (sparc_tls_get_addr, sparc_tls_got, legitimize_tls_address, - legitimize_address): New functions. - (print_operand): Handle %&. - (sparc_init_machine_status, get_some_local_dynamic_name, - get_some_local_dynamic_name_1): New functions. - (sparc_output_dwarf_dtprel): New function. - * config/sparc/sparc.h (CONSTANT_ADDRESS_P): Moved into - constant_address_p. - (LEGITIMATE_PIC_OPERAND_P): Moved into legitimate_pic_operand_p. - (LEGITIMATE_CONSTANT_P): Moved into legitimate_constant_p. - (GO_IF_LEGITIMATE_ADDRESS): Moved into legitimate_address_p. - (LEGITIMIZE_ADDRESS): Moved into legitimize_address. - (PRINT_OPERAND_PUNCT_VALID_P): Add '&'. - (TARGET_TLS, TARGET_SUN_TLS, TARGET_GNU_TLS): Define. - (ASM_OUTPUT_DWARF_DTPREL): Define. - (PREDICATE_CODES): Add tgd_symbolic_operand, tld_symbolic_operand, - tie_symbolic_operand, tle_symbolic_operand. - * config/sparc/sparc.md (UNSPEC_TLSGD, UNSPEC_TLSLDM, UNSPEC_TLSLDO, - UNSPEC_TLSIE, UNSPEC_TLSLE, UNSPEC_TLSLD_BASE): New constants. - (tls_call_delay): New attribute. - (in_call_delay): Use it. - (movqi, movhi, movsi, movdi): Call legitimize_tls_address if needed. - (tgd_hi22, tgd_lo10, tgd_add32, tgd_add64, tgd_call32, tgd_call64, - tldm_hi22, tldm_lo10, tldm_add32, tldm_add64, tldm_call32, tldm_call64, - tldo_hix22, tldo_lox10, tldo_add32, tldo_add64, tie_hi22, tie_lo10, - tie_ld32, tie_ld64, tie_add32, tie_add64, tle_hix22_sp32, - tle_lox10_sp32, tle_hix22_sp64, tle_lox10_sp64): New insns. - (tldo_ldub_sp32, tldo_ldub1_sp32, tldo_ldub2_sp32, tldo_ldsb1_sp32, - tldo_ldsb2_sp32, tldo_ldub_sp64, tldo_ldub1_sp64, tldo_ldub2_sp64, - tldo_ldub3_sp64, tldo_ldsb1_sp64, tldo_ldsb2_sp64, tldo_ldsb3_sp64, - tldo_lduh_sp32, tldo_lduh1_sp32, tldo_ldsh1_sp32, tldo_lduh_sp64, - tldo_lduh1_sp64, tldo_lduh2_sp64, tldo_ldsh1_sp64, tldo_ldsh2_sp64, - tldo_lduw_sp32, tldo_lduw_sp64, tldo_lduw1_sp64, tldo_ldsw1_sp64, - tldo_ldx_sp64, tldo_stb_sp32, tldo_stb_sp64, tldo_sth_sp32, - tldo_sth_sp64, tldo_stw_sp32, tldo_stw_sp64, tldo_stx_sp64): New - insns. - * config/sparc/sparc-protos.h (legitimate_constant_p, - constant_address_p, legitimate_pic_operand_p, legitimate_address_p, - legitimize_tls_address, legitimize_address, tls_symbolic_operand, - tls_call_delay, sparc_output_dwarf_dtprel): New prototypes. - * config/sparc/linux.h (TARGET_GNU_TLS, TARGET_SUN_TLS): Define. - * config/sparc/linux64.h (TARGET_GNU_TLS, TARGET_SUN_TLS): Likewise. - * configure.in (sparc*-*-*): Add TLS check. - * configure: Rebuilt. - -2003-09-07 Eric Botcazou - - PR target/11689 - * config/i386/i386.c (memory_address_length): Fix computation when - the base is esp or ebp. - -2003-09-07 Mark Mitchell - - PR c++/11852 - * varasm.c (initializer_constant_valid_p): Correct logic for - CONSTRUCTORs. - -2003-09-07 Roger Sayle - - * expr.c (expand_operands): New function to expand an operand pair. - (expand_expr): Call expand_operands whenever we need to expand both - operands of a binary operator. - (do_store_flag): Likewise for operands of comparison operations. - -2003-09-07 Roger Sayle - - * combine.c (combine_simplify_rtx): Don't convert -(A*B) into - (-A)*B if we care about sign-dependent rounding. - -2003-09-07 Gabriel Dos Reis - - * c-pretty-print.h (pp_c_left_brace): Declare. - (pp_c_right_brace): Likewise. - * c-pretty-print.c (pp_c_left_brace): Now a function - (pp_c_right_brace): Likewise. - -2003-09-07 Jan Hubicka - - * cfgcleanup.c (try_simplify_condjump): Fix again the preivous patch. - -2003-09-07 Gabriel Dos Reis - - * diagnostic.c (warn_deprecated_use): Move to toplev.c - -2003-09-07 Gabriel Dos Reis - - * langhooks.c (lhd_print_error_function): Move from diagnostic.c. - * Makefile.in (langhooks.o): Depend on diagnostic.h - -2003-09-06 James E Wilson - - * loop.c (loop_regs_update): Delete else clause for PATTERN rtx and - simplify. - -2003-09-07 Kelley Cook - - * Makefile.in: Define $REMAKE to be $MAKE with LANGUAGES & BOOT_CFLAGS - and use it throughout. - -2003-09-07 Jan Hubicka - - * cfgcleanup.c (try_simplify_condjump): Fix my previous patch. - - * toplev.c (rest_of_decl_compilation): Do not finalize external - virables. - - * cgraph.c (cgraph_mark_reachable_node): Only enqueue finalized - functions. - (cgraph_varpool_finalize_decl): Notice global symbol when needed. - -2003-09-06 Jan Hubicka - - PR target/12070 - * calls.c (emit_library_call_value_1): Fix saving of BLKmode arguments. - - PR opt/12082 - * cfgcleanup.c (try_simplify_condjump): Avoid unreachable code warning. - -2003-09-06 Gabriel Dos Reis - - * diagnostic.c (announce_function): Move to toplev.c. - -2003-09-06 Zdenek Dvorak - - * gcse.c (expr_equiv_p): Don't consider anything to be equal to - volatile mem. - -2003-09-06 Kaveh R. Ghazi - - * ggc-common.c (init_ggc_heuristics): Don't use the heuristics - when gc checking is enabled. - -2003-09-06 Steven Bosscher - - PR c/9862 - * c-decl.c (c_expand_body_1): Move return warning from here... - (finish_function): ...to here. - -2003-09-05 Geoffrey Keating - - * config/rs6000/darwin.h (PREFERRED_RELOAD_CLASS): Always return - a subset of the input class. - -2003-09-05 Kazu Hirata - - * config/i860/i860.c: Follow spelling conventions. - * config/i860/i860.h: Likewise. - * config/sh/sh.h: Likewise. - -2003-09-05 Nitin Yewale - - * config/h8300/h8300-protos.h: Declare h8300_hard_regno_rename_ok - * config/h8300/h8300.h (HARD_REGNO_RENAME_OK): New. - * config/h8300/h8300.c (h8300_hard_regno_rename_ok): New. - -2003-09-05 Roger Sayle - Richard Henderson - - PR optimization/1823 - * expmed.c (expand_divmod ): Use an unsigned - multiplication to implement division by constant integer. - -2003-09-05 Jan Hubicka - - * opts.c (decode_options): Enable unit-at-a-time at -O2. - * params.def (max-inline-insns-single): Set to 500 - (max-inline-insns-auto): Set to 150 - * invoke.texi (max-inline-insns-single, max-inline-insns-auto): Update. - -2003-09-04 Richard Henderson - - * cgraph.c (cgraph_mark_reachable_node): Split out from ... - (cgraph_mark_needed_node): Remove needed argument. - * cgraph.h: Update to match. - * cgraphunit.c (decide_is_function_needed): Split out from ... - (cgraph_finalize_function): Reorg. Avoid deferred_inline_function - if we generated the function. - (record_call_1): Update for cgraph_mark_reachable_node. - * varasm.c (mark_referenced): Likewise. - * objc/objc-act.c (mark_referenced_methods): Likewise. - -2003-09-04 DJ Delorie - - * targhooks.c: Add comment explaining the migration process. - -2003-09-04 Eric Christopher - - * config/frv/t-frv: Fix path for frv-abi.h. - * config/frv/frv-asm.h: Fix string concatenation. - -2003-09-04 DJ Delorie - - * builtins.c (apply_args_size): Guard against a NULL cfun. - (expand_builtin_apply_args_1): Likewise. - (expand_builtin_apply): Likewise. - Fixes PR bootstrap/12172. - -2003-09-04 Rainer Orth - - * configure.in (gcc_cv_as_ix86_cmov_sun_syntax): Check if - assembler supports Sun syntax for cmov. - * configure: Regenerate. - * config.in: Likewise. - * config/i386/i386.c: Rename CMOV_SUN_AS_SYNTAX to - HAVE_AS_IX86_CMOV_SUN_SYNTAX. - * config/i386/sol2.h (CMOV_SUN_AS_SYNTAX): Remove. - Fixes PR target/12101. - -2003-09-04 Matt Austern - - * c-common.c (fname_as_string): Use lang_hooks.decl_printable_name - with verbosity 0, instead of DECL_NAME, for human-readable string. - -2003-09-04 Eric Christopher - - * targhooks.c (default_return_in_memory): Allow - unconverted ports. - -2003-09-04 Eric Christopher - - * targhooks.c (default_return_in_memory): Fix typo - in last checkin. - -2003-09-04 Eric Christopher - - * targhooks.c (default_return_in_memory): Fix default - definition. - -2003-09-04 Bernardo Innocenti - - * config/m68k/m68k.c (m68k_coff_asm_named_section): Restore - deleted function. - * config/m68k/coff.h (M68K_TARGET_COFF): Add flag used to - enable coff-only code in m68k.c. - -2003-09-04 Nick Clifton - - * config.gcc: Add v850e1 target. Allow --with-cpu to accept - v850e1. - * config/v850/v850.h: Accept v850e1 as a default CPU. - Accept -mv850e1 as a command line option. - * doc/invoke.texi: Document new -mv850e1 command line switch. - * config/v850/t-v850: Treat -mv850e1 as a multilib alias for - -mv850e. - -2003-09-04 Nick Clifton - - * config.gcc (v850e-*-*): Use t-v850e makefile fragment. - * config/v850/t-v850: Only produce one extra multilib - for - the v850e. - * config/v850/t-v850e: New file: Only produce one extra - multilib - for the v850. - -2003-09-04 Jakub Jelinek - - * config/ia64/libgcc-ia64.ver: Export _Unwind_GetBSP@@GCC_3.3.2. - * config/ia64/unwind-ia64.c (_Unwind_GetBSP): New function. - * unwind.h (_Unwind_GetBSP): New prototype. - * libgcc-std.ver: Add empty GCC_3.3.2 version. - * mkmap-symver.awk: For symbol versions with no exported symbols, - don't put anything into version script, just change all symbol - versions which inherit from it to inherit from its ancestor. - -2003-09-04 Eric Christopher - - * config/mips/mips.c (mips_expand_prologue): Convert to - calls.struct_value_rtx hook. - (reg_or_const_float_1_operand): New. - * config/mips/mips.h: Update Comments. - (mips_arg): Add reg_or_const_float_1_operand. - * config/mips/mips.md (divdf3); Convert to expander. - (divsf3): Ditto. - (*divdf3): New pattern. - (*divsf3): Ditto. - -2003-09-04 Jan Hubicka - - * toplev.c (wrapup_global_declarations): Fix final pass in - unit-at-atime mode. - -2003-09-04 Mark Mitchell - - * doc/extend.texi: Document removal of cast-as-lvalue extension in - C++. - -2003-09-04 Nicolas Roche - - * gcc.c (process_command): Fix typo. - -2003-09-03 David O'Brien - - optimization/11980 - * config/i386/freebsd.h (SIZE_TYPE): Support TARGET_64BIT. - (PTRDIFF_TYPE): Likewise. - (WCHAR_TYPE_SIZE): Likewise. - -2003-09-03 DJ Delorie - - * targhooks.c: New file. - * targhooks.h: New file. - * Makefile.in: Add targhooks.o support. - (function.o): Depend on$(TARGET_H). - (stmt.o): Likewise. - (combine.o): Depend on $(TREE_H) and $(TARGET_H). - * builtins.c (apply_args_size, expand_builtin_apply_args_1, - expand_builtin_apply): Convert to calls.struct_value_rtx hook. - (expand_builtin_saveregs): Convert to - calls.expand_builtin_saveregs hook. - * c-decl.c (start_decl): Handle new calls.promote_prototypes hook - here, instead of ... - (get_parm_info) ... here. - (store_parm_decls_oldstyle): Convert to calls.promote_prototypes - hook. - (finish_function): Handle calls.promote_prototypes hook here too. - * c-typeck.c (convert_arguments): Convert to - calls.promote_prototypes hook. - (c_convert_parm_for_inlining): Likewise. - * calls.c (initialize_argument_information): Convert to - calls.promote_function_args hook. - (expand_call): Convert to calls.struct_value_rtx, - calls.strict_argument_naming, - calls.pretend_outgoing_varargs_named, and - calls.promote_function_return hooks. Pass fndecl to - aggregate_value_p. Initialize CUMULATIVE_ARGS before calling - hooks, so they can use that. - (emit_library_call_value_1): Likewise. - * combine.c (setup_incoming_promotions): Convert to - calls.promote_function_args hook. - * emit-rtl.c: Convert to calls.struct_value_rtx hook. - * expr.c (expand_assignment): Pass call to aggregate_value_p. - (expand_expr): Likewise. - * expr.h: Remove support for SETUP_INCOMING_VARARGS, - STRICT_ARGUMENT_NAMING, PRETEND_OUTGOING_VARARGS_NAMED, - RETURN_IN_MEMORY macro defaults. - * final.c (profile_function): Convert to calls.struct_value_rtx - hook. - * function.c (aggregate_value_p): Accept function type tree as - second parameter; try to deduce fntype from it. Convert to - calls.return_in_memory hook. - (assign_parms): Convert to calls.setup_incoming_varargs, - calls.strict_argument_naming, calls.promote_function_args, - calls.pretend_outgoing_varargs_named hooks. Pass fndecl to - aggregate_value_p. - (expand_function_start): Likewise. Convert to - calls.struct_value_rtx hook. - (expand_function_end): Convert to calls.promote_function_return hook. - (allocate_struct_function): Pass fndecl to aggregate_value_p. - * hard-reg-set.h: Update comments to new hook names. - * integrate.c (expand_inline_function): Pass fndecl to aggregate_value_p. - * reg-stack.c (stack_result): Likewise. - * rtl.h (struct_value_rtx, struct_value_incoming_rtx): Delete. - * stmt.c (expand_value_return): Convert to - calls.promote_function_return hook. - * target-def.h: Add TARGET_PROMOTE_FUNCTION_ARGS, - TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES, - TARGET_STRUCT_VALUE_RTX, TARGET_RETURN_IN_MEMORY, - TARGET_EXPAND_BUILTIN_SAVEREGS, TARGET_SETUP_INCOMING_VARARGS, - TARGET_STRICT_ARGUMENT_NAMING, - TARGET_PRETEND_OUTGOING_VARARGS_NAMED, and TARGET_CALLS. - * target.h: Likewise. - * tree.h (aggregate_value_p): Also takes a tree to deduce function - attributes from (for target hooks). - * doc/tm.texi (PROMOTE_FUNCTION_ARGS, PROMOTE_FUNCTION_RETURN, - PROMOTE_PROTOTYPES, RETURN_IN_MEMORY, STRUCT_VALUE_REGNUM, - STRUCT_VALUE, STRUCT_VALUE_INCOMING_REGNUM, STRUCT_VALUE_INCOMING, - EXPAND_BUILTIN_SAVEREGS, SETUP_INCOMING_VARARGS, - STRICT_ARGUMENT_NAMING, PRETEND_OUTGOING_VARARGS_NAMED): Convert - to hooks. - - * config/alpha/alpha.c (alpha_output_mi_thunk_osf): Pass function - to aggregate_value_p. - * config/arm/arm.c (arm_init_cumulative_args, - arm_output_mi_thunk): Likewise. - * config/i386/i386.c (ix86_return_pops_args, x86_this_parameter): - Likewise. - * config/mips/mips.c (mips_save_reg_p, mips_expand_prologue, - mips_can_use_return_insn): Likewise. - * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Likewise. - * config/s390/s390.c (s390_output_mi_thunk): Likewise. - * config/sparc/sparc.c (sparc_output_mi_thunk): Pass function to - aggregate_value_p. - * config/story16/stormy16.c (xstormy16_asm_output_mi_thunk): Pass - function to aggregate_value_p. - * objc/objc-act.c (generate_struct_by_value_array): Pass NULL to - aggregate_value_p. - - * config/sh/sh-protos.h (sh_builtin_saveregs): Remove. - (sh_attr_renesas_p, sh_cfun_attr_renesas_p, sh_function_arg, - sh_function_arg_advance, sh_pass_in_reg_p): New. * config/sh/sh.c - (sh_handle_renesas_attribute, sh_promote_prototypes, - sh_struct_value_rtx, sh_return_in_memory, sh_builtin_saveregs, - sh_setup_incoming_varargs, sh_strict_argument_naming, - sh_pretend_outgoing_varargs_named): New decls. - (targetm): Add new hooks. - (calc_live_regs): Save MACL and MACH if the function has the - renesas attribute. - (sh_expand_prologue): Support renesas attribute. - (sh_builtin_saveregs): Make static. - (sh_build_va_list): Support renesas attribute. - (sh_va_start): Likewise. - (sh_va_arg): Likewise. - (sh_promote_prototypes): New. - (sh_function_arg): New, moved from sh.h. Support renesas - attribute. - (sh_function_arg_advance): Likewise. - (sh_return_in_memory): Likewise. - (sh_strict_argument_naming): Likewise. - (sh_pretend_outgoing_varargs_named): Likewise. - (sh_struct_value_rtx): New. - (sh_attribute): Add renesas attribute. - (sh_handle_renesas_attribute): New. - (sh_attr_renesas_p, sh_cfun_attr_renesas_p): New. - (sh_ms_bitfield_layout_p): Support renesas attribute also. - (sh_output_mi_thunk): Pass function to aggregate_value_p. * - config/sh/sh.h (TARGET_SWITCHES): Add -mrenesas as an alias for - -mhitachi. - (STRUCT_VALUE_REGNUM, STRUCT_VALUE, RETURN_IN_MEMORY): Moved to - target hooks. - (sh_args): Add renesas_abi flag. - (INIT_CUMULATIVE_ARGS): Set it. Pass fndecl to aggregate_value_p. - (FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Move to sh.c. - (PASS_IN_REG_P): Support renesas attribute. Pass DF and TF on the - stack for the renesas abi. - (STRICT_ARGUMENT_NAMING, PRETEND_OUTGOING_VARARGS_NAMED, - SETUP_INCOMING_VARARGS, EXPAND_BUILTIN_SAVEREGS, - PROMOTE_PROTOTYPES): Moved to sh.c. * config/sh/sh.md (call): Set - call cookie to indicate renesas calls. - -2003-09-03 Mostafa Hagog - - * gcse.c (replace_one_set): New function. - (pre_insert_copy_insn): Change the order of copying - to make copy propagation discover additional PRE opportunities. - -2003-09-03 Roger Sayle - - PR optimization/11700. - * simplify-rtx.c (simplify_subreg): Check that the subreg offset - of a hard register is representable before trying to simplify it - using subreg_hard_regno. - -2003-09-04 Rainer Orth - - * configure.in (gcc_cv_ld_hidden): Disable unless using GNU ld. - * configure: Regenerate. - -2003-09-04 Rainer Orth - - * intl.h (N_): Remove parentheses. - -2003-09-03 Bernardo Innocenti - - * config.gcc (m68k-*-linux*): Remove definition of LINUX_DEFAULT_ELF. - * config/i370/linux.h (LINUX_DEFAULT_ELF): Remove unconditional - definition and code blocks compiled when not defined. - * config/i386/linux.h (LINUX_DEFAULT_ELF): Likewise. - * config/i386/linux64.h (LINUX_DEFAULT_ELF): Likewise. - * config/sparc/linux.h: (LINUX_DEFAULT_ELF): Likewise. - * config/sparc/linux64.h: (LINUX_DEFAULT_ELF): Likewise. - -2003-09-03 Jeff Sturm - - * cgraphunit.c (visited_nodes): New static variable. - (record_call_1): Use walk_tree with visited_nodes. - (cgraph_create_edges): Use walk_tree with visited_nodes. - Setup/teardown visited_nodes hashtable. - -2003-09-03 Roger Sayle - - * toplev.c (flag_rounding_math): New global variable. - (f_options): Add to the list of language independent options. - * flags.h (flag_rounding_math): Prototype here. - (HONOR_SIGN_DEPENDENT_ROUNDING): Use flag_rounding_math instead. - * common.opt (frounding-math): New common command line option. - * opts.c (common_handle_option): Handle OPT_frounding_math. - (set_fast_math_flags): -ffast-math clears flag_rounding_math. - - * doc/invoke.texi: Document this new command line option. - -2003-09-03 Rainer Orth - - * config/sol2.h (NO_IMPLICIT_EXTERN_C): Update comment. - -2003-09-03 Jan Hubicka - - * Makefile.in (c-objc-common.o): Kill gt-c-objc-common.h dependency. - * c-decl.c (finish_function): Kill arguments, always use cgraph path. - * c-objc-common.c: Kill include of gt-c-objc-common.h - (expand_deferred_fns, deffer_fn): Kill function. - (deferred_fns): Kill variable. - (finish_cdtor): Update finish_function call. - (c_objc_common_finish_file): Always call cgraph code. - * c-parse.c: Regenerate. - * c-parse.y: Regenerate. - * c-tree.h (finish_function): Update prototype. - * objc-acct.c (build_module_descriptor, finish_method_def): - Update call of finish_function. - * cgraphunit.c (cgraph_default_inline_p, cgraph_analyze_function): Add - forward prototype. - (cgraph_finalize_function): In non-unit-at-a-time mode analyze the - function and assemble it if needed. - (cgraph_finalize_compilation_unit): Do nothing in non-unit-at-a-time - mode. - (cgraph_optimize): Likewise. - (cgraph_expand_function): In non-unit-at-a-time mode keep function body - even when it has no inline callees. - * c-parse.in: Update calls to finish_function. - -2003-09-03 Nick Clifton - - * config/arm/arm.h: Handle TARGET_CPU_iwmmxt. - Use #error to generate the message if TARGET_DEFAULT is not - recognised. - -2003-09-03 Richard Sandiford - - * config/mips/mips.h (MASK_UNUSED1): Remove. - (MASK_XGOT, TARGET_XGOT): Define. - (TARGET_SWITCHES): Add an entry for -mxgot. - (ASM_SPEC): Map -mxgot to -xgot. - * config/mips/mips.c (mips_symbol_insns): Use TARGET_XGOT to decide - whether we're using a big-GOT sequences. - (mips_legitimize_const_move, mips_expand_call): Likewise. - (override_options): Revert 2003-01-09 change. - * doc/invoke.texi: Document -mxgot. - -2003-09-02 Jason Merrill - - * config/sol2.h (NO_IMPLICIT_EXTERN_C): Define here. - * config/sparc/sol2.h: Not here. - -2003-09-02 Roger Sayle - - * expr.c (expand_expr): The code following both_summands performs - the same task as simplify_gen_binary. Replace all gotos to - both_summands with a call to simplify_gen_binary and delete the - now unused label. - -2003-09-02 Jason Merrill - - PR c++/7327 - * config/sparc/sol2.h (NO_IMPLICIT_EXTERN_C): Define. - -2003-09-02 Jeff Sturm - - * cgraphunit.c (record_call_1): Use walk_tree_without_duplicates. - (cgraph_optimize_function): Set current_function_decl to the - fndecl we're integrating from. - -2003-09-02 Kaveh R. Ghazi - - * builtins.def: Break out _Complex math functions into their - own category. - -2003-09-02 Andreas Jaeger - - * langhooks-def.h (LANG_HOOKS_RTL_EXPAND_STMT): Cast properly. - -2003-09-02 Josef Zlomek - - * cfgbuild.c (compute_outgoing_frequencies): Use NOTE instead of - finding the note again. - -2003-09-02 Nathanael Nerode - - * config.gcc: Remove host-specific rewrites of target_alias. - -2003-09-01 Mark Mitchell - - * Makefile.in (genprogs): Fix typo. - - * Makefile.in (gencheck.o): Remove build commands. - (dummy-conditions.o): Likewise. - (read-rtl.o): Likewise. - (gensupport.o): Likewise. - (genconfig$(build_exeext)): Remove rule. - (genconfig.o): Remove build commands. - (genflags$(build_exeext)): Remove rule. - (genflags.o): Remove build commands. - (gencodes$(build_exeext)): Remove rule. - (gencodes.o): Remove build commands. - (genconstants.o): Remove build commands. - (genemit$(build_exeext)): Remove rule. - (genemit.o): Remove build commands. - (genrecog$(build_exeext)): Remove rule. - (genrecog.o): Remove build commands. - (genextract$(build_exeext)): Remove rule. - (genextract.o): Remove build commands. - (genpeep$(build_exeext)): Remove rule. - (genpeep.o): Remove build commands. - (genattr$(build_exeext)): Remove rule. - (genattr.o): Remove build commands. - (genprognames): New variable. - (genprogs): Likewise. - (genobjs): Likewise. - (genprogs): New rule. - (genobjs): Likewise. - (genattrtab.o): Remove build commands. - (genautomata.o): Likewise. - (genoutput$(build_exeext)): Remove rule. - (genoutput.o): Remove build commands. - (gengenrtl.o): Likewise. - (genpreds.o): Likewise. - (gengtype.o): Likewise. - (genconditions.o): Likewise. - (gen-protos.o): Likewise. - (scan.o): Likewise. - (fix-header.o): Likewise. - (scan-decls.o): Likewise. - (check-g++): Combine with other check targets. - (check-gcc): Likewise. - (check-g77): Likewise. - (check-objc): Likewise. - -2003-09-01 Nathanael Nerode - - * config.gcc: Remove host-specific stuff which is unused here - since the introduction of config.host. - - * doc/fragments.texi: Mention config.host. - * doc/sourcebuild.texi: Mention config.host. Give brief descriptions - of config.build, config.host, and config.gcc. - -2003-09-01 Zack Weinberg - - * c-decl.c (pushdecl): Don't put variables on - C_TYPE_INCOMPLETE_VARS of a type unless that type is itself - incomplete. - -2003-09-01 Nathanael Nerode - - * config.host: New file. - * config.gcc: Remove some host-specific stuff and some - logic needed only for repeated invocation. - * configure.in: Use config.host. - * configure: Regenerate. - -2003-09-01 Josef Zlomek - - * c-typeck.c (build_binary_op): Kill BIT_ANDTC_EXPR. - * convert.c (convert_to_integer): Kill BIT_ANDTC_EXPR. - * fold-const.c (int_const_binop): Kill BIT_ANDTC_EXPR. - (fold): Kill BIT_ANDTC_EXPR and label bit_and. - * tree.def (BIT_ANDTC_EXPR): Kill. - -2003-08-31 Nathanael Nerode - - * configure.in: Remove uses of "for x in .. ${foo}" idiom. - * configure: Regenerate. - - * config.gcc: Remove references to install_headers_dir, now unused - since introduction of config.build. - * config.gcc (i860-*-sysv4*): Don't set unused USG, SVR3 defines. - - * doc/fragments.texi, doc/sourcebuild.texi: Mention new file - config.build. - - * config.build: New file. - * config.gcc: Remove some build-specific stuff. - * configure.in: Use config.build. - * configure: Regnerate. - -2003-08-31 Steven Bosscher - Roger Sayle - - PR middle-end/11823 - * stmt.c (expand_end_case_type): Only use jump tables for dense - switch statements when optimizing for size. - -2003-08-31 Olivier Hainque - - * builtins.c (expand_builtin_setjmp): Use emit_jump to jump around - the != 0 case, which ensures pending stack adjustments are flushed. - -2003-08-30 Zack Weinberg - - * configure.frag: Delete file. - * configure.in: Rename the substitution variables - dep_host_xmake_file and dep_tmake_file to xmake_file and - tmake_file respectively. Do not expand $srcdir in the - value of these; leave that for Make. Introduce a new - substitution varaible, all_lang_makefrags, which lists - subdirectory Make-lang.in files; exclude these from - all_lang_makefiles, which is now only for subdirectory - outputs. Do not invoke configure.frag. Do not set nor - AC_SUBST_FILE target_overrides, host_overrides, or - language_fragments. Create build subdirectories in - config.status extra commands. - * configure: Regenerate. - * Makefile.in: Update substitutions to match changes to - configure. Use include directives instead of @-insertions - to read in host, target, and language fragments. - (Makefile rule): Do not invoke configure.frag. Do not copy - config.status to config.run before executing it. Set - CONFIG_HEADERS and CONFIG_FILES so that only Makefile gets - regenerated. - (cstamp-h rule): Set CONFIG_FILES as well as CONFIG_HEADERS. - -2003-08-30 Zack Weinberg - - * c-tree.h: Delete COMPARE_DIFFERENT_TU from enumeration. - * c-typeck.c (same_translation_unit_p): New function. - (comptypes): Use it instead of flags parameter to identify - structure types from different translation units. - * c-decl.c (duplicate_decls): Always call comptypes with - COMPTYPE_STRICT flags argument. - (c_reset_state): Set BLOCK_SUPERCONTEXT of the block formed - to file_scope_decl. - -2003-08-30 Zack Weinberg - - * c-tree.h (C_TYPE_INCOMPLETE_VARS): New macro. - * c-decl.c (struct c_scope): Remove "incomplete" field. - (pushdecl): Attach variables with incomplete types to - the TYPE_MAIN_VARIANT of the incomplete type in question. - (finish_struct): Look at C_TYPE_INCOMPLETE_VARS for variables - to complete, not at current_scope->incomplete. All such - variables do need completion. - -2003-08-30 Richard Earnshaw - Nicolas Pitre - - * arm/lib1funcs.asm (RETCOND): Delete. - (RETLDM): New assembler macro. Use it for returning with ldm/ldr. - (ARM_LDIV0, THUMB_LDIV0): Collapse multiple definitions. - (__ARM_ARCH__): Move here from ieee754-?f.S. - (RET, RETc): Clean up definitions. - (DIV_FUNC_END): Renamed from FUNC_END. All uses changed. - (FUNC_END): New macro that marks the end of any function. - (ARM_FUNC_START): New macro that allows an assembler routine to be - implemented in ARM code even if a Thumb-only build. - Unconditionally include ieee754-?f.S. - * arm/ieee754-df.S: Delete macros moved to lib1funcs.asm. - Mark ends of functions. - Split into separate conditionally-compiled units. - Use RETLDM to return from routines. - * arm/ieee754-sf.S: Similarly. - * t-arm-elf (LIB1ASMFUNCS): Remove _ieee754_dp and _ieee754_sp. - Add _negdf2 _addsubdf3 _muldivdf3 _cmpdf2 _unorddf2 _fixdfsi - _truncdfsf2 _negsf2 _addsubsf3 _muldivsf3 _cmpsf2 _unordsf2 - _fixsfsi and _fixunssfsi. - - * arm/ieee754-df.S (__muldf3): Fix bug when result of a - multiplication underflows to zero. - (__adddf3): Fix bug when using VFP ordering on little-endian - processors. - (__fixdfsi): Use rrx to extract the carry into a register instead of - MRS instruction. Optimize later use of result. - * arm/ieee754-sf.S (__fixsfsi): Likewise. - (__fixunssfsi): Use a better sequence for handling negative-or-zero. - -2003-08-29 Richard Henderson - - * tree-optimize.c: New file. - * Makefile.in (OBJS-archive): Add tree-optimize.o. - (tree-optimize.o): New. - * c-decl.c (store_parm_decls): Use allocate_struct_function. - (finish_function): Don't free_after_parsing or free_after_compilation. - (set_save_expr_context): Move to tree-optimize.c. - (c_expand_body_1): Use tree_rest_of_compilation. - * c-lang.c (LANG_HOOKS_RTL_EXPAND_STMT): New. - * objc/objc-lang.c (LANG_HOOKS_RTL_EXPAND_STMT): New. - * c-objc-common.c (expand_deferred_fns): Don't emit unused inlines; - iterate until closure. - * langhooks-def.h (LANG_HOOKS_RTL_EXPAND_START, - LANG_HOOKS_RTL_EXPAND_STMT, LANG_HOOKS_RTL_EXPAND_END): New. - (LANG_HOOKS_RTL_EXPAND_INITIALIZER): New. - * langhooks.h (struct lang_hooks_for_rtl_expansion): New. - * toplev.h (tree_rest_of_compilation): Declare it. - -2003-08-29 Richard Henderson - - * function.h (struct function): Add rtl_inline_init, saved_for_inline. - * integrate.c (save_for_inline): Set saved_for_inline. - * c-semantics.c (genrtl_scope_stmt): Check it. - * toplev.c (wrapup_global_declarations): Check it. - (rest_of_handle_inlining): Set and check rtl_inline_init. - (rest_of_compilation): Remove out of date comment. - -2003-08-29 Richard Henderson - - * function.c (allocate_struct_function): New, split out of ... - (prepare_function_start, init_function_start): ... here. - * expr.c (init_expr): Use ggc_alloc_cleared. - * stmt.c (init_stmt_for_function): Likewise. - * tree.h (allocate_struct_function): Declare. - -2003-08-29 Nathanael Nerode - - * config.gcc: Don't use negated character class in shell case - clause. - -2003-08-29 Richard Henderson - - * function.h (struct function): Move function_frequency and - max_jumptable_ents before start of bit field members. - -2003-08-29 Richard Henderson - - * builtins.c (expand_builtin_constant_p): Check cse_not_expected here, - (fold_builtin_constant_p) ... not here. - -2003-08-29 Richard Henderson - - * c-tree.h (C_DECL_FILE_SCOPE): Move ... - * tree.h (DECL_FILE_SCOPE_P): ... here, and rename. - * c-decl.c, c-objc-common.c, c-typeck.c: Update to match. - -2003-08-29 Kaveh R. Ghazi - - * builtins.def: Fix typos. - (ATTR_MATHFN_FPROUNDING_STORE): New macro. - (BUILT_IN_FREXP, BUILT_IN_FREXPF, BUILT_IN_FREXPL, BUILT_IN_MODF, - BUILT_IN_MODFF, BUILT_IN_MODFL, BUILT_IN_REMQUO, BUILT_IN_REMQUOF, - BUILT_IN_REMQUOL, BUILT_IN_SINCOS, BUILT_IN_SINCOSF, - BUILT_IN_SINCOSL): Use ATTR_MATHFN_FPROUNDING_STORE. - - * builtins.def (BUILT_IN_ERFC, BUILT_IN_ERFCF, BUILT_IN_ERFCL): - Use ATTR_MATHFN_FPROUNDING_ERRNO. - -2003-08-29 Nathanael Nerode - - * config.gcc (i386-*-vsta): Fix obvious bogosity. - - * fixinc/inclhack.def: Remove special cases for unsupported - PTX 1 and PTX 2 (including i[34567]86-sequent-sysv3). - * fixinc/fixincl.x: Regenerate. - -2003-08-29 Mark Mitchell - - * Makefile.in (cpp.info): Just state dependencies. - (gcc.info): Likewise. - (gccint.info): Likewise. - (gccinstall.info): Likewise. - (cppinternals.info): Likewise. - (cpp.dvi): Likewise. - (gcc.dvi): Likewise. - (gccint.dvi): Likewise. - (gccinstall.dvi): Likewise. - (cppinternals.dvi): Likewise. - (gcov.1): Likewise. - (cpp.1): Likewise. - (gcc.1): Likewise. - (gfdl.7): Likewise. - (gpl.7): Likewise. - (fsf-funding.7): Likewise. - ($(objdir)/%.info): New pattern rule. - (%.dvi): Likewise. - -2003-08-29 Kelley Cook - - * Makefile.in (restage1): Pass BOOT_CFLAGS to recursive make. - (restage2): Likewise. - (restage3): Likewise. - (restage4): Likewise. - (restageprofile): Likewise. - (restagefeedback): Likewise. - (bubblestrap): Likewise. - -2003-08-29 Nathanael Nerode - - * config.gcc: Narrow unsupported target match to avoid clobbering - i?86-sequent-sysv4*. - -2003-08-29 Kaveh R. Ghazi - - * builtins.c (mathfn_built_in): Handle new math builtins. - -2003-08-28 Per Bothner - - Fix (hopefully temporary) for breakage caused by my 08-21 patch. - * cpplex.c (_cpp_get_fresh_line): Check for null buffer. - (_cpp_lex_buffer): Likewise. - * cpptrad.c (_cpp_read_logical_line_trad): Likewise. - -2003-08-28 Ulrich Weigand - - * config/s390/s390.md ("*mulsi3_sign"): New insn. - ("mulsidi3" expander, "mulsi_6432" insn): Remove, replace by ... - ("mulsidi3"): ... this new insn. - ("umulsidi3"): New insn. - ("divmoddi3", "divmodtidi3", "divmodtisi3"): Simplify by using - mixed-mode matching constraints. - ("udivmodsi4", "udivmoddisi3"): New insns. - ("udivsi3", "umodsi3"): Use only in ESA/390 mode. - -2003-08-28 Kaveh R. Ghazi - - * builtin-types.def (BT_INT_PTR, BT_FLOAT_PTR, BT_DOUBLE_PTR, - BT_LONGDOUBLE_PTR, BT_FN_FLOAT_FLOAT_FLOATPTR, - BT_FN_DOUBLE_DOUBLE_DOUBLEPTR, - BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLEPTR, - BT_FN_FLOAT_FLOAT_INTPTR, BT_FN_DOUBLE_DOUBLE_INTPTR, - BT_FN_LONGDOUBLE_LONGDOUBLE_INTPTR, - BT_FN_FLOAT_FLOAT_FLOAT_INTPTR, BT_FN_DOUBLE_DOUBLE_DOUBLE_INTPTR, - BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE_INTPTR, - BT_FN_VOID_FLOAT_FLOATPTR_FLOATPTR, - BT_FN_VOID_DOUBLE_DOUBLEPTR_DOUBLEPTR, - BT_FN_VOID_LONGDOUBLE_LONGDOUBLEPTR_LONGDOUBLEPTR): New. - * builtins.def (BUILT_IN_FREXP, BUILT_IN_FREXPF, BUILT_IN_FREXPL, - BUILT_IN_MODF, BUILT_IN_MODFF, BUILT_IN_MODFL, BUILT_IN_REMQUO, - BUILT_IN_REMQUOF, BUILT_IN_REMQUOL, BUILT_IN_SINCOS, - BUILT_IN_SINCOSF, BUILT_IN_SINCOSL): New. - * tree.c: Assign new type_nodes. - * tree.h (tree_index): Add TI_FLOAT_PTR_TYPE, TI_DOUBLE_PTR_TYPE, - TI_LONG_DOUBLE_PTR_TYPE, TI_INTEGER_PTR_TYPE. - (float_ptr_type_node, double_ptr_type_node, - long_double_ptr_type_node, integer_ptr_type_node): New type_nodes. - - * doc/extend.texi: Document new builtins. - -2003-08-28 Kaveh R. Ghazi - - * builtin-types.def (BT_FN_FLOAT_INT_FLOAT, - BT_FN_DOUBLE_INT_DOUBLE, BT_FN_LONGDOUBLE_INT_LONGDOUBLE): New. - - * builtins.def (BUILT_IN_ERF, BUILT_IN_ERFC, BUILT_IN_ERFCF, - BUILT_IN_ERFCL, BUILT_IN_ERFF, BUILT_IN_ERFL, BUILT_IN_GAMMA, - BUILT_IN_GAMMAF, BUILT_IN_GAMMAL, BUILT_IN_J0, BUILT_IN_J0F, - BUILT_IN_J0L, BUILT_IN_J1, BUILT_IN_J1F, BUILT_IN_J1L, - BUILT_IN_JN, BUILT_IN_JNF, BUILT_IN_JNL, BUILT_IN_LGAMMA, - BUILT_IN_LGAMMAF, BUILT_IN_LGAMMAL, BUILT_IN_SIGNIFICAND, - BUILT_IN_SIGNIFICANDF, BUILT_IN_SIGNIFICANDL, BUILT_IN_TGAMMA, - BUILT_IN_TGAMMAF, BUILT_IN_TGAMMAL, BUILT_IN_Y0, BUILT_IN_Y0F, - BUILT_IN_Y0L, BUILT_IN_Y1, BUILT_IN_Y1F, BUILT_IN_Y1L, - BUILT_IN_YN, BUILT_IN_YNF, BUILT_IN_YNL): New. - - * doc/extend.texi: Document new builtins. - -2003-08-28 Nathanael Nerode - - * fixinc/mkfixinc.sh: Remove special case code for unsupported - variants of i?86, powerpcle, and thumb. - * fixinc/mkfixinc.sh: Remove special case code for unsupported - arm and hppa variants. - -2003-08-28 Kaveh R. Ghazi - - * builtin-types.def (BT_FN_INT_FLOAT, BT_FN_INT_DOUBLE, - BT_FN_INT_LONGDOUBLE, BT_FN_LONG_FLOAT, BT_FN_LONG_DOUBLE, - BT_FN_LONG_LONGDOUBLE, BT_FN_LONGLONG_FLOAT, - BT_FN_LONGLONG_DOUBLE, BT_FN_LONGLONG_LONGDOUBLE, - BT_FN_FLOAT_FLOAT_LONGDOUBLE, BT_FN_DOUBLE_DOUBLE_LONGDOUBLE, - BT_FN_FLOAT_FLOAT_INT, BT_FN_DOUBLE_DOUBLE_INT, - BT_FN_LONGDOUBLE_LONGDOUBLE_INT, BT_FN_FLOAT_FLOAT_LONG, - BT_FN_DOUBLE_DOUBLE_LONG, BT_FN_LONGDOUBLE_LONGDOUBLE_LONG, - BT_FN_FLOAT_FLOAT_FLOAT_FLOAT, BT_FN_DOUBLE_DOUBLE_DOUBLE_DOUBLE, - BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE): New. - - * builtins.def (BUILT_IN_ACOS, BUILT_IN_ACOSF, BUILT_IN_ACOSH, - BUILT_IN_ACOSHF, BUILT_IN_ACOSHL, BUILT_IN_ACOSL, BUILT_IN_ASIN, - BUILT_IN_ASINF, BUILT_IN_ASINH, BUILT_IN_ASINHF, BUILT_IN_ASINHL, - BUILT_IN_ASINL, BUILT_IN_ATANH, BUILT_IN_ATANHF, BUILT_IN_ATANHL, - BUILT_IN_CBRT, BUILT_IN_CBRTF, BUILT_IN_CBRTL, BUILT_IN_COPYSIGN, - BUILT_IN_COPYSIGNF, BUILT_IN_COPYSIGNL, BUILT_IN_COSH, - BUILT_IN_COSHF, BUILT_IN_COSHL, BUILT_IN_DREM, BUILT_IN_DREMF, - BUILT_IN_DREML, BUILT_IN_EXP10, BUILT_IN_EXP10F, BUILT_IN_EXP10L, - BUILT_IN_EXP2, BUILT_IN_EXP2F, BUILT_IN_EXP2L, BUILT_IN_EXPM1, - BUILT_IN_EXPM1F, BUILT_IN_EXPM1L, BUILT_IN_FDIM, BUILT_IN_FDIMF, - BUILT_IN_FDIML, BUILT_IN_FMA, BUILT_IN_FMAF, BUILT_IN_FMAL, - BUILT_IN_FMAX, BUILT_IN_FMAXF, BUILT_IN_FMAXL, BUILT_IN_FMIN, - BUILT_IN_FMINF, BUILT_IN_FMINL, BUILT_IN_HYPOT, BUILT_IN_HYPOTF, - BUILT_IN_HYPOTL, BUILT_IN_ILOGB, BUILT_IN_ILOGBF, BUILT_IN_ILOGBL, - BUILT_IN_LDEXP, BUILT_IN_LDEXPF, BUILT_IN_LDEXPL, BUILT_IN_LLRINT, - BUILT_IN_LLRINTF, BUILT_IN_LLRINTL, BUILT_IN_LLROUND, - BUILT_IN_LLROUNDF, BUILT_IN_LLROUNDL, BUILT_IN_LOG10, - BUILT_IN_LOG10F, BUILT_IN_LOG10L, BUILT_IN_LOG1P, BUILT_IN_LOG1PF, - BUILT_IN_LOG1PL, BUILT_IN_LOG2, BUILT_IN_LOG2F, BUILT_IN_LOG2L, - BUILT_IN_LOGB, BUILT_IN_LOGBF, BUILT_IN_LOGBL, BUILT_IN_LRINT, - BUILT_IN_LRINTF, BUILT_IN_LRINTL, BUILT_IN_LROUND, - BUILT_IN_LROUNDF, BUILT_IN_LROUNDL, BUILT_IN_NEXTAFTER, - BUILT_IN_NEXTAFTERF, BUILT_IN_NEXTAFTERL, BUILT_IN_NEXTTOWARD, - BUILT_IN_NEXTTOWARDF, BUILT_IN_NEXTTOWARDL, BUILT_IN_POW10, - BUILT_IN_POW10F, BUILT_IN_POW10L, BUILT_IN_REMAINDER, - BUILT_IN_REMAINDERF, BUILT_IN_REMAINDERL, BUILT_IN_RINT, - BUILT_IN_RINTF, BUILT_IN_RINTL, BUILT_IN_SCALB, BUILT_IN_SCALBF, - BUILT_IN_SCALBL, BUILT_IN_SCALBLN, BUILT_IN_SCALBLNF, - BUILT_IN_SCALBLNL, BUILT_IN_SCALBN, BUILT_IN_SCALBNF, - BUILT_IN_SCALBNL, BUILT_IN_SINH, BUILT_IN_SINHF, BUILT_IN_SINHL, - BUILT_IN_TANH, BUILT_IN_TANHF, BUILT_IN_TANHL): New. - - * doc/extend.texi: Document new builtins. - -2003-08-28 Ulrich Weigand - - * config/s390/s390.c (legitmate_constant_p): Use LARL on - zSeries machines even in 31-bit addressing mode. - (legitimate_reload_constant_p): Likewise. - (legitimize_pic_address): Likewise. - (legitimize_tls_address): Likewise. - (s390_split_branches): Likewise. - (s390_dump_pool): Likewise. - (s390_mainpool_finish): Likewise. - (s390_chunkify_start): Likewise. - (s390_select_rtx_section): Likewise. - * config/s390/s390.md ("doloop_si"): Likewise. - ("pool_start_31", "pool_end_31"): Likewise. - ("pool_start_64", "pool_end_64"): Likewise. - ("main_base_31_small", "main_base_31_large"): Likewise. - ("main_base_64"): Likewise. - ("reload_base_31", "reload_base_64"): Likewise. - ("*movsi_larl"): New insn. - ("cjump", "icjump"): Use long branches on zSeries machines. - ("jump"): Likewise. - ("call"): Use BRASL on zSeries machines. - ("call_value", "call_value_tls"): Likewise. - ("brasl", "bras", "basr_64", "basr_31", "bas_64", "bas_31"): Remove - and replace by ... - ("*bras", "*brasl", "*basr") ... these new insns. - ("brasl_r", "bras_r", "basr_64_r", "basr_31_r", "bas_64_r", - "bas_31_r"): Remove and replace by ... - ("*bras_r", "*brasl_r", "*basr_r") ... these new insns. - ("brasl_tls", "bras_tls", "basr_64_tls", "basr_31_tls", - "bas_64_tls", "bas_31_tls"): Remove and replace by ... - ("*bras_tls", "*brasl_tls", "*basr_tls") ... these new insns. - ("*return_si", "*return_di"): Remove and replace by ... - ("*return"): ... this new insn. - ("rotlsi3"): Allow on zSeries machines. - - * config/s390/s390.c (legitimize_reload_constant_p): Use - LL/LH type instructions in z/Architecture mode. - * config/s390/s390.md ("*movsi_lli"): Likewise. - ("*andsi3_ni", "*andhi3_ni", "*andqi3_ni"): Likewise. - ("*iorsi3_ni", "*iorhi3_ni", "*iorqi3_ni"): Likewise. - ("*extendqisi2"): Use LB in z/Architecture mode. - ("*zero_extendqisi2_64", "*zero_extendqisi2_31"): Use LLGC in - z/Architecture mode. - ("zero_extendqihi2", "*zero_extendqihi2_64", "*zero_extendqihi2_31"): - Likewise. - - * config/s390/s390.md ("*tmdi_ext"): Allow in both 64-bit - and 31-bit mode. - ("ptr_extend"): Allow only in 64-bit mode. - -2003-08-27 Daniel Jacobowitz - - * gcc.c (STANDARD_EXEC_PREFIX, STANDARD_STARTFILE_PREFIX) - (TOOLDIR_BASE_PREFIX, STANDARD_BINDIR_PREFIX): Remove unnecessary - definitions. - (main): Only use standard_startfile_prefix if native. - * doc/tm.texi (STANDARD_STARTFILE_PREFIX): Update. - -2003-08-27 Per Bothner - - * cpperror.c (print_location): Don't check for !pfile->buffer. That - test fails following my 08-21 change, and it seems unnecessary anyway. - (cpp_error): Likewise. - -2003-08-27 Jason Merrill - - * real.c (do_multiply): Initialize with memset. - -2003-08-27 Zdenek Dvorak - - * gcov.c (typedef struct arc_info): New field cs_count. - (accumulate_line_counts): Find cycles correctly. - -2003-08-27 Ulrich Weigand - - * config/s390/s390.c (struct machine_function): Remove member - literal_pool_label. - (s390_optimize_prolog): Replace TEMP_REG argument with - TEMP_USED and BASE_USED. Do not check get_pool_size (). - (general_s_operand): Accept all immediates before reload if - ALLOW_IMMEDIATE. If not ALLOW_IMMEDIATE, reject literal pool - references. - (s390_output_symbolic_const): Remove UNSPEC_LTREL_OFFSET handling. - (find_constant_pool_ref): Ignore UNSPECV_POOL_ENTRY insns. - (s390_alloc_pool): New function. - (s390_new_pool): Call it. - (s390_dump_pool): Add REMOTE_LABEL argument. - (s390_chunkify_start): Add BASE_REG argument. Do not check - get_pool_size (). - (s390_chunkify_finish): Add BASE_REG argument. Adapt - s390_dump_pool call. - (s390_pool_count, s390_nr_constants): Remove. - (s390_output_constant_pool): Remove. - (s390_mainpool_start): New function. - (s390_mainpool_finish): New function. - (s390_mainpool_cancel): New function. - (s390_reorg): Implement main literal pool handling. - (s390_emit_prologue): Emit main_pool placeholder instead of - literal_pool_31 / literal_pool_64 insns. - * config/s390/s390.h (s390_pool_count, s390_nr_constants): Remove. - (ASM_OUTPUT_POOL_PROLOGUE, ASM_OUTPUT_SPECIAL_POOL_ENTRY): Remove. - * config/s390/s390.md (UNSPEC_MAIN_BASE): New symbolic constant. - ("main_base_31_small", "main_base_31_large"): New insns. - ("main_base_64", "main_pool"): New insns. - ("literal_pool_31", "literal_pool_64"): Remove. - -2003-08-27 Nathanael Nerode - - * fixinc/inclhack.def (ptx_netswap): New disabled fix, ported from - fixinc.ptx. - * fixinc/inclhack.def (undefine_null): Don't generate \r characters. - Prettify a little. - * fixinc/fixincl.x: Regenerate. - -2003-08-27 Richard Earnshaw - - * lib1funcs.asm (L_ieee754_sp): New. Include ieee754-sf.S. - (L_ieee754_dp): New. Include ieee754-df.S. - * arm/ieee754-sf.S: Rework to allow interworking, calling from Thumb, - and compilation in apcs-26 mode. - * arm/ieee754-df.S: Likewise. - * t-arm-elf (DPBIT, FPBIT, fp-bit.c dp-bit.c): Delete rules - (LIB1ASMFUNCS): Add _ieee754_sp and _ieee754_dp targets. - -2003-08-27 Nicolas Pitre - - * arm/ieee754-sf.S: New. - * arm/ieee754-df.S: New. - -2003-08-27 Jakub Jelinek - - * builtins.c (expand_builtin_expect_jump): Save pending_stack_adjust - and restore it if returning NULL. - -2003-08-27 Richard Sandiford - - * calls.c (initialize_argument_information): If an argument has no - stack space associated with it, and BLOCK_REG_PADDING is defined, - use it to decide at which end the argument should be padded. - * function.c (assign_parms): Allocate BLKmode stack slots. - * config/mips/mips-protos.h (mips_pad_arg_upward): Declare. - (mips_pad_reg_upward): Declare. - * config/mips/mips.h (PAD_VARARGS_DOWN): Use FUNCTION_ARG_PADDING. - (CUMULATIVE_ARGS): Remove num_adjusts and adjusts. - (FUNCTION_ARG_PADDING): Use mips_pad_arg_upward. - (BLOCK_REG_PADDING): Use mips_pad_reg_upward. - * config/mips/mips.c (struct mips_arg_info): Remove struct_p. - (mips_expand_call): Remove code for generating structure shifts. - (mips_arg_info): Don't set struct_p. Don't set fpr_p for non-float - types unless using the EABI. - (function_arg_advance): Don't generate shift instructions. - (function_arg): Don't return them. Don't short-circuit the - check for double structure chunks for DFmode arguments. - (mips_pad_arg_upward, mips_pad_reg_upward): New functions. - (mips_expand_prologue): Remove code to emit structure shifts. - * config/mips/irix6-libc-compat.c: Remove workarounds for buggy - structure passing (inet_ntoa, inet_lnaof, inet_netof). Update - comments to say that only structure returns are a problem. - -2003-08-26 Nathanael Nerode - - * fixinc/tests/base/string.h, fixinc/tests/base/sys/regset.h: - Fix to match produced versions. - * fixinc/inclhack.def (longlong_t): New disabled test, ported - from fixinc.svr4. - * fixinc/inclhack.def (ptx_pwd_h): New disabled fix, ported - from fixinc.ptx. - * fixinc/inclhack.def (ptx_sys_mc_param_h): New disabled fix, - ported from fixinc.ptx. - -2003-08-26 Per Bothner - - * cpplib.h (struct cpp_token): Change type of field line to fileline. - (cpp_error_with_line): Use fileline for appropriate parameter. - * cpphash.h (struct cpp_macro): Change type of field line to fileline. - (struct cpp_reader): Likewise for fields line and directive_line. - (_cpp_begin_message): Use fileline for appropriate parameter. - * cpperror.c (print_location, _cpp_begin_message, cpp_error_with_line, - cpp_error): Use fileline for appropriate parameters and variables. - (print_location): New local lin, since it is not a fileline. - -2003-08-26 Roger Sayle - - PR middle-end/12002 - * tree.h (SCALAR_FLOAT_TYPE_P, COMPLEX_FLOAT_TYPE_P): New macros. - (FLOAT_TYPE_P): Define in terms of these two new macros. - * fold-const.c (fold ): Don't convert x+x into x*2.0 - for complex floating point types. - -2003-08-26 Ulrich Weigand - - * config/s390/s390.c (emit_prologue): Don't check literal pool size. - * config/s390/s390.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY): Call - s390_output_pool_entry. - -2003-08-26 Nathanael Nerode - - * fixinc/inclhack.def (svr4_preproc_lint_on, - svr4_preproc_lint_off, svr4_preproc_machine): New disabled - fixes, ported from fixinc.svr4. - -2003-08-26 Mark Mitchell - - * doc/install.texi (Prerequisites): Mention GNU make requirement. - - * Makefile.in (AR_FOR_TARGET): Export it. - (AR_CREATE_FOR_TARGET): Likewise. - (AR_FLAGS_FOR_TARGET): Likewise. - (AR_EXTRACT_FOR_TARGET): Likewise. - (AWK): Likewise. - (BUILD_PREFIX): Likewise. - (BUILD_PREFIX_1): Likewise. - (DESTDIR): Likewise. - (GCC_FOR_TARGET): Likewise. - (INCLUDES): Likewise. - (INSTALL_DATA): Likewise. - (LIB1ASMSRC): Likewise. - (LIBGCC2_CFLAGS): Likewise. - (MACHMODE_H): Likewise. - (NM_FOR_TARGET): Likewise. - (RANLIB_FOR_TARGET): Likewise. - (libsubdir): Likewise. - (slibdir): Likewise. - (ORDINARY_FLAGS_TO_PASS): Remove stuff that we're - exporting. - (libgcc.a): Don't pass them here. - (stmp-multilib): Or here. - (install-libgcc): Or here. - (install-multilib): Or here. - (POSTSTAGE1_FLAGS_TO_PASS): Or here. - (stage1_build): Or here. - -2003-08-26 Andreas Krebbel - - * config/s390/s390.md ("*llgt_sisi", "*llgt_sisi_split", "*llgt_didi", - "*llgt_didi_split", "*llgt_sidi", "*llgt_sidi_split"): New insns. - -2003-08-26 Andreas Krebbel - - * config/s390/s390.md ("*fmadddf", "*fmsubdf", - "*fmaddsf", "*fmsubsf"): New insns. - -2003-08-26 Roger Sayle - - * fold-const.c (fold ): Optimize (C1/X)*C2 into - (C1*C2)/X when unsafe math optimizations are allowed. - (fold ): Optimize C1/(X*C2) into (C1/C2)/X with unsafe - math optimizations. Minor code clean-ups. Recursively call - fold when constructing sub-expressions. - -2003-08-26 Roger Sayle - - * builtins.c (fold_builtin_bitop): New function to perform constant - folding of ffs, clz, ctz, popcount and parity builtin functions - and their long and long long variants (such as ffsl and ffsll). - (fold_builtin): fold_builtin_bitop when appropriate. - * simplify-rtx.c (simplify_unary_operation): Honor both - CLZ_DEFINED_VALUE_AT_ZERO and CTZ_DEFINED_VALUE_AT_ZERO when - evaluating clz and ctz at compile-time, for operands wider - than HOST_WIDE_INT. - -2003-08-26 Nathan Sidwell - - * builtins.c (build_function_call_expr): Don't set - TREE_SIDE_EFFECTS here. - * expr.c (emit_block_move_via_libcall): Likewise. - (clear_storage_via_libcall): Likewise. - * tree.c (build): Set TREE_SIDE_EFFECTS for non-const, non-pure - CALL_EXPRs. - - * gcse.c (is_too_expensive): New function. - (gcse_main, delete_null_pointer_checks, bypass_jumps): Use it. - -2003-08-25 Zack Weinberg - - * config.gcc (hppa*-*-hpux11*, ia64*-*-hpux*): Remove - commented-out logic to use DCE threads (if present), add - support for POSIX threads. - * config/ia64/hpux.h: Define CPP_SPEC to set appropriate - #defines for -pthread. Add -lpthread to LIB_SPEC when - -pthread. In both cases take -mt as a synonym for -pthread - for acc compatibility. - Define GTHREAD_USE_WEAK to 0. - * config/pa/pa-hpux11.h: Likewise for CPP_SPEC and LIB_SPEC. - Remove old logic for DCE threads from LIB_SPEC. - * config/pa/pa64-hpux.h: Define GTHREAD_USE_WEAK to 0. - -2003-08-25 Roger Sayle - - * builtins.c (expand_builtin_mathfn): Rearrange so that we only - return 0 for invalid argument types. Instead drop through to a - call of expand_call at the bottom of function. If op is SQRT, - try attaching a SQRT rtx as the REQ_EQUAL note of the libcall. - -2003-08-25 Richard Henderson - - * config/ia64/ia64.c (ia64_expand_tls_address): Properly truncate - result when op0 is SImode. - -2003-08-25 Nathanael Nerode - - * fixinc/inclhack.def (svr4_sighandler_type): New fix, ported - from fixinc.svr4. - * fixinc/fixincl.x: Regenerate. - * fixinc/tests/base/sys/signal.h: Regenerate. - -2003-08-25 Ulrich Weigand - - * combine.c (simplify_comparison): Re-enable widening of comparisons - with non-paradoxical subregs of non-REG expressions. - -2003-08-25 Ulrich Weigand - - * combine.c (distribute_notes): Handle REG_ALWAYS_RETURN. - -2003-08-25 Ulrich Weigand - - * combine.c (combine_simplify_rtx): Fix RTL sharing bug. - -2003-08-25 Gabriel Dos Reis - - * pretty-print.h (pp_maybe_newline_and_indent): New macro. - * c-pretty-print.h (c_pretty_printer): Now typedef to the - structure. Be consistent with pretty-print.h abd cxx-pretty-print.h - (struct c_pretty_print_info): Document. Add new fields. - (pp_type_specifier_seq): Rename from pp_c_type_specifier. - (pp_direct_abstract_declarator): New macro. - (pp_ptr_operator): Likewise. - (pp_simple_type_specifier): Likewise. - (pp_expression): Likewise. - (pp_parameter_list): Rename from pp_parameter_declaration. - * c-pretty-print.c (pp_c_whitespace): Now a function. - (pp_c_left_paren): Likewise. - (pp_c_right_paren): Likewise. - (pp_c_dot): Likewise. - (pp_c_ampersand): Likewise. - (pp_c_arrow): Likewise. - (pp_c_semicolon): Likewise. - (pp_c_type_cast): New function. - (pp_c_space_for_pointer_operator): Likewise. - (pp_c_call_argument_list): Likewise. - (pp_c_cv_qualifier): Adjust prototype. - (pp_c_type_qualifier_list): Likewise. - (pp_c_pointer): Likewise. Handle REFERENCE_TYPE here. - (pp_c_type_specifier): Rename from pp_c_simple_type_specifier. - Adjust to follow standard grammar. - (pp_c_specifier_qualifier_list): Adjusr prototype. Handle - REFERENCE_TYPE. Tidy. - (pp_c_parameter_type_list): Adjust prototype. Tidy. - (pp_c_parameter_declaration): Remove. - (pp_c_abstract_declarator): Adjust prototype. - (pp_c_direct_abstract_declarator): Likewise. - (pp_c_type_id): Likewise. - (pp_c_storage_class_specifier): Likewise. - (pp_c_function_specifier): Likewise. - (pp_c_declaration_specifiers): Likewise. - (pp_c_direct_declarator): Likewise. - (pp_c_declarator): Likewise. - (pp_c_declarator): Likewise. - (pp_c_declaration): Likewise. - (pp_c_attributes): Likewise. Tidy. - (pp_c_function_definition): Adjust prototype. - (pp_c_char): Likewise. - (pp_c_string_literal): Likewise. - (pp_c_integer_constant): Likewise. - (pp_c_character_constant): Likewise. - (pp_c_bool_constant): Likewise. - (pp_c_enumeration_constant): Likewise. - (pp_c_floating_constant): Likewise. - (pp_c_constant): Likewise. - (pp_c_identifier): Likewise. - (pp_c_primary_expression): Likewise. Remove TARGET_EXPR case. Tidy. - (pp_c_initializer): Adjust prototype. - (pp_c_init_declarator): Likewise. - (pp_c_initializer_list): Likewise. - (pp_c_id_expression): Likewise. - (pp_c_postfix_expression): Likewise. - (pp_c_expression_list): Likewise. - (pp_c_unary_expression): Likewise. - (pp_c_cast_expression): Likewise. - (pp_c_multiplicative_expression): Likewise. - (pp_c_additive_expression): Likewise. - (pp_c_shift_expression): Likewise. - (pp_c_relational_expression): Likewise. - (pp_c_equality_expression): Likewise. - (pp_c_and_expression): Likewise. - (pp_c_exclusive_or_expression): Likewise. - (pp_c_inclusive_or_expression): Likewise. - (pp_c_logical_and_expression): Likewise. - (pp_c_logical_or_expression): Likewise. - (pp_c_conditional_expression): Likewise. - (pp_c_assignment_expression): Likewise. - (pp_c_expression): Likewise. Tidy. - (pp_c_statement): Likewise. Document. - (pp_c_pretty_printer_init): Adjust prototype. Tidy. - - * c-lang.c (c_initialize_diagnostics): Update. - * c-common.h (strip_pointer_operator): Declare. - * c-common.c (strip_pointer_operator): Define. - -2003-08-25 Mark Mitchell - - PR c++/8795 - * tree.h (build_method_type_directly): Declare. - * c-common.c (handle_vector_size_attributes): Handle METHOD_TYPEs. - (vector_size_helper): Likewise. - * tree.c (build_method_type_directly): New function. - (build_method_type): Use it. - -2003-08-24 Richard Henderson - - * config/i386.i386.c (ix86_return_in_memory): Reformat. Return true - for 16-byte vector modes if sse not enabled; warn for abi change. - (ix86_value_regno): Only return xmm0 for 16-byte vector types. - -2003-08-24 Kazu Hirata - - * rtlanal.c (may_trap_p): Simplify an integer comparison. - -2003-08-24 Nathanael Nerode - - * fixinc/inclhack.def (AAB_svr4_replace_byteorder): Enhance - comment. Enable for DYNIX/ptx systems (when they switch to - regular fixincludes). - * fixinc/fixincl.x: Regenerate. - -2003-08-23 Jason Eckhardt - - * config/i860/t-i860: New. - * config.gcc (i860-*-sysv4*): Add t-i860 to tmake_file. - -2003-08-23 Jakub Jelinek - - * c-decl.c (pushdecl): Only put decls which finish_struct will do - something about onto incomplete chain. - (finish_struct): If not removing type from incomplete - list, update prev. - -2003-08-20 Jan Hubicka - - PR target/11369 - * i386.c (ix86_expand_carry_flag_compare): Validate operand. - - PR target/11031 - * i386.c (const_0_to_3_operand, const_0_to_7_operand, - const_0_to_15_operand, const_0_to_255_operand): New predicates. - * i386.h (PREDICATE_CODES): Add these. - * i386.c (pinsrw and pextrw patterns): Use them. - - PR target/10984 - * i386.c (ix86_expand_binop_builtin): Behave sanely for VOIDmodes. - - PR target/8869 - * expr.c (convert_modes): Deal properly with integer to vector - constant conversion. - - PR target/8871 - * i386.md (zero_extendsidi2*): Add MMX and SSE alternatives. - -2003-08-23 Ulrich Weigand - - * config/s390/s390.h (LOAD_EXTEND_OP): Remove. - * config/s390/s390.md ("movhi"): New expander; old insn renamed to ... - ("*movhi"): ... this. - ("movqi", "*movqi"): Likewise. - ("movqi_64"): Remove. - ("*zero_extendhisi2_31"): Change predicate to s_operand. - -2003-08-23 Dale Johannesen - * calls.c (emit_library_call_value_1): Fix obvious errors in - arguments to emit_group_store. - -2003-08-23 Jason Eckhardt - - * calls.c (emit_library_call_value_1): Remove code related - to LIBGCC_NEEDS_DOUBLE. - * config/stormy16/stormy16.h: Remove mention of LIBGCC_NEEDS_DOUBLE. - * doc/tm.texi: Likewise. - * system.h: Poison the LIBGCC_NEEDS_DOUBLE macro. - -2003-08-23 Richard Sandiford - - * config/mips/linux64.h (STARTFILE_PREFIX_SPEC): Remove. - -2003-08-23 Richard Sandiford - - * config/mips/mips.c (mips_setup_incoming_varargs): Handle o32 and o64 - as well. Put memory references in the varargs alias set. - (mips_expand_prologue): Remove varargs handling from here. - -2003-08-23 Ulrich Weigand - - * config/s390/s390.c (s390_expand_movstr, s390_expand_clrstr, - s390_expand_cmpmem, s390_output_constant_pool, s390_build_va_list, - s390_function_profiler, s390_output_mi_thunk): Use ISO C syntax - for function pointer calls. - * config/s390/s390.md ("*negdi2_31"): Likewise. - -2003-08-23 Roger Sayle - - * combine.c (apply_distributive_law): Correct comment. - -2003-08-23 Jason Eckhardt - - * config/i860/i860.h: Remove comment mentioning LIBGCC_NEEDS_DOUBLE. - -2003-08-22 Jason Eckhardt - - * config/i860/i860.c (i860_build_va_list): Create the va_decl - declaration. Document the va_list structure. - (i860_va_start): Initialize the va_list structure. - (i860_va_arg): Rewrite completely. - * config/i860/i860.h (LIBGCC_NEEDS_DOUBLE): Don't define. - * config/i860/varargs.asm: Do not allocate or initialize - a va_list. Return the address of the register save area. - -2003-08-22 Kazu Hirata - - * config/iq2000/iq2000.c: Fix comment typos. - * config/iq2000/iq2000.md: Likewise. - -2003-08-22 Kazu Hirata - - * config/iq2000/iq2000.c: Follow spelling conventions. - * config/iq2000/iq2000.h: Likewise. - * config/mn10300/mn10300.c: Likewise. - -2003-08-22 Jason Eckhardt - - * config/i860/i860.c (output_move_double): Don't set latehalf - to zero for CONST_INT (since it could be, e.g., -1). - - * config/i860/i860.h (REMSI3_LIBCALL): Replace this macro... - (MODSI3_LIBCALL): ...with this one. - (UREMSI3_LIBCALL): Replace this macro... - (UMODSI3_LIBCALL): ...with this one. - -2003-08-22 Jason Eckhardt - - * config/i860/i860-protos.h (output_delay_insn): Remove prototype. - (output_delayed_branch): Remove prototype. - (single_insn_src_p): Remove prototype. - * config/i860/i860.c (single_insn_src_p): Remove function. - (output_delayed_branch): Remove function. - (output_delay_insn): Remove function. - (va_start): Remove unconditional test and dead code, re-format. - Fix coding style and spelling problems in various comments. - * config/i860/i860.md (UNSPECV_BLOCKAGE): Define constant... - (blockage pattern): ...and use it here. - (all define_peephole patterns related to delayed branches): Remove. - Fix coding style and spelling problems in various comments. - -2003-08-22 Jason Eckhardt - - * config/i860/i860.c: Replace all occurrences of 'GNU CC' with 'GCC'. - Remove all uses of the PARAMS macro. Remove superflous prototypes. - Convert all function definitions from traditional to ISO C90 syntax. - * config/i860/i860-protos.h: Replace all occurrences of 'GNU CC' - with 'GCC'. Remove all uses of the PARAMS macro. - * config/i860/i860.h: Replace all occurrences of 'GNU CC' with 'GCC'. - * config/i860/i860.md: Likewise. - * config/i860/sysv4.h: Likewise. - * config/i860/varargs.asm: Likewise. - -2003-08-22 Jason Eckhardt - - * config/i860/i860-protos.h (i860_va_start): Remove 'stdarg_p' - argument. - (tdesc_section): Add prototype. - Update copyright dates. - * config/i860/i860.c: Include coretypes.h, tm.h, and toplev.h. - (TARGET_ASM_FUNCTION_PROLOGUE): Move definition to end of file. - (TARGET_ASM_FUNCTION_EPILOGUE): Likewise. - (targetm): Likewise. - (i860_output_function_prologue): Substitute HOST_WIDE_INT_PRINT_DEC - for '%d' where necessary. - (i860_va_start): Remove 'stdarg_p' argument. Make conditional checks - on 'stdarg_p' unconditional. Divide current_function_args_info.ints - by UNITS_PER_WORD when referencing (likewise for .floats). - (I860_SVR4_VARARGS): Rename... - (I860_SVR4_VA_LIST): ...to this. - Call build() with 't' rather than 'field'. - (i860_rtx_costs): New function. - (TARGET_RTX_COSTS): Define. - (i860_internal_label): New function. - (TARGET_ASM_INTERNAL_LABEL): Define. - (i860_file_start): New function. - Update copyright dates. - * config/i860/i860.h (CPP_PREDEFINES): Remove. - (TARGET_CPU_CPP_BUILTINS): Define. - (EXPAND_BUILTIN_VA_START): Remove 'stdarg' argument. - (CONST_COSTS): Remove (and move code to i860_rtx_costs). - (ASM_FILE_START): Remove. - (ASM_FILE_START_1): Remove. - (ASM_GLOBALIZE_LABEL): Remove. - (ASM_OUTPUT_INTERNAL_LABEL): Remove. - (ASM_OUTPUT_CASE_LABEL): Replace call of ASM_OUTPUT_INTERNAL_LABEL - with targetm.asm_out.internal_label. - Update copyright dates. - * config/i860/sysv4.h (USER_LABEL_PREFIX): Define. - (CPP_PREDEFINES): Remove. - (TARGET_OS_CPP_BUILTINS): Define. - (GLOBAL_ASM_OP): Define. - (ASM_FILE_START): Remove. - (TARGET_ASM_FILE_START_FILE_DIRECTIVE): Define. - (TARGET_ASM_FILE_START): Define. - Update copyright dates. - -2003-08-22 Jason Eckhardt - - * gcc/config.gcc (i860-*-sysv4*): Add target. - * config/i860/i860-protos.h: New. - * config/i860/i860.c: New. - * config/i860/i860.h: New. - * config/i860/i860.md: New. - * config/i860/sysv4.h: New. - * config/i860/varargs.asm: New. - * config/i860/x-sysv4: New. - -2003-08-22 Jason Eckhardt - - * config/pa/pa.c: Replace 'GNU CC' with 'GCC'. - Remove all uses of PARAMS macro. - Convert all function definitions to ISO C90 syntax. - * config/pa/elf.h: Replace 'GNU CC' with 'GCC'. - * config/pa/fptr.c: Likewise. - * config/pa/lib2funcs.asm: Likewise. - * config/pa/long_double.h: Likewise. - * config/pa/milli64.S: Likewise. - * config/pa/pa-64.h: Likewise. - * config/pa/pa-hpux.h: Likewise. - * config/pa/pa-hpux10.h: Likewise. - * config/pa/pa-hpux11.h: Likewise. - * config/pa/pa-linux.h: Likewise. - * config/pa/pa-modes.def: Likewise. - * config/pa/pa-osf.h: Likewise. - * config/pa/pa-pro-end.h: Likewise. - * config/pa/pa.md: Likewise. - * config/pa/pa32-linux.h: Likewise. - * config/pa/pa64-linux.h: Likewise. - * config/pa/pa64-hpux.h: Likewise. - * config/pa/pa64-regs.h: Likewise. - * config/pa/quadlib.c: Likewise. - * config/pa/rtems.h: Likewise. - * config/pa/pa-protos.h: Replace 'GNU CC' with 'GCC' and remove - all uses of the PARAMS macro. - * config/pa/pa.h: Likewise. - * config/pa/som.h: Likewise. - - * config/iq2000/iq2000.c: Replace 'GNU CC' with 'GCC'. - Remove all uses of PARAMS macro. - Convert all function definitions to ISO C90 syntax. - * config/iq2000-protos.h: Replace 'GNU CC' with 'GCC'. - Remove all uses of PARAMS macro. - * config/iq2000.h: Remove all uses of PARAMS macro. - * config/iq2000/iq2000.md: Replace 'GNU CC' with 'GCC'. - -2003-08-23 Ulrich Weigand - - * config/s390/s390-protos.h (s390_output_pool_entry): Declare. - * config/s390/s390.c (gen_consttable): Remove. - (s390_dump_pool): Use UNSPECV_POOL_ENTRY for pool entry insns. - (s390_output_pool_entry): New function. - * config/s390/s390.md (UNSPECV_POOL_QI, UNSPECV_POOL_HI, - UNSPECV_POOL_SI, UNSPECV_POOL_DI, UNSPECV_POOL_TI, - UNSPECV_POOL_SF, UNSPECV_POOL_DF): Remove, replace by ... - (UNSPECV_POOL_ENTRY): ... this new constant. - ("consttable_qi", "consttable_hi", "consttable_si", "consttable_di", - "consttable_ti", "consttable_sf", "consttable_df"): Remove ... - ("*pool_entry"): ... and replace by this new insn. - ("literal_pool_31"): Do not emit anchor label if pool empty. - - * config/s390/s390.c (struct machine_function): Add save_return_addr_p. - (s390_optimize_prolog): Save RETURN_REGNUM if save_return_addr_p. - (s390_fixup_clobbered_return_reg): Remove. - (s390_reorg): Don't call s390_fixup_clobbered_return_reg. - (s390_return_addr_rtx): Always retrieve return address from save area - slot. Use save_return_addr_p to force slot to be filled. - (s390_emit_prologue): Remove has_hard_reg_initial_val test. - -2003-08-22 Chris Demetriou - - * config/mips/mips.h (MASK_FIX_SB1, TARGET_FIX_SB1): New defines. - (TARGET_SWITCHES): Add -mfix-sb1 and -mno-fix-sb1. - * config/mips/mips.md (divdf3, divsf3, sqrtdf2, sqrtsf2): Work - around SB-1 errata if TARGET_FIX_SB1 is set. - (recip.d insn, recip.s insn, rsqrt.d insn, rsqrt.s insn): Likewise. - * doc/invoke.texi: Document MIPS -mfix-sb1 and -mno-fix-sb1. - -2003-08-22 Roger Sayle - - * hashtable.c (ht_expand): Avoid calculating rehash for the common - case that the first probe hits an empty hash table slot. - -2003-08-22 Mark Mitchell - - * config/ia64/hpux.h (SUPPORTS_INIT_PRIORITY): Define to 0. - -2003-08-22 Mark Mitchell - - * config/ia64/ia64.md (*ptr_extend_plus_1): Rename to ... - (ptr_extend_plus_imm): ... this. - * config/ia64/ia64.c (addp4_optimize_ok): Do not disable addp4 - optimization in C++. - (ia64_output_mi_thunk): Support ILP32 mode. - -2003-08-22 Bernardo Innocenti - - * gcc/config/m68k/m68k.c (m68k_coff_asm_named_section): remove unused - function. - * gcc/config/m68k/m68k.c (-m68k_svr3_asm_out_constructor): likewise. - -2003-08-22 Kazu Hirata - - * config/i386/i386.c (const_int_1_operand): Simplify an - integer comparison. - -2003-08-22 Alan Modra - - * config/fp-bit.c: Specify config/ dir for include of fp-bit.h. - * config/rs6000/ppc64-fp.c: Likewise. - -2003-08-22 Kazu Hirata - - * cfgcleanup.c: Fix comment typos. - * emit-rtl.c: Likewise. - * optabs.c: Likewise. - * ra-build.c: Likewise. - * rtlanal.c: Likewise. - * tree.h: Likewise. - -2003-08-22 Kazu Hirata - - * c-decl.c: Fix comment formatting. - * cfgrtl.c: Likewise. - * combine.c: Likewise. - * convert.c: Likewise. - * dominance.c: Likewise. - * dwarf2out.c: Likewise. - * dwarfout.c: Likewise. - * expmed.c: Likewise. - * fold-const.c: Likewise. - * gcov.c: Likewise. - * genattrtab.c: Likewise. - * ggc-common.c: Likewise. - * mips-tfile.c: Likewise. - * regmove.c: Likewise. - -2003-08-22 Kazu Hirata - - * builtin-attrs.def: Fix comment formatting. - * c-pretty-print.c: Likewise. - * diagnostic.h: Likewise. - * langhooks.h: Likewise. - * recog.c: Likewise. - * simplify-rtx.c: Likewise. - * tree.def: Likewise. - -2003-08-22 Bernardo Innocenti - - * config/m68k/m68k-protos.h: Convert to ISO C90. - * config/m68k/m68k.c: Likewise. - -2003-08-21 Bernardo Innocenti - Paul Dale - Peter Barada - - * config/m68k/m68k.c (m68k_rtx_costs): Adjust mul/div costs for - ColdFire cores. - -2003-08-21 Zack Weinberg - - * Makefile.in (INCLUDES): Remove -I$(srcdir)/config. - * config.gcc (*-*-openbsd): Don't set tm_file. - (alpha*-*-openbsd, arm*-*-coff*, arm*-wince-pe*, - arm-*-pe*, avr-*-*, h8300-*-rtems*, h8300-*-elf*, - h8300-*-*, hppa*-*-osf*, hppa*-*-bsd*, hppa*-*-hpux*, - i370-*-opened*, i370-*-mvs*, i370-*-linux*, i?86-*-openbsd*, - i?86-*-lynxos, i?86-*-nto-qnx*, iq2000*-*-elf*, m68000-hp-hpux*, - m68k-hp-hpux*, m68k-*-aout*, m68k-*-coff*, m68020-*-elf*, - m68k-*-elf*, m68k*-*-netbsd*, m68k*-*-openbsd*, m68k-*-sysv4*, - m68k-*-linux*, m68k-*-rtems*, mcore-*-pe*, mips*-*-netbsd*, - mips*-*-openbsd*, rs6000-*-lynxos*, sh*-*-elf*, sh*-*-ka, - sh-*-rtemself, sparc-*-openbsd*, strongarm-*-pe, vax-*-openbsd*, - xscale-*-coff): Use explicit and complete lists of target headers - to include. Move definitions to tm_defines where appropriate. - (hppa*-*-openbsd*, powerpc-*-openbsd*): Comment out stanza for - not-yet-contributed configuration. - - * config/lynx.h, config/alpha/openbsd.h, config/arm/coff.h - * config/avr/avr.h, config/frv/frv.h, config/h8300/elf.h - * config/i370/linux.h, config/i370/mvs.h, config/i370/oe.h - * config/i386/nto.h, config/iq2000/iq2000.h, - * config/m68k/coff.h, config/m68k/hp310.h, config/m68k/hp320.h - * config/m68k/linux.h, config/m68k/m68k-aout.h - * config/m68k/m68k-none.h, config/m68k/m68kv4.h - * config/m68k/netbsd.h, config/m68k/openbsd.h - * config/m68k/sgs.h, config/mcore/mcore-pe.h, - * config/mips/netbsd.h, config/mips/openbsd.h, config/pa/pa.h, - * config/rs6000/lynx.h, config/sh/embed-elf.h, config/sparc/openbsd.h: - Remove includes of other target config headers, and - definitions of macros moved to tm_defines lists. Add #undefs - where now necessary to prevent redefinition warnings. - - * config/h8300/coff.h: New file split out of... - * config/h8300/elf.h: ...here. - * config/m68k/hp320base.h: New file split out of... - * config/m68k/hp320.h: ...here. - * config/rs6000/lynxbase.h: New file split out of... - * config/rs6000/lynx.h: ...here. - - * config/m68k/hp310g.h, config/m68k/hp320g.h, config/m68k/hpux7.h - * config/m68k/m68k-coff.h, config/mips/openbsd-be.h: Delete file. - - * config/sol2.h: Remove #if 0-ed #include of sys/mman.h. - * config/m68k/m68kelf.h: Remove commented out #include of m68k/sgs.h. - * config/mcore/mcore.h: Don't include hwint.h nor machmode.h. - Remove unnecessary #ifndef. - * config/s390/s390.h: Prefix #include of s390/fixdfdi.h - [under IN_LIBGCC2] with config/. - -2003-08-21 Per Bothner - - * cppfiles.c (stack_file): Correctly pass return_at_eof parameter - to cpp_push_buffer. - * cpplex.c (_cpp_get_fresh_line): Don't buffer->prev - handled - by return_at_eof check. Always call _cpp_pop_buffer at end. - -2003-08-21 Kazu Hirata - - PR target/11805 - * config/h8300/h8300.md (two anonymous patterns): Remove. - -2003-08-21 Richard Sandiford - - * config/mips/mips.h (MUST_PASS_IN_STACK): Remove BLKmode clause. - * config/mips/mips.c (function_arg_pass_by_reference): Never return - true for n32 & n64. - -2003-08-21 Josef Zlomek - - * fold-const.c (fold): Fix bug in (A & C) == D where D & ~C != 0 - and similarly in (A | C) == D where C & ~D != 0. - -2003-08-20 Geoffrey Keating - - PR 8180 - * configure.in: When testing with_libs and with_headers, treat - 'no' as unset. Based on a patch by Dan Kegel . - * configure: Regenerate. - -2003-08-20 Peter Barada - - * longlong.h (umul_ppmm): Add ColdFire support. - -2003-08-20 Peter Barada - Bernardo Innocenti - - * config/m68k/m68k-none.h: Introduce new ColdFire archs. - * config/m68k/m68k.h: Likewise. - * config/m68k/lb1sf68.asm: Rename __mcf5200__ to __mcoldfire__. - * config/m68k/coff.h: Rename TARGET_5200 to TARGET_COLDFIRE. - * config/m68k/linux.h: Likewise. - * config/m68k/m68k.c: Likewise. - * config/m68k/m68k.md: Likewise. - * config/m68k/m68kelf.h: Likewise. - * config/m68k/netbsd-elf.h: Likewise. - * config/m68k/t-m68kelf: Add multilib targets for new ColdFire archs. - -2003-08-20 Bernardo Innocenti - - * config/m68k/m68k.c: Strip away code depending on NO_ADDSUB_Q definition. - * config/m68k/m68k.md: Likewise. - -2003-08-20 Mark Mitchell - - PR java/11996 - Revert this change: - 2003-08-19 Mark Mitchell - * c-common.c (c_common_signed_or_unsigned_type): Correctly handle - types with precisions other than those given by native machine - modes. - -2003-08-20 Gunther Nikl - - * config/m68k/m68k.md (anonymous define_insn): remove obsolete code - selected by FSGLMUL_USE_S and FSGLDIV_USE_S - * config/m68k/m68k.c (output_move_himode): remove SGS_NO_LI check - * config/m68k/m68k.md (anonymous define_insn): Likewise - * config/m68k/m68k.md (anonymous define_insn): remove ISI_OV check - * config/m68k/m68k.c (standard_68881_constant_p): remove obsolete - code selected by NO_ASM_FMOVECR - -2003-08-20 Gunther Nikl - - * config/m68k/m68k.c (output_move_const_into_data_reg, - output_move_himode): unify MOTOROLA/MIT handling of moveq - * config/m68k/m68k.md (movsi_const0, anonymous define_insn): - Likewise - -2003-08-20 Gunther Nikl - - * config/m68k/m68k.c (m68k_output_function_prologue): use %U in - label name - * config/m68k/m68k.c (m68k_output_function_epilogue): replace - HOST_WIDE_INT_PRINT_DEC with %wd - -2003-08-20 Loren James Rittle - - * config/i386/freebsd.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Handle - redefine warning. - -2003-08-20 Roger Sayle - - PR middle-end/11984 - * fold-const.c (fold ): Check for integer constant - operands before calling tree_int_cst_lt when performing associative - transformations. - -2003-08-20 Jason Merrill - - * tree.h (IS_EXPR_CODE_CLASS): Also include 'r' and 's'. - (EXPR_CHECK): Don't check for 'r' or 's' if we're - checking IS_EXPR_CODE_CLASS. - * calls.c (calls_function_1): Likewise. - * fold-const.c (fold): Likewise. - * tree.c (iterative_hash_expr): Likewise. - * tree-inline.c (walk_tree, copy_tree_r): Likewise. - -2003-08-20 Gunther Nikl - - * config/m68k/m68k.c (m68k_output_mi_thunk): delete obsolete code - depending on MOTOROLA_BSR - * config/m68k/m68k.md (anonymous define_insn): Likewise - -2003-08-20 Jason Merrill - - * builtins.c (expand_builtin_mathfn): Use get_callee_fndecl. - (expand_builtin_mathfn2, expand_builtin, builtin_mathfn_code, - fold_trunc_transparent_mathfn, fold_builtin): Likewise. - * dojump.c (do_jump): Likewise. - * fold-const.c (operand_equal_p, fold): Likewise. - (tree_expr_nonnegative_p): Likewise. - - * stor-layout.c (do_type_align): Only copy DECL_USER_ALIGN from - TYPE_USER_ALIGN for FIELD_DECLs. - - * attribs.c (decl_attributes): Rebuild the function pointer type after - changing the target type. - * tree.c (get_qualified_type): Also check that the attributes match. - -2003-08-19 Matt Kraai - - * Makefile.in (STAGESTUFF): Move cc1obj$(exeext) from here ... - * objc/config-lang.in (stagestuff): ... to here. - -2003-08-19 Mark Mitchell - - PR c++/11946 - * convert.c (convert_to_integer): Use CONVERT_EXPR (instead of - NOP_EXPR) when necessary. - * c-common.c (c_common_signed_or_unsigned_type): Correctly handle - types with precisions other than those given by native machine - modes. - -2003-08-19 Geoffrey Keating - - * cpppch.c (cpp_valid_state): Re-add warning about PCH not used - because some macro is defined. - - * config/darwin.h (LINK_COMMAND_SPEC): Add -arch and -arch_only - options. - * config/i386/darwin.h (ASM_SPEC): New. - (SUBTARGET_EXTRA_SPECS): New. - * config/rs6000/darwin.h (ASM_SPEC): New. - (SUBTARGET_EXTRA_SPECS): New. - * configure.in: Don't set CROSS or SYSTEM_HEADER_DIR when building - a cross-compiler between two different processors on Darwin. - * configure: Regenerate. - -2003-08-19 Kazu Hirata - - * builtins.c: Fix comment typos. - * c-common.c: Likewise. - * c-decl.c: Likewise. - * c-pretty-print.c: Likewise. - * cfgbuild.c: Likewise. - * cfglayout.c: Likewise. - * cfgloopanal.c: Likewise. - * cgraphunit.c: Likewise. - * cppfiles.c: Likewise. - * dwarfout.c: Likewise. - * expr.c: Likewise. - * fold-const.c: Likewise. - * gcse.c: Likewise. - * ggc-page.c: Likewise. - * haifa-sched.c: Likewise. - * pretty-print.c: Likewise. - * tree.c: Likewise. - * tree.h: Likewise. - * value-prof.c: Likewise. - -2003-08-19 Kazu Hirata - - * c-decl.c: Follow spelling conventions. - * cppfiles.c: Likewise. - -2003-08-19 Kazu Hirata - - * c-common.c: Fix comment formatting. - * c-common.h: Likewise. - * c-decl.c: Likewise. - * cppinit.c: Likewise. - * cpplib.h: Likewise. - * emit-rtl.c: Likewise. - * input.h: Likewise. - * line-map.h: Likewise. - * opts.c: Likewise. - * opts.h: Likewise. - * simplify-rtx.c: Likewise. - -2003-08-19 Daniel Jacobowitz - - * unwind-c.c: Add libgcc-style exception. - * unwind-dw2.c: Likewise. - * unwind-pe.h: Likewise. - * unwind-sjlj.c: Likewise. - * unwind.inc: Likewise. - -2003-08-19 Andrew Pinski - - PR c/5582 PR c++/10538 - * langhooks-def.h (lhd_decl_uninit): Declare. - (LANG_HOOKS_DECL_UNINIT): New macro. - (LANG_HOOKS_INITIALIZER): Adjust. - * langhooks.h (struct lang_hooks): Add new field - decl_uninit. - * langhooks.c (lhd_decl_uninit): Define. - * c-common.c (c_decl_uninit_1): New function. - (c_decl_uninit): New function. - (warn_init_self): Define. - * c-common.h (c_decl_uninit): Declare. - (warn_init_self): Declare. - * c.opt: Introduce -Winit-self. - * c-opts.c (c_common_handle_options): Set warn_init_self. - * c-lang.c (LANG_HOOKS_DECL_UNINIT): Define. - * objc/objc-lang.c (LANG_HOOKS_DECL_UNINIT): Define. - * function.c (uninitialized_vars_warning): Call the language hook. - * doc/invoke.texi: Document -Winit-self. - -2003-08-19 Chris Demetriou - - * config/mips/mips.md: Adjust SI-mode "trap_if" instruction - to use better predicates and constraints. Define new - instruction to handle "trap_if" with DI-mode arguments. - (conditional_trap): FAIL if trap code is not 0. - -2003-08-19 Andrew Pinski - - * config/i386/i386.c (legitimate_pic_address_disp_p): Change the - strstr with $pb to a strcompare with "" - (ix86_output_addr_diff_elt): Output the real pic base. - -2003-08-19 Gabriel Dos Reis - - * langhooks-def.h (LANG_HOOKS_INITIALIZE_DIAGNOSTICS): Fix spelling. - (LANG_HOOKS_INITIALIZER): Correct. - * c-lang.c: Likewise. - -2003-08-19 Jan Hubicka - - * cgraph.c (cgraph_mark_needed_node): Call notice_global_symbol. - (cgraph_varpool_mark_needed_node): Likewise. - * cgraph.h (notice_global_symbol): Declare - * varasm.c (notice_global_symbol): Break out from ... - (assemble_start_function): ... here; update for variables. - (assemble_variable): Use notice_global_symbol. - -2003-08-19 Richard Sandiford - - * config/mips/mips.c (mips_va_arg): If EABI_FLOAT_VARARGS_P, - expect SFmode and DFmode arguments to be passed in FPRs, - regardless of the underlying type. - -2003-08-19 Richard Sandiford - - PR target/11924 - * config/mips/mips.c (INTERNAL_SYMBOL_P): New macro. - (mips_classify_symbol, m16_usym8_4, m16_usym5_4): Use it. - -2003-08-18 Matt Kraai - - PR c/11207 - * c-typeck.c (set_init_index): Check for negative index. - -2003-08-18 Bob Wilson - - * config/xtensa/crti.asm (_init, _fini): Add alternate code for new - call0 ABI. - * config/xtensa/crtn.asm (_init, _fini): Likewise. - * config/xtensa/lib1funcs.asm (__mulsi3, __udivsi3, __divsi3, - __umodsi3, __modsi3): Likewise. - * config/xtensa/t-xtensa (crti.o, crtn.o): Add $(GCC_CFLAGS) and - $(INCLUDES). - -2003-08-18 Aldy Hernandez - - * config/rs6000/spe.md ("*nabssf2_gpr"): New. - -2003-08-18 Richard Sandiford - - * config/mips/mips.md: Quote C code in braces. Remove use of - fake const0_rtx operands. Remove double backslashes. Use \;. - Remove workarounds for bogus warnings. - -2003-08-18 Richard Sandiford - - * config/mips/mips.md (muldf3, mulsf3): Don't call a gen_* function. - (muldf3_internal, muldf3_r4300): Select based on TARGET_4300_MUL_FIX - rather than TARGET_MIPS4300. - (mulsf3_internal, mulsf3_r4300): Likewise. - -2003-08-18 Richard Sandiford - - * config/mips/mips.md: Renumber unspecs. Clean up comments. - -2003-08-17 Roger Sayle - - * simplify-rtx.c (associative_constant_p): New function to test - whether an RTX expression is an immediate constant. - (simplify_associative_operation): New function to perform some - reassociation optimizations of associative binary expressions. - (simplify_binary_operation): Use simplify_associative_operation - to simplify PLUS, MULT, AND, IOR, XOR, SMIN, SMAX, UMIN and UMAX. - Floating point expressions are only reassociated when unsafe - math optimizations are permitted. - -2003-08-17 Andreas Jaeger - - * config/alpha/alpha.md: Remove usage of PARAMS. - - * config/i386/cygwin.h: Convert K&R prototypes to ISO C90. - * config/i386/i386-interix.h: Likewise. - * config/i386/winnt.c: Likewise. - * config/i386/cygming.h: Likewise. - * config/i386/cygwin2.c: Likewise. - * config/darwin.c: Likewise. - * config/darwin-c.c: Likewise. - * config/darwin-protos.h: Likewise. - * config/darwin.h: Likewise. - * config/s390/s390-protos.h: Likewise. - * config/s390/s390.c: Likewise. - * config/ia64/ia64.c: Likewse - * config/ia64/ia64-protos.h: Likewise. - * config/ia64/ia64-c.c: Likewise. - -2003-08-16 Kaveh R. Ghazi - - * config/sparc/sparc.c: Convert to ISO C. - - * config/sparc/sparc-protos.h: Don't use the PARAMS macro. - * config/sparc/sparc.c: Likewise. - -2003-08-16 Nathan Sidwell - - PR c++/11512 - * stmt.c (expand_expr_stmt_value): Don't warn about any void - typed expression. - -2003-08-16 Jan Hubicka - - * i386.c (ix86_fntype_regparm): Rename from ... - (ix86_function_regparm): ... this one; add fastcall and local - functions. - (ix86_function_ok_for_sibcall): Update. - (ix86_return_pops_args): Likewise. - (init_cumulative_args): Likewise. - (x86_can_output_mi_thunk): Likewise. - (function_arg): Fix formating. - (x86_this_parameter): Fix fastcall. - (x86_output_mi_thunk): Likewise. - - * cgraph.c (cgraph_mark_needed_node): Do not mark functions without - body as reachable; mark nested functions as needed too. - (dump_cgraph): Do not output global.calls. - * cgraph.h (cgraph_global_info): Kill. - * cgraphunit.c (cgraph_finalize_function): Enqueue needed functions. - (record_call_1): Speedup. - (cgraph_analyze_function): Break out from ...; compute inlining - parameters. - (cgraph_finalize_compilation_unit): ... here. - (cgraph_mark_inline): Kill computation of calls. - (cgraph_decide_inlining): Do not compute most of initial values. - -2003-08-14 Roger Sayle - - * fold-const.c (negate_expr_p): MULT_EXPRs and RDIV_EXPRs are easy - to negate if either operand is easy to negate, if we don't care - about sign-dependent rounding. - (negate_expr): Make the logic to negate a REAL_CST explicit. - Attempt to negate a MULT_EXPR or RDIV_EXPR by negating an operand - that's easy to negate, if we don't honor sign-dependent rounding. - (fold ): Optimize -A * B as A * -B if B is easy to - negate, and the symmetric A * -B as -A * B if A is easy to negate. - (fold ): Likewise, optimize -A/B and C/-D as A/-B and - -C/D if B and C are cheap to negate. Add an explicit rule to - optimize X/-1.0 as -X when we don't care about signaling NaNs. - -2003-08-14 Zack Weinberg - - * Makefile.in (tm_file): Rename tm_include_list. - (tm_p_file): Rename tm_p_include_list. - (build_xm_file): Rename build_xm_include_list. - (host_xm_file): Rename host_xm_include_list. - (xm_file): Rename xm_include_list. - (xm_file_list): Add to be substituted. - (cs-config.h, cs-bconfig.h, cs-tconfig.h, cs-tm.h, cs-tm_p.h): - Update to match. - (bt-load.o): Add missing dependency on $(TM_H). - * configure.in: Prefix value of EXTRA_MODES_FILE with config/. - For each of tm_file, tm_p_file, xm_file, host_xm_file, and - build_xm_file, generate both *_file_list and *_include_list - values from it. (xm_file_list was formerly not being generated.) - In *_include_list, prefix the names of all headers found in - $(srcdir)/config with config/. In each loop, consider only - the special case files that can actually appear in that list. - AC_SUBST all *_file_list and all *_include_list variables; do - not AC_SUBST the plain *_file variables. - * configure: Regenerate. - -2003-08-14 Zdenek Dvorak - - * cfg.c (dump_edge_info): Add name of loop_exit edge flag. - -2003-08-14 John David Anglin - - * pa.c (pa_adjust_insn_length): Delete adjustment for delay slot in - direct calls. - (attr_length_call): Include it here. Improve length estimate for - local calls. - (output_call): Use targetm.binds_local_p. - -2003-08-14 Kaveh R. Ghazi - - * builtins.c (CASE_MATHFN): New helper macro. - (mathfn_built_in): Simplify and sort. - - * protoize.c (substr): Delete, callers changed to `strstr'. - -2003-08-13 Zack Weinberg - - * config.gcc (iq2000*-*-elf*): Don't set xm_file. - * config/iq2000/xm-iq2000.h: Delete file. - -2003-08-13 Geoffrey Keating - - * gengtype.c (walk_type): Process a subobject before processing - the pointer that points to the subobject. - -2003-08-13 Per Bothner - - * regclass.c (init_reg_modes): Make non-static. - Rename to init_reg_modes_once per new naming convention. - (init_regs): Don't call init_reg_modes here. - * emit-rtl.c (init_emit_once): Call init_reg_modes_once here instead. - * rtl.h (init_reg_modes_once): New declaration. - * toplev.c (backend_init): Call init_regs after init_emit_once. - -2003-08-13 Kaz Kojima - - * config/sh/linux.h (DBX_REGISTER_NUMBER): Define so to map a - special index for MD_FALLBACK_FRAME_STATE_FOR to itself. - -2003-08-13 J"orn Rennecke - - * sh.c (sh_get_pr_initial_val): Always wrap in unspec for TARGET_SH1. - * sh.md (load_ra): Change insn predicate to TARGET_SH1. - -2003-08-13 Dale Johannesen - - * config/rs6000/rs6000.md (ctrsi, ctrdi): Reenable - handling of decrement-and-branch farther than 32 bits. - -2003-08-12 Kelley Cook - - * configure.in (make_compare_target): Move test to ... - * aclocal.m4 (gcc_AC_PROG_CMP_IGNORE_INITIAL): here. - * configure: Regenerate. - -2003-08-12 Richard Sandiford - - * config/mips/iris6.h: Convert to C90 prototypes. - * config/mips/irix6-libc-compat.c: Likewise. - * config/mips/mips-protos.h: Likewise. - * config/mips/mips.c: Likewise. - -2003-08-12 Nathanael Nerode - - fixinc/inclhack.def (svr4_krnl): Rename from svr4_kernel. Enable - for selected machines. Comment heavily. - fixinc/fixincl.x: Rebuild. - fixinc/tests/base/fs/rfs/rf_cache.h: New file. - -2003-08-12 Richard Sandiford - - * config/mips/mips.h: Tweak various comments. - * config/mips/mips.c: Likewise. - -2003-08-11 James E Wilson - - PR optimization/11319 - PR target/10021 - * alias.c (find_base_value, case REG): Return 0 not src if no base - found. - -2003-08-11 Kaveh R. Ghazi - - * gcse.c (gmalloc): Fix last change. - -2003-08-11 Roger Sayle - - * simplify-rtx.c (simplify_binary_operation): Replace calls to - gen_rtx_NEG and gen_rtx_NOT with calls to simplify_gen_unary, - and calls to gen_rtx_PLUS, gen_rtx_MULT, gen_rtx_LSHIFTRT, - gen_rtx_ASHIFT and gen_rtx_AND with calls to simplify_gen_binary. - -2003-08-11 Roger Sayle - - * expr.c (expand_expr): If an ABS_EXPR has a complex type, abort. - * c-typeck.c (build_unary_op): COMPLEX_TYPE is not a valid - typecode for an ABS_EXPR. - - * doc/c-tree.texi: Document ABS_EXPR. - -2003-08-11 Roger Sayle - - * fold-const.c (fold): Optimize any associative floating point - operator with -funsafe-math-optimizations, not just MULT_EXPR. - -2003-08-11 Kaz Kojima - - * config/sh/lib1funcs.asm (__udivdi3): Add .type and .size - information in SHmedia case too. - (__divdi3, __umoddi3, __moddi3, __init_trampoline, __ic_invalidate): - Likewise. - (__set_fpscr): Use an access via GOT for PIC case. - -2003-08-11 Kelley Cook - - * configure.in (intermodule): Make switch test more portable. - * configure: Regenerate. - -2003-08-11 Kelley Cook - - * Makefile.in (cleanstrap): Pass BOOT_CFLAGS to bootstrap. - (restrap): Likewise. - -2003-08-11 Kaveh R. Ghazi - - * gcse.c (gmalloc): Argument is a size_t. Add ATTRIBUTE_MALLOC. - (grealloc): Size argument is a size_t. - (gcalloc): New function. Use throughout in lieu of - gmalloc/memset. - - * config/avr/avr.c (avr_init_once): Use xcalloc in lieu of - xmalloc/memset. - * config/ia64/ia64.c (ia64_reorg): Likewise. - * conflict.c (conflict_graph_new): Likewise. - * fixinc/fixincl.c (run_compiles): Likewise. - * genattrtab.c (optimize_attrs): Likewise. - * genrecog.c (new_decision): Likewise. - * haifa-sched.c (schedule_block): Likewise. - * hashtable.c (ht_create): Likewise. - -2003-08-11 Bob Wilson - - * config/xtensa/lib2funcs.S: Fix whitespace. - * config/xtensa/xtensa.md (all insns and expanders): Use brace block - syntax where appropriate. Remove unnecessary backslash escapes. - Reformat comments and fix some code formatting. - (extendqisi2): Rearrange conditional. - (*btrue, *bfalse, *ubtrue, *ubfalse, *bittrue, *bitfalse, *masktrue, - *maskfalse, movsicc_internal0, movsfcc_internal0): Call abort instead - of fatal_insn. - -2003-08-11 Richard Sandiford - - * config/mips/mips.c: Various formatting fixes. - (override_options): Resync -mtune handling with gas. - (mips_issue_rate): Rearrange like mips_use_dfa_pipeline_interface. - * config/mips/mips.h: More formatting fixes. - (mips_abi): Move declaration. - * config/mips/mips.md (exception_receiver): Add mode to - unspec_volatile. - -2003-08-11 Aldy Hernandez - - * config/rs6000/rs6000.c (spe_init_builtins): Handle evsplati and - evsplatfi here. - (bdesc_1arg): Remove evsplati and evsplatfi. - -2003-08-11 J"orn Rennecke - - * dwarf2asm.c (dw2_output_indirect_constant_1): Take user_label_prefix - into account. - -2003-08-10 Kaveh R. Ghazi - - * builtins.c (expand_builtin_strcat): Optimize constant strings. - -2003-08-10 Gabriel Dos Reis - - * pretty-print.c (pp_base_indent): Rename from pp_indent. - * c-pretty-print.h (pp_c_pretty_print_flag)s: New datatype. - (struct c_pretty_print_info): Add more fields. - (pp_c_left_paren): Move to c-pretty-print.c. - (pp_c_right_paren): Likewise. - (pp_c_left_brace): Likewise. - (pp_c_right_brace): Likewise. - (pp_c_left_bracket): Likewise. - (pp_c_right_bracket): Likewise. - (pp_c_declarator): Declare. - (pp_c_direct_declarator): Likewise. - (pp_c_specifier_qualifier_list): Likewise. - (pp_c_type_id): Likewise. - * c-pretty-print.c (pp_c_cv_qualifier): Change prootype. Rework.. - (pp_c_type_qualifier_list): New. - (pp_c_pointer): Likewise. - (pp_c_parameter_type_list): Likewise. - (pp_c_function_definition): Likewise. - (pp_c_id_expression): Likewise. - (pp_c_simple_type_specifier): Tidy. - (pp_c_unary_expression): Likewise. - (pp_c_expression): Likewise. - (pp_c_pretty_printer_init): Likewise. - (pp_c_specifier_qualifier_list): Rework.. - (pp_c_abstract_declarator): Likewise. - (pp_c_postfix_expression): Likewise. - (pp_c_primary_expression): Likewise. - (pp_c_cast_expression): Likewise. - (pp_c_direct_abstract_declarator): Likewise. - (pp_c_storage_class_specifier): Likewise. - (pp_c_function_specifier): Likewise. - (pp_c_declaration_specifiers): Likewise. - (pp_c_direct_declarator): Likewise. - (pp_c_declarator): Likewise. - (pp_c_declaration): Likewise. - (pp_c_statement): Likewise. - (pp_c_integer_constant): Rename from pp_c_integer_literal. - (pp_c_character_constant): Rename from pp_c_character_literal. - (pp_c_bool_constant): Rename from pp_c_bool_literal. - (pp_c_enumeration_constant): Rename from pp_c_enumerator. - (pp_c_floating_constant): Rename from pp_c_real_literal. - (pp_c_constant): Rename from pp_c_literal. - * c-lang.c: Include diagnostic.h and c-pretty-print.h - (LANG_HOOKS_INITIALIZE_DIAGNOSTITCS): Define. - (c_initialize_diagnostics): New. - * Makefile.in (c-lang.o): Update dependency. - -2003-08-10 Nathan Sidwell - - * c-typeck.c (digest_init): Add conversion for VECTOR_TYPEs. - -2003-08-10 Richard Sandiford - - * config/mips/mips.c (mips_no_mips16_string): Remove. - (override_options): Don't handle -mips16 as part of -mipsN. - * config/mips/mips.h (mips_no_mips16_string): Remove declaration. - (TARGET_SWITCHES): Add -mips16 and -mno-mips16 entries. - (TARGET_OPTIONS): Remove -mno-mips16. - -2003-08-10 Richard Sandiford - - * config/mips/mips-protos.h (coprocessor_operand): Remove declaration. - (coprocessor2_operand): Likewise. - * config/mips/mips.c (STAB_CODE_TYPE): Remove. - (lookup_name): Remove declaration. - (abort_with_insn): Remove. Replace all uses with fatal_insn. - (mips16, mips_abicalls): Remove. - (mips_char_to_class): Remove initialiser: all entries are NO_REGS. - (arith32_operand, large_int, true_reg_or_0_operand): Remove. - (coprocessor_operand, coprocessor2_operand): Remove. - (override_options): Don't set mips16 or mips_abicalls. - (print_operand): Don't expect SIGN_EXTEND operands. - (mips_secondary_reload_class): Likewise. - (mips_output_conditional_branch): Remove disabled long-branch code. - * config/mips/mips.h (call_used_regs): Remove declaration. - (may_call_alloca): Likewise. - (mips_cpu_attr, mips_abicalls_type, mips_abicalls_attr): Remove. - (mips_abicalls, mips16): Remove declarations. - (ASM_FINAL_SPEC, LIB_SPEC): Remove. - (CC1_SPEC): Remove outdated comment. - (MIPS_VERSION, MACHINE_TYPE): Remove. - (TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove. - (PC_REGNUM, STACK_POINTER_OFFSET): Remove disabled definitions. - (STRUCT_VALUE_RETURN_REGNUM, STACK_DYNAMIC_OFFSET): Likewise. - (PUSH_ROUNDING): Likewise. - (ASSEMBLER_SCRATCH_REGNUM): Remove. - * config/mips/mips.md: Replace mips_cpu_attr with mips_tune - and mips16 with TARGET_MIPS16. - -2003-08-09 Per Bothner - - * cppinit.c (cpp_read_main_file): Split out source-independent - initialization to separate function ... - (cpp_post_options): New function. - * cppfiles.c (cpp_stack_file): Rename public name to ... - (_cpp_stack_file): New internal function name. - * cpplib.h: Update accordingly. - * cppinit.c: (cpp_create_reader): Initialize cpp_readers line here. - (cpp_read_main_file): Don't initialize line here. - * c-opts.c (c_common_post_options): Call cpp_post_options. - (c_common_parse_file): Call cpp_read_main_file, not cpp_stack_file. - * fix-header.c (read_scan_file): Call cpp_post_options. - -2003-08-09 Per Bothner - - * c-decl.c (SCOPE_LIST_APPEND): Remove bogus line continuation. - -2003-08-09 John David Anglin - - * pa.c (pa_asm_output_mi_thunk): Fix typo. - -2003-08-09 Neil Booth - - PR preprocessor/11839 - * cppfiles.c (open_file): Handle ENOTDIR. - -2003-08-09 Richard Sandiford - - PR target/11699 - * config/mips/mips.c (override_options): Reject -mabi=eabi -mabicalls. - -2003-08-08 John David Anglin - - * pa.md (extzv, extv, insv): Fix operand limit checks. Fail if - source/destination is not a register operand. - -2003-08-08 Richard Henderson - - PR target/11535 - * config/ia64/ia64.c (ia64_initial_elimination_offset): Remove - RETURN_ADDRESS_POINTER_REGNUM. - (ia64_expand_prologue): Don't frob it. - (ia64_output_function_epilogue): Likewise. - (ia64_return_addr_rtx): New. - (ia64_split_return_addr_rtx): New. - * config/ia64/ia64-protos.h: Update. - * config/ia64/ia64.h (FIRST_PSEUDO_REGISTER): Decrement. - (RETURN_ADDRESS_POINTER_REGNUM): Remove. - (GENERAL_REGNO_P): Don't check it. - (AR_*_REGNUM): Renumber. - (FIXED_REGISTERS): Remove RETURN_ADDRESS_POINTER_REGNUM. - (CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS): Likewise. - (REG_ALLOC_ORDER, REG_CLASS_CONTENTS): Likewise. - (ELIMINABLE_REGS, REGISTER_NAMES): Likewise. - (RETURN_ADDR_RTX): Use ia64_return_addr_rtx. - * config/ia64/ia64.md (UNSPEC_RET_ADDR): New. - (movdi_ret_addr): New. - -2003-08-08 Geoffrey Keating - - * config.gcc (powerpc-*-darwin*): Don't build a soft-float multilib. - -2003-08-08 Roger Sayle - - * tree.h (get_identifier) Define a macro form of get_identifier - that calls get_identifier_with_length when the string is constant. - (get_identifier_with_length): Change type of second argument to - size_t in prototype. - * stringpool.c (get_identifier): Undefine the macro before giving - the function definition. - (get_identifier_with_length): Change type of second argument to - size_t in function definition. - * hashtable.c (calc_hash): Change type of second argument to size_t. - (ht_lookup): Change type of third argument to size_t. Reorganize - to speed-up the cases where the hash table slot is empty, or the - first probe matches (i.e. there isn't a collision). - * hashtable.h (ht_lookup): Adjust function prototype. - -2003-08-08 Bernardo Innocenti - - PR target/9697 - PR target/11777 - * longlong.h (count_leading_zeros): Exclude on __mcpu32__. - -2003-08-08 Neil Booth - - * common.opt: Add debug switches. - * flags.h (use_gnu_debug_info_extensions): Boolify. - * opts.c (write_symbols, debug_info_level, - use_gnu_debug_info_extensions): Move from toplev.c. - (set_debug_level): New. - (common_handle_options): Handle debug switches. - (print_help): Display target options directly. - * toplev.c (debug_hooks): Don't initialize. - (write_symbols, debug_info_level, - use_gnu_debug_info_extensions): Move to opts.c. - (debug_args, display_help, decode_g_option): Remove. - (process_options): Set no debug if level zero here, - and no-debug-hooks. Error here if impossible debug format selected. - * toplev.h (display_help, decode_g_option): Remove. - -2003-08-08 Richard Sandiford - - * tree.c (get_file_function_name_long): Fix size of alloca() area. - -2003-08-08 Kelley Cook - - * configure.in (gcc_cv_prog_cmp_skip): Flipflop make_compare_target - and gcc_cv_prog_cmp_skip. - * configure: Regenerate. - -2003-08-08 Stan Cox - - * config/iq2000: New port. - * config.gcc (iq2000-*-elf): Added. - * doc/install.texi (Specific): Add iq2000 description. - -2003-08-08 Andreas Schwab - - * configure.in (gcc_cv_as_ia64_ltoffx_ldxmov_relocs): Fix quoting - and insert missing empty argument. - * configure: Regenerate. - -2003-08-07 John David Anglin - - * pa.c (update_total_code_bytes): Use new macro IN_NAMED_SECTION_P. - (attr_length_millicode_call): Likewise. - (attr_length_call): Likewise. Revise some maximum insn lengths. - (attr_length_indirect_call): Likewise. - (output_call): Fix thinko that added extra nop. - * pa.h (IN_NAMED_SECTION_P): Define. - - PR c++/11712 - * pa-hpux.h, pa-hpux10.h, pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Define - __STDC_EXT__ when using C++ dialect. - -2003-08-07 J"orn Rennecke - - * sh.c (calc_live_regs): If the return address pointer is live, - force pr live. - (sh5_schedule_saves): Exclude PR_MEDIA_REG from being a temp register - for saves / restores. - (sh_expand_epilogue): If sh_media_register_for_return returns a - register number, flag the instructions that restores PR_MEDIA_REG - as possibly dead. - Remove dead update of offset. - (sh_get_pr_initial_val): Use UNSPEC_RA if we don't know yet if - we can use the result of get_hard_reg_initial_val. - * sh.md (UNSPEC_RA): New constant. - (movsi_i_lowpart+1): Changed into a define_insn_and_split, named: - (load_ra). Handle UNSPEC_RA. - (sibcall_media): Use PR_MEDIA_REG. - - * sh.h (CALL_USED_REGISTERS): Include PR_REG and PR_MEDIA_REG. - * sh.c (calc_live_regs): Use sh_pr_n_sets to determine if pr - needs saving on SHmedia. - -2003-08-07 Ulrich Weigand - - * config/s390/s390.md: Replace all occurrences of \\t with \t. - -2003-08-07 Richard Sandiford - - * local-alloc.c (combine_regs): Fix comment typo. - -2003-08-06 Zack Weinberg - - * c-decl.c (builtin_decls): Replace with first_builtin_decl - and last_builtin_decl. - (c_init_decl_processing): Initialize both. - (c_reset_state): Iterate from first_builtin_decl to - last_builtin_decl inclusive to reintroduce builtins. - -2003-08-06 David Mosberger - - * doc/extend.texi (Function Attributes): Document the IA-64 version - of the "model" attribute. - - * config/ia64/ia64.h (SYMBOL_FLAG_SMALL_ADDR): New macro. - (SYMBOL_REF_SMALL_ADDR_P): Ditto. - (PREDICATE_CODES): Mention "small_addr_symbolic_operand". - - * config/ia64/ia64.c (ia64_handle_model_attribute): New function. - (ia64_encode_section_info): Likewise. - (ia64_attribute_table): Add "model" attribute. - (TARGET_ENCODE_SECTION_INFO): Define. - (small_addr_symbolic_operand): New function. - (got_symbolic_operand): Return 0 for a symbolref to an object - in the small address area. - (enum ia64_addr_area): New type. - (small_ident1): New variable. - (small_ident2): Likewise. - (init_idents): New function. - (ia64_get_addr_area): Likewise. - (ia64_encode_addr_area): Likewise. - (ia64_encode_section_info): Likewise. - (ia64_expand_load_address): For symbolic references to objects in - the small-address-area, load the address via gen_rtx_SET() (which, - eventually, will expand into "addl"). - -2003-08-06 Per Bothner - - * line-map.h (fileline): New typedef. - (struct line_map, linemap_add, linemap_lookup): Use it. - * input.h (struct location_s): Comment notes that long-term we want - to replace it by fileline. - -2003-08-06 J"orn Rennecke - - Fix SHcompact exception handling: - * sh.c (sh_get_pr_initial_val): If PR is or miight be clobbered - by the prologue, return a MEM with return_address_pointer_rtx - as address. - * sh.h (HARD_REGNO_MODE_OK): PR is OK for SImode. - (RETURN_ADDR_OFFSET): Don't define. - (SH_DBX_REGISTER_NUMBER): Use SHmedia numbers for SHmedia - registers that are visible in compact mode. Show that SHmedia - registers still exist in compact mode, even if there are not - readily accessible. - (ASM_PREFERRED_EH_DATA_FORMAT): Supply DW_EH_PE_indirect - if GLOBAL. Use DW_EH_PE_textrel (nominally) for CODE, - and DW_EH_PE_pcrel for pic data. - (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): If DW_EH_PE_textrel, - set SYMBOL_FLAG_FUNCTION in symbol, and actually use - DW_EH_PE_pcrel / DW_EH_PE_absptr encoding. - (ALLOCATE_INITIAL_VALUE): Put PR on stack if prologue clobbers it. - * sh.md (movsi_media-1): New splitter. - -2003-08-06 Graeme Peterson - - * config/i386/nto.h: New. - * config/i386/t-nto: New. - * config.gcc (i[34567]86-*-nto-qnx*): New. - -2003-08-06 Phil Edwards - - * doc/install.texi (*-*-solaris2*): Refine configure instructions. - -2003-08-06 Alan Modra - - * calls.c (load_register_parameters): Arrange for call_fusage to - report the whole register as used when shifting to the msb. - -2003-08-05 Roger Sayle - - * builtins.c (expand_builtin): When not optimizing, call the library - function for all builtins that have library functions (except alloca). - -2003-08-05 Alexandre Oliva - - * c.opt: Introduce -fworking-directory. - * doc/cpp.texi, doc/invoke.texi, doc/cppopts.texi: Document it. - * c-common.h (flag_working_directory): Declare. - * c-common.c (flag_working_directory): Define. - * c-opts.c (c_common_handle_options): Set it. - (sanitize_cpp_opts): Set... - * cpplib.h (struct cpp_options): ... working_directory option. - (struct cpp_callbacks): Add dir_change. - * cppinit.c (read_original_filename): Call... - (read_original_directory): New. Look for # 1 "directory//" - and process it. - (cpp_read_main_file): Call dir_change callback if working_directory - option is set. - * gcc.c (cpp_unique_options): Pass -g*. - * c-lex.c (cb_dir_change): New. - (init_c_lex): Set dir_change callback. - * toplev.c (src_pwd): New static variable. - (set_src_pwd, get_src_pwd): New functions. - * toplev.h (get_src_pwd, set_src_pwd): Declare. - * dbxout.c (dbxout_init): Call get_src_pwd() instead of getpwd(). - * dwarf2out.c (gen_compile_unit_die): Likewise. - * dwarfout.c (output_compile_unit_die, dwarfout_init): Likewise. - -2003-08-05 Gabriel Dos Reis - - * pretty-print.h (pp_set_line_maximum_length): Make macro. - (pp_set_prefix): Likewise. - (pp_destroy_prefix): Likewise. - (pp_remaining_character_count_for_line): Likewise. - (pp_clear_output_area): Likewise. - (pp_formatted_text): Likewise. - (pp_last_position_in_text): Likewise. - (pp_emit_prefix): Likewise. - (pp_append_text): Likewise. - (pp_flush): Likewise. - (pp_format_text): Likewise. - (pp_format_verbatim): Likewise. - (pp_tree_identifier): Tidy. - * pretty-print.c (pp_base_format_text): Rename from pp_format_text. - (pp_base_format_verbatim): Rename from pp_format_verbatim. - (pp_base_flush): Rename from pp_flush. - (pp_base_set_line_maximum_length): Rename from - pp_set_line_maximum_length. - (pp_base_clear_output_area): Rename from pp_clear_output_area. - (pp_base_set_prefix): Rename from pp_set_prefix. - (pp_base_destroy_prefix): Rename from pp_destroy_prefix. - (pp_base_emit_prefix): Rename from pp_emit_prefix. - (pp_base_append_text): Rename from pp_append_text. - (pp_base_formatted_text): Rename from pp_formatted_text. - (pp_base_last_position_in_text): Rename from pp_last_position_in_text. - (pp_base_remaining_character_count_for_line): Rename from - pp_remaining_character_count_for_line. - * diagnostic.h (diagnostic_format_decoder): Tidy. - (diagnostic_flush_buffer): Likewise. - * c-pretty-print.h: (pp_c_string_literal): Declare. - (pp_c_real_literal): Likewise. - (pp_c_integer_literal): Likewise. - * c-pretty-print.c (pp_c_char): Use pp_string in lieu of - pp_identifier. - (pp_c_character_literal): Tidy. - (pp_c_string_literal): Make public. - (pp_c_bool_literal): Likewise. - (pp_c_integer_literal): Likewise. - (pp_c_real_literal): Likewise. - - * Makefile.in (C_PRETTY_PRINT_H): New variable. - (c-pretty-print.o): Update dependence. - -2003-08-05 Chris Demetriou - - * config/mips/mips.md (fix_truncdfsi2_macro): Properly restore - ".set nomacro" state. - (fix_truncsfsi2_macro): Likewise. - -2003-08-05 Steven Bosscher - - * tree.h (DID_INLINE_FUNC): Remove macro. - (DECL_DECLARED_INLINE_P): Move from c-tree.h and cp/cp-tree.h, - add tree check for FUNCTION_DECL. - (DECL_ESTIMATED_INSNS): Move from c-common.h and java/java-tree.h. - (struct tree_decl): Rename inlined_function_flag to - declared_inline_flag. - * c-common.h (c_lang_decl): Remove. - (DECL_ESTIMATED_INSNS): Remove. - * c-tree.h (struct lang_decl): Don't include c_lang_decl. - (DECL_DECLARED_INLINE_P): Remove. - * c-decl.c (grokdeclarator): Update comment. With -finline-functions, - do not reset DECL_DECLARED_INLINE_P. Don't use DID_INLINE_FUNC. - (finish_function): Make uninlinable a bool. Fixup call to - tree_inlinable_function_p() and fix some code style issues. - * cgraph.h (disgread_inline_limits): Fix spelling: `disregard'. - * cgraph.c (dump_cgraph): Likewise. - * cgraphunit.c (cgraph_decide_inlining): Likewise - (cgraph_finalize_compilation_unit): Likewise. - Also update call to tree_inlinable_function_p(). - (cgraph_default_inline_p): Don't use DID_INLINE_FUNC. Instead - look at DECL_DECLARED_INLINE and reverse logic. - * print-tree.c (print_node): Likewise. - * toplev.c (rest_of_handle_inlining): Don't use DID_INLINE_FUNC. - * tree-inline.h (tree_inlinable_function_p): Make a bool. Update - prototype. - * tree-inline.c (inlinable_function_p): Split up in this function to - check for basic inlining inhibiting conditions, and new - limits_allow_inlining() function. Warn if inlining is impossible - because the inline candidate calls alloca or uses sjlj exceptions. - (limits_allow_inlining): this new function to check if the inlining - limits are satisfied. Throttle from currfn_max_inline_insns, not from - MAX_INLINE_INSNS_SINGLE. The latter only makes sense if - MAX_INLINE_INSNS_AUTO and MAX_INLINE_INSNS_SINGLE are equal. - Update prototypes. - (tree_inlinable_function_p): Make a bool. Update call to - inlinable_function_p - (expand_call_inline): Use limits_allow_inlining() when not in - unit-at-a-time mode to decide on inlining. Don't use DID_INLINE_FUNC, - instead see if the function was declared `inline'. - -2003-08-05 Josef Zlomek - - * gcse.c (try_replace_reg): Fix updating of note. - -2003-08-04 Roger Sayle - - PR middle-end/11771 - * fold-const.c (negate_expr_p ): Change to match the - logic in negate_expr, i.e. we don't invert (A-B) for floating - point types unless flag_unsafe_math_optimizations. - -2003-08-04 Roger Sayle - - * fold-const.c (fold ): Transform x+x into x*2.0. - Optimize x*c+x and x+x*c into x*(c+1) and x*c1+x*c2 into x*(c1+c2) - for floating point expressions with -ffast-math. - (fold ): Don't transform x*2.0 into x+x. - * expmed.c (expand_mult): Wrap long line. Expand x*2.0 as x+x. - -2003-08-04 Roger Sayle - - * c-common.c (flag_noniso_default_format_attributes): Delete. - (built_in_attribute): Don't define/undefine DEF_FN_ATTR. - (c_attrs_initialized): Delete. - (c_common_nodes_and_builtins): Don't test c_attrs_initialized, - always call c_init_attributes. - (c_init_attributes): Don't define/undefine DEF_FN_ATTR. Don't - set c_attrs_initialized when done. - (c_common_insert_default_attributes): Delete. - * c-common.h (flag_noniso_default_format_attributes): Delete. - (c_coomon_insert_default_attributes): Delete prototype. - * c-opts.c (set_std_c89, set_std_c99, set_std_cxx98): Dont set - flag_noniso_default_format_attributes. - - * c-decl.c (c_insert_default_attributes): Delete. - * c-tree.h (c_insert_default_attributes): Delete prototype. - - * attribs.c (decl_attributes): Don't call insert_default_attributes - langhook. Update function description comment. - * langhooks.h (lang_hooks): Remove insert_default_attributes field. - * langhooks-def.h (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES): Delete. - * c-lang.c (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES): Don't define. - * system.h: Poison LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES macro. - - * objc/objc-lang.c (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES): Don't - define. - -2003-08-04 Richard Sandiford - - * config/mips/mips.c (override_options): Disable -G on targets that - have no .section support. - (mips_select_section): Use default_select_section for such targets. - -2003-08-04 Nathanael Nerode - - * fixinc/inclhack.def (svr4_undeclared_getrnge): Introduce and enable. - * fixinc/inclhack.def (static_getrnge): Remove disabled hack. - * fixinc/fixincl.x: Rebuild. - * fixinc/tests/base/regexp.h: New test. - -2003-08-04 Alexandre Oliva - - * c-ppoutput.c (cb_line_change): Don't skip line changing while - parsing macro arguments in the top-level context. - -2003-08-04 Neil Booth - - * config.in: Remove HAVE_LSTAT. - * configure, configure.in: Don't test for lstat. - -2003-08-03 Gabriel Dos Reis - - * opts.c (decode_options): Do language-specific initialization for - the global diagnostic context. - * langhooks-def.h (lhd_initialize_diagnostics): Declare. - (LANG_HOOKS_INITIALIZE_DIAGNOSTITCS): New macro. - (LANG_HOOKS_INITIALIZER): Adjust. - * langhooks.h (struct lang_hooks): Add new field - initialize_diagnostics. - * langhooks.c (lhd_initialize_diagnostics): Define. - -2003-08-03 Gabriel Dos Reis - - * pretty-print.h: Adjust macro definitions. - * pretty-print.c (pp_newline): Rename to pp_base_newline. - (pp_character): Rename to pp_base_character. - (pp_string): Rename to pp_base_string. - * c-pretty-print.c (pp_buffer): Move to pretty-print.h - (pp_newline): Likewise. Adjust. - (pp_c_char): Adjust. - -2003-08-03 Kaveh R. Ghazi - - * builtins.def (BUILT_IN_ABS, BUILT_IN_IMAXABS, BUILT_IN_LABS, - BUILT_IN_LLABS): Move to miscellaneous section. - -2003-08-03 Neil Booth - - PR preprocessor/11534 - * cppexp.c (parse_defined): Warn only if -pedantic. - -2003-08-03 Neil Booth - - * cppfiles.c (stack_file): Use file path. - -2003-08-02 Roger Sayle - - * builtin-types.def (BT_SSIZE): New primitive type. - (BT_FN_INT_PTR_CONST_STRING_VALIST_ARG, - BT_FN_STRING_CONST_STRING_CONST_STRING_INT, - BT_FN_SIZE_STRING_SIZE_CONST_STRING_CONST_PTR, - BT_FN_SSIZE_STRING_SIZE_CONST_STRING_VAR): New function types. - * builtins.def (BUILT_IN_DCGETTEXT, BUILT_IN_DGETTEXT, - BUILT_IN_FSCANF, BUILT_IN_GETTEXT, BUILT_IN_STRFMON, - BUILT_IN_STRFTIME, BUILT_IN_VFPRINTF, BUILT_IN_VFSCANF): New builtins. - * builtin-attrs.def: Remove DEF_FN_ATTR construct and the last - few functions that define default attributes using it. - * c-common.c (c_common_insert_default_attributes): Do nothing. - - * doc/extend.texi: Document these "new" builtins. - -2003-08-02 Kaz Kojima - - * config/sh/linux.h (SUBTARGET_LINK_SPEC): Don't set rpath. - (LIB_SPEC): Set -lpthread always when -pthread set. Set -lieee - when -mieee-fp set and -shared not set. - (SH_FALLBACK_FRAME_FLOAT_STATE): Don't define for SH5. - -2003-08-02 Neil Booth - - * cppfiles.c (struct _cpp_file): Rename once_only_next to - next_file. Remove import and pragma_once, add once_only. - (find_file): Add new file structures to the all_files list. - (should_stack_file): Mark #import-ed files once-only, and - don't stack them if the file has already been stacked. - (_cp_mark_file_once_only): Simplify. - * cpphash.h (struct cpp_reader): Rename once_only_files - to all_files. Rename saw_pragma_once to seen_once_only. - (_cpp_mark_file_once_only): Update prototype. - * cpplib.c (do_pragma_once): Update. - -2003-08-02 Neil Booth - - * cppfiles.c (ENOTDIR): Remove. - (open_file_in_dir): Rename find_file_in_dir. Handle errors - other than ENOENT here. - (once_only_file_p): Rename should_stack_file. - (find_file, open_file_failed, read_file_guts): Report errors - with full path name. - (read_file): Move pch handling to should_stack_file. - (should_stack_file): Handle PCH and once-only issues, and - reading the file. - (stack_file): Don't do file reads. - -2003-08-02 Zdenek Dvorak - - * libgcov.c (gcov_exit): Cleanup and fix. - * profile.c (compute_value_histograms): Don't try to read profiles - that are not present. - -2003-08-02 Kaveh R. Ghazi - - * builtins.def: Categorize. - - * builtins.def (BUILT_IN_CABS, BUILT_IN_CABSF, BUILT_IN_CABSL): - Mind fp rounding. - (BUILT_IN_FFSL): Use DEF_EXT_LIB_BUILTIN. - -2003-08-02 Andreas Tobler - - * config.gcc: Enable posix threads by default on darwin. - -2003-08-01 Jakub Jelinek - - * cfgcleanup.c (outgoing_edges_match): Check REG_EH_REGION notes - even if nehedges1 is 0. - -2003-08-01 Nathanael Nerode - - * fixinc/fixfixes.c, fixinc/fixlib.c, fixinc/fixlib.h, - fixinc/fixtests.c, fixinc/procopen.c, fixinc/server.c, - fixinc/server.h, fixinc/fixincl.c: ANSIfy function prototypes - and defintions. - - * fixinc/inclhack.def (broken_cabs): Make matching more generous. - * fixinc/fixincl.x: Regenerate. - * fixinc/tests/base/math.h: Regenerate to match test_text change. - -2003-08-01 Rainer Orth - - * ggc-common.c (gt_pch_restore): Case MAP_FAILED to void *. - -2003-08-01 Richard Kenner - - * except.c (sjlj_emit_dispatch_table): Use ptr_mode, not Pmode, - for accesses to exc_ptr. - -2003-08-01 Geoffrey Keating - - * doc/sourcebuild.texi (Front End Directory): Don't make references - to libsubdir, it's not part of the interface to frontends. - * doc/install.texi (Configuration): Help users read faster by saying - that GCC's configure options are the standard autoconf ones. - Mention --libdir. Update the default rules for finding the - assembler. Don't use libsubdir since we haven't said what it means. - (Specific): In the Solaris 7 notes, update the place to put the - assembler. - * doc/invoke.texi: Update lib/gcc-lib to lib/gcc. - * doc/cpp.texi (Search Path): Actually, the search path - depends on libdir, which can relocate with cpp. - * doc/tm.texi (Driver): Don't document STANDARD_EXEC_PREFIX, it's - now a private interface between the Makefile and the driver. - -2003-08-01 Richard Henderson - - * system.h: Poison ASM_SIMPLIFY_DWARF_ADDR. - - * varasm.c (lookup_constant_def): New function. - * rtl.h (lookup_constant_def): Declare it. - * dwarf2out.c (loc_descriptor_from_tree): Use it. - Use targetm.delegitimize_address, not ASM_SIMPLIFY_DWARF_ADDR. - -2003-08-01 Zack Weinberg - - * c-decl.c (gettags, pushdecl_function_level): Delete. - (last_function_parm_vars): Rename last_function_parm_others. - (current_function_parm_vars): Rename current_function_parm_others. - (struct c_scope): Rewrite comment explaining this data structure. - Add names_last, blocks_last, parms_last fields. Rename - incomplete_list to incomplete. - (SCOPE_LIST_APPEND, SCOPE_LIST_CONCAT): New macros. - (poplevel): Ignore second argument. No need to nreverse - anything. Restructure such that each list is processed - exactly once. Use 'const location_t *locus' syntactic sugar - variable where useful. Issue unused variable warnings - ourselves, do not rely on function.c. - (insert_block, pushdecl, bind_label): Use SCOPE_LIST_APPEND. - (pushdecl_top_level): Likewise. Don't call duplicate_decls. - (implicitly_declare): decl cannot be error_mark_node. - (undeclared_variable): Manipulate scope structure directly. - (c_make_fname_decl): Likewise. - (getdecls, c_init_decl_processing): Fix comment. - (mark_forward_parm_decls): Use SCOPE_LIST_CONCAT. No need - for 'last' variable. - (grokparms): No need to nreverse parms list. - (store_parm_decls_newstyle): Set up the parms_last and - names_last fields of the new scope too. - (store_parm_decls_oldstyle): Can assume DECL_WEAK is not set - on parms to begin with; check this under ENABLE_CHECKING. Set - up parms_last. - (check_for_loop_decls): Refer directly to current_scope->tags. - Use consistent quote style in diagnostics. - (c_write_global_declarations): The names list is not backward. - - * c-common.h: Don't prototype gettags. - * c-parse.in: Call poplevel with second argument 0 always. - -2003-08-01 Kaveh R. Ghazi - - * builtins.def: Resort builtins. - -2003-08-01 Kaveh R. Ghazi - - * builtins.def (DEF_GCC_BUILTIN, DEF_LIB_BUILTIN, - DEF_EXT_LIB_BUILTIN, DEF_C99_BUILTIN, DEF_C99_C90RES_BUILTIN): - Prepend "__builtin_" onto NAME with string concatenation. Remove - explicit "__builtin_" from each macro call. - - Reformat entire file. - -2003-08-01 Kaveh R. Ghazi - - * builtins.def (ATTR_MATHFN_ERRNO, ATTR_MATHFN_FPROUNDING, - ATTR_MATHFN_FPROUNDING_ERRNO): New macros. Use throughout. - -2003-08-01 Andreas Krebbel - - * config/s390/s390.c (s390_select_ccmode): Do not attempt to use CCL, - CCL1, or CCL2 modes with floating point operations. - - * config/s390/s390.md ("*addsf3_cc", "*addsf3_cconly", "*adddf3_cc", - "*adddf3_cconly", "*subsf3_cc", "*subsf3_cconly", "*subdf3_cc", - "*subdf3_cconly"): New insns. - ("*negabssi2", "*negabsdi2", "*negabsdf2", "*negabssf2"): Likewise. - -2003-08-01 Neil Booth - - * Makefile.in: Refine dependencies. - * c-opts.c (c_common_handle_option): Do nothing for -Wimport. - * c.opt: Update help for -Wimport. - * cppfiles.c: Include hashtab.h. Update comments. - (stack_file): Read the file before updating dependencies. - (once_only_file_p): Be smarter about marking once-only files. - (_cpp_mark_file_once_only): Correct the check for existence on - the list. - (open_file_failed): Use name not path, which is NULL. - * cpphash.h: Don't include hashtab.h. - (struct _cpp_file): Remove. - (struct cpp_reader): Update. - * cppinit.c (cpp_create_reader): Don't initialize warn_import. - * cpplib.h (struct cpp_options): Remove warn_import. - (cpp_simplify_path): Remove. - -2003-08-01 Nathan Sidwell - - PR c++/11295 - * doc/extend.texi (Statement Expressions): Document C++ semantics. - -2003-07-31 SUGIOKA Toshinobu - - * config.gcc (sh-*-linux*): Do not override sh/t-linux with sh/t-le. - -2003-07-31 Kaveh R. Ghazi - - * builtin-types.def: Use `LONGDOUBLE' instead of `LONG_DOUBLE' - throughout. - * builtins.def: Likewise. - -2003-07-31 Jason Merrill - - * Makefile.in (bubblestrap): Don't require a previous full - bootstrap. - - * expr.c (mostly_zeros_p): No longer static. - * tree.h: Declare it. - * stmt.c (resolve_asm_operand_names): Don't copy the pattern - unless we need to do substitutions. - -2003-07-31 Roger Sayle - - * fold-const.c (fold ): Optimize both x*pow(x,c) and - pow(x,c)*x as pow(x,c+1) for constant values c. Optimize x*x - as pow(x,2.0) when the latter will be expanded back into x*x. - (fold ): Optimize pow(x,c)/x as pow(x,c-1). - * builtins.c (expand_builtin_pow): Ignore flag_errno_math as - pow can never set errno when used with an integer exponent. - Always use expand_powi when exponent is -1, 0, 1 or 2. - (fold_builtin): Don't rewrite pow(x,2.0) as x*x nor pow(x,-2.0) - as 1.0/(x*x). This avoids unbounded recursion as we now prefer - the pow forms of these expressions. - -2003-07-31 Geoffrey Keating - - * Makefile.in (libexecdir): New. - (libsubdir): Use gcc instead of gcc-lib. - (libexecsubdir): New. - (ORDINARY_FLAGS_TO_PASS): Add libexecsubdir. - (DRIVER_DEFINES): Add STANDARD_LIBEXEC_PREFIX, use gcc instead of - gcc-lib. - (installdirs): Make libexecsubdir. - (install-common): Put executables in libexecsubdir. - (itoolsdir): Use libexecsubdir. - (itoolsdatadir): New. - (install-mkheaders): Separate data files and executables. - (install-collect2): Put executables in libexecsubdir. - (uninstall): Remove libexecsubdir. - * mkheaders.in: Update for new arrangement of files. - (libexecdir): New. - (libexecsubdir): New. - (itoolsdir): Use libexecsubdir. - (itoolsdatadir): New. - * gcc.c (gcc_libexec_prefix): New. - (STANDARD_LIBEXEC_PREFIX): Use gcc instead of gcc-lib. - (standard_exec_prefix_1): Use libexec. - (standard_exec_prefix_2): New. - (standard_libexec_prefix): New. - (process_command): Update for new arrangement of files. Compute - gcc_libexec_prefix. Update for change from gcc-lib to gcc. - -2003-07-31 Nathanael Nerode - - * inclhack.def (stdio_va_list): Avoid bogus replacement which - triggers on Interix. - * fixincl.x: Regenerate. - -2003-07-31 Jakub Jelinek - - * config/i386/i386.c (legitimate_pic_address_disp_p): Disallow TLS - SYMBOL_REFs not inside UNSPEC even in PLUS rtx. - -2003-07-31 Richard Kenner - - * dwarf2out.c (loc_descriptor_from_tree, case CONSTRUCTOR): New case. - -2003-07-31 Per Bothner - - * opts.c (in_fnames, num_in_fnames): Moved here from c-opts. - (add_input_filename): New function. - (handle_options): Call add_input_filename directly instead of - with a lang hook. - * opts.h (in_fnames, num_in_fnames): Moved here. - (add_input_filename): Declare. - * c-decl.c: Need to #include opts.h. - * Makefile.in (c-decl.o): Also depends on opts.h. - * c-opts.c (in_fnames, num_in_fnames): Moved to opts.c. - (c_common_handle_filename): Replaced by add_input_filename. - * c-common.h (in_fnames, num_in_fnames, c_common_handle_filename): - Remove. - * langhooks.h (struct lang_hooks): Remove handle_filename hook. - * langhooks-def.h (LANG_HOOKS_HANDLE_FILENAME): Remove macro. - (LANG_HOOKS_INITIALIZER): Remove use of LANG_HOOKS_HANDLE_FILENAME. - * c-lang.c (LANG_HOOKS_HANDLE_FILENAME): Remove macro. - -2003-07-31 Zdenek Dvorak - - * combine.c (try_combine): Set JUMP_LABEL for newly created - unconditional jump. - -2003-07-31 Zdenek Dvorak - - * fold-const.c (fold): Fold some comparisons of bit operations. - -2003-07-31 Jan Hubicka - - * cgraph.c (create_edge): Fix typo. - * i386.c (pic_symbolic_operand): Reorder tests. - -2003-07-31 Nathan Sidwell - - * doc/gcov.texi (Invoking Gcov): Describe output name mangling - more fully. - (Gcov Data Files): Update. - -2003-07-31 Rainer Orth - - * config.gcc (alpha*-dec-osf[45]*): Enable POSIX thread support by - default. - - * gthr-posix.c: New file. - * gthr-posix.h: Define _REENTRANT if missing. - Make _LIBOBJC #pragma weak visible with _LIBOBJC_WEAK. - - * config/alpha/t-osf4 (SHLIB_LINK): Hide dummy functions provided - by gthr-posix.o. - * config/alpha/t-osf-pthread: New file. - - * fixinc/inclhack.def (alpha_pthread): New fix. - * fixinc/fixincl.x: Regenerate. - * fixinc/tests/base/pthread.h [ALPHA_PTHREAD_CHECK]: New testcase. - - * doc/install.texi (alpha*-dec-osf*): Remove --enable-threads - warning. - Fixes PR bootstrap/9330. - -2003-07-31 Rainer Orth - - * configure.in (gcc_cv_ld_hidden): Also disable on mips-sgi-irix5* - without GNU ld. - Update comment. - * configure: Regenerate. - -2003-07-31 Vladimir Makarov - - * sched-deps.c (sched_analyze_2): Prevent interblock move of CC0 - setter. - -2003-07-30 Roger Sayle - - * builtins.def: Alphabetize. - -2003-07-30 Matt Kraai - - * doc/c-tree.texi: Normalize spellings of "lowercase" and - "uppercase". - * doc/cpp.texi: Likewise. - * doc/md.texi: Likewise. - * doc/rtl.texi: Likewise. - * doc/tm.texi: Likewise. - -2003-07-30 Matt Kraai - - * objc/Make-lang.in (objc.stage1, objc.stage2, objc.stage3) - (objc.stage4, objc.stageprofile, objc.stagefeedback): Remove moves - of cc1obj. - -2003-07-30 Chris Demetriou - - * config/mips/mips.h (SIZE_TYPE, PTRDIFF_TYPE): Undef these - macros before defining them. - -2003-07-31 Ulrich Weigand - - * config/s390/s390.md (UNSPEC_ROUND, UNSPEC_SETHIGH, - UNSPECV_BLOCKAGE): New constants. - ("*sethighqisi", "*sethighhisi", "*sethiqidi_64", "*sethiqidi_31", - "*extractqi", "*extracthi", "*extendqidi2" splitter, "*extendqisi2" - splitter, "fix_truncdfdi2_ieee", "fix_truncdfsi2_ieee", - "fix_truncsfdi2", "fix_truncsfsi2", "blockage"): Use them. - - (all insns and expanders): Write output control string as brace block - where appropriate. Remove \-escapes for doublequote characters. - -2003-07-31 Jan Hubicka - - * gcse.c (insert_store): Fix typo in previous patch. - -2003-07-30 Neil Booth - - * cppfiles.c (stack_file, open_file_failed): Use path for deps. - -2003-07-30 Andi Kleen - - * loop.c (check_dbra_loop): Allow LTU in the loop condition. - -2003-07-30 Zdenek Dvorak - - * combine.c (distribute_notes): Cancel REG_VALUE_PROFILE notes. - * gcov-io.h (GCOV_FIRST_VALUE_COUNTER, GCOV_LAST_VALUE_COUNTER, - GCOV_N_VALUE_COUNTERS): New. - * profile.c (compute_value_histograms): New static function. - (branch_prob): Read back the value histograms. - * rtl.c (reg_note_name): Add name for REG_VALUE_PROFILE note. - * rtl.h (enum reg_note): Add REG_VALUE_PROFILE note. - * value-prof.c: Add comment on reading the profile. - * value-prof.h (COUNTER_FOR_HIST_TYPE, HIST_TYPE_FOR_COUNTER): New. - * doc/invoke.texi (-fprofile-values): Document behavior with - -fbranch-probabilities. - -2003-07-30 David Edelsohn - - * longlong.h (PowerPC umul_ppmm): Do not test __vxworks__. - -2003-07-30 Ulrich Weigand - - * config/s390/s390.h (EH_RETURN_HANDLER_RTX): Compute offset - symbolically. - -2003-07-30 Jan Hubicka - - * gcse.c (insert_store): Ignore fake edges. - - * c-common.c (flag_vtable_gc): Kill. - * c-common.g (flag_vtable_gc): Kill. - * c-opts (c_common_handle_option): Kill. - * c.opt (fvtable-gc): Kill. - * final.c (final_scan_insn): Do not call assemble_vtable_entry. - * output.h (assemble_vtable_entry, assemble_vtable_inherit): Kill. - * varasm.c (assemble_vtable_entry, assemble_vtable_inherit): Kill. - - * invoke.texi (-ftable-gc): Kill documentation. - - * tree-inline.c (inlinable_function_p): Don't set DECL_UNINLINABLE - just because function body is missing. - - * i386.c (pic_symbolic_operand): Properly detect RIP relative unspecs. - -2003-07-30 Ranjit Mathew - - * unwind-sjlj.c: Fix typo in file description. - -2003-07-30 Alan Modra - - * calls.c (load_register_parameters): When shifting reg sized values - to the msb, move the value to a reg first. - -2003-07-29 Geoffrey Keating - - * cppfiles.c (stack_file): Leave filename as "" rather than "". - * line-map.h (linemap_add): Update comments. - * line-map.c (linemap_add): Update comments, interpret zero-length - filename as "". - -2003-07-29 Nathanael Nerode - - * mkinstalldirs: Import autoconf 2.57 / automake 1.7 version. - -2003-07-29 Zack Weinberg - - * c-decl.c (last_function_parm_vars, current_function_parm_vars): - New static variables. - (struct c_scope): Add parms and warned_forward_parm_decls - fields; remove parm_order. - (storedecls, storetags): Delete. - (poplevel): Also clear bindings on the parms chain. - (pushdecl): Handle forward declarations of parameters, and - chain PARM_DECLs on the parms list, not the names list. - (lookup_name_current_level): Check for PARM_DECLs on the parms - list too. - (push_parm_decl): Don't update parm_order. - (clear_parm_order): Rename mark_forward_parm_decls. Issue the - warning, only once per parameter list, and set TREE_ASM_WRITTEN - on the decls here. Then move the forward decls to the names list. - (grokparms): Set last_function_parm_vars. - (get_parm_info): Don't use gettags or getdecls. No need to - extract non-parms from the parms list, or reorganize the parms - list. Feed nonparms back in the TREE_TYPE of the list node - returned. Issue only one error per parameter list for "void" - appearing more than once in said parameter list. Collapse - parmlist_tags_warning into this function to avoid double scan - of tags list. - (start_function): Set current_function_parm_vars. - (store_parm_decls_newstyle): Bypass pushdecl, manipulate scope - directly. Get non-parms from current_function_parm_vars; no - need to extract them from the parms chain. Properly bind tags - in the new scope. - (store_parm_decls_oldstyle): No need to extract non-parameters - from the parms chain, nor to store them back afterward. Move - declaration to top of function, restructure code reordering - DECL_ARGUMENTS. - (store_parm_decls): No need to save and restore warn_shadow. - * c-parse.in: Don't call parmlist_tags_warning nor - clear_parm_order. Call mark_forward_parm_decls when forward - parm decls are encountered. - * c-tree.h: Prototype mark_forward_parm_decls; not - clear_parm_order or parmlist_tags_warning. - -2003-07-29 Geoffrey Keating - - * c-common.c (allow_pch): Remove. - * c-common.h (allow_pch): Remove. - (c_common_no_more_pch): Declare. - * c-lex.c (c_lex): Call c_common_no_more_pch when appropriate. - * c-pch.c: Include hosthooks.h. - (c_common_valid_pch): Don't check allow_pch. - (c_common_read_pch): Clear valid_pch to prevent reading PCH files. - (c_common_no_more_pch): New. - * ggc-common.c: Include hosthooks.h. - (gt_pch_save): Call gt_pch_get_address. - (gt_pch_restore): Call gt_pch_use_address. - * hooks.c (hook_voidp_size_t_null): New. - (hook_bool_voidp_size_t_false): New. - * hooks.h (hook_voidp_size_t_null): New. - (hook_bool_voidp_size_t_false): New. - * hosthooks-def.h (HOST_HOOKS_GT_PCH_GET_ADDRESS): New. - (HOST_HOOKS_GT_PCH_USE_ADDRESS): New. - (HOST_HOOKS_INITIALIZER): Add HOST_HOOKS_GT_PCH_GET_ADDRESS, - HOST_HOOKS_GT_PCH_USE_ADDRESS. - * hosthooks.h (struct host_hooks): Add gt_pch_get_address, - gt_pch_use_address. - * doc/hostconfig.texi (Host Common): Document - HOST_HOOKS_GT_PCH_GET_ADDRESS, HOST_HOOKS_GT_PCH_USE_ADDRESS. - * Makefile.in (c-pch.o): Depend on hosthooks.h. - (ggc-common.o): Likewise. - - * config/rs6000/host-darwin.c (HOST_HOOKS_GT_PCH_GET_ADDRESS): Define. - (HOST_HOOKS_GT_PCH_USE_ADDRESS): Define. - (pch_address_space): New. - (darwin_rs6000_gt_pch_get_address): New. - (darwin_rs6000_gt_pch_use_address): New. - -2003-07-29 Neil Booth - - PR preprocessor/11569 - PR preprocessor/11649 - * Makefile.in (LIBCPP_DEPS): Add HASHTAB_H. - * cppfiles.c: Completely rewritten. - * c-incpath.c (free_path, remove_duplicates, heads, tails, add_path): - struct cpp_path is now struct cpp_dir. - (remove_duplicates): Don't simplify path names. - * c-opts.c (c_common_parse_file): cpp_read_next_file renamed - cpp_stack_file. - * cpphash.h: Include hashtab.h. - (_cpp_file): Declare. - (struct cpp_buffer): struct include_file is now struct _cpp_file, - and struct cpp_path is now struct cpp_dir. Rename members. - (struct cpp_reader): Similarly. New members once_only_files, - file_hash, file_hash_entries, quote_ignores_source_dir, - no_search_path, saw_pragma_once. Remove all_include_files and - max_include_len. Make some members bool. - (_cpp_mark_only_only): Renamed from _cpp_never_reread. - (_cpp_stack_file): Renamed from _cpp_read_file. - (_cpp_stack_include): Renamed from _cpp_execute_include. - (_cpp_init_files): Renamed from _cpp_init_includes. - (_cpp_cleanup_files): Renamed from _cpp_cleanup_includes. - * cppinit.c (cpp_create_reader): Initialize no_search_path. Update. - (cpp_read_next_file): Rename and move to cppfiles.c. - (cpp_read_main_file): Update. - * cpplib.c (run_directive): Update for renamed members. - (do_include_common, _cpp_pop_buffer): Update. - (do_import): Undeprecate #import. - (do_pragma_once): Undeprecate. Use _cpp_mark_file_once_only. - * cpplib.h: Remove file_name_map_list. - (cpp_options): Remove map_list. - (cpp_dir): Rename from cpp_path. New datatype for name_map. - (cpp_set_include_chains, cpp_stack_file, cpp_included): Update. - -2003-07-29 Phil Edwards - - * Makefile.in: Make stamp-objdir safe for parallel builds. - -2003-07-29 Phil Edwards - - * Makefile.in (stmp-docobjdir): New target; ensure $docobjdir exists. - (info): Depend on stmp-docobjdir. - -2003-07-29 Rainer Orth - - * configure: Regenerate. - -2003-07-29 Jan Hubicka - - PR C++/11131 - * tree-inline.c (expand_call_inline): Always call inlinable_function_p - in !unit-at-a-time mode. - -2003-07-28 Geoffrey Keating - - * c-decl.c (c_expand_body_1): Use C_DECL_FILE_SCOPE to detect - main function. - -2003-07-28 Mark Mitchell - - PR c++/11667 - * c-common.c (shorten_compare): Take into account differences - between C and C++ representation for enumeration types. - * tree.h (set_min_and_max_values_for_integral_type): Declare. - * stor-layout.c (set_min_and_max_values_for_integral_type): New - function, broken out from ... - (fixup_signed_type): ... here and ... - (fixup_unsigned_type): ... here. - -2003-07-28 Zack Weinberg - - * c-decl.c: Update commentary, adjust blank lines throughout. - (struct c_scope): Fix indentation. Reorder members so - outer-context pointers come first, booleans last. - (duplicate_decls, define_label): Use a 'locus' variable for - diagnostic locations in a few more places. - (warn_if_shadowing): Un-split a conditional that fits on one line. - (c_init_decl_processing): No need to clear current_scope and - current_function_scope. - (start_decl): Merge if/else if statements with same action. - (push_parm_decl): Rename old_immediate_size_expand to use - save_foo convention; save/restore around entire function. - (grokdeclarator): Remove unnecessary braces. - -2003-07-28 Hans-Peter Nilsson - Michael Culbertson - - * c-parse.in (lineno_stmt_decl_or_labels_ending_decl): Also warn - when warn_declaration_after_statement. Call pedwarn_c90, not - pedwarn. Correct message: it's "ISO C90", not "ISO C89". - * c-common.c (warn_declaration_after_statement): Define. - * c-common.h (warn_declaration_after_statement): Declare. - * c.opt (Wdeclaration-after-statement): New. - * c-errors.c (pedwarn_c90): New function. - * c-opts.c (c_common_handle_option) : New. - * c-tree.h (pedwarn_c90): Declare. - * doc/invoke.texi (Option Summary): Document - -Wdeclaration-after-statement. - (Warning Options): Ditto. - -2003-07-28 Jan Hubicka - - * i386.md (memory attribute) Avoid accessing uninitialized memory - for ishift1 type instructions. - -2003-07-28 Jakub Jelinek - - * configure.in (--enable-checking): Add fold category. - (ENABLE_FOLD_CHECKING): Define if requested. - * configure: Rebuilt. - * config.in: Rebuilt. - * doc/install.texi: Document it. - * fold-const.c: Include md5.h. - [ENABLE_FOLD_CHECKING] (fold): Define to fold_1. - [ENABLE_FOLD_CHECKING] (fold, fold_checksum_tree, fold_check_failed, - print_fold_checksum): New functions. - - * fold-const.c (fold): Never modify argument passed to fold, instead - change a copy and return it. - * convert.c (convert_to_integer): Likewise. - -2003-07-27 Nathanael Nerode - - * fixinc/fixinc.svr4: Remove dead code. Remove now-unnecessary - cleanup of junk after #else and #endif directives. Collapse repeated - clauses into for statment. - - * fixinc/fixincl.sh: GNU C -> GCC. Add usage comment. - -2003-07-27 Zack Weinberg - - * c-decl.c (struct c_scope): Remove keep_if_subblocks field. - (keep_next_if_subblocks): Rename next_is_function_body. - (pushlevel): Adjust commentary. Always set ->keep on the - outermost level of a function. Don't set ->keep_if_subblocks. - (poplevel): Adjust commentary. Don't look at ->keep_if_subblocks. - (store_parm_decls): Adjust to match. - (finish_function): Adjust to match. - Call poplevel with all three arguments zero. - - * c-decl.c (store_parm_decls_newstyle, store_parm_decls_oldstyle): - New functions split out of store_parm_decls. - Avoid unnecessary work. Use local variables consistently. - (store_parm_decls): Likewise. - - (finish_function): No need to set functionbody flag on call to - poplevel. - (struct language_function): Remove scope field. - (c_push_function_context, c_pop_function_context): No need to - save and restore current_scope. - -2003-07-27 Nathan Sidwell - - * doc/extend.texi (Deprecated Features): Implicit typename is - gone. Default args on types is going. - -2003-07-26 J"orn Rennecke - - * Makefile.in (ifcvt.o): Depend on target.h - * ifcvt.c (target.h): Include. - (if_convert): Don't call mark_loop_exit_edges if we can't - modify jumps. - -2003-07-26 Gerald Pfeifer - - * doc/install.texi (Testing): Adjust required versions of DejaGnu. - -2003-07-26 Richard Henderson - - PR inline-asm/11676 - * cse.c (count_reg_usage): Handle asm_operands properly. - -2003-07-26 Roger Sayle - - * builtins.def (DEF_FALLBACK_BUILTIN): Delete. - (DEF_EXT_FALLBACK_BUILTIN): Delete. - (BUILT_IN_BZERO, BUILT_IN_BCOPY, BUILT_IN_BCMP): Declare using - the regular DEF_EXT_LIB_BUILTIN macro. - (BUILT_IN_FPUTC, BUILT_IN_FPUTS, BUILT_IN_FWRITE): Declare using - the regular DEF_LIB_BUILTIN macro. - (BUILT_IN_PUTCHAR_UNLOCKED, BUILT_IN_PUTS_UNLOCKED, - BUILT_IN_FPUTC_UNLOCKED, BUILT_IN_FPUTS_UNLOCKED, - BUILT_IN_FWRITE_UNLOCKED): Declare using the regular - DEF_EXT_LIB_BUILTIN macro. - - * c-decl.c (duplicate_decls): Remove code to handle builtin - functions prototyped without an argument list. - -2003-07-26 Danny Smith - - * config/i386/winnt.c: Revert 2003-07-08 change. - (i386_pe_section_type_flags): Remove error_with_decl here too. - -2003-07-26 Gabriel Dos Reis - - * config/arm/pe.c (arm_mark_dllimport): Don't use xxx_with_decl. - * config/mcore/mcore.c (mcore_mark_dllimport): Likewise. - * config/v850/v850.c (v850_handle_data_area_attribute): Likewise. - (v850_handle_data_area_attribute): Likewise. - -2003-07-26 Geoffrey Keating - - * varasm.c (output_constant_def_contents): Use - ASM_DECLARE_CONSTANT_NAME if defined. - * doc/tm.texi (Label Output): Document ASM_DECLARE_CONSTANT_NAME. - * config/darwin.h (ASM_DECLARE_OBJECT_NAME): Ensure zero-sized - objects get at least one byte to prevent assembler problems. - (ASM_DECLARE_CONSTANT_NAME): New. - - * Makefile.in (libbackend.o): Remove options_.h. - (mostlyclean): Likewise. - - * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Don't - insert a label at the end of an function under Mach-O. - - * c-decl.c (c_static_assembler_name): Remove TREE_STATIC test. - -2003-07-25 Aldy Hernandez - - * config/rs6000/rs6000.c (is_ev64_opaque_type): Only check pointer - equality. - (spe_init_builtins): Declare __ev64_opaque__ as a builtin type. - - * config/rs6000/spe.h: Remove __ev64_opaque__ definition. - -2003-07-25 Gabriel Dos Reis - - * doc/passes.texi (Passes): Mention pretty-printing and - diagnostic files. - -2003-07-25 Nathan Sidwell - - * doc/extend.texi (Function Attributes): GNU C++ does now allow - unused parameter decls. - (Attribute Syntax): GNU C++ does not allow label attributes to be - after the ':'. - -2003-07-25 Gabriel Dos Reis - - * objc/objc-act.c (objc_check_decl): Don't use xxx_with_decl. - (objc_declare_class): Likewise. - (error_with_ivar): Likewise. - (start_class): Likewise. - (warn_with_method): Likewise. - -2003-07-25 Gabriel Dos Reis - - Remove pedwarn_with_decl, warning_with_decl and error_with_decl - from GCC. - * calls.c (try_to_integrate): Don't use xxx_with_decl. - (expand_call): Likewise. - * dwarfout.c (output_reg_number): Likewise. - * expr.c (expand_expr): Likewise. - * function.c (assign_temp): Likewise. - (uninitialized_vars_warning): Likewise. - (setjmp_args_warning): Likewise. - (expand_function_end): Likewise. - * stmt.c (fixup_gotos): Likewise. - (warn_about_unused_variables): Likewise. - (expand_end_bindings): Likewise. - * stor-layout.c (layout_decl): Likewise. - (place_field): Likewise. - * toplev.c (check_global_declarations): Likewise. - (rest_of_handle_inlining): Likewise. - (default_tree_printer): New function. - (general_init): Initialize diagnostic machinery before routing - signals to the ICE machinery. Set default tree printer. - * toplev.h (pedwarn_with_decl): Remove declaration. - (warning_with_decl): Likewise. - (error_with_decl): Likewise. - (pedwarn): Remove attribute for the time being. - * tree-inline.c (expand_call_inline): Don't use xxx_with_decl. - * varasm.c (named_section): Likewise. - (make_decl_rtl): Likewise. - (assemble_variable): Likewise. - (merge_weak): Likewise. - (declare_weak): Likewise. - - * diagnostic.h: Move non-diagnostic stuff into pretty-print.h. - * diagnostic.c: Move non-diagnostic stuff into pretty-print.c. - (format_with_decl): Remove. - (diagnostic_for_decl): Likewise. - (pedwarn_with_decl): Likewise. - (warning_with_decl): Likewise. - (error_with_decl): Likewise. - (diagnostic_initialize): Adjust. - (diagnostic_count_diagnostic): Likewise. - (announce_function): Likewise. - (lhd_print_error_function): Likewise. - (diagnostic_report_current_module): Likewise. - (default_diagnostic_starter): Likewise. - (diagnostic_report_diagnostic): Likewise. - (default_diagnostic_finalizer): Likewise. - (verbatim): Likewise. - (error): Likewise. - (warning): Likewise. - * opts.c (common_handle_option): Likewise. - * pretty-print.c: New file. - * c-pretty-print.h (pp_base): Override. - * c-pretty-print.c: Adjust use of macros throughout. - (pp_buffer): New macro. - (pp_newline): Likewise. - * c-objc-common.c (c_tree_printer): Adjust prototype. Tidy. - * Makefile.in (DIAGNOSTIC_H): New variable. - (c-errors.o): Use it. - (c-objc-common.o): Likewise. - (c-common.o): Likewise. - (c-opts.o): Likewise. - (c-format.o): Likewise. - (diagnostic.o): Likewise. - (opts.o): Likewise. - (toplev.o): Likewise. - (rtl-error.o): Likewise. - (dwarf2out.o): Likewise. - (jump.o): Likewise. - (pretty-print.o): New rule. - -2003-07-24 Roger Sayle - - * builtins.def (BUILT_IN_PRINTF, BUILT_IN_FPRINTF): Changed from - front-end builtins to normal builtins, using DEF_LIB_BUILTIN. - (BUILT_IN_PRINTF_UNLOCKED, BUILT_IN_FPRINTF_UNLOCKED): Changed - from front-end to normal builtins, using DEF_EXT_LIB_BUILTIN. - (DEF_FRONT_END_LIB_BUILTIN): Delete. - (DEF_EXT_FRONT_END_LIB_BUILTIN): Delete. - (BUILT_IN_FWRITE_UNLOCKED): Wrap long line. - - * builtins.c (build_string_literal): New function to construct - a char* pointer to a string literal. - (expand_builtin_fputs): Change 2nd argument from "int ignore" to - "rtx target" to be consistent with other expand_builtin_* functions. - Change 3rd argument from "int unlocked" to "bool unlocked". - (expand_builtin_printf): Rewrite of c_expand_builtin_printf from - c-common.c to avoid front-end dependencies. Optimize printf("") - as a no-op when the result isn't required. Handle embedded NULs - in format string. - (expand_builtin_fprintf): A rewrite of c_expand_builtin_fprintf - from c-common.c to avoid front-end dependencies. Likewise, optimize - fprintf(fp,"") as a no-op when the result isn't required, evaluating - fp for side-effects. Handle embedded NULs in format string. - (expand_builtin_sprintf): Fix typo. - (expand_builtin): Don't expand BUILT_IN_FPRINT{,_UNLOCKED} when not - optimizing. Adjust calls of expand_builtin_fputs to match the API - change. Expand BUILT_IN_PRINTF and BUILT_IN_PRINTF_UNLOCKED using - expand_builtin_printf. Likewise, expand BUILT_IN_FPRINTF_UNLOCKED - and BUILT_IN_FPRINTF using expand_builtin_fprintf. - - * c-common.c (is_valid_printf_arglist): Delete. - (c_expand_builtin): Delete. - (c_expand_builtin_printf): Moved to builtins.c. Delete. - (c_expand_builtin_fprintf): Moved to builtins.c. Delete. - (c_expand_expr): No longer treat CALL_EXPRs specially. - (CALLED_AS_BUILT_IN): Delete. - -2003-07-24 Zdenek Dvorak - - PR optimization/11631 - * gcse.c (store_motion): Connect infinite loops to exit. - -2003-07-24 Jason Merrill - - * tree.h (boolean_type_node): Move from C/C++/Java frontends. - (boolean_true_node, boolean_false_node): Likewise. - (enum tree_index): Add TI_BOOLEAN_{TYPE,FALSE,TRUE}. - * tree.c (build_common_tree_nodes): Init boolean_type_node. - (build_common_tree_nodes_2): Init boolean_{true,false}_node. - * stor-layout.c (set_sizetype): Handle an early BOOLEAN_TYPE. - * c-common.h (truthvalue_type_node): Renamed from boolean_type_node. - (truthvalue_true_node): Renamed from boolean_true_node. - (truthvalue_false_node): Renamed from boolean_false_node. - * c-decl.c: Just set truthvalue_* to integer_*. - * c-*.[ch]: s/boolean/truthvalue/. s/c_bool/boolean/. - -2003-07-24 Roger Sayle - - * c-decl.c (match_builtin_function_types): New subroutine of - duplicate_decls to test whether a redeclaration of a builtin - function is suitably close, i.e. the return type and all of - the argument types have the same modes as the builtin expects. - (duplicate_decls): Fuzzy type matching for builtin functions - moved to match_builtin_function_types. - -2003-07-24 Zdenek Dvorak - - * cfgloopmanip.c (duplicate_loop_to_header_edge): Update irreducible - flag correctly. - -2003-07-24 Zack Weinberg - - * c-decl.c: Search-and-replace change 'binding level' to - 'scope' in commentary. - (struct binding_level): Now struct c_scope. - (current_binding_level): Now current_scope. - (free_binding_level): Now scope_freelist. - (current_function_level): Now current_function_scope. - (global_binding_level): Now global_scope. - (make_binding_level): Now make_scope. - (pop_binding_level): Now pop_scope. - -2003-07-24 Rainer Orth - - * configure.in (libgcc_visibility): Add missing whitespace. - -2003-07-24 Richard Henderson - - * libgcc-std.ver (GCC_3.3.1): Export __gcc_personality_sj0, - __gcc_personality_v0. - -2003-07-24 Rainer Orth - - * Makefile.in: Replace pwd by ${PWD_COMMAND}. - -2003-07-24 Nathan Sidwell - - * doc/invoke.texi (-fprofile-arcs, -ftest-coverage): Update - documentation missed from my 2003-07-09 patch. - -2003-07-24 Nathanael Nerode - - * aclocal.m4 (_gcc_COMPUTE_GAS_VERSION): Set patch level to 0 if - it's not provided. - * configure: Rebuild. - -2003-07-24 Steven Bosscher - - PR c/10602 - * c-typeck.c (type_lists_compatible_p): Do not compare - arguments if one of them is an error_mark_node - -2003-07-24 Alan Modra - - * config/rs6000/rs6000.c (rs6000_emit_prologue): Save fp regs inline - if current_function_calls_eh_return. - -2003-07-23 Mark Mitchell - - * doc/c-tree.texi (OFFSET_TYPE): Update description. - -2003-07-23 Bob Wilson - - * config/xtensa/crti.asm (_init, _fini): Increase frame size to 64. - * config/xtensa/lib1funcs.asm (__mulsi3, __udivsi3, __divsi3, - __umodsi3, __modsi3): Increase frame size to 32. - -2003-07-23 Geoffrey Keating - - * config/rs6000/host-darwin.c: ANSIfy, update comment for sigaltstack - prototype. - -2003-07-23 Mark Mitchell - - * doc/c-tree.texi (Types): Update documentation for OFFSET_TYPE. - - PR optimization/10679 - * tree-inline.c (inlinable_function_p): Honor MIN_INLINE_INSNS. - -2003-07-23 John David Anglin - - PR target/11607 and PR target/11516 - * pa.md (extzv, extv, insv): Revert latter half of last patch. - -2003-07-22 Mark Mitchell - - * fold-const.c (force_fit_type): Handle OFFSET_TYPE. - * varasam.c (output_constant): Likewise. - -2003-07-22 Kazu Hirata - - * alias.c: Fix comment formatting. - * c-common.c: Likewise. - * c-decl.c: Likewise. - * c-opts.c: Likewise. - * combine.c: Likewise. - * cpplib.c: Likewise. - * diagnostic.c: Likewise. - * dojump.c: Likewise. - * final.c: Likewise. - * fold-const.c: Likewise. - * gcc.c: Likewise. - * gcse.c: Likewise. - * ggc-page.c: Likewise. - * jump.c: Likewise. - * loop.c: Likewise. - * mips-tfile.c: Likewise. - * recog.c: Likewise. - * regclass.c: Likewise. - * regmove.c: Likewise. - * tree.c: Likewise. - * tree.h: Likewise. - -2003-07-22 Per Bothner - - * line-map.c (add_line_map): Handle invalid LEAVE request. - Fixes PR preprocessor/11361. - -2003-07-22 Per Bothner - - * diagnostic.c.(diagnostic_report_current_module): Update to match - 2003-06-05 changes to push_srcloc and pop_srcloc. - -2003-07-22 Wolfgang Bangerth - - * doc/trouble.texi: Better document two-stage name lookup. - -2003-07-22 Eric Christopher - - * config/s390.c (s390_valid_pointer_mode): New. - (TARGET_VALID_POINTER_MODE): Use. - (s390_emit_prologue): Add tpf profiling hooks. - (s390_emit_epilogue): Ditto. - * config/s390.h (MASK_TPF): New. - (TARGET_TPF): Use. - (POINTERS_EXTEND_UNSIGNED): Define. - * config/s390.md (ptr_extend): New pattern. - -2003-07-22 Zack Weinberg - - * hashtable.c (approx_sqrt): Make static. - * hashtable.h: Don't prototype approx_sqrt. - * line-map.c (init_line_maps): Rename linemap_init. - (free_line_maps): Rename linemap_free. - (add_line_map): Rename linemap_add. - (lookup_line): Rename linemap_lookup. - (print_containing_files): Rename linemap_print_containing_files. - * linemap.h: Update to match. - - * cpperror.c, cppinit.c, cpplib.c, cppmacro.c: Update calls to - linemap routines to use new names. - -2003-07-16 Nathan Sidwell - - * c-common.c (handle_packed_attribute): Don't pack a struct via a - typedef. Propagate packedness from a main variant. - -2003-07-22 Nathanael Nerode - - * Makefile.in (install-common): Add dependency on installdirs. - -2003-07-21 Alexandre Oliva - - * c-common.c (c_common_type_for_mode): Return integer types for - pointer modes. - -2003-07-22 Geoffrey Keating - - * c-decl.c (start_decl): Don't call maybe_apply_pragma_weak here. - (finish_decl): Call maybe_apply_pragma_weak here. - (grokdeclarator): Check that DECL_ASSEMBLER_NAME isn't set before - TREE_PUBLIC and TREE_STATIC are decided. - (start_function): Move call to maybe_apply_pragma_weak. Check that - DECL_ASSEMBLER_NAME isn't set too early. - - * cpplex.c (_cpp_process_line_notes): Mention option name in - trigraphs warning. - -2003-07-22 Kazu Hirata - - * combine.c (if_then_else_cond): Simplify the comparison of - rtx against -1, 0, and 1. - * loop.c (check_dbra_loop): Likewise. - * optabs.c (emit_conditional_move): Likewise. - (emit_conditional_add): Likewise. - * config/i386/i386.md (*movsi_or): Likewise. - (*movdi_or_rex6): Likewise. - -2003-07-22 Jan Hubicka - - * cgraphunit.c (cgraph_finalize_compilation_unit): Remove redundant if. - -2003-07-21 Neil Booth - - * cppfiles.c (open_file_pch): Don't put unused entries in the - splay tree. Remove dead code. - -2003-07-21 Geoffrey Keating - - * c-common.h (num_in_fnames): Declare. - (c_static_assembler_name): Move from here... - * c-tree.h (c_static_assembler_name): ... to here. - * c-opts.c: Don't include langhooks-def.h. - (c_static_assembler_name): Move to c-decl.c. - (num_in_fnames): Make externally visible. - * c-decl.c: Include langhooks-def.h. - (c_static_assembler_name): Move from c-opts.c. - * Makefile.in (c-decl.o): Add $(LANGHOOKS_DEF_H). - (c-opts.o): Remove $(LANGHOOKS_DEF_H). - - * c-pragma.c (maybe_apply_pragma_weak): Don't get DECL_ASSEMBLER_NAME - when it's not needed. - -2003-07-21 Jakub Jelinek - - * config/rs6000/rs6000.h (machine_function): Add ra_need_lr. - * config/rs6000/rs6000.c (rs6000_return_addr): Set it. - (rs6000_emit_prologue): Save FPRs inline if set. - -2003-07-21 H.J. Lu - - * config/ia64/ia64.md (prefetch): Support predicate. - -2003-07-21 Josef Zlomek - - * cfgcleanup.c (merge_blocks_move_successor_nojumps): Use tablejump_p. - * rtlanal.c (tablejump_p): Use next_active_insn for finding the jump - table. - -2003-07-17 Eric Botcazou - - PR optimization/11536 - * unroll.c (loop_iterations): Do not replace a register holding - the final value by its equivalent before the loop if it is not - invariant. - -2003-07-21 Dave Fluri - - * doc/extend.texi: Fixes to spelling, grammar, and diction. - -2003-07-21 Ben Elliston - - * doc/invoke.texi (Optimize Options): Replace "it's" with "its". - (V850 Options): Spelling fixes. - -2003-07-20 Lisa M. Goldstein - - * doc/invoke.texi: Fixes to style, grammar and diction. - -2003-07-20 Roger Sayle - - * builtins.def (BUILT_IN_ALLOCA): Remove "#if SMALL_STACK" form. - * system.h (SMALL_STACK): Poison obsolete target macro. - * doc/tm.texi (SMALL_STACK): Remove target macro documentation. - -2003-07-20 Phil Edwards - - * configure.in: Cache the results of testing for cmp's capabilities. - * configure: Regenerate. - -2003-07-20 Mark Mitchell - - PR debug/11279 - * dwarf2out.c (gen_enumeration_type_die): Remember that - enumerators can be unsigned. - -2003-07-19 Zack Weinberg - - * c-decl.c (named_labels, shadowed_labels, label_level_chain) - (push_label_level, pop_label_level): Kill. - (struct binding_level): Rename level_chain to outer. - Add outer_function field. Change parm_flag, function_body, - keep, keep_if_subblocks to 1-bit bitfields of type bool. - (current_function_level): New variable. - (keep_next_level_flag, keep_next_if_subblocks): Change type to bool. - (keep_next_level, declare_parm_level, warn_if_shadowing): - Update to match. - (struct language_function): Kill named_labels, shadowed_labels fields. - (c_init_decl_processing, start_function, c_push__function_context) - (c_pop_function_context): No need to muck with named_labels nor - shadowed_labels. - - (make_binding_level): No need to clear the structure here. - (pop_binding_level): Always operate on current_binding_level. - Update current_function_level if necessary. - (pushlevel): Don't clear named_labels. Update current_function_level - if necessary. Use "true" and "false" where appropriate. - (poplevel): Diagnose labels defined but not used, or vice - versa, and clear out label-meanings leaving scope, while - walking down the decls list, for all binding levels. - Handle LABEL_DECLs appearing in the shadowed list. - pop_binding_level takes no arguments. - (pushdecl_function_level): Use current_function_level. - - (make_label, bind_label): New static functions. - (declare_label): New exported function. - (lookup_label, define_label): Rewritten for new data structure. - (shadow_label): Kill. - - * c-tree.h: Prototype declare_label; don't prototype - push_label_level, pop_label_level, nor shadow_label. - * c-parse.in: Remove all calls to push_label_level and - pop_label_level. Use declare_label for __label__ decls. - - * doc/extend.texi: Clarify that __label__ can be used to - declare labels with local scope in any nested block, not - just statement expressions. Cross-reference nested functions - section from local labels section. - -2003-07-19 Zdenek Dvorak - - * sched-rgn.c (find_rgns): Initialize current_edge correctly. - -2003-07-19 Phil Edwards - - * doc/makefile.texi (restrap, profiledbootstrap): Document targets. - -2003-07-19 Kaveh R. Ghazi - - * fixinc/fixfixes.c fixinc/fixincl.c fixinc/fixlib.c - fixinc/server.c objc/objc-act.c: Remove unnecessary casts. - -2003-07-19 Ulrich Weigand - - * config/s390/s390.c (legitimize_pic_address): Access local symbols - relative to the GOT instead of relative to the literal pool base. - (s390_output_symbolic_const): Handle new GOT-relative accesses. - * config/s390/s390.md ("call"): Access local functions and PLT stubs - relative to the GOT instead of relative to the literal pool base. - ("call_value"): Likewise. - ("call_value_tls"): Likewise. - - * config/s390/s390.c (s390_chunkify_start): Remove pool anchor - reloading. Support LTREL_BASE / LTREL_OFFSET construct. - (s390_chunkify_finish): Likewise. - (s390_chunkify_cancel): Likewise. - (s390_reorg): Adapt caller. - (find_base_register_in_addr, - find_base_register_ref, replace_base_register_ref): Delete. - (find_ltrel_base, replace_ltrel_base): New functions. - (find_constant_pool_ref): Handle LTREL_BASE unspecs. - (s390_decompose_address): Handle LTREL_BASE unspecs. Optimize - base vs. index register usage. - (struct constant_pool): Remove 'anchor'. - (s390_add_anchor): Delete. - (s390_dump_pool): Remove anchor handling. - * config/s390/s390.md ("reload_anchor"): Remove. - - * config/s390/s390.c (s390_split_branches): Use LTREL_BASE/OFFSET. - (s390_load_got): New function. Use LTREL_BASE/OFFSET. - (s390_emit_prologue): Use it. - * config/s390/s390.md ("builtin_longjmp", "builtin_setjmp_setup", - "builtin_setjmp_receiver"): Cleanup. Use s390_load_got. Do not - hard-code register 14. - * config/s390/s390-protos.h (s390_load_got): Declare. - - * config/s390/s390.c (NR_C_MODES, constant_modes, gen_consttable): - Support TImode constants. - * config/s390/s390.md ("consttable_ti"): New. - ("consttable_si", "consttable_di"): Handle TLS symbols correctly. - - * config/s390/s390.md (UNSPEC_LTREL_OFFSET, UNSPEC_LTREL_BASE, - UNSPEC_GOTENT, UNSPEC_GOT, UNSPEC_GOTOFF, UNSPEC_PLT, UNSPEC_PLTOFF, - UNSPEC_RELOAD_BASE, UNSPECV_POOL, UNSPECV_POOL_START, UNSPECV_POOL_END, - UNSPECV_POOL_QI, UNSPECV_POOL_HI, UNSPECV_POOL_SI, UNSPECV_POOL_DI, - UNSPECV_POOL_TI, UNSPECV_POOL_SF, UNSPECV_POOL_DF, UNSPECV_MAIN_POOL): - New symbolic constants. - ("consttable_qi", "consttable_hi", "consttable_si", "consttable_di", - "consttable_sf", "consttable_df", "pool_start_31", "pool_end_31", - "pool_start_64", "pool_end_64", "reload_base_31", "reload_base_64", - "pool", "literal_pool_31", "literal_pool_64"): Cleanup. Use - symbolic UNSPEC values. - * config/s390/s390.c (larl_operand, s390_short_displacement, - bras_sym_operand, s390_cannot_force_const_mem, - s390_delegitimize_address, s390_decompose_address, - legitimize_pic_address, s390_output_symbolic_const, - s390_function_profiler): Use symbolic UNSPEC values. - -2003-07-19 Kaveh R. Ghazi - - * alias.c alloc-pool.c bitmap.c bitmap.h bt-load.c builtins.c - c-common.c c-decl.c c-incpath.c c-lex.c c-opts.c c-parse.in - c-pragma.c c-typeck.c calls.c cfg.c cfganal.c cfgloop.c cfgrtl.c - collect2.c combine.c conflict.c coverage.c cppexp.c cppfiles.c - cpphash.c cppinit.c cpplex.c cpplib.c cppmacro.c cppspec.c - cpptrad.c cse.c cselib.c dbxout.c defaults.h df.c dominance.c - dwarf2out.c dwarfout.c emit-rtl.c except.c expmed.c expr.c final.c - fix-header.c flow.c fold-const.c function.c gcc.c gccspec.c gcov.c - gcse.c genattr.c genattrtab.c genautomata.c genconditions.c - genemit.c genextract.c genoutput.c genrecog.c gensupport.c - ggc-page.c ggc-simple.c global.c graph.c haifa-sched.c hashtable.c - integrate.c jump.c langhooks.c lcm.c line-map.c local-alloc.c - loop.c mips-tdump.c mips-tfile.c mkdeps.c optabs.c params.c - postreload.c prefix.c print-tree.c protoize.c ra-build.c - ra-colorize.c ra-rewrite.c ra.c recog.c reg-stack.c regclass.c - regmove.c regrename.c reload.c reload1.c reorg.c resource.c - sbitmap.c sched-deps.c sched-rgn.c sched-vis.c sdbout.c - simplify-rtx.c ssa-ccp.c ssa.c stmt.c stor-layout.c timevar.c - tlink.c toplev.c tree-dump.c tree.c unroll.c unwind-dw2-fde.c - varasm.c varray.c vmsdbgout.c xcoffout.c: Remove unnecessary - casts. - -2003-07-19 Gabriel Dos Reis - - * c-pragma.c (apply_pragma_weak): Don't use warning_with_decl. - * toplev.h (warning): Remove attribute. - -2003-07-19 Gabriel Dos Reis - - * c-decl.c (c_finish_incomplete_decl): Don't use xxx_with_decl. - (pop_label_level): Likewise. - (duplicate_decls): Likewise. - (implicitly_declare): Likewise. - (shadow_label): Likewise. - (start_decl): Likewise. - (finish_decl): Likewise. - (grokdeclarator): Likewise. - (get_parm_info): Likewise. - (detect_field_duplicates): Likewise. - (finish_struct): Likewise. - (start_function): Likewise. - (store_parm_decls): Likewise. - (finish_function): Likewise. - (c_expand_body_1): Likewise. - (check_for_loop_decls): Likewise. - (merge_translation_unit_decls): Likewise. - -2003-07-19 Neil Booth - - * common.opt: Document --param. - * opts.c (columns, undocumented_msg): New. - (print_help): Get number of columns from environment. Print - --param help. Tweak newline handling. - (print_param_help): New. - (print_filtered_help): Better handling of duplicates. Complain - about undocumented switches. - (print_switch): New. - (wrap_help): Improve wrapping, use COLUMNS. - * opts.sh: Ignore comments in records. - * params.def: Fix typos and remove trailing periods. - * toplev.c (display_help): Don't dump --param help. - * doc/sourcebuild.texi: Update. - -2003-07-18 Richard Henderson - - PR target/11556 - * optabs.c (prepare_operand): Fail gracefully instead of abort - if the predicate doesn't satisfy. - (gen_cond_trap): Allow prepare_operand to fail. - -2003-07-19 Gabriel Dos Reis - - * c-common.c: Don't undefine GCC_DIAG_STYLE. - (fname_decl): Don't use xxx_with_decl. - (c_add_case_label): Likewise. - (handle_section_attribute): Likewise. - (handle_alias_attribute): Likewise. - (handle_no_instrument_function_attribute): Likewise. - (handle_no_limit_stack_attribute): Likewise. - * c-objc-common.c (c_tree_printer): Print IDENTIFIER_NODEs. - * c-format.c (gcc_cdiag_char_table): Add '%E' format-specifier. - -2003-07-19 Zdenek Dvorak - - * Makefile.in (ifcvt.o): Add cfgloop.h. - * basic-block.h (EDGE_LOOP_EXIT): New flag. - * cfgrtl.c (rtl_verify_flow_info_1): Handle it correctly. - * ifcvt.c: Include cfgloop.h. - (mark_loop_exit_edges): New static function. - (if_convert): Call it. - (find_if_header): Ignore branches out of loops. - -2003-07-18 Kazu Hirata - - * combine.c (simplify_comparison): Don't share rtx when converting - (ne (and (not X) 1) 0) to (eq (and X 1) 0). - -2003-07-18 David Edelsohn - - * config/rs6000/aix.h (AGGREGATE_PADDING_FIXED): Define. - (AGGREGATES_PAD_UPWARD_ALWAYS): Define. - (MUST_PASS_IN_STACK): Define. - (BLOCK_REG_PADDING): Define. - -2003-07-18 Richard Henderson - - * cfgrtl.c (force_nonfallthru_and_redirect): Use tablejump_p - to skip the addr_vec. - -2003-07-18 Alexandre Oliva - - * combine.c (combinable_i3pat): Don't forbid occurrences of - i2dest or i1dest in inner_dest if inner_dest is a mem. - -2003-07-18 Jan Hubicka - - * cgraph.c (cgraph_remove_node): Clear the hash table slot. - -2003-07-17 Jakub Jelinek - - PR target/11087 - * loop.c (basic_induction_var): Check if convert_modes emitted any - instructions. Remove them and return 0 if so. - -2003-07-18 Eric Botcazou - - PR optimization/11083 - * toplev.c (rest_of_handle_addresof): Rename into - rest_of_handle_addressof. Delete unreachable blocks - if dead edges were purged after the addressof pass. - -2003-07-18 Neil Booth - - * Makefile.in, configure, configure.in: Remove handling of - lang-options.h and options_.h. - * toplev.c (struct lang_opt, documented_lang_options): Remove. - (display_help): Don't use documented_lang_options. - -2003-07-17 Zack Weinberg - - * c-decl.c (pushdecl_function_level): Make static, return nothing. - (kept_level_p): Fold into poplevel. - (undeclared_variable): Moved here from c-typeck.c. Export. - * c-tree.h (KEEP_YES, KEEP_NO, KEEP_MAYBE): New #defines. - (undeclared_variable): Prototype here. Don't prototype - kept_level_p nor pushdecl_function_level. - * c-parse.in: Change first argument to poplevel from - "kept_level_p()" to "KEEP_MAYBE". - * c-typeck.c (undeclared_variable): Moved to c-decl.c. - -2003-07-17 Roger Sayle - - * simplify-rtx.c (simplify_rtx): Use simplify_gen_binary to swap - commutative operands instead of modifying the RTL in-place. - -2003-07-17 Mark Mitchell - - PR optimization/11557 - * calls.c (flags_from_decl_or_type): Do not set ECF_LIBCALL_BLOCK - unless we know which function is being called. - -2003-07-17 Roger Sayle - - * cse.c (fold_rtx): Use swap_commutative_operands_p to determine - whether to reorder the operands of a commutative binary operator. - -2003-07-17 Roger Sayle - - * fold-const.c (const_binop): Avoid performing the FP operation at - compile-time, if either operand is NaN and we honor signaling NaNs, - or if we're dividing by zero and either flag_trapping_math is set - or the desired mode doesn't support infinities. - (fold_initializer): New function to fold an expression ignoring any - potential run-time exceptions or traps. - * tree.h (fold_initializer): Prototype here. - * c-typeck.c (build_binary_op): Move to the end of the file so - that intializer_stack is in scope. If constructing an initializer, - i.e. when initializer_stack is not NULL, use fold_initializer to - fold expressions. - * simplify-rtx.c (simplify_binary_operation): Likewise, avoid - performing FP operations at compile-time, if they would raise an - exception at run-time. - -2003-07-17 Geoffrey Keating - - PR 11498 - * Makefile.in (c-opts.o): Add $(LANGHOOKS_DEF_H). - (langhooks.o): Add $(GGC_H), gt-langhooks.h. - (GTFILES): Add langhooks.c. - (gt-langhooks.h): New. - * c-common.h (c_static_assembler_name): Prototype. - * c-lang.c (LANG_HOOKS_SET_DECL_ASSEMBLER_NAME): Define. - * objc/objc-lang.c (LANG_HOOKS_SET_DECL_ASSEMBLER_NAME): Define. - * c-opts.c: Include langhooks-def.h. - (c_static_assembler_name): New. - * langhooks.c: Include ggc.h. Include gt-langhooks.h. - (var_labelno): New. - (lhd_set_decl_assembler_name): Give static objects with context - unique names. - * varasm.c (var_labelno): Delete. - (make_decl_rtl): Don't change the assembler name once it's set. - - * c-opts.c (this_input_filename): New. - (finish_options): Take new parameter, name of file being compiled. - Update callers. Set this_input_filename. - (push_command_line_include): Use this_input_filename not - main_input_filename. - -2003-07-17 Neil Booth - - * Makefile.in: Depend .pot generation on options.c. - * po/exgettext: Add an extra_files variable containing additional - files to scan. - -2003-07-17 Zack Weinberg - - * objc/objc-lang.c: Override LANG_HOOKS_WRITE_GLOBALS to - c_write_global_declarations. - - * c-decl.c: Fix typos in several comments. Remove all - #if 0 blocks; reindent as needed. Remove unused argument - to declare_parm_level; all callers changed. - * c-parse.in: Update calls to declare_parm_level. Avoid - issuing a double warning in some circumstances. - * c-typeck.c: Update calls to declare_parm_level. - * c-tree.h: Update prototype of declare_parm_level. - - * c-pragma.c (apply_pragma_weak): Don't complain about a - redundant #pragma weak. - - * objc/objc-act.c (forward_declare_categories, - build_selector_reference_decl, build_class_reference_decl, - build_objc_string_decl, synth_forward_declarations, - build_protocol_reference): Set TREE_PUBLIC on synthetic - forward decl to 0, consistent with eventual definition. - Correct comments to match. - - * fixinc/inclhack.def (solaris_mutex_init_2): Escape braces - in regexp that don't form a range expression. - * fixinc/fixincl.def: Regenerate. - -2003-07-17 Richard Henderson - - PR target/10907 - * config/ia64/ia64.c (ia64_epilogue_uses): GP is live at end - even with !TARGET_CONST_GP. - (ia64_function_ok_for_sibcall): Reject non-local functions. - -2003-07-17 Steven Bosscher - - * c-common.c (c_estimate_num_insns_1): Don't handle - METHOD_CALL_EXPR. - * expr.c (safe_from_p): Likewise. - * gengtype.c (adjust_field_tree_exp): Likewise. - * stmt.c (warn_if_unused_value): Likewise - * tree.c (first_rtl_op): Likewise. - * tree.def: Don't define METHOD_CALL_EXPR. - * java/lang.c (java_estimate_num_insns_1): Don't handle - METHOD_CALL_EXPR. - -2003-07-17 Eric Botcazou - - PR other/11466 - * doc/invoke.texi (SPARC Options): Document "-mlittle-endian" - and its restrictions for the SPARC64 port. - Move the entry of "-mimpure-text" before that of "-mv8". - -2003-07-17 Eric Botcazou - Phil Edwards - - * doc/install.texi (*-*-solaris2*): Document the step-by-step - procedure to bootstrap and install. - Document the preference for the legacy Sun tools in /usr/bin - over the POSIX tools in /usr/xpg4/bin for the build process. - -2003-07-17 Neil Booth - - * c.opt: Document Uncodumented; use it. Document ObjC options. - * opts.c (print_filtered_help): Skip undocumented switches. - * opts.h (CL_UNDOCUMENTED): New. - * opts.sh: Handle Undocumented. - * toplev.c (documented_lang_options): Prevent its becoming empty. -objc: - * lang-options.h: Remove. - -2003-07-16 Ulrich Weigand - - * loop.c (check_ext_dependent_givs): Pass const struct loop * - instead of struct loop_info * as argument. Accept BIVs with - increment +/- 1 provided there is a friendly exit test against - a loop-invariant value. - (strength_reduce): Adapt call to check_ext_dependent_givs. - -2003-07-16 J"orn Rennecke - Con Bradley - - * sh-protos.h (sh_get_pr_initial_val): Declare. - * sh.c (regno_reg_class): Make its elements type enum reg_class. - (output_stack_adjust): Remove emit_fn argument. Add epilogue_p - and live_regs_mask arguments. Changed all callers. - (save_schedule_s): New structure. - (save_schedule): New typedef. - (scavenge_reg, sh5_schedule_saves, sh5_schedule_saves): New functions. - (calc_live_regs): For TARGET_SHMEDIA, use leaf_function_p. - In interrupts handlers, also save registers that are usually - partially saved, and make sure there is at least one general purpose - register saved if a target register needs saving. - Add casts in comparisons to avoid warnings. - (sh_media_register_for_return): return -1 for interrupt handlers. - (MAX_SAVED_REGS, MAX_TEMPS): New defines. - (sh_expand_prologue): Use sh5_schedule_saves. Check that any temp - registers used are available. - Set RTX_FRAME_RELATED_P where appropriate. - Add an REG_FRAME_RELATED_EXPR for r0 + offset addressing. - (sh_expand_epilogue, sh_set_return_address): Use sh5_schedule_saves. - (initial_elimination_offset): Likewise. - * sh.h (DWARF_CIE_DATA_ALIGNMENT): Set to -4. - (LOCAL_ALIGNMENT, GENERAL_REGISTER_P): Add casts to avoid warnings. - (FP_REGISTER_P): Add casts to fix broken handling of unsigned REGNO. - (XD_REGISTER_P, TARGET_REGISTER_P): Likewise. - (HARD_REGNO_CALL_PART_CLOBBERED): Also yield nonzero for r15, - and for target registers. - (RETURN_IN_MEMORY): Add parentheses to avoid warnings. - (regno_reg_class): Make its elements type enum reg_class. - (CONSTRAINT_LEN): Don't use isdigit. - (FUNCTION_ARG_REGNO_P): Add casts to avoid warnings. - (FUNCTION_ARG): Add parentheses to avoid warnings. - (RETURN_ADDR_RTX): Use sh_get_pr_initial_val. - (RETURN_ADDR_OFFSET): Define to -1 for TARGET_SH5. - (SH_DBX_REGISTER_NUMBER): Add casts to avoid warnings. - (EH_RETURN_DATA_REGNO): Use unsigned constants to avoid warnings. - * sh.md (xordi3+1): Remove unused variable regno. - (return_media): Check that tr0 is available before using it. - -2003-07-16 Neil Booth - - * c.opt: Document more options. - -2003-07-16 Roger Sayle - - * combine.c (subst): Also handle (subreg (const_double ...)) case - if created by a substitution, by using the original inner mode. - -2003-07-16 Roger Sayle - - * simplify-rtx.c (simplify_replace_rtx): Convert constant comparisons - to MODE_FLOAT constants if FLOAT_STORE_FLAG_VALUE is defined. - (simplify_rtx): Likewise. Simplify (lo_sum (high X) X) as X. - -2003-07-16 Andrew Pinski - - * doc/install.texi (--without-headers): New. - - Partial Fix PR/10129 - * config/darwin.c (machopic_function_base_name): Only Return "". - (machopic_output_function_base_name): New; print the true pic label. - (machopic_classify_ident): Pic Base is always a defined data. - * config/darwin.h (ASM_OUTPUT_LABELREF): Support the pic base label. - * config/darwin-proto.h (machopic_output_function_base_name): Prototype. - - * gcse.c (gcse_constant_p): COMPARE of the same registers is a constant - if they are not floating point registers. - - PR c/10962 - * ggc.h: Add header guards. - * c-decl.c (finish_struct): Sort fields if - number greater than 15 and there are no - anonymous structs/unions. - * c-common.h: Include ggc.h. - (sorted_fields_type): New struct. - (field_decl_cmp): New prototype. - (resort_sorted_fields): New prototype. - (DECL_DECLARES_TYPE_NON_TEMPLATE_P): New macro. - * c-tree.h: (lang_type): Use pointer to sorted_fields_type - as s, removing other fields. - * c-typeck.c (lookup_field): Use s in lang_type. - These were mostly moved from cp/class.c: - * c-common.c (field_decl_cmp): New static function. - (field_decl_cmp): New function. - (resort_sorted_fields): New function. - -2003-07-16 Geoffrey Keating - - * config/darwin.c (machopic_select_section): Use decl_readonly_section - to do most of the work. - -2003-07-16 Hans-Peter Nilsson - - * config/mmix/mmix-protos.h: Convert prototypes to ISO C90. - * config/mmix/mmix.c: Convert functions to ISO C90. - (mmix_eh_return_handler_rtx, mmix_output_shifted_value): Tweak - formatting. - (mmix_get_hard_reg_initial_val): Tweak section head comment. - -2003-07-16 J"orn Rennecke - - * c-pragma.h (HANDLE_PRAGMA_WEAK): Always define to SUPPORTS_WEAK. - -2003-07-16 Jakub Jelinek - - * unwind-dw2.c (MD_FROB_UPDATE_CONTEXT): Define. - (uw_update_context_1): Use it. - * config/rs6000/rs6000.c (insn_after_throw): Remove. - (rs6000_aix_emit_builtin_unwind_init): Save $r2 to its location - in parent frame if _Unwind_* called directly instead of through - .plt. - (rs6000_emit_eh_toc_restore): Remove. - (rs6000_emit_prologue): Update stack pointer before doing any saving - if current_function_calls_eh_return. Generate unwind info for $r2. - (rs6000_emit_epilogue): Restore stack pointer after doing all - restoring if current_function_calls_eh_return. Restore $r2. - * config/rs6000/rs6000-protos.h (rs6000_emit_eh_toc_restore): Remove. - * config/rs6000/rs6000.md (eh_return): Remove call to - rs6000_emit_eh_toc_restore. - * config/rs6000/linux64.h (MD_FROB_UPDATE_CONTEXT): Define. - * config/rs6000/aix.h (MD_FROB_UPDATE_CONTEXT): Define. - -2003-07-15 Jakub Jelinek - - * expr.c (emit_block_move): Don't move anything if size is const 0. - (clear_storage): Test against const0_rtx instead of comparing INTVAL - against 0. - -2003-07-15 David S. Miller - - * config/sparc/sparc.c (sparc_nonflat_function_epilogue): Only - emit nop if the last real insn is CALL_INSN. - -2003-07-16 Danny Smith - - * config/i386/xm-mingw32.h (HOST_BIT_BUCKET): Define - as "nul". - * config/i386/xm-mingw32.h: Change GNU CC to GCC. - -2003-07-16 Danny Smith - - * config/i386/winnt.c (associated_type): Artificial methods are not - affected by the import/export status of their class unless they are - COMDAT. - (i386_pe_dllimport_p): Do not mark artificial methods as dllimport. - - * config/i386/winnt.c: Fix GCC copyright comment. - -2003-07-16 Gabriel Dos Reis - - PR c++/11531 - * diagnostic.c (diagnostic_report_diagnostic): Don't ICE if we're - not recursing on hard error. - (diagnostic_for_decl): Likewise. - * diagnostic.def: Rearrange. - -2003-07-15 J"orn Rennecke - - * dwarf2out.c (expand_builtin_init_dwarf_reg_sizes): - If DWARF_FRAME_RETURN_COLUMN doesn't have a register mode, use Pmode. - -2003-07-15 J"orn Rennecke - Richard Henderson - - * unwind-dw2.c (_Unwind_GetGR): Use dwarf_reg_size_table - to decide if to access a _Unwind_Ptr or a _Unwind_Word. - (_Unwind_SetGR): Likewise. - (_Unwind_GetPtr, _Unwind_SetSpColumn): New functions. - (Unwind_SpTmp): New typedef. - (uw_update_context_1): Use _Unwind_SetSpColumn and _Unwind_GetPtr. - (uw_update_context): Use _Unwind_GetPtr. - (init_dwarf_reg_size_table): Move above uw_init_context_1. - (uw_init_context_1): Initialize dwarf_reg_size_table if necessary. - Use _Unwind_SetSpColumn. - (uw_install_context_1): Don't initialize dwarf_reg_size_table. - Use _Unwind_GetPtr. - -2003-07-15 Neil Booth - - * c.opt: Document more options. - * toplev.c (documented_lang_options): Remove all local help strings. - -2003-07-15 Mark Mitchell - - PR debug/11473 - * dbxout.c (dbxout_type): Use TYPE_SIZE to determine the sizes of - base classes. - -2003-07-15 Kazu Hirata - - PR target/10795 - * config/i386/i386.c (ix86_expand_carry_flag_compare): Don't - swap comparison operands if doing so would generate an - unrecognizable insn. - -2003-07-15 Eric Botcazou - - PR optimization/11320 - * sched-int.h (struct deps) [reg_conditional_sets]: New field. - (struct sched_info) [compute_jump_reg_dependencies]: New prototype. - * sched-deps.c (sched_analyze_insn) [JUMP_INSN]: Update call to - current_sched_info->compute_jump_reg_dependencies. Record which - registers are used and which registers are set by the jump. - Clear deps->reg_conditional_sets after a barrier. - Set deps->reg_conditional_sets if the insn is a COND_EXEC. - Clear deps->reg_conditional_sets if the insn is not a COND_EXEC. - (init_deps): Initialize reg_conditional_sets. - (free_deps): Clear reg_conditional_sets. - * sched-ebb.c (compute_jump_reg_dependencies): New prototype. - Mark registers live on entry of the fallthrough block and conditionally - set as set by the jump. Mark registers live on entry of non-fallthrough - blocks as used by the jump. - * sched-rgn.c (compute_jump_reg_dependencies): New prototype. - Mark new parameters as unused. - -2003-07-15 Richard Sandiford - - * doc/invoke.texi: Resync MIPS -march documentation. - -2003-07-15 Richard Sandiford - - * config/mips/mips.h (PROCESSOR_R9000): New processor_type. - (TARGET_MIPS9000, TUNE_MIPS9000): New macros. - (GENERATE_MULT3_SI): True for TARGET_MIPS9000. - * config/mips/mips.c (mips_cpu_info_table): Add rm9000 entry. - (mips_rtx_costs): Adjust integer multiplication costs for the rm9000. - (mips_issue_rate): Handle PROCESSOR_R9000. - (mips_use_dfa_pipeline_interface): Likewise. - * config/mips/9000.md: New file. - * config/mips/mips.md: Include it. - (define_attr cpu): Add r9000. - (mulsi3_mult3): Use "mul" for rm9000 code. - -2003-07-15 Stan Cox - - * config/mips/mips.h (PROCESSOR_R7000): New processor_type. - (TARGET_MIPS7000, TUNE_MIPS7000): New macros. - (GENERATE_MULT3_SI): True for TARGET_MIPS7000. - * config/mips/mips.c (mips_cpu_info_table): Add rm7000 entry. - (mips_rtx_costs): Adjust integer multiplication costs for the rm7000. - (mips_issue_rate): Handle PROCESSOR_R7000. - (mips_use_dfa_pipeline_interface): Likewise. - * config/mips/7000.md: New file. - * config/mips/mips.md: Include it. - (define_attr cpu): Add r7000. - (mulsi3_mult3): Use "mul" for rm7000 code. - -2003-07-15 Richard Sandiford - - * config/mips/mips.md (define_attr type): Add condmove. Use it for - the conditional move patterns. - * config/mips/5400.md (ir_vr54_move): Rename to ir_vr54_condmove. - Check for condmove type. - (ir_vr54_arith): Add move type. - * config/mips/5500.md (ir_vr55_move, ir_vr55_arith): Likewise. - * config/mips/sr71k.md (ir_sr70_move, ir_sr70_arith): Likewise. - -2003-07-15 Neil Booth - - * c-opts.c (print_help): Remove. - (c_common_handle_option): Don't handle --help. - * c.opt: Document some options. - (--help): Remove. - * opts.c (print_filtered_help): New. - (print_help): Use it. - -2003-07-14 Geoffrey Keating - - * c-common.c (c_common_type_for_mode): Handle V4DFmode. - * tree.c: (build_common_tree_nodes_2): Likewise. - * tree.h (enum tree_index): Add TI_V4DF_TYPE. - (V4DF_type_node): New. - - * c-opts.c (push_command_line_include): Don't free deferred_opts, - we'll need it. - (finish_options): Reset init_cursor. - -2003-07-15 Kazu Hirata - - * expr.c (expand_assignment): Remove an unused argument - SUGGEST_REG. - * expr.h: Update the prototype. - * function.c: Update the callers. - * stmt.c: Likewise. - -2003-07-14 Mark Mitchell - - PR debug/11098 - * integrate.c (copy_decl_for_inlining): Do not mark copied decls - as DECL_ABSTRACT. - -2003-07-14 Nathanael Nerode - - * fixinc/inclhack.def (avoid_bool_define, avoid_bool_type): Bypass - with __cplusplus, not "we must use the C++ compiler's type" - * fixinc/inclhack.def (void_null): Note that Interix needs this. - * fixinc/fixincl.x: Regenerate. - -2003-07-14 Geoffrey Keating - - * unwind-dw2-fde-darwin.c (live_image_destructor): Get seen_objects - and unseen_objects from the global data before calling - __deregister_frame_info_bases. - (examine_objects): Insert objects into the seen_objects list, - not unseen_objects. - (_Unwind_Find_FDE): Always unlock the global object lists, even if - we couldn't allocate a data structure to put in it. - - * objc/objc-act.h (CLASS_SUPER_NAME): Add a little typechecking. - (TYPE_PROTOCOL_LIST): Share use of type.context with C frontend. - (SET_TYPE_PROTOCOL_LIST): New. - * objc/objc-act.c (get_static_reference): Use SET_TYPE_PROTOCOL_LIST. - (get_object_reference): Likewise. - -2003-07-14 Jan Hubicka - - * cfglayout.c (locator_file): Break out from .... - (insn_file): ... here. - (locator_line): Break out from .... - (insn_line): ... here. - * rtl.h (locator_file, locator_line): Declare. - (final_start_function): Set proper line/file info. - -2003-07-14 Gabriel Dos Reis - - * c-pretty-print.c (pp_c_unary_expression): A CONVERT_EXPR is - handled by pp_c_cast_expression. - -2003-07-14 Richard Sandiford - - * config/mips/mips.c (mips_expand_prologue): Use a single insn to - allocate 32768 bytes of stack. Use addition rather than subtraction - when a single insn is enough. - * config/mips/mips.md: Remove insns and splitters for subtracting - constants. - (subsi3): Only accept register operands. - (subsi3_internal): Likewise. Use for TARGET_MIPS16 as well. - (subdi3_internal_3, subsi3_internal_2): Likewise. - (casesi): Use expand_binop to subtract the lower bound. - -2003-07-14 Richard Sandiford - - * config/mips/mips.c (mips_in_small_data_p): Don't handle - TARGET_MIPS16 specially. - -2003-07-14 Richard Sandiford - - * config/mips/elf.h (ASM_OUTPUT_ALIGNED_BSS): Use - mips_output_aligned_bss. - * config/mips/linux.h: Likewise. - * config/mips/mips-protos.h (mips_output_aligned_bss): Declare. - * config/mips/mips.c (mips_output_aligned_bss): New function. - - * config/mips/elf.h (DBX_DEBUGGING_INFO): Delete. - * config/mips/elf64.h: Likewise. - - * config/mips/elf.h (ASM_DECLARE_OBJECT_NAME): Use - mips_declare_object_name. - (ASM_FINISH_DECLARE_OBJECT): Likewise mips_finish_declare_object. - * config/mips/elf64.h: As for elf.h. - * config/mips/iris6.h: Likewise. - * config/mips/linux.h (ASM_DECLARE_OBJECT_NAME): As for elf.h. - * config/mips/mips.h (ASM_DECLARE_OBJECT_NAME): Remove unnecessary - do...while (0) block. - * config/mips/mips-protos.h (mips_declare_object_name): Declare. - (mips_finish_declare_object): Declare. - * config/mips/mips.c (mips_declare_object_name): New function. - (mips_finish_declare_object): New function. - - * config/mips/elf.h (SBSS_SECTION_ASM_OP): Delete. - * config/mips/linux.h: Likewise. - - * config/mips/mips.c (inside_function): Delete. - (file_in_function_warning, ignore_line_number): Delete. - (mips_output_filename): Don't warn about changing filenames within - a function. - (mips_output_lineno): Update accordingly. - (mips_output_function_prologue): Don't reset the deleted variables. - * config/mips/mips.h (inside_function): Delete. - (file_in_function_warning, ignore_line_number): Delete. - - * config/mips/elf.h (OBJECT_FORMAT_COFF, EXTENDED_COFF): Remove undefs. - * config/mips/elf64.h: Likewise. - * config/mips/openbsd.h: Likewise. - * config/mips/iris5.h (OBJECT_FORMAT_COFF): Remove undefs. - * config/mips/linux.h: Likewise. - * config/mips/mips.h (OBJECT_FORMAT_COFF, EXTENDED_COFF): Delete. - (CODE_MASK, MIPS_IS_STAB, MIPS_MARK_STAB, MIPS_UNMARK_STAB): Delete. - - * config.gcc (mips-sgi-irix6*o32, mips-sgi-irix5*): Add mips/sdb.h - to the list of include files when using gas. - (mips*el-*-openbsd*, mips*-*-openbsd*): Add mips/sdb.h unconditionally. - * config/mips/elf.h: Remove #undef SDB_DEBUGGING_INFO. - * config/mips/elf64.h: Likewise. - * config/mips/iris5.h: Likewise. - * config/mips/linux.h: Likewise. - * config/mips/iris5gas.h (SDB_DEBUGGING_INFO): Remove definition. - * config/mips/mips.h (PREFERRED_DEBUGGING_TYPE): Likewise. - (SDB_DEBUGGING_INFO, sdb*, SDB_ALLOW_*, PUT_SDB*): Move to... - * config/mips/sdb.h: ...this new file. - -2003-07-14 Douglas Rupp - - * fixinc/server.c (server_setup): Don't use non-POSIX NULL first - argument to getcwd; use fixed buffer instead. - -2003-07-14 Nathanael Nerode - - * fixinc/mkfixinc.sh: Treat OpenBSD normally. - * fixinc/fixinc.wrap: Delete. - -2003-07-14 Dan Nicolaescu - - * ggc-page.c (extra_order_size_table): Insns have 9 slots. Regs - don't have 2. - -2003-07-14 Dan Nicolaescu - - * ggc-page.c (struct globals): Add new fields to keep track of the - total allocated memory and overhead. - (ggc_print_statistics): Print them. - (ggc_alloc): Keep track of the total allocated memory and the - overhead. - - * tree.c (dump_tree_statistics): Increase spacing. - (enum tree_node_kind): Move to ... - * tree.h (enum tree_node_kind): ... here. - (tree_node_counts, tree_node_sizes): Declare. - -2003-07-14 James A. Morrison - - * doc/include/texinfo.tex: Upgrade to texinfo 4.6. - -2003-07-14 Franz Sirl - - PR optimization/11440 - * gcse.c (try_replace_reg): Don't attach notes to ZERO_EXTRACT or - SIGN_EXTRACT SETs. - -2003-07-14 Alan Modra - - * doc/tm.texi (BLOCK_REG_PADDING): Describe. - * expr.h (struct locate_and_pad_arg_data): Add where_pad. - (emit_group_load, emit_group_store): Adjust declarations. - Remove most occurrences of #ifdef TREE_CODE. - * expr.c (emit_group_load): Add "type" param, and use - BLOCK_REG_PADDING to determine need for a shift. Optimize non- - aligned accesses if !SLOW_UNALIGNED_ACCESS. - (emit_group_store): Likewise. - (emit_push_insn, expand_assignment, store_expr, expand_expr): Adjust - emit_group_load and emit_group_store calls. - * calls.c (store_unaligned_arguments_into_pseudos): Tidy. Use - BLOCK_REG_PADDING to determine whether we need endian_correction. - (load_register_parameters): Localize vars. Handle shifting of - small values to the correct end of regs. Adjust emit_group_load - call. - (expand_call, emit_library_call_value_1): Adjust emit_group_load - and emit_group_store calls. - * function.c (assign_parms): Set mem alignment for stack slots. - Adjust emit_group_store call. Store values at the "wrong" end - of regs to the stack. Use BLOCK_REG_PADDING. - (locate_and_pad_parm): Save where_pad. - (expand_function_end): Adjust emit_group_load call. - * stmt.c (expand_value_return): Adjust emit_group_load call. - * Makefile.in (calls.o): Depend on $(OPTABS_H). - * config/rs6000/linux64.h (TARGET_LITTLE_ENDIAN): Redefine as 0. - (AGGREGATE_PADDING_FIXED, AGGREGATES_PAD_UPWARD_ALWAYS): Define. - (MUST_PASS_IN_STACK): Define. - (BLOCK_REG_PADDING): Define. - * config/rs6000/rs6000.h (struct rs6000_args): Remove orig_nargs. - (PAD_VARARGS_DOWN): Define in terms of FUNCTION_ARG_PADDING. - * config/rs6000/rs6000.c (init_cumulative_args): Don't set orig_nargs. - (function_arg_padding): !AGGREGATE_PADDING_FIXED compatibility code. - Act on AGGREGATES_PAD_UPWARD_ALWAYS. - -2003-07-13 Aaron W. LaFramboise - - * config/i386/gthr-win32.c (__GTHREAD_HIDE_WIN32API): Define to 1. - -2003-07-13 Richard Kenner - - * expr.c (expand_expr, case COMPONENT_REF): If reg, copy OP0 to MEM - both if OFFSET specified and if result BLKmode for ARRAY_RANGE_REF. - -2003-07-13 Nathanael Nerode - - PR other/11123 - * toplev.c: Don't cut off option names. - -2003-07-13 Andreas Jaeger - - * c-decl.c (link_hash_hash): Avoid warning about casting pointer - to integer of different size. - -2003-07-13 Kazu Hirata - - * combine.c (simplify_comparison): Convert (ne (and (not X) 1) 0) - to (eq (and X 1) 0). - -2003-07-13 Andreas Jaeger - - * config.gcc: Add pmmintrin.h for x86_64-*-*. - -2003-07-13 Zack Weinberg - - * Makefile.in (LIBCPP_DEPS): Remove coretypes.h and $(TM_H). - (hashtable.o, line-map.o, mkdeps.o): Likewise, from dependency - list. Move these all together down by cpplib. - - * cpplib.h: Don't refer to MAX_WCHAR_TYPE_SIZE when determining - definition of CPPCHAR_SIGNED_T. - - * cppcharset.c, cpperror.c, cppexp.c, cppfiles.c, cpphash.c, cppinit.c - * cpplex.c, cpplib.c, cppmacro.c, cpppch.c, cpptrad.c, hashtable.c - * line-map.c, mkdeps.c: Don't include coretypes.h or tm.h. - - * cpphash.c (_cpp_init_hashtable): Don't use gcc_obstack_init. - * cppinit.c (cpp_create_reader): Likewise. - - * cpphash.h (scan_out_logical_line): Rename _cpp_scan_out_logical_line. - * cpptrad.c: Likewise. All callers changed. - * cpplib.c: All callers changed. - * c-ppoutput.c: Replace 'uchar' with 'unsigned char' throughout. - * hashtable.h: Define GTY(x) to nothing here too. - -2003-07-13 Richard Kenner - - * stor-layout.c (compute_record_mode): Remove very obsolete test - that forces BLKmode for records with fields crossing word boundary. - -2003-07-13 Zack Weinberg - - * Makefile.in: Remove orphan reference to acconfig.h. - -2003-07-13 Andreas Jaeger - - * cgraphunit.c: Convert prototypes to ISO C90. - -2003-07-13 Nathanael Nerode - - * fixinc/inclhack.def (avoid_wchar_t_type): Use __cplusplus bypass - (for OpenBSD). - * fixinc/fixincl.x: Rebuild. - -2003-07-12 Zack Weinberg - - * configure.in: Always define HAVE_AS_GOTOFF_IN_DATA for - i?86-*-*. Use correct name of cache variable. - * configure: Regenerate. - -2003-07-12 Kazu Hirata - - * config/alpha/alpha.c: Fix comment typos. - * config/alpha/alpha.md: Likewise. - * config/arm/arm.c: Likewise. - * config/arm/arm.md: Likewise. - * config/arm/lib1funcs.asm: Likewise. - * config/avr/avr.md: Likewise. - * config/arm/README-interworking: Fix typos. - -2003-07-12 Kazu Hirata - - * c-format.c: Fix comment formatting. - * c-typeck.c: Likewise. - * coverage.c: Likewise. - * cppcharset.c: Likewise. - * cpplib.c: Likewise. - * dbxout.c: Likewise. - * gcov-io.h: Likewise. - * toplev.c: Likewise. - -2003-07-12 Nathanael Nerode - - * fixinc/inclhack.def (alpha_sbrk): Note that OpenBSD needs this - fix. - -2003-07-12 Zack Weinberg - - * aclocal.m4 (gcc_AC_CHECK_TYPE): Clone of AC_CHECK_TYPE, - uses three-argument AC_DEFINE so no acconfig.h entries are - needed. - (_gcc_COMPUTE_GAS_VERSION): Also provide gcc_cv_gas_vers - which contains the GAS version number as a scaled integer. - (gcc_GAS_VERSION_GTE_IFELSE): Use gcc_cv_gas_vers. Add - ability to check for ELF assembler. - (gcc_GAS_CHECK_FEATURE): New macro. - * configure.in: Use gcc_AC_CHECK_TYPE. Rewrite all - assembler feature checks using gcc_GAS_CHECK_FEATURE. - Use three-argument AC_DEFINE everywhere. - * acconfig.h: Deleted. - * config.in, configure: Regenerate. - -2003-07-12 Nathanael Nerode - - * fixinc/inclhack.def (struct_sockaddr): Avoid "fixing" sockaddr_in - (on OpenBSD). - * fixinc/fixincl.x: Regenerate. - - * fixinc/inclhack.def (gnu_types): Improve comment. - -2003-07-12 Andreas Jaeger - - * fp-test.c (main): Use ISO C90 prototype. - - * version.c: Remove unneded include of ansidecl.h. - - * cgraph.h: Convert prototypes to ISO C90. - * cgraph.c: Likewise. - * fix-header.c: Likewise. - * ra.h: Likewise. - * protoize.c: Likewise. - -2003-07-12 Jan Hubicka - - * cgraphunit.c (cgraph_inlined_into, cgraph_inlined_calees): Fix - warning. - -2003-07-12 Jan Hubicka - Gerald Pfeifer - - * cgraph.c (cgraph_max_uid): New global variable. - (cgraph_node): Set uid field. - (create_edge): Keep inline flags consistent. - (dump_cgraph): Dump more info. - * cgraph.h (struct cgraph_local_info): Remove inline_many and - can_inline_once; add inlinable, disgread_inline_limits, and self_insn - (struct cgraph_global_info): Add insns, calls, cloned_times, - will_be_output. - (struct cgraph_node): Add uid. - (struct cgraph_edge): Add inline_call. - (cgraph_max_uid, cgraph_inline_p): Declare. - * cgraph.c: Include params.h and fibheap.h - (cgraph_mark_functions_to_inline_once): Kill. - (INSNS_PER_CALL): New constant. - (ncalls_inlined, nfunctions_inlined, initial_insns, overall_insns): New - static variables. - (cgraph_finalize_function): Do not analyze inlining. - (cgraph_finalize_compilation_unit): Set inlining attributes. - (cgraph_mark_functions_to_output): More consistency checks. - (cgraph_optimize_function): Set current_function_decl to NULL. - (cgraph_expand_function): Use new inline flags. - (cgraph_postorder): Expand from cgraph_expand_functions. - (INLINED_TIMES, SET_INLINED_TIMES): New macros. - (cgraph_inlined_into, cgraph_inlined_callees, - cgraph_estimate_size_after_inlining, cgraph_estimate_growth, - cgraph_mark_inline, cgraph_check_inline_limits, - cgraph_default_inline_p, cgraph_decide_inling_of_small_functions, - cgraph_decide_inlining, cgraph_inline_p): New functions. - * params.def (PARAM_LARGE_FUNCTION_INSNS, PARAM_LARGE_FUNCTION_GROWTH, - PARAM_INLINE_UNIT_GROWTH): New parameters. - * tree-inline.c (struct inline_data): New field current_decl. - (expand_call_inline): Avoid forward declarations; use - inlinable_function_p. - (optimize_inline_calls): Set id.current_decl. - -2003-07-11 Andrew Pinski - - * configure.in: Remove wrongly added definition of - local_prefix. - * configure: Regenerate. - -2003-07-11 Dan Nicolaescu - - * rtl.def (NOTE): Do not use padding. - -2003-07-11 Dara Hazeghi - - * doc/install.tex: Update required binutils for i?86-*-linux* - -2003-07-11 Richard Henderson - - * Makefile.in (stage1_build): Force OBJS-onestep=OBJS. - -2003-07-11 Mark Mitchell - - * varasm.c (make_decl_rtl): Treat decls with a DECL_CONTEXT of - TRANSLATION_UNIT_DECL as top_level. - -2003-07-11 Jakub Jelinek - - * optabs.c (prepare_cmp_insn): Try cmpmemM first if it exists, - then fall back to cmpstrM. - * builtins.c (expand_builtin_memcmp): Likewise. - * config/s390/s390-protos.h (s390_expand_cmpstr): Rename to... - (s390_expand_cmpmem): ... this. - * config/s390/s390.md (cmpmemdi, cmpmemsi, cmpmem_short_64, - cmpmem_short_31, cmpmem_long_64, cmpmem_long_31): Renamed - from cmpstr* patterns. Rename call to s390_expand_cmpstr - to s390_expand_cmpmem. - * config/s390/s390.c (s390_expand_cmpstr): Rename to... - (s390_expand_cmpstr): ... this. Rename cmpstr* instructions - to cmpmem*. - * config/i370/i370.md (cmpmemsi, cmpmemsi_1): Renamed from - cmpstr* patterns. - * doc/md.texi (cmpstrM): Describe as String compare insn, not - Block compare insn. - (cmpmemM): Add. - -2003-07-11 Loren James Rittle - - * config/i386/freebsd.h (SET_ASM_OP): Remove. - (SUBTARGET_OVERRIDE_OPTIONS): Handle TARGET_64BIT case. - (ASM_COMMENT_START, ASM_APP_ON, ASM_APP_OFF, DBX_REGISTER_NUMBER - MCOUNT_NAME, SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE_SIZE): Whitespace. - -2003-07-11 Richard Henderson - - * function.c (assign_parms): Don't recombine complex args if - fnargs is unchanged from orig_fnargs. - (split_complex_args): Return args without complex before copying. - Re-layout the modified parameters. - -2003-07-11 J"orn Rennecke - - * regclass.c (choose_hard_reg_mode): Add third argument. - Changed all callers. - * rtl.h (choose_hard_reg_mode): Update declaration. - * dwarf2out.c (expand_builtin_init_dwarf_reg_sizes): - Take HARD_REGNO_CALL_PART_CLOBBERED into account. - -2003-07-11 Geoffrey Keating - - * c-decl.c (finish_decl): Handle 'used' here... - * cgraphunit.c (cgraph_finalize_function): ... and here ... - * c-common.c: (handle_used_attribute): ... not here. - - * configure.in (onstep): Support --enable-intermodule. - * Makefile.in (OBJS-common): New. - (OBJS-md): New. - (OBJS-archive): New. - (OBJS): Build from OBJS-common, OBJS-md, OBJS-archive. - (OBJS-onestep): New. - (libbackend.a): Support @onestep@. - (libbackend.o): New. - * configure: Regenerate. - - * c-common.h (c_reset_state): New prototype. - (c_parse_file): New prototype. - (finish_file): Move prototype from c-tree.h. - * c-decl.c: Include . - (builtin_decls): New. - (current_file_decl): New. - (duplicate_decls): Add extra parameter. Change all callers. Don't - output duplicate common symbols. - (link_hash_hash): New. - (link_hash_eq): New. - (poplevel): Handle popping of the top level. - (warn_if_shadowing): Handle TRANSLATION_UNIT_DECL. - (pushdecl): Set DECL_CONTEXT to TRANSLATION_UNIT_DECL if appropriate. - (pushdecl_top_level): Likewise. - (redeclaration_error_message): Handle TRANSLATION_UNIT_DECL. - (c_init_decl_processing): Create TRANSLATION_UNIT_DECL. - (finish_decl): Handle TRANSLATION_UNIT_DECL. - (merge_translation_unit_decls): New. - (c_write_global_declarations): New. - (c_reset_state): New. - (implicitly_declare): Handle TRANSLATION_UNIT_DECL. - * c-lang.c (LANG_HOOKS_WRITE_GLOBALS): New. - * c-objc-common.c (c_cannot_inline_tree_fn): Handle - TRANSLATION_UNIT_DECL. - (c_objc_common_finish_file): Call merge_translation_unit_decls. - * c-opts.c (in_fnames): Rename from in_fname. - (c_common_decode_option): Handle multiple input filenames. - (c_common_post_options): Likewise. - (c_common_parse_file): Likewise; also, call c_parse_file rather than - yyparse. - * c-parse.in: Move cleanup code to c_parse_file. - (free_parser_stacks): Move contents to c_parse_file. - (c_parse_file): New. - * c-tree.h (union lang_tree_node): Chain along TYPE_NEXT_VARIANT - for integer types. - (C_DECL_FILE_SCOPE): New. - (finish_file): Move prototype to c-common.h. - (merge_translation_unit_decls): New prototype. - (comptypes): Add extra parameter to prototype. - (c_write_global_declarations): New prototype. - * c-typeck.c (tagged_types_tu_compatible_p): New. - (function_types_compatible_p): Add extra parameter, change all callers. - (type_lists_compatible_p): Likewise. - (comptypes): Likewise. - (struct tagged_tu_seen): New. - (tagged_tu_seen_base): New. - (build_unary_op): Handle TRANSLATION_UNIT_DECL. - (c_mark_addressable): Remove #if 0 code. - * calls.c (special_function_p): Handle TRANSLATION_UNIT_DECL, add - comment explaining why it shouldn't have to. - * cgraph.h (struct cgraph_node): Add chain_next and chain_prev GTY - options. - * cppinit.c (cpp_read_next_file): New. - (cpp_read_main_file): Use it. - * cpplib.c (undefine_macros): New. - (cpp_undef_all): New. - * cpplib.h (cpp_read_next_file): Prototype. - (cpp_undef_all): Prototype. - * langhooks-def.h (write_global_declarations): Remove prototype. - * toplev.h (write_global_declarations): Add prototype. - * tree.c (decl_type_context): Use switch statement, handle - TRANSLATION_UNIT_DECL. - * tree.def: Update documentation for TRANSLATION_UNIT_DECL. - (TRANSLATION_UNIT_DECL): New kind of tree. - * tree.h: Update documentation for TRANSLATION_UNIT_DECL. - * Makefile.in (c-decl.o): Add $(HASHTAB_H) to dependencies. - * doc/invoke.texi: Make attempt to document new functionality. - - 2003-05-19 Per Bothner - - * gcc.c (combine_inputs): New. - (process_command): Set combine_inputs. - (do_spec_1): Handle combine_inputs. - (main): Likewise. - -2003-07-10 James E Wilson - - PR optimization/9745 - * loop.c (loop_iv_add_mult_emit_before): Call loop_regs_update before - loop_insn_emit_before. - (loop_iv_add_mult_sink, loop_iv_add_mult_hoist): Likewise. - -2003-07-10 Zack Weinberg - - * cppcharset.c: Fix comment. - (iconv_close [!HAVE_ICONV]): #define to (void)0 to prevent warning. - (EILSEQ): #define to EINVAL if not already defined. - (convert_using_iconv): #if out when !HAVE_ICONV. - (init_iconv_desc): Handle !HAVE_ICONV here... - (cpp_init_iconv): ...not here. - -2003-07-11 Neil Booth - - * common.opt: More --help messages. - * opts.c (print_help): Use puts(). - * toplev.c (f_options): Remove help text. - (display_help): Don't dump f_options. - -2003-07-11 Nathanael Nerode - - * fixinc/mkfixinc.sh: Drop reference to unsupported alpha-*-interix*. - Move i?86-*-interix* to the don't-fix list. - * fixinc/fixinc.interix: Delete with extreme prejudice. - -2003-07-10 Dara Hazeghi - - PR bootstrap/10758 - * doc/install.texi: Document requirements for ia64-*-hpux* target. - -2003-07-10 Roger Sayle - - * config/ia64/hpux.h (TARGET_C99_FUNCTIONS): Define. - -2003-07-10 Zack Weinberg - - * cppcharset.c (one_utf8_to_cppchar, one_cppchar_to_utf8, - one_utf8_to_utf32, one_utf32_to_utf8, one_utf8_to_utf16, - one_utf16_to_utf8, conversion_loop, convert_utf8_utf16, - convert_utf8_utf32, convert_utf16_utf8, convert_utf32_utf8, - convert_no_conversion, convert_using_iconv): New functions. - (APPLY_CONVERSION): New macro. - (struct conversion, conversion_tab): New data structure. - (init_iconv_desc): Check conversion_tab for a custom conversion - primitive before trying to use iconv. - (convert_cset): Deleted. - (cpp_init_iconv): Use UTF- terminology, not UCS-. - (_cpp_destroy_iconv): Update to match. - (_cpp_valid_ucn): We don't need iconv to implement UCNs. - (convert_ucn): Use one_cppchar_to_utf8 and APPLY_CONVERSION. - (convert_escape, cpp_interpret_string): Use APPLY_CONVERSION. - (_cpp_interpret_string_notranslate): New function, moved here - from cpplib.c. - - * cpphash.h (convert_f, struct cset_converter): New types. - (struct cpp_reader): narrow_cset_desc and wide_cset_desc - are now struct cset_converter, not bare iconv_t. - Update prototypes. - * cpplib.c (interpret_string_notranslate): Moved to cppcharset.c; - all callers changed. - -2003-07-10 Kelley Cook - - * Makefile.in (options.h): Depend on Makefile. Add move-if-change - to opts.sh command line. - * opts.sh: Write to temporary files with a move-if-change at the end. - -2003-07-10 Denis Chertykov - Richard Kenner - - * combine.c (gen_binary): Handle the CLOBBER rtx and - don't build a binary operation with it. - -2003-07-10 Zdenek Dvorak - - * gcse.c (load_kills_store, find_loads, store_killed_in_insn, - store_killed_after, store_killed_before): Keep track of the correct - dependency function to use. - -2003-07-10 Steven Bosscher - * toplev.c (do_compile): Don't try to open dump files before - lang_dependent_init initializes dump_base_name. - -2003-07-10 Kaveh R. Ghazi - - * config/arm/arm.c (arm_init_iwmmxt_builtins, arm_expand_builtin): - Use ARRAY_SIZE. - * config/frv/frv.c (frv_expand_builtin): Likewise. - * config/sh/sh.c (sh_media_init_builtins): Likewise. - -2003-07-09 Mark Mitchell - - PR c++/10032 - * doc/invoke.texi (C++ Dialect Options): Change documentation of - -fpermissive. - -2003-07-10 J"orn Rennecke - - * tm.texi (RETURN_ADDR_OFFSET): Document. - -2003-07-10 Nathan Sidwell - - * gcov-io.h: Update documentation. - (GCOV_UNSIGNED2STRING): New. - (GCOV_TAG_FUNCTION_LENGTH, GCOV_TAG_BLOCKS_LENGTH, - GCOV_TAG_ARCS_LENGTH, GCOV_TAG_COUNTER_LENGTH, - GCOV_TAG_SUMMARY_LENGTH): Adjust. - (GCOV_TAG_BLOCKS_NUM, GCOV_TAG_ARCS_NUM, - GCOV_TAG_COUNTER_NUM): New. - (GCOV_BLOCK_SIZE): Number of words. - (gcov_var): Adjust buffer type. - * gcov-io.c (gcov_write_bytes, gcov_read_bytes): Rename to ... - (gcov_write_words, gcov_read_words): ... here. Take a 4-byte word - count, not byte count. - (gcov_open): Adjust overread init. - (gcov_allocate, gcov_write_unsigned, gcov_write_counter, - gcov_write_string, gcov_write_tag, gcov_write_length, - gcov_write_tag_length): Adjust. - (gcov_read_unsigned, gcov_read_counter, gcov_read_string): Adjust. - (gcov_sync, gcov_seek): Adjust. - * gcov-dump.c (print_usage): Show gcc version only. - (dump_file): Use GCOV_UNSIGNED2STRING. - (tag_blocks, tag_arcs, tag_counters): Use GCOV_TAG_*_NUM macros. - * gcov.c (print_version): Show gcc version only. - (read_graph_file): Use GCOV_UNSIGNED2STRING. Use - GCOV_TAG_*_NUM macros. - (read_count_file): Use GCOV_UNSIGNED2STRING. Use - GCOV_TAG_COUNTER_LENGTH. - * coverage.c (read_counts_file): Use GCOV_UNSIGNED2STRING. - Use GCOV_TAG_COUNTER_NUM. - * libgcov.c (gcov_version): Use GCOV_UNSIGNED2STRING. - (__gcov_merge_single, __gcov_merge_delta): Use GCOV_CHECK. - -2003-07-10 Andreas Schwab - - * gcov-dump.c (dump_file): Fix missing address operator. - -2003-07-10 Kazu Hirata - - PR c/11449 - * fold-const.c (sign_bit_p): Return EXP if VAL is the sign bit - of HOST_WIDE_INT. - (fold_single_bit_test): If sign_bit_p() fails, assume that the - bit being tested is not a sign bit. - -2003-07-10 Kazu Hirata - - * config/h8300/h8300.md (a peephole2): New. - -2003-07-10 Alexandre Oliva - - 2001-12-13 Alexandre Oliva - * config/mn10300/linux.h (LINK_SPEC): Rename the dynamic linker - from ld-linux.so.2 to ld.so.1. - 2001-11-18 Alexandre Oliva - * config/mn10300/linux.h (LINK_SPEC): -lpthread, not -lthread. - * config/mn10300/linux.h (LINK_SPEC): Don't handle -Wl,-rpath - nor -Wl,-rpath-link. - (LIB_SPEC): Add -rpath-link if !static. - 2001-08-22 Alexandre Oliva - * config/mn10300/mn10300.c (mn10300_protect_label): New - variable. - * config/mn10300/linux.h (PRINT_OPERAND, - PRINT_OPERAND_ADDRESS): Set it during their execution. - (ASM_OUTPUT_LABELREF): Output `+' before symbol name if - mn10300_protect_label is set. - * config/mn10300/linux.h (LINK_SPEC): Recognize -Wl,-rpath and - -Wl,-rpath-link. - (LIB_SPEC, STARTFILE_SPEC): Define. - 2001-05-11 Alexandre Oliva - * config/mn10300/t-linux (dp-bit.c, fp-bit.c): Don't define - FLOAT_BIT_ORDER_MISMATCH. - 2001-05-09 Alexandre Oliva - * config.gcc (am33_2.0-*-linux*): Added. - * config/mn10300/linux.h: New. - * config/mn10300/t-linux: New. - -2003-07-10 Andreas Jaeger - - * fold-const.c: Properly wrap prototypes. - -2003-07-09 Alexandre Oliva - - 2003-06-16 Alexandre Oliva - * config/mn10300/mn10300.c (mn10300_unspec_int_label_counter): - Moved from... - * config/mn10300/mn10300.md (GOTaddr2picreg): ... here. - * config/mn10300/mn10300.h: GTY-declare it. - 2003-06-11 Alexandre Oliva - * config/mn10300/mn10300.c (mn10300_encode_section_info): Fix - prototype. Use incoming RTL argument. - 2002-12-12 Alexandre Oliva - * config/mn10300/mn10300.md (int_label): Move C statements... - (GOTaddr2picreg): ... here. - 2002-08-15 Alexandre Oliva - * config/mn10300/mn10300.h (ENCODE_SECTION_INFO): Move... - * config/mn10300/mn10300.c (mn10300_encode_section_info): - ... here. New function. - (TARGET_ENCODE_SECTION_INFO): Define to it. - 2001-11-04 Alexandre Oliva - * config/mn10300/mn10300.md (builtin_setjmp_receiver): Fix typo in - pattern name. - (mn10300_loadPC): Define as insn splittable after reload. - 2001-05-13 Alexandre Oliva - * config/sh/mn10300.h (JUMP_TABLES_IN_TEXT_SECTION): Let them - be defined in .rodata even in PIC, now that the assembler - supports that. - 2001-05-09 Alexandre Oliva - * config/mn10300/mn10300.h (GOT_SYMBOL_NAME): Don't let the - symbol take an underscore prefix. - 2001-04-14 Alexandre Oliva - * config/mn10300/mn10300-protos.h (legitimate_pic_operand_p, - legitimize_pic_address): Declare. - * config/mn10300/mn10300.h (CONDITIONAL_REGISTER_USAGE): Mark - the PIC register as fixed. - (EXTRA_CONSTRAINT): Match UNSPEC_PLT and UNSPEC_PIC for 'S'. - (GO_IF_LEGITIMATE_ADDRESS): Require legitimate_pic_operand for - PIC. - (LEGITIMATE_PIC_OPERAND_P): Define. - (PIC_OFFSET_TABLE_REGNUM): Define. - (GOT_SYMBOL_NAME): Define. - (SYMBOLIC_CONST_P): Define. - (ENCODE_SECTION_INFO): Use SYMBOL_REF_FLAG to mark local - symbols. - (MN10300_GLOBAL_P): Test it. - (OUTPUT_ADDR_CONST_EXTRA): Handle PIC-related unspecs. - (JUMP_TABLES_IN_TEXT_SECTION): Enable for PIC. - * config/mn10300/mn10300.c (print_operand): Handle unspec. - (expand_prologue): Set PIC register. - (call_address_operand): Don't match SYMBOL_REFs in PIC. - (legitimize_address): Call legitimize_pic_address. - (legitimize_pic_address): New fn. - (legitimate_pic_operand_p): New fn. - * config/mn10300/mn10300.md (PIC_REG, SP_REG): New constants. - (UNSPEC_INT_LABEL, UNSPEC_PIC, UNSPEC_GOT, UNSPEC_GOTOFF, - UNSPEC_PLT): New constants. - (pop_pic_reg): New insn. - (movsi): Adjust non-PIC addresses. - (builtin_setjmp_receiver): Restore the PIC register. - (casesi): New insn. - (call): Adjust non-PIC addresses. - (int_label, GOTaddr2picreg): New expands. - (am33_loadPC): New insn. - (mn10300_loadPC): New expand. - (call_next_insn): New insn. - (add_GOT_to_pic_reg): New expand. - (symGOT2reg, symGOT2reg_i): New expands. - (symGOTOFF2reg, symGOTOFF2reg_i): New expands. - (sym2PIC, sym2PLT): New expands. - -2003-07-09 Alexandre Oliva - - * config/mn10300/mn10300.h (PREDICATE_CODES): Define. - 2001-05-01 Alexandre Oliva - * config/mn10300/mn10300.md (sqrtsf2): flag_fast_math was renamed - to flag_unsafe_math_optimizations. - 2001-04-14 Alexandre Oliva - * config/mn10300/mn10300.c (expand_prologue): Mark - FP-register-saving insns as frame-related. - 2001-02-13 Alexandre Oliva - * config/mn10300/mn10300.c - (mn10300_get_live_callee_saved_regs): Don't search past - LAST_EXTENDED_REGNUM. - (mn10300_gen_multiple_store, store_multiple_operation): Likewise. - * config/mn10300/mn10300.md: Remove excessive line breaks from - `@' output patterns that were accounted as additional - alternatives. - * config/mn10300/mn10300.md, config/mn10300/mn10300.c: - Re-introduce changes accidentally removed in Richard Sandiford's - 2000-12-05's patch. - * config/mn10300/t-mn10300 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): - Re-instate am33-2 lost in merge from net GCC. - 2000-08-26 Alexandre Oliva - * config/mn10300/mn10300.h (DBX_REGISTER_NUMBER): Added - floating-point registers. - 2000-08-07 Alexandre Oliva - * config/mn10300/mn10300.md (movdf): Revert some am33-specific - pessimizations that had gone in on 2000-05-08. - 2000-06-28 Graham Stott - * config/mn10300/mn10300.h (REG_CLASS_CONTENTS): Fix typo. - 2000-06-22 Graham Stott - * config/mn10300/mn10300.md (movqi): Use nonimmediate_operand for - operand 0. - * (movhi): Likewise. - * (movsi): Likewise. - * (movsf): Likewise. - * (movdi): Likewise. - * (movdf): Likewise. - 2000-05-24 Alexandre Oliva - * config/mn10300/mn10300.c (fp_regs_to_save): New function. - (can_use_return_insn, initial_offset): Add fp_regs_to_save. - (expand_prologue, expand_epilogue): Save and restore FP regs. - 2000-05-20 Alexandre Oliva - * config/mn10300/mn10300.md (movdi, movdf): 64-bit clean-up. - 2000-05-13 Alexandre Oliva - * config/mn10300/mn10300.md (abssf2, negsf2, rsqrtsf2, addsf3, - subsf3, mulsf3, divsf3, fmaddsf4, fmsubsf4, fnmaddsf4, fnmsubsf4): - Do not clobber cc0. - 2000-05-12 Alexandre Oliva - * config/mn10300/mn10300.md (abssf2, negsf2, rsqrtsf2): - Discourage the two-argument, longer opcodes. - (addsf3, subsf3, mulsf3, divsf3): Likewise for three-argument - ones. - * config/mn10300/mn10300.h (struct mn10300_cc_status_mdep): New. - (CC_STATUS_MDEP, CC_STATUS_MDEP_INIT): Define. - * config/mn10300/mn10300.md (cmpsf): New pattern. - (branch): Test mdep.fpCC and output fbCC. - * config/mn10300/mn10300.c (print_operand): Output conditions. - (notice_cc_update): Recognize fcmp and set mdep.fpCC. - 2000-05-10 Alexandre Oliva - * config/mn10300/mn10300.md (movsf, movdf, addsf3, subsf3, - mulsf3, divsf3): Use the `F' constraint for FP values. - * config/mn10300/mn10300.c (const_1f_operand): New function. - * config/mn10300/mn10300-protos.h (const_1f_operand): Declare. - * config/mn10300/mn10300.md (sqrtsf2): New expand. - (rsqrtsf2): New insn. - 2000-05-09 Alexandre Oliva - * config/mn10300/mn10300.md (movdf): Oops, I missed it in my - previous check-in. - 2000-05-08 Alexandre Oliva - * config/mn10300/mn10300.md (abssf2, negdf2): On - TARGET_AM33_2, expand to... - (abssf2_am33_2, negdf2_am33_2): New insns. - (addsf3, subsf3, mulsf3, divsf3): Likewise. - (fmaddsf4, fmsubsf4, fnmaddsf4, fnmsubsf4): Likewise. - * config/mn10300/mn10300.md (movqi, movhi, movsi, movsf, - movdi, movdf): Added FP regs. - * invoke.texi (-mam33-2, -mno-am33-2): Document. - 2000-04-29 Alexandre Oliva - * config/mn10300/mn10300.h (FIRST_FP_REGNUM, LAST_FP_REGNUM): - New macros. - (REGNO_AM33_2_FP_P): Renamed to... - (REGNO_FP_P): Redefine in terms of FIRST_* and LAST_*. - (CONDITIONAL_REGISTER_USAGE, REGNO_REG_CLASS): Likewise. - 2000-04-27 Alexandre Oliva - * config/mn10300/mn10300.h (REG_CLASS_CONTENTS): Remove FP - regs from GENERAL_REGS. - 2000-04-27 Alexandre Oliva - * config/mn10300/mn10300.h (REGNO_AM33_2_FP_P): New macro. - * config/mn10300/mn10300.c (mn10300_address_cost): Added FP_REGS. - * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Added FP_REGS. - 2000-04-23 Alexandre Oliva - * config/mn10300/mn10300.h (CLASS_CANNOT_CHANGE_SIZE): Defined - as FP_REGS. - 2000-04-21 Alexandre Oliva - * config/mn10300/mn10300.h (OK_FOR_Q): New macro. - (EXTRA_CONSTRAINT): Added OK_FOR_Q. - * config/mn10300/mn10300.c (secondary_reload_class): Adjust. - * config/mn10300/mn10300.c (print_operand): Support `D' for doubles. - * config/mn10300/mn10300.h (FIRST_PSEUDO_REGISTER): Adjust. - (FIXED_REGISTERS, CALL_USED_REGISTERS, REG_ALLOC_ORDER): Added - AM33/2.0 floating-point registers. - (CONDITIONAL_REGISTER_USAGE): Adjust. - (enum reg_class, REG_CLASS_NAMES): Added FP_REGS and FP_ACC_REGS. - (REG_CLASS_CONTENTS, REGNO_REG_CLASS): Adjust. - (REG_CLASS_FROM_LETTER): Added `f' and `A'. - (REGISTER_NAMES, ADDITIONAL_REGISTER_NAMES): Adjust. - * config/mn10300/t-mn10300 (MULTILIB_OPTIONS): Added am33-2. - (MULTILIB_DIRNAMES): Likewise. - * config/mn10300/mn10300.h (CPP_SPEC): Define `__AM33__=2' and - `__AM33_2__' when `-mam33-2' is given. - (TARGET_AM33_2): Define. - (TARGET_SWITCHES): Adjust. - * config/mn10300/mn10300.c (asm_file_start): Print `.am33_2' - when appropriate. - -2003-07-09 Matt Kraai - - * doc/install.texi: Add missing @. - -2003-07-09 Bob Wilson - - * config/xtensa/xtensa.h (CRT_CALL_STATIC_FUNCTION): Define. - -2003-07-09 Aldy Hernandez - - PR/11144 - * config/i386/i386.c (ix86_function_arg_boundary): Remove abort. - -2003-07-09 Nathanael Nerode - - PR bootstrap/11043 - * config/arc/t-arc: Replace bogus references to "x-crtinit.o", - "x-crtfini.o" with "crtinit.o", "crtfini.o". - - * fixinc/inclhack.def (limits_ifndefs): Add select test. - * fixinc/fixincl.x: Rebuild. - - * fixinc/inclhack.def (math_exception): Improve bypass and comment. - * fixinc/fixincl.x: Rebuild. - -2003-07-09 Hans-Peter Nilsson - - * doc/install.texi (Configuration): Document the valgrind option - to --enable-checking. - -2003-07-09 Jan Hubicka - - * objc-lang.c (LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS): New. - -2003-07-09 Rainer Orth - - * c-lex.c (cb_ident): Cast cstr.text to const char *. - -2003-07-09 Nathan Sidwell - - * gcov-io.h: Update documentation. - (GCOV_GRAPH_SUFFIX, GCOV_GRAPH_MAGIC): Rename to GCOV_NOTE_SUFFIX, - GCOV_NOTE_MAGIC. - (GCOV_DATA_SUFFIX, GCOV_NOTE_SUFFIX): Update. - (GCOV_DATA_MAGIC, GCOV_NOTE_MAGIC): Make non-palindromic. - (struct gcov_var): Change buffer's type. Add endian flag. - (gcov_open): Remove mode in libgcov. - (gcov_magic): Prototype. - * gcov-io.c (from_file): New. - (gcov_open): Clear endian flag. - (gcov_magic): New. - (gcov_write_bytes, gcov_read_bytes): Return gcov_unsigned_t - pointers. - (gcov_write_unsigned, gcov_write_counter, gcov_write_string, - gcov_write_tag, gcov_write_length, gcov_write_tag_length): Update. - (gcov_read_unsigned, gcov_read_counter, gcov_read_string): Update. - * gcov-iov.c (main): Correct cast. - * coverage.c (read_counts_file): Use gcov_magic. Remove endianness - conversion. - (gcov_begin_output): Use GCOV_NOTE_MAGIC. - (coverage_init): Use GCOV_NOTE_SUFFIX. - * libgcov.c (gcov_version_mismatch): Remove endianness conversion. - Rename to gcov_version, and return flag. - (gcov_exit): Use gcov_version. - (__gcov_init): Use gcov_version. - * Makefile.in (coverageexts): Update. - * gcov.c (print_version): Remove endianness conversion. - (create_file_names): Use GCOV_NOTE_SUFFIX. - (read_graph_file): Use gcov_magic. - (read_count_file): Likewise. - * gcov-dump.c (dump_file): Remove endianness conversion, use - gcov_magic. - -2003-07-09 Nathan Sidwell - - * configure.in (BUILD_PREFIX, BUILD_PREFIX_1): Set if enable - coverage is on. - * configure: Regenerated. - * Makefile.in (ALL_CFLAGS): Correct its comment. - -2003-07-08 Mark Mitchell - - * fold-const.c (make_range): Do not access operand 1 for a - zero-operand operator. - -2003-07-09 Neil Booth - - * toplev.c (warn_dummy, W_options): Die. - (display_help): Don't print W_options. - * common.opt: Add W_options help from toplev.c. - -2003-07-09 Andreas Jaeger - - * opts.c (wrap_help): Only pass int arguments as arguments to - printf's '*' modifier. Change argument of function. - -2003-07-08 Matt Kraai - - * doc/invoke.texi: Fix misspelling of "@item". - -2003-07-08 Kazu Hirata - - * config/i386/i386.md: Remove an old comment about - NOTICE_UPDATE_CC. - -2003-07-09 Jan Hubicka - - * cgraph.c (cgraph_node_name): New function. - (dump_cgraph): Use it. - * cgraph.h (cgraph_dump_file): Declare. - (cgraph_node_name): Declare. - * cgraphunit.c: Include timevar.h - (cgraph_finalize_compilation_unit): Use timevar; reorganize dumps. - (cgraph_optimize_function): Use TV_INTEGRATION. - (cgraph_mark_local_functions): reorganize dumps. - (cgraph_mark_functions_to_inline_once): Likewise. - (cgraph_optimize): Likewise; use timevar. - * timevar.def (TV_CGRAPH, TV_CGRAPHOPT): New. - * toplev.c (dump_file_index): Add DFI_cgraph. - (dump_file_info): Likewise. - (cgraph_dump_file): New global variable. - (do_compile): Open and close cgraph dump. - * invoke.texi (-d): Document new flag; renumber. - -2003-07-08 Roger Sayle - - PR c/11370 - * calls.c (emit_call_1): Don't bother popping the arguments off of - the stack after a noreturn function call; The adjustment is dead. - (expand_call): Likewise. - -2003-07-08 Geoffrey Keating - - * expr.c (MOVE_MAX_PIECES): Move from here... - * defaults.h (MOVE_MAX_PIECES): ... to here. - -2003-07-08 Matt Kraai - - * Makefile.in (stage1-start): Handle an empty SUBDIRS. - -2003-07-08 Kaveh R. Ghazi - - * genattr.c (internal_dfa_insn_code): Don't prototype. - * genattrtab.c (attr_desc): Add `static_p' field. - (expand_units): Make blockage range and ready cost functions - static. - (write_attr_get): Don't add extern prototypes in C file. Mark - static functions as appropriate. - (find_attr, make_internal_attr): Initialize static_p. - * genattrtab.h (ATTR_STATIC): New macro. - * genautomata.c (output_internal_reset_func): Mark output function - as inline. - (make_internal_dfa_insn_code_attr): Mark output function as static. - -2003-07-08 Kaveh R. Ghazi - - * genattrtab.h: Add new macros for attr `special' flags. - * genattrtab.c (attr_desc): Reorder/resize fields better. - Use attr `special' macros in all calls to make_internal_attr. - * genautomata.c: Likewise. - -2003-07-09 Jan Hubicka - - * c-common.c (c_estimate_num_insns_1): New static function. - (c_estimate_num_insns): New global function. - * c-common.h (DECL_NUM_STMTS): Rename to... - (DECL_ESTIMATED_INSNS): ... this. - (c_estimate_num_insns): Declare. - * c-decl.c (duplicate_decls): Use DECL_ESTIMATED_INSNS. - * c-lang.c (LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS): New. - * c-semantics.c (add_stmt): Do not account statements. - * langhooks-def.h (LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS): - New. - * langhooks.h (lang_hooks_for_tree_inlining): Add - estimate_num_insns - * params.def (max-inline-insns-auto, max-inline-insns-auto): set - to 100. - (max-inline-insns): set to 300. - (min-inline-insns): set to 10. - * tree-inline.c (struct inline_data): Rename inlined_stmts to - inlined-insns. - (INSNS_PER_STMT): Kill. - (inlinable_function_p): Compute and store body size. - (expand_call_inline): Likewise. - (optimize_inline_calls): Likewise. - -2003-07-08 James E Wilson - - PR target/10021 - * emit-rtl.c (set_mem_attribute_minus_bitpos): When handle ARRAY_REF, - loop over new variable t2 instead of t. - -2003-07-08 Danny Smith - - PR bootstrap/11455 - * config/i386/winnt.c: Replace use of error(), warning() with - error_with_decl(), warning_with_decl(), throughout. - -2003-07-08 Neil Booth - - * opts.c (wrap_help): Use unsigned int, not size_t. - -2003-07-08 Stephane Carrez - - * config/m68hc11/m68hc11.h (HAVE_AS_DWARF2_DEBUG_LINE): Don't define - as .file/.loc directives are incompatible with linker relaxation. - -2003-07-08 Zack Weinberg - - * Makefile.in (fixinc.sh): Remove gnu-regex.[ch] from dependencies. - * fixinc/Makefile.in: Remove all references to gnu-regex.[och]. - * fixinc/fixfixes.c, fixinc/fixincl.c, fixinc/fixlib.c - * fixinc/fixtests.c: Use xregexec not regexec, xregcomp not regcomp. - * fixinc/fixlib.h: Include xregex.h not gnu-regex.h. - * fixinc/inclhack.def (hpux10_cpp_pow_inline, hpux11_cpp_pow_inline): - Escape { and } characters which are not part of range expressions. - * fixinc/fixincl.x: Regenerate. - * fixinc/gnu-regex.c, fixinc/gnu-regex.h: Delete file. - -2003-07-08 Steven Bosscher - - PR c/1687 - * tree-inline.c (find_alloca_call): Use - walk_tree_without_duplicates, instead of walk_tree. - (find_builtin_longjmp_call): Likewise. - * c-objc-common.c (c_cannot_inline_fn): Likewise. - * c-semantics.c (find_reachable_label): Likewise. - -2003-07-08 Jakub Jelinek - - PR c/11420 - * config/i386/i386.c (ix86_check_movabs): New function. - * config/i386/i386-protos.h (ix86_check_movabs): New prototype. - * config/i386/i386.md (movabs[shqd]i_1_rex64): Kill broken alternative. - (movabs[shqd]i_[12]_rex64): Add ix86_check_movabs check to conditions. - -2003-07-08 Chris Demetriou - - * Makefile.in (install-po): Cope with empty CATALOGS. - -2003-07-08 Richard Sandiford - - * config/mips/elf64.h (TARGET_ASM_UNIQUE_SECTION): Delete. - (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete. - (SECTION_FUNCTION_TEMPLATE): Delete. - * config/mips/elf.h: As for elf64.h. - (ASM_OUTPUT_ALIGNED_BSS): Use named_section rather than sbss_section. - * config/mips/linux.h: As for elf.h - * config/mips/iris6gld.h (TARGET_ASM_UNIQUE_SECTION): Delete. - * config/mips/iris6.h (EXTRA_SECTIONS): Delete. - (EXTRA_SECTION_FUNCTIONS): Remove sdata_section. Remove the handling - of in_sdata from current_section_name and current_section_flags. - * config/mips/iris6gld.h (TARGET_ASM_UNIQUE_SECTION): Delete. - * config/mips/mips.h (sdata_section, sbss_section): Remove prototypes. - (MASK_GP_OPT, TARGET_GP_OPT): Delete. - (MASK_NO_FUSED_MADD): Use MASK_GP_OPT's old value. - (TARGET_SWITCHES): Neuter gpOPT, gpopt, no-gpOPT and no-gpopt. - (SMALL_DATA_SECTION, EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Remove. - * config/mips/mips.c (TARGET_IN_SMALL_DATA_P): Override. - (TARGET_SECTION_TYPE_FLAGS): Override if TARGET_IRIX6. - (mips_classify_symbol): Use SYMBOL_REF_SMALL_P. - (override_options): Remove setting of MASK_GPOPT. - (mips_output_external): Use mips_in_small_data_p to check whether a - symbol needs an .extern directive. Don't emit such directives for - TARGET_EXPLICIT_RELOCS. - (mips_declare_object): Update accordingly. - (mips_select_rtx_section): Call named_section rather than - SMALL_DATA_SECTION. - (mips_select_section): Use default_elf_section_section for everything - except .text string constants. - (mips_in_small_data_p): New function. - (mips_encode_section_info): Remove small data handling. - (mips_unique_section): Delete. - (iris6_section_type_flags): New function. - * doc/tm.texi: Remove documentation of -mgpopt and -mhalf-pic. - -2003-07-08 John David Anglin - - PR Target/11453 - * pa.md: Disparage all mtsar constraints. - (extzv, extv, insv): Don't fail on length of {32|64}. - -2003-07-08 Zack Weinberg - - * system.h: Poison MAP_CHARACTER. - * config/i370/i370-protos.h (mvs_map_char): Delete. - * config/i370/i370.c (ascebc, ebcasc, mvs_map_char): Delete. - * config/i370/i370.h (MAP_CHARACTER): Delete definition. - (ASM_OUTPUT_ASCII): Don't use MAP_CHARACTER. - -2003-07-08 Danny Smith - - * toplev.c (randomize): Correct call to time(). - -2003-07-08 Jakub Jelinek - - * unroll.c (reg_dead_after_loop): Check for reg in REG_EQUAL and - REG_EQUIV notes as well. - -2003-07-08 Kazu Hirata - - * doc/md.texi: Fix the description of addmodecc. - -2003-07-07 Zack Weinberg - - * Makefile.in (top_builddir): Set to "..", not ".". - (INTLLIBS, INTLDEPS): Delete. - (LIBINTL, LIBINTL_DEP, LIBICONV_DEP): New variables to be substituted. - (LIBDEPS): Add $(LIBICONV_DEP). - (LIBS): Take out $(INTLLIBS), add $(LIBINTL) and $(LIBICONV). - (INCLUDES): Replace -I../intl with @INCINTL@. - ($(top_builddir)/intl/libintl.a): Delete rule. - (stage2-start, stage3-start, stage4-start, stageprofile-start, - stagefeedback-start): Use $$ for variable to be evaluated by - shell, not make. - * acconfig.h (ENABLE_NLS, HAVE_CATGETS, HAVE_GETTEXT, - HAVE_LC_MESSAGES, HAVE_STPCPY): Delete. - * aclocal.m4: sinclude ../config/progtest.m4. Add - contents of lcmessage.m4 from gettext distro. - * configure.in: Check for wchar.h and setlocale. Set - LIBICONV_DEP to the empty string and substitute it. - Call AM_LC_MESSAGES. Delete AC_ARG_ENABLE for --enable-nls; - this is handled elsewhere. Use ZW_GNU_GETTEXT_SISTER_DIR, - not CY_GNU_GETTEXT. Clear $LIBICONV if its text is included - in $LIBINTL, to avoid linking it twice. - * configure, config.in: Regenerate. - -2003-07-08 Nathanael Nerode - - * fixinc/mkfixinc.sh: Remove winnt support. - * fixinc/fixinc.winnt: Delete with extreme prejudice. - -2003-07-08 Neil Booth - - * Makefile.in: Update. - * c-opts.c (c_common_handle_option): opt_text now contains the '-'. - * c.opt: Update documentation. - * common.opt: Add some help text. - * opts.c: Include intl.h. - (wrap_help, print_help): New. - (find_opt, handle_option, common_handle_option): opt_text now - contains the '-'. Use print_help to output help. - * opts.h (struct cl_option): New member "help". - * opts.sh: Update to handle help text output and to prepend - options with '-'. - * toplev.c (display_help): Remove some help text. - -2003-07-07 David Edelsohn - Fariborz Jahanian - - * configure.in: Test for PowerPC mfcr field support in assembler. - * config.in, configure: Regenderated. - - * config/rs6000/power4.md: Add mfcrf reservation. - * config/rs6000/rs6000-protos.h (mfcr_operation): Declare. - * config/rs6000/rs6000.c (mfcr_operation): Define. - (print_operand): Add 'Q' case for mfcrf. - * config/rs6000/rs6000.h (TARGET_MFCRF): New. - * config/rs6000/rs6000.md (attribute "type"): Add mfcrf. - (movcc_internal1): Emit optional field operand for mfcr and set - "type" attribute appropriately. - (mfcr SCC): Likewise. - (movesi_from_cr_one): New. - -2003-07-07 Roger Sayle - - * config/i386/i386.md: Correct check-in of incorrect version. - -2003-07-07 Kaveh R. Ghazi - - * bitmap.c (debug_bitmap_file): Merge uses of HOST_PTR_PRINTF with - adjacent stdio calls. - * c-decl.c (c_print_identifier): Likewise. - * mips-tfile.c (write_varray, write_object, allocate_cluster): Likewise. - * print-rtl.c (print_rtx): Likewise. - * print-tree.c (print_node_brief, print_node): Likewise. - * system.h (HOST_PTR_PRINTF): Ensure we have a literal string. - - * configure.in (AC_COMPILE_CHECK_SIZEOF): Check for `void *'. - * config.in, configure: Regenerated. - -2003-07-07 Roger Sayle - - PR target/10979 - * config/i386/i386.md (atan2df3, atan2sf3, atan2xf3, atan2tf3): - Changed to define_expand patterns that copy operand[1] to prevent - it from being clobbered before emitting an atan2?f3_1 insn. - (atan2df3_1, atan2sf3_1, atan2xf_1, atan2tf3_1): New define_insn - patterns that actually specify the behaviour of x87's FPATAN. - -2003-07-07 Jakub Jelinek - - * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Remove bogus - clearing of SYMBOL_FLAG_LOCAL bit. - If vcall_offset fits into signed 16-bit immediate, use - one instruction for both addition and load. - -2003-07-07 Neil Booth - - * opts.c (common_handle_option): Correct handling of the - -falign- switches that do and don't take an argument. - -2003-07-07 Kazu Hirata - - * config/h8300/h8300.md (pushqi1_h8300hs): Revert my patch - today. - (pushhi1_h8300hs): Likewise. - -2003-07-07 Andreas Jaeger - - * genextract.c: Convert remaining prototypes to ISO C90. - - * cpplex.c (_cpp_free_buff): Convert prototype to ISO C90. - * fold-const.c (fold_single_bit_test): Likewise. - * diagnostic.c (default_diagnostic_finalizer): Likewise. - * cfgrtl.c (rtl_redirect_edge_and_branch): Likewise. - - * gengtype.c (write_array): Generate ISO C90 prototypes. - - * genflags.c (gen_proto): Generate ISO C90 prototypes. - -2003-07-07 Roger Sayle - - PR optimization/11059 - * expr.c (can_store_by_pieces): Return true if length is zero. - (store_by_pieces): If length is zero and endp is two, abort, - othwerise, if length is zero and endp is not two, return "to". - (clear_by_pieces): Do nothing if length is zero. - (clear_storage): Do nothing if length is zero. - (store_constructor): Simplify code when size is zero, or the - target has already been cleared. This avoids emitting a - blockage instruction when initializing empty structures. - -2003-07-07 Andreas Jaeger - - * mips-tfile.c: Convert prototypes to ISO C90. - * mips-tdump.c: Convert prototypes to ISO C90. - -2003-07-07 Nathan Sidwell - - * rtl.h (emit_line_note): Take a location_t. - (emit_line_note_force): Remove. - (set_file_and_line_for_statement): Take a location_t. - * tree.g (emit_line_note): Take a location_t. - * emit-rtl.c (emit_line_note): Take a location_t. - (emit_line_note_force): Remove. - * function.c (init_function_start): Adjust emit_line_note call. - (expand_function_end): Use force_next_line_note, not - emit_line_note_force. - * c-parse.in (maybe_type_qual): Adjust emit_line_note calls. - * c-semantics.c (genrtl_do_pushlevel, genrtl_goto_stmt, - genrtl_expr_stmt_value, genrtl_decl_stmt, genrtl_if_stmt, - genrtl_while_stmt, genrtl_do_stmt_1, genrtl_return_stmt, - genrtl_for_stmt, genrtl_break_stmt, genrtl_continue_stmt, - genrtl_continue_stmt, genrtl_switch_stmt, - genrtl_asm_stmt): Likewise. - * expr.c (expand_expr): Likewise. - * integrate.c (expand_inline_function): Likewise. - * stmt.c (set_file_and_line_for_stmt): Take a location_t. - (expand_decl_init): Adjust emit_line_note call. - -2003-07-07 Dale Johannesen - - * config/rs6000/darwin-tramp.asm: Fix trampolines. PR 10900. - -2003-07-07 Andreas Jaeger - - * config/i386/i386-protos.h: Convert prototypes to ISO C90. - * config/i386/i386.c: Likewise. - -2003-07-07 Kazu Hirata - - * config/h8300/h8300.md: Use gen_int_mode instead of - GEN_INT (trunc_int_for_mode (...)). - -2003-07-07 Kazu Hirata - - * config/h8300/h8300.md (pushqi1_h8300hs): Optimize by pushing - 2 bytes and then subtract 2 from the stack pointer. - (pushhi1_h8300hs): Likewise. - -2003-07-07 Nathan Sidwell - - * configure.in (enable_coverage): Remove -DSELF_COVERAGE, add - -frandom-seed. - * configure: Regenerated. - * Makefile.in: Remove extraneous comment. - * toplev.c (randomize): Protect against potential multiple calls. - * doc/invoke.texi (-frandom-seed): Document use for in coverage - files. - -2003-07-07 Richard Kenner - Eric Botcazou - - PR optimization/11198 - * alias.c (objects_must_conflict_p): Return 1 if the types have - the same alias set, not if the alias sets only conflict. - -2003-07-07 Andrew Pinski - - * cppcharset.c (ICONV_CONST): Define iff !HAVE_ICONV. - (convert_cset): Change inbuf to type ICONV_CONST char. - * Makefile.in (LIBS): Add LIBICONV. - - * doc/invoke.texi (-falign-functions): Document that - when n is zero then a machine-dependent default is used. - (-falign-labels): Document that when n is zero then a - machine-dependent default is used and that -falign-labels =1 - is equivalent to -fno-align-labels. - (-falign-loops): Likewise. - (-falign-jumps): Likewise. - -2003-07-06 Art Haas - - * f/global.c (ffeglobal_type_string_): Fix obsolete GCC array - initializer syntax. - -2003-07-06 James E Wilson - - PR optimization/9812 - * rtl.h (mem_for_const_double): Delete prototype. - * varasm.c (mem_for_const_double): Delete function. - * config/m68k/hp320.h, config/m68k/linux.h, config/m68k/m68kelf.h, - config/m68k/m68kv4.h, config/m68k/netbsd-elf.h - (LEGITIMATE_PIC_OPERAND_P): Delete duplicate definitions. - * config/m68k/m68k.h (LEGITIMATE_CONSTANT_P): Disallow XFmode. - (LEGITIMATE_PIC_OPERAND_P): Delete CONST_DOUBLE tests. - * config/m68k/m68k.md (movxf): Add reload_in_progress guard. Add - comment about confused support for XFmode constants. - -2003-07-07 Jan Hubicka - - * cfglayout.c (fixup_reorder_chain): Call delete_dead_jumptables. - -2003-07-06 Kazu Hirata - - * config/h8300/h8300.c: Fix comment typos. - * config/h8300/h8300.md: Likewise. - * config/i386/athlon.md: Likewise. - * config/i386/i386.c: Likewise. - * config/i386/pentium.md: Likewise. - * config/ia64/ia64.c: Likewise. - * config/ia64/itanium1.md: Likewise. - * config/ia64/itanium2.md: Likewise. - * config/m32r/m32r.md: Likewise. - * config/m68hc11/m68hc11.c: Likewise. - * config/mcore/mcore.c: Likewise. - * config/mips/sr71k.md: Likewise. - * config/mips/t-iris5-as: Likewise. - * config/mmix/mmix.h: Likewise. - * config/ns32k/ns32k.h: Likewise. - * config/ns32k/NOTES: Fix a typo. - -2003-07-06 Andreas Jaeger - - * stmt.c: Convert remaining prototypes to ISO C90. - * cfglayout.c: Likewise. - * dbxout.c: Likewise. - * gcc.c: Likewise. - * genemit.c: Likewise. - - * basic-block.h: Convert prototypes to ISO C90. - * c-parse.in: Likewise. - * c-pragma.h: Likewise. - * c-typeck.c: Likewise. - * cfghooks.h: Likewise. - * cfgloopanal.c: Likewise. - * dbxout.h: Likewise. - * debug.h: Likewise. - * dwarf2asm.h: Likewise. - * gcov.c: Likewise. - * gengtype-lex.l: Likewise. - * sched-int.h: Likewise. - * timevar.c: Likewise. - -2003-07-06 Neil Booth - - * c-common.h (c_comon_handle_filename, - c_common_missing_arguement): New. - * c-lang.c (LANG_HOOKS_HANDLE_FILENAME, - LANG_HOOKS_MISSING_ARGUMENT): New. - * c-opts.c (missing_arg): Rename c_common_missing_argument, - update to be an appropriate langhook. - (c_common_handle_option): Don't handle filenames. - (c_common_handle_filename): New. - * hooks.c (hook_void_constcharptr, - hook_bool_constcharptr_size_t_false): New. - * hooks.h (hook_void_constcharptr, - hook_bool_constcharptr_size_t_false): New. - * langhooks-def.h (LANG_HOOKS_HANDLE_FILENAME, - LANG_HOOKS_MISSING_ARGUMENT): New. - (LANG_HOOKS_INITIALIZER): Update. - * langhooks.h (struct lang_hooks): Add handle_filename and - missing_argument. - * opts.c (handle_option): Don't handle filenames here, but ... - (handle_options): ... here. - (common_handle_option): Don't handle missing arguments here. - * objc/objc-lang.c (LANG_HOOKS_HANDLE_FILENAME, - LANG_HOOKS_MISSING_ARGUMENT): New. - -2003-07-06 Neil Booth - - * Makfile.in: Remove traces of mbchar. - * c-parse.in (MULTIBYTE_CHARS): Remove. - * config.in (MULTIBYTE_CHARS): Remove. - * configure: Remove --enable-mbchar. - * configure.in: Remove --enable-mbchar. - * mbchar.c, mbchar.h: Remove. - * system.h: Poison MULTIBYTE_CHARS. - * config/linux-aout.h (MULTIBYTE_CHARS): Remove. - * config/linux.h (MULTIBYTE_CHARS): Remove. - * config/svr4.h (MULTIBYTE_CHARS): Remove. - * config/sparc/linux.h (MULTIBYTE_CHARS): Remove. - -2003-07-06 Andreas Jaeger - - * varray.c (varray_check_failed): Fix typo. - - * unroll.c: Convert prototypes to ISO C90. - * varasm.c: Likewise. - * varray.c: Likewise. - * varray.h: Likewise. - * vmsdbgout.c: Likewise. - * xcoffout.c: Likewise. - * xcoffout.h: Likewise. - -2003-07-06 Nathan Sidwell - - * gcov-io.h: Add a local time stamp. - (struct gcov_info): Add stamp field. - (gcov_truncate): New. - * coverage.c (read_counts_file): Skip the stamp. - (coverage_begin_output): Write the stamp. - (build_gcov_info): Declare and init the stamp. - (coverage_finish): Only unlink data file, if stamp is zero. - * gcov-dump.c (dump_file): Dump the stamp. - * gcov.c (bbg_stamp): New. - (release_structures): Clear bbg_stamp. - (read_graph_file): Read stamp. - (read_count_file): Check stamp. - * libgcov.c (gcov_exit): Check stamp and truncate if needed. - -2003-07-06 Nathan Sidwell - - * tree.h (default_flag_random_seed): Remove. - * toplev.h (local_tick): Declare. - * tree.c (flag_random_seed, default_flag_random_seed): Move to - toplev.c. - (append_random_chars): Don't call default_flag_random_seed. - * toplev.c (flag_random_seed): Define here. Set local_tick. - (local_tick): Define. - (randomize): New, moved from tree.c. - (print_switch_values): Adjust. - (toplev_main): Call randomize. - -2003-07-06 Nathan Sidwell - - * tree.h (crc32_string): Declare. - * tree.c (append_random_chars): Remove. - (crc32_string): New. - (get_file_function_name_long): Use crc32_string here. - -2003-07-06 Andreas Jaeger - - * gcc.c: Convert prototypes to ISO C90. - * gcc.h: Likewise. - * gcov-dump.c: Likewise. - * gcov-iov.c: Likewise. - * gcse.c: Likewise. - * genattrtab.h: Likewise. - * ggc.h: Likewise. - * global.c: Likewise. - * graph.c: Likewise. - * graph.h: Likewise. - * hosthooks.h: Likewise. - * hooks.h: Likewise. - * hooks.c: Likewise. - * hashtable.h: Likewise. - * hashtable.c: Likewise. - * haifa-sched.c: Likewise. - * integrate.h: Likewise. - * integrate.c: Likewise. - * input.h: Likewise. - * ifcvt.c: Likewise. - * jump.c: Likewise. - * langhooks-def.h: Likewise. Add extern to prototypes. - * langhooks.c: Likewise. - * langhooks.h: Likewise. - * lcm.c: Likewise. - * local-alloc.c: Likewise. - * loop-init.c: Likewise. - * loop-unroll.c: Likewise. - * loop-unswitch.c: Likewise. - * loop.c: Likewise. - * loop.h: Likewise. Add extern to prototypes. - * machmode.h: Likewise. - * main.c: Likewise. - * mbchar.c: Likewise. - * mbchar.h: Likewise. - * mkdeps.c: Likewise. - * mkdeps.h: Likewise. - * optabs.c: Likewise. - * optabs.h: Likewise. - * output.h: Likewise. - * gccspec.c: Likwise. - * postreload.c: Likewise. - * prefix.c: Likewise. - * prefix.h: Likewise. - * print-rtl.c: Likewise. - * print-tree.c: Likewise. - * profile.c: Likewise. - * read-rtl.c: Likewise. - * real.c: Likewise. - * real.h: Likewise. - * recog.c: Likewise. - * recog.h: Likewise. - * reg-stack.c: Likewise. - * regclass.c: Likewise. - * regmove.c: Likewise. - * regrename.c: Likewise. - * regs.h: Likewise. - * reload.c: Likewise. - * reload.h: Likewise. - * reload1.c: Likewise. - * reorg.c: Likewise. - * resource.c: Likewise. - * resource.h: Likewise. - * rtl-error.c: Likewise. - * rtl.c: Likewise. - * rtl.h: Likewise. - * rtlanal.c: Likewise. - * sbitmap.c: Likewise. - * sbitmap.h: Likewise. - * scan-decls.c: Likewise. - * scan.c: Likewise. - * sched-deps.c: Likewise. - * sched-ebb.c: Likewise. - * sched-int.h: Likewise. - * sched-rgn.c: Likewise. - * sched-vis.c: Likewise. - * sibcall.c: Likewise. - * simplify-rtx.c: Likewise. - * sreal.c: Likewise. - * sreal.h: Likewise. - * ssa-ccp.c: Likewise. - * ssa-dce.c: Likewise. - * ssa.c: Likewise. - * ssa.h: Likewise. - * stack.h: Likewise. - * stmt.c: Likewise. - * stor-layout.c: Likewise. - * stringpool.c: Likewise. - * target.h: Likewise. - * timevar.c: Likewise. - * timevar.h: Likewise. - * tlink.c: Likewise. - * tracer.c: Likewise. - * tree-inline.c: Likewise. - * tree-inline.h: Likewise. - * tree.c: Likewise. - * tree.h: Likewise. - -2003-07-05 Kazu Hirata - - * combine.c (nonzero_bits1): Fix a warning. - -2003-07-05 Kazu Hirata - - * config/h8300/h8300.c (compute_mov_length): Correct the - length of loading CONST0_RTX (SFmode). - -2003-07-05 Nathan Sidwell - - * toplev.c (output_clean_symbol_name): Remove. - * toplev.h (output_clean_symbol_name): Remove. - * config/alpha/alpha.c (unicosmk_output_module_name): Use - lbasename & clean_symbol_name. - -2003-07-05 Kazu Hirata - - * ggc.h: Follow spelling conventions. - * config/i386/i386.c: Likewise. - * config/i386/winnt.c: Likewise. - * config/rs6000/rs6000.c: Likewise. - -2003-07-05 Kazu Hirata - - * bt-load.c: Fix comment typos. - * c-incpath.c: Likewise. - * cfg.c: Likewise. - * cfgcleanup.c: Likewise. - * cfgloop.h: Likewise. - * cfgloopmanip.c: Likewise. - * cfgrtl.c: Likewise. - * diagnostic.h: Likewise. - * dwarfout.c: Likewise. - * emit-rtl.c: Likewise. - * et-forest.c: Likewise. - * et-forest.h: Likewise. - * expr.c: Likewise. - * gcse.c: Likewise. - * genattr.c: Likewise. - * jump.c: Likewise. - * langhooks.h: Likewise. - * local-alloc.c: Likewise. - * loop-unroll.c: Likewise. - * loop-unswitch.c: Likewise. - * ra-build.c: Likewise. - * regclass.c: Likewise. - * regmove.c: Likewise. - * rtl.def: Likewise. - * rtlanal.c: Likewise. - * sched-ebb.c: Likewise. - * sched-rgn.c: Likewise. - * simplify-rtx.c: Likewise. - * ssa.c: Likewise. - * tracer.c: Likewise. - * tree.c: Likewise. - -2003-07-05 Zack Weinberg - - * cppcharset.c: Use the correct return type for the fallback iconv - macro. - -2003-07-05 Zdenek Dvorak - - Blame to Jan Hubicka - * cfglayout.c (record_effective_endpoints): Split insns before - first basic block correctly. - -2003-07-05 Richard Kenner - - * expr.c (expand_expr, case COMPONENT_REF): When seeing if should use - bitfield operations, use STRICT_ALIGNMENT, not SLOW_UNALIGNED_ACCESS - if EXPAND_CONST_ADDRESS or EXPAND_INITIALIZER. - -2003-07-05 Andreas Jaeger - - * genattrtab.c (write_attr_get): Revert part of last patch to - always write out a prototype. - - * genemit.c (gen_split): Readd lost unused attributes in last - patch. - -2003-07-05 Zdenek Dvorak - - * cfgloopmanip.c (force_single_succ_latches): Force latch to be - different from header. - -2003-07-05 Andreas Schwab - - * config/m68k/m68k.c: Remove code protected by CRDS. - * config/m68k/m68k.md: Likewise. - -2003-07-05 Neil Booth - - PR driver/11417 - * c-opts.c (permit_fortran_options): New. - (c_common_init_options): Accept fortran front end options if - it looks like we might be preprocessing Fortran. - (c_common_handle_option): Don't reject switch if permit_fotran_options. - -2003-07-05 Kaveh R. Ghazi - - * genattr.c (internal_dfa_insn_code): Output prototype. - * genattrtab.c: Don't output unnecessary decls, output in ISO C. - * genautomata.c: Likewise. - * genconditions.c: Likewise. - * genemit.c: Likewise. - * genextract.c: Likewise. - * gengenrtl.c: Likewise. - * gengtype.c: Likewise. - * genopinit.c: Likewise. - * genoutput.c: Likewise. - * genpeep.c: Likewise. - * genrecog.c: Likewise. - -2003-07-04 Zack Weinberg - - * cpplib.h (CPP_AT_NAME, CPP_OBJC_STRING): New token types. - (struct cpp_options): Add narrow_charset, wide_charset, - bytes_big_endian fields. Remove EBCDIC field. - (cpp_init_iconv, cpp_interpret_string): New external interfaces. - - * cpphash.h: Include if we have it, otherwise - provide a dummy definition of iconv_t. - (struct cpp_reader): Add narrow_cset_desc and wide_cset_desc fields. - (_cpp_valid_ucn): Update prototype. - (_cpp_destroy_iconv): New prototype. - - * doc/cpp.texi: Document character set handling. - * doc/cppopts.texi: Document -fexec-charset= and -fexec-wide-charset=. - * doc/extend.texi: Delete entire section on multiline strings. - Rewrite section on __FUNCTION__ etc now that these are - variables in C. - - * cppucnid.tab, cppucnid.pl: New files. - * cppucnid.h: New generated file. - * cppcharset.c: Include cppucnid.h. Lots of commentary added. - (iconv_open, iconv, iconv_close): Provide dummy definitions - if !HAVE_ICONV. - (SOURCE_CHARSET, struct strbuf, init_iconv_desc, cpp_init_iconv, - _cpp_destroy_iconv, convert_cset, width_to_mask, convert_ucn, - emit_numeric_escape, convert_hex, convert_oct, convert_escape, - cpp_interpret_string, narrow_str_to_charconst, - wide_str_to_charconst): New. - (ucn_valid_in_identifier): Use a binary search through the - ucnranges table defined in cppucnid.h, not a long chain of if - statements. - (_cpp_valid_ucn): Add a limit pointer. Downgrade "universal - character names are only valid in C++ and C99" to a warning. - Issue the "meaning of \[uU] is different in traditional C" - warning here. Take care not to let iconv see an invalid UCS - value if we get a malformed UCN. Issue an error if we don't - have iconv. - (cpp_interpret_charconst): Moved here from cpplex.c. Use - cpp_interpret_string to do the heavy lifting. - - * cppinit.c (cpp_create_reader): Initialize bytes_big_endian, - narrow_charset, wide_charset fields of options structure. - (cpp_destroy): Call _cpp_destroy_iconv. - * cpplex.c (forms_identifier_p): Adjust call to _cpp_valid_ucn. - (maybe_read_ucn, hex_digit_value, cpp_parse_escape): Delete. - (cpp_interpret_charconst): Moved to cppcharset.c. - * cpplib.c (dequote_string): Delete. - (interpret_string_notranslate): New. - (do_line, do_linemarker): Use interpret_string_notranslate. - - * Makefile.in (cppcharset.o): Depend on cppucnid.h. - - * c-common.c (fname_string, combine_strings): Delete. - * c-common.h (fname_string, combine_strings): Delete prototypes. - * c-lex.c (ignore_escape_flag): Delete. - (cb_ident): Use cpp_interpret_string, not lex_string. - (get_nonpadding_token): New function. - (c_lex): Handle Objective-C @-prefixed identifiers and strings here. - Adjust calls to lex_string. Don't write *value twice. - (lex_string): Now handles string constant concatenation. - Most of the work handed off to cpp_interpret_string. - Call fix_string_type here. - * c-parse.in (STRING_FUNC_NAME, VAR_FUNC_NAME): Replace with - FUNC_NAME, throughout. - (OBJC_STRING): New token type. - (primary:STRING): No need to call fix_string_type here. - (primary:objc_string): Make that OBJC_STRING. - (objc_string nonterminal): Delete. - (yylexname): Delete code to handle fake string constants. - (yylexstring): Delete entirely. - (_yylex): Handle CPP_AT_NAME and CPP_OBJC_STRING. No need - to handle CPP_ATSIGN. - - * c.opt (-fexec-charset=, -fwide-exec-charset=): New options. - * c-opts.c (missing_arg, c_common_handle_option): Handle - OPT_fexec_charset_ and OPT_fwide_exec_charset_. - (c_common_init): Set cpp_opts->bytes_big_endian, not - cpp_opts->EBCDIC. Call cpp_init_iconv. - (print_help): Document -fexec-charset= and -fexec-wide-charset=. - (TARGET_EBCDIC): Delete default definition. - - * objc/objc-act.c (build_objc_string_object): No need to - handle string constant concatenation. - -2003-07-04 Kazu Hirata - - * doc/install.texi: Fix typos. - * doc/invoke.texi: Likewise. - * doc/tm.texi: Likewise. - -2003-07-04 Kazu Hirata - - * config/pa/fptr.c: Fix comment typos. - * config/pa/pa-64.h: Likewise. - * config/pa/pa.c: Likewise. - * config/pa/pa.h: Likewise. - * config/rs6000/603.md: Likewise. - * config/rs6000/7xx.md: Likewise. - * config/rs6000/darwin.h: Likewise. - * config/rs6000/freebsd.h: Likewise. - * config/rs6000/rs6000.c: Likewise. - * config/rs6000/rs6000.md: Likewise. - * config/rs6000/spe.h: Likewise. - -2003-07-04 Ulrich Weigand - - * config/s390/2064.md: Change GNU CC to GCC. - * config/s390/2084.md: Likewise. - * config/s390/fixdfdi.h: Likewise. - * config/s390/linux.h: Likewise. - * config/s390/s390-modes.def: Likewise. - * config/s390/s390-protos.h: Likewise. - * config/s390/s390.c: Likewise. - * config/s390/s390.h: Likewise. - * config/s390/s390.md: Likewise. - * config/s390/s390x.h: Likewise. - -2003-07-04 Jeff Law - - PR c/11428 - * expr.c (do_store_flag): Pass in the correct result type - when calling fold_single_bit_test. - * fold-const.c (fold_single_bit_test): Use result_type for the - result when folding a sign bit test. - -2003-07-04 Neil Booth - - * opts.c (common_handle_options): Negate sense of -falign- switches. - -2003-07-04 H.J. Lu - - * Makefile.in: Replace PWD with PWD_COMMAND. - -2003-07-04 Zdenek Dvorak - - * cfgloopanal.c (count_strange_loop_iterations): New static function. - (constant_iterations, count_loop_iterations, simple_loop_exit_p): - Handle strange loops. - -2003-07-04 Toon Moene - - * install.texi: Even the g77 manpage is derived from - the full g77 manual. - -2003-07-04 Zack Weinberg - - * ABOUT-NLS: Delete. - * intl: Delete entire directory. - * aclocal.m4: Include ../config/gettext.m4. Delete - AC_ISC_POSIX, AM_LANGINFO_CODESET, jm_GLIBC21, AM_LC_MESSAGES, - AM_PATH_PROG_WITH_TEST, AM_WITH_NLS, and AM_GNU_GETTEXT. - * configure.in: Use CY_GNU_GETTEXT, not AM_GNU_GETTEXT. - Remove intl/Makefile from all_outputs. - * configure, config.in: Regenerate. - * Makefile.in: Expunge all references to intl subdirectory. - Add -I../intl to INCLUDES. - * intl.h: Include libintl.h if and only if ENABLE_NLS is defined. - -2003-07-04 Roger Sayle - - * config/rs6000/aix51.h (TARGET_C99_FUNCTIONS): Define. - * config/rs6000/aix52.h (TARGET_C99_FUNCTIONS): Likewise. - -2003-07-04 Danny Smith - - PR c++/5287, PR c++/7910, PR c++/11021 - * config/i386/winnt.c (ix86_handle_dll_attribute): Don't add - dllimport attribute if function is defined at declaration, but - report error instead. Likewise for dllimport'd variable - definitions. Set implicit TREE_PUBLIC for dllimport'd variables - declared within functions, Report error if dllimport or dllexport - symbol is not global. - (i386_pe_dllimport_p): Ignore dllimport attribute of functions - if defined after declaration or if inlined. Don't allow definition - of static data members of C++ classes. Don't dllimport virtual - methods. - (i386_pe_mark_dllexport): Warn about inconsistent dll attributes. - (i386_pe_mark_dllimport): Remove unnecessary checks. - (i386_pe_encode_section_info): Warn if the dllimport attribute - and symbol prefix have been instantiated and then overridden. - - * doc/extend.texi: Document dllimport and dllexport attributes. - - * config/i386/winnt.c (i386_pe_output_labelref): Fix indents. - -2003-07-03 Uwe Stieber - - * config/kaos.h (CPP_PREDEFINES): Delete. - (TARGET_OS_CPP_BUILTINS): New. - -2003-07-03 Kaveh R. Ghazi - - * c-aux-info.c: Include toplev.h after c-tree.h. - * c-common.c: Likewise. - (GCC_DIAG_STYLE): Undef. - * c-semantics.c (GCC_DIAG_STYLE): Define. - * c-tree.h (GCC_DIAG_STYLE): Likewise. - * diagnostic.h (inform): Move prototype to toplev.h. - * jump.c: Include diagnostic.h before toplev.h. - * toplev.h (GCC_DIAG_STYLE, ATTRIBUTE_GCC_DIAG): Define. - (warning, error, fatal_error, pedwarn, sorry, inform, - error_for_asm, warning_for_asm): Mark with ATTRIBUTE_GCC_CXXDIAG. - -2003-07-03 Zdenek Dvorak - - * cfglayout.c (cfg_layout_duplicate_bb): Do not update frequencies - at all if edge is not specified. - (can_copy_bbs_p, copy_bbs): New. - * cfglayout.h (can_copy_bbs_p, copy_bbs): Declare. - * cfgloop.c (get_loop_body): Comment more precisely. - * cfgloopmanip.c (copy_bbs, record_exit_edges): Removed. - (scale_bbs_frequencies): Fix comment typo. - (can_duplicate_loop_p): Use can_copy_bbs_p. - (duplicate_loop_to_header_edge): Simplify by using copy_bbs. - -2003-07-03 Devang Patel - - * c-opts.c (c_common_parse_file): Remove extra - debug_hooks->start_source_file call. - -2003-07-03 Roger Sayle - - * real.c (real_trunc, real_floor, real_ceil): New functions - to implement trunc, floor and ceil respectively. - * real.h (real_trunc, real_floor, real_ceil): Prototype here. - * builtins.c (integer_valued_real_p): New function to test if - a floating point expression has an integer valued result. - (fold_trunc_transparent_mathfn): Optimize foo(foo(x)) as - foo(x) where foo is an integer rounding function. Similarly, - optimize foo(bar(x)) as bar(x), and foo((double)(int)x) as - (double)(int)x when both foo and bar are integer rounding - functions and we don't need to honor errno. - (fold_builtin_trunc, fold_builtin_floor, fold_builtin_ceil): - New functions to fold trunc, floor and ceil. - (fold_builtin): Use fold_builtin_trunc to fold BUILT_IN_TRUNC*, - fold_builtin_floor to fold BUILT_IN_FLOOR* and fold_builtin_ceil - to fold BUILT_IN_CEIL*. - * fold-const.c (tree_expr_nonnegative_p): Handle FLOAT_EXPR and - the remaining integer rounding functions. - -2003-07-03 Eric Botcazou - - * config/sparc/sparc.c (function_arg_partial_nregs): Use - SPARC_INT_ARG_MAX to determine where to split unnamed - complex FP arguments. - -2003-07-03 Jan Hubicka - - * basic-block.h (create_basic_block, merge_blocks_nomove): Kill. - * cfgcleanup.c (merge_blocks): Rename to merge_blocks_move. - (merge_blocks_move_predecessor_nojumps, - merge_blocks_move_successor_nojumps): Use merge_blocks. - (try_optimize_cfg): Use merge_blocks_move. - * cfgrtl.c (create_basic_block): Rename to rtl_create_basic_block. - (merge_blocks_nomove): Rename to rtl_merge_blocks. - (cfg_layout_create_basic_block): New. - (rtl_can_merge_blocks): New. - (cfg_layout_split_block): Do not alloc aux by hand. - * cfghooks.h (cfg_hooks): Add create_basic_block, can_merge_blocks_p, - merge_blocks. - (create_basic_block, can_merge_blocks_p, merge_blocks): New macros. - * cfglayout.c (cfg_layout_duplicate_bb): Do not allocate aux by hand. - * cfgloopmanip.c (loop_split_edge_with): Likewise. - * ifcvt.c (merge_if_block): Use merge_blocks_nomove. - - * basic-block.h (basic_block_def): Add field 'rbi'. - * bb-reorder.c (find_traces, rotate_loop, mark_bb_visited, - find_traces_1_round, copy_bb, connect_traces): Update use of rbi. - * cfg.c (entry_exit_blocks): Add new field. - * cfglayout.c: Include alloc-pool.h; - (cfg_layout_pool): New. - (record_effective_endpoints, fixup_reorder_chain, - fixup_fallthru_exit_predecessor, cfg_layout_duplicate_bb): Update use - of rbi. - (cfg_layout_initialize_rbi): New function. - (cfg_layout_initialize): Use it. - (cfg_layout_finalize): Clear rbi fields. - * cfglayout.h (RBI): Kill. - (cfg_layout_initialize_rbi): Declare. - * cfgloopmanip.c (copy_bbs): Use rbi. - (record_exit_edges): Likewise. - (duplicate_loop_to_header_edge): Likewise. - * cfgrtl.c (cfg_layout_create_basic_block): Use - cfg_layout_initialize_rbi. - (cfg_layout_split_block): Use rbi. - (cfg_layout_delete_block): Likewise. - * loop-init.c (loop_optimizer_finalize): Likewise. - * loop-unswitch.c (unswitch_loop): Likewise. - * tracer.c (seen, tail_duplicate, layout_superblocks): Likewise. - - * cfgrtl.c: Update comments. - (try_redirect_by_replacing_jump): New argument. - (redirect_branch_edge): Break out from ... - (rtl_redirect_edge_and_branch): ... this one. - (update_cfg_after_block_merging): Break out from ... - (rtl_merge_blocks): ... this one. - (cfg_layout_split_edge): New. - (cfg_layout_merge_blocks): New. - (cfg_layout_can_merge_blocks_p): New. - (cfg_layout_redirect_edge_and_branch): Reorganize. - (cfg_layout_rtl_cfg_hooks): Fill in. - (cfg_layout_delete_block): Kill barriers. - * cfganal.c (can_fallthru): Deal with exit blocks - * cfglayout.c (cfg_layout_function_header): New function - (record_effective_endpoints): Record function header. - (fixup_reorder_chain): Fixup dead jumptables; place header - - * basic-block.h (CLEANUP_CFGLAYOUT): New flag. - * bb-reorder.c (cfg_layout_initialize): Update call. - * cfgcleanup.c (try_optimize_cfg): Supress optimizations of fallthru - edges in cfglayout mode. - * cfglayout.c (cleanup_unconditional_jumps): Kill. - (cfg_layout_initialize): Kill agrument loops; use cfgcleanup. - * cfglayout.h (cfg_layout_initialize): Update prototype. - * cfgloop.h (CP_INSIDE_CFGLAYOUT): Kill. - * cfgloopmanip.c (loop_split_edge_with): Use split_edge. - * flow.c (propagate_block): Do not crash when basic block ends - by first insn in the chain. - * loop-init.c (loop_optimizer_init): First enter cfglayout mode; later - do loop discovery. - * tracer.c (tracer): Update call of cfg_layout_initialize. - -2003-07-03 Kaveh R. Ghazi - - * Makefile.in: Use dependency variables in lieu of explicit - files throughout. - -2003-07-03 Steven Bosscher - - * rtl.h (ECF_*, flags_from_decl_or_type): Move from here... - * tree.h: ...to here. - -2003-07-03 Kazu Hirata - - * config/s390/2064.md: Fix comment typos. - * config/s390/2084.md: Likewise. - * config/s390/s390.c: Likewise. - * config/s390/s390.md: Likewise. - * config/sh/sh.c: Likewise. - * config/sh/sh.h: Likewise. - * config/sh/sh.md: Likewise. - * config/sparc/sparc.c: Likewise. - * config/sparc/sparc.h: Likewise. - * config/sparc/sparc.md: Likewise. - * config/stormy16/stormy16.c: Likewise. - * config/stormy16/stormy16.h: Likewise. - * config/stormy16/stormy-abi: Fix a typo. - -2003-07-03 Kelley Cook - - * Makefile.in (ifcvt.o): Depend on OPTABS_H. - -2003-07-03 Kaveh R. Ghazi - - * config/mips/mips.h (save_argv): Delete. - -2003-07-03 Roger Sayle - - PR target/10700 - * fold-const.c (extract_muldiv_1): There's nothing that can be done - if the expression is a SAVE_EXPR. - -2003-07-03 Kazu Hirata - - * config/m32r/m32r.c: Fix comment typos. - * config/m68hc11/m68hc11.c: Likewise. - * config/m68hc11/m68hc11.h: Likewise. - * config/m68k/m68k.c: Likewise. - * config/mcore/mcore.c: Likewise. - * config/mcore/mcore.h: Likewise. - * config/mcore/mcore.md: Likewise. - * config/mips/mips.c: Likewise. - * config/mips/mips.h: Likewise. - * config/mips/mips.md: Likewise. - * config/mips/netbsd.h: Likewise. - * config/mn10300/mn10300.c: Likewise. - -2003-07-03 Andreas Schwab - - * dbxout.c (pending_bincls): Move decl down inside - DBX_DEBUGGING_INFO || XCOFF_DEBUGGING_INFO section. - -2003-07-02 Nathan Sidwell - - * rtl.h (NOTE_DATA): Refer to whole union. - * emit-rtl.c (emit_note): Use memset to clear NOTE_DATA. - -2003-07-03 Eric Botcazou - - PR optimization/11381 - * simplify-rtx.c (simplify_relational_operation): Check that - two equal operands have no side-effects before simplifying - the comparison. - -2003-07-02 Jeff Law - - * expr.c (do_store_flag): Remove special case folding for - single bit tests. Instead call back into the commonized folder - routine. - * fold-const.c (fold_single_bit_test): New function, mostly - extracted from do_store_flag, with an additional case extracted - from fold. - (fold): Call fold_single_bit_test appropriately. - * tree.h (fold_single_bit_test): Prototype. - -2003-07-02 Zack Weinberg - - * system.h: Include filenames.h. - (IS_DIR_SEPARATOR, IS_ABSOLUTE_PATHNAME): Don't define. - (DIR_SEPARATOR, DIR_SEPARATOR_2): If not already defined, - define based on HAVE_DOS_BASED_FILE_SYSTEM. - * config/i386/xm-cygwin.h, config/i386/xm-djgpp.h - * config/i386/xm-mingw32.h: Don't define - HAVE_DOS_BASED_FILE_SYSTEM, - DIR_SEPARATOR, or DIR_SEPARATOR_2. - * doc/hostconfig.texi: Update to match. - - * cppfiles.c, gcc.c, gensupport.c, protoize.c, - config/i386/cygwin.h: - Use IS_ABSOLUTE_PATH throughout. - * gcc.c (DIR_UP): Delete, unused. - * protoize.c (IS_SAME_PATH): Define in terms of - FILENAME_CMP. - (is_abspath): Delete. - -2003-07-02 Kazu Hirata - - * config/i386/emmintrin.h: Fix comment typos. - * config/i386/i386.c: Likewise. - * config/i386/i386.h: Likewise. - * config/i386/sco5.h: Likewise. - * config/ia64/ia64.c: Likewise. - * config/ia64/itanium2.md: Likewise. - -2003-07-02 H.J. Lu - - * dbxout.c (pending_bincls): Replace DBX_USE_BINCLS with - DBX_USE_BINCL. - (emit_bincl_stab): Same. - (emit_pending_bincls): Same. - -2003-07-02 Kazu Hirata - - * config/h8300/h8300.c (compute_mov_length): Fix the length of - loading CONST0_RTX (SFmode). - * config/h8300/h8300.h (CONST_DOUBLE_OK_FOR_LETTER_P): Change - 'G' to CONST0_RTX (SFmode). - * config/h8300/h8300.md (movsf_h8300): Change the first - constraint to 'G'. - (movsf_h8300h): Likewise. - -2003-07-02 Neil Booth - - * c-common.h (c_common_init_options): New prototype. - * c-opts.c (deferred_size): Remove. - (defer_opt): Array is now pre-allocated. - (c_common_init_options): Pre-allocate deferred_opts. Make - lang_flags unsigned. - (push_command_line_options): Free deferred_opts. - * hooks.c (hook_uint_uint_constcharptrptr_0): New. - * hooks.h (hook_uint_uint_constcharptrptr_0): New. - * langhooks-def.h (LANG_HOOKS_INIT_OPTIONS): Update. - * langhooks.h (struct lang_hooks): New prototype for init_options. - * main.c (main): Cast argv. - * opts.c (handle_option, handle_options): Update prototypes. - (decode_options): save_argc, save_argv are not global. Constify. - * opts.h (decode_options): New prototype. - * toplev.c (general_init): New protoype. - (save_argv): Make static. - (save_argc): Remove. - (print_switch_values, general_init): Constify. - (toplev_main): Save argv. - * toplev.h (toplev_main): Update prototype. - (save_argc, save_argv): Remove. - -2003-07-02 David Edelsohn - - * dbxout.c (pending_bincls): Guard with DBX_USE_BINCLS. - (emit_bincl_stab): Same. - (emit_pending_bincls): Same. - -2003-07-02 Nathan Sidwell - - PR c++/11072 - * ginclude/stddef.h (offsetof): Remove cast to 'char &'. Explain why. - -2003-07-02 Andreas Schwab - - * dbxout.c (pending_bincls): Only define if DBX_DEBUGGING_INFO. - -2003-07-02 Eric Botcazou - - PR optimization/11210 - * expr.c (handled_component_p) [NOP_EXPR]: Add ??? note - about the behaviour with regard to bitfields. - * fold-const (decode_field_reference): Record outermost type in - case the expression is a NOP. Strip all NOPs. Set the signedness - to that of the outermost type (if any) when the bitsize is equal - to the size of the type. - -2003-07-02 Richard Sandiford - - * config/mips/mips.md (addsi3): Remove workaround for adds of -32768. - (addsi3_internal, adddi3, adddi3_internal_2): Likewise. - (adddi3_internal_3, addsi3_internal_2): Likewise. - -2003-07-02 Richard Sandiford - - * config/mips/mips.c (machine_function): Add new fields: - ignore_hazard_length_p and all_noreorder_p. - (mips_flag_delayed_branch): New variable. - (override_options): Treat '/' as an operand punctuation character. - Set up mips_flag_delayed_branch. - (print_operand): Handle '/'. - (mips_output_function_prologue): Put the whole function in - .set noreorder and .set nomacro if all_noreorder_p is true. - (mips_output_function_epilogue): End the noreorder/nomacro sequence. - (mips16_optimize_gp): Remove "first insn" parameter. - (mips16_lay_out_constants): New function, split out from mips_reorg. - (mips_avoid_hazard, mips_avoid_hazards): New functions. - (mips_reorg): For mips16 code, call mips16_lay_out_constant - and (optionally) mips16_optimize. If TARGET_EXPLICIT_RELOCS, - do delayed-branch scheduling followed by hazard detection. - (mips_adjust_insn_length): Only account for hazards if - !ignore_hazard_length_p. - (mips_output_load_label): Add a nop to the o32 sequence if - the target suffers from load delays. - (mips_output_conditional_branch): Add %/ to the end of branches. - (mips_output_division): Fill the branch delay slot with %#. - * config/mips/mips.md: Remove redundant '%*' from mips16 branch - instructions. End all other %* branches with %/. - (ffssi2, ffsdi2): Fix lengths. - (truncdisi2, truncdihi2, truncdiqi2): Add store attributes. - (fix_truncdfsi2_macro): Turn off .set nomacro if appropriate. - (fix_truncsfsi2_macro): Likewise. - (mov_lwl): Set hazard to "none". - (ashldi3_internal): Fill the branch delay slot with %#. - (ashrdi3_internal, lshrdi3_internal): Likewise. - (exception_receiver): Explicitly set $28. - (hazard_nop): New pattern. - -2003-07-02 Jan Hubicka - - * cgraphunit.c (cgraph_finalize_unit): Set current_function_decl - before calling tree_inlinable_function_p. - -2003-07-02 Rainer Orth - - * fixinc/inclhack.def (irix_stdio_va_list): Apply to IRIX 6.5 - too. - (stdio_va_list): Apply to IRIX 6.5 and - too. - Substitute va_list uses in inline definition. - * fixinc/fixincl.x: Regenerate. - -2003-07-02 Rainer Orth - - * config/mips/iris5.h (SET_FILE_NUMBER): Moved here from iris3.h. - Undef before redefinition. - (LABEL_AFTER_LOC): Likewise. - (DEFAULT_SIGNED_CHAR): Likewise. - (ASM_OUTPUT_ASCII): Moved here from iris4.h. - Fix IRIX spelling. - - * config/mips/iris3.h: Remove, unused. - * config/mips/iris4.h: Likewise. - - * config/mips/mips.h (STACK_ARGS_ADJUST): Remove, unused. - - * config/mips/iris5.h (TARGET_DEFAULT): Move ... - * config.gcc (mips-sgi-irix6*o32, mips-sgi-irix5*): ... here to - target_cpu_default. - - * config/mips/iris5.h: Move explicit includes ... - * config.gcc (mips-sgi-irix6*o32, mips-sgi-irix5*): ... here. - - * config/mips/iris6.h (MIPS_ISA_DEFAULT, MIPS_ABI_DEFAULT): Move ... - * config.gcc (mips-sgi-irix6*, mips-sgi-irix5cross64): ... here to - tm_defines. - - * config/mips/iris6.h (TARGET_DEFAULT): Move ... - * config.gcc (mips-sgi-irix6*, mips-sgi-irix5cross64): ... here to - target_cpu_default. - - * config/mips/iris6.h: Fix IRIX spelling. - (MULTILIB_DEFAULTS): Undef before redefinition. - - * config/mips/iris6.h: Move explicit includes ... - * config.gcc (mips-sgi-irix6*, mips-sgi-irix5cross64): ... here. - -2003-07-02 Jan Hubicka - - * cgraph.c (cgraph_mark_needed_node, cgraph_varpool_mark_needed_node, - cgraph_varpool_finalize_decl, cgraph_varpool_assemble_pending_decls): - Use next_needed field instead of aux to maintain the queue. - * cgraph.h (cgraph_node): Add next_needed. - (cgraph_varpool_node): Add next_needed; remove aux. - * cgraphunit.c (cgraph_finalize_compilation_unit): Use next_needed. - -2003-07-02 Jan Hubicka - - * cgraphunit.c (cgraph_finalize_function): Set finalized. - (cgraph_finalize_function): Do not examine inlinablility. - (cgraph_finalize_compilation_unit): Do it here. - * cgraph.h (cgraph_local_info): Add finalized field. - -2003-07-02 Rainer Orth - - * ggc-common.c (gt_pch_save): Cast MAP_FAILED to void *. - (gt_pch_restore): Likewise. - -2003-07-01 Kazu Hirata - - * config/alpha/alpha.c: Fix comment typos. - * config/alpha/elf.h: Likewise. - * config/arm/arm.c: Likewise. - * config/arm/arm.h: Likewise. - * config/arm/arm.md: Likewise. - * config/arm/t-arm-coff: Likewise. - * config/arm/t-strongarm-pe: Likewise. - * config/arm/xscale-elf.h: Likewise. - * config/avr/avr.h: Likewise. - -2003-07-01 Jeff Law - - * stmt.c (any_pending_cleanups): Remove another redundant test. - -2003-07-01 David Edelsohn - J"orn Rennecke - - * config/rs6000/rs6000.md (ctr{s,d}i_internal?): Add earlyclobber - for MEM case. - -2003-07-01 Devang Patel - - * dbxout.c (DBXOUT_DECR_NESTING): Emit pending bincls, if required. - (binclstatus): New. - (struct dbx_file): New members - bincl_status, pending_bincl_name and - prev. - (pending_bincls): New. - (dbxout_init): Initialize new dbx_file members. - (dbxout_start_source_file): Same. - (emit_bincl_stab): New function. - (emit_pending_bincls): Same. - (emit_pending_bincls_if_required): Same. - (dbxout_end_source_file): Emit EINCL stab only if BINCL is already - processed. - (dbxout_begin_block): Emit pending BINCL stabs. - (dbxout_end_block): Same. - (dbxout_function_decl): Same. - (dbxout_continue): Same. - (dbxout_type): Same. - (dbxout_class_name_qualifiers): Same. - (dbxout_symbol): Same. - (dbxout_symbol_location): Same. - (dbxout_parms): Same. - -2003-07-01 Kaveh R. Ghazi - - * c-semantics.c (genrtl_case_label): Fix format specifier bug. - * cfgrtl.c (rtl_verify_flow_info_1): Likewise. - -2003-07-01 Andreas Jaeger - - * fold-const.c: Convert prototypes to ISO C90. - * function.c: Likewise. - * function.h: Likewise. - -2003-07-01 Kazu Hirata - - * doc/contrib.texi: Fix typos. - * doc/invoke.texi: Likewise. - * doc/passes.texi: Likewise. - * doc/sourcebuild.texi: Likewise. - * doc/tm.texi: Likewise. - -2003-07-01 Kazu Hirata - - * basic-block.h: Fix comment typos. - * bb-reorder.c: Likewise. - * c-format.c: Likewise. - * cfgcleanup.c: Likewise. - * cfghooks.h: Likewise. - * cfgloop.c: Likewise. - * cfgloopmanip.c: Likewise. - * cfgrtl.c: Likewise. - * cgraph.h: Likewise. - * cgraphunit.c: Likewise. - * combine.c: Likewise. - * convert.c: Likewise. - * dbxout.c: Likewise. - * df.c: Likewise. - * df.h: Likewise. - * diagnostic.c: Likewise. - * dwarf2out.c: Likewise. - * et-forest.h: Likewise. - * flow.c: Likewise. - * fold-const.c: Likewise. - * function.h: Likewise. - * gcov-io.h: Likewise. - * gcov.c: Likewise. - * gcse.c: Likewise. - * genautomata.c: Likewise. - * ggc-common.c: Likewise. - * ggc-page.c: Likewise. - * loop-unroll.c: Likewise. - * loop-unswitch.c: Likewise. - * loop.c: Likewise. - * mips-tfile.c: Likewise. - * optabs.c: Likewise. - * ra-build.c: Likewise. - * ra-colorize.c: Likewise. - * ra-rewrite.c: Likewise. - * ra.h: Likewise. - * regmove.c: Likewise. - * reload.c: Likewise. - * rtlanal.c: Likewise. - * sched-ebb.c: Likewise. - * sched-int.h: Likewise. - * sched-vis.c: Likewise. - * sreal.c: Likewise. - * ssa-ccp.c: Likewise. - * ssa.c: Likewise. - * toplev.c: Likewise. - * tree-inline.c: Likewise. - * value-prof.c: Likewise. - * value-prof.h: Likewise. - -2003-07-01 Nathan Sidwell - - * rtl.h (emit_line_note_after): Remove. - (emit_note_copy_after, emit_note_copy): New. - * emit-rtl.c (reorder_insns_with_line_notes): Replace - emit_line_note_after with emit_note_copy_after. - (emit_insn_after_with_line_notes): Likewise. - (emit_line_note_after): Kill. - (emit_note_copy_after): New. - (emit_note_copy): New. - * function.c (emit_return_into_block): Use emit_note_copy_after. - (thread_prologue_and_epilogue_insns): Likewise. - * integrate.c (expand_inline_function): Use emit_note_copy. - (copy_insn_list): Likewise. - * unroll.c (copy_loop_body): Likewise. - * cfglayout.c (duplicate_insn_chain): Likewise. - -2003-07-01 Nathan Sidwell - - * c-tree.h (define_label): Replace filename and lineno arguments - with a location_t. - * c-decl.c (poplevel): Adjust define_label call. - (pop_label_level): Likewise. - (define_label): Replace filename and lineno arguments with a - location_t. - (store_parm_decls): Use DECL_SOURCE_LOCATION. - * c-parse.in (label): Adjust define_label call. - -2003-07-01 Neil Booth - - * config/sol2.h, config/alpha/alpha.h, config/alpha/linux.h, - config/i386/i386-interix.h, config/ia64/hpux.h, config/mips/iris6.h, - config/mips/linux.h, config/mips/mips.h, config/pa/pa-hpux.h, - config/pa/pa-hpux10.h, config/pa/pa-hpux11.h, config/pa/pa-pro-end.h, - config/pa/pa.h, config/pa/rtems.h: Use c_dialect_ macros. - -2003-07-01 Andreas Jaeger - - * final.c: Convert prototypes to ISO C90. - * flow.c: Likewise. - * flags.h: Likewise. - * gcov-io.c: Likewise. - * gcov-io.h: Likewise. - -See ChangeLog.9 for earlier changes. +See ChangeLog.10 for earlier changes. diff --git a/gcc/ChangeLog.10 b/gcc/ChangeLog.10 new file mode 100644 index 00000000000..b197c751d40 --- /dev/null +++ b/gcc/ChangeLog.10 @@ -0,0 +1,16352 @@ +2003-12-31 Richard Kenner + + * print-rtl.c (print_rtx): For hard register, write out register + number and register name instead of calling PRINT_REG. + * defaults.h (PRINT_REG): Deleted. + * config/i386/i386.c (print_reg): Remove handling of CODE of -1. + Move comments here from i386.h. + (print_operand, print_operand_address): Call print_reg directly. + * config/i386/i386.h (PRINT_REG): Deleted. + +2003-12-31 Roger Sayle + + * config/ia64/hpux.h (TARGET_OS_CPP_BUILTINS): Define + _INCLUDE_LONGLONG. + +2003-12-31 Zack Weinberg + + * gcc.c (init_spec): Add -lunwind to shared case too if + USE_LIBUNWIND_EXCEPTIONS. + +2003-12-31 Joseph S. Myers + + * doc/include/texinfo.tex: Update to version 2003-12-21.10. + * doc/gcc.texi, doc/gccint.texi: Don't set font for + @def... commands. + * doc/invoke.texi: Don't use empty @opindex. + +2003-12-31 Mark Mitchell + + * c-common.c (c_expand_expr): Remove code to return a value + different from that returned by expand_expr. + * expr.c (store_expr): Use the validity of a target MEM, rather + than checking DECL_RTL (exp), to figure out if a copy is + required. + +2003-12-31 Kazu Hirata + + * config/v850/lib1funcs.asm: Fix comment formatting. + * config/v850/v850.c: Likewise. + * config/v850/v850.h: Likewise. + * config/v850/v850.md: Likewise. + +2003-12-31 Kazu Hirata + + * config/i386/i386.md (*movqi_insv_2): Remove AND in the + set source. + +2003-12-31 Kazuhiro Inaoka + + * config.gcc: Added m32r-linux m32rle-elf and m32le-linux targets. + * doc/invoke.texi: Document -mflush-func, -mflush-trap options. + Also add documentation for -mdebug, -malign-loops, -missue-rate, + and -mbranch-cost options. + * config/m32r/t-linux: New file: m32r-linux support. + * config/m32r/xm-linux.h: Likewise. + * config/m32r/xm-m32r.h: Likewise. + * config/m32r/linux.h: Likewise. + * config/m32r/little.h: New file: Little endian code generation + support. + * config/m32r/m32r-protos.h (m32r_legitimize_pic_address, + m32r_legitimate_pic_operand_p, load_pic_register): Add + prototypes. + * config/m32r/m32r.c (m32r_init): Add options for cache-flush. + (addr24_operand): Changes for PIC code generation. + * config/m32r/m32r.h (LABEL_ALIGN): Define to calculate PNOP + length at labels. + (ASM_SPEC): Add PIC support. + (FUNCTION_PROFILER): New define. + (TRAMPOLINE_SIZE, INITIALIZE_TRAMPOLINE): Changed to support + trampoline. + (CONDITIONAL_REGISTER_USAGE, CONSTANT_ADDRESS_P, + LEGITIMIZE_ADDRESS, JUMP_TABLES_IN_TEXT_SECTION, + PIC_OFFSET_TABLE_REGNUM, FINALIZE_PIC, LEGITIMATE_PIC_OPERAND_P, + ASM_OUTPUT_ADDR_DIFF_ELT, CASE_VECTOR_MODE): Define for PIC. + (move_src_operand, m32r_compute_frame_size, m32r_expand_prologue, + m32r_finalize_pic): Changes for PIC and profile support. + (global_offset_table, load_pic_register, m32r_legitimate_pic_operand_p, + m32r_legitimize_pic_address): Add for PIC support. + (m32r_file_start): Changed for little-endian-target. + * config/m32r/m32r.md (mvqi, movhi, movsi, movdi, movsf, movdf, + tablejump, tablejump_insn, call, call_value, call_value_via_label): + Changes for PIC. + (pic_load_addr, get_pc, builtin_setjmp_receiver): Added for PIC. + (flush_icache): Changes for cache-flush trap. + +2003-12-30 Kazu Hirata + + * config/i386/i386.h: Remove an unnecessary #undef. + +2003-12-30 Roger Sayle + + * cppfiles.c (pch_open_file): Minor tweak to work-around native + HPPA compiler bug. + +2003-12-30 Kazu Hirata + + * config/rs6000/aix.h: Fix comment formatting. + * config/rs6000/rs6000-modes.def: Likewise. + * config/rs6000/rs6000.c: Likewise. + * config/rs6000/rs6000.h: Likewise. + * config/rs6000/rs6000.md: Likewise. + +2003-12-30 Kazu Hirata + + * config/i386/i386-protos.h: Remove prototype for + const_int_1_operand. + * config/i386/i386.c (const_int_1_operand): Remove. + * config/i386/i386.h (PREDICATE_CODES): Remove + const_int_1_operand. + * config/i386/i386.md: Replace all uses of const_int_1_operand + with const1_operand. + * config/i386/pentium.md: Likewise. + +2003-12-30 Geoffrey Keating + + * doc/tm.texi (PREFERRED_RELOAD_CLASS): Describe use of NO_REGS + with constants. + +2003-12-30 Mark Mitchell + + * stor-layout.c (layout_decl): Turn bitfields into ordinary + fields, even if they are the first field in a structure. + +2003-12-30 Roger Sayle + + * fold-const.c (fold) : Don't require strict type + equality, instead just prevent replacing a COND_EXPR of non-void + type by one of its operands of void type. + +2003-12-30 Andreas Schwab + + * doc/c-tree.texi: Fix @item vs. @itemx. + * doc/cpp.texi: Likewise. + * doc/install.texi: Likewise. + * doc/invoke.texi: Likewise. + +2003-12-30 Nathan Sidwell + + * builtins.c (expand_builtin_apply_args_1): Fix typo in previous + change. + +2003-12-30 Jan Hubicka + + PR target/11936 + * i386.h (CLASS_LIKELY_SPILLED_P): Return true for + FP_TOP_REG/FP_SECOND_REG. + +2003-12-30 Steven Bosscher + + Backport from tree-ssa (relevant changes only): + 2003-12-18 Zdenek Dvorak + + * et-forest.h (et_forest_create, et_forest_delete, + et_forest_add_node, et_forest_add_edge, et_forest_remove_node, + et_forest_remove_edge, et_forest_parent, + et_forest_common_ancestor, et_forest_node_value, + et_forest_enumerate_sons): Declarations removed. + (struct et_node): New. + (et_new_tree, et_free_tree, et_set_father, et_split, et_nca, + et_below): Declare. + * et-forest.c (struct et_forest_occurrence, struct et_forest, + struct et_forest_node): Removed. + (et_forest_create, et_forest_delete, + et_forest_add_node, et_forest_add_edge, et_forest_remove_node, + et_forest_remove_edge, et_forest_parent, + et_forest_common_ancestor, et_forest_node_value, + et_forest_enumerate_sons, splay, remove_all_occurrences, + find_leftmost_node, find_rightmost_node, calculate_value): Removed. + (struct et_occ): New. + (et_nodes, et_occurences): New. + (set_depth, set_depth_add, set_prev, set_next, et_recomp_min, + et_check_occ_sanity, et_check_sanity, et_check_tree_sanity, + record_path_before_1, record_path_before, check_path_after_1, + check_path_after, et_splay, et_new_occ, et_new_tree, + et_free_tree, et_set_father, et_split, et_nca, et_below): New. + * basic-block.h (struct basic_block_def): New field dom. + (struct dominance_info): Type removed. + (calculate_dominance_info, free_dominance_info, + nearest_common_dominator, set_immediate_dominator, + get_immediate_dominator, dominated_by_p, get_dominated_by, + add_to_dominance_info, delete_from_dominance_info, + recount_dominator, redirect_immediate_dominators, + iterate_fix_dominators, verify_dominators): Declarations + changed. + (enum dom_state): New. + (dom_computed): New variable. + (first_dom_son, next_dom_son): Declare. + * dominance.c (struct dominance_info): Removed. + (BB_NODE, SET_BB_NODE): Removed. + (calculate_dominance_info, free_dominance_info, + nearest_common_dominator, set_immediate_dominator, + get_immediate_dominator, dominated_by_p, get_dominated_by, + add_to_dominance_info, delete_from_dominance_info, + recount_dominator, redirect_immediate_dominators, + iterate_fix_dominators, verify_dominators, + debug_dominance_info): Work over new datastructure. Access + dominance datastructures through CFG. + (assign_dfs_numbers, compute_dom_fast_query, first_dom_son, + next_dom_son): New. + * bt-load.c (dom): Variable removed. + (augment_live_range, combine_btr_defs, migrate_btr_def, + migrate_btr_defs, branch_target_load_optimize): Updated for the + new interface for dominance information. + * cfg.c {exit_entry_blocks): Update initializer. + * cfglayout.c (copy_bbs): Removed loops argument. Updated for + the new interface for dominance information. + * cfglayout.h (copy_bbs): Declaration changed. + * cfgloop.c (flow_loop_pre_header_find, flow_loops_cfg_dump, + flow_loop_scan, canonicalize_loop_headers, flow_loops_find): Updated + for the new interface for dominance information. + (flow_loop_scan): Loops argument removed. + (flow_loops_free): Don't release dominators. + * cfgloop.h (struct cfg): Dom field removed. + (flow_loop_scan, loop_split_edge_with, simple_loop_p, + just_once_each_iteration_p, split_loop_bb): Declaration changed. + * cfgloopanal.c (simple_loop_exit_p, simple_increment, + just_once_each_iteration_p, simple_loop_p): Remove loops argument. + Updated for the new interface for dominance information. + * cfgloopmanip.c (remove_bbs, find_path, create_preheader, + split_loop_bb, loopify, duplicate_loop_to_header_edge, + force_single_succ_latches, loop_split_edge_with): Ditto. + * gcse.c (dominators): Variable removed. + (free_code_hoist_mem, compute_code_hoist_data, hoist_code): + Updated for the new interface for dominance information. + * ifcvt.c (post_dominators): Variable removed. + (mark_loop_exit_edges, merge_if_block, find_if_header, + find_cond_trap, find_if_case_1, find_if_case_2, if_convert): + Updated for the new interface for dominance information. + * loop-init.c (rtl_loop_optimizer_init, + rtl_loop_optimizer_finalize): Ditto. + * loop-unroll.c (decide_peel_simple, decide_peel_once_rolling, + decide_peel_completely, decide_unroll_stupid, + decide_unroll_constant_iterations, + decide_unroll_runtime_iterations): Loops argument removed. + Updated for the new interface for dominance information. + (unroll_and_peel_loops, peel_loops_completely, + unroll_loop_runtime_iterations): Updated for the new interface for + dominance information. + * loop-unswitch.c (may_unswitch_on_p, unswitch_loops, + unswitch_single_loop, unswitch_loop): Updated for the new + interface for dominance information. + * predict.c (process_note_predictions, process_note_prediction, + estimate_probability, note_prediction_to_br_prob): Ditto. + * sched-rgn.c (find_rgns, init_regions): Ditto. + * toplev.c (rest_of_handle_branch_prob): Free the dominators. + +2003-12-30 Jan Hubicka + + PR target/13456 + * i386.md (allocate_stack_worker): Use different pattern for pre and + post reload expansion. + (allocate_stack_worker_1, allocate_stack_worker_rex64): Use + match_scratch. + (allocate_stack_worder_1_postreload, + allocate_stack_worker_rex64_postreload): New. + +2003-12-29 Nathan Sidwell + + * builtins.c (expand_builtin_apply_args_1): Add pretend args size + to the virtual incoming args pointer for downward stacks. + +2003-12-29 Roger Sayle + + PR fortran/12632 + * fold-const.c (fold) : Don't fold a constant condition, + if the type of the selected branch doesn't match its' parent. + +2003-12-29 Jan Hubicka + + * coverage.c (read_counts_file): Better error messages; cause corrupted + profiles to produce hard errors, not just warnings + (get_coverage_counts): Similarly. + + * toplev.c (rest_of_handle_loop_optimize): Enable LOOP_AUTO_UNROLL. + +2003-12-29 Phil Edwards + + * doc/cppopts.texi: Use of -idirafter, -iprefix, -iwithprefix, and + -iwithprefixbefore is not discouraged. + +2003-12-28 Mostafa Hagog + + * sbitmap.c (sbitmap_union_of_diff_cg, sbitmap_a_and_b_cg, + sbitmap_a_xor_b_cg): Accumulate "changed" properly. + (sbitmap_not): Zero all bits past n_bit. + +2003-12-27 Zdenek Dvorak + + PR opt/13159 + * cfgloopanal.c (mark_irreducible_loops): Fix the strongly connected + components detection. + * loop-unswitch.c (unswitch_loop): Preserve simple preheaders. + +2003-12-27 Bernardo Innocenti + + * config/m68k/uclinux.h (LIB_SPEC): Add elf2flt magic required for + correct linking of executables using id-based shared libraries. + +2003-12-27 Kazu Hirata + + * config/i386/i386-interix.h: Remove uses of "register" + specifier in declarations of arguments and local variables. + * config/i386/i386.c: Likewise. + * config/i386/i386elf.h: Likewise. + * config/i386/ptx4-i.h: Likewise. + * config/i386/sysv4.h: Likewise. + +2003-12-26 Fariborz Jahanian + Geoffrey Keating + David Edelsohn + + * config/rs6000/rs6000.c (legitimate_offset_address_p): Do not + restrict DFmode and TFmode to word alignment. + * config/rs6000/rs6000.md (movdf_hardfloat64): Use 'o' constraint + for ld/std and order before mr. + +2003-12-26 Andrew Pinski + + * config/darwin.h (LINK_COMMAND_SPEC): Arrange + -fprofile-generate to imply -lgcov. + +2003-12-26 Kazu Hirata + + * config/h8300/h8300.md (ldm_h8300s_2_normal): Use HImode for + addresses. + +2003-12-25 Kazu Hirata + + * config/m32r/m32r.md: Remove a constraint from a splitter. + +2003-12-25 Andrew Pinski + + PR C++/13429, C/11944 + * c-common.c (c_build_qualified_type): Return early when type is + error_mark_node. + (c_apply_type_quals_to_decl): Likewise. + +2003-12-25 Kazu Hirata + + * config/alpha/alpha-modes.def: Fix comment formatting. + * config/alpha/alpha.c: Likewise. + * config/alpha/alpha.h: Likewise. + * config/alpha/elf.h: Likewise. + * config/alpha/lib1funcs.asm: Likewise. + * config/alpha/openbsd.h: Likewise. + * config/alpha/vms-cc.c: Likewise. + * config/alpha/vms-crt0-64.c: Likewise. + * config/alpha/vms-crt0.c: Likewise. + * config/alpha/vms-ld.c: Likewise. + * config/alpha/vms-psxcrt0-64.c: Likewise. + * config/alpha/vms-psxcrt0.c: Likewise. + * config/alpha/vms.h: Likewise. + * config/arc/arc.c: Likewise. + * config/arm/aof.h: Likewise. + * config/arm/arm-modes.def: Likewise. + * config/arm/arm.c: Likewise. + * config/arm/arm.h: Likewise. + * config/arm/arm.md: Likewise. + * config/arm/linux-elf.h: Likewise. + * config/arm/vxworks.h: Likewise. + * config/avr/avr.c: Likewise. + * config/avr/avr.h: Likewise. + +2003-12-24 Kazu Hirata + + * config/xtensa/elf.h: Fix comment formatting. + * config/xtensa/xtensa-protos.h: Likewise. + * config/xtensa/xtensa.c: Likewise. + * config/xtensa/xtensa.h: Likewise. + +2003-12-24 Kazu Hirata + + * config/avr/avr.c: Fix comment formatting. + * config/avr/avr.md: Likewise. + +2003-12-24 Kazu Hirata + + PR target/12721. + * config/avr/avr.c: Include ggc.h. + (tmp_reg_rtx): Declare with GTY. + (zero_reg_rtx): Likewise. + (ldi_reg_rtx): Remove. + (avr_override_options): Initialize zero_reg_rtx and + ldi_reg_rtx. + (avr_init): Remove. + Include gt-avr.h. + * config/avr/avr.h (LDI_REG_REGNO): Remove. + Remove externs for tmp_reg_rtx, zero_reg_rtx, and ldi_reg_rtx. + +2003-12-24 David Edelsohn + + * doc/md.texi: Document PowerPC vector register constraint letter. + +2003-12-23 Mark Mitchell + + * calls.c (expand_call): Recognize calls to "sqrt" and create + corresponding notes. + +2003-12-23 Kaveh R. Ghazi + + * config/mips/mips.c (override_options): Use `inform' instead + of `warning' for -g -mabi=32 and native assembler. + + * config/mips/t-iris6 (CRTSTUFF_T_CFLAGS, TARGET_LIBGCC2_CFLAGS): + Don't pass -Wno-error. + +2003-12-23 David Edelsohn + + * function.c (assign_parms): Update max_parm_reg and + parm_reg_stack_loc when adding new parm reg. + +2003-12-23 Kazu Hirata + + * config/ns32k/ns32k.c: Convert to ISO-C. + +2003-12-23 Zack Weinberg + + * config/ia64/ia64.c (ia64_va_arg): Pass pointer for + variable-sized type through convert_memory_address. + (ia64_in_small_data_p): Always return false for FUNCTION_DECLs. + +2003-12-23 Jan Hubicka + + * common.opt (fprofile-generate,fprofile-use): Add. + * gcc.c (LINK_COMMAND_SPEC): Arrange -fprofile-generate to imply -lgcov + * opts.c (profile_arc_flag_set, flag_profile_values_set, + flag_unroll_loops_set, flag_tracer_set, + flag_value_profile_transformations_set, + flag_peel_loops_set): New static variables. + (common_handle_option): Deal with -fprofile-generate/-fprofile-use + * invoke.texi (-fprofile-generate, -fprofile-use): Describe. + +2003-12-23 Mark Mitchell + + * Makefile.in (OBJS-common): Remove dwarfout.o. + (dwarfout.o): Remove. + * common.opt: Remove -gdwarf, -gdwarf+. + * defaults.h (PREFERRED_DEBUGGING_TYPE): Do not check for + DWARF_DEBUGGING_INFO. + * dwarf2out.c: Fix typo in comment. + * dwarfout.c: Remove. + * opts.c (common_handle_option): Remove OPT_gdwarf, OPT_gdwarf_. + * toplev.c (process_options): Remove check for + DWARF_DEBUGGING_INFO. + * config/elfos.h (DWARF_DEBUGGING_INFO): Do not #define it or + #undef it. + * config/netware.h (DWARF_DEBUGGING_INFO): Likewise. + * config/ptx4.h (DWARF_DEBUGGING_INFO): Likewise. + * config/vxworks.h (DWARF_DEBUGGING_INFO): Likewise. + * config/alpha/unicosmk.h (DWARF_DEBUGGING_INFO): Likewise. + * config/arc/arc.h (DWARF_DEBUGGING_INFO): Likewise. + * config/i386/sco5.h (DWARF_DEBUGGING_INFO): Likewise. + * config/i386/x86-64.h (DWARF_DEBUGGING_INFO): Likewise. + * config/m32r/m32r.h (DWARF_DEBUGGING_INFO): Likewise. + * config/mcore/mcore-elf.h (DWARF_DEBUGGING_INFO): Likewise. + * config/sparc/linux64.h (DWARF_DEBUGGING_INFO): Likewise. + * config/sparc/liteelf.h (DWARF_DEBUGGING_INFO): Likewise. + * config/sparc/sol26-sld.h (DWARF_DEBUGGING_INFO): Likewise. + * config/sparc/sp86x-elf.h (DWARF_DEBUGGING_INFO): Likewise. + * doc/invoke.texi: Do not mention -gdwarf, -gdwarf-1, -gdwarf-1+, + or -gdwarf+. + * doc/tm.texi: Likewise. + + * c-common.c (flag_abi_version): Default to 2. + * c-cppbuiltin.c (c_cpp_builtins): Define __GXX_ABI_VERSION + uniformly for versions above 2. + * doc/invoke.texi: Update documentation for -fabi-version. + +2003-12-22 Geoffrey Keating + + * config/rs6000/rs6000.md: Change many instances of '! + TARGET_POWERPC64' to 'TARGET_32BIT' when the pattern being guarded + was guarded only because it changed CR0 or the carry bit in XER. + +2003-12-23 Eric Botcazou + + PR optimization/13394 + * toplev.c (rest_of_compilation): Move call to + check_function_return_warnings right after the sibcall + optimization pass. + +2003-12-23 Eric Botcazou + + PR c/13382 + * c-typeck.c (convert_for_assignment): When converting from + integral type to pointer type, always call convert. + +2003-12-22 Mark Mitchell + + * doc/invoke.texi: Deprecate -fwritable-strings. + + * c-common.c (flag_external_templates): Remove. + (flag_alt_external_templates): Likewise. + * c-common.h (flag_external_templates): Remove. + (flag_alt_external_templates): Likewise. + * c-opts.c (c_common_handle_option): Unsupport + -falt-external-templates and -ftemplates. + * doc/invoke.texi: Remove mention of -fexternal-templates and + -falt-external-templates. + +2003-12-22 Andrew Pinski + + PR target/13466 + * config.gcc (powerpc-*-darwin): Remove overridden value of need_64bit_hwint. + + * emit-rtl.c (copy_rtx_if_shared): Add comment about its use of + copy_rtx_if_shared_1. + (copy_rtx_if_shared_1): Add comment about what the function does. + + * c-decl.c (finish_function): Change order of checks. + (c_expand_body): Likewise. + +2003-12-22 Fariborz Jahanian + + * config/rs6000/rs6000.c (legitimate_offset_address_p): Correct + check for the legitimate offset when memory of + DImode/DFmode/TFmode/TImode mode is being referenced and target + is TARGET_POWERPC64. + +2003-12-22 Dale Johannesen + + * reload1.c: Add reg_reloaded_call_part_clobbered. + (reload_as_needed): Use it. + (forget_old_reloads_1): Ditto. + (emit_reload_insns): Ditto. + +2003-12-22 Dale Johannesen + + PR optimization/12828 + * loop.c: Add find_regs_nested to look inside CLOBBER(MEM). + (scan_loop): Call it. + * regclass.c (reg_scan_mark_regs): Look inside CLOBBER(MEM). + +2003-12-22 Andrew Pinski + + PR c/9163 + * c-decl.c (poplevel): Only set DECL_INITIAL of a current function + if it is non-null. + (finish_function): Check for error_mark_node or null on DECL_RESULT and + DECL_RESULT of fndecl. + (c_expand_body): Only expand when DECL_INITIAL of fndecl is not + error_mark_node and not null. + +2003-12-21 Dan Nicolaescu + + * rtl.h (dump_rtx_statistics): Declare it. + * rtl.c (rtx_alloc_counts, rtx_alloc_sizes, rtvec_alloc_counts, + rtx_alloc_sizes): New static vars. + (rtx_alloc, rtvec_alloc): Update them. + (dump_rtx_statistics): New function. + * toplev.c (finalize): Call it. + * ggc-page.c (struct globals): Fix comments. Add new member + total_allocated_per_order. + (ggc_alloc): Keep track of the total allocated memory. + (ggc_print_statistics): Clarify message. Print total allocated + memory stats. + * configure.in (gather-detailed-mem-stats): New flag. + * configure: Regenerate. + * config.in: Regenerate. + * doc/install.texi (Configuration): Document + --enable-gather-detailed-mem-stats. + +2003-12-22 Kazu Hirata + + * system.h (CONVERT_HARD_REGISTER_TO_SSA_P): Poison. + * config/i386/i386.h (CONVERT_HARD_REGISTER_TO_SSA_P): Remove. + +2003-12-21 Roger Sayle + + * config/ia64/hpux.h (TARGET_OS_CPP_BUILTINS): Define _ILP32 + when compiling in ILP32 mode. + +2003-12-21 Andrew Pinski + + * config/rs6000/rs6000.c (rs6000_tls_referenced_p): Return early if + TARGET_HAVE_TLS is false. + +2003-12-21 Kazu Hirata + + * config/ip2k/ip2k-protos.h: Remove the prototype for + asm_output_section_name. + * config/ip2k/ip2k.c (asm_output_section_name): Remove. + +2003-12-21 Kazu Hirata + + * alias.c: Fix comment formatting. + * alloc-pool.c: Likewise. + * bitmap.c: Likewise. + * bitmap.h: Likewise. + * bt-load.c: Likewise. + * c-common.c: Likewise. + * c-common.h: Likewise. + * c-decl.c: Likewise. + * c-opts.c: Likewise. + * c-pretty-print.c: Likewise. + * caller-save.c: Likewise. + * cfghooks.h: Likewise. + * cgraph.c: Likewise. + * collect2.c: Likewise. + * cppfiles.c: Likewise. + * cpplib.h: Likewise. + * dwarf2out.c: Likewise. + * dwarfout.c: Likewise. + * emit-rtl.c: Likewise. + * final.c: Likewise. + * function.c: Likewise. + * gcov.c: Likewise. + * gcse.c: Likewise. + * genemit.c: Likewise. + * ggc.h: Likewise. + * haifa-sched.c: Likewise. + * ifcvt.c: Likewise. + * libgcc2.h: Likewise. + * loop.c: Likewise. + * predict.h: Likewise. + * unwind-libunwind.c: Likewise. + * varasm.c: Likewise. + +2003-12-21 Kazu Hirata + + * config/mn10300/mn10300.c (mn10300_encode_section_info): Fix + a warning. + +2003-12-21 Kazu Hirata + + * config/arm/arm.c: Convert to ISO-C. + * config/avr/avr.h: Likewise. + * config/fr30/fr30.c: Likewise. + * config/ip2k/ip2k.c: Likewise. + * config/mn10300/mn10300.c: Likewise. + +2003-12-20 Andrew Pinski + Matt Thomas + + PR target/12749 + * config/i386/i386.c (print_operand): Print only the first + 8 characters of the float in hex. + +2003-12-20 John David Anglin + + * pa.h (TRAMPOLINE_TEMPLATE): Shorten sequence when generating PA + 2.0 code. + (TRAMPOLINE_CODE_SIZE, MIN_CACHELINE_SIZE): New defines. + (INITIALIZE_TRAMPOLINE): Rework to pass line length, and aligned start + and end addresses to I and D cache instruction patterns. + * pa.md (anddi3, iordi3): Change predicates of operands 1 and 2 to + and_operand and ior_operand, respectively. When generating 64-bit + code, only one operand needs to be a register operand. + (xordi3): Change predicates of operands 1 and 2 to register_operand. + (one_cmpldi2): Change predicate of operand 1 to register_operand. + (dcacheflush, icacheflush): Revise to flush an arbitrary number of + cache lines. + +2003-12-20 Josef Zlomek + + PR optimization/13430, PR optimization/12322 + * bb-reorder.c (copy_bb_p): Do not allow block with many successors to + be copied. + (find_traces_1_round): Surround check for fake edges by + #ifdef ENABLE_CHECKING #endif. + +2003-12-20 Eric Botcazou + + PR other/7956 + * genmultilib: New variable disable_multilib. Set it to 'yes' + if enable_multilib was set to 'no'. Emit DISABLE_MULTILIB + if disable_multilib was set to 'yes'. + * gcc.c: Include multilib.h before tm.h. + * config/sparc/sol2-bi.h (LINK_ARCH_SPEC): Emit an error + message for multiarch options if DISABLE_MULTILIB is set. + * config/sparc/sol2-gld-bi.h (LINK_ARCH_SPEC): Likewise. + +2003-12-20 Eric Botcazou + + PR c/12085 + * c-typeck.c (build_function_call): Issue a warning if a + function is called through an incompatible prototype and + replace the call by a trap in this case. + +2003-12-19 James E Wilson + + * install.texi (ia64-*-linux): Document minimum libunwind version + number. + +2003-12-19 Per Bothner + + * langhooks.c (lhd_print_error_function): Fix for PR c/13110. + Don't do pp_newline; it causes an extra blank line. + * pretty-print.c (pp_base_flush): Clear pp_needs_newline. + +2003-12-19 Jason Merrill + + * tree.c (get_unwidened): Decide whether to narrow a bitfield + reference based on TYPE_SIZE, not TYPE_PRECISION. + + * stmt.c (parse_output_constraint): Warn about in-out constraint + that doesn't allow a register. + (parse_input_constraint): Warn about matching constraint that + doesn't allow a register. + +2003-12-19 James E Wilson + + * flow.c (mark_set_regs, case PARALLEL): Scan loop forwards. + Add case for ASM_OPERANDS. + * global.c (global_alloc): Set regs_ever_live for regs_asm_clobbered + registers. + +2003-12-19 Kazu Hirata + + * expr.c (check_max_integer_computation_mode): Remove. + * dojump.c (do_jump): Don't use MAX_INTEGER_COMPUTATION_MODE. + * fold-const.c (fold): Likewise. + * system.h (MAX_INTEGER_COMPUTATION_MODE): Poison. + * doc/tm.texi (MAX_INTEGER_COMPUTATION_MODE): Remove. + +2003-12-19 James E Wilson + + * configure.in: Delete libunwind_has_eh_support test. + * configure: Regenerate. + * config.gcc (ia64*-*-linux*): Delete reference to t-libunwind-no-eh + and libunwind_has_eh_support check. + * config/t-libunwind-no-eh: Delete. + +2003-12-19 Joseph S. Myers + + * c-format.c (print_char_table): Allow 'I' flag on floating point + decimal formats. + +2003-12-19 Stuart Hastings + + * gcc/config/i386/i386.c (ix86_expand_call, x86_output_mi_thunk): + Trivial fixes for i386.c on Darwin/x86. + +2003-12-19 Fariborz Jahanian + + * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): Add code to + recognize macho-style lo_sum adrress patterns. + +2003-12-19 Kazu Hirata + + * dwarfout.c: Remove uses of "register" specifier in + declarations of arguments and local variables. + * gensupport.c: Likewise. + * local-alloc.c: Likewise. + * regclass.c: Likewise. + +2003-12-19 Kelley Cook + + * config.guess: Remove. + +2003-12-19 Jakub Jelinek + + * config/ia64/unwind-ia64.c (ia64_copy_rbs): New function. + (unw_access_gr): Only call ia64_rse_rnat_addr if addr is above + regstk_top. + (uw_frame_state_for): Handle locations inside bundles. + (uw_init_context_1): Initialize context->rnat. + Set context->regstk_top to lowest rbs address which has nat collection + in context->rnat. + (uw_install_context): Fix rnat restoring. + Restore ar.rsc to previous state. + * config/ia64/linux.h (MD_FALLBACK_FRAME_STATE_FOR, + MD_HANDLE_UNWABI): Handle unwinding through SA_ONSTACK frames. + +2003-12-19 Jakub Jelinek + + PR c++/13239 + * builtins.c (expand_builtin_expect_jump): Update + TREE_VALUE (arglist) if unsave_expr_now langhook + created a new tree. + +2003-12-19 Richard Earnshaw + + * arm.c (thumb_base_register_rtx_p): Use regno in comparison against + FIRST_PSEUDO_REGISTER. + +2003-12-18 Hartmut Penner + + * gcc/config/rs6000/rs6000.c (USE_ALTIVEC_FOR_ARG_P): Don't check + for SVR4 ABI. + +2003-12-18 Geoffrey Keating + + * config/rs6000/aix.h (OS_MISSING_POWERPC64): Define. + (OS_MISSING_ALTIVEC): Define. + * config/rs6000/darwin.h (ASM_SPEC): Be generous about supplying + -force_cpusubtype_ALL. + * config/rs6000/rs6000.c (rs6000_override_options): Rearrange + CPU information table; now always set all CPU-specific values. + Also, use Altivec and powerpc64 when chip and OS supports them. + +2003-12-18 Geoffrey Keating + + * fixinc/inclhack.def (darwin_macho_dyldh): New. + * fixinc/fixincl.x: Regenerate. + +2003-12-18 Dara Hazeghi + + * version.c (version_string): Renumber as 3.4.0 + * doc/include/gcc-common.texi: Likewise + +2003-12-18 Richard Henderson + + * genrecog.c (print_host_wide_int): New. + (write_switch, write_cond): Use it. + +2003-12-18 Richard Henderson + + * c-decl.c (check_bitfield_type_and_width): Remove enum special + case suppression of pedwarn. + * system.h (ENUM_BITFIELD): Use __extension__. + (CHAR_BITFIELD): Likewise. + +2003-12-18 Ulrich Weigand + Mark Dettinger + + * config/s390/s390.md (UNSPEC_SRST): New constant. + ("strlendi", "strlensi"): New expanders. + ("*strlendi", "*strlensi"): New insns. + +2003-12-18 Mark Mitchell + + * config/sol2.h (LINK_ARCH32_SPEC): Define in terms of ... + (LINK_ARCH32_SPEC_BASE): ... this new macro. + * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC): Define in terms of + ... + (LINK_ARCH64_SPEC_BASE): ... this new macro. + * config/sparc/sol2-gld-bi.h (LINK_ARCH32_SPEC): New macro. + (LINK_ARCH64_SPEC): Likewise. + +2003-12-18 Jason Merrill + + PR middle-end/13234 + * tree-dump.c (dequeue_and_dump): Handle 'r' and 's' code + classes. + +2003-12-18 Steven Bosscher + + * Makefile.in (tracer.o, bb-reorder.o): Depend on timevar.h + * toplev.c (rest_of_handle_reorder_blocks, rest_of_handle_tracer): + Don't push and pop TV_REORDER_BLOCKS timevars, do it... + * bb-reorder.c (reorder_basic_blocks): ...here, and... + * tracer.c (tracer): here. + +2003-12-18 Ulrich Weigand + + * loop.c (move_movables): Handle combination of m->consec, + m->move_insn_first, and m->insert_temp all nonzero correctly. + +2003-12-18 Kazu Hirata + + * calls.c (load_register_parameters): Don't use + LOAD_ARGS_REVERSED. + * system.h (LOAD_ARGS_REVERSED): Poison. + * doc/tm.texi (LOAD_ARGS_REVERSED): Remove. + +2003-12-17 Per Bothner + + * emit-rtl.c (set_new_first_and_last_label_num): Remove function. + * rtl.h (set_new_first_and_last_label_num): Remove declaration. + +2003-12-17 Alexandre Oliva + + * config/frv/frv.c (frv_ifcvt_modify_insn): Don't leave alone + scratch insns of the then branch that clobber regs needed by the + else branch. + +2003-12-17 Kazu Hirata + + * calls.c (expand_call): Update comments. + * system.h (PRETEND_OUTGOING_VARARGS_NAMED): Poison. + * targhooks.c: Do not refer to PRETEND_OUTGOING_VARARGS_NAMED. + +2003-12-17 James E Wilson + Roger Sayle + + * Makefile.in (gcse.o): Add $(TREE_H) to dependencies. + * gcse.c: Include tree.h. + (implicit_set_cond_p): New. + (find_implicit_sets): Call it. + +2003-12-17 Santiago Vila + + * config/kfreebsdgnu.h (TARGET_OS_CPP_BUILTINS): Rename from + TARET_OS_CPP_BUILTINS. + +2003-12-16 Kazu Hirata + + * emit-rtl.c: Fix signed/unsigned comparison warnings. + +2003-12-17 Joseph S. Myers + + * predict.c (struct block_info_def, struct edge_info_def): Change + bit-fields of width 1 to unsigned int. + +2003-12-16 Geoffrey Keating + + PR 12480 + * c-pch.c (pch_init): Improve error message when precompiled + header can't be written. + + PR 12606 + * c-pch.c (pch_init): Make a PCH file appear invalid while it's + being written. + (c_common_write_pch): Make it valid once it's done. + +2003-12-17 Ulrich Weigand + + PR target/11992 + * config/s390/s390.md ("*cmpmem_long_64"): Use CLCLE instruction + instead of CLCL. + ("*cmpmem_long_31"): Likewise. + +2003-12-17 Vladimir Makarov + + * config/ia64/ia64.c: Add more comments about insn bundling. + +2003-12-17 Richard Earnshaw + + PR optimization/10592 + * caller-save.c (mark_referenced_regs): Don't short-circuit a reg + or subreg in SET_DEST if it isn't a hard register. + +2003-12-17 David Edelsohn + + * collect2.c (main): Add -fno-profile-arcs -fno-test-coverage + -fno-branch-probabilities to arguments when compiling ctors and + dtors. + +2003-12-17 Eric Botcazou + + * config/sparc/sol2.h: Set SUPPORTS_INIT_PRIORITY to 0. + * config/sparc/sol2-gld.h: Set SUPPORTS_INIT_PRIORITY to 1. + +2003-12-17 Richard Earnshaw + + * arm.c (thumb_base_register_rtx_p): Don't allow virtual registers + as base registers for sub-word operations. + (thumb_legitimate_address_p): Simplify REG+REG test. + +2003-12-17 Segher Boessenkool + + * opts.c (wrap_help): Fix overflow. + +2003-12-17 Fred Fish + + * configure.in: Remove code to examine linker scripts and set + HAVE_MIPS_LIBGLOSS_STARTUP_DIRECTIVES. + * configure, config.in: Regenerate. + +2003-12-16 Mark Mitchell + + PR c++/12218 + * varasm.c (initializer_constant_valid_p): Allow a conversion from + an integral constant to an OFFSET_TYPE. + +2003-12-16 Kazu Hirata + + PR target/11012 + * config/m32r/m32r.c (gen_compare): Call gen_addsi3 instead of + gen_cmp_ne_small_const_insn. + * config/m32r/m32r.md (cmp_ne_small_const_insn): Remove. + +2003-12-17 Neil Booth + Joseph S. Myers + + PR c/3347 + * c-decl.c (enum_decl_context): Remove BITFIELD. + (grokdeclarator): Take bit-field width as an input. + Perform bit-field width validation with + check_bitfield_type_and_width rather than waiting for + finish_struct. + (groktypename, groktypename_in_parm_context, start_decl, + push_parm_decl, grokfield, start_function): Update calls to + grokdeclarator. + (check_bitfield_type_and_width): New function. + (finish_struct): Move bit-field validation to grokdeclarator + and check_bitfield_type_and_width. + +2003-12-16 John David Anglin + + PR bootstrap/13386 + * configure.in (gcc_cv_ld_hidden): Set to yes on hppa64*-*-hpux* when + using HP native linker. + * configure: Rebuilt. + +2003-12-16 Mark Mitchell + + PR c++/13275 + * c-common.h (enum rid): Add RID_OFFSETOF. + * c-parser.in (rid_to_yy): Ignore RID_OFFSETOF. + * ginclude/stddef.h (offsetof): Reimplement for C++, using + __offsetof__. + * doc/extend.texi: Document __offsetof__. + +2003-12-16 Stan Cox + + * config/iq2000/iq2000.h: Formatting. + (MAX_INT_TYPE_SIZE, MAX_INT_TYPE_SIZE, CONST_COSTS, RTX_COSTS) + (ADDRESS_COST, ASM_OUTPUT_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL) + (IMPLICIT_FIX_EXPR, EASY_DIV_EXPR, SLOW_ZERO_EXTEND): Remove + * config/iq2000/iq2000.c: Formatting. + (iq2000_rtx_costs): New. + +2003-12-16 Richard Earnshaw + + * arm.md (addsi3_carryin_shift): Add missing register constraints. + +2003-12-16 Loren James Rittle + + * testsuite/g++.old-deja/g++.eh/badalloc1.C: Tweak to + pass with -pthread on FreeBSD systems. + +2003-12-16 Richard Sandiford + + * config/mips/mips.c (mips_file_end): Only write symbols that have + been referenced at some point. + +2003-12-16 Richard Sandiford + + * config/mips/mips.c: Include langhooks.h + (mips_build_builtin_va_list): Use lang_hooks.types.make_type. + +2003-12-16 Eric Botcazou + + PR optimization/13313 + * combine.c (make_extraction) [REG]: Do not use + gen_lowpart_for_combine when POS is non-zero. + +2003-12-16 Hartmut Penner + + * altivec.h (vec_cmple, vec_all_numeric): Fix typo. + * testsuite/gcc.dg/altivec-10.c: Test for above. + +2003-12-15 David O'Brien + + * Makefile.in (CPPFLAGS): Initialize from configure. + +2003-12-15 Roger Sayle + + PR middle-end/13400 + * ifcvt.c (noce_process_if_block): Disable unconditional write + optimizations if we could introduce a store to trapping memory + that wasn't present previously. + +2003-12-15 Kazu Hirata + + * system.h (DEFAULT_CALLER_SAVES): Poison. + * toplev.c (flag_caller_saves): Always initialize with 0. + * doc/tm.texi (DEFAULT_CALLER_SAVES): Remove. + +2003-12-15 Kazu Hirata + + * flow.c (EXIT_IGNORE_STACK): Move to ... + * defaults.h (EXIT_IGNORE_STACK): ... here. + * dojump.c (clear_pending_stack_adjust): Don't use #ifdef + EXIT_IGNORE_STACK. + * function.c (expand_function_end): Likewise. + * global.c (global_alloc): Likewise. + * ra.c (init_ra): Likewise. + * reload1.c (init_elim_table): Likewise. + * reorg.c (fill_simple_delay_slots): Likewise. + * resource.c (init_resource_info): Likewise. + * doc/tm.texi (EXIT_IGNORE_STACK): Document that the default + is 0. + +2003-12-15 J"orn Rennecke + + * reload.c (reg_overlap_mentioned_for_reload_p): + When looking at a PLUS in X, avoid spuriously returning nonzero + when IN is a REG or another simple PLUS, or a MEM containing one. + + * loop.c (loop_invariant_p): Amend comment about where new registers + might come from. + +2003-12-15 Andreas Jaeger + + * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Remove + handling of obsolete language CHILL. + +2003-12-15 Waldek Hebisch + + * tree.c (initializer_zerop): Add test for empty set. + * integrate.c (function_cannot_inline_p): Forbid inlining + functions calling `longjmp'. + +2003-12-15 Nathan Sidwell + + PR c++/11773 + * doc/gcov.texi (Gcov and Optimization): Document inline function + behaviour. Fix some file suffixes. + +2003-12-14 David O'Brien + + * config/i386/i386.h (__amd64, __amd64__): Remove duplicates. + +2003-12-14 Mark Mitchell + + * c-common.h (c_parse_error): Declare it. + * c-common.c (c_parse_error): New function. + * c-parse.y (yyerror): Use it. + +2003-12-14 John David Anglin + + PR target/13054 + * pa-protos.h (indexed_memory_operand, borx_reg_operand, + move_dest_operand, move_src_operand): New protypes. + (basereg_operand, move_operand, reg_or_nonsymb_mem_operand): Deleted. + * pa.c (copy_reg_pointer, indexed_memory_operand, move_dest_operand, + move_src_operand): New functions. + (basereg_operand, reg_or_nonsymb_mem_operand, move_operand): Delete. + (reg_or_0_or_nonsymb_mem_operand): Return false for unscaled indexed + address until cse is not expected on targets with non-equivalent + space registers. + (hppa_legitimize_address): Canonicalize unscaled indexed addresses + on targets non-equivalent space registers. + (emit_move_sequence): Break out indexed addresses from destination + operand. Similarly, break out unscaled indexed addresses from + source operand on targets with non-equivalent space registers. Fix + REG_POINTER flag when possible. Mark register pointer when creating + new pointers. + (print_operand): Handle unscaled index addresses. + * pa.h (IS_INDEX_ADDR_P, IS_LO_SUM_DLT_ADDR_P): New macro subroutines + for EXTRA_CONSTRAINT. + (EXTRA_CONSTRAINT): Rework to make more readable. + (MODE_OK_FOR_SCALED_INDEXING_P, MODE_OK_FOR_UNSCALED_INDEXING_P): New + subroutines for GO_IF_LEGITIMATE_ADDRESS. + (GO_IF_LEGITIMATE_ADDRESS): Rework using new subroutines. Allow scaled + and unscaled addresses. Canonicalize unscaled indexed addresses on + targets with non-equivalent space registers. Document issues in + handling indexed address modes on PA-RISC. + (PREDICATE_CODES): Update for new and deleted predicates. + * pa.md (move_dest_operand, move_src_operand, indexed_memory_operand): + Use new predicates in move patterns. + Add peephole2 patterns to optimize floating point stores. Fix + constrain preferencing in move patterns. Delete patterns for handling + unscaled indexed memory loads. Add missing load and store with + base-register modification patterns. Correct SFmode floating point + store pattern. Add missing zero extension loads. + +2003-12-13 Steven Bosscher + + * ggc-zone.c (struct alloc_zone): Don't pre-declare, it already + comes in with ggc.h. Add a new bool field `dead'. + (destroy_ggc_zone): Don't destroy a zone at once. Instead, only + set the `dead' flag for the dead zone. Wrap a sanity check in + ENABLE_CHECKING. + (ggc_collect_1): Always mark and sweep if a zone has the `dead' + flag set. + (ggc_collect): Free dead zones after collecting. + +2003-12-13 Jan Hubicka + + * coverage.c (get_coverage_counts): Use inform instead of warning + about missing profile. + +2003-12-12 Steven Bosscher + + * Makefile.in (opts.o, explow.o): Depend on langhooks.h + +2003-12-12 Geoffrey Keating + + * config.gcc : Don't use fixproto. + : Likewise. + +2003-12-12 Jakub Jelinek + + * config/ia64/linux.h (IA64_GATE_AREA_END): Increase by 64K. + (MD_FALLBACK_FRAME_STATE_FOR): Set fpsr_loc, br_loc[6] and + br_loc[7]. Update comment. + (MD_HANDLE_UNWABI): Define. + * config/ia64/unwind-ia64.c (struct unw_state_record): Add + unwabi field. + (struct _Unwind_Context): Increase br_loc array size to 8 entries. + (desc_abi): Set unwabi. + (uw_update_reg_address): Allow br up to 7. + (uw_update_context): Invoke MD_HANDLE_UNWABI if defined. + (uw_install_context): Load b1..b5 from correct locations. + Fix insn loading ar.fpsr. + * doc/tm.texi: Document MD_HANDLE_UNWABI. + +2003-12-12 Roger Sayle + + PR optimization/13037 + * loop.c (update_giv_derive): Ignore redundant sets of a biv when + calculating how to derive a giv from a biv. + +2003-12-12 Neil Booth + + PR preprocessor/12935 preprocessor/12952 preprocessor/13046 + * cpplib.c (prepare_directive_trad): Clear skipping only in + #if and #elif directives. + (do_undef): Call the handler even if the identifier is not a macro. + * cpptrad.c (scan_parameters): Emit an error message. + (_cpp_create_trad_definition): Remember the params list even on + failure. + +2003-12-11 Zack Weinberg + + * arm.c (ARM_ADDRESS_COST, THUMB_ADDRESS_COST): Convert macros + to inline functions: arm_arm_address_cost, arm_thumb_address_cost + respectively. + (arm_address_cost): Use 'em. + +2003-12-12 Rainer Orth + + * config/alpha/osf.h (TARGET_OS_CPP_BUILTINS): Define + __STDC_VERSION__ to ISO C94 for C++. + + * fixinc/inclhack.def (alpha_wchar): New fix. + * fixinc/fixincl.x: Regenerate. + * fixinc/tests/base/wchar.h: New file. + +2003-12-11 David Mosberger + + * unwind-libunwind.c (_Unwind_SetGR): Clear the NaT bit as + required by C++ ABI for Itanium. + * config/t-libunwind (LIB2ADDEH): Remove unwind-libunwind.c. + * config/t-libunwind-no-eh: New file. + * configure.in: Check libunwind for _Unwind_Resume() and if it's + present, set libunwind_has_eh_support to "yes". + * configure: Regenerate. + * config.gcc (ia64*-*-linux*): If $libunwind_has_eh_support is + set to yes, use t-libunwind, otherwise, use t-libunwind-no-eh. + +2003-12-11 Richard Sandiford + + * config/mips/mips.c (mips_global_pointer): Force functions with + a nonlocal goto to set up $gp. + +2003-12-11 James E Wilson + + PR target/13132 + * function.c (gen_mem_addressof): When no decl, explicitly clear flag + bits. + +2003-12-12 Nick Clifton + + * config/m32r/m32r.c: Convert to ISO-C + +2003-12-12 Kazuhiro Inaoka + + * doc/invoke.texi: Replace Mitsubishi with Renesas. + * config/m32r/m32r.h: Ditto. + * config/m32r/m32r.c: Ditto. + * config/m32r/m32r.md: Ditto. + +2003-12-11 Steven Bosscher + + * basic-block.h (BLOCK_HEAD, BLOCK_END): Remove. + (BLOCK_HEAD_TREE, BLOCK_END_TREE): Remove. + (basic_block_def): Rename `head' to `head_' and `end' to `end_'. + (BB_HEAD, BB_END): New accessor macros for the `head_' and `end_' + fields of a basic block. + * bb-reorder.c, bt-load.c, caller-save.c, cfg.c, cfganal.c, + cfgbuild.c, cfgcleanup.c, cfglayout.c, cfgloop.c, cfgloopanal.c, + cfgloopmanip.c, cfgrtl.c, combine.c, conflict.c, df.c, emit-rtl.c, + final.c, flow.c, function.c, gcse.c, global.c, graph.c, + haifa-sched.c, ifcvt.c, lcm.c, local-alloc.c, loop-unswitch.c, + loop.c, postreload.c, predict.c, profile.c, ra-build.c, ra-debug.c, + ra-rewrite.c, ra.c, recog.c, reg-stack.c, regclass.c, regmove.c, + regrename.c, reload1.c, resource.c, sched-ebb.c, sched-rgn.c, + sibcall.c, tracer.c, config/frv/frv.c, config/i386/i386.c, + config/ia64/ia64.c: Use the BB_HEAD and BB_END macros instead of + accessing the `head' and `end' fields of a basic block directly. + + * gengtype.c: Teach about "void**" pointers and "void *" function + types. Fixes earlier commit. + +2003-12-10 Geoffrey Keating + + * doc/extend.texi (Vector Extensions): Document that bitwise + operations also work on vectors. + +2003-12-10 Richard Earnshaw + + * arm.md: New split patterns for optimizing bitfield accesses. + +2003-12-10 Steven Bosscher + + * README.Portability: Remove K+R section. + + * gengtype-lex.l: Teach about "void**" pointers and + "void*" function types. + +2003-12-10 Eric Botcazou + + PR target/13354 + * config/sparc/sparc.c (sparc_output_mi_thunk): Load DELTA + manually if one can do that with only one instruction. + +2003-12-10 Nick Clifton + + * config.gcc (arm-linux): Include linux.h in tm_file so that + LINUX_TARGET_OS_CPP_BUILTINS is defined. + * config/arm/linux-elf.h (LIB_SPEC): Protect the definition. + +2003-12-09 James E Wilson + + * rtl.def (CODE_LABEL, NOTE): Correct operand numbers in comments. + +2003-12-09 Matt Austern + + PR c/13134 + * c-decl.c (duplicate_decls): Copy visibility flag when appropriate. + +2003-12-09 Kazuhiro Inaoka + + * config/m32r/m32r.h: Add support for m32r2 processor. Including + a new command line option -m32r2 to select it. + * config/m32r/m32r.c: Add support for the new processor variant. + * config/m32r/m32r.md: Likewise. + * config/m32r/t-m32r: Add m32r2 multilibs. + * doc/invoke.texi: Document the new command line switch. + +2003-12-08 Kazu Hirata + + * defaults.h (LOCAL_REGNO): Give the default definition. + * flow.c (LOCAL_REGNO): Remove. + * reload1.c (LOCAL_REGNO): Likewise. + +2003-12-08 Geoffrey Keating + + PR target/11848 + * rs6000.h (CANNOT_CHANGE_MODE_CLASS): Allow change of mode + in floating-point registers between TFmode and DImode. + * rs6000.c (rs6000_emit_move): Split moves early. + (secondary_reload_class): Random Whitespace Change. + (rs6000_split_multireg_move): Support moves involving FP registers. + Emit instructions directly. + * rs6000-protos.h (rs6000_split_multireg_move): Update prototype. + * altivec.md: Update for changes to rs6000_split_multireg_move. + * rs6000.md: Update for changes to rs6000_split_multireg_move. + (movtf_internal): Support moves to/from GPRs. + +2003-12-08 Stuart Hastings + + * config/i386/i386.md: Typo in split of fp-valued if_then_else. + +2003-12-08 James E Wilson + + PR target/13132 + * expmed.c (extract_bit_field): Only call mode_for_size for scalar + integer modes. + +2003-12-08 Nathanael Nerode + + * doc/install.texi: Revert change of Dec 7; gcc is still a 2.13 + directory. + +2003-12-08 Alexandre Oliva + + * config/frv/frv.md (subdi2): Merge with _internal insn_and_split, + by using match_scratch. + (negdi2): New. + +2003-12-08 Jason Merrill + Daniel Berlin + + PR debug/11114 + Support namespaces in DWARF 2 output. + * dwarf2out.c (gen_namespace_die): New function. + (force_namespace_die, setup_namespace_context): New fns. + (declare_in_namespace): New fn. + (gen_decl_die): Call declare_in_namespace. Handle namespaces. + (dwarf2out_decl): Handle namespaces. + (scope_die_for): Pass through a namespace scope. + (class_scope_p): Rename to class_or_namespace_scope_p. + (gen_subprogram_die, gen_variable_die): Adjust. + (gen_struct_or_union_die): Always emit a declaration + if context_die is a namespace. + +2003-12-08 Jan Hubicka + + * unwind-pe.h (read_uleb128): Fix handling of large values + (read_sleb128): Fix handling of large values + +2003-12-08 Andrew Pinski + + PR middle-end/10060 + * emit-rtl.c (copy_rtx_if_shared): Split out into ... + (copy_rtx_if_shared_1): here and optimize the last one + in the sequence into tail-recursion. + (reset_used_flags): Optimize the last one + in the sequence into tail-recursion. + +2003-12-08 Richard Earnshaw + + * arm.md: New split to transform ((X << y) - 1) into ~(~(X-1) << y) + for constant X. + +2003-12-08 Richard Sandiford + + * calls.c (expand_call): Don't try using tail or recursive calls + after the function body has been expanded. + +2003-12-08 Jan Hubicka + + * i386.md (cmpstr expander): Obey TARGET_INLINE_ALL_STRINGOPS + +2003-12-08 Arnaud Charlet + + PR ada/13324, PR ada/12614 + * doc/install.texi: Update requirements for building Ada. + +2003-12-07 David Edelsohn + Graham Reed + + * collect2.c (GCC_OK_SYMBOL): Add support for AIX C_WEAKEXT. + (GCC_UNDEF_SYMBOL): Same. + +2003-12-07 Kazu Hirata + + * final.c (final_scan_insn): Don't use FINAL_PRESCAN_LABEL. + * system.h (FINAL_PRESCAN_LABEL): Poison. + * doc/tm.texi (FINAL_PRESCAN_LABEL): Remove. + +2003-12-07 Kaveh R. Ghazi + + * Makefile.in (compare): Combine toplevel and $(SUBDIRS) cases. + +2003-12-07 Nathanael Nerode + + * configure.in, aclocal.m4: Revert to pre-2.5x conversion status. + * configure: Regenerate with autoconf 2.13. + + * configure.in: Replace AC_INIT, AC_OUTPUT, AC_CANONICAL_SYSTEM + with modern equivalents. + * configure: Regenerate. + + * configure.in: Replace gcc_AC_CHECK_TYPE with AC_CHECK_TYPE. + * aclocal.m4 (gcc_AC_CHECK_TYPE): Remove. + * configure: Regenerate. + + * configure: Regenerate with (preferred) autoconf 2.57. + * doc/install.texi: Note that 'gcc' is now a 2.57 directory. + +2003-12-07 Eric Botcazou + + PR optimization/12965 + * caller-save.c (save_call_clobbered_regs): Do not save/restore + registers around no-return calls. + +2003-12-07 Nathanael Nerode + + * configure.in: Make minimum necessary changes for autoconf 2.5x. + * aclocal.m4: Make minimum necessary changes for autoconf 2.5x. + * configure: Regenerate with autoconf 2.58. + +2003-12-07 Eric Botcazou + + PR optimization/13318 + * loop.c (express_from): Protect integer division from overflow. + +2003-12-07 Eric Botcazou + + PR optimization/13060 + * function.c (fixup_var_refs_1) [SUBREG]: Recognize even if a + replacement already exists. Fix again the whole insn if that fails. + +2003-12-06 Andrew Pinski + + * config/rs6000/rs6000.c (macho_branch_islands): Use + HOST_WIDE_INT_PRINT_UNSIGNED. + +2003-12-06 Richard Sandiford + + * varasm.c (incorporeal_function_p): New. + (assemble_external): Use it as a filter. + * config/mips/mips.c (mips_output_external): Don't check for builtin + functions here. + +2003-12-06 Richard Earnshaw + + * arm.md (IOR (COMPARISON) (AND)): New define_splits. + +2003-12-06 Kelley Cook + + * Makefile.in (program_transform_cross_name): Delete. + (GCC_CROSS_NAME, CPP_CROSS_NAME): Delete. + (PROTOIZE_CROSS_NAME, UNPROTOIZE_CROSS_NAME): Delete. + (AR_FOR_TARGET, RANLIB_FOR_TARGET, NM_FOR_TARGET): Adjust for above. + (install_cpp, install_driver, install-man, uninstall): Likewise. + +2003-12-06 Alan Modra + + PR 13169 + * basic-block.h (PROP_ASM_SCAN): Define. + * final.c (regs_asm_clobbered): New array. + * regs.h (regs_asm_clobbered): Declare. + * flow.c (life_analysis): Init it. + (mark_set_regs): Set PROP_ASM_SCAN for asms. + (mark_set_1): Set regs_asm_clobbered. + * global.c (global_alloc): Don't set eliminable_regset when + regs_asm_clobbered. + +2003-12-05 Mark Mitchell + + * config/ia64/ia64.h (MUST_PASS_IN_STACK): Define. + + PR c++/13314 + * emit-rtl.c (set_mem_attributes_minus_bitpos): Robustify. + +2003-12-05 Andrew Pinski + + PR driver/13211 + * gcc.c (execute) Increment execution_count when returning + early because verbose_only_flag is true. + +2003-12-05 Per Bothner + + * cppfiles.c (file_hash_hash): New static function. + (hash_string_eq): Renamed static function to file_hash_eq. + (_cpp_init_files): Create file_hash table with above callbacks. + (cpp_included): Must use htab_find_with_hash insead of htab_find. + (_cpp_find_find, make_cpp_dir): Must use htab_find_slot_with_hash. + +2003-12-05 Per Bothner + + * line-map.h (source_location): New typedef. + (fileline): Redefined as source_location. + (struct line_map, linemap_add, linemap_lookup): Replace filefile + by source_location. + * line-map.c (linemap_add, linemap_lookup): Use source_location. + +2003-12-05 Richard Henderson + + * config/alpha/alpha.c (alpha_build_builtin_va_list): Add dummy + field to suppress -Wpadded warnings. + +2003-12-05 Stuart Hastings + + * config/rs6000/rs6000.md: Correct macro test of TARGET_MACHO. + +2003-12-05 Stuart Menefy + J"orn Rennecke + + PR target/13302 + * sh.c (sh_build_builtin_va_list): Use (*lang_hooks.types.make_type). + +2003-12-05 Roger Sayle + + * dojump.c (do_jump): If the expression being compared against + zero, is the subreg of a promoted variable, perform the comparison + in the promoted mode. + * simplify-rtx.c (simplify_unary_operation): Optimize sign and + zero-extensions of subregs of promoted variables where the + extension is identical to that used to promote the variable. + +2003-12-05 Hans-Peter Nilsson + + PR target/13256 + * resource.h (enum mark_resource_type): Remove member MARK_DEST. + The only user changed as follows: + * resource.c (mark_set_resources) : Always recurse for + SET_SRC (x). + : Always recurse on + operands. + : Delete, deferring to default code. + +2003-12-05 Waldek Hebisch + + * stmt.c (expand_nl_goto_receiver): Copy hard register clobbers + and ASM_INPUT barrier from expand_builtin_setjmp_receiver. + +2003-12-05 Richard Sandiford + + * config/mips/mips.c (mips_expand_call): Don't allow laziy binding + for n32 & n64 abicalls. + +2003-12-05 Richard Sandiford + + PR bootstrap/13145 + * config/mips/mips.h (FIRST_PSEUDO_REGISTER): Adjust comment. + * config/mips/mips.c (mips_reg_names, mips_sw_reg_names): Add $fcall. + (mips_load_got): Always create a constant MEM. + (mips_expand_call): Use load_callsi and load_calldi. + * config/mips/mips.md (UNSPEC_LOAD_CALL, FAKE_CALL_REGNO): New consts. + (load_callsi, load_calldi): New patterns. + +2003-12-05 Peter Gerwinski + + * tree.def (PLACEHOLDER_EXPR): Clarify commentary. + +2003-12-05 Steven Bosscher + + * config/d30v/d30v-protos.h , config/d30v/d30v.c, + config/dsp16xx/dsp16xx-protos.h, config/dsp16xx/dsp16xx.c, + config/fr30/fr30-protos.h, config/fr30/fr30.c, + config/i370/i370-protos.h, config/i370/i370.c, + config/i960/i960-protos.h, config/i960/i960.c, + config/ip2k/ip2k-protos.h, config/ip2k/ip2k.c, + config/m32r/m32r-protos.h, config/m32r/m32r.c, + config/mn10300/mn10300-protos.h, config/mn10300/mn10300.c, + config/ns32k/ns32k-protos.h, config/ns32k/ns32k.c: + Convert to ISO C90 function declarations and definitions. + +2003-12-05 Eric Botcazou + + * doc/extend.texi (Constructing Calls): Add warning about + the limitations of the functions. + +2003-12-05 Eric Botcazou + + PR middle-end/11151 + * function.h (struct function): New field 'x_naked_return_label'. + * function.c (free_after_compilation): Set it to NULL. + (expand_function_end): Emit 'naked_return_label' if it exists. + * rtl.h (expand_naked_return): Declare. + * stmt.c (expand_naked_return): New function to generate a + jump to 'naked_return_label'. + * builtins.c (expand_builtin_return): Call expand_naked_return + instead of expand_null_return. + * config/sparc/sparc.md (untyped_return): Likewise. + +2003-12-04 Andrew Pinski + + PR target/11322 + * config/sh/netbsd-elf.h (NO_PROFILE_COUNTERS): Define. + + PR target/12467 + * config/rs6000/altivec.md (altivec_vmsummbm): Fix typo. + +2003-12-04 Stuart Hastings + + * rs6000.c (output_call, macho_branch_islands, + add_compiler_branch_island, no_previous_def, get_previous_label) + Revisions of xx_stub functions for branch islands, + add -fPIC support for Darwin. + * rs6000-protos.h (output_call) Prototype. + * rs6000.md Use output_call. + * invoke.texi Explain Darwin semantics of -longcall. + * testsuite/gcc.dg/darwin-abi-1.c Revise testcase for -longcall/jbsr. + +2003-12-04 Richard Henderson + + * config/i386/i386.md (addqi3_carry): Use q not r constraints. + (subqi3_carry): Likewise. + +2003-12-04 J"orn Rennecke + + PR optimization/13260 + * sh-protos.h (sh_expand_t_scc): Declare. + * sh.h (PREDICATE_CODES): Add cmpsi_operand. + * sh.c (cmpsi_operand, sh_expand_t_scc): New functions. + * sh.md (cmpsi): Use cmpsi_operand. If T_REG is compared to + something that is not a CONST_INT, copy it into a pseudo register. + (subc): Fix description of new T value. + (slt, sgt, sge, sgtu): Don't clobber T after rtl generation is over. + (sltu, sleu, sgeu): Likewise. + (seq, sne): Likewise. Use sh_expand_t_scc. + +2003-12-04 Nathanael Nerode + + * configure.in: Generalize the CONFIG_HEADERS pattern under which + we stamp cstamp-h. + * configure: Regenerate. + + * configure.in: Pull AC_CHECK_HEADER call out of shell if statement + to avoid trouble when updating to autoconf 2.5x. + * configure: Regenerate (with autoconf 2.13 still). + +2003-12-04 J"orn Rennecke + + * sh.md (truncdiqi2): Use andi opcode for immediate. + (reload_outdf+1,reload_outdf+2): Remove constraints. + (movv16sf_i): Fxi multiplier for SUBREG_BYTE. + (movv8qi_i+2): Zero-extend low byte before adding it to high byte. + (fipr, ftrv): Add .s suffix to opcode. + +2003-12-04 Richard Sandiford + + PR target/13186 + + Revert all of the following patch, except the addition of + hook_bool_machine_mode_true: + + 2003-11-02 Richard Sandiford + + * Makefile.in (targhooks.o, reload.o): Update dependencies. + (GTFILES): Add targhooks.c. + (gt-targhooks.h): New rule; depend on s-gtype. + * target.h (direct_pool_load_p): New hook. + * target-def.h (TARGET_DIRECT_POOL_LOAD_P): New macro. + (TARGET_INITIALIZER): Include it. + * targhooks.h (default_direct_pool_load_p): Declare. + (hook_bool_machine_mode_true): Declare. + * targhooks.c: Include insn-config.h, recog.h, ggc.h and + gt-targhooks.h. + (pool_symbol): New variable. + (default_direct_pool_load_p): New function. + (hook_bool_machine_mode_true): New function. + * reload.c: Include target.h. + (find_reloads): If an alternative will force a constant into memory, + count an extra reload if constant pool symbols are not valid + addresses. If an alternative uses memory to move values between + registers, count the move as two reloads rather than one. + * config/s390/s390.c (TARGET_DIRECT_POOL_LOAD_P): Define. + * doc/tm.texi (TARGET_DIRECT_POOL_LOAD_P): Document. + +2003-12-03 Mark Mitchell + + * config/ia64/hpux.h (TARGET_HAVE_TLS): Define it to false. + * config/ia64/ia64.h (TARGET_HAVE_TLS): Define it to true if + HAVE_AS_TLS is true. + * config/ia64/ia64.c (TARGET_HAVE_TLS): Do not define it. + +2003-12-03 James E Wilson + + * gcc.c (init_spec): Pass -lunwind to init_gcc_specs in eh_name. + + * gcc-page.c (extra_order_size_tab): Correct comment. + +2003-12-03 Kazu Hirata + + * config/h8300/h8300.c (push): Call gen_push_h8300hs_advanced + instead of gen_push_h8300hs. + (pop): Call gen_pop_h8300hs_advanced instead of + gen_pop_h8300hs. + * config/h8300/h8300.h (TRAMPOLINE_SIZE): Use Pmode. + * config/h8300/h8300.md (*tablejump_h8300hs_advanced): + Tighten the predicate. + (*tablejump_h8300hs_normal): Tighten the predicate. + (push_h8300hs): Change to + push_h8300hs_advanced. + (pop_h8300hs): Change to pop_h8300hs_advanced. + +2003-12-03 Eric Christopher + + * rtl.c: Fix typo. + * config/mips/mips.h: Ditto. Fix formatting. + +2003-12-04 Ben Elliston + + * future.options: Remove. Move to gnu.org web pages. + +2003-12-03 Eric Christopher + + * c-parse.in (c_in_iteration_stmt, c_in_case_stmt): Move + from here... + * c-tree.h: to here. + +2003-12-03 Jan Hubicka + + PR optimization/12324 + * toplev.c (rest_of_decl_compilation): Do not deffer when compiling + in unit-at-a-time mode. + +2003-12-03 Jakub Jelinek + + * expr.c (store_constructor): Only set RTX_UNCHANGING_P for + read-only field if cleared is 0. + +2003-12-03 Nathanael Nerode + + * config.gcc: Mark obsolete targets for GCC 3.4. + +2003-12-03 Zack Weinberg + + * aclocal.m4 (AM_ICONV): Add explicit check for iconv.h. + * config.in, configure.in: Regenerate. + * cpphash.h: Check both HAVE_ICONV and HAVE_ICONV_H before + including iconv.h. + +2003-12-03 Alan Modra + + PR target/11229 + * cse.c (cse_insn): Set classp using src_const_elt if + src_eqv_elt is NULL. + +2003-12-03 Richard Earnshaw + + * gcse.c (reg_clear_last_set): New function. + (reg_set_info): If data is non-null, treat it as an sbitmap of + registers, set the bit for the register being set. + (compute_store_table): Allocate last_set_in with xcalloc. Do not + memset this array on each iteration. Pass reg_set_in_block[bb->index] + to note_stores while computing last_set_in instead of scanning + last_set_in after the first pass through the insns. + Clear last_set_in using reg_clear_last_set instead of explicitly + rescanning after each insn. If checking is enabled, assert that + last_set_in is completely zeroed after each bb has been processed. + +2003-12-02 Geoffrey Keating + + * df.c (df_uses_record) : The argument of a MEM is read-only, + never read-write. + : Delete incorrect comment. + : Remove 'use_flags' variable. + +2003-12-03 David Edelsohn + + * function.c (assign_parms): Make sure parm PARALLEL combined + in reg is composed of more than one object and the mode really + produces a reg. + +2003-12-03 Jan Hubicka + + * i386.c (classify_argument): Make it 64bit clean. + +2003-12-02 Richard Sandiford + + * config/mips/mips.c (mips_output_external): Replace checks for + specific builtin-in functions with a check for DECL_BUILTIN_IN. + +2003-12-02 Richard Henderson + + * rtl.h (PUT_CODE, PUT_MODE): Remove ENUM_BITFIELD cast. + * tree.h (TREE_SET_CODE): Likewise. + * recog.h (struct insn_operand_data): Move const after ENUM_BITFIELD. + +2003-12-02 Ben Elliston + + * dbxstclass.h: Rename from this .. + * xcoff.h: .. to this. + * xcoffout.c: Include xcoff.h. + +2003-12-01 Kaveh R. Ghazi + + * Makefile.in (GCC_CFLAGS): Add -Wold-style-definition. + +2003-12-01 James Lemke + + * config/arm/arm.c (arm_rtx_costs): Improve for xscale multiply. + +2003-12-01 Roger Sayle + + PR optimization/11634 + * recog.c (split_insn): Factor test of INSN_P and handling of + set_noop_p out of here into the two callers. + (split_all_insns): Add INSN_P test and set_noop_p handling here. + If deleting a no-op set after reload that has a REG_UNUSED note, + mark the basic block as changed and recalculate life information. + (split_all_insns_noflow): Add INSN_P test and set_noop_p handling + here. + +2003-12-01 Roger Sayle + + PR optimization/12322 + * gcse.c (struct ls_expr): Change type of hash_index from int to + unsigned int. + (hash_expr): Document hash_table_size parameter and wrap long line. + (ldst_entry): Calculate expression's hash_index and record in ptr. + (trim_ld_motion_mems): Use hash_index to search a single bucket + instead of scanning the entire hash_table. Remove the "del" local + variable and use the equivalent "expr == 0" instead. Change last + to be a pointer to the pointer to the current element, to simplify + and speed-up deleting from a linked list. + +2003-12-01 James E Wilson + + * doc/contrib.texi: Update David Mosberger. + + * doc/c-tree.texi (CONSTRUCTOR): Clarify element order and handling + of missing fields. + + PR target/8407 + * config/ia64/ia64.c (ia64_function_arg): For single-reg HFA, call + gen_rtx_REG to create new reg with argument mode. + +2003-12-01 Steven Bosscher + + * ggc.h (struct alloc_zone): Move forward declaration up. + (new_ggc_zone): New function prototype. + (destroy_ggc_zone): Ditto. + * ggc-simple.c (new_ggc_zone): New function, does nothing. + (destroy_ggc_zone): Ditto. + * ggc-page.c (new_ggc_zone): New function, does nothing. + (destroy_ggc_zone): Ditto. + * ggc-zone.c (struct page_entry): Fix comment. + (ggc_alloc_typed): Use a switch statement instead of ifs. + (new_ggc_zone): New function to set up a new GC zone. + (destroy_ggc_zone): New function to remove a GC zone. + init_ggc): Use new_ggc_zone to set up the default zones. + (ggc_collect): Walk a list of zones, instead of just the + default zones. Report statistics using the zone name. + +2003-12-01 Ulrich Weigand + + * unroll.c (find_splittable_givs): Add missing extend_value_for_giv. + +2003-12-01 Roger Sayle + + PR optimization/12628 + * toplev.c (rest_of_handle_jump_bypass): Call reg_scan. + * regclass.c (reg_scan): Include allocate_reg_info time in + TV_REG_SCAN. Minor clean-ups. + (reg_scan_update): Minor clean-ups. + +2003-12-01 Ulrich Weigand + + * config.gcc (s390x-ibm-tpf*): Add extra_parts. + +2003-12-01 James E Wilson + + * config/ia64/ia64.h (FUNCTION_ARG_REGNO_P): Use AR_REG_FIRST not + GR_ARG_FIRST. + +2003-12-01 Zack Weinberg + + * common.opt: Remove -fgnu-linker. + * flags.h: Remove flag_gnu_linker. + * opts.c: Don't handle OPT_fgnu_linker. + * toplev.c: Don't initialize flag_gnu_linker. + Remove gnu-linker entry from f_options. + * config/dsp16xx/dsp16xx.h (OPTIMIZATION_OPTIONS): + Don't reset flag_gnu_linker. + * config/mips/mips.c (override_options): Likewise. + * doc/invoke.texi: Remove all mention of -fgnu-linker. + +2003-12-01 Daniel Berlin + + * ggc-zone.c (ggc_pch_write_object): Calculate object size using + ggc_get_size (which accounts for large objects properly). + +2003-12-01 Jeff Sturm + + PR optimization/13024 + * toplev.c (rest_of_handle_new_regalloc): Remove rebuild_notes + parameter. + (rest_of_handle_old_regalloc): Likewise. Add rebuild_notes + declaration. Rebuild jump labels following local_alloc if necessary. + (rest_of_compilation): Remove rebuild_label_notes_after_reload + declaration. Don't pass rebuild_notes parameter to + rest_of_handle_new_regalloc and rest_of_handle_old_regalloc. + Don't rebuild jump labels. + +2003-12-01 Jeff Law + + * flow.c (count_or_remove_death_notes_bb): New. Extracted from + count_or_remove_death_notes. + (count_or_remove_death_notes): Use EXECUTE_IF_SET_IN_SBITMAP. + +2003-12-01 Andreas Krebbel + + * builtins.c (expand_builtin_longjmp): Added two memory clobbers. + +2003-12-01 Ulrich Weigand + + * reload.c (find_reloads_address): Split addresses of type + (plus (plus (reg) (reg)) (const_int)) only if one register + is either a valid base register or else one of the stack + frame related registers (sp/fp/ap). + +2003-12-01 Steven Bosscher + + * function.c (update_epilogue_consts): Don't use PARAMS. + * rtl.h (web_main): Ditto. + * target.h (is_costly_dependence): Ditto + +2003-12-01 Eric Botcazou + + PR middle-end/7847 + * expr.c (expand_expr) [normal_inner_ref]: When 'offset' is non-zero, + do not recheck that 'op0' is a MEM. Move comment. When testing for + unaligned objects, take also into account the alignment of 'op0' and + 'mode1' if 'op0' is a MEM. + +2003-12-01 Gabriel Dos Reis + + * doc/c-tree.texi (Function Bodies): Update HANDLER documentation. + +2003-12-01 Kelley Cook + + * doc/install.texi: Note that fastjar is built with automake 1.7.x + and autoconf 2.57. + +2003-12-01 Alan Modra + + * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Test + target_flags directly rather than using TARGET_* defines. + +2003-11-30 Ben Elliston + + * doschk.c: Remove. + +2003-11-30 Richard Sandiford + + PR target/12727 + * config/mips/mips.c (mips_save_reg): Fix frame information for sdc1 + on 32-bit big-endian targets. + +2003-11-30 Kazu Hirata + + * genemit.c (register_constraints): Remove. + +2003-11-30 Andreas Krebbel + + * config/s390/s390.md ("tmdi_reg", "tmsi_reg", "*movdi_64", "*movdi_31", + "iordi3"): Insns now use multiple letter constraints. + ("*movdi_lhi", "*movdi_lli", "*movdi_lay"): Insns deleted. They are now + covered by "*movdi_64". + ("*movsi_lhi", "*movsi_lli", "*movsi_lay"): Insns deleted. They are now + covered by "*movsi_zarch" and "*movsi_esa". + ("*movsi_zarch", "*movsi_!zarch"): New insns. + ("*llgt_sisi_split", "*llgt_didi_split"): Insns deleted. Now covered + by "*andsi3_zarch" and "anddi3". + ("*anddi3_ni"): Insn merged with "anddi3". + ("*andsi3_ni"): Insn merged with "*andsi3_zarch". + ("*andsi3_zarch", "*andsi3_esa"): New insns. + ("*iordi3_oi"): Insn merged with "iordi3". + ("*iorsi3_oi"): Insn merged with "*iorsi3_zarch". + ("*iorsi3_zarch", "*iorsi3_esa"): New insns. + + * config/s390/s390.c (s390_single_qi, s390_single_hi): Functions + merged to s390_single_part. + (s390_single_part): New function. + NOTE: Semantics have changed a bit. Now the value of the part must + be different from the others to get a non-negative return value. + (s390_extract_qi, s390_extract_hi): Functions merged to + s390_extract_part. + (s390_extract_part, s390_extra_constraint_str, + s390_const_ok_for_constraint_p): New functions. The L constraint got a + new meaning and the N constraint was added as a multiple letter + constraint. + (s390_extra_constraint): Function deleted. + (print_operand): New output modifier 'i' and 'j' added. + All uses of CONST_OK_FOR_LETTER_P were replaced by + CONST_OK_FOR_CONSTRAINT_P. + + * config/s390/s390-protos.h: Function prototypes adapted. + * doc/md.texi: Documentation for new constraint letters added. + +2003-11-30 Andreas Schwab + + * Makefile.in ($(DESTDIR)$(infodir)/%.info): Fix missing semicolon. + +2003-11-29 James E Wilson + + * gcc.c (init_spec): Pass -lunwind to init_gcc_specs in eh_name + instead of in shared_name. + + * final.c (final_start_function): Delete code for NON_SAVING_SETJMP. + * reload1.c (reload): Re-add it here. + +2003-11-30 Alan Modra + + * config/rs6000/rs6000.c (rs6000_elf_section_type_flags): Don't + set SECTION_WRITE on TARGET_RELOCATABLE. + +2003-11-29 Kazu Hirata + + * config/h8300/h8300.h (LIBCALL_VALUE): Use R0_REG. + +2003-11-28 Gunther Nikl + + * config/m68k/m68k.c (MOTOROLA): Move from here... + * config/m68k/m68k.h (MOTOROLA): ... to here. + (OUTPUT_JUMP): Use do {...} while (0). + * config/m68k/m68k.md: Replace #ifdef MOTOROLA with C statements. + +2003-11-28 Gunther Nikl + + * config.gcc (m68020-*-elf*, m68k-*-elf*, m68010-*-netbsdelf*, + m68k*-*-netbsdelf*, m68k-*-rtems*): Add tm_defines containing + MOTOROLA and USE_GAS. + * config/m68k/rtemself.h (MOTOROLA): Delete. + * config/m68k/netbsd-elf.h (MOTOROLA, USE_GAS): Delete. + * config/m68k/m68kelf.h (MOTOROLA, USE_GAS, SGS_CMP_ORDER): Delete. + +2003-11-29 Kazu Hirata + + * config/h8300/h8300.h (WORDS_BIG_ENDIAN): Update the comment. + +2003-11-29 Kelley Cook + + * Makefile.in (install-info): Install gccinstall.info too. + +2003-11-29 Ulrich Weigand + + * config/s390/s390.md ("cmpint_di"): Fix incorrect instruction lengths. + +2003-11-29 Ulrich Weigand + + * config/s390/s390.md ("movhi"): Do not emit extender pattern + when loading from a (MEM (ADDRESSOF ...)). + ("movqi"): Likewise. + +2003-11-29 Joseph S. Myers + + PR c/10333 + * c-parse.in (typespec_reserved_nonattr): Reject typeof on + bit-fields. + +2003-11-29 Richard Sandiford + + * stmt.c (expand_asm_operands): Check whether force_const_mem + succeeded. + +2003-11-28 Kaveh R. Ghazi + + * config/gnu.h (HURD_TARGET_OS_CPP_BUILTINS): New. + * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): New. + + * config/alpha/gnu.h, config/alpha/linux.h, + config/arm/linux-elf.h, config/cris/cris.h, config/cris/linux.h, + config/i370/linux.h, config/i386/gnu.h, config/i386/i386.h, + config/i386/linux-aout.h, config/i386/linux.h, + config/i386/linux64.h, config/ia64/linux.h, config/m68k/linux.h, + config/m68k/uclinux.h, config/mips/linux.h, + config/mn10300/linux.h, config/pa/pa-linux.h, + config/rs6000/sysv4.h, config/s390/linux.h, config/sh/linux.h, + config/sparc/linux.h, config/sparc/linux64.h, + config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Use + HURD_TARGET_OS_CPP_BUILTINS/LINUX_TARGET_OS_CPP_BUILTINS or ensure + all necessary assertions are included. + +2003-11-28 Jan Hubicka + + * emit-rtl.c (set_used_flags): New. + (verify_rtx_sharing, verify_rtl_sharing): New. + (unshare_all_rtl_1): Rename to.... + (unshare_all_rtl_in_chain): ... this one; make static. + (copy_rtx_if_shared): LABEL_REF chan be shared. + * ifcvt.c (unshare_ifcvt_sequence): New. + (noce_try_move, noce_try_store_flag, noce_try_store_flag_constants, + noce_try_addcc, noce_try_addcc, noce_try_store_flag_mask, + noce_try_cmove, noce_try_store_flag_mask, noce_try_minmax, + noce_try_abs, noce_process_if_block, find_cond_trap + * rtl.h (verify_rtl_sharing, set_used_flags, unshare_all_rtl_in_chain): + Declare. + +2003-11-28 Kazu Hirata + + * config/h8300/h8300.md: Fix a comment typo. + +2003-11-28 Kazu Hirata + + * config/h8300/h8300.md (*movsf_h8300h): Change to + *movsf_h8300hs. + (addsi_h8300): Change to *addsi_h8300. + (addsi_h8300h): Change to *addsi_h8300hs. + (subsi3_h8300): Change to *subsi3_h8300. + (subsi3_h8300h): Change to *subsi3_h8300hs. + (neghi2_h8300h): Change to *neghi2_h8300hs. + (negsi2_h8300h): Change to *negsi2_h8300hs. + +2003-11-28 Kazu Hirata + + * config/h8300/h8300.md (*subhi3_h8300): Remove '&' from the + constraint. + (*subhi3_h8300hs): Likewise. + +2003-11-28 David Edelsohn + + * config/rs6000/rs6000.h (MASK_MFCRF): New. + (TARGET_MFCRF): Test target_flags, not processor type. + (TARGET_SWITCHES): Add mfcrf and no-mfcrf. + Change Don't to Do not. + * config/rs6000/rs6000.c (processors_target_table): Add MASK_MFCRF + to power4, 970, G5. + +2003-11-27 J"orn Rennecke + + * cse.c (cse_set_around_loop): When changing a constant load + to a register -register copy, add a REG_EQUAL note. + +2003-11-27 Randolph Chung + John David Anglin + + * pa.c (hppa_profile_hook): Split gen_call_profiler into separate + insns. Use the regular call expander for the call to the profiler. + * pa.md (call_profiler): Delete. + (load_offset_label_address): New insn to load the address of the + current function for the profiler. + (lcla1, lcla2): New insns to output a code label and load its address. + +2003-11-27 Kazu Hirata + + * final.c (final_scan_insn): Remove commented-out code. + +2003-11-27 Nathanael Nerode + + * doc/install.texi: Remove ADAC reference and make accurate. + +2003-11-27 Kazu Hirata + + * config/h8300/h8300.h (FUNCTION_VALUE): Use R0_REG. + (FUNCTION_VALUE_REGNO_P): Likewise. + * config/h8300/h8300.md: Define R0_REG. + +2003-11-27 Kazu Hirata + + * config/h8300/h8300.c: Fix formatting. + * config/h8300/h8300.md: Likewise. + +2003-11-27 Kazu Hirata + + * config/h8300/h8300.h (ELIMINABLE_REGS): Update a comment. + +2003-11-27 Kazu Hirata + + * config/h8300/h8300.md: Give names to anonymous insns. + +2003-11-27 Kazu Hirata + + * config/h8300/h8300.md (extendqisi2): Remove constraints. + +2003-11-27 Gunther Nikl + + * doc/tm.texi (SYSROOT_HEADERS_SUFFIX_SPEC): Fix typo. + +2003-11-27 Eric Botcazou + + PR optimization/13041 + * final.c (frame_pointer_needed): Fix comment. + * reload1.c (reload): Decrease alignment of the frame + pointer if it was used for register allocation. + +2003-11-27 Eric Botcazou + + PR target/12900 + * reg-stack (move_for_stack_reg): New prototype. Return + whether a control flow insn was deleted. + (subst_stack_regs_pat): Likewise, using the information provided + by move_for_stack_reg. + (subst_stack_regs): Likewise, using the information provided + by subst_stack_regs_pat. + (convert_regs_1): Record whether a control flow insn was deleted, + using the information provided by subst_stack_regs. Purge dead + edges only if a control flow insn was deleted. + +2003-11-27 Eric Botcazou + + PR middle-end/8028 + PR middle-end/9890 + PR middle-end/11151 + PR middle-end/12210 + PR middle-end/12503 + PR middle-end/12692 + * builtins.c (expand_builtin_apply): Use virtual_outgoing_args_rtx + as the base address to copy the memory arguments to. + +2003-11-26 Danny Smith + + * config/i386/cygming.h (ASM_OUTPUT_DEF_FROM_DECLS): Declare + function aliases as functions. + +2003-11-26 Nathanael Nerode + + * aclocal.m4 (gcc_AC_PROG_GNAT): Rewrite to account for removal + of ADAC. + * configure: Regenerate. + + * Makefile.in: Remove references to ADAC. + + * configure.in: Remove check for whether ${ADAC} accepts -Wno-long-long. + * configure: Regenerate. + +2003-11-26 Eric Botcazou + Olivier Hainque + + PR target/6466 + * config/sparc/sparc-protos.h (compute_frame_size): New prototype. + (sparc_flat_compute_frame_size): Likewise. + (sparc_flat_save_restore): Move prototype... + * config/sparc/sparc.c (sparc_flat_save_restore): ...here. + (save_regs): New prototype. + (build_big_number): Likewise. + (apparent_fsize): Change type to HOST_WIDE_INT. + (actual_fsize): Likewise. + (frame_base_offset): Likewise. + (build_big_number): Add support for HOST_BITS_PER_WIDE_INT == 64. + Change string descriptor to HOST_WIDE_INT_PRINT_DEC. + [TARGET_ARCH64]: Use the sequence of sparc_emit_set_const64_longway + to load a 64-bit constant. + (sparc_nonflat_function_prologue): Change string descriptor to + HOST_WIDE_INT_PRINT_DEC. Change offset type to HOST_WIDE_INT. + (output_restore_regs): Change offset type to HOST_WIDE_INT. + (sparc_nonflat_function_epilogue): Change string descriptor to + HOST_WIDE_INT_PRINT_DEC. Use build_big_number. + (output_sibcall): Change size type to HOST_WIDE_INT. Use + build_big_number. Change string descriptor to HOST_WIDE_INT_PRINT_DEC. + (sparc_frame_info): Change types for several components. + (sparc_flat_compute_frame_size): Update types according to previous + change. + (sparc_flat_function_prologue): Change string descriptor to + HOST_WIDE_INT_PRINT_DEC. Change offset type to int. Use + build_big_number. + (sparc_flat_function_epilogue): Change offset type to int. + Rename 'size1' into 'reg_offset1'. Change string descriptor to + HOST_WIDE_INT_PRINT_DEC. Use build_big_number. Change big number + limit to 4096 instead of 4095. + + * config/sparc/sparc.c (mems_ok_for_ldd_peep): Change offset type to + HOST_WIDE_INT. + +2003-11-24 Waldek Hebisch + + * function.c: Make outer_function-chain external. + * function.h: Likewise. + +2003-11-24 Richard Sandiford + + * config.gcc (mips-sgi-irix6*): Add t-iris6gld to tmake_file when + using GNU ld. + * config/mips/iris6.h (IRIX6_STARTFILE_SPEC): New, taking the + whole of the previous STARTFILE_SPEC except crtbegin.o%s. + (IRIX6_ENDFILE_SPEC): Likewise ENDFILE_SPEC and crtend.o%s. + (STARTFILE_SPEC, ENDFILE_SPEC): Define in terms of the above. + (SUBTARGET_EXTRA_SPECS): Define. + * config/mips/iris6gld.h (LINK_SPEC): Change -init function + to __gcc_init and -fini function to __gcc_fini. + (STARTFILE_SPEC): Redefine, including irix6-crti.o before crtbegin.o. + (ENDFILE_SPEC): Likewise, including irix6-crtn.o after crtend.o. + (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP): Define. + * config/mips/t-iris6gld, + * config/mips/irix6-crti.asm, + * config/mips/irix6-crtn.asm: New files. + +2003-11-24 Eric Christopher + + PR C/13014 + * c-decl.c (c_in_iteration_stmt, c_in_case_stmt): New. + (start_function): Use. + (c_push_function_context): Ditto. + (c-pop_function_context): Ditto. + (language_function): Move... + * c-tree.h: ... here. Add x_in_iteration_stmt, and + x_in_case_stmt. + * c-parse.in (do_stmt_start, select_or_iter_stmt, stmt): Use + c_in_iteration_stmt, c_in_case_stmt for parser state. Move + check for valid break or continue statment here... + * c-semantics.c (genrtl_break_stmt, genrtl_continue_stmt): From + here. Change original errors to abort. + +2003-11-24 Jan Hubicka + + * fold-const.c (fold): Do not return early when optimizing + COMPONENT_REF and constant. + +2003-11-24 Kazu Hirata + + * config/h8300/h8300.md (tablejump_h8300): Change to + *tablejump_h8300. + (tablejump_h8300h): Change to *tablejump_h8300hs_advanced. + (tablejump_normal_mode): Change to *tablejump_h8300hs_normal. + (indirect_jump_h8300): Change to *indirect_jump_h8300. + (indirect_jump_h8300h): Change to + *indirect_jump_h8300hs_advanced. + (indirect_jump_normal_mode): Change to + *indirect_jump_h8300hs_normal. + +2003-11-24 Kazu Hirata + + * config/h8300/h8300.md: Remove constraints from expanders. + +2003-11-24 Kazu Hirata + + * config/h8300/h8300.md: (stm_h8300s_2): Change the name to + stm_h8300s_2_advanced. + (stm_h8300s_2_normal): New. + (stm_h8300s_2): Likewise. + (stm_h8300s_3): Change the name to stm_h8300s_3_advanced. + (stm_h8300s_3_normal): New. + (stm_h8300s_3): Likewise. + (stm_h8300s_4): Change the name to stm_h8300s_4_advanced. + (stm_h8300s_4_normal): New. + (stm_h8300s_4): Likewise. + (ldm_h8300s_2): Change the name to ldm_h8300s_2_advanced. + (ldm_h8300s_2_normal): New. + (ldm_h8300s_2): Likewise. + (ldm_h8300s_3): Change the name to ldm_h8300s_3_advanced. + (ldm_h8300s_3_normal): New. + (ldm_h8300s_3): Likewise. + (ldm_h8300s_4): Change the name to ldm_h8300s_4_advanced. + (ldm_h8300s_4_normal): New. + (ldm_h8300s_4): Likewise. + (two peephole2's): Enable only with !TARGET_NORMAL_MODE. + (two peephole2's): New. + +2003-11-24 Zdenek Dvorak + + * genattrtab.c (simplify_cond): Update indices correctly. + (attr_alt_subset_p, attr_alt_subset_of_compl_p, attr_alt_intersection, + attr_alt_union, attr_alt_complement, attr_alt_bit_p, mk_attr_alt): New. + (check_attr_test, encode_units_mask, compute_alternative_mask, + make_alternative_compare, simplify_and_tree, + attr_rtx_cost, simplify_test_exp, gen_attr, + write_test_expr, walk_attr_value): Handle EQ_ATTR_ALT. + * rtl.def (EQ_ATTR_ALT): New. + +2003-11-23 Zdenek Dvorak + + * genattrtab.c (strcmp_check, DEF_ATTR_STRING): New macros. + (length_str, delay_type_str, delay_1_0_str, num_delay_slots_str): + New variables. + (main): Initialize them. + (find_attr): Canonicalize the attribute name string. + (attr_rtx_1, copy_boolean, expand_delays, gen_unit): Always canonicalize + string arguments. + (attr_printf, attr_eq): Use DEF_ATTR_STRING. + (check_attr_test, check_attr_value, make_length_attrs, + write_length_unit_log, simplify_by_exploding, gen_attr, + write_test_expr, write_attr_value, write_eligible_delay, + write_complex_function, make_internal_attr, + write_const_num_delay_slots): Changed due to change of type of + find_attr. + (fill_attr, evaluate_eq_attr, simplify_and_tree, + attr_rtx_cost, simplify_by_exploding, walk_attr_value): Use + strcmp_check. + +2003-11-23 Kazu Hirata + + PR target/13122 + * config/h8300/h8300.c (push): Call push_h8300hs_normal in + normal mode. + (pop): Call pop_h8300hs_normal in normal mode. + * config/h8300/h8300.md: Likewise. + (pushqi1_h8300hs_normal): New. + (pushqi1): Call pushqi1_h8300hs_normal in normal mode. + (pushhi1_h8300hs_normal): New. + (pushhi1): Call pushhi1_h8300hs_normal in normal mode. + (push_h8300hs_normal): New. + (pop_h8300hs_normal): Likewise. + +2003-11-23 Zdenek Dvorak + + * genattrtab.c (count_sub_rtxs): Removed. + +2003-11-23 Richard Earnshaw + + * recog.c (preprocess_constraints): Only zero those elements of + recog_op_alt that are needed for this insn. + * arm.c (note_invalid_constants): A function can't contain invalid + constants if it has no constraints. + +2003-11-22 Jan Hubicka + + * i386.c (classify_argument): Pass __float128 in memory. + (ix86_return_in_memory): Likewise. + (ix86_libcall_value): Likewsie. + +2003-11-22 Kazu Hirata + + * config/h8300/h8300.c (dosize): Convert to ISO-C. + +2003-11-22 J"orn Rennecke + + * flow.c (update_life_info): Amend comment about when a register + can become dead. + +2003-11-21 Kelley Cook + + * doc/.cvsignore: Delete. + +2003-11-21 Daniel Berlin + David Edelsohn + + * dwarf2out.c (add_location_or_const_value_attribute): Add support + for PARALLEL. + +2003-11-21 Rainer Orth + + * config/mips/t-iris6 (CRTSTUFF_T_CFLAGS): Add -Wno-error. + (TARGET_LIBGCC2_CFLAGS): Define. + + * crtstuff.c [HAS_INIT_SECTION] (__do_global_dtors): Declare. + (__do_global_ctors): Likewise. + +2003-11-21 Mark Wielaard + + * doc/invoke.texi (-O2): Doesn't enable -fweb. + +2003-11-21 Kazu Hirata + + * doc/invoke.texi: Mention dV and dZ. + +2003-11-21 Kazu Hirata + + * doc/invoke.texi: Update dump file names. + Remove de, dW, and dX. + +2003-11-20 James E Wilson + + PR c/13133 + * reload1.c (reload): Delete special handling for setjmp. + +2003-11-21 Andreas Tobler + + * mklibgcc.in: Evaluate shlib_slibdir_qual during link + step too. + * config/t-slibgcc-darwin: Adjust install path. + * config/rs6000/t-darwin: Revert multilib matches since + it is not used on darwin. + +2003-11-20 Richard Henderson + + * ssa.c, ssa-dce.c, ssa-ccp.c: Remove files. + * Makefile.in (OBJS-common, GTFILES): Don't reference them. + (gtype-desc.o, toplev.o, flow.o): Remove ssa.h. + (ssa.o, ssa-dce.o, ssa-ccp.o): Remove. + * flow.c: Don't include ssa.h. + (set_phi_alternative_reg): Remove. + (calculate_global_regs_live): Don't call it. + (mark_used_regs): Don't handle PHI. + * gengtype.c (open_base_files): Don't reference ssa.h. + * rtl.def (PHI): Remove. + * timevar.def (TV_TO_SSA, TV_SSA_CCP, TV_SSA_DCE, TV_FROM_SSA): Kill. + * common.opt: Remove -fssa, -fssa-ccp, -fssa-dce. + * opts.c (common_handle_option): Likewise. + * toplev.c (f_options): Likewise. + (DFI_ssa, DFI_ssa_ccp, DFI_ssa_dce, DFI_ussa): Remove. + (dump_file): Update to match. + (flag_ssa, flag_ssa_ccp, flag_ssa_dce): Remove. + (rest_of_handle_ssa): Remove. + (rest_of_compilation): Don't call it. + * toplev.h (flag_ssa, flag_ssa_dce, flag_ssa_ccp): Remove. + * doc/invoke.texi: Remove -fssa, -fssa-ccp, -fssa-dce. + * doc/passes.texi (SSA optimizations): Remove. + +2003-11-20 Bob Wilson + + * configure.in: Add xtensa-*-* targets to test for dwarf2 debug_line. + * configure: Regenerate. + +2003-11-20 Kelley Cook + + * Makefile.in (Makefile): Pass along CONFIG_SHELL. + +2003-11-20 David Mosberger + + * config/t-libunwind (LIB2ADDEH): Add unwind-c.c. + (SHLIB_LC): Define. + * unwind-libunwind.c (_Unwind_GetCFA): Implement. + (_Unwind_GetBSP) [UNW_TARGET_IA64]: New function. + +2003-11-20 Fariborz Jahanian + David Edelsohn + + * calls.c (expand_call): Allocate new temp in pass1. + (store_one_arg): If PARALLEL, calculate excess using mode size of + rtvec elt. + * expr.c (emit_push_insn): If PARALLEL, calculate offset using + mode size of rtvec elt. + * function.c (assign_parms): Use parm in register, if available. + +2003-11-20 Kazu Hirata + + * config/h8300/lib1funcs.asm (MOVP): Remove. + (ADDP): Likewise. + (CMPP): Likewise. + +2003-11-20 Richard Earnshaw + + * arm.c (use_return_insn): New argument, SIBLING. Support returning + with a single instruction if the stack has been decremented by 4 + and we have a frame pointer. Update all callers. + (output_return_instruction): Likewise. + (arm_output_epilogue): Change argument to SIBLING. Calculate + really_return from the new argument. Update all callers. + * arm.h (USE_RETURN_INSN): Pass NULL for the sibling. + * arm.md (sibcall_epilogue): Call use_return_insn directly, and + pass the sibling call. + * arm-protos.h (use_return_insn, arm_output_epilogue): Update + prototypes. + +2003-11-20 Joseph S. Myers + + * Makefile.in (extraclean): Delete. + * configure.in (target_list): Remove extraclean. + * configure: Regenerate. + * doc/makefile.texi, doc/sourcebuild.texi: Update. + * objc/Make-lang.in (objc.extraclean): Delete. + +2003-11-20 Joseph S. Myers + + * Makefile.in (lang_checks): Add. + (check-c++, check-f77, check-java, check-g++, check-g77, + check-objc): Remove hardcoded targets. + * doc/sourcebuild.texi: Document testsuite hooks. + * objc/Make-lang.in (check-objc, lang_checks): Add. + +2003-11-19 Scott Snyder + + PR target/13131 + * dwarf2out.c (gen_array_type_die): DW_AT_declaration should be a + flag, not a constant. + +2003-11-19 Kelley Cook + + * config/arc/arc-protos.h: Update to C90 prototypes. + * config/arc/arc.c: Likewise. + * config/arc/initfini.c: Likewise. + +2003-11-19 Andreas Krebbel + + * stmt.c (expand_goto): Memory clobbers added. + +2003-11-19 Andreas Krebbel + + * reload.c (find_reloads): Added missing type casts. + +2003-11-19 James E Wilson + + * combine.c (sets_function_arg_p): Delete unused function. + +2003-11-19 Eric Christopher + + * reload1.c (reload): Revert 2 previous checkins. + +2003-11-19 Nathanael Nerode + + * cpptrad.c (_cpp_scan_out_logical_line): Improve test for + whether directive begins at the beginning of a line. + +2003-11-19 Richard Sandiford + + * config/frv/frv.c (frv_init_libfuncs): Correct ufix_optab entries. + +2003-11-19 Gerald Pfeifer + + * doc/install.texi (Specific): Remove information on old versions + of glibc versus old versions of GCC. + +2003-11-19 Richard SAndiford + + * emit-rtl.c (gen_lowpart): Don't force MEMs into a register unless + the register lowpart is a TRULY_NOOP_TRUNCATION. + +2003-11-19 Richard Henderson + + * config/i386/i386.c (print_reg): Handle QI and HI modes for + non Q regs. + +2003-11-19 Andreas Tobler + + * config/config.gcc (powerpc-*-darwin*): Add libgcc build + specification file. + * config/t-slibgcc-darwin: New file, libgcc build specification. + * config/t-darwin: Add libgcc2 flag -fPIC. + * config/rs6000/t-darwin: Multilib matches float. + * libgcc-darwin.ver: New file, contains libgcc symbols. + +2003-11-18 Nathanael Nerode + + * config/ns32k/ns32k.h: Remove obsolete comment. + +2003-11-18 Roger Sayle + + PR middle-end/11821 + * config/arm/arm.c (arm_rtx_costs_1): Improve estimate of the code + size for calls to libgcc's div & mod subroutines when using -Os. + +2003-11-18 Jan Hubicka + + * cgraph.c (change_decl_assembler_name): Avoid bogus warnings. + +2003-11-18 Marc Espie + + * config/rs6000/sysv4.h: OpenBSD hooks. + +2003-11-18 Richard Henderson + + * expr.c (expand_expr): Don't look through constant arrays if + they don't bind locally. + +2003-11-17 Richard Kenner + + * expr.c (convert_move): Use GET_MODE_PRECISION instead of bitsize + when seeing if truncation or extension. + +2003-11-17 Eric Christopher + + * reload1.c (reload): Fix previous change. + +2003-11-17 Scott Snyder + + PR debug/11325 + * dwarf2out.c (struct die_struct): Add die_definition field. + (add_AT_specification): New. + (gen_subprogram_die, gen_variable_die, + gen_struct_or_union_type_die): Use it. + (prune_unused_types_mark): If we're marking a forward declaration, + also mark the full definition, if it exists. + +2003-11-16 Nick Clifton + + * config/stormy16/stormy16.h (BUILD_VA_LIST_TYPE): Delete. + * config/stormy16/stormy16-protos.h (xstormy16_build_va_list): + Remove prototype. + * config/stormy16/stormy16.c (xstormy16_build_va_list): Rename + to xstormy16_build_builtin_va_list and make static. + (TARGET_BUILD_BUILTIN_VA_LIST): Define. + +2003-11-16 Kazu Hirata + + * config/h8300/h8300-protos.h: Add the prototype for + same_cmp_following_p. + * config/h8300/h8300.c (same_cmp_following_p): New. + * config/h8300/h8300.md (peephole2): Use it. + +2003-11-16 Kazu Hirata + + * config/h8300/h8300.md: Don't use REGNO when its operand is + not guaranteed to be a REG. + +2003-11-16 Richard Sandiford + + * Makefile.in (expr.o): Depend on $(TARGET_H). + * target.h (return_in_msb): New target hook. + * target-def.h (TARGET_RETURN_IN_MSB): New macro. + (TARGET_CALLS): Include it. + * calls.c (shift_returned_value): New function. + (expand_call): Use it. + * expr.c: Include target.h. + (copy_blkmode_from_reg): Check targetm.calls.return_in_msb when + deciding what padding is needed. Change the name of the local + padding variable from big_endian_correction to padding_correction. + * stmt.c (shift_return_value): New function. + (expand_return): Use it. Adjust memory->register copy in the same + way as copy_blkmode_from_reg. Only change the return register's + mode if it was originally BLKmode. + * doc/tm.texi (TARGET_RETURN_IN_MSB): Document. + * config/mips/mips.c (TARGET_RETURN_IN_MSB): Define. + (mips_fpr_return_fields): New, split out from mips_function_value. + (mips_return_in_msb, mips_return_fpr_pair): New functions. + (mips_function_value): Rework to use the functions above. + * config/mips/irix6-libc-compat.c: Delete. + * config/mips/t-iris6 (LIB2FUNCS_STATIC_EXTRA): Undefine. + +2003-11-16 Kazu Hirata + + * doc/install.texi (--enable-checking): Update valgrind's URL. + +2003-11-16 Kazu Hirata + + * config/h8300/h8300.md: Fix warnings by replacing -2147483648 + with -2147483647 - 1. + +2003-11-16 Gerald Pfeifer + + Fix links in online manuals. + * doc/invoke.texi (H8/300 Options): @xref to ld, not ld.info. + (Precompiled Headers): @pxref to cpp, not cpp.info. + +2003-11-16 Jason Merrill + + * Makefile.in, objc/Make-lang.in (objc.tags): Create TAGS.sub + files in each directory and TAGS files that include them for each + front end. + +2003-11-15 Kazu Hirata + + * config/h8300/lib1funcs.asm (divnorm): Store the sign in bit + 3 of S2L. + (modnorm): Likewise. + (exitdiv): Look at bit 3 of S2L only. + +2003-11-15 Kazu Hirata + + * config/h8300/h8300.h (DO_GLOBAL_CTORS_BODY): Fix warnings. + (DO_GLOBAL_DTORS_BODY): Likewise. + +2003-11-15 Joseph S. Myers + + * doc/install.texi (Prerequisites): Refine documentation of + autoconf, automake and perl requirements. Document required + gettext version. + +<2003-11-14 Jason Merrill + + * function.c (assign_parms): Use TREE_TYPE to determine the real + type of the argument object. + +2003-11-14 Kazu Hirata + + * config/h8300/lib1funcs.asm (___udivsi3): Peel off the first + iteration. + +2003-11-14 Fariborz Jahanian + + * config/rs6000/rs6000.c (rs6000_move_block_from_reg): + New routine to save vararg registers on stack. Support for + -mpowerpc64 in mixed mode. + +2003-11-14 Bernardo Innocenti + + * config/m68k/m68k.c: Use C statements instead of #ifdef's when testing + for MOTOROLA versus MIT syntax. Improves readability and provides + better compile-time error checking for both code paths. + +2003-11-14 Kelley Cook + + * config/frv/frv-protos.h: Update for C90. + * config/frv/frv.h: Likewise. + * config/frv/frvbegin.c: Likewise. + * config/frv/frv.c: Likewise. + (frv_adjust_field_align): Delete unused variable. + +2003-11-14 Geoffrey Keating + + * config/rs6000/rs6000.md: Add 'DEFAULT_ABI == ABI_DARWIN' + to each place where TARGET_LONG_DOUBLE_128 is used with + DEFAULT_ABI == ABI_AIX. + + * cppfiles.c (_cpp_find_file): Make 'one or more PCH files were found' + message comply with GNU standards. + +2003-11-14 Richard Kenner + + PR/6552 + * function.c (struct epi_info): New field const_equiv. + (update_epilogue_consts): New function. + (keep_stack_depressed): Clear new field and verify scratch register + doesn't have it set. + Call new function via note_stores. + (handle_epilogue_set): Allow setting SP equiv reg in different mode. + Allow PLUS where second operand is register known set to constant. + (emit_equiv_load): Write load using proper mode if source different. + * config/mips/mips.md (return_internal): Put (return) first. + +2003-11-14 Kazu Hirata + + * config/h8300/lib1funcs.asm (___udivsi3): Add a comment. + +2003-11-14 Kazu Hirata + + * config/h8300/lib1funcs.asm (modsi3): Don't save unused + registers. + (divsi3): Likewise. + (reti): Don't restore unused registers. + +2003-11-14 Nick Clifton + + * config/fr30/fr30.c: Include toplev.h + +2003-11-14 Richard Earnshaw + + * except.c (sjlj_emit_function_enter): Mark internal label as LOCAL. + +2003-11-14 Richard Earnshaw + + * arm.c (arm_emit_vector_const, arm_output_load_gr): Use ISO C + function definition syntax. + +2003-11-14 Eric Christopher + + * reload1.c (reload): Revert previous patch. Make + check for assignment into reg_equiv_address stricter. + +2003-11-14 Arnaud Charlet + + * Makefile.in (POSTSTAGE1_FLAGS_TO_PASS): Pass ADAFLAGS. + +2003-11-14 Richard Sandiford + + * config/frv/frv.c (frv_in_small_data_p): Return false for unknown + section names. + +2003-11-14 Jason Merrill + + PR middle-end/12526 + * tree.c (build): A CALL_EXPR has side-effects if its arguments do. + * calls.c (call_expr_flags): New fn. + * tree.h: Declare it. + +2003-11-13 Kazu Hirata + + * config/h8300/lib1funcs.asm (__udivsi3): Remove. + (divmodsi3): Change the name to ___udivsi3. + Update all callers. + +2003-11-13 Kaveh R. Ghazi + + * libgcc2.c (__negdi2, __addvsi3, __addvdi3, __subvsi3, __subvdi3, + __mulvsi3, __negvsi2, __negvdi2, __mulvdi3, __lshrdi3, __ashldi3, + __ashrdi3, __ffsDI2, __muldi3, __clzDI2, __ctzDI2, __parityDI2, + __udivmoddi4, __divdi3, __moddi3, __cmpdi2, __ucmpdi2, + __fixunstfDI, __fixunsxfDI, __fixunsdfDI, __fixunssfDI, + __floatdixf, __floatditf, __floatdidf, __floatdisf, __gcc_bcmp): + Const-ify and/or initialize automatic variables at declaration. + +2003-11-13 Kazu Hirata + + * config/h8300/lib1funcs.asm (divmodsi4): Replace all the uses + of er4 with er3. Adjust all callers. + +2003-11-13 Andrew Pinski + + * config/darwin.c (machopic_output_possible_stub_label): + Allow stub symbol be not defined when outputting possible + stub label. + +2003-11-13 Kazu Hirata + + * config/h8300/lib1funcs.asm (___udivsi3): Jump to reti + instead of exitdiv. + (___umodsi3): Likewise. + (exitdiv): Do not restore any register. + (reti): Restore registers. + +2003-11-13 Steven Bosscher + + * tree-inline.c (walk_tree): Handle PLACEHOLDER_EXPR. + +2003-11-13 Kazu Hirata + + * config/h8300/lib1funcs.asm: Fix comment typos. + +2003-11-13 Kazu Hirata + + * config/h8300/lib1funcs.asm (udivsi3): Don't save/restore + unused registers. Don't jump to exitdiv. + (umodsi3): Likewise. + +2003-11-13 Mark Mitchell + Kean Johnston + + PR c/13029 + * toplev.c (check_global_declarations): Do not warn about unused + static consts. + +2003-11-13 Pavel Pisa + Kazu Hirata + + * config/h8300/lib1funcs.asm (DenHighNonZero): Optimize using + the approximate quotient method. + +2003-11-13 Richard Earnshaw + + * combine.c (distribute_notes): When re-distributing the notes from + an insn we are about to delete, ensure we can't end up with a cyclic + list of notes. + +2003-11-13 Eric Botcazou + + PR optimization/12926 + * expr.c (expand_assignment) [COMPONENT_REF]: Don't put + the UNCHANGING_RTX_P flag on memory references to read-only + components that are not addressable. + +2003-11-12 Kazu Hirata + + * config/h8300/lib1funcs.asm (divmodsi4): Clear S0P in + DenHighNonZero. + +2003-11-13 Jan Hubicka + + PR opt/12275 + * c-decl.c (finish_decl): Use change_decl_assembler_name. + * c-pragma.c (handle_pragma_redefine_extname): Likewise. + * varasm.c (make_decl_rtl): Likewise. + * cgraph.c (change_decl_assembler_name): New function. + * tree.h (set_decl_assembler_name): Kill dead declaration. + (change_decl_assembler_name): Declare. + + * decl.c (make_rtl_for_nonlocal_decl): Use change_decl_assembler_name. + * decl2.c (make_rtl_for_nonlocal_decl): Use change_decl_assembler_name. + +2003-11-12 Kazu Hirata + + * config/h8300/lib1funcs.asm (___mulsi3): Don't save/restore + an unused register. + +2003-11-12 Richard Sandiford + + PR bootstrap/12752 + * config/mips/t-iris6 (MULTILIB_OPTIONS): Put -mabi=n32 first. + (MULTILIB_OSDIRNAMES): Reorder accordingly. + +2003-11-12 Janis Johnson + + * rs6000-protos.h (rs6000_initial_elimination_offset): Add. + (rs6000_stack_info): Remove. (debug_stack_info): Remove. + (rs6000_emit_eh_reg_restore): Add + * rs6000.c (rs6000_stack_t): Move from rs6000.h, change data type + of vars_size and total_size to HOST_WIDE_INT. + (emit_frame_save): Change parameter size to HOST_WIDE_INT. + (rs6000_stack_info): Make static; change data size to HOST_WIDE_INT. + (debug_stack_info): Make static; change output format of HOST_WIDE_INT + values. + (rs6000_emit_eh_reg_restore): New, with code formerly in rs6000.md. + (rs6000_initial_elimination_offset): New, with code formerly in + INITIAL_ELIMINATION_OFFSET. + * rs6000.h (rs6000_stack_t): Remove. + (INITIAL_ELIMINATION_OFFSET): Replace code with call to function + rs6000_initial_elimination_offset. + * rs6000.md (UNSPECV_EH_RR split): Replace code with call to + rs6000_emit_eh_reg_restore. + +2003-11-12 Mike Stump + + * c-typeck.c (c_convert_parm_for_inlining): Add argnum, which + is the argumnt we are processing so that warnings and errors + will have that information. + * c-tree.h (c_convert_parm_for_inlining): Add argnum. + * lang-hooks-def.h + (lhd_tree_inlining_convert_parm_for_inlining): Likewse. + * langhooks.c (lhd_tree_inlining_convert_parm_for_inlining): Likewise. + * langhooks.h (convert_parm_for_inlining): Likewise. + * tree-inline.c (initialize_inlined_parameters): Compute and + pass argnum down. + +2003-11-12 Alexey Starovoytov + Roger Sayle + + PR optimization/12953 + * tree-inline.c (inline_forbidden_p_1): Added check for BUILT_IN + before switch by FUNCTION_CODE. + +2003-11-12 Richard Earnshaw + + * arm.md (storehi): Avoid use of explicit subreg. + (storehi_bigend, storeinthi, movhi_bigend): Likewise. + +2003-11-12 J"orn Rennecke + + * config/sh/sh.md (prefetch): New pattern. + +2003-11-11 Eric Christopher + + * reload1.c (reload): Verify that addresses for + reg_equiv_* are valid for the architecture. + +2003-11-11 Eric Christopher + + * function.c (purge_addressof_1): Add libcall check. + Remove test for cached replacements on fallback case. + Simplify mode comparisons. Add libcall test for + paradoxical subregs. + +2003-11-11 Kazu Hirata + + * config/h8300/t-h8300: Fix an obsolete comment. + +2003-11-11 James E Wilson + + * expmed.c (store_bit_field, extract_bit_field): Revert last two + changes. + +2003-11-11 Kazu Hirata + + * config/h8300/lib1funcs.asm: Replace DenHighZero with + DenHighNonZero. + +2003-11-11 Jan Hubicka + + * cgraphunit.c (cgraph_function_possibly_inlined_p): Use + really_no_inline. + +2003-11-11 John David Anglin + + * pa.h (TRAMPOLINE_TEMPLATE): Fix flushing of cache lines when + generating 64-bit code. + +2003-11-10 David Edelsohn + + * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): Remove + accidental commit in previous change. + +2003-11-10 Fariborz Jahanian + + * config/rs6000/rs6000.h (STACK_SIZE_MODE): Add definition. + * config/rs6000/rs6000.c (reg_or_mem_operand): Add macho-style + address recognition. + (macho_lo_sum_memory_operand): Routine to recognize macho-style + address recognition. + +2003-11-10 Richard Henderson + + * dwarf2out.c (gen_label_die): Cope with DECL_RTL not set. + +2003-11-10 Matt Austern + + * config/darwin-protos.h (darwin_assemble_visibility): Declare. + * config/darwin.c (darwin_assemble_visibility): Define. Warn for + anything other than VISIBILITY_DEFAULT and VISIBILITY_HIDDEN. + * config/darwin.h (TARGET_ASM_ASSEMBLE_VISIBILITY): Use + darwin_assemble_visibility instead of default. + +2003-11-10 Waldek Hebisch + + PR target/12865 + * config/sparc/sparc.c (sparc_initialize_trampoline): Call + __enable_execute_stack only after writing onto the stack. + (sparc64_initialize_trampoline): Likewise. + +2003-11-09 Roger Sayle + + * loop.c (check_dbra_loop): Try swapping the comparison operands + of the loop condition to identify a suitable induction variable. + * unroll.c (loop_iterations): Likewise. + +2003-11-09 Kaveh R. Ghazi + + * config/sparc/sparc.h (TARGET_CPU_CPP_BUILTINS): Fix sparc vs + sparc64 #cpu and #machine assertions. + +2003-11-09 Richard Henderson + + * Makefile.in (rtlanal.o): Depend on BASIC_BLOCK_H. + +2003-11-09 Jan Hubicka + + * tree-optimize.c (tree_rest_of_compilation): Fix warning. + + * cgraphunit.c (cgraph_expand_function): Use + cgraph_possibly_inlined_p. + * tree-optimize.c (tree_rest_of_compilation): Do not kill saved tree. + + * opts.c (common_handle_option): Do not set max-inline-insns. + * params.def: Update comments. + (PARAM_MAX_INLINE_INSNS): Kill. + * invoke.texi (max-inline-insns): Kill. + +2003-11-08 Joseph S. Myers + + PR c/3190 + PR c/8714 + * c-format.c (set_Wformat): Do not enable -Wformat-y2k by default. + * invoke.texi: Update. + +2003-11-08 John David Anglin + + PR optimization/12630 + * pa.c (compute_movstrsi_length): Rename to compute_movstr_length. + Handle length computation 64-bit moves. + (compute_clrstr_length, output_block_clear): Implement block clear. + (output_block_move): Handle 64-bit moves. + (pa_adjust_insn_length): Use compute_movstr_length and + compute_clrstr_length. + * pa.md (movstrsi): Revise operand order and comments. Don't use + match_scratch. + (movstrsi_internal): Delete. + (movstrsi_prereload, movstrsi_postreload): New insns. Define splitter + and peephole2 patterns to transform prereload to postreload form. + (movstrdi, movstrdi_prereload, movstrdi_postreload, clrstrsi, + clrstrsi_prereload, clrstrsi_postreload, clrstrdi, clrstrdi_prereload, + clrstrdi_postreload): New patterns for 64-bit block move, and block + clear. + * pa-protos.h (output_block_clear): New prototype. + +2003-11-08 Andreas Schwab + + * dbxout.c (current_file): Also wrap inside DBX_DEBUGGING_INFO || + XCOFF_DEBUGGING_INFO. + +2003-11-08 Kaveh R. Ghazi + + * dbxout.c (current_file): Wrap declaration in DBX_USE_BINCL. + +2003-11-07 Geoffrey Keating + + * config/rs6000/rs6000.c (rs6000_legitimize_address): Remove + redundant parens. + + * cppfiles.c (pch_open_file): New parameter 'invalid_pch', set it. + (find_file_in_dir): Likewise. + (_cpp_find_file): Print message if no header file is found + but an invalid PCH file was. + +2003-11-08 Joseph S. Myers + + * c-typeck.c (pedantic_lvalue_warning): Deprecate compound + expressions as lvalues. + (internal_build_compound_expr): Remove special handling for + non-pedantic case. + * doc/extend.texi: Document that all extended lvalues are now + deprecated. + +2003-11-07 Geoffrey Keating + + PR 11654 + * dbxout.c (struct dbx_file): Do not save for PCH. + (current_file): Likewise. + (dbxout_init): Don't allocate struct dbx_file using GC. + (dbxout_start_source_file): Likewise. + +2003-11-07 Falk Hueffner + + * config/alpha/elf.h, config/alpha/unicosmk.h, + config/alpha/vms.h: Convert to ISO C90. + +2003-11-07 Nathanael Nerode + + * config/arm/pe.h: Convert to ISO C90. + +2003-11-07 J"orn Rennecke + + * sh-protos.h (sh_pch_valid_p): Declare. + * sh.c ("intl.h"): Include. + (TARGET_PCH_VALID_P): Override. + (sh_target_switches): New variable. + (target_switches): Define. + (sh_pch_valid_p): New function. + + * sh.h (MODE_AFTER): Don't change mode unless TARGET_HITACHI. + +2003-11-07 Jan Hubicka + + * i386.c (x86_64_sign_extended_value): Return false from tls variables. + (x86_64_zero_extended_value): likewise. + +2003-11-07 Richard Sandiford + + * config/mips/mips.md (loadgp): Take $25 as a second operand. + * config/mips/mips.c (mips_expand_prologue): Modify accordingly. + +2003-11-06 Matt Austern + + * c-common.c (handle_visibility_attribute): Set DECL_VISIBILITY + field instead of hanging an attribute object off the decl. + * tree.h (DECL_VISIBLITY): New accessor macro for + symbol_visibility field in struct tree_decl. + (enum symbol_visibility): Move definition to before tree_decl. + (struct tree_decl): Define new two-bit field, symbol_visibility. + (decl_visibility): Remove declaration. + * varasm.c (maybe_assemble_visibility): Use DECL_VISIBILITY + instead of decl_visibility. + (default_binds_local_p_1): Use DECL_VISIBILITY instead of + decl_visibility. + (decl_visibility): Remove. + +2003-11-06 Ulrich Weigand + + * config/s390/s390.c (s390_emit_epilogue): Recognize more cases + where register 14 will be saved. + +2003-11-06 Geoffrey Keating + + * config/rs6000/rs6000.h (USE_FP_FOR_ARG_P): Move to rs6000.c. + (USE_ALTIVEC_FOR_ARG_P): Likewise. + * config/rs6000/rs6000.c (USE_FP_FOR_ARG_P): Move from rs6000.h. + Take a pointer as the CUM parameter. Update callers. + (USE_ALTIVEC_FOR_ARG_P): Likewise. Also correct for Darwin/AIX + 32-bit ABIs. + (function_arg_advance): Use USE_ALTIVEC_FOR_ARG_P. Correct case + of vector parameters as named arguments of stdarg function. + (function_arg): Likewise. + + * config/rs6000/darwin.h (ASM_SPEC): Use -force_cpusubtype_ALL when + -maltivec is specified, not the non-existent -faltivec. + +2003-11-06 Ulrich Weigand + + * config/s390/s390-protos.h (s390_function_value): Declare. + * config/s390/s390.c (TARGET_RETURN_IN_MEMORY): Define. + (s390_return_in_memory): New function. + (s390_function_value): New function. + (s390_function_arg_float): Return false for all arguments larger + than 8 bytes. + (s390_function_arg_pass_by_reference): Likewise. Return true for + all vector arguments. + (s390_function_arg_integer): New function. + (s390_function_arg_advance): Call it. Add sanity checks. + (s390_function_arg): Likewise. + * config/s390/s390.h (FUNCTION_VALUE): Call s390_function_value. + (LIBCALL_VALUE): Likewise. + (RET_REG): Remove. + (RETURN_IN_MEMORY): Remove. + +2003-11-06 Richard Sandiford + + * config/mips/mips-protos.h (mips_initial_elimination_offset): Change + return type to HOST_WIDE_INT. + * config/mips/mips.c (mips_frame_info): Give sizes type HOST_WIDE_INT. + Make initialized a bool. Make register masks unsigned ints. + (compute_frame_size): Make same mask change here. Use HOST_WIDE_INT + where appropriate. + (mips_initial_elimination_offset): Return a HOST_WIDE_INT. + (mips_output_function_prologue): Print sizes as HOST_WIDE_INTs. + +2003-11-06 Richard Sandiford + + * config/frv/frv.c (frv_initial_elimination_offset): Remove bogus + negation. + +2003-11-06 Richard Sandiford + + * config/frv/frv.h (ASM_OUTPUT_ALIGN_WITH_NOP): Define. + +2003-11-06 Momchil Velikov + + * config/mips/mips.c (override_options): Set MASK_SOFT_FLOAT + for VR4111 too. + +2003-11-06 Jan Hubicka + + * builtins.c (simplify_builtin_strrchr, simplify_builtin_strpbrk): Add + missing casts. + +2003-11-06 Zack Weinberg + + * genmodes.c: Change the word "bitsize" to "precision" throughout. + * machmode.def: Likewise. + * machmode.h (GET_MODE_SIZE): Cast value to unsigned short. + (GET_MODE_BITSIZE): Define as GET_MODE_SIZE * BITS_PER_UNIT. + (GET_MODE_PRECISION): New macro. + (mode_bitsize): Renamed mode_precision. + * stor-layout.c (mode_for_size, smallest_mode_for_size): + Use GET_MODE_PRECISION; clarify comments. + +2003-11-05 Joseph S. Myers + + * doc/install-old.texi: Remove old documentation of building + cross-compilers. + * doc/install.texi: Move some of it to here. + +2003-11-05 Per Bothner + + PR preprocessor/12891 + * c-opts.c (finish_options): Set include_cursor to disable premature + calls to push_command_line_include from cpp_scan_nooutput. + Fixes bug reported by DJ Delorie. + +2003-11-05 Geoffrey Keating + + * config/rs6000/rs6000.c (setup_incoming_varargs): Remove + code supporting old-style varargs. + + * config/rs6000/rs6000.c (rs6000_machopic_legitimize_pic_address): Use + an intermediate register for better optimisation. + +2003-11-05 Zdenek Dvorak + + PR optimization/10080 + * cfgloopanal.c (variable_initial_value, variable_initial_values, + simple_loop_exit_p): Record the fact that initial value is extended + from inner mode. + (count_strange_loop_iterations, count_loop_iterations): Handle + ivs that iterate in a narrower mode. Fix handling of overflows. + Improve handling of NE conditions. + (inverse, fits_in_mode_p): New static functions. + (simple_increment): Detect variables that iterate in a narrower mode. + * cfgloop.h (struct loop_desc): Fields inner_mode and extend added. + +2003-11-05 Geoffrey Keating + + * config/rs6000/rs6000.c (compute_vrsave_mask): Correct off-by-one + error. + + * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Darwin + needs VRSAVE. + +2003-11-05 Joseph S. Myers + + * c-typeck.c (pedantic_lvalue_warning): Deprecate use of + conditional expressions as lvalues. + +2003-11-05 Kazu Hirata + + * tsystem.h: Add the prototype of strlen. + * unwind-pe.h (read_encoded_value_with_base): Add an + appropriate cast to handle a case where the pointer size is + smaller than sizeof (int). + +2003-11-04 Richard Sandiford + + * config/mips/mips-protos.h (mips_global_pic_constant_p): Delete. + (mips_delegitimize_address): Delete. + (mips_gotoff_global, mips_load_got_page): Declare. + (mips_load_got_global, mips_rewrite_small_data): Declare. + + * config/mips/mips.h (FIND_BASE_TERM): Remove definition. + (DANGEROUS_FOR_LA25_P): Use global_got_operand. + (PREDICATE_CODES): Add global_got_operand, local_got_operand and + small_data_pattern. Remove CONST from const_arith_operand's entry. + + * config/mips/mips.c (UNSPEC_ADDRESS_P, CONST_GP_P): New macros. + (UNSPEC_ADDRESS, UNSPEC_ADDRESS_TYPE): Likewise. + (mips_constant_type): Delete. + (mips_symbol_type): Add SYMBOL_GOTOFF_PAGE, SYMBOL_GOTOFF_GLOBAL, + SYMBOL_GOTOFF_CALL and SYMBOL_GOTOFF_LOADGP. + (NUM_SYMBOL_TYPES): New macro. + (mips_address_type): Remove ADDRESS_INVALID. + (machine_function): Add has_gp_insn_p. + (mips_constant_info): Delete. + (mips_address_info): Add the address type as an extra field. Replace + the c field with symbol_type. + (mips_split_p, mips_lo_relocs, mips_hi_relocs): New arrays. + (TARGET_DELEGITIMIZE_ADDRESS): Remove definition. + (mips_reloc_offset_ok_p, mips_classify_constant): Delete. + (mips_split_const, mips_symbolic_constant_p): New functions. + (mips_symbolic_address_p): Take the symbol type and mode as arguments. + (mips_classify_address): Return true if the address is valid, storing + its type in INFO. Use mips_symbolic_constant_p. Use mips_lo_relocs[] + to test whether a LO_SUM address is allowed. + (mips_symbol_insns): Return 0 for general mips16 symbols. + Reorder SYMBOL_GOT_GLOBAL case to match mips_symbol_type definition. + Handle the new SYMBOL_GOTOFF_*s. + (mips_address_insns): Update call to mips_classify_address. + (mips_const_insns): Be more fussy about HIGH constants. Remove use + of mips_classify_constant. Be more accurate about CONSTs. + (mips_global_pic_constant_p): Delete. + (const_arith_operand): Only accept CONST_INTs. + (call_insn_operand): Remove call to mips_classify_constant. + Let mips_symbolic_constant_p check for invalid offsets. + (move_operand): Check for general_operands first. Only accept symbolic + constants if they satisfy mips_symbolic_constant_p and cannot be split. + (symbolic_constant): Use mips_symbolic_constant_p. + (global_got_operand, local_got_operand): New predicates. + (stack_operand): Update call to mips_classify_address. + (mips_legitimate_address_p): Likewise. + (mips_reloc, mips_lui_reloc): Delete. + (mips_force_temporary): Only use the given temporary if no_new_pseudos. + Use emit_move_insn. + (mips_split_symbol, mips_unspec_address): New functions. + (mips_unspec_offset_high): New function. + (mips_load_got): Replace reloc argument with a symbol_type. + Use mips_unspec_address to create the address and put it in a + LO_SUM with the base register. + (mips_load_got16, mips_load_got32): Delete. + (mips_emit_high, mips_legitimize_symbol): Delete. + (mips_gotoff_global): New function. + (mips_load_got_page, mips_load_got_global): New functions. + (mips_legitimize_symbol): Inline handling of LO_SUM splits. + (mips_legitimize_const_move): Likewise. Remove HIGH handling. + Inline code to handle constants plus invalid offsets. Use + mips_split_symbol to legitimize constant pool addresses. + (mips_delegitimize_address): Delete. + (mips_rtx_costs): Give legitimate symbolic constants and CONST_DOUBLEs + a cost of 1 insn. Give the rest a cost of CONSTANT_POOL_ADDRESS. + (mips_subword): Pass memrefs through mips_rewrite_small_data. + (mips_output_move): Remove use of mips_classify_constant. + (mips_expand_call): Use mips_unspec_offset_high to calculate the + high part of the GOT address for calls to global functions. + (override_options): Initialize mips_split_p[], mips_lo_relocs[] + and mips_hi_relocs[]. + (print_operand): Use print_operand_reloc to handle '%h' and '%R'. + Remove use of mips_classify_constant. + (mips_reloc_string): Delete. + (print_operand_reloc): New function. + (print_operand_address): Update call to mips_classify_address. + (mips_rewrite_small_data_p, small_data_pattern_1): New functions. + (small_data_pattern): New predicate. + (mips_rewrite_small_data_1, mips_rewrite_small_data): New functions. + (mips_function_has_gp_insn): New function. + (mips_global_pointer): Use it. + (mips_gp_insn): Delete. + (mips_expand_prologue): When compiling for n32/n64 abicalls, use a + single loadgp pattern to initialize $gp. Pass it the offset of _gp + from the start of the current function. + (mips16_gp_pseudo_reg): Revert last patch. + + * config/mips/mips.md (RELOC_*): Delete. + (UNSPEC_LOADGP, UNSPEC_FIRST_ADDRESS): New constants. + (got): New insn attribute. + (type): Set to "load" if got == load. + (length): Set to 4 if got == load, 8 if got == xgot_high. + (lui[sd]i): Delete. + (*xgot_hi[sd]i, *xgot_lo[sd]i): New patterns. + (*got_disp[sd]i, *got_page[sd]i): Likewise. + (*low[sd]i): Change constraints to "d". Add a new define_split to + rewrite small data constants into LO_SUMs. + (loadgp): New insns. + +2003-11-04 Rainer Orth + + * config/mips/_tilib.c: Use _ABI* in _MIPS_SIM tests. + +2003-11-04 DJ Delorie + + * config/v850/v850.md (mulhisi3): Expand the const_int case + separately to avoid trying to sign extend the const. + +2003-11-04 Richard Sandiford + + * emit-rtl.c (copy_rtx_if_shared): Don't allow MEMs with constant + addresses to be shared. + (force_const_mem): Return a copy of the pool entry. + +2003-11-03 Andreas Jaeger + + * Makefile.in (GCC_CFLAGS): Remove @WERROR@ again. + +2003-11-03 Kelley Cook + + * Makefile.in (cpp.dvi): New target split from cpp.info. + (gcc.dvi): New target split from gcc.info. + (gccint.dvi): New target split from gccint.info. + (cppinternals.dvi): New target split from cppinternals.info + (gccinstall.info): New specific rule. + (gccinstall.dvi): Likewise. + (dvi): Move targets to $(docobjdir). + ($(docobjdir)/%.dvi): New implicit rule. + +2003-11-03 Richard Kenner + + * doc/gty.texi (tag, desc): Say more about role of desc values in + selecting between tags. + +2003-11-03 Alexander Kabaev + + * real.c (encode_ieee_single): Ensure proper promotion. + +2003-11-03 Volker Reichelt + + * doc/contrib.texi: Add Giovanni Bajo, Dara Hazeghi, Falk Hueffner, + and Andrew Pinski. + +2003-11-03 Syd Polk + + * config/rs6000/rs6000.c (rs6000_override_options): Add G3, G4, and G5 + marketing names to the list of supported processors. + * config/rs6000/rs6000.h: Ditto. + * doc/invoke.texi: Ditto. + * config.gcc: Ditto. + +2003-11-03 Rainer Orth + + * fixinc/inclhack.def (stdio_va_list): Allow tab before va_list. + Merge two substitutions. + * fixinc/fixincl.x: Regenerate. + Fixes PR bootstrap/12666. + +2003-11-03 Joseph S. Myers + + * doc/install-old.texi: Remove VMS documentation. + +2003-11-03 Jan Hubicka + + * i386.c (override_options): Remove hack enabling 128bit long double + commited by accident. + +2003-11-02 Per Bothner + + * c-opts.c (needValue): Do cpp_find_main_file before processing + any imacros flags, so pfile->main_file is set for the latter. + +2003-11-03 Andreas Jaeger + Zack Weinberg + + * Makefile.in (GCC_CFLAGS): Allow blacklisting of warnings. + (SYSCALLS.c.X-warn): Suppress warnings. + +2003-11-02 John David Anglin + + PR optimization/12845 + * pa.c (output_cbranch): Use cmpb for DImode comparisons with 0. + +2003-11-02 Zack Weinberg + + * print-rtl.c (print_rtx): Call PRINT_REG with second argument -1. + * config/i386/i386.c (print_reg): Abort on a virtual register + if code != -1; not if file == asm_out_file. + * config/i386/i386.h (PRINT_REG): Document meaning of CODE == -1. + (DEBUG_PRINT_REG): Delete, unused. + +2003-11-02 Andreas Schwab + + * config/ia64/fde-glibc.c (_GNU_SOURCE): Define to 1 instead of + empty to avoid conflict with the definition from configure. + +2003-11-02 Roger Sayle + + PR optimization/10817 + * ifcvt.c (noce_emit_move_insn): Improve documentation comment. + (noce_try_move): New function to optimize an if-the-else into an + unconditional move, i.e. "if (a!=b) x=a; else x=b" into "x=a". + (noce_process_if_block): Attempt simplification with noce_try_move. + + * simplify-rtx.c (simplify_ternary_operation): Some minor fixes + and improvements to the optimizations of IF_THEN_ELSE expressions. + (simplify_subreg): Silence signed/unsigned comparison warning. + +2003-11-02 Richard Sandiford + + * Makefile.in (targhooks.o, reload.o): Update dependencies. + (GTFILES): Add targhooks.c. + (gt-targhooks.h): New rule; depend on s-gtype. + * target.h (direct_pool_load_p): New hook. + * target-def.h (TARGET_DIRECT_POOL_LOAD_P): New macro. + (TARGET_INITIALIZER): Include it. + * targhooks.h (default_direct_pool_load_p): Declare. + (hook_bool_machine_mode_true): Declare. + * targhooks.c: Include insn-config.h, recog.h, ggc.h and + gt-targhooks.h. + (pool_symbol): New variable. + (default_direct_pool_load_p): New function. + (hook_bool_machine_mode_true): New function. + * reload.c: Include target.h. + (find_reloads): If an alternative will force a constant into memory, + count an extra reload if constant pool symbols are not valid + addresses. If an alternative uses memory to move values between + registers, count the move as two reloads rather than one. + * config/s390/s390.c (TARGET_DIRECT_POOL_LOAD_P): Define. + * doc/tm.texi (TARGET_DIRECT_POOL_LOAD_P): Document. + +2003-11-02 Eric Botcazou + + PR optimization/12799 + * postreload.c (reload_cse_move2add): Generate the add2 + patterns manually. + +2003-11-02 Eric Botcazou + + * config/sparc/sparc.c (function_arg_partial_nregs) [TARGET_ARCH64]: + Return 0 for all complex modes whose size is lesser or equal to + a word. Add a ??? comment for the condition used with 16-byte + aligned modes. + +2003-11-01 Kelley Cook + + * .cvsignore: Remove c-parse* and tradcif.c. + * objc/.cvsignore: Delete. + +2003-11-01 Roger Sayle + + * unwind-sjlj.c (_Unwind_GetCFA): Return (_Unwind_Word)0 instead + of NULL. + +2003-11-01 John David Anglin + + * som.h (DO_GLOBAL_DTORS_BODY): Change to C90 declaration. + + * libgcc2.c (SYMBOL__MAIN): Provide C90 declaration. + + * collect2.c (scan_libraries): Fix typos. + + PR preprocessor/12847 + * cppfiles.c, cppexp.c, cpperror.c, cpplib.h, cpplib.c, cpplex.c, + cppinit.c, cpptrad.c, cppmacro.c, fix-header.c, cpppch.c, c-pch.c, + c-incpath.c, cppcharset.c (DL_WARNING, DL_WARNING_SYSHDR, DL_PEDWARN, + DL_ERROR, DL_ICE, DL_EXTRACT, DL_WARNING_P): Prefix macro names with + "CPP_". + +2003-11-01 Fariborz Jahanian + + * config/rs6000/rs6000.c (rs6000_mixed_function_arg): Correct + no_units calculation. + +2003-11-01 Andreas Jaeger + + * unwind-dw2.c (_Unwind_FrameState): Remove commas at end of + enumeration list. + +2003-11-01 Andreas Schwab + + * config/ia64/sysv4.h (SDATA_SECTION_FUNCTION): Update to C90 + prototypes. + (SBSS_SECTION_FUNCTION): Likewise. + +2003-11-01 Andreas Jaeger + + * Makefile.in (GCC_CFLAGS): Add @WERROR@ for target files. + +2003-11-01 Andreas Tobler + + * config/rs6000/sysv4.h (EXTRA_SECTION_FUNCTIONS): Update to C90 + prototypes. + +2003-11-01 Andreas Jaeger + + * unwind-dw2.c (_Unwind_FindEnclosingFunction): Constify variable. + (uw_frame_state_for): Constify variables. + (extract_cie_info): Constify first argument. + + * unwind-dw2-fde-darwin.c: Adjust prototype of + _Unwind_Find_registered_FDE for recent changes. + (examine_objects): Constify return value and local variable result. + (_Unwind_Find_FDE): Constify return value and local variable ret. + +2003-10-31 Per Bothner + + * c-opts.c (finish_options): Change to returns boolean - false iff + the call to cpp_find_main_file fails. + (c_common_init): Skip preprocess_file if finish_options failed. + (c_common_parse_file): Break if finish_options failed. + Fixes PR preprocessor/12545. + +2003-10-31 John David Anglin + + * aclocal.m4: Blacklist ultrix* for mmap file. + * configure: Rebuilt. + + * function.c (assign_parms): Add ATTRIBUTE_UNUSED to variable + reg_parm_stack_space. + * toplev.c (default_get_pch_validity): Fix warning. + + * vax.c: Include toplev.h. + (vax_init_libfuncs): Fix typo (umod). + * vax.h (ASM_COMMENT_START): Define. + (PRINT_OPERAND): Fix warning when HOST_WIDE_INT is a long long. + +2003-10-31 Roger Sayle + + PR middle-end/11968 + * expr.c (expand_expr ): Remove inappropriate and + confusing comment; distributivity isn't handled in expand_expr. + * fold-const.c (extract_muldiv_1 ): Allow overflow + in distributivity, if wrap-around semantics are specified with + -fwrapv. + +2003-11-01 Alan Modra + + PR 12315 + * final.c (profile_function): Allow for NULL svrtx. + +2003-10-31 John David Anglin + + * pa.c (pa_select_section): Use new style declaration. + * som.h (readonly_data): Likewise. + +2003-10-31 Kelley Cook + + * config/rs6000/rs6000.c: Update to C90 prototypes. + +2003-10-31 Richard Earnshaw + + PR target/7513 + * arm.h (CONDITIONAL_REGISTER_USAGE): Disable use of LR in Thumb + code. + +2003-10-31 Andreas Jaeger , + Zack Weinberg + + + * crtstuff.c (__register_frame_info, __register_frame_info_bases) + (__deregister_frame_info, __deregister_frame_info_bases): + Constify void * argument. + * unwind-dw2-fde.h (struct fde_vector): + Constify 'orig_data' and 'array' fields. + (__register_frame_info, __register_frame_info_bases) + (__deregister_frame_info, __deregister_frame_info_bases): + Constify void * argument. + (get_cie, next_fde, _Unwind_Find_FDE): Constify arguments, + return values, and casts of type fde *, struct dwarf_fde *, + and struct dwarf_cie *. + * unwind-dw2-fde.c (__register_frame_info, __register_frame_info_bases) + (__deregister_frame_info, __deregister_frame_info_bases): + Constify void * argument. + (get_cie_encoding, ): Constify struct dwarf_cie * argument. + (get_fde_encoding, fde_unencoded_compare, fde_single_encoding_compare) + (fde_mixed_encoding_compare, fde_compare_t, start_fde_sort, fde_insert) + fde_split, SWAP, frame_downheap, frame_heapsort) + (classify_object_over_fdes, add_fdes, linear_search_fdes, + binary_search_unencoded_fdes, binary_search_single_encoding_fdes, + binary_search_mixed_encoding_fdes, search_object, _Unwind_Find_FDE): + Constify arguments, local variables, return values, and casts + of type fde *, fde **, struct dwarf_fde *, and struct dwarf_cie *. + Use const pointer types in sizeof expressions, for clarity. + * unwind-dw2-fde-glibc.c + (_Unwind_find_registered_FDE, _Unwind_find_FDE): Constify return value. + (struct unw_eh_callback_data): Constify 'ret' field. + +2003-10-31 Fariborz Jahanian + David Edelsohn + + * config/rs6000/rs6000.c (rs6000_mixed_function_arg): New. + (function_arg): Call it. + (rs6000_function_value): Widen integral return value to mode based + on TARGET_32BIT, not word_mode. + * config/rs6000/rs6000.h (PROMOTE_MODE): Likewise. + (UNITS_PER_ARG): New. + (RS6000_ARG_SIZE): Use it. + +2003-10-31 Gerald Pfeifer + + * .cvsignore: No longer ignore gengtype-lex.c, gengtype-yacc.c, + and gengtype-yacc.h. + +2003-10-31 Richard Earnshaw + + PR optimization/8896 + * postreload.c (reload_combine): Check that REGY doesn't die in an + insn of the form (set (regx) (plus (regx) (regy))), ie REGX != REGY. + +2003-10-31 Josef Zlomek + + PR/10239 + * cfgrtl.c (delete_insn): Decrease LABEL_NUSES for all REG_LABEL notes. + +2003-10-31 Josef Zlomek + + PR/11640 + * cfgrtl.c (try_redirect_by_replacing_jump): Move jump + immediatelly before BARRIER. + +2003-10-31 Kelley Cook + + * Makefile.in (STRICT2_WARN): Add -Wold-style-definition. + +2003-10-31 Richard Earnshaw + + PR target/11271 + * reload.c (find_reloads_address): Handle any register in + (PLUS (PLUS (REG) (REG)) (CONST_INT). + +2003-10-31 Richard Earnshaw + + * ggc-page.c (ggc_pch_read): Wrap call to poison_pages in + ENABLE_GC_CHECKING not in GGC_POISON. + +2003-10-31 Nathanael Nerode + + PR bootstrap/9863 + * configure.in: Bail out if awk is missing. + * configure: Regenerate. + + PR ada/12761 + * Makefile.in: Move default definitions of X_ADA_CFLAGS, + T_ADA_CFLAGS, X_ADAFLAGS, T_ADAFLAGS from ada/Make-lang.in to here. + +2003-10-30 Richard Henderson + + * c-objc-common.c (c_tree_printer): Handle types correctly. + Factor code a bit. + +2003-10-30 Kelley Cook + + * value-prof.c, web.c: Update to C90. + +2003-10-30 Eric Christopher + + * function.c (purge_addressof_1): Add case for REG_RETVAL + notes when modes are unequal. + +2003-10-31 Jan Hubicka + + * i386-modes.def: Add XFmode format adjustment. + +2003-10-30 Jan Hubicka + + * real.c (encode_ieee_extended): Back out previous patch. + +2003-10-30 Jan Hubicka + + * real.c (encode_ieee_extended): Initialize whole array. + * reg-stack.c (move_for_stack_reg0: Use always XFmode. + * i386-modes.def: Change definitions of TFmode and XFmode. + * i386.c (classify_argument): Rename TFmodes to XFmodes; add new TFmode + code. + (construct_container): Allow constructing of TFmode integer containers. + (ix86_return_in_memory): XFmode is not returned in memory. + (init_ext_80387_constants): Always use XFmode. + (print_operand): Likewise. + (ix86_prepare_fp_compare_regs): Likewise. + (split_to_parts): Deal with TFmode. + (split_long_move): Simplify. + (ix86_init_mmx_sse_builtins): Add __float80, __float128. + (ix86_memory_move_cost): Do not confuse TFmode. + * i386.h (LONG_DOUBLE_TYPE_SIZE): Set to 96. + (IS_STACK_MODE): TFmode is not stack mode. + (HARD_REGNO_NREGS, CLASS_MAX_NREGS): Deal nicely with XFmode. + (VALID_SSE_REG_MODE): Allow TFmode. + (VALID_FP_MODE_P): Disallow TFmode. + (VALID_INT_MODE_P): Allow TFmode in 64bit mode. + * i386.md (TFmode patterns): Kill. + (movtf, motf_rex64): New patterns. + +2003-10-30 Richard Sandiford + + * config/mips/mips.md (adddi3): Fix typo in mips16 stack pointer code. + +2003-10-30 Richard Sandiford + + * config/mips/mips.md (mov_lwl): Use memory_operand where appropriate. + (mov_lwr, mov_swl, mov_swr): Likewise. + (mov_ldl, mov_ldr, mov_sdl, mov_sdr): Likewise. + +2003-10-30 Richard Sandiford + + * config/mips/mips.c (mips_global_pointer): Don't try to use $25. + +2003-10-30 Richard Henderson + + * config/mips/mips.c (mips_build_builtin_va_list): Use runtime + test for irix6 rather than preprocessor test. + +2003-10-30 Richard Henderson + + * cppcharset.c (one_utf8_to_utf16): Initialize 's' to silence warning. + +2003-10-30 Ulrich Weigand + + * config/s390/s390.c (struct machine_function): Use save_return_addr_p + as a general flag that the return address register needs to be saved, + not necessarily because of __builtin_return_addr (0). + (s390_split_branches): Remove TEMP_REG and TEMP_USED arguments, + remove special handling of zSeries machines. + (s390_optimize_prolog): Remove TEMP_USED argument, treat the return + register as a regular register on zSeries machines. + (s390_reorg): Adjust calls to s390_split_branches and + s390_optimize_prolog. + (s390_frame_info): On zSeries machines, do not assume the return + register is always used. Update regs_ever_live with current data + for the special registers. + (s390_emit_epilogue): Use save_return_addr_p to determine whether + the return register was saved. + * config/s390/s390.h (CONDITIONAL_REGISTER_USAGE): Do not mark + RETURN_REGNUM fixed on zSeries machines. + (REG_ALLOC_ORDER): Use RETURN_REGNUM last. + * config/s390/s390.md ("*doloop_si"): Handle branch overflow + via ahi-jgne pair on zSeries machines. + ("*doloop_di"): Likewise. + ("*doloop_di_long"): Remove. + +2003-10-30 Richard Earnshaw + + * arm.c (arm_override_options): Revert change of arm_constant_limit + when optimizing for size. + +2003-10-29 Richard Henderson + + * fold-const.c (fold_single_bit_test): Convert the input to the + operational intermediate type. + +2003-10-29 Richard Henderson + + * builtins.c (std_build_builtin_va_list): New. + * expr.h (std_build_builtin_va_list): Declare. + * defaults.h (BUILD_VA_LIST_TYPE): New. + * system.h (BUILD_VA_LIST_TYPE): Poison. + * target-def.h (TARGET_BUILD_BUILTIN_VA_LIST): New. + * target.h (struct gcc_target): Add build_builtin_va_list. + * tree.c (build_common_tree_nodes_2): Use it. + + * config/alpha/alpha-protos.h, config/alpha/alpha.c, + config/alpha/alpha.h, config/alpha/unicosmk.h, + config/d30v/d30v-protos.h, config/d30v/d30v.c, config/d30v/d30v.h, + config/i386/i386-protos.h, config/i386/i386.c, config/i386/i386.h, + config/i860/i860-protos.h, config/i860/i860.c, config/i860/i860.h, + config/i960/i960-protos.h, config/i960/i960.c, config/i960/i960.h, + config/mips/iris6.h, config/mips/mips-protos.h, config/mips/mips.c, + config/mips/mips.h, config/rs6000/rs6000-protos.h, + config/rs6000/rs6000.c, config/rs6000/rs6000.h, + config/s390/s390-protos.h, config/s390/s390.c, config/s390/s390.h, + config/sh/sh-protos.h, config/sh/sh.c, config/sh/sh.h, + config/xtensa/xtensa-protos.h, config/xtensa/xtensa.c, + config/xtensa/xtensa.h: Rename foo_build_va_list to + foo_build_builtin_va_list; make it static. Define + TARGET_BUILD_BUILTIN_VA_LIST. Remove BUILD_VA_LIST_TYPE. + Update protos. + + * config/i386/i386.c (ix86_expand_carry_flag_compare): Make static. + * config/iq2000/iq2000.h (BUILD_VA_LIST_TYPE): Remove. + +2003-10-29 James E Wilson + + * recog.c (asm_operand_ok): Add missing break after case 'X'. + Change if statements to else if statements in default case. + (extract_constrain_insn_cached): Fix misspelling of constrain_operands + in comment. + (constrain_operands_cached): Likewise. + (constrain_operands): Change if statements to else if statements in + default case. + * reload.c (find_reloads): Likewise. + +2003-10-29 Richard Henderson + + * config/m68k/m68k.c (notice_update_cc): Clear cc status for + shifts and rotates. + +2003-10-30 Alan Modra + + * config/rs6000/rs6000.md: Remove duplicate pattern. + +2003-10-29 Hans-Peter Nilsson + + * real.c (do_divide): Initialize result with a 0. + + * configure.in : Look for + first. AC_DEFINE HAVE_VALGRIND_MEMCHECK_H + if it exists. + * configure, config.in: Regenerate. + * ggc-common.c [ENABLE_VALGRIND_CHECKING && + HAVE_VALGRIND_MEMCHECK_H]: Include . Use + #elif for other alternatives. + * ggc-page.c: Ditto. + * ggc-zone.c: Don't assume ; instead copy + include structure from ggc-common.c. + +2003-10-29 John David Anglin + + * pa-linux.h (ASM_OUTPUT_ADDR_VEC_ELT): Use label in big switch ELTs. + (ASM_OUTPUT_ADDR_DIFF_ELT): Use label difference in big switch ELTs. + * pa.c (pa_adjust_insn_length): Check for btable branches using + attribute TYPE_BTABLE_BRANCH. + (pa_reorg): Simplify. + * pa.h (CASE_VECTOR_MODE): Change big switch mode to SImode. + (ASM_OUTPUT_ADDR_VEC_ELT): As above. + (ASM_OUTPUT_ADDR_DIFF_ELT): As above. + * pa.md (btable_branch): New instruction type. + (in_branch_delay, in_nullified_branch_delay, in_call_delay): Disallow + btable branches. + (define_delay): Add btable branches to insn types that may have an + insn in the delay position. + (Z2, Z3): Add btable branch to list. + Simplify unamed pattern set copy pic_label_operand to register. Add + PA 2.0 variant. + (short_jump): New jump for use in branch tables. + (casesi, casesi0): Revise for new branch table formats. + (casesi32, casesi32p, casesi64p): New casesi patterns. + (indirect_jump): Move. + +2003-10-29 David Edelsohn + + * config/rs6000/rs6000.h (UNITS_PER_WORD): Revert to + !TARGET_POWERPC64. + (UNITS_PER_GPR_WORD): Delete. + (HARD_REGNO_NREGS): Revert to UNITS_PER_WORD. + (HARD_REGNO_MODE_OK): Same. + (CLASS_MAX_NREGS): Same. + +2003-10-29 John David Anglin + + * pa.h (ASM_COMMENT_START): Define. + +2003-10-29 Zack Weinberg + + * genmodes.c (complete_mode): Record MODE_CC, MODE_INT, + MODE_FLOAT, and MODE_PARTIAL_INT modes as having one + component, not zero. + +2003-10-29 Andreas Schwab + + * config/ia64/t-ia64 (LIB2ADDEH): Add $(srcdir)/gthr-gnat.c. + +2003-10-29 Eric Botcazou + + * config/sparc/sparc.c (function_arg_partial_nregs) [TARGET_ARCH64]: + Never return 1 for complex integral modes whose size is lesser or + equal to a word. + (function_arg_pass_by_reference) [TARGET_ARCH64]: Mention CTImode + in the comment. + (function_arg_advance) [TARGET_ARCH64]: Don't special-case complex + modes. + (sparc_va_arg) [TARGET_ARCH64]: Handle any types whose size is + greater than 16 bytes by reference. + +2003-10-29 Richard Kenner + + * config/ia64/ia64.c (ia64_assemble_integer): Test POINTER_SIZE, + not TARGET_ILP32. + (ia64_initialize_trampoline): Use globalize_label target call. + +2003-10-29 Andreas Schwab + + * doc/install.texi (Building): Add a sentence about building Ada + for a canadian cross. + +2003-10-28 Zack Weinberg + + * config/ia64/ia64.c (cmptf_libfunc): New static. + (ia64_expand_compare): Add logic to open-code calls to + _U_Qfcmp for TFmode comparisons. + (ia64_hpux_init_libfuncs): Initialize cmptf_libfunc. + Set libfuncs for TFmode eq/ne/gt/ge/lt/gt to 0; these should + never be generated anymore. + * config/ia64/ia64.md (cmptf): New expander. + +2003-10-28 Zack Weinberg + + * ia64.md (UNSPEC_SETF_EXP,UNSPEC_FR_SQRT_RECIP_APPROX): New constants. + (*sqrt_approx): New instruction pattern for approximate square roots. + (*setf_exp_xf): New instruction pattern for exponentiation. + (*maddxf4_alts_truncsf): New instruction pattern for truncation. + (sqrtsf2_internal_thr): New define_and_split implementing + throughput-optimized inline calculation of SFmode square root. + (sqrtdf2_internal_thr): Likewise for DFmode. + (sqrtxf2_internal_thr): Likewise for XFmode. + (sqrtsf2, sqrtdf2, sqrtxf2): New expanders to choose between + latency- and throughput-optimized square root algorithms. + * ia64.h (MASK_INLINE_SQRT_LAT, MASK_INLINE_SQRT_THR, + TARGET_INLINE_SQRT_LAT, TARGET_INLINE_SQRT_THR, TARGET_INLINE_SQRT): + New macros. + (TARGET_SWITCHES): Add -minline-sqrt-min-latency and + -minline-sqrt-max-throughput. + * ia64.c (ia64_override_options): If both -minline-sqrt-min-latency + and -minline-sqrt-max-throughput are given, notify the user + that both options cannot be used simultaneously. + If -minline-sqrt-min-latency is given, notify the user that + this mode is not yet implemented. + (rtx_needs_barrier): Reformat initial comment to obey + 72-character width limit. Support UNSPEC_SETF_EXP and + UNSPEC_FR_SQRT_RECIP_APPROX. + +2003-10-29 Alan Modra + + * config/rs6000/rs6000.md (movdf_softfloat64): Allow dummy ctr,ctr + moves. + +2003-10-28 Franz Sirl + + PR target/11598 + PR libgcj/10610 + * config/rs6000/sysv4.h (PREFERRED_STACK_BOUNDARY): New macro. + +2003-10-28 Richard Earnshaw + + * arm.c (arm_output_epilogue): When using a frame pointer, don't emit + an extra stack adjustment insn if the stack pointer is already + pointing at the right place. + (use_return_insn): Allow a return insn to be used when we have a + frame pointer if the stack pointer is in the right place. + (output_return_instruction): Handle it. + +2003-10-28 Andreas Jaeger + + * ggc-zone.c (check_cookies): Add missing variable. + Add void to prototypes. + +2003-10-27 Kaveh R. Ghazi + + * config/mips/irix6-libc-compat.c (inet_makeaddr): Prototype. + * crtstuff.c (__do_global_ctors_1): Move prototype. + * unwind-dw2.c (NO_SIZE_OF_ENCODED_VALUE): Define when + appropriate. + * unwind-sjlj.c (_Unwind_GetCFA, _Unwind_FindEnclosingFunction): + Mark parameter with __attribute__((unused)). + +2003-10-27 Zack Weinberg + + * c-decl.c (pushdecl): Clarify comment. + +2003-10-27 Arnaud Charlet + + * doc/install.texi: Update instructions for Ada cross builds + + PR ada/5909: + * doc/sourcebuild.texi: Document Ada test suite. + +2003-10-27 Stephane Carrez + + * config/m68hc11/m68hc11.c: Convert to ISO C90. + * config/m68hc11/m68hc11-protos.h: Likewise. + +2003-10-27 Jan Hubicka + Eric Botcazou + + * toplev.c (enum dump_file_index, dump_file): Fix ordering of + webizer pass dump. + +2003-10-27 Jakub Jelinek + Jan Hubicka + + * reload1.c (struct elim_table): Change offset, initial_offset and + previous_offset fields to HOST_WIDE_INT. + (offsets_at): Change from int to HOST_WIDE_INT. + (reload): Adjust offsets_at initialization. + (eliminate_regs_in_insn): Change type of offset to HOST_WIDE_INT. + (verify_initial_elim_offsets): Change type of t to HOST_WIDE_INT. + * config/i386/i386.c (ix86_compute_frame_layout): Change offset type + to HOST_WIDE_INT. Don't save regs using mov for huge frame sizes + if TARGET_64BIT. + (pro_epilogue_adjust_stack): New function. + (ix86_expand_prologue, ix86_expand_epilogue): Use it. + * config/i386/i386.md (pro_epilogue_adjust_stack): Remove. + (pro_epilogue_adjust_stack_1): Remove * in front of name. + (pro_epilogue_adjust_stack_rex64): Handle -2147483648 properly. + (pro_epilogue_adjust_stack_rex64_2): New insn. + + * config/i386/i386.c (ix86_expand_epilogue): Fix comment typo. + + * config/i386/i386.c (ix86_expand_call): Replace 40 with + FIRST_REX_INT_REG + 3 /* R11 */. + +2003-10-26 Richard Henderson + + * config/alpha/alpha.md (attr cannot_copy): New. + (call_osf_2_er, call_value_osf_2_er, ldgp_er_1, ldgp_er_2, + prologue_ldgp_er_2, prologue_ldgp_1): Set it. + * config/alpha/alpha.c (alpha_cannot_copy_insn_p): Test it. + +2003-10-26 Daniel Berlin + + * ggc-zone.c: New file, zone allocating collector. + * configure: Accept zone option for --with-gc + * configure.in: Ditto. + * ggc.h (ggc_pch_count_object): Pass bool indicating + stringiness. Update all callers. + (ggc_pch_alloc_object): Ditto. + (ggc_pch_write_object): Ditto. + (ggc_alloc_rtx): Use typed allocation, since all RTX's are of a single + type. + (ggc_alloc_rtvec): Ditto. + (ggc_alloc_tree): Use zone allocation, since some things using this macro + aren't a single typecode. + * ggc-none.c (ggc_alloc_typed): New function. + (ggc_alloc_zone): Ditto. + * ggc-page.c: Ditto on both functions. + +2003-10-26 Gunther Nikl + + * config/m68k/m68k.c (m68k_compute_frame_layout): Ensure FPU related + frame information is always valid. + (m68k_output_function_prologue): Remove superfluous TARGET_68881 + test; fix formatting. + +2003-10-26 Gunther Nikl + + * config/m68k/m68k.c (m68k_compute_frame_layout): Swap reg_mask and + reg_rev_mask computation. + (m68k_output_function_prologue): Fix usage of current_frame (one typo + and one missing); use reg_rev_mask not reg_mask. + (m68k_output_function_epilogue): Fix usage of current_frame; + use fpu_rev_mask not fpu_mask. + +2003-10-26 Bernardo Innocenti + + * config/m68k/m68k.c (m68k_output_function_prologue): Eliminate + num_saved_regs, use current_frame.reg_no instead. + +2003-10-26 Bernardo Innocenti + Paul Dale + + * doc/extend.texi (interrupt_handler): Add m68k to the + list of processors implementing it. + * doc/invoke.texi (-msep-data): Document new m68k option. + (-mno-sep-data): Likewise. + (-mid-shared-library): Likewise. + (-mno-id-shared-library): Likewise. + (-mshared-library-id): Likewise. + +2003-10-26 Andreas Jaeger + + * unwind-dw2.c (_Unwind_GetGR): Avoid warning about unsigned + comparison. + (_Unwind_SetGR): Likewise. + +2003-10-26 Ottavio Campana + + PR target/12690 + * config/i386/mmintrin.h (_mm_set1_pi8): Fix comment. + +2003-10-26 Gunther Nikl + + * config/m68k/m68k.c (m68k_output_function_prologue): Move front + comment from here to... + (m68k_save_reg): ...here. Fix comment formatting. + (m68k_output_function_prologue): Fix comment formatting. + (m68k_output_function_epilogue): Likewise. + (const_method): Likewise. + +2003-10-26 Kazu Hirata + + * toplev.c (default_get_pch_validity): Guard the use of + target_options with #ifdef TARGET_OPTIONS. + (default_pch_valid_p): Likewise. + +2003-10-26 Andreas Jaeger + Zack Weinberg + Andreas Tobler + + * dwarf2out.c (output_cfi): Use HOST_WIDE_INT_PRINT. + (output_die): Likewise. + (print_die): Likewise. + +2003-10-26 Andreas Jaeger + + * tree.h (dwarf2out_def_cfa, dwarf2out_args_size, + dwarf2out_reg_save, new_loc_descr): Update prototypes for recent + dwarf2out.c change. + + * toplev.c (default_pch_valid_p): Fix warning. + +2003-10-25 Roger Sayle + + * simplify-rtx.c (simplify_replace_rtx): Avoid allocating duplicate + RTL nodes. If an operator's operands are unchanged, return the + original argument unchanged. + +2003-10-26 Graham Stott + + Fix bootstrap failure. + * expmed.c (store_bit_field): Don't compare bitsize against + modes with zero bit-size. + + (extract_bit_field): Likewise + +2003-10-25 Jan Hubicka + + * dwarf2out.c (dw_cfi_oprnd_struct): Offset is HOST_WIDE_INT. + (cfa_loc): Likewise. + (reg_save, stack_adjust_offset, queue_reg_save): Replace long by + HOST_WIDE_INT. + (args_size, old_args_size): change type to HOST_WIDE_INT. + (dwarf2out_def_cfa, dwarf2out_args_size, + dwarf2out_reg_save, new_loc_descr): offset is HOST_WIDE_INT. + (dw_val_struct): integers, unsigneds and offsets are HOST_WIDE_INT. + (add_AT_int, add_AT_unsigned, att_AT_offset, AT_int, AT_unsigned, + AT_offset): Use HOST_WIDE_INT. + (based_loc_descr): offset is HOST_WIDE_INT. + (add_data_member): Likewise. + (add_const_value_attribute): Simplify. + +2003-10-25 Richard Henderson + + * config/i386/i386.c (ix86_eax_live_at_start_p): New. + (ix86_expand_prologue): Save and restore eax around stack probe + if it's live. + +2003-10-25 Jan Hubicka + + * cppcharset.c (one_utf8_to_utf32): Initialize 's' to silence warning. + +2003-10-25 Eric Botcazou + + PR target/12712 + * reg-stack.c (convert_regs_1): Create an arbitrary input stack + if the block has no predecessors. + (convert_regs_2): Document the problem with successors whose + only predecessor is the block to be processed. + (convert_regs): Don't create the arbitrary input stack here. + +2003-10-24 Zack Weinberg + + * genmodes.c (struct mode_data): Add contained and next_cont + fields. + (complete_mode): Maintain linked list of modes that have a + given component. + (emit_mode_unit_size): Delete. + (emit_mode_nunits): New. + (emit_insn_modes_c): Update to match. + (emit_mode_adjustments): Propagate size and alignment + adjustments from component modes to their containers. + * machmode.h (mode_unit_size): Delete. + (mode_nunits): New. + (GET_MODE_NUNITS): Just return the value in the table. + (GET_MODE_UNIT_SIZE): Compute using GET_MODE_INNER and + GET_MODE_SIZE. + * expmed.c (store_bit_field, extract_bit_field): Can use a + plain move instruction if bitsize >= GET_MODE_BITSIZE of + destination/source mode, respectively. + * varasm.c (assemble_real): Write out the full size of the + constant, not just its bitsize. + (output_constant): Honor TYPE_MODE of TREE_REAL_CSTs. + + * config/ia64/ia64-modes.def: Define XFmode as well as TFmode. + Use ADJUST_BYTESIZE and ADJUST_ALIGNMENT to set size and + alignment of XF and TF modes in compliance with ia64 ABIs. + Can now hardwire the format of both modes. + * config/ia64/ia64.c: Change TFmode to XFmode wherever appropriate. + (general_tfmode_operand, destination_tfmode_operand) + (tfreg_or_fp01_operand, spill_tfmode_operand): Rename to + general_xfmode_operand, destination_xfmode_operand, + xfreg_or_fp01_operand, spill_xfmode_operand respectively. + (ia64_init_builtins): Make TYPE_PRECISION of fpreg_type + and float80_type be 96 so they get XFmode. Use !TARGET_HPUX, + not INTEL_EXTENDED_IEEE_FORMAT, to decide how to define + __float128. + * config/ia64/ia64.h: Default TARGET_HPUX to 0. + Change TFmode to XFmode wherever appropriate. Remove all + references to INTEL_EXTENDED_IEEE_FORMAT. + (LONG_DOUBLE_TYPE_SIZE): Varies with TARGET_HPUX. + (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define (always 96). + (PREDICATE_CODES): Update to match function renames. + * config/ia64/ia64.md: Change TF to XF throughout; rename all + patterns to match. Remove all references to + INTEL_EXTENDED_IEEE_FORMAT. Update predicate calls to match + function renames. + * config/ia64/ia64-protos.c: Update all prototypes to match + renamed functions. + * config/ia64/hpux.h: Redefine TARGET_HPUX to 1. + Remove all references to INTEL_EXTENDED_IEEE_FORMAT. + * config/ia64/lib1funcs.asm: Add __divxf3 as new name for + __divtf3; keep old name for backward compatibility. + (L__compat): New section providing forwarding stubs for + __fixtfti, __fixunstfti, __floattitf. + * config/ia64/t-ia64: Add __compat to LIB1ASMFUNCS. + +2003-10-24 Geoffrey Keating + + PR 10757 + * c-pch.c: Include target.h. Improve comments. + (struct c_pch_validity): Add target_data_length. + (pch_init): Add target's validity data. + (c_common_valid_pch): Check target's validity data. + * target-def.h (TARGET_GET_PCH_VALIDITY): New. + (TARGET_PCH_VALID_P): New. + (TARGET_INITIALIZER): Add new fields. + * target.h: Include tm.h. + (struct gcc_target): Add get_pch_validity, pch_valid_p. + * toplev.h (default_get_pch_validity): New prototype. + (default_pch_valid_p): New prototype. + * toplev.c (default_get_pch_validity): New routine. + (default_pch_valid_p): New routine. + * Makefile.in (TARGET_H): Add TM_H. Replace all users of + target.h with $(TARGET_H). + (c-pch.o): Add TARGET_H. + * doc/tm.texi (PCH Target): New node. + (TARGET_GET_PCH_VALIDITY): Document. + (TARGET_PCH_VALID_P): Document. + +2003-10-24 Kelley Cook + + * Makefile.in: Define a vpath for %.texi. Remove explicit $(docdir) + and $(docdir)/include from any *.texi dependencies. + ($(docobjdir)/%.dvi): Depend on stmp-docobjdir. + ($(docobjdir)/%.1): Depend on .pod instead of .texi. + ($(docobjdir)/%.7): Likewise. + (%.pod): New implicit rule. + (cpp.pod): New dependency only rule. + (gcc.pod): New intermediate rule with dependencies and commands. + (gfdl.pod): Likewise. + (fsf-funding.pod): Likewise. + +2003-10-24 Nathanael Nerode + + * fixinc/mkfixinc.sh: Remove special cases for svr4 and ptx, and + related code. + * fixinc/fixinc.ptx: Remove. + * fixinc/fixinc.svr4: Remove. + +2003-10-24 Ulrich Weigand + + * config/s390/s390.c (load_multiple_operation): Allow both SImode + and DImode if word_mode is DImode. + (store_multiple_operation): Likewise. + * config/s390/s390.md ("load_multiple", "store_multiple"): Likewise. + ("*load_multiple_di"): Allow only if word_mode == DImode. + ("movqi"): Use LLGC whenever TARGET_ZARCH. + ("fix_truncdfsi2"): Fix incorrect temporary size. + ("fix_truncsfsi2"): Likewise. + ("*bras_r", "*brasl_r", "*basr_r"): Remove predicate and constraint + string for function return value operand. + ("*bras_tls", "*brasl_tls", "*basr_tls"): Likewise. + +2003-10-24 Joseph S. Myers + + * c-parse.in (array_declarator): Use expr_no_commas. + Fixes PR c/11943. + +2003-10-24 Richard Sandiford + + * config/mips/linux.h: Wrap MD_FALLBACK_FRAME_STATE_FOR and + associated includes in #ifndef inhibit_libc. + +2003-10-24 Roger Sayle + + * doc/libgcc.texi: Document some more of the libgcc API. + +2003-10-24 Richard Earnshaw + + * arm.c (arm_rtx_costs_1, case TARGET_THUMB): Adjust costs for + comparing a constant with small negative numbers and add costing + for constants in conjunction with AND. + (note_invalid_constants): Tidy previous change. + (thumb_cmp_operand): Tidy. + (thumb_cmpneg_operand): New function. + * arm.h (CONDITIONAL_REGISTER_USAGE): Don't use HI regs if optimizing + for size. + (FIRST_LO_REGNUM, FIRST_HI_REGNUM, LAST_HI_REGNUM): Define. + (PREDICATE_CODES): Add thumb_cmpneg_operand. + * arm.md (cbranchsi4): Convert to define_expand. Handle comparison + with a negative constant. + (cbranchsi4_insn): Matcher for cbranchsi4. + (cbranchsi4_scratch): Similar, but a scratch is available for + handling negative constants. + (movsi_cbranchsi4): New pattern. + (tstsi3_cbranch): Renamed from andsi3_cbranch_scratch, remove scratch + and use the TST instruction. + (andsi3_cbranch, orrsi3_cbranch, xorsi3_cbranch, cbranchne_decr1) + (addsi3_cbranch, subsi3_cbranch): Ensure that register preferencing + cannot see high regs or memory alternatives. + (bicsi3_cbranch_scratch, bicsi3_cbranch): New patterns. + +2003-10-24 Richard Earnshaw + + * arm.c (note_invalid_constants): Try to extract the constant + pool value using avoid_constant_pool_reference; only use + get_pool_constant if that returns the original reference. + +2003-10-24 Jan Hubicka + + PR c++/12624 + * varasm.c (notice_global_symbol): Disqualify global registers. + +2003-10-23 Roger Sayle + + PR middle-end/11414 + * loop.c (load_mems): Use redirect_jump to forward jumps from + the original loop end label to the new "loop sink" block's label. + +2003-10-23 Roger Sayle + + PR middle-end/12705 + * optabs.c (expand_binop): When expanding complex operations + inline, always calculate result into a new temporary register. + Minor code clean-ups. + +2003-10-24 Rainer Orth + + * objc/lang-specs.h: Handle -print-objc-runtime-info. + * doc/invoke.texi (Objective-C Dialect Options): Document it. + +2003-10-24 Danny Smith + + * config/i386/cygwin.asm: Add copyright notice. Add comment + on why this code is needed. + +2003-10-23 Kazu Hirata + + * config/h8300/clzhi2.c: Fix warnings. + * config/h8300/ctzhi2.c: Likewise. + * config/h8300/fixunssfsi.c: Likewise. + * config/h8300/parityhi2.c: Likewise. + * config/h8300/popcounthi2.c: Likewise. + +2003-10-23 James E Wilson + + * gcc.c (option_map): Delete --target and --use-version. + +2003-10-23 Fariborz Jahanian + David Edelsohn + + * config/rs6000/rs6000.h (UNITS_PER_WORD): Use TARGET_32BIT, not + TARGET_POWREPC64. + (UNITS_PER_GPR_WORD): Define. + (HARD_REGNO_NREGS): Use UNITS_PER_GPR_WORD. + (HARD_REGNO_CALL_PART_CLOBBERED): Define. + (HARD_REGNO_MODE_OK): Use UNITS_PER_GPR_WORD. + (CLASS_MAX_NREGS): Use UNITS_PER_GPR_WORD. + * config/rs6000/rs6000.c (function_arg): Generate PARALLEL for + DFmode and DImode in 32-bit ABI / 64-bit computation mode. + (rs6000_emit_prologue): Select reg_mode and reg_size using + TARGET_32BIT, not TARGET_POWERPC64. + (rs6000_function_value): Generate PARALLEL for DImode in 32-bit + ABI / 64-bit computation mode + +2003-10-22 Andrew Haley + + * toplev.c (output_file_directive): Allow for null input_name. + +2003-10-22 Waldek Hebisch + + * config/i386/i386.c (classify_argument): Handle SET_TYPE. + +2003-10-22 Chris Demetriou + + * configure.in: In --enable-generated-files-in-srcdir option + handling, fix default case handling. + * configure: Regenerate. + +2003-10-22 Phil Edwards + + * config.gcc: Update *-*-vxworks* generic hook and comments. + (arm-wrs-vxworks, i[4567]86-wrs-vxworks, mips-wrs-vxworks, + mips-wrs-windiss, sh-wrs-vxworks): New stanzas. + * genmultilib: Allow the MULTILIB_OSDIRNAMES to be mapped directly. + * config/svr4.h (SWITCH_TAKES_ARG): Undefine it before redefining it. + * config/windiss.h: New file. + * config/arm/t-vxworks: New file. + * config/arm/vxworks.h: New file. + * config/i386/t-vxworks: New file. + * config/i386/vxworks.h: New file. + * config/mips/t-vxworks: New file. + * config/mips/vxworks.h: New file. + * config/mips/windiss.h: New file. + * config/sh/t-vxworks: New file. + * config/sh/vxworks.h: New file. + +2003-10-22 Kazu Hirata + + * config/h8300/h8300.c (h8300_output_function_epilogue): Remove. + (h8300_saveall_function_p): New. + (h8300_insert_attributes): Insert the saveall attribute if + #pragma saveall is specified. + (h8300_attribute_table): Add saveall. + (TARGET_ASM_FUNCTION_EPILOGUE): Remove. + * doc/extend.texi: Mention the saveall attribute. + +2003-10-22 Joseph S. Myers + + * c-typeck.c (pedantic_lvalue_warning): Unconditionally warn of + deprecation of casts as lvalues. + * fixinc/inclhack.def (obstack_lvalue_cast): New fix. + * fixinc/fixincl.x: Regenerate. + * fixinc/tests/base/obstack.h: New test. + +2003-10-22 Andreas Schwab + + PR target/12676 + * config/m68k/m68k.c (output_addsi3): Fix range check to work on + LP64 platforms. + +2003-10-22 Jan Hubicka + + * dwarf2out.c (dwarf2out_abstract_function): Use DW_AT to check + presence of DW_AT_inline. + (gen_subprogram_die): Likewise; do not abort instead of emitting + DW_AT_not_inline. + +2003-10-22 Jan Hubicka + + * cgraph.c (cgraph_function_possibly_inlined_p): Be conservative when + global info is not ready. + +2003-10-22 Kazu Hirata + + * doc/extend.texi: Mention H8S wherever H8/300H is mentioned. + +2003-10-22 Ulrich Weigand + + * config/s390/s390.md ("movstr_short_64", "movstr_short_31"): Merge ... + ("*movstr_short"): ... into this insn pattern. + ("movstr_short"): New expander. + ("*movstr_long_64"): Rename from "movstr_long_64", simplify. + ("*movstr_long_31"): Rename from "movstr_long_31", simplify. + ("movstr_long"): New expander. + ("clrstr_short_64", "clrstr_short_31"): Merge ... + ("*clrstr_short"): ... into this insn pattern. + ("clrstr_short"): New expander. + ("*clrstr_long_64"): Rename from "clrstr_long_64", simplify. + ("*clrstr_long_31"): Rename from "clrstr_long_31", simplify. + ("clrstr_long"): New expander. + ("cmpmem_short_64", "cmpmem_short_31"): Merge ... + ("*cmpmem_short"): ... into this insn pattern. + ("cmpmem_short"): New expander. + ("*cmpmem_long_64"): Rename from "cmpmem_long_64". + ("*cmpmem_long_31"): Rename from "cmpmem_long_31". + ("cmpmem_long"): New expander. + * config/s390/s390.c (s390_expand_movstr): Use new expanders. + (s390_expand_clrstr): Likewise. + (s390_expand_cmpmem): Likewise. + +2003-10-22 Mark Mitchell + + * c-pch.c (struct c_pch_validity): Add pch_init field. + (pch_init): Set it. + (c_common_valid_pch): Check it. + +2003-10-22 David Taylor + + PR debug/12500 + * dbxout.c (dbxout_typedefs): Use COMPLETE_OR_VOID_TYPE_P. + +2003-10-22 Richard Kenner + + * config/alpha/alpha.c (function_value [ENABLE_CHECKING]): Don't call + alpha_return_in_memory if no VALTYPE specified. + +2003-10-22 Jan Hubicka + + PR debug/12389 + * Makefile.in (dwarf2out.o): Depend on cgraph.h. + * cgraph.c (cgraph_function_possibly_inlined_p): New function. + * cgraph.h (cgraph_function_possibly_inlined_p): Declare. + (cgraph_global_info): Add flag inlined + * dwarf2out.c (gen_subprogram_die, gen_decl_die): Use + cgraph_function_possibly_inded_p + * cgraphunit.c (mark_inline): Set inlined flag. + * toplev.c (rest_of_decl_compilation): Call outlining_inline_function + only for possibly inlined functions. + * c-decl.c (duplicate_decls): Never output abstract DIE representing old + body of function. + +2003-10-22 Andrew Haley + + * varasm.c (output_constructor): Make constructor annotation + conditional on ASM_COMMENT_START. + +2003-10-21 Jason Merrill + + * tree.c (get_unwidened): Check TREE_UNSIGNED on the field's type. + (get_narrower): Likewise. + + * stor-layout.c (layout_decl): Do packed field alignment for + bit-fields, too. + +2003-10-21 Eric Christopher + + * expr.c (convert_move): Use FLOAT_EXTEND for extensions. + +2003-10-21 Geoffrey Keating + + * c-pch.c: Add comments in various places. + (struct c_pch_validity): Add the lengths of various strings. + (host_machine): New static. + (target_machine): New static. + (get_ident): Bump version number. + (pch_init): Write out version, host, target validity data. + (c_common_valid_pch): Check version, host, target. + * Makefile.in (c-pch.o): Add version.h; define HOST_MACHINE and + TARGET_MACHINE. + +2003-10-21 Jason Merrill + + * tree.h (IS_EXPR_CODE_CLASS): Use strchr. + (EXPR_P): New macro. + +2003-10-21 Zack Weinberg + + * config/ia64/ia64.md (cmpxchg_acq_si): Mark operand 3 as DImode. + * config/ia64/ia64.c (ia64_expand_fetch_and_op, + ia64_expand_op_and_fetch): Make sure the REG for ar.ccv is + DImode. Use convert_move to load ar.ccv. + (ia64_expand_compare_and_swap): Likewise. + If expand_expr doesn't put 'old' and 'new' in the proper + modes, run them through convert_to_mode. + +2003-10-21 Eric Christopher + + * config/frv/frv.c (frv_adjust_field_align): Check DECL_ARTIFICIAL + for too large bitfields. + +2003-10-21 Mark Mitchell + + * Makefile.in ($(docobjdir)/%.info): Honor BUILD_INFO. + +2003-10-21 Andrew Haley + + * varasm.c (output_constructor): Annotate constructor. + +2003-10-21 Mark Mitchell + + * Makefile.in ($(DESTDIR)$(infodir)/%.info): Conditionalize chmod + on existence of destination file. + +2003-10-21 Jan Hubicka + + * haifa-sched.c (choose_ready): Initialize index. + +2003-10-21 Jason Merrill + + * tree.c (build1): Fix off-by-one error. + +2003-10-21 Robert Millan + + * config/i386/kfreebsdgnu.h: New. i386-*-kfreebsd-gnu definitions. + * config/kfreebsdgnu.h: New. *-*-kfreebsd-gnu definitions. + * config/t-kfreebsd-gnu: New. *-*-kfreebsd-gnu tmake_file. + * config.gcc: Add *-*-kfreebsd*-gnu and i[34567]86-*-kfreebsd*-gnu. + +2003-10-21 Eric Botcazou + + * web.c: Fix various comments. + +2003-10-20 Nicolas Pitre + + * config/arm/arm.c (arm_override_options): Set arm_constant_limit + to 2 instead of 1 when optimize_size is true. Gather code based on + optimize_size together. Add comment about XScale load latency. + +2003-10-21 Gunther Nikl + + * config/m68k/m68k.c (m68k_output_function_prologue): Remove + obsolete comments. + +2003-10-20 Kelley Cook + + * Makefile.in: Get parsedir and docobjdir from configure. + * configure.in: Recogonize --enable-generated-files-in-srcdir. + Pass along parsedir and docobjdir. + * configure: Regenerate. + * doc/install.texi: Document --enable-generated-files-in-srcdir. + +2003-10-20 Kelley Cook + + * Makefile.in: Define $(docdir) before the Make-lang.in fragments are + included. + +2003-10-20 Joseph S. Myers + + * c-common.c (expand_tree_builtin): Ensure creal and cimag + functions do not return lvalues. + +2003-10-20 Jason Merrill + + PR c/12553 + * tree.c (build1) : Set TREE_SIDE_EFFECTS + appropriately. + + PR c/11446 + * stor-layout.c (layout_decl): Fix alignment handling. + +2003-10-20 Joseph S. Myers + + * doc/extend.texi: Deprecate casts as lvalues. + +2003-10-20 Jan Hubicka + + * toplev.c (rest_of_compilation): Fix webizer pass ordering. + + * cgraphunit.c (decide_is_function_needed): Fix test dealing + with functions implicitly made inline. + + * cgraphunit.c (cgraph_decide_inlining_incrementally): New function. + (cgraph_finalize_function): Use it. + (cgraph_mark_inline): Allow incrmental decisions + * invoke.texi (max-inline-slope, min-inline-insns): Kill. + * params.def (PARAM_MAX_INLINE_SLOPE, PARAM_MIN_INLINE_INSNS): Kill. + * tree-inline.c (limits_allow_inlining): Kill. + (expand_call_inline): Always use unit-at-a-time path. + +2003-10-20 Zack Weinberg + + * fixinc/inclhack.def (hpux11_snprintf): New edit. + * fixinc/fixincl.x: Regenerate. + * fixinc/tests/base/stdio.h: Add test for hpux11_snprintf. + +2003-10-20 Mark Mitchell + + * Makefile.in (install-info): Simplify. + ($(DESTDIR)$(infodir)/%.info): New rule. + * configure.in (target_list): Remove install-info. + * doc/.cvsignore (gcc.info*): Remove. + (gccint.info*): Likewise. + (gccinstall.info*): Likewise. + (cpp.info*): Likewise. + (cppinternals.info*): Likewise. + (*.info*): Add it. + * doc/sourcebuild.texi: Update description of install-info. + * objc/Make-lang.in (objc.install-info): Remove. + +2003-10-20 Rainer Orth + + * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Define _ABIO32. + Use it in _MIPS_SIM definition. + * config/mips/mips.h (CRT_CALL_STATIC_FUNCTION): Likewise. + +2003-10-20 Zack Weinberg + + * config/i386/i386.c (print_reg): Abort if REGNO (x) is a + virtual register, but only if file == asm_out_file. + * config/i386/i386.h (HI_REGISTER_NAMES): Use "argp", not "", + for ARG_POINTER_REGNUM. + +2003-10-20 Zack Weinberg + + * c-common.c (registered_builtin_types): New static. + (c_common_type_for_mode): Consult registered_builtin_types. + (c_register_builtin_type): Add type to registered_builtin_types. + * optabs.c (init_floating_libfuncs): Initialize libfuncs for + all MODE_FLOAT modes, not just the ones corresponding to + float_type_node, double_type_node, and long_double_type_node. + +2003-10-20 Richard Henderson + + * config/alpha/alpha.h (PREDICATE_CODES): Add normal_memory_operand. + * config/alpha/alpha-protos.h: Remove PREDICATE_CODES prototypes. + +2003-10-20 Dorit Naishlos + + * config/rs6000/rs6000.h: (rs6000_sched_insert_nops): + support new flag -minsert-sched-nops. + (DEFAULT_SCHED_FINISH_NOP_INSERTION_SCHEME): Define. + * config/rs6000/rs6000.c: (rs6000_sched_insert_nops): + support new flag -minsert-sched-nops. + (is_cracked_insn, is_microcoded_insn): New functions. + (rs6000_sched_finish): New function. + (rs6000_issue_rate): Return 5 for power4. + (get_next_active_insn, insn_terminates_group_p): New + functions. + (is_costly_group, force_new_group): New functions. + (redefine_groups, pad_groups): New functions. + (rs6000_variable_issue): Use new functions. + * doc/invoke.texi (-minsert-sched-nops): Document new + option. + +2003-10-20 David S. Miller + + * config/sparc/sparc.md (type attribute): Add new insn types + fpa, fpm_pack, fgm_mul, fgm_pdist, and fgm_cmp for VIS. + (patterns emitting VIS insns): Use them. + * config/sparc/ultra1_2.md: Add VIS scheduling rules. + * config/sparc/ultra3.md: Likewise. + +2003-10-20 Falk Hueffner + + PR target/12654 + * config/alpha/alpha.c (alpha_emit_conditional_branch): Don't do + comparison against constant by adjusting the argument except for + EQ and NE. + +2003-10-19 Mark Mitchell + + * config.gcc: Add support for arm926ejs, arm1026ejs, arm1136js, + arm1136jfs, and armv6j. + * config/arm/arm.c (FL_ARCH6J): New macro. + (FL_VFPV2): Likewise. + (all_cores): Add entries for arm926ejs, arm1026ejs, arm1136js, + and arm1136jfs. + (all_architectures): Add entry for armv6j. + (arm_override_options): Add entries for arm926ejs, arm1026ejs, + arm1136js, and arm1136jfs. + * config/arm/arm.h (TARGET_CPU_arm926ej_s): New macro. + (TARGET_CPU_arm1026ej_s): Likewise. + (TARGET_CPU_arm1136j_s): Likewise. + (TARGET_CPU_arm1136jf_s): Likewise. + * doc/invoke.texi: Document new ARM cores and architecture + variants. + +2003-10-19 Zdenek Dvorak + + * Makefile.in (toplev.o): Add value-prof.h dependency. + (value-prof.o): Add REGS_H dependency. + * common.opt (fprofile-values, fvpt): New. + * flags.h (flag_value_profile_transformations): Declare. + * opts.c (common_handle_option): Handle -fprofile_values and + -fvpt. + * profile.c (branch_prob): Don't remove death notes here. + * timevar.def (TV_VPT): New. + * value-prof.c: Include regs.h. + (insn_divmod_values_to_profile, gen_divmod_fixed_value, gen_mod_pow2, + gen_mod_subtract, divmod_fixed_value_transform,mod_pow2_value_transform, + mod_subtract_transform, value_profile_transformations): New. + (insn_values_to_profile): Call insn_divmod_values_to_profile. + (find_values_to_profile): Add dumps. + * value-prof.h (value_profile_transformations): Declare. + * toplev.c: Include value-prof.h. + (rest_of_handle_value_profile_transformations): New. + (enum dump_file_index): Add DFI_vpt. + (dump_file): Add vpt dump. + (flag_value_profile_transformations): New. + (lang_independent_options): Add flag_profile_values and + flag_value_profile_transformations. + (rest_of_compilation): Call + rest_of_handle_value_profile_transformations. + (process_options): Let -fvpt imply -fprofile-values. + * doc/invoke.texi (-fvpt): Document. + +2003-10-19 Jan Hubicka + + * i386.c (print_reg): Do not abort on certain registers. + + PR optimization/12612 + * reg-stack.c (subst_stack_regs_pat): Use st(1) for clobbers. + * i386.md (fpatan, fyl2x, fscale patterns and expanders): Use + match_scratch; avoid bogus paralles. + + PR target/12674 + * i386.c (ix86_function_regparm): Disable implicit register passing + conventions when profiling. + +2003-10-19 Eric Botcazou + Richard Henderson + + PR optimization/8178 + * config/i386/i386.md (*movsi_zero): Delete. + (*ffs_no_cmove): Use ix86_expand_clear to zero the third operand. + +2003-10-19 Richard Henderson + + * config/alpha/alpha.c (fix_operator): New. + (divmod_operator): Tidy. + (alpha_emit_xfloating_cvt): Handle UNSIGNED_FIX. + * config/alpha/alpha.h (FIXUNS_TRUNC_LIKE_FIX_TRUNC): Remove. + (PREDICATE_CODES): Update. + * config/alpha/alpha.md (fix_truncdfsi_ieee): Use match_operator. + (fix_truncdfsi_internal, fix_truncdfdi_ieee): Likewise. + (fix_truncsfsi_ieee, fix_truncsfsi_internal): Likewise. + (fix_truncsfdi_ieee): Likewise. + (fix_truncdfdi2, fix_truncsfdi2): Turn into define_expand. + (fixuns_truncdfdi2, fixuns_truncsfdi2, fixuns_trunctfdi2): New. + * config/alpha/alpha-protos.h: Update. + +2003-10-19 Richard Sandiford + + * config/mips/mips.h (INITIALIZE_TRAMPOLINE): Simplify. + * config/mips/mips.c (mips_load_got): Assume Pmode == ptr_mode. + * config/mips/mips.md (extendsidi2, *extendsidi2): Merge. Don't accept + constant operands. + +2003-10-18 Kazu Hirata + + * doc/extend.texi: Fix typos. + * doc/invoke.texi: Likewise. + +2003-10-18 Nicolas Pitre + + * config/arm/arm.c (arm_override_options): Use arm_tune_xscale for + XScale optimizations not arm_arch_xscale. + * config/arm/arm.h (CONSTANT_ALIGNMENT_FACTOR, MOVE_RATIO): Likewise. + +2003-10-18 Ulrich Weigand + + * config/s390/s390-protos.h (shift_count_operand): Add prototype. + * config/s390/s390.c (shift_count_operand): New function. + (s390_extra_constraint): Use it to implement 'Y' constraint. + (print_shift_count_operand): New function. + (print_operand): Use it to implement '%Y'. + * config/s390/s390.h (EXTRA_ADDRESS_CONSTRAINT): Add 'Y' constraint. + (PREDICATE_CODES): Add shift_count_operand. + * config/s390/s390.md ("rotldi3"): Merge alternatives, + using "shift_count_operand" predicate and "Y" constraint, + and "%Y" to output the combined shift count. + ("rotlsi3"): Likewise. + ("ashldi3", "*ashldi3_31", "*ashldi3_64"): Likewise. + ("ashrdi3", "*ashrdi3_31", "*ashrdi3_64", "*ashrdi3_cc_31", + "*ashrdi3_cc_64", "*ashrdi3_cconly_31", "*ashrdi3_cconly_64"): Likewise. + ("ashlsi3", "ashrsi3", "*ashrsi3_cc", "*ashrsi3_cconly"): Likewise. + ("lshrdi3", "*lshrdi3_31", "*lshrdi3_64"): Likewise. + ("lshrsi3"): Likewise. + +2003-10-18 Gunther Nikl + + * config/m68k/m68k.c (m68k_output_function_epilogue): Add missing + argument to asm_fprintf statement. + +2003-10-18 Fariborz Jahanian + + * rs6000.md: Separate TARGET_POWERPC64 patterns for TARGET_64BIT or TARGET_32BIT. + (ashrdisi3_noppc64) Generate more efficient code for 32-bit right-shift of + a "long long" argument. + +2003-10-18 Alexandre Oliva + + * final.c (final_scan_insn): Run FINAL_PRESCAN_INSNS on asm insns + as well. + +2003-10-18 Richard Sandiford + + * rtl.h (rtl_size): Declare. + (rtunion): Remove rtwint. + (rtx_def): Replace 'fld' with a union of an rtunion or a HOST_WIDE_INT. + (RTX_HDR_SIZE, RTX_SIZE): New macros. + (RTL_CHECK1): Adjust for new rtx_def layout. + (RTL_CHECK2, RTL_CHECKC1, RTL_CHECKC2): Likewise. + (XWINT, XCWINT): Likewise. Access the rtx structure directly. + (X0WINT): Remove. + (X0ANY): New macro. + * rtl.def: Adjust comments for new rtx_def layout. + * ggc.h (ggc_alloc_rtx): Take the rtx code as argument, not the + number of slots. + * rtl.c (rtx_size): New array. + (rtx_alloc): Adjust call to ggc_alloc_rtx. Use RTX_HDR_SIZE. + (copy_rtx): Use RTX_HDR_SIZE. Adjust for new rtx_def layout. + (shallow_copy_rtx): Adjust call to ggc_alloc_rtx. Use RTX_SIZE. + * integrate.c (copy_rtx_and_substitute): Use X0ANY to copy '0' fields. + * emit-rtl.c (copy_most_rtx): Likewise. + (copy_rtx_if_shared): Use RTX_SIZE. + (copy_insn_1): Use RTX_HDR_SIZE. Adjust for new rtx_def layout. + * gengenrtl.c (gendef): Adjust ggc_alloc_rtx call. Use RTX_HDR_SIZE. + * gengtype.c (write_rtx_next): Use RTX_HDR_SIZE. + (adjust_field_rtx_def): Expect "rtx_def" to be a union rather than + an array. Adjust output for new rtx_def layout. + * ggc-page.c (RTL_SIZE): Use RTX_HDR_SIZE. + * reload1.c (eliminate_regs): Use RTX_SIZE. + * rtlanal.c (loc_mentioned_in_p): Adjust for new rtx_def layout. + * gdbinit.in (pi): Likewise. + +2003-10-18 Jan Hubicka + + * integrate.c (copy_decl_for_inlining): Revert previous patch. + +2003-10-18 Jan Hubicka + + * integrate.c (copy_decl_for_inlining): Fix copying of copies. + +2003-10-18 Roger Sayle + + * libgcc.texi: Group multi-word types, such as "long double" and + "unsigned int", using braces in @deftypefn and @deftypefnx nodes. + Document __unord?f2 as returning a non-zero value, not just one. + +2003-10-18 Hans-Peter Nilsson + + * config/mmix/t-mmix (CRTSTUFF_T_CFLAGS): Define. + ($(T)crti.o, $(T)crtn.o): Pass CRTSTUFF_T_CFLAGS here too. + +2003-10-18 Eric Botcazou + + * config/i386/k6.md (k6_alux): Use the 'mode' attribute instead of + match_operand. + +2003-10-18 Eric Botcazou + + * config/sparc/sparc.c (function_arg_record_value_1): New fourth + parameter packed_p. Search for a DECL_PACKED field only if + packed_p is false. Pass packed_p recursively. + (function_arg_record_value_2): Likewise. + (function_arg_record_value): Update calls to + function_arg_record_value_1 and function_arg_record_value_2. + +2003-10-18 Eric Botcazou + + * cse.c (cse_insn) [src_folded]: Check that the tentative replacement + was successfully forced to memory before using the result. + +2003-10-18 Eric Botcazou + + PR optimization/8178 + * config/i386/i386.md (*movsi_zero): New insn to set + a register to zero on TARGET_USE_MOV0 targets. + +2003-10-18 Kelley Cook + + * Makefile.in (Makefile): Depend on the all Make-lang.in fragments. + (POSTSTAGE1_FLAGS_TO_PASS): Pass down MAKEINFO and MAKEINFOFLAGS. + +2003-10-17 David Edelsohn + + * doc/invoke.texi (gcse-las): Fix typo. + +2003-10-17 Andrew Pinski + + * doc/install.texi: Remove first part of the sentence for + zsh not working. Change gcc to GCC. + + PR bootstrap/12546 + * doc/install.texi: Document that zsh does not work when + configuring gcc. + +2003-10-17 Nathanael Nerode + + * config/ptx4.h: Switch to DWARF 2; update comments. + +2003-10-17 Segher Boessenkool + Hartmut Penner + + PR 10404, partial 11591, partial 11601 + * config/rs6000/altivec.md ("altivec_dst", "altivec_dstt", + "altivec_dstst", "altivec_dststt", "altivec_lvsl", "altivec_lvsr", + "altivec_lvebx", "altivec_lvehx", "altivec_lvewx", "altivec_lvxl", + "altivec_lvx", "altivec_stvx", "altivec_stvxl", "altivec_stvebx", + "altivec_stvehx", "altivec_stvewx"): Use a memory_operand. + * config/rs6000/rs6000.c (altivec_expand_lv_builtin): New function. + (altivec_expand_stv_builtin): Adjust for the memory_operand. + (altivec_expand_builtin): Call altivec_expand_lv_builtin. + (altivec_init_builtins): Use `long int' for memory offsets. + +2003-10-17 Jan Hubicka + + * opts.c (common_handle_option): Handle OPT_fweb + * invoke.texi (-fweb): Add missing parts of documentation. + +2003-10-17 Rainer Orth + + * config/mips/linux.h (FUNCTION_NAME_ALREADY_DECLARED): Undef + before redefinition. + +2003-10-17 Mostafa Hagog + + * common.opt: Add description of the new -fgcse-las flag. + * flags.h (flag_gcse_las): Declaration of global flag_gcse_las. + * gcse.c (hash_scan_set): Handle the case of store expression and + insert the memory expression to the hash table, this way we make it + possible to discover redundant loads after stores and remove them. + (pre_insert_copy_insn): moved the call to update_ld_motion_stores, + to pre_insert_copies, it is not the correct place to call it after + adding stores to be in the available expression hash table. + (pre_insert_copies): Added the call to update_ld_motion_stores when + one or more copies were inserted. + * opts.c (common_handle_option): Handle the -fgcse-las flag. + * toplev.c (flag_gcse_las): Initialization of flag_gcse_las. + + * doc/invoke.tex: Document new -fgcse-las flag. + +2003-10-18 Alan Modra + + * config/rs6000/crtsavres.asm: Correct alignment of powerpc64 code + for posterity, then remove it. + +2003-10-17 Richard Earnshaw + Nathan Sidwell + + * config/arm/arm.c (use_return_insn): Not a single instruction, if + there's a frame pointer. + (arm_output_epilogue): Protect stack pointer from being corrupted + on interrupt. + +2003-10-17 Ulrich Weigand + + * ifcvt.c (noce_try_addcc): Handle ifs with 'else' case. + +2003-10-17 Ulrich Weigand + + * combine.c (simplify_set): Do not clear out undobuf.other_insn + already set elsewhere. + +2003-10-17 Kelley Cook + + * config/i386/i386.c (ix86_expand_prologue): Use + gen_allocate_stack_worker. + +2003-10-17 Rainer Orth + + * config.gcc (mips-sgi-irix6*o32): Only enable use_collect2 + without gas. + (mips-sgi-irix6*): Likewise. + + * config/mips/iris6gas.h: New file. + * gcc/config.gcc (mips-sgi-irix6*): Use it. + + * config/mips/mips.h (TARGET_IRIX): Provide default. + (TARGET_IRIX5): Likewise. + (TARGET_SGI_O32_AS): Likewise. + * config/mips/iris5.h (TARGET_IRIX): Redefine as 1. + (TARGET_IRIX5): Likewise. + * config/mips/iris6.h (TARGET_IRIX6): Remove. + (TARGET_IRIX5): Redefine as 0. + + * config/mips/mips.c (mips_output_external): Test for IRIX 6 O32 + linker workaround with TARGET_IRIX and mips_abi instead of + ASM_OUTPUT_UNDEF_FUNCTION. + (mips_file_end): Inline old ASM_OUTPUT_UNDEF_FUNCTION definition, + testing TARGET_IRIX and mips_abi explicitly. + * config/mips/iris5.h (ASM_OUTPUT_UNDEF_FUNCTION): Remove. + * config/mips/iris6.h (ASM_OUTPUT_UNDEF_FUNCTION): Remove undef. + + * config/mips/mips.c (irix_output_external_libcall): Renamed from + mips_output_external_libcall. + Use new TARGET_IRIX in guard. + * config/mips/mips-protos.h (irix_output_external_libcall): Match + this. + * config/mips/iris5.h (TARGET_ASM_EXTERNAL_LIBCALL): Likewise. + + * config/mips/iris5gas.h (HAVE_GAS_SHF_MERGE): Update comment. + Define as 0. + + * config/mips/iris6.h (FUNCTION_NAME_ALREADY_DECLARED): Define + depending on mips_abi. + * config/mips/linux.h (FUNCTION_NAME_ALREADY_DECLARED): Define as 1. + * config/mips/mips.c (mips_output_function_prologue): Test + FUNCTION_NAME_ALREADY_DECLARED at runtime. + (mips_output_function_epilogue): Likewise. + (build_mips16_function_stub): Likewise. + (build_mips16_call_stub): Likewise. + * config/mips/mips.h (FUNCTION_NAME_ALREADY_DECLARED): Provide + default. + + * config/mips/iris6.h (DWARF2_UNWIND_INFO): Don't define for native + IRIX 6 O32 assembler. + (SUBTARGET_CC1_SPEC): Enforce mips2 ISA with O32 ABI. + (TARGET_OS_CPP_BUILTINS): Define _ABIO32, use it to define + _MIPS_SIM for O32 ABI. + (DWARF2_FRAME_INFO): Don't define for native IRIX 6 O32 assembler. + (ASM_DECLARE_FUNCTION_NAME): Integrate mips.h version. + (ASM_DECLARE_FUNCTION_SIZE): Move undef before redefinition. + Integrate O32 version. + (SUBTARGET_ASM_SPEC): Handle -mabi=32. + (SUBTARGET_ASM_DEBUGGING_SPEC): Add mdebug_asm_spec for gas with + O32 ABI. + (BSS_SECTION_ASM_OP_32): Define. + (BSS_SECTION_ASM_OP_64): Likewise. + (BSS_SECTION_ASM_OP): Define differently for O32 and N32/N64 ABIs + using them. + (TARGET_ASM_NAMED_SECTION): Reflect renaming. + Move up to allow override for O32 ABI without GNU as. + (EH_FRAME_SECTION_NAME): Define explicitly. + (MUST_USE_SJLJ_EXCEPTIONS): Define. + [_MIPS_SIM == _ABIO32 && !GAS] (CTORS_SECTION_ASM_OP, + DTORS_SECTION_ASM_OP): Dummy definitions. + (TARGET_ASM_NAMED_SECTION): Undef statically. + (EH_FRAME_SECTION_NAME): Likewise. + (ASM_OUTPUT_FILENAME): Integrate mips.h version. + (LINK_SPEC): Only use default options -call_shared -no_unresolved + without -r. + Don't pass -init, -fini with -mabi=32. + (COLLECT_PARSE_FLAG): Define. + + * config/mips/mips.c (iris6_asm_named_section_1): Changed guard to + TARGET_IRIX. + Renamed to use irix_ prefix. + (iris6_asm_named_section): Likewise. + (iris_section_align_entry_eq): Likewise. + (iris_section_align_entry_hash): Likewise. + (iris6_file_start): Likewise. + (iris6_section_align_1): Likewise. + (iris6_file_end): Likewise. + (iris6_section_type_flags): Likewise. + (iris_section_align_htab): Likewise. + (iris_orig_asm_out_file): Likewise. + [TARGET_IRIX] (TARGET_ASM_FILE_START): Reflect rename. + (TARGET_ASM_FILE_END): Likewise. + (TARGET_SECTION_TYPE_FLAGS): Likewise. + + * config/mips/mips.c [TARGET_IRIX5 && !TARGET_IRIX6] + (TARGET_ASM_UNALIGNED_HI_OP): Use runtime initialization in + override_options instead. + (TARGET_ASM_UNALIGNED_SI_OP): Likewise. + (TARGET_ASM_UNALIGNED_DI_OP): Likewise. + * config/mips/mips.c (override_options) [USE_COLLECT2]: Restore + flag_gnu_linker to defaults without USE_COLLECT2 for non-IRIX O32 + assemblers. + Likewise for constructor/destructor handling. + (override_options): Handle IRIX O32 assembler quirks. + [TARGET_IRIX] (irix_asm_named_section): Handle O32 ABI with and + without gas. + (mips_file_start): Use new TARGET_IRIX. + (mips_declare_object_name): No special processing for IRIX O32 + assembler. + (mips_finish_declare_object): Likewise. + (irix_asm_output_align): Renamed from iris6_asm_output_align. + Don't record alignment for O32 ABI. + (irix_file_start): Renamed from iris6_file_start. + Return early for O32 ABI. + (irix_file_end): Renamed from iris6_file_end. + Don't emit .section directives for O32 ABI. + * config/mips/iris6.h (ASM_OUTPUT_ALIGN): Reflect renaming. + * config/mips/mips-protos.h (irix_asm_output_align): Likewise. + + * config/mips/t-iris6 (MULTILIB_OPTIONS): Add mabi=32. + (MULTILIB_OSDIRNAMES): Likewise. + +2003-10-17 Rainer Orth + + * collect2.c (COLLECT_PARSE_FLAG): Provide default. + (main): Use it. + * doc/tm.texi (COLLECT_PARSE_FLAG): Document it. + +2003-10-17 Richard Earnshaw + + * arm-modes.def (CC_Nmode): New condition code mode. + * arm.c (thumb_condition_code): Delete. + (arm_select_cc_mode): Handle single-bit test for Thumb. + (arm_print_operand, cases 'd' and 'D'): Don't special case the + condition code logic for Thumb. + (get_arm_condition_code): Handle CC_Nmode. + (thumb_cbrch_target_operand): New function. + * arm.h (PREDICATE_CODES): Add thumb_cbrch_target_operand. + * arm-protos.h (thumb_cbrch_target_operand): Add prototype. + * arm.md: Add Thumb split patterns for zero_extract and + sign_extract. + (tbit_cbranch, andsi3_cbranch_scratch, andsi3_cbranch) + (orrsi3_cbranch_scratch, orrsi3_cbranch, xorsi3_cbranch_scratch) + (xorsi3_cbranch, addsi3_cbranch, addsi3_cbranch_scratch) + (subsi3_cbranch, subsi3_cbranch_scratch): New Thumb patterns. + (cbranchne_decr1): Re-work to use CC_Nmode. + + * arm.c (thumb_expand_epilogue): Add clobbers of registers restored + by the return instruction. Add a use of the link register if it + wasn't stored. + +2003-10-17 Richard Earnshaw + + * flow.c (init_propagate_block_info): Don't abort if a conditional + jump is not a comparison of a register. Instead, just don't record + conditional life information. + +2003-10-16 Jan Hubicka + + PR optimization/12630 + * pa.md (movstrsi, movstrsi_internal): Use match_scratch in clobbers + for operands 7 and 8. + +2003-10-16 Kelley Cook + + * objc/Make-lang.in (objc-parse.o): Honor $(parsedir) for objc-parse.c. + +2003-10-16 Danny Smith + + * config/i386/cygming.h (ASM_OUTPUT_DEF_FROM_DECLS): Define. + + * config/i386/winnt.c (gen_stdcall_suffix): Make static + (gen_fastcall_suffix): Likewise. + (i386_pe_dllexport_p): Likewise. + (i386_pe_dllimport_p): Likewise. + (i386_pe_mark_dllexport): Likewise. + (i386_pe_mark_dllimport): Likewise. + (i386_pe_asm_named_section): Fix formatting. + +2003-10-16 Zack Weinberg + + * configure.in: Add snprintf to gcc_AC_CHECK_DECLS list. + * system.h: Declare snprintf if necessary. + * configure, config.in: Regenerate. + +2003-10-15 David Edelsohn + + * config/rs6000/rs6000.c (rs6000_va_arg): Only align vector + arguments if TARGET_ALTIVEC_ABI. + +2003-10-15 Roger Sayle + + * builtins.c (fold_builtin_memcpy, fold_builtin_mempcpy, + fold_builtin_memmove, fold_builtin_strcpy, fold_builtin_strncpy, + fold_builtin_memcmp, fold_builtin_strcmp, fold_builtin_strncmp): + New functions. + (expand_builtin_memcpy): Use integer_zerop instead of testing + host_integerp and tree_low_cst directly. Move misapplied hunk + for optimization wher SRC and DEST point to the same location. + (expand_builtin_mempcpy): From here. + (expand_builtin_memmove): Use integer_zerop instead of testing + host_integerp and tree_low_cst_directly. + (expand_builtin_memset): Likewise. + (expand_builtin_memcmp): Likewise (and for integer_onep). + (expand_builtin_strncmp): Likewise. + (fold_builtin): Call the appropriate fold_builtin_foo functions + to optimize memcpy, mempcpy, memmove, strcpy, strncpy, memcmp, + strcmp and strncmp. + +2003-10-15 Geoffrey Keating + + * config/darwin-protos.h (machopic_non_lazy_ptr_name): Delete + prototype. Clean up some whitespace. + * config/darwin.c: Use gen_rtx_FOO (...) rather than + gen_rtx (FOO, ...). + (machopic_non_lazy_ptr_name): Make static. + (name_needs_quotes): Allow '.' and '$' unquoted. + (machopic_legitimize_pic_address): Improve codegen in dynamic-no-pic + case. + +2003-10-15 Gábor Lóki + + * fold-const.c (tree_swap_operands_p): Disable some features + when optimizing for size. + +2003-10-15 David Daney + + * config/mips/linux.h (MD_FALLBACK_FRAME_STATE_FOR): New + * config/mips/mips.h (DWARF_FRAME_REGNUM): Fixed to allow unwind + from leaf functions. + (DWARF_FRAME_RETURN_COLUMN): Ditto. + (SIGNAL_UNWIND_RETURN_COLUMN): New, used + by MD_FALLBACK_FRAME_STATE_FOR. + * testsuite/gcc.dg/cleanup-9.c: Added mips*-*-linux* target. + +2003-10-15 Zack Weinberg + + * genmodes.c: Include hashtab.h. + (modes_by_name, hash_mode, eq_mode, struct mode_adjust) + (adj_bytesize, adj_alignment, adj_format, new_adjust) + (_ADD_ADJUST, ADJUST_BYTESIZE, ADJUST_ALIGNMENT, ADJUST_FORMAT) + (print_maybe_const_decl, emit_mode_adjustments): New. + (known_modes): Rename to modes. + (find_mode): Kill class argument; look up in hash table. + (new_mode): Insert into hash table also. + (new_adjust): New. + (reset_float_format, make_partial_integer_mode) + (make_vector_mode): Tweak error reporting. + (reset_float_format): Correct type of fourth argument. + (emit_insn_modes_h): Add #defines to help make mode_size, + mode_base_align, and real_format_for_mode conditionally const. + (emit_mode_size, emit_mode_base_align): Use print_maybe_const_decl. + (emit_real_format_for_mode): Likewise, but temporarily disabled. + (emit_insn_modes_c): Call emit_mode_adjustments. + (main): Initialize modes_by_name. + * Makefile.in: Update dependencies. + * machmode.def: Document EXPR arguments and new ADJUST_* statements. + * machmode.h: Use CONST_MODE_SIZE and CONST_MODE_BASE_ALIGN in + declarations of mode_size and mode_base_align. Declare + init_adjust_machine_modes. + * toplev.c (backend_init): Call init_adjust_machine_modes. + +2003-10-15 Olivier Hainque + + * genmodes.c (calc_wider_mode): Allocate enough room for all the + entries we'll possibly assign in the sort buffer. + +2003-10-15 Ulrich Weigand + + * config.gcc (s390x-ibm-tpf*): New target. + * doc/install.texi: Document it. + * config/s390/t-tpf: New file. + * config/s390/tpf.h: New file. + +2003-10-15 Hans-Peter Nilsson + + PR target/12598 + * config/cris/cris.md (define_split "*mov_sidesi_biap_mem"+1) + (define_splits "*mov_sidesi_mem"+1, "casesi"+9, +10, +11, +12): + Use cris_mem_op and replace_equiv_address, not gen_rtx_MEM. + ("call", "call_value", define_split "*mov_sidesi_mem"+19, +20) + (define_split "*mov_sidesi_mem"+21, +22, +23, +24, +25, +26, +27) + (define_split "*mov_sidesi_mem"+28, +29, +30): Use + replace_equiv_address, not gen_rtx_MEM. + * config/cris/cris.c (cris_mem_op): New match_operator function. + (cris_notice_update_cc): Use replace_equiv_address, not + gen_rtx_MEM. + * config/cris/cris.h (PREDICATE_CODES): Add cris_mem_op. + +2003-10-15 Bernardo Innocenti + + * config/m68k/m68k.h (MASK_SEP_DATA, TARGET_SEP_DATA, + MASK_ID_SHARED_LIBRARY, TARGET_ID_SHARED_LIBRARY): Move + definitions after the other flags. + +2003-10-14 Ziemowit Laski + + * c-parse.in (methoddef, methodproto): Call objc_add_method() + instead of add_method(). + * objc/objc-act.c (objc_check_decl): Do not check for + constant_string_type. + (add_method): Rename to objc_add_method(). + (really_start_method): Call objc_add_method() instead of + add_method(). + * objc/objc-act.h (add_method): Rename to objc_add_method(). + +2003-10-14 Ulrich Weigand + + * config/s390/s390-protos.h (s390_alc_comparison): Add prototype. + (s390_slb_comparison): Likewise. + * config/s390/s390.c (s390_alc_comparison, s390_slb_comparison): + New functions. + * config/s390/s390.h (PREDICATE_CODES): Add s390_alc_comparison + and s390_slb_comparison. + * config/s390/s390.md ("*adddi3_31", "*subdi3_31"): Do not use on + zSeries machines. + ("*adddi3_31z", "*subdi3_31z"): New insns. + ("*adddi3_alc_cc", "*adddi3_alc", "*subdi3_slb_cc", "*subdi3_slb", + "*addsi3_alc_cc", "*addsi3_alc", "*subsi3_slb_cc", "*subsi3_slb"): + New insns. + +2003-10-14 Nathanael Nerode + + * configure.in: Clean up some feedback echoes. + * configure: Regenerate. + + * aclocal.m4: Properly quote names of macros being defined. + + * config.gcc (am33_2.0-*-linux*): Use t-slibgcc-elf-ver. + +2003-10-14 Steve Ellcey + + * config/ia64/ia64.c (ia64_expand_call): Force function address + to DImode. + * config/ia64/ia64.md (call_gp): Put DImode on operand 0. + +2003-10-14 Ulrich Weigand + + * config/s390/s390.md ("muldf3", "*muldf3", "*muldf3_ibm", + "mulsf3", "*mulsf3", "*mulsf3_ibm"): Do not clobber CC. + ("divdf3", "*divdf3", "*divdf3_ibm", "divsf3", "*divsf3", + "*divsf3_ibm"): Likewise. + +2003-10-14 Nathanael Nerode + + * config.gcc, config/m68hc11/t-m68hc11-gas: Replace uses of + target_alias with target_noncanonical. + +2003-10-14 Geoffrey Keating + + * expr.c (block_move_libcall_safe_for_call_parm): Clean up, + and add case for machines where outgoing register parameters + get stack space. + + * config/darwin.c (machopic_indirect_data_reference): Use a scratch + register when generating indirect address. + +2003-10-14 Richard Earnshaw + + * arm.c (arm_addimm_operand): MODE arguemnt is unused. + * arm.md (cbranchne_decr1): Fix bootstrap warning. + +2003-10-14 Rainer Orth + + * fixinc/inclhack.def (alpha_pthread_gcc): New fix. + * fixinc/fixincl.x: Regenerate. + * fixinc/tests/base/pthread.h [ALPHA_PTHREAD_GCC_CHECK]: New + testcase. + Fixes PR bootstrap/9330. + +2003-10-13 Eric Christopher + + * config/frv/frv.c (frv_adjust_field_align): Redo check for + too wide bitfields. + (frv_hard_regno_mode_ok): Add SPR_P and AP_FIRST. + * config/frv/frv.h (FUNCTION_PROFILER): Remove abort call. + (SBSS_SECTION_ASM_OP): Remove. + (EXTRA_SECTIONS): Remove in_sbss. + (EXTRA_SECTION_FUNCTIONS): Remove SBSS_SECTION_FUNCTION. + (SBSS_SECTION_FUNCTION, sbss_section): Remove. + (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Change sbss_section to + named_section. + +2003-10-13 Nathanael Nerode + + * Makefile.in, configure.in, config.host, mkheaders.in: Replace + uses of ${target_alias} for directory names (and other places which + won't like the empty string) with ${target_noncanonical}. Introduce + call early in configure.in to _GCC_TOPLEV_NONCANONICAL_TARGET so it's + available. + * configure: Regenerate. + +2003-10-13 Ian Lance Taylor + + * config/arm/iwmmxt.md (cond_iwmmxt_movsi_insn): New pattern. + * config/arm/arm.md: For splits which rely on conditional moves, + remove ! TARGET_IWMMXT condition. + +2003-10-13 David S. Miller + + * ifcvt.c (num_removed_blocks): Rename to num_true_changes. + (find_cond_trap): Always increment if we emit a conditional + trap insn. + +2003-10-13 Zack Weinberg + + * Makefile.in (BUILD_RTL): Replace $(BUILD_PREFIX)insn-modes.o + with min-insn-modes.o. + (STAGESTUFF): Add min-insn-modes.c. + (genobjs): Add genmodes.o. + (print-rtl.o, print-rtl1.o): Depend on $(TM_P_H). + (insn-modes.o): Depend on $(TM_H) not $(GTM_H); also real.h. + (min-insn-modes.c, min-insn-modes.o): New rules. + (s-modes): Also generate min-insn-modes.c. + ($(BUILD_PREFIX_1)insn-modes.o): Kill. + * genmodes.c (struct mode_data): Add format field. + (blank_mode, validate_mode, complete_mode): Update to match. + (make_scalar_mode): Separate into make_int_mode and make_float_mode. + (_SCALAR_MODE): Kill. + (FLOAT_MODE, FRACTIONAL_FLOAT_MODE): Add format argument. + (emit_insn_modes_c_header): Adjust. + (emit_min_insn_modes_c_header, emit_real_format_for_mode) + (emit_min_insn_modes_c): New functions. + (emit_insn_modes_c): Call emit_real_format_for_mode. + (main): Add -m option to generate min-insn-modes.c. + * machmode.h: Update documentation. Add format argument to + all uses of FLOAT_MODE. + * real.c: Don't define real_format_for_mode here. + + * dwarfout.c: Move default definition of PRINT_REG... + * defaults.h: ...here. + * print-rtl.c: Include tm_p.h. + (DEBUG_PRINT_REG, DEBUG_REGISTER_NAMES, debug_reg_names, reg_names): + Kill. + (print_rtx): Use PRINT_REG, not DEBUG_PRINT_REG. But surround + this entire block with #ifndef GENERATOR_FILE. + * regclass.c: Unconditionally define reg_names. + * config/mips/mips.h, config/rs6000/rs6000.h, config/sh/sh.h + Don't define DEBUG_REGISTER_NAMES. + * config/rs6000/darwin.h: Don't use DEBUG_REGISTER_NAMES in + redefinition of REGISTER_NAMES. + * config/i386/i386.h: Don't define DEBUG_PRINT_REG. + + * combine.c: Change all preprocessor conditionals on + EXTRA_CC_MODES to use SELECT_CC_MODE instead; rearrange a bit + for clarity. + * genopinit.c: Remove mention of EXTRA_CC_MODES in comment. + * configure.in: Don't define EXTRA_CC_MODES. + * configure, config.in: Regenerate. + * doc/tm.texi: Remove documentation of EXTRA_CC_MODES. + + * config/arc/arc.c, config/m32r/m32r.c, config/sparc/sparc.c: + May assume that GET_MODE_CLASS is accurate for extra CC modes + at all times. + + * config/i860/i860.h (INIT_CUMULATIVE_ARGS): Pass correct + number of arguments to aggregate_value_p. + + * genmodes.c (RESET_FLOAT_FORMAT, reset_float_format): New. + * machmode.def: Explain ARCH-modes.def. Document + RESET_FLOAT_FORMAT. Improve commentary on various mode + clusters. Do not define OI, PQI, PHI, PSI, PDI, QF, HF, TQF, + XF, or TF modes here. Remove backward-compatibility + definition of CC. + + * config/alpha/alpha-modes.def: New file; define TF mode. + * config/arc/arm-modes.def: Define XF mode. + * config/c4x/c4x-modes.def: Define QF and HF modes. Unset + float format for SF and DF modes. + * config/dsp16xx/dsp16xx-modes.def: New file; define HF mode. + * config/i386/i386-modes.def: Define XF and TF modes. + * config/i960/i960-modes.def: Define TF mode. + * config/ia64/ia64-modes.def: Define TF and OI modes. + * config/m68k/m68k-modes.def: New file; define XF mode. + * config/mips/mips-modes.def: New file; define TF mode, reset + formats for SF and DF modes. + * config/pa/pa-modes.def: Define TF mode. + * config/rs6000/rs6000.c: Define TF and PSI modes. + * config/s390/s390-modes.def: Define OI mode. + * config/sh/sh-modes.def: New file; define PSI mode. + * config/sparc/sparc-modes.def: Define TF mode. + * config/vax/vax-modes.def: New file; reset formats for SF and + DF modes. + + * config/c4x/c4x.c (c4x_override_options): No need to mess + with real_format_for_mode or set REAL_MODE_FORMATs. + (c4x_immed_int_constant): Don't apply GET_MODE_CLASS to rtx + variable. + * config/i386/i386.c (override_options): No need to set + REAL_MODE_FORMATs here. + * config/i960/i960.c (i960_initialize): Likewise. + * config/m68k/m68k.c (m68k_override_options): Likewise. + * config/ia64/ia64.c (ia64_override_options): Set REAL_MODE_FORMAT + for TFmode only if not the default. + * config/mips/mips.c (override_options): Likewise. + * config/vax/vax.c (override_optionms): Set REAL_MODE_FORMAT for + DFmode only if not the default. + + * config/i370/i370.h (RET_REG): Don't consider TFmode. + * config/m68hc11/m68hc11.c (print_operand): Don't consider XFmode. + * config/dsp16xx/dsp16xx.c (hard_regno_mode_ok): #if 0 out use + of modes that don't appear anywhere in the machine description. + + * config/arc/arc-modes.def, config/arm/arm-modes.def + * config/c4x/c4x-modes.def, config/frv/frv-modes.def + * config/i386/i386-modes.def, config/i960/i960-modes.def + * config/ia64/ia64-modes.def, config/mmix/mmix-modes.def + * config/pa/pa-modes.def, config/pdp11/pdp11-modes.def + * config/rs6000/rs6000-modes.def, config/s390/s390-modes.def + * config/sparc/sparc-modes.def: Convert to new style for + declaring extra CC modes. + +2003-10-13 Zack Weinberg + + * cpplex.c (_cpp_clean_line): In the common case of a line + with no trigraphs and no \-newline, avoid writing to memory. + (_cpp_skip_block_comment): Use a local 'cur' pointer instead + of the buffer member. Make c an uchar to avoid unnecessary + sign extensions. + +2003-10-13 Nathanael Nerode + + * configure.in: Remove unnecessary test. + * configure: Regenerate. + + * configure.in: Fix grammatical error. Move UWIN host error to... + * config.host: Here. + * configure: Regenerate. + +2003-10-13 Andreas Krebbel + + * config/s390/s390.md ("*fmadddf4", "*fmsubdf4", "*fmaddsf4", + "*fmsubsf4"): Insns are now dependent on TARGET_FUSED_MADD instead + of flag_unsafe_math_optimizations. + * config/s390/s390.h ("MASK_NO_FUSED_MADD", "TARGET_NO_FUSED_MADD", + "TARGET_FUSED_MADD", "TARGET_SWITCHES"): Introduced new target flags + fused-madd and no-fused-madd. + * doc/invoke.texi: Documented the new options fused-madd and + no-fused-madd for S/390. + +2003-10-14 Alan Modra + + * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Choose + MASK_ALIGN_NATURAL if rs6000_alignment_string not given. Don't + assign DEFAULT_ABI. + (ADJUST_FIELD_ALIGN, ROUND_TYPE_ALIGN): Update comment. + * config/rs6000/rs6000.c: Formatting. + (rs6000_parse_alignment_option): Only set rs6000_alignment_flags + when rs6000_alignment_string given. + +2003-10-13 Eric Botcazou + + PR target/12538 + * config/sparc/sparc.c (MUST_SAVE_REGISTER): Delete. + (sparc_flat_must_save_register_p): New function to decide whether + a register must be saved/restored in the function prologue/epilogue. + (sparc_flat_compute_frame_size): Use it instead of MUST_SAVE_REGISTER. + +2003-10-12 Steven Bosscher + + * config/avr/avr.c, config/avr/avr-protos.h: Convert to + ISO C90 function declarations and definitions. + * config/sh/sh.c, config/sh/sh-protos.h: Likewise. + +2003-10-12 Nathanael Nerode + + * config.gcc (*-*-freebsd*): Use tm_defines instead of tiny + config files which do the same thing. + * config/freebsd3.h, config/freebsd4.h, config/freebsd5.h, + config/freebsd6.h: Remove now unnecessary files. + +2003-10-12 Steven Bosscher + + * c-common.c (c_common_truthvalue_conversion): Warn if the + address of a non-weak function is used as a truth value. + +2003-10-12 Kazu Hirata + + * config/h8300/h8300.c (WORD_REG_USED): Use SP_REG instead of + a literal. + * config/h8300/h8300.h (REGNO_OK_FOR_BASE_P): Use MAC_REG + instead of a literal. + +2003-10-12 Hans-Peter Nilsson + + * doc/extend.texi (Function Attributes): Mention the exceptional + path for noreturn-marked functions. + +2003-10-12 Jan Hubicka + + * cgraphunit.c (cgraph_decide_inlining): Fix uninitialized variable + warning. + +2003-10-12 Danny Smith + + * config/i386/i386.c (x86_this_parameter): Fix typo. + +203-10-11 Jan Hubicka + + * Makefile.in (web.o): New. + * web.c: New file. + * rtl.h (web_main): Declare. + * timervar.def (TV_WEB): New. + * toplev.c (dump_file_index, dump_file_info): Add DFI_web. + (rest_of_hanle_web): New. + (flag_web): New static variable. + (lang_independent_options): Add "web". + (rest_of_compilation): Call rest_of_handle_web. + * invoke.texi (-fweb): Document. + * common.opt (fweb): New. + * flags.h (flag_web): New. + * opts.c (decode_options): Set flag_web at -O3. + + * passes.texi (web construction): Document. + * invoke.texi (-O3): Document that -fweb is enabled. + + * regrename.c (regrename_optimize): Deal better with situation when + replacement failed. + + * sched-ebb.c: Include params.h and profile.h + (schedule_ebbs): Use tracer parameters to discover superblocks + * Makefile.in (sched-ebb.o): Add dependencies. + +2003-10-11 Roger Sayle + + * fold-const.c (negate_mathfn_p): New function to determine whether + a built-in mathematical function is sign preserving, f(-x) == -f(x). + Add support for BUILT_IN_ASIN, BUILT_IN_ASINF and BUILT_IN_ASINL. + (tree_swap_operands_p): Change API to take an additional argument + indicating that the swapped operands evaluate in reverse order. + Canonicalize VAR_DECLs and PARM_DECLs last if we can, i.e. neither + operand side-effects or we don't care about flag_evaluation_order. + (reorder_operands_p): New function to check whether its safe to + evaluate the given operands in reverse order. + (negate_expr_p): We can always negate integer constants unless + we honor -ftrapv and the signed type would overflow. Only allow + -(A-B) into B-A if reorder_operands_p says that its OK. Allow + negation of COMPLEX_CST if both real and imaginary parts can be + negated. Allow negation through floating point extensions and + sign-preserving built-in functions. + (negate_expr): Move the code to negate integers from "fold" to + here. Always negate integer constants unless we honor -ftrapv + and the signed type would overflow. Always negate real constants + unless we honor -ftrapping-math. Only convert -(A-B) into B-A + if allowed by reorder_operands_p. Add support for COMPLEX_CST. + Optimize negation through floating point extensions and + sign-preserving built-in functions (as defined by negate_mathfn_p). + (fold): Adjust calls to tree_swap_operands_p. + (fold ): Move the remaining negation optimizations + to negate_expr_p/negate_expr. + (fold ): Use reorder_operands_p to check whether we're + allowed to convert (-A) - B into (-B) - A. + +2003-10-11 Roger Sayle + + * builtins.c (expand_builtin_strcmp): Defend against the possibility + that gen_cmpstrsi may fail: Stabilize the argument list against + re-evaluation and expand the library call directly using this saved + argument list if a cmpstrsi sequence can't be generated. + (expand_builtin_strncmp): Likewise. + + * config/i386/i386.md (cmpstrsi, movstrsi): Disable with -Os. + +2003-10-11 Roger Sayle + + PR optimization/12260 + * simplify-rtx.c (simplify_unary_operation): Simplify all unary + operations through CONST nodes. Optimize (neg (plus X C)) as + (minus -C X) for constant values C. + (simplify_binary_operation): Optimize (minus (neg X) C) as + (minus -C X) for constant values C. + (simplify_plus_minus): Avoid creating (neg (const (plus X C)), + instead create (minus -C X). + +2003-10-11 Roger Sayle + + * expr.c (expand_expr ): Let expand_operands call + safe_from_p for us, once it chooses an evaluation order. + (expand_expr ): Likewise. + (expand_expr ): Likewise. If expand_operands + places the second operand in "target", swap the operands. + (do_store_flag): Let expand_operands call safe_from_p for us. + +2003-10-11 Eric Botcazou + + PR optimization/12544 + * function.c (put_var_into_stack): Don't generate ADDRESSOFs + for DECL_NONLOCAL decls. + +2003-10-11 Kazu Hirata + + * expr.c: Follow spelling conventions. + * final.c: Likewise. + * optabs.c: Likewise. + * sched-deps.c: Likewise. + * sdbout.c: Likewise. + +Sat Oct 11 12:24:23 CEST 2003 Jan Hubicka + + * varasm.c (notice_global_symbol): Fix handling of variables; avoid + re-computing of variable. + +2003-10-11 Richard Henderson + + * config/alpha/alpha.c (alpha_return_in_memory): Rename from + return_in_memory, make static, change signature to match target hook. + (alpha_setup_incoming_varargs): Make static, change signature to + match target hook, add code for vms and unicos. + (TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN, + TARGET_PROMOTE_PROTOTYPES, TARGET_STRUCT_VALUE_RTX, + TARGET_RETURN_IN_MEMORY, TARGET_SETUP_INCOMING_VARARGS, + TARGET_STRICT_ARGUMENT_NAMING, + TARGET_PRETEND_OUTGOING_VARARGS_NAMED): New. + * config/alpha/alpha-protos.h: Update. + * config/alpha/alpha.h (PROMOTE_FUNCTION_ARGS, + PROMOTE_FUNCTION_RETURN, RETURN_IN_MEMORY, + SETUP_INCOMING_VARARGS): Remove. + * config/alpha/unicosmk.h (SETUP_INCOMING_VARARGS): Remove. + * config/alpha/vms.h (SETUP_INCOMING_VARARGS): Remove. + +2003-10-11 Ian Lance Taylor + + * config/arm/arm.c (arm_regno_class): Handle IWMMXT_GR_REGS. + +2003-10-11 Kazu Hirata + + * config/m68k/lb1sf68.asm: Follow spelling conventions. + * config/m68k/m68k.c: Likewise. + * config/m68k/m68k.h: Likewise. + * config/m68k/m68k.md: Likewise. + +2003-10-11 Roger Sayle + + * builtins.c (expand_builtin_memcpy): Optimize case when the two + pointer arguments are the equal, non-volatile and side-effect free. + (expand_builtin_mempcpy): Likewise. + (expand_builtin_memmove): Likewise. + (expand_builtin_strcpy): Likewise. + (expand_builtin_memcmp): Likewise. + (expand_builtin_strcmp): Likewise. + (expand_builtin_strncmp): Likewise. + +2003-10-11 Roger Sayle + + * combine.c (apply_distributive_law): Enable "distributive" floating + point optimizations with -funsafe-math-optimizations. + +2003-10-11 Andrew Pinski + + * genmodes.c (emit_mode_mask) Change MASK to MODE_MASK. + +2003-10-11 Kazu Hirata + + * config/m68k/m68k-protos.h: Remove the prototype for + finalize_pic. + +2003-10-11 Kazu Hirata + + * config/m68k/m68k.c: Fix comment typos. + +2003-10-11 Bernardo Innocenti + + * config/m68k/m68k-protos.h (use_return_insn): Change return type from + int to bool. + * config/m68k/m68k.c (struct m68k_frame): Add funcdef_no member. + (current_frame): New global var. + (m68k_compute_frame_layout): Cache computations in current_frame. + (m68k_initial_elimination_offset): Use values from current_frame + instead of recomputing them. + (use_return_insn): Likewise. + (m68k_output_function_prologue): Likewise. + (m68k_output_function_epilogue): Likewise. + * config/m68k/m68k.h (TARGET_CPU_CPP_PREDEFINES): Fold __PIC__ handling + inside the block for __pic__. + +2003-10-11 Peter Barada + Bernardo Innocenti + + * config/m68k/m68k.c (m68k_frame): Move before protos referencing it. + (m68k_save_reg): Add boolean parameter `interrupt_handler'. + (m68k_interrupt_function_p): New function. + (m68k_handle_fndecl_attribute): Ditto. + (m68k_compute_frame_layout): Ditto. + (m68k_attribute_table): Define back-end specific attributes. + (m68k_output_function_epilogue): Emit RTE instruction for interrupt + functions. + +2003-10-11 Bernardo Innocenti + + * config/m68k/t-uclinux: New target Makefile fragment. + * config/m68k/uclinux.h: New target macro file. + * config.gcc (m68k-*-uclinux): New target definition. + +2003-10-10 Roger Sayle + + * builtins.c (builtin_mathfn_code): Generalize to check whether + the call is to any built-in function by comparing the call's + argument list against the builtin decl's function type. + +2003-10-10 Roger Sayle + + * cse.c (constant_pool_entries_regcost): New global variable to + hold the register cost component of constant_pool_entries_cost. + (fold_rtx): Calculate constant_pool_entries_regcost at the same + time as constant_pool_entries_cost. + (cse_insn): Set both src_folded_cost and src_folded_regcost from + constant_pool_entries_cost and constant_pool_entries_regcost. + (cse_main): Initialize constant_pool_entries_regcost to zero. + + * optabs.c (expand_unop): Attach a REG_EQUAL note describing + the semantics of the sequence of bit operations used to negate + a floating-point value. + (expand_abs_nojump): Likewise attach a REG_EQUAL note describing + the semantics of the bit operations used to abs a floating point + value. + +2003-10-11 Bernardo Innocenti + Paul Dale + + * config/m68k/lb1sf68.asm: Add __PIC__ and __ID_SHARED_LIBRARY__ + support. + * config/m68k/m68k-none.h (ASM_SPEC): Pass --pcrel to assembler on + -fpic, -fPIC, -msep-data and -mid-shared-library. + * config/m68k/m68k.c (m68k_library_id_string): New global variable. + (override_options): Add -msep-data and -mshared-library-id support. + (m68k_output_function_prologue): Generate code to load A5 for + TARGET_ID_SHARED_LIBRARY and TARGET_SEP_DATA. + (m68k_output_mi_thunk): Emit indirect jump on TARGET_ID_SHARED_LIBRARY. + (m68k_output_pic_call): New function. + * gcc/config/m68k/m68k.h (TARGET_SEP_DATA): New target flag. + (TARGET_ID_SHARED_LIBRARY): Ditto. + (TARGET_SWITCHES): Add switches for -mid-shared-library and -msep-data. + * gcc/config/m68k/m68k.md (call): Call m68k_output_pic_call(). + (call_value): Likewise. + +2003-10-10 Zack Weinberg + + * gengenrtl.c (find_formats, genheader): Make i an unsigned + int, remove cast of NUM_RTX_CODE. + * machmode.h: Make the HAVE_MACHINE_MODES #ifdef encompass the + entire file. Remove the #ifs on GET_MODE_MASK etc and + GET_MODE_WIDER_MODE etc. + +2003-10-10 Eric Christopher + + * lcm.c (optimize_mode_switching): Change NORMAL_MODE + to MODE_ENTRY and MODE_EXIT. Add MODE_AFTER for insns + that set mode. + * config/sh/sh.h (MODE_ENTRY): New macro. + (MODE_EXIT): Ditto. + (MODE_AFTER): Ditto. + * config/sh/sh.md: Change for MODE_AFTER. Add + fp_set attribute. + * doc/tm.texi: Document MODE_AFTER, MODE_ENTRY, and MODE_EXIT. + +2003-10-10 Zack Weinberg + + * genmodes.c, mode-classes.def: New files. + * machmode.def: Rewritten to genmodes.c interface. + * Makefile.in (extra_modes_file): New substitution variable. + (MACHMODE_H): No longer includes machmode.def or + @extra_modes_file@; instead, mode-classes.def and insn-modes.h. + (BUILD_RTL): Add $(BUILD_PREFIX)insn-modes.o. + (OBJS-common): Add insn-modes.o. + (STAGESTUFF): Add insn-modes.c, insn-modes.h, s-modes, and + genmodes$(build_exeext). + (insn-modes.o, insn-modes.c, insn-modes.h, s-modes, genmodes.o, + genmodes$(build_exeext), $(BUILD_PREFIX_1)insn-modes.o): New targets. + (s-genrtl): Don't depend on $(RTL_BASE_H). + (gengenrtl.o): Don't depend on coretypes.h, $(GTM_H), real.h, + or $(RTL_BASE_H); just rtl.def. + * gengenrtl.c: Don't include coretypes.h, tm.h, rtl.h, or + real.h. Give fake definition of CONST_DOUBLE_FORMAT and + substitute definition of NUM_RTX_CODE. Add casts to avoid + warnings. + * machmode.h: Include insn-modes.h, not machmode.def. Include + mode-classes.def to define enum mode_class. Tweak definitions + of GET_MODE_CLASS, GET_MODE_SIZE, GET_MODE_BITSIZE, GET_MODE_MASK, + GET_MODE_INNER, GET_MODE_WIDER_MODE, GET_CLASS_NARROWEST_MODE. + (inner_mode_array): Renamed mode_inner. + (mode_base_align): New. + * rtl.c (mode_name, mode_class, mode_bitsize, mode_size, + mode_unit_size, mode_wider_mode, mode_mask_array, + inner_mode_array, class_narrowest_mode): Delete definitions. + * stor-layout.c (get_mode_alignment): Use mode_base_align. + * real.h: Use MIN_MODE_FLOAT and MAX_MODE_FLOAT, not QFmode + and TFmode, in real_format_for_mode and REAL_MODE_FORMAT. + + * config/ip2k/ip2k.h, config/iq2000/iq2000.h: + No need to define BITS_PER_UNIT. + +2003-10-10 Richard Kenner + + * config/ia64/ia64.c (ia64_vms_init_libfuncs): New function. + (ia64_output_function_prologue): Only write .prologue if --with-gnu-as. + (ia64_initialize_trampoline): If not using GAS, declare trampoline + as global. + * config/ia64/ia64.h (ASM_APP_ON, ASM_APP_OFF): Add vers for not GAS. + (ASM_OUTPUT_DEBUG_LABEL): Likewise. + + * stor-layout.c (compute_record_mode): Don't force BLKmode if + field is zero-length BLKmode. + * expr.c (expand_expr, case COMPONENT_REF): Handle case of BLKmode + zero-size references. + + * combine.c (distribute_links): Properly test for REG being set. + + * config/alpha/alpha.c (alpha_expand_block_mode): Don't use + gen_lowpart and company except for REG. + +2003-10-10 John David Anglin + + * pa64-hpux.h (LINK_SPEC): Use `-z' option with HP ld. + +2003-10-10 Nathanael Nerode + + * config.gcc (mips*-*-netbsd*): Remove content-free line. + +2003-10-10 Herman A.J. ten Brugge + + * gcov-io.h: Check BITS_PER_UNIT when defining gcov_unsigned_t, + gcov_position_t and gcov_type. + +2003-10-09 Kaz Kojima + + * configure.in (HAVE_AS_TLS): Add sh-*-* and sh[34]*-*-* cases. + * configure: Regenerate. + +2003-10-09 Kazu Hirata + + * config/h8300/h8300.md (define_asm_attributes): Specify + the length of an asm insn more precisely. + +2003-10-09 Rainer Orth + + * config/mips/iris6.h (SUBTARGET_CPP_SPEC): Define. + +2003-10-09 Bob Wilson + + * config/xtensa/xtensa.c (xtensa_dbx_register_number): Change first + FP register number to 48 and MAC16 accumulator to 0x210. + +2003-10-09 Nathanael Nerode + + * config.gcc: Remove redundant thread_file setting clauses for + various *-*-linux* targets. + +2003-10-09 Kazu Hirata + + * config/h8300/h8300.md (define_asm_attributes): New. + +2003-10-09 Roger Sayle + + * optabs.c (prepare_float_lib_cmp): Always attach a REG_EQUAL note + to the comparison, as emit_libcall_block calls copy_rtx on equiv. + +2003-10-09 Dorit Naishlos + + * haifa-sched.c (ok_for_early_schedule): New function. + (early_queue_to_ready): New function. + (schedule_block): Allow early removal of insns from Q. + (schedule_insn): Update INSN_TICK in case of premature + issue. + * common.opt (sched_stalled_insns): New flag. + (sched_stalled_insns_dep): New flag. + * flags.h: Same above flags. + * opts.c: Same as above. + * toplev.c: Same as above. + * target.h (targetm.sched.is_costly_dependence): New + hook. + * target-def.h: Same as above. + * config/rs6000/rs6000.h: (rs6000_sched_costly_dep): + Support new flag -msched-costly-dep. + (DEFAULT_SCHED_COSTLY_DEP): Define. + * config/rs6000/rs6000.c: + (rs6000_is_costly_dependence): New function. + (is_load_insn, is_store_insn): New functions. + (is_load_insn1, is_store_insn1, is_mem_ref): New + functions. + * doc/invoke.texi (-fsched-stalled-insns-dep) + (-fsched-stalled-insns, -msched-costly-dep): Document + options. + * doc/tm.texi (is_costly_dependence): Define new + scheduler target hook. + +2003-10-09 Jason Merrill + + PR c++/6392 + * c-common.c (c_build_qualified_type): Look through arrays first. + (c_apply_type_quals_to_decl): Look through arrays. + + * c-common.c (c_apply_type_quals_to_decl): Unset TREE_READONLY for + types with constructors. + + * coverage.c (build_ctr_info_value): Use build_decl to make a + VAR_DECL. + (create_coverage): Likewise. + + * stmt.c (resolve_asm_operand_names): Call check_unique_operand_names + here. + (expand_asm_operands): Not here. + (parse_input_constraint): No longer static. + * tree.h: Declare it. + +2003-10-08 Kaz Kojima + + * config/sh/t-linux (SHLIB_LINK): Override to use a linker script + libgcc_s.so. + (SHLIB_INSTALL): Likewise. + +2003-10-08 Nathanael Nerode + + * doc/install.texi: Remove reference to removed 'pthreads' thread + option. + +2003-10-08 Aldy Hernandez + + * config/rs6000/rs6000.md ("abssi2_isel"): Add early clobber to + operand 2. + +2003-10-08 Nathanael Nerode + + * config.gcc: Don't accept --enable-threads=pthreads. Clean + up related case statements. + * configure.in: Don't accept --enable-threads=pthreads, + decosf1, mach, or os2 (none of which work anyway). Alphabetize + supported thread files in case clause. + * configure: Regenerate. + +2003-10-08 Geoffrey Keating + + * function.c (pad_to_arg_alignment): Move 'boundary_in_bytes' + definition to above SPARC_STACK_BOUNDARY_HACK. + +2003-10-08 Jason Merrill + + * c-pretty-print.c (pp_c_postfix_expression) + : Fix thinko. + +2003-10-08 Rainer Orth + + * mklibgcc.in: Don't hide undefined or typeless symbols. + +2003-10-08 John David Anglin + + PR optimization/12142 + * cse.c (count_reg_usage): In a SET with a REG SET_DEST, count the + uses of the register in the SET_SRC. Remove unnecessary argument. + * pa.c (legitimize_pic_address): Before reload, use a scratch register + for the intermediate result in loading the address of a SYMBOL_REF. + Set the MEM_NOTRAP_P flag for the MEM. Add a REG_EQUAL to the insn + which loads the SYMBOL_REF address. + +2003-10-08 Timo Kokkonen + Eric Botcazou + + PR bootstrap/12490 + * scan-decls.c (MAX_EXTERN_C_BRACES): New preprocessor constant + to define the size of the extern_C_braces array. Set it to 200. + (scan_decls): Abort when extern_C_braces_length is out-of-bounds. + +2003-10-08 Carlo Wood + + * Makefile.in (gengtype-lex.c): flex 2.5.4[a] doesn't understand + a space after the -o option. flex 2.5.31 understands both, with + and without the space. Removed that space. + +2003-10-08 Richard Sandiford + + * config/mips/mips.c (mips_frame_info): Add cprestore_size field. + (compute_frame_size): Initialize it. Remove the .cprestore slot + from args_size. + (mips_output_function_prologue): Simplify accordingly. + (mips_debugger_offset): Change the mips16 frame pointer offset from + current_function_outgoing_args to cfun->machine->frame.args_size. + (mips_initial_elimination_offset): Likewise. + (mips_expand_prologue): Likewise. + (mips_expand_epilogue): Likewise. + +2003-10-08 Richard Sandiford + + * config/mips/mips.h (EXTRA_CONSTRAINT): Add 'W' constraint. + (EXTRA_MEMORY_CONSTRAINT): Define. + (CAN_ELIMINATE): Remove lwu workaround. + * config/mips/mips.md (*zero_extendsidi2_mem): Enable for mips16 too. + Use a 'W' constraint for the source operand. + +2003-10-08 Kazu Hirata + + * genopinit.c (main): Output code to declare undefined + variables. + +2003-10-07 Kelley Cook + + * gengtype-lex.l: Remove -Wtraditional cruft. + * Makefile.in (gengtype-lex.c): Likewise. + +2003-10-07 Zdenek Dvorak + + * cfgloopmanip.c (fix_irreducible_loops): Initialize e correctly. + +2003-10-07 Jason Merrill + + PR c++/12519 + * c-semantics.c (genrtl_cleanup_stmt): Ignore the CLEANUP_DECL if + it isn't a decl. + +2003-10-07 Alexandre Oliva + + * gcc.c (cpp_options): Only pass -fworking-directory for -g* if + not overridden. + Fixes PR bootstrap/12173. + +2003-10-07 Zack Weinberg + + * errors.c: Don't include coretypes.h or tm.h. + (trim_filename): Use IS_DIR_SEPARATOR. + * Makefile.in: Update dependencies of errors.o and + $(BUILD_PREFIX_1)errors.o. + +2003-10-07 Geoffrey Keating + + * function.c (pad_to_arg_alignment): Take STACK_POINTER_OFFSET into + account when aligning arguments. + * calls.c (STACK_POINTER_OFFSET): Move default from here ... + * defaults.h (STACK_POINTER_OFFSET): ... to here. + * config/sparc/sparc.h (STACK_BOUNDARY): Add comment about how + it's wrong when TARGET_ARCH64 && TARGET_STACK_BIAS. + (SPARC_STACK_BOUNDARY_HACK): Define. + * config/rs6000/rs6000.c (function_arg): On non-SVR4 systems, + arrange for vector parameters to varargs functions to be passed + in both memory and GPRs when appropriate. + (rs6000_va_arg): Vector arguments passed in memory are 16-byte + aligned. + + * hooks.c (hook_bool_tree_true): New. + (hook_rtx_tree_int_null): New. + (hook_rtx_rtx_null): Use NULL, not 0. + * hooks.h: Add 'extern' to everything. + (hook_bool_tree_true): New. + (hook_rtx_tree_int_null): New. + * targhooks.c (hook_bool_CUMULATIVE_ARGS_true): New. + * targhooks.h (hook_bool_CUMULATIVE_ARGS_true): New. + * config/rs6000/rs6000-protos.h (setup_incoming_varargs): Remove + prototype. + * config/rs6000/rs6000.c (rs6000_return_in_memory): New. + (setup_incoming_varargs): Prototype. + (TARGET_PROMOTE_FUNCTION_ARGS): Define. + (TARGET_PROMOTE_FUNCTION_RETURN): Define. + (TARGET_STRUCT_VALUE_RTX): Define. + (TARGET_RETURN_IN_MEMORY): Define. + (TARGET_SETUP_INCOMING_VARARGS): Define. + (TARGET_STRICT_ARGUMENT_NAMING): Define. + (TARGET_PRETEND_OUTGOING_VARARGS_NAMED): Define. + (init_cumulative_args): Use rs6000_return_in_memory. + (setup_incoming_varargs): Make 'static'. + * config/rs6000/rs6000.h (PROMOTE_FUNCTION_ARGS): Delete. + (PROMOTE_FUNCTION_RETURN): Delete. + (STRUCT_VALUE): Delete. + (RETURN_IN_MEMORY): Delete. + (SETUP_INCOMING_VARARGS): Delete. + +2003-10-07 Gerald Pfeifer + + * doc/invoke.texi (Warning Options): Simplify and clarify the + descriptions of -Wnonnull and -Winit-self. + +2003-10-07 Richard Earnshaw + + * optabs.c (init_intraclass_conv_libfuncs): Fix order of array + indicees for floating-point conversersion libcalls. + +2003-10-07 Nathanael Nerode + + * Makefile.in: Add more comments separating large conceptually + separate sections. + + * configure.in: Clean up thread file logic. + * configure: Regenerate. + +2003-10-07 Danny Smith + + * config/i386/cygming.h (READONLY_DATA_SECTION_ASM_OP): Define. + (switch_to_section): Handle in_readonly_data. + * config/i386/winnt.c (i386_pe_asm_named_section): Handle + readonly data. + +2003-10-07 Richard Earnshaw + + * arm.md (cmpsi2_addneg): New ARM pattern. Add peephole2 to generate + it. + (cbranchne_decr1): New Thumb pattern. + * arm.c (arm_addimm_operand): New insn predicate. + * arm-protos.h: Add a prototype for it. + * arm.h (PREDICATE_CODES): Add it. + +2003-10-07 Dorit Naishlos + + * sched-int.h (sched_info): New field + sched_max_insns_priority. + * sched-rgn.c (init_ready_list): Add invocations to + targetm.sched.adjust_priority. + (sched_max_insns_priority): Init new field. + * sched-ebb.c (sched_max_insns_priority): Init new field. + * haifa-sched.c (set_priorities): Set + sched_info->sched_max_insns_priority. + * config/rs6000/rs6000.h: + (rs6000_sched_restricted_insns_priority_str): Support new + flag -mprioritize-restricted-insns. + (DEFAULT_RESTRICTED_INSNS_PRIORITY): Define. + * config/rs6000/rs6000.c (is_dispatch_slot_restricted): New + function. + (rs6000_adjust_priority): Change priority of restricted + insns, using above new function and new flag. + * doc/invoke.texi (-mprioritize-restricted-insns): Document + new option. + +2003-10-07 Zack Weinberg + + * expr.c (cmpstr_optab, cmpmem_optab): New. + * genopinit.c: Initialize them. + * optabs.h: Declare them. + * optabs.c (init_optabs): Clear them. + (prepare_cmp_insn): Use cmpstr_optab and cmpmem_optab to find + block memory compare insns, not conditional chains. Restructure + the fallback generation of a call to memcmp/bcmp for better + readability. + +2003-10-07 Richard Sandiford + + * config/mips/mips.c (MIPS_MAX_FIRST_STACK_STEP): New macro. + (mips_save_restore_fn): New typedef. + (mips_add_large_offset_to_sp, mips_emit_frame_related_store): Remove. + (mips_set_frame_expr, mips_frame_set): Move above prologue code. + (save_restore_insns): Remove, replacing with... + (mips_save_restore_reg, mips_for_each_saved_reg): ...these new fns. + (mips_save_reg, mips_restore_reg): New function. + (mips_expand_prologue, mips_expand_epilogue): Rework. + * config/mips/mips.h (MIPS_TEMP1_REGNUM, MIPS_TEMP2_REGNUM): Remove. + (MIPS_PROLOGUE_TEMP_REGNUM, MIPS_EPILOGUE_TEMP_REGNUM): New macros. + (MIPS_PROLOGUE_TEMP, MIPS_EPILOGUE_TEMP): New macros. + +2003-10-07 Richard Sandiford + + * config/mips/mips.c (mips_expand_prologue): Remove unused + traversal of function arguments. + +2003-10-07 Richard Sandiford + + * doc/invoke.texi: Remove documentation of -mentry. + * config/mips/mips.c (mips_entry_string, mips_entry): Remove. + (override_options, mips_save_reg_p): Remove handling. + (compute_frame_size, mips_output_function_prologue): Likewise. + (mips_expand_prologue, mips_expand_epilogue): Likewise. + * config/mips/mips.h (mips_entry_string): Remove declaration. + (TARGET_OPTIONS): Remove -mentry. + * config/mips/mips16.S: Remove mention of -mentry. + +2003-10-06 Zack Weinberg + + * libfuncs.h (LTI_extendsfdf2, LTI_extendsfxf2, LTI_extendsftf2) + (LTI_extenddfxf2, LTI_extenddftf2, LTI_truncdfsf2, LTI_truncxfsf2) + (LTI_trunctfsf2, LTI_truncxfdf2, LTI_trunctfdf2, LTI_floatsisf) + (LTI_floatdisf, LTI_floattisf, LTI_floatsidf, LTI_floatdidf) + (LTI_floattidf, LTI_floatsixf, LTI_floatdixf, LTI_floattixf) + (LTI_floatsitf, LTI_floatditf, LTI_floattitf, LTI_fixsfsi, LTI_fixsfdi) + (LTI_fixsfti, LTI_fixdfsi, LTI_fixdfdi, LTI_fixdfti, LTI_fixxfsi) + (LTI_fixxfdi, LTI_fixxfti, LTI_fixtfsi, LTI_fixtfdi, LTI_fixtfti) + (LTI_fixunssfsi, LTI_fixunssfdi, LTI_fixunssfti, LTI_fixunsdfsi) + (LTI_fixunsdfdi, LTI_fixunsdfti, LTI_fixunsxfsi, LTI_fixunsxfdi) + (LTI_fixunsxfti, LTI_fixunstfsi, LTI_fixunstfdi, LTI_fixunstfti) + (extendsfdf2_libfunc, extendsfxf2_libfunc, extendsftf2_libfunc) + (extenddfxf2_libfunc, extenddftf2_libfunc, truncdfsf2_libfunc) + (truncxfsf2_libfunc, trunctfsf2_libfunc, truncxfdf2_libfunc) + (trunctfdf2_libfunc, floatsisf_libfunc, floatdisf_libfunc) + (floattisf_libfunc, floatsidf_libfunc, floatdidf_libfunc) + (floattidf_libfunc, floatsixf_libfunc, floatdixf_libfunc) + (floattixf_libfunc, floatsitf_libfunc, floatditf_libfunc) + (floattitf_libfunc, fixsfsi_libfunc, fixsfdi_libfunc, fixsfti_libfunc) + (fixdfsi_libfunc, fixdfdi_libfunc, fixdfti_libfunc, fixxfsi_libfunc) + (fixxfdi_libfunc, fixxfti_libfunc, fixtfsi_libfunc, fixtfdi_libfunc) + (fixtfti_libfunc, fixunssfsi_libfunc, fixunssfdi_libfunc) + (fixunssfti_libfunc, fixunsdfsi_libfunc, fixunsdfdi_libfunc) + (fixunsdfti_libfunc, fixunsxfsi_libfunc, fixunsxfdi_libfunc) + (fixunsxfti_libfunc, fixunstfsi_libfunc, fixunstfdi_libfunc) + (fixunstfti_libfunc): Delete. + * optabs.h (struct optab_handlers): Break out of struct optab. + (struct convert_optab, convert_optab, enum convert_optab_index, + convert_optab_table, sext_optab, zext_optab, trunc_optab, + sfix_optab, ufix_optab, sfixtrunc_optab, ufixtrunc_optab, + sfloat_optab, ufloat_optab): New. + (set_conv_libfunc): Prototype. + (GEN_FCN): Use C90 indirect call syntax, remove unnecessary cast. + (trunc_optab): Renamed btrunc_optab. + * builtins.c (expand_builtin_mathfn): Update to match. + * optabs.c (extendtab, fixtab, fixtrunctab, floattab): Delete. + (convert_optab_table, new_convert_optab, init_convert_optab) + (init_interclass_conv_libfuncs, init_intraclass_conv_libfuncs) + (set_conv_libfunc): New. + (can_extend_p, gen_extend_insn, can_fix_p, can_float_p) + (expand_float, expand_fix): Use new conversion optabs, + not old insn code tables or long chains of ifs. + (init_optabs): No need to clear old insn code tables. + Initialize the new optabs, not the old libfunc array entries. + Don't handle FIXUNS_TRUNC_LIKE_FIX_TRUNC here. + * genopinit.c: Initialize conversion optabs, not the + former insn code tables. Remove unnecessary casts. + Handle FIXUNS_TRUNC_LIKE_FIX_TRUNC here. + * expr.c (convert_move): Remove redundant check that + to_real==from_real. Use the conversion optabs instead + of long chains of tests of modes. Move partial-integer-mode + interconversion above all integer conversion. Do not recurse + on a value forced into a register in the original mode. + + * config/gofast.h, config/frv/frv.c, config/ia64/ia64.c + * config/mips/mips.c, config/pa/pa.c, config/rs6000/rs6000.c + * config/sparc/sparc.c: Use set_conv_libfunc to adjust entries + in new conversion optabs; do not reference the old libfunc + array entries. No need to include libfuncs.h. + +2003-10-06 Roger Sayle + + * config/i386/i386.c (ix86_expand_setcc): Annotate the floating + point comparison sequence with a REG_EQUAL note that describes + the comparison's semantics. + +2003-10-06 Roger Sayle + + * expr.c (expand_expr ): Handle the void type semantics + of COND_EXPR when expanding the "A op 0 ? FOO : A" optimizations. + +2003-10-06 Roger Sayle + Zack Weinberg + + * optabs.c (prepare_float_lib_cmp): Avoid searching for REG_RETVAL + instruction by using LCT_CONST and then calling emit_libcall_block + ourselves. + +2003-10-06 Falk Hueffner + + PR optimization/11974 + * optabs.c (expand_unop): Promote libcall outmode according to + hard_libcall_value. + +2003-10-06 Zack Weinberg + + * real.h (REAL_MODE_FORMAT): New macro. + * c-cppbuiltin.c, optabs.c, real.c, config/alpha/alpha.c + * config/c4x/c4x.c, config/i370/i370.c, config/i386/freebsd.h + * config/i386/i386.c, config/i960/i960.c, config/ia64/ia64.c + * config/m68k/m68k.c, config/mips/mips.c, config/rs6000/rs6000.c + * config/vax/vax.c: Use REAL_MODE_FORMAT instead of referring + directly to real_format_for_mode array, wherever possible. + +2003-10-06 Devang Patel + + * dwarf2out.c (is_main_source): Remove variable. + (dwarf2out_start_source_file): Do not check is_main_source. + Do not reset is_main_source. + (dwarf2out_init): Do not initialize is_main_source. + +2003-10-06 Rainer Orth + + * fixinc/inclhack.def (stdio_va_list): Removed _ap fix. + (irix_stdio_va_list): Don't require leading printf, IRIX 6.5.21 + introduced some multi-line prototypes. + * fixinc/fixincl.x: Regenerate. + +2003-10-06 Richard Sandiford + + * config/mips/mips.h (PREDICATE_CODES): Add stack_operand. + * config/mips/mips.c (stack_operand): New predicate. + * config/mips/mips.md: Use it for the destination of mips16 insns + that store $31. + +2003-10-06 Richard Sandiford + + * config/mips/mips.md (*lowsi): Renamed from lowsi. + (*lowdi): Likewise lowdi. + (*lowsi_mips16, *lowdi_mips16): New patterns. + * config/mips/mips.c (mips_const_insns, mips_output_move): Remove + mips16 CONSTANT_RELOC handling. + (mips_delegitimize_address): Adjust for new sdata representation. + +2003-10-06 Richard Sandiford + + * config/mips/mips.c (mips_arg_info): If MUST_PASS_IN_STACK, + skip any remaining register arguments. + +2003-10-06 Ulrich Weigand + + * reload.c (find_reloads_subreg_address): Use correct offset for + paradoxical MEM subregs on big-endian targets. + +2003-10-06 Andrew Haley + + * tree.c (get_callee_fndecl): Call + lang_hooks.lang_get_callee_fndecl. + * langhooks-def.h (LANG_HOOKS_GET_CALLEE_FNDECL): New. + (lhd_get_callee_fndecl): New. + +2003-10-06 Andrew Pinski + + * config/darwin.c (machopic_non_lazy_ptr_name): Fix off by one + error in calculating the length of the string. + (machopic_stub_name): Likewise. + +2003-10-06 Roger Sayle + + * optabs.c (prepare_float_lib_cmp): Attach a REG_EQUAL note + describing the return value of the comparison libcall to the + REG_RETVAL instruction of the emitted sequence. + +2003-10-06 Eric Botcazou + + PR optimization/12215 + * cse.c (cse_set_around_loop): Emit the move at the beginning + of the next basic block for trapping sets. + +2003-10-06 Eric Botcazou + + PR optimization/11637 + * combine.c (adjust_for_new_dest): New function to adjust the + notes and LOG_LINKS when the dest of an insn has changed. + (try_combine): Use it when deleting the first insn of a two-insn + parallel or splitting a two-load parallel. + +2003-10-06 Richard Sandiford + + * config/mips/mips.c (mips_classify_constant): Only allow UNSPECs + if TARGET_EXPLICIT_RELOCS. + +2003-10-06 Mark Mitchell + + PR bootstrap/12512 + * Makefile.in (info): Use double-colon rules. + (dvi): Likewise. + (generated-manpages): Likewise. + * configure.in: Do not create lang.info, lang.dvi, or + lang.generated-manpages hooks. + * configure: Regenerated. + * objc/Make-lang.in (objc.info): Remove. + (objc.dvi): Remove. + (objc.generated-manpages): Remove. + * doc/sourcebuild.texi: Update description of info, dvi, and + generated-manpages hooks. + +2003-10-06 Richard Sandiford + + * config/mips/mips.md: Merge mips16 lw/srl pattern with its splitter. + +2003-10-05 Andrew Pinski + + * config/darwin.c (machopic_non_lazy_ptr_name): Fix off by one + errors in memcpy destinations. + (machopic_stub_name): Likewise. + +2003-10-05 Andrew Pinski + + * config/darwin.c (machopic_non_lazy_ptr_name): + Change strcat to memcpy and add length together. + (machopic_stub_name): Likewise. + +2003-10-05 Kaz Kojima + + * config/sh/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Handle new + signal trampoline codes. + +2003-10-05 Chris Demetriou + + * config/mips/mips.md (*divsf3): Move description of + SB-1 F2 erratum from here to... + (divsf3): Here. Disable if TARGET_FIX_SB1 is set and + flag_unsafe_math_optimizations is not. + +2003-10-05 Aldy Hernandez + + * config/rs6000/linuxspe.h: Define TARGET_SPE_ABI, TARGET_SPE, + TARGET_E500, TARGET_ISEL, and TARGET_FPRS. + +2003-10-05 Kazu Hirata + + * c-pretty-print.c: Fix comment typos. + * c-pretty-print.h: Likewise. + * calls.c: Likewise. + * cfgloopmanip.c: Likewise. + * cgraphunit.c: Likewise. + * cppfiles.c: Likewise. + * final.c: Likewise. + * function.c: Likewise. + * gcov-io.h: Likewise. + * gcse.c: Likewise. + * genoutput.c: Likewise. + * loop.c: Likewise. + * postreload.c: Likewise. + * reg-stack.c: Likewise. + * regmove.c: Likewise. + * sched-int.h: Likewise. + * sched-rgn.c: Likewise. + * simplify-rtx.c: Likewise. + * tree-inline.c: Likewise. + * config/m68hc11/m68hc11.h: Likewise. + * config/mmix/mmix.c: Likewise. + * config/mn10300/mn10300.md: Likewise. + * config/sh/sh.h: Likewise. + +2003-10-05 Richard Henderson + + * tree-inline.c (remap_type): New. + (remap_decl): Use it. Remap DECL_SIZE*. + (copy_body_r): Use it. + (walk_tree): Walk TREE_TYPE too. + (copy_tree_r): Don't walk subtrees of types. + * tree.c (variably_modified_type_p): Restructure. Consider integer + types with non-const bounds variably modified. + +2003-10-05 Kazu Hirata + + * doc/invoke.texi: Fix typos. + +2003-10-05 Kazu Hirata + + * fold-const.c: Follow spelling conventions. + * function.c: Likewise. + * config/c4x/c4x.h: Likewise. + * config/c4x/c4x.md: Likewise. + * config/frv/frv.md: Likewise. + * config/rs6000/aix.h: Likewise. + * config/rs6000/linux64.h: Likewise. + * config/xtensa/xtensa.c: Likewise. + +2003-10-05 Kazu Hirata + + * c-pretty-print.c: Fix comment formatting. + * cfglayout.c: Likewise. + * cfgloopanal.c: Likewise. + * cppcharset.c: Likewise. + * dbxout.c: Likewise. + * ggc-page.c: Likewise. + * ggc.h: Likewise. + * target.h: Likewise. + +2003-10-04 Kelley Cook + + * gengtype-lex.l: Recognize typedef of functions without PARAMS macro. + +2003-10-04 Nathanael Nerode + + * config/v850/v850-c.c, config/v850/v850-protos.h, config/v850/v850.c: + Convert to ISO C90 function declarations and definitions. + +2003-10-04 Zack Weinberg + + * libfuncs.h + (LTI_eqhf2, LTI_nehf2, LTI_gthf2, LTI_gehf2, LTI_lthf2) + (LTI_lehf2, LTI_unordhf2, LTI_eqsf2, LTI_nesf2, LTI_gtsf2) + (LTI_gesf2, LTI_ltsf2, LTI_lesf2, LTI_unordsf2, LTI_eqdf2) + (LTI_nedf2, LTI_gtdf2, LTI_gedf2, LTI_ltdf2, LTI_ledf2) + (LTI_unorddf2, LTI_eqxf2, LTI_nexf2, LTI_gtxf2, LTI_gexf2) + (LTI_ltxf2, LTI_lexf2, LTI_unordxf2, LTI_eqtf2, LTI_netf2) + (LTI_gttf2, LTI_getf2, LTI_lttf2, LTI_letf2, LTI_unordtf2) + (eqhf2_libfunc, nehf2_libfunc, gthf2_libfunc, gehf2_libfunc) + (lthf2_libfunc, lehf2_libfunc, unordhf2_libfunc, eqsf2_libfunc) + (nesf2_libfunc, gtsf2_libfunc, gesf2_libfunc, ltsf2_libfunc) + (lesf2_libfunc, unordsf2_libfunc eqdf2_libfunc, nedf2_libfunc) + (gtdf2_libfunc, gedf2_libfunc, ltdf2_libfunc, ledf2_libfunc) + (unorddf2_libfunc eqxf2_libfunc, nexf2_libfunc, gtxf2_libfunc) + (gexf2_libfunc, ltxf2_libfunc, lexf2_libfunc, unordxf2_libfunc + (eqtf2_libfunc, netf2_libfunc, gttf2_libfunc, getf2_libfunc) + (lttf2_libfunc, letf2_libfunc, unordtf2_libfunc): + Delete. + * optabs.h (OTI_eq, OTI_ne, OTI_gt, OTI_ge, OTI_lt, OTI_le) + (OTI_unord, eq_optab, ne_optab, gt_optab, ge_optab, lt_optab) + (le_optab, unord_optab): New. + + * optabs.c (prepare_float_lib_cmp): Rewrite. Get the libfuncs + from the code_to_optab table, not a giant switch; use + swap_condition; do widening only if a comparison function that + we can call exists in a wider mode, not if a cmp_optab insn or + libfunc exists in a wider mode; call protect_from_queue + exactly once on each operand. + (init_optabs): Initialize the new optabs, not the deleted libfuncs. + + * config/gofast.h, config/ia64/ia64.c, config/mips/mips.c + * config/pa/pa.c, config/rs6000/rs6000.c, config/sparc/sparc.c: + Set floating point comparison libfuncs using set_optab_libfunc + on the appropriate optab. + + * config/ia64/ia64.c (ia64_hpux_init_libfuncs): Fix typo. + * config/rs6000/rs6000.c (rs6000_init_libfuncs): Correct ABI + selector conditionals. + +2003-10-04 Stephane Carrez + + * config/m68hc11/t-m68hc11-gas (MULTILIB_MATCHES): m68hcs12 is + identical to m68hc12 as far as libraries are concerned. + +2003-10-04 Eric Botcazou + + PR c/12446 + * c-typeck.c (convert_for_assignment): Issue an error for + array to pointer assignment after default conversion. + (digest_init): Likewise. + +2003-10-04 Fariborz Jahanian + + * c-decl.c (duplicate_decls): retain DECL_COMMON of old declaration + +2003-10-03 Gerald Pfeifer + + * doc/extend.texi (Function Attributes): Fix title of GNU C + Preprocessor manual. + (C++ Extensions): Fix reference to "Predefined Macros" in the + GNU C Preprocessor manual. + +2003-10-04 Richard Earnshaw + + * doc/extend.texi: Document how GCC estimates and relies on the size + of an asm. + +2003-10-04 Richard Sandiford + + * config/mips/mips.c (mips_pad_arg_upward): Pad floating-point + arguments downward for big-endian o64. + +2003-10-03 Robert Bowdidge + + * ggc-page.c (ggc_pch_write_object): Replace fseek() with fwrite() in + PCH generation, avoiding too-frequent flushes when writing to NFS + file system. + +2003-10-03 Ziemowit Laski + + * objc/objc-act.c (lookup_category): Mark as 'inline'. + +2003-10-03 Alexander Malmberg + Ziemowit Laski + + * objc/objc-act.c (add_method_to_hash_list, lookup_category): + New functions. + (lookup_method_in_hash_lists): New parameter indicating whether + we are messaging 'Class' or 'id'. + (check_duplicates): Likewise; do not assume all methods will + be either class or instance methods. + (generate_category, finish_class): Use lookup_category(). + (add_method): Use add_method_to_hash_list(); insert instance + methods of root classes into the global class method hash table. + (add_category): Use lookup_category(); avoid constructing + duplicate categories. + (really_start_method): Add method to corresponding @interface, + if not already there (and if the @interface exists). + (finish_message_expr, finish_objc): Adjust calls to + check_duplicates(). + +2003-10-03 Roger Sayle + + PR optimization/9325, PR java/6391 + * fold-const.c (fold_convert): For floating point to integer + conversions, return the maximum/minimum representable integer + value if the real constant overflows the destination type. + * tree.c (real_value_from_int_cst): Allow the type to be NULL, + meaning don't truncate the result to a floating point mode. + Simplify the logic by calling real_from_integer directly. + * simplify-rtx.c (simplify_unary_operation): Implement the + same semantics for folding floating point to integer conversions + in RTL. + +2003-10-03 Chris Demetriou + + * config/mips/mips.c (mips_emit_prefetch): Restructure + to avoid use of arrays, handle indexed prefetch. + * config/mips/mips.h (ISA_HAS_FP4, ISA_HAS_PREFETCH): Update comments. + (ISA_HAS_PREFETCHX): New deffine. + * config/mips/mips.md ("type" attr): Add new "prefetchx" value, + update comments. + (prefetch_indexed_di, prefetch_indexed_si): New insns. + +2003-10-03 Jeff Sturm + Roger Sayle + + PR optimization/12289 + * calls.c (emit_call_1): Pretend to have popped the arguments + to noreturn and longjmp functions instead of ignoring them. + (expand_call): Don't adjust stack_pointer_dela while + inhibit_defer_pop is set. + +2003-10-03 Andreas Schwab + + PR bootstrap/12276 + * configure.in: Check for libunwind on the host only if building + a native compiler. + * configure: Regenerated. + +2003-10-03 Paolo Carlini + + * unwind-pe.h (read_encoded_value_with_base): Constify u and + its inizialization cast. + +2003-10-03 Richard Sandiford + + PR target/12485 + * config/mips/mips.c (mips_load_got): GOT accesses can't trap. + +2003-10-02 Mark Mitchell + + PR optimization/12180 + * tree-inline.c (inline_forbidden_p_1): Do not permit inlining of + functions containing calls to __builtin_next_arg. + +2003-10-02 Chris Demetriou + + * config/mips/mips.c (mips_emit_prefetch): Use operand 3 + in instructions being output. + * config/mips/mips.md (prefetch_si_address): Change third + operand's constraint letter to 'I'. + (prefetch_di_address): Likewise. + (prefetch_si, prefetch_di): Set third operand to const0_rtx. + +2003-10-02 Zack Weinberg + + * system.h: Poison macros obsoleted by earlier patch. + * config/cris/cris.c: C90-ify a function definition. + +2003-10-02 Josef Zlomek + + PR/12292 + * combine.c (make_field_assignment): Check whether rtx's code + is CONST_INT before using INTVAL. + +2003-10-02 Josef Zlomek + + * cgraph.c (cgraph_node): Use INSERT instead of 1 in + htab_find_slot_with_hash. + (cgraph_node_for_identifier): Use NO_INSERT. + (cgraph_remove_node): Use NO_INSERT. + (cgraph_varpool_node): Use INSERT. + (cgraph_varpool_node_for_identifier): Use NO_INSERT. + +2003-10-02 Josef Zlomek + + Waldek Hebisch + PR/12072 + * varasm.c (compare_constant): Fix thinko. + +2003-10-02 Richard Sandiford + + * config/frv/frv.c (frv_issue_rate): New function. + (frv_pack_insns): Use it. + (TARGET_SCHED_ISSUE_RATE): Define. + +2003-10-02 Steven Bosscher + + * config/mcore/mcore.c: Convert to ISO C90 function declarations + and definitions. + * config/mcore/mcore.h: Likewise. + * config/mcore/mcore-protos.h: Likewise. + +2003-10-02 Richard Sandiford + + * config/frv/frv.c (frv_use_dfa_pipeline_interface): New function. + (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define. + +2003-10-01 Per Bothner + + * c-lex.c (src_line): Remove unneeded static variable. + (cb_line_change): Set input_line directly, instead of src_line. + (get_non_padding_token): We no longer need to compensate for the + "horrible things" the C++ front-end does with the current line number, + + * cpplib.c (_cpp_pop_buffer): Do generate a _cpp_do_file_change + callback even when popping the main file. + * c-lex.c (fe_file_change): Handle a NULL new_map. + * fix-header.c (cb_file_change): Likewise. + * c-ppoutput.c (pp_file_change): Likewise. + + * cppinit.c (cpp_read_main_file): Split into two functions: + Distribute _cpp_stack_file call over the two functions. + (cpp_find_main_file): New function. + Don't call _cpp_do_file_change even if working_directory flag set. + (cpp_push_main_file): New function. + * cppfiles.c (_cpp_find_failed): New helper function. + (find_file): Made non-static and renamed to _cpp_find_file. + (_cpp_stack_file): No longer needed. But note the following. + (stack_file): Made non-static and renamed to _cpp_stack_file. + * fix-header.c (cpp_read_main_file): Replace cpp_read_main_file + call with calls to cpp_find_main_file and cpp_push_main_file. + (search_path_head): If there is no current buffer, use main_file. + * cpphash.h: Update function declarations. + * cpplib.h: Update function declarations. + + * c-opts.c (c_common_post_options): Don't call cpp_find_main_file yet. + (c_common_parse_file): No longer need to call cpp_read_main_file + when file_index > 0 (as in multi-file or server compiation). + (finish_options): Change to is an LC_ENTER, not LC_RENAME + as this now happens before cpp_push_main_file. + (push_command_line_include): When done with options, pass LC_LEAVE + instead of LC_RENAME to cpp_change_file and finally cpp_push_main_file. + (fe_file_change): Handle NULL new_map, and simplify. + * cpplex.c (_cpp_get_fresh_line): Revert my no-longer-needed + 08-28 change, since we're never called with a NULL buffer. + (_cpp_lex_direct): Likewise. + * cpptrad.c (_cpp_read_logical_line_trad): Likewise. + Return false if buffer is NULL at end. + + * cpplex.c (_cpp_get_fresh_line): Return value now just depends on + whether pfile->buffer is NULL after pop, ignoring return_at_eof. + * cpphash.h (struct cpp_buffer): Remove unused return_at_eof field. + * cpplib.c (cpp_push_buffer): Since we no longer set return_at_eof, + remove the unused return_at_eof parameter. + * cppfiles.c, cpplib.c, cppmacro.c, cpppch.c, fix-header.c: + Update callers of cpp_push_buffer. + +2003-10-01 Zack Weinberg + + * target.h (init_libfuncs): New hook. + * target-def.h: Default TARGET_INIT_BUILTINS and + TARGET_INIT_LIBFUNCS to hook_void_void. Add + TARGET_INIT_LIBFUNCS to TARGET_INITIALIZER. + * builtins.c (default_init_builtins): Delete. + * expr.h (default_init_builtins): Delete prototype. + * doc/tm.texi: Document TARGET_INIT_LIBFUNCS and US_SOFTWARE_GOFAST. + Tweak documentation of TARGET_FLOAT_LIB_COMPARE_RETURNS_BOOL. + Remove documentation of INIT_TARGET_OPTABS, MULSI3_LIBCALL, + DIVSI3_LIBCALL, UDIVSI3_LIBCALL, MODSI3_LIBCALL, UMODSI3_LIBCALL, + MULDI3_LIBCALL, DIVDI3_LIBCALL, UDIVDI3_LIBCALL, MODDI3_LIBCALL, + and UMODDI3_LIBCALL, + + * Makefile.in (optabs.o): Depends on target.h. + * defaults.h: Provide default for FLOAT_LIB_COMPARE_RETURNS_BOOL. + * optabs.c: Include target.h. + (prepare_float_lib_cmp): No need for #ifdef around use of + FLOAT_LIB_COMPARE_RETURNS_BOOL. + (set_optab_libfunc): New function. + (init_optabs): Delete use of all *_LIBCALL defines. + Call targetm.init_libfuncs not INIT_TARGET_OPTABS. + * optabs.h: Prototype set_optab_libfunc. + + * config.gcc: Remove all references to pa/long_double.h, + ia64/hpux_longdouble.h, and gofast.h. + (mips-*-*): When --enable-gofast, just add US_SOFTWARE_GOFAST + to tm_defines; don't set INIT_SUBTARGET_OPTABS or change tm_file. + + * config/alpha/alpha.c, config/c4x/c4x.c, config/cris/cris.c + * config/frv/frv.c, config/h8300/h8300.c, config/i860/i860.c + * config/ia64/ia64.c, config/ip2k/ip2k.c, config/m68hc11/m68hc11.c + * config/mips/mips.c, config/pa/pa.c, config/rs6000/rs6000.c + * config/sparc/sparc.c, config/vax/vax.c: + Provide a definition for TARGET_INIT_LIBFUNCS. Where + necessary, include optabs.h, libfuncs.h, and/or config/gofast.h. + + * config/alpha/unicosmk.h, config/alpha/vms.h, config/c4x/c4x.h + * config/avr/avr.h, config/cris/cris.h, config/frv/frv.h + * config/h8300/h8300.h, config/i860/i860.h, config/ip2k/ip2k.h + * config/iq2000/iq2000.h, config/m68hc11/m68hc11.h, config/mips/mips.h + * config/rs6000/aix.h, config/rs6000/sysv4.h, config/sparc/elf.h + * config/sparc/lite.h, config/sparc/netbsd-elf.h, config/sparc/sol2.h + * config/sparc/sparc.h, config/v850/v850.h, config/vax/vax.h + * config/vax/elf.h: Don't define or use INIT_TARGET_OPTABS, + INIT_SUBTARGET_OPTABS, or any *_LIBCALL macros. + + * config/ia64/hpux.h: Redefine INTEL_EXTENDED_IEEE_FORMAT to 0. + Set TARGET_INIT_LIBFUNCS and FLOAT_LIB_COMPARE_RETURNS_BOOL here. + * config/pa/pa-hpux.h: Define LONG_DOUBLE_TYPE_SIZE, + HPUX_LONG_DOUBLE_LIBRARY, and FLOAT_LIB_COMPARE_RETURNS_BOOL here. + * config/ia64/hpux_longdouble.h, config/pa/long_double.h: Delete. + + * config/rs6000/xcoff.h: Don't define RS6000_ITRUNC nor RS6000_UITRUNC. + * config/sparc/sparc.h: Default SUN_CONVERSION_LIBFUNCS and + SUN_INTEGER_MULTIPLY_64 to 0. + * config/sparc/sol2.h: Redefine SUN_CONVERSION_LIBFUNCS and + SUN_INTEGER_MULTIPLY_64 to 1. + * config/sparc/elf.h: Redefine SUN_CONVERSION_LIBFUNCS and + SUN_INTEGER_MULTIPLY_64 to 0. + * config/sparc/lite.h, config/sparc/liteelf.h, config/sparc/sp86x-elf.h: + Define US_SOFTWARE_GOFAST. + * config/vax/vax.h: Default TARGET_ELF to 0. + * config/vax/elf.h: Redefine TARGET_ELF to 1. + + * config/gofast.h: Don't define any macros here. Provide one + static function, gofast_maybe_init_libfuncs, which does what + INIT_GOFAST_LIBFUNCS used to do but only if US_SOFTWARE_GOFAST + is already defined. Do not clear negation libfuncs. Do + not mess with HFmode, XFmode, or TFmode libfuncs. + + * config/avr/avr.c (avr_init_once): #if 0 out; mark FIXME. + +2003-10-01 Kelley Cook + + PR C/12466 + * c-parse.in (parmlist_2): Mark declaration with an ellipsis as ISO C. + +2003-10-01 Rainer Orth + + * config/mips/xm-iris5.h: Remove, unnecessary. + * config.build (mips-sgi-irix5*): Remove. + (mips-sgi-irix6*o32): Likewise. + * config.gcc (mips-sgi-irix6*o32): Remove xm_file. + (mips-sgi-irix5cross64): Likewise. + (mips-sgi-irix5*): Likewise. + * config.host (mips-sgi-irix5*): Remove. + (mips-sgi-irix6*o32): Likewise. + +2003-10-01 Zack Weinberg + + * dbxout.c (dbxout_fptype_value): Delete. + (dbxout_type): Emit R3 for all COMPLEX_TYPEs. + +2003-10-01 Alexandre Oliva + + * output.h (compute_reloc_for_constant): Declare. + * varasm.c (compute_reloc_for_constant): Extract from... + (output_addressed_constants): ... here. Adjust all callers. + +2003-10-01 John David Anglin + + * aclocal.m4: Add hpux10* and hpux11.00 to /dev/zero blacklist. + * configure: Rebuilt. + +2003-10-01 Richard Kenner + + * fold-const.c (make_range): When handling unsigned, don't reverse + range if high bound is zero. + +2003-09-30 Alexandre Oliva + + * config/frv/frv.h (PREDICATE_CODES): Added + condexec_si_media_operator, condexec_sf_add_operator and + condexec_sf_conv_operator. Removed condexec_sf_binary_operator + and condexec_sf_unary_operator. + +2003-10-01 John David Anglin + + * aclocal.m4: Add ultrix* to /dev/zero blacklist. + * configure: Rebuilt. + +2003-10-01 Rainer Orth + + * except.h (MUST_USE_SJLJ_EXCEPTIONS): Revert 2003-09-23 change. + Allow override. + * doc/tm.texi (MUST_USE_SJLJ_EXCEPTIONS): Document. + +2003-09-23 David S. Miller + + * config/sparc/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Undefine + before redefining. + * config/sparc/linux64.h (LINK_GCC_C_SEQUENCE_SPEC): Likewise. + +2003-10-01 Steven Bosscher + + * config/cris/cris-protos.h, config/cris/cris.c: Convert to ISO + C90 function declarations and definitions. + +2003-10-01 Nathanael Nerode + + * config.gcc (cris-*-linux*): Revert mistaken commit. + +2003-10-01 Eric Botcazou + + PR optimization/11753 + * config/sparc/sparc.md (length attribute) [fcc branch]: Add 1 to + the length in the non-V9 case. + +2003-09-30 Richard Henderson + + * dwarf2out.c (expand_builtin_init_dwarf_reg_sizes): Honor + DWARF_ALT_FRAME_RETURN_COLUMN. + * unwind-dw2.c (dwarf_reg_size_table): Expand by one. + (_Unwind_GetGR, _Unwind_SetGR): Validate lookup column. + (uw_frame_state_for): Return end-of-stack for null return address. + * doc/tm.texi (DWARF_ALT_FRAME_RETURN_COLUMN): Add. + + * config/alpha/alpha.c (alpha_sa_mask): Add r31 for eh_return. + (alpha_expand_prologue): Store a zero for it. + (alpha_expand_epilogue): Don't reload it. + * config/alpha/alpha.h (DWARF_ALT_FRAME_RETURN_COLUMN): New. + * config/alpha/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Use column 64 + for the sigframe return address. + +2003-09-30 Kelley Cook + + * sdbout.c: Convert to ISO C90 prototypes. + * objc/objc-act.c: Likewise. + +2003-09-30 Kelley Cook + + * config/i386/cygwin1.c: Convert to ISO C90 prototypes. + * config/i386/winnt.c: Likewise. + * config/i386/cygming.h: Likewise. + +2003-09-30 Kazu Hirata + + * fold-const.c (fold): Fold (A & ~B) - (A & B) into + (A ^ B) - B for any B. + +2003-09-30 Nathanael Nerode + + * config.gcc (arm*-*-kaos*, i[34567]86-*-kaos*, powerpc-*-kaos*, + powerpcle-*-kaos*, strongarm-*-kaos*): Disable fixproto. + +2003-09-30 Richard Earnshaw + + * arm/ieee754-sf.S: Tidy formatting. + +2003-09-30 Nicolas Pitre + + * arm/lib1funcs.asm (ARM_DIV_MOD_BODY): Split into ARM_DIV_BODY + and ARM_MOD_BODY. + (ARM_MOD_BODY): Rewritten. added clz insns for __ARM_ARCH__ >= 5. + (ARM_DIV_BODY): Added clz insns for __ARM_ARCH__ >= 5, + added better divisor alignment in the other case. + (ARM_DIV2_ORDER): Added, finds the order of a single bit divisor. + (__divsi3, __udivsi3, __modsi3, __umodsi3): rewritten using the + macros above, add fast exits for divisor >= dividend, etc. + +2003-09-30 Nicolas Pitre + + * arm/ieee754-df.S: Split compilation of fixunsdfsi from + L_fixdfsi target. + * arm/t-arm-elf (LIB1ASMFUNCS): Add _fixunsdfsi. + +2003-09-30 Nathanael Nerode + + * config.gcc: Default use_fixproto to 'no'. + +2003-09-30 Richard Sandiford + + PR optimization/12345 + * config/mips/mips-protos.h (mips_restore_gp): Remove. + (mips_gp_save_slot): Declare. + * config/mips/mips.c (mips_restore_gp): Remove in favor of... + (mips_gp_save_slot): ...this new function. + * config/mips/mips.md (exception_receiver): Use mips_gp_save_slot + and mips_output_move to generate the output template. + (call_internal): Force splitting if TARGET_SPLIT_CALLS. Don't emit + a gp load after a noreturn call. Load the gp using a move rather + than an exception_receiver pattern. + (call_value_internal, call_value_multiple_internal): Likewise. + (call_split, call_value_split, call_value_multiple_split): Clobber $28. + +2003-09-30 Carlo Wood + + PR debug/12319 + * cfglayout.c (insn_scope): Use prologue_locator and + epilogue_locator; return the outer function scope for + pro- and epilogue insns. + +2003-09-29 Zack Weinberg + + * objc/objc-act.c (encode_type): Encode INTEGER_TYPEs and + REAL_TYPEs based on the bitsize of the type's mode, not the + mode directly. + +2003-09-29 Rainer Orth + + * dwarf2out.c (default_eh_frame_section): Split into ... + (named_section_eh_frame_section, collect2_eh_frame_section): ... new + functions. + * output.h (named_section_eh_frame_section): Declare. + (collect2_eh_frame_section): Likewise. + +2003-09-29 Zack Weinberg + + * real.c (real_sqrt): Use get_canonical_qnan directly. + + * dwarf2out.c (add_const_value_attribute): Use real_to_target. + + * varasm.c (assemble_real): Use real_to_target directly, + calculate the number of significant elements of the result + array and write them out in a loop, instead of using a giant + switch statement to pick the correct REAL_VALUE_TO_TARGET_* + macro. + +2003-09-29 Jan Hubicka + + PR c++/12175 + * varasm.c (notice_global_symbol): Discard external symbols. + + PR optimization/12286 + * gcov-io.c (gcov_read_words): Fix memmove call. + * profile.c (compute_branch_probabilities): Add extra sanity checks. + +2003-09-29 Rainer Orth + + * config.gcc (sparc-*-solaris2*): Handle Solaris 10 and up like + Solaris 7-9. + + * fixinc/inclhack.def (solaris_widec): Replace solaris2.[0-5]* by + wildcards which explicitly match micro versions. + * fixinc/fixincl.x: Regenerate. + +2003-09-29 Kazu Hirata + + * fold-const.c (fold): Fold (A & ~B) - (A & B) into + (A ^ B) - B, where B is any power of 2 minus 1. + +2003-09-29 Jan Hubicka + + * libgcov.c (gcov_exit): Fix two pastos. + +2003-09-29 Kazu Hirata + + * config/h8300/h8300.md (*tst_extzv_1_n): Combine with the + define_split immediately below to form define_insn_and_split. + +2003-09-29 Kazu Hirata + + * config/h8300/h8300.md (*tstsi_variable_bit): New. + (*tstsi_variable_bit_qi): Likewise. + +2003-09-28 Phil Edwards + + * doc/cppopts.texi: Use 'dashMP' instead of '-MP' as a cross- + reference name. + +2003-09-28 Richard Henderson + + * c-decl.c (duplicate_decls): Copy DECL_SOURCE_LOCATION, not + file and line separately. + +2003-09-28 Ulrich Weigand + + * config/s390/s390.md ("*adddi3_carry1_cc", "*adddi3_carry1_cconly", + "*adddi3_carry2_cc", "*adddi3_carry2_cconly", "*subdi3_borrow_cc", + "*subdi3_borrow_cconly"): New insns. + ("*addsi3_sub", "*subsi3_sub"): Remove. + ("*subdi3_cc", *subdi3_cconly"): Use only if TARGET_64BIT. + ("*subsi3_cc"): Fix op_type attribute. + +2003-09-28 Richard Henderson + + * stmt.c (expand_asm_operands): Take a location_t, instead of + individual file and line. + * c-typeck.c (c_expand_asm_operands): Likewise. + * tree.h (expand_asm_operands): Update decl. + * c-common.h (c_expand_asm_operands): Likewise. + * c-semantics (genrtl_asm_stmt): Update call. + +2003-09-28 Philip Blundell + + * config/arm/arm.c (legitimize_pic_address): Check + SYMBOL_REF_LOCAL_P, not ENCODED_SHORT_CALL_ATTR_P. + (arm_assemble_integer): Likewise. + +2003-09-28 Steven Bosscher + + * config/pdp11/pdp11-protos.h, config/pdp11/pdp11.c, + config/c4x/c4x-c.c, config/c4x/c4x-protos.h, config/c4x/c4x.c, + config/c4x/c4x.h: + Convert to ISO C90 function declarations and definitions. + +2003-09-28 Steven Bosscher + + * config/stormy16/stormy16.c, config/stormy16/stormy16-protos.h: + Convert to ISO C90 function declarations and definitions. + +2003-09-28 Richard Sandiford + + * config/mips/mips.c (mips_constant_info): Add reloc field. + (mips_classify_constant): Initialize it. Always set SYMBOL to the + underlying symbol, not to an unspec. + (mips_delegitimize_address, print_operand): Clean up accordingly. + +2003-09-28 Richard Sandiford + + * config/mips/mips-protos.h (mips16_gp_pseudo_reg): Remove. + * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Remove orphaned comment. + * config/mips/mips.c (mips_reloc_offset_ok_p): New function. + (mips_classify_constant): Use it. + (mips_splittable_symbol_p): Add an offset argument. + (mips_classify_address): Adjust call accordingly. + (mips_legitimize_symbol): Handle sdata references with LO_SUM rather + than a relocation unspec. Update call to mips_splittable_symbol_p. + Generalize the code that copes with symbols + invalid offsets. + (print_operand): Allow '%R' to be applied to small data addresses. + (mips_reloc_string): Remove RELOC_GPREL16. + (mips_sdata_pointer): Renamed from mips16_gp_pseudo_reg. Return $gp + for TARGET_EXPLICIT_RELOCS. Return null if we can't use gp-relative + relocation operators. + * config/mips/mips.md (RELOC_GPREL16): Remove. Shuffle other reloc + constants accordingly. + +2003-09-27 Roger Sayle + + * toplev.c (flag_evaluation_order): New global variable. + * flags.h (flag_evaluation_order): Prototype here. + * expr.c (expand_operands): If we need to preserve observable + evaluation order, protect exp1 from clobbering exp0's result. + +2003-09-28 Andreas Jaeger + + * c-decl.c (finish_function): Convert definition to ISO C90. + * ifcvt.c (mark_loop_exit_edges): Likewise. + * ra-rewrite.c (emit_colors): Likewise. + +2003-09-27 Nathanael Nerode + + * config.gcc (alpha*-dec-osf[45]*): Disable fixproto. + * config.gcc (arm*-*-uclinux*): Disable fixproto. + * config.gcc (powerpc-*-eabispe*, powerpc-*-eabisimaltivec*, + powerpc-*-eabialtivec*): Disable fixproto. + +2003-09-27 Eric Botcazou + + PR optimization/12340 + * loop.h (struct induction): Document the new semantics + of the 'same' field for bivs. + * unroll.c (biv_total_increment): Don't count the same + biv increment several times. + (loop_iterations) [GENERAL_INDUCT]: Likewise. + +2003-09-27 Graham Stott + + * unroll.c (loop_interations)[GT]: Add missing break. + +2003-09-27 Kelley Cook + + * config/chorus.h, config/darwin-c.c, config/darwin-protos.h, + config/darwin.c, config/darwin.h, config/dbx.h, config/dbxcoff.h, + config/dbxelf.h, config/elfos.h, config/fp-bit.h, + config/freebsd-nthr.h, config/freebsd-spec.h, config/freebsd.h, + config/freebsd3.h, config/freebsd4.h, config/freebsd5.h, + config/freebsd6.h, config/netbsd-aout.h, config/netbsd-elf.h, + config/netbsd.h, config/netware.h, config/openbsd-oldgas.h, + config/openbsd.h, config/ptx4.h, config/alpha/alpha-protos.h, + config/alpha/alpha.c, config/alpha/alpha.h, config/alpha/alpha.md, + config/alpha/elf.h, config/alpha/ev4.md, config/alpha/ev5.md, + config/alpha/ev6.md, config/alpha/freebsd.h, config/alpha/linux-elf.h, + config/alpha/linux.h, config/alpha/netbsd.h, config/alpha/openbsd.h, + config/alpha/osf.h, config/alpha/osf5.h, config/alpha/unicosmk.h, + config/alpha/vms-cc.c, config/alpha/vms-crt0-64.c, + config/alpha/vms-crt0.c, config/alpha/vms-dwarf2.asm, + config/alpha/vms-dwarf2eh.asm, config/alpha/vms-ld.c, + config/alpha/vms-psxcrt0-64.c, config/alpha/vms-psxcrt0.c, + config/alpha/vms.h, config/alpha/vms64.h, config/alpha/vms_tramp.asm, + config/alpha/xm-vms.h, config/arc/arc-modes.def, + config/arc/arc-protos.h, config/arc/arc.c, config/arc/arc.h, + config/arc/arc.md, config/arc/initfini.c, config/arc/lib1funcs.asm, + config/avr/avr-protos.h, config/avr/avr.c, config/avr/avr.h, + config/avr/avr.md, config/d30v/d30v-protos.h, config/d30v/d30v.h, + config/d30v/d30v.md, config/fr30/fr30-protos.h, config/fr30/fr30.c, + config/fr30/fr30.h, config/fr30/fr30.md, config/fr30/lib1funcs.asm, + config/frv/cmovd.c, config/frv/cmovh.c, config/frv/cmovw.c, + config/frv/frv-abi.h, config/frv/frv-asm.h, config/frv/frv-modes.def, + config/frv/frv-protos.h, config/frv/frv.c, config/frv/frv.h, + config/frv/frv.md, config/frv/frvbegin.c, config/frv/frvend.c, + config/frv/lib1funcs.asm, config/h8300/clzhi2.c, config/h8300/ctzhi2.c, + config/h8300/parityhi2.c, config/h8300/popcounthi2.c, + config/i370/i370-c.c, config/i370/i370-protos.h, config/i370/i370.c, + config/i370/i370.h, config/i370/i370.md, config/i370/linux.h, + config/i370/mvs.h, config/i370/oe.h, config/i386/darwin.h, + config/i960/i960-c.c, config/i960/i960-coff.h, + config/i960/i960-modes.def, config/i960/i960-protos.h, + config/i960/i960.c, config/i960/i960.h, config/i960/i960.md, + config/i960/rtems.h, config/ia64/elf.h, config/ia64/ia64.h, + config/m32r/initfini.c, config/m32r/m32r-protos.h, config/m32r/m32r.c, + config/m32r/m32r.h, config/m32r/m32r.md, config/m68hc11/larith.asm, + config/m68hc11/m68hc11-protos.h, config/m68hc11/m68hc11.c, + config/m68hc11/m68hc11.h, config/m68hc11/m68hc11.md, + config/m68hc11/m68hc12.h, config/m68k/coff.h, config/m68k/crti.s, + config/m68k/crtn.s, config/m68k/hp320.h, config/m68k/hp320base.h, + config/m68k/lb1sf68.asm, config/m68k/linux.h, config/m68k/m68020-elf.h, + config/m68k/m68k-aout.h, config/m68k/m68k-none.h, + config/m68k/m68k-protos.h, config/m68k/m68k.c, config/m68k/m68k.h, + config/m68k/m68k.md, config/m68k/m68kelf.h, config/m68k/m68kv4.h, + config/m68k/netbsd-elf.h, config/m68k/openbsd.h, + config/m68k/rtemself.h, config/m68k/sgs.h, config/mcore/lib1.asm, + config/mcore/mcore-elf.h, config/mcore/mcore-pe.h, + config/mcore/mcore-protos.h, config/mcore/mcore.c, + config/mcore/mcore.md, config/mips/elf.h, config/mips/elf64.h, + config/mips/elforion.h, config/mips/iris5.h, config/mips/iris6.h, + config/mips/iris6gld.h, config/mips/irix6-libc-compat.c, + config/mips/linux.h, config/mips/mips-protos.h, config/mips/mips.c, + config/mips/mips.h, config/mips/mips.md, config/mips/netbsd.h, + config/mips/openbsd.h, config/mips/r3900.h, config/mips/rtems.h, + config/mips/vr.h, config/mn10300/linux.h, + config/mn10300/mn10300-protos.h, config/mn10300/mn10300.c, + config/mn10300/mn10300.h, config/mn10300/mn10300.md, + config/ns32k/__unorddf2.c, config/ns32k/__unordsf2.c, + config/ns32k/netbsd.h, config/ns32k/ns32k-protos.h, + config/ns32k/ns32k.c, config/ns32k/ns32k.h, config/ns32k/ns32k.md, + config/pdp11/2bsd.h, config/pdp11/pdp11-modes.def, + config/pdp11/pdp11-protos.h, config/pdp11/pdp11.c, + config/pdp11/pdp11.h, config/pdp11/pdp11.md, config/rs6000/biarch64.h, + config/rs6000/default64.h, config/sh/coff.h, config/sh/crt1.asm, + config/sh/crti.asm, config/sh/crtn.asm, config/sh/elf.h, + config/sh/embed-elf.h, config/sh/linux.h, config/sh/little.h, + config/sh/netbsd-elf.h, config/sh/rtems.h, config/sh/rtemself.h, + config/sh/sh-protos.h, config/sh/sh.c, config/sh/sh.h, + config/sh/sh.md, config/sh/sh64.h, config/sh/shmedia.h, + config/sh/sshmedia.h, config/sh/ushmedia.h, config/sparc/pbd.h, + config/sparc/sparc.h, doc/install-old.texi, fixinc/fixinc.ptx, + fixinc/fixinc.svr4: GNU CC -> GCC. + +2003-09-26 Loren James Rittle + + * objc/objc-act.c (tm_p.h): Tweak order. + * objc/Make-lang.in (objc/objc-act.o): Add $(TM_P_H). + +2003-09-26 Nathanael Nerode + + * config.gcc (hppa*64*-*-linux* | parisc*64*-*-linux*): + Include t-slibgcc-elf-ver and t-linux in tmake_file. + * config.gcc (hppa*64*-*-linux* | parisc*64-*-linux*): + Disable fixproto. + * config.gcc (i960-*-coff*, m68k-*-aout*, sparclite-*-coff*): + Disable fixproto. + * config.gcc (i[34567]86-*-solaris2*, sparc64-*-solaris2*, + sparcv9-*-solaris2*, sparc-*-solaris2*): Disable fixproto. + + * config/i386/unix.h: Remove (unused) DEFAULT_ASSEMBLER_DIALECT. + +2003-09-26 Loren James Rittle + + * config/i386/i386.h (ix86_return_in_memory): Revert my last patch. + * objc/objc-act.c (tm_p.h): Include. + +2003-09-26 Per Bothner + + * dbxout.c (dbxout_typedefs): Output typedefs in forward order. + No longer any need to reverse by recursion. + +2003-09-26 Roger Sayle + Richard Henderson + + PR optimization/11741 + * gcse.c (pre_insert_copy_insn): Tweak the logic for finding the + appropriate set to match that in hash_scan_insn. Fall back to + the original copy method, if we can't validate changing insn. + (pre_delete): Only delete instructions that have a single_set, + instead of aborting when we encounter an PARALLEL insn with more + then one SET. + +2003-09-26 Andreas Krebbel + + * config/s390/s390.md ("builtin_setjmp_setup"): Insn deleted. + ("builtin_longjmp"): Insn deleted. + ("save_stack_nonlocal"): Save literal pool base pointer behind + backchain and stack pointer. + ("restore_stack_nonlocal"): Restore literal pool base pointer. + * config/s390/s390.h (STACK_SAVEAREA_MODE): Double size of + the stack save area for the nonlocal goto case. + +2003-09-26 John David Anglin + + PR bootstrap/12358 + * pa.c (output_bvb): Fix typo. + +2003-09-26 Richard Sandiford + + * expmed.c (store_bit_field): Don't search for an integer mode + unless we need the result. + +2003-09-26 Richard Sandiford + + * expr.c (emit_move_insn_1): If there is no move pattern for the + original mode, try using a pattern for the corresponding integer mode. + +2003-09-26 Richard Sandiford + + PR middle-end/9200 + * combine.c (if_then_else_cond): Tighten mode check. + +2003-09-25 Nathanael Nerode + + * cppcharset.c, cpphash.h: Rename 'struct strbuf' to + 'struct _cpp_strbuf'. + + * config/i386/netbsd-elf.h, config/i386/netbsd64.h, + config/i386/netware.h, config/i386/nto.h, config/i386/openbsd.h, + config/i386/pentium.md, config/i386/pmmintrin.h, config/i386/ppro.md, + config/i386/ptx4-i.h, config/i386/rtemself.h, config/i386/sco5.h, + config/i386/sol2.h, config/i386/svr3gas.h, config/i386/sysv3.h, + config/i386/sysv4-cpp.h, config/i386/sysv4.h, config/i386/sysv5.h, + config/i386/unix.h, config/i386/uwin.h, config/i386/vsta.h, + config/i386/xm-cygwin.h, config/i386/xm-djgpp.h, + config/i386/xm-mingw32.h, config/i386/xmmintrin.h: Replace + "GNU CC", "GNU compiler", and "GNU C-compiler" with "GCC". + * config/i386/i386-aout.h, config/i386/i386-coff.h, + config/i386/i386-interix.h, config/i386/i386-interix3.h, + config/i386/i386-modes.def, config/i386/i386-protos.h, + config/i386/i386.c, config/i386/i386.h, config/i386/i386.md, + config/i386/i386elf.h, config/i386/k6.md, config/i386/kaos-i386.h, + config/i386/linux-aout.h, config/i386/linux.h, config/i386/linux64.h, + config/i386/lynx-ng.h, config/i386/lynx.h, config/i386/mingw32.h, + config/i386/mmintrin.h, config/i386/moss.h: GNU CC -> GCC. + "GNU compiler" -> GCC. + * config/i386/att.h, config/i386/beos-elf.h, config/i386/biarch64.h, + config/i386/bsd.h, config/i386/crtdll.h, config/i386/cygming.h, + config/i386/cygwin.h, config/i386/cygwin1.c, config/i386/cygwin2.c, + config/i386/darwin.h, config/i386/djgpp.h, config/i386/emmintrin.h, + config/i386/freebsd-aout.h, config/i386/freebsd.h, + config/i386/freebsd64.h, config/i386/gas.h: GNU CC -> GCC. + +2003-09-25 Kelley Cook + + * cgraph.c (dump_cgraph): Don't output newline before dump. Add in + "local" to the callgraph dump. Output "after inlining" earlier. + * cgraphunit.c: Fix dumpfile whitespace and commonize headers of the + callgraph dumps. Correct misspellings. + (cgraph_decide_inlining): Output number of insns before inlining. + Output the calling function into which a function is inlined. + (cgraph_decide_small_functions): Format dump file like always_inline. + +2003-09-25 Loren James Rittle + + * config/i386/i386.h (ix86_return_in_memory): Add prototype. + +2003-09-25 Ulrich Weigand + + * config/s390/s390.c (s390_emit_prologue): Simplify accesses to + FPR slots in the save area. + (s390_emit_epilogue): Likewise. + +2003-09-25 Richard Sandiford + + * cgraph.h (cgraph_remove_edge): Declare. + * cgraph.c (cgraph_remove_edge): Make extern. + * cgraphunit.c (cgraph_finalize_function): Call cgraph_remove_edge + instead of cgraph_remove_call. + +2003-09-25 Ulrich Weigand + + * objc/objc-act.c (gen_declaration_1): Fix printf format. + +2003-09-25 Richard Earnshaw + + * arm.c (all_cores): arm710t, arm720t and arm740t are all based on the + arm7tdmi core. + +2003-09-25 Ziemowit Laski + + * config/darwin-protos.h (objc_image_info_section): + New prototype. + +2003-09-25 Ziemowit Laski + + * Makefile.in (stub-objc.o): Depend on $(GGC_H). + +2003-09-25 Nathanael Nerode + + * config.gcc: Get rid of more gratuitious 'x'es. Actually allow + tsc701 as a --with-cpu, --with-tune setting for sparc. + +2003-09-25 Ziemowit Laski + + * c-parse.in (objc_try_stmt): Do not specify a %type. + +2003-09-25 Nathanael Nerode + + * config.gcc: New 'widely ported system' clause for rtems. + Set thread file there, not in individual clauses. + +2003-09-25 Richard Sandiford + + PR target/6222 + * config/mips/mips.c (mips_va_arg): Handle arguments that must be + passed on the stack. + +2003-09-25 Nathanael Nerode + + * config.gcc (widely ported systems section): Mostly alphabetize + by system. Comment the case where we can't. + * config.gcc (widely ported systems section): Reindent and clean up. + + * config.gcc: Remove some unnecessary uses of 'x' in case statements. + Actually allow ep9312 as an arm --with-arch setting. + + * config.gcc (*-hpux11): Disable fixproto. + +2003-09-24 Phil Edwards + + PR pch/12112 + * gcc/cppfiles.c (pch_open_file): Return based on combined + result of all files. + (validate_pch): Return validate flag for current file. + +2003-09-24 Roger Sayle + + PR bootstrap/12358 + * fold-const.c (tree_swap_operands_p): Only reorder operands when + one of the operands is constant. + +2003-09-24 Ziemowit Laski + + MERGE OF objc-improvements-branch into MAINLINE: + * Makefile.in (C_OBJS): Add in stub-objc.o. + (c-parse.y): Change sed demarcations to begin with '@@'. + (stub-objc.o): New rule. + * c-common.c (flag_nil_receivers, flag_objc_exceptions, flag_zero_link, + flag_replace_objc_classes): New flags. + * c-common.h (RID_AT_THROW, RID_AT_TRY, RID_AT_CATCH, RID_AT_FINALLY, + RID_AT_SYNCHRONIZED): New keywords. + (flag_nil_receivers, flag_objc_exceptions, flag_zero_link, + flag_replace_objc_classes): New flags. + (lookup_interface, is_class_name, objc_is_object_ptr, objc_check_decl, + objc_comptypes, objc_message_selector, lookup_objc_ivar, + get_current_scope, objc_mark_locals_volatile): New prototypes, + some moved from c-tree.h. + * c-decl.c (get_current_scope, objc_mark_locals_volatile): New functions. + (finish_decl): Adjust where objc_check_decl() gets called. + * c-lang.c (lookup_interface, is_class_name, objc_is_id, objc_check_decl, + objc_comptypes, objc_message_selector, lookup_objc_ivar): Remove stubs. + * c-opts.c (c_common_handle_option): Add handling for flag_nil_receivers, + flag_objc_exceptions, flag_replace_objc_classes and flag_zero_link. + * c-parse.in: Replace 'ifc' and 'end ifc' sed markers with '@@ifc' and + '@@end_ifc', respectively. + (AT_THROW, AT_TRY, AT_CATCH, AT_FINALLY, AT_SYNCHRONIZED): New %tokens. + (objc_try_stmt, superclass, class_ivars, objc_try_catch-stmt, + objc_finally_block): New rules. + (component_decl_list2): Clean up semantic action for @defs construct. + (component_decl, c99_block_start): Remove call to add_objc_decls(). + (poplevel): Add call to objc_clear_super_receiver(). + (stmt): Add rules for @throw, @try..@catch..@finally and @synchronized + constructs. + (classdef, methodprotolist): Clean up/simplify. + (methodprotolist2): Eliminate. + (methodproto): Call add_method() instead of add_class_method() and + add_instance_method(). + (receiver): Add TYPENAME production. + (reswords): Add "throw", "try", "catch", "finally" and "synchronized". + (rid_to_yy): Add AT_THROW, AT_TRY, AT_CATCH, AT_FINALLY and + AT_SYNCHRONIZED. + * c-tree.h (lookup_interface, is_class_name, objc_is_id, objc_check_decl, + objc_comptypes, objc_message_selector) + * c-typeck.c (comptypes): In ObjC mode, call objc_comptypes() for + struct and pointer types. + (build_c_cast): Do not discard ObjC protocol qualifiers. + (convert_for_assignment): Cache result of comp_target_types() instead + of calling it more than once. + * c.opt (fnext-runtime): Update description string. + (fnil-receivers, fobjc-exceptions, freplace-objc-classes, fzero-link): + New ObjC/ObjC++-specific flags. + * function.h (GCC_FUNCTION_H): Header guard. + * gengtype-lex.l: Teach lexer about new @@... sed demarcations. + * stub-objc.c: New file, to be used to satisfy references to ObjC + functions by the C and C++ front-ends. + * config/darwin.c (_OBJC_IMAGE_INFO): New global metadata. + * config/darwin.h (FUNCTION): Add in_objc_image_info. + (SECTION_FUNCTION): Add objc_image_info_section. + * doc/invoke.texi: Link to GCC web site for Objective-C information. + (-fconstant-string-class): Update documentation. + (-fno-nil-receivers, -fobjc-exceptions, -freplace-objc-classes, + -fzero-link): New documentation. + * objc/Make-lang.in (objc-parse.y): Change sed demarcations to begin + with '@@'. + * objc/lang-specs.h (@objective-c-header): Fix -E spec. + * objc/objc/objc-act.c: Replace TYPE_NAME with OBJC_TYPE_NAME + throughout; provide casts for return values from memory allocation + functions (xmalloc, alloca, ggc_alloc, etc.). + (OBJC_VOID_AT_END): New macro. + (rtl.h): Do not #include any more. + (STRING_OBJECT_GLOBAL_NAME): Replaced with STRING_OBJECT_GLOBAL_FORMAT. + (TAG_MSGSEND_STRET, TAG_MSGSENDSUPER_STRET, TAG_MSGSEND_NONNIL, + TAG_MSGSEND_NONNIL_STRET, TAG_EXCEPTIONEXTRACT, TAG_EXCEPTIONTRYENTER, + TAG_EXCEPTIONTRYEXIT, TAG_EXCEPTIONMATCH, TAG_EXCEPTIONTHROW, + TAG_SYNCENTER, TAG_SYNCEXIT): New NeXT runtime entry points. + (struct val_stack, catch_count_stack, exc_binding_stack, val_stack_push, + val_stack_pop): New. + (objc_check_decl): Fix precondition for error message, along with + the message itself. + (lookup_and_install_protocols): Remove nonexistent protocols from + protocol list instead of returning error_mark_node. + (create_builtin_decl): Use DECL_ARTIFICIAL only for VAR_DECLs. + (setup_string_decl): Generalize to use STRING_OBJECT_GLOBAL_FORMAT. + (synth_module_prologue): General clean-up; construct NeXT-specific + runtime API prototypes if needed. + (build_string_class_template): Remove. + (check_string_class_template, string_layout_checked): New. + (build_objc_string_object): Generalize to work with + -fconstant-string-class. + (build_objc_symtab_template): Fix layout for the NeXT runtime. + (build_metadata_decl): New. + (forward_declare_categories): Call build_metadata_decl() instead of + create_builtin_decl() et al. + (build_module_descriptor): Use OBJC_VOID_AT_END instead of + void_list_node_1. + (build_selector_reference_decl, build_class_reference_decl, + build_objc_string_decl): Do not set TREE_READONLY. + (get_proto_encoding): Do not call hack_method_prototype(). + (get_class_reference): Add failure mode for invalid class names; + support -fzero-link; defer if in an ObjC++ template declaration. + (objc_declare_alias, objc_declare_class): Fix up duplicate name + lookup; check for global scope if in ObjC++. + (is_class_name): Generalize to work with various tree nodes (TYPE_DECL, + RECORD_TYPE, IDENTIFIER_NODE, etc.) + (objc_is_id): Removed. + (objc_is_object_ptr): New function. + (get_class_ivars_from_name): New function, used for @defs construct. + (get_class_ivars): Add option to return raw ivars; create a + ClASS_OWN_IVARS list for each class as needed. + (objc_enter_block, objc_exit_block, objc_declare_variable, + objc_build_throw_stmt, val_stack_push, val_stack_pop, + objc_build_try_enter_fragment, objc_build_extract_expr, + objc_build_try_exit_fragment, objc_build_extract_fragment, + objc_build_try_prologue, objc_build_try_epilogue, + objc_build_catch_stmt, objc_build_catch_epilogue, + objc_build_finally_prologue, objc_build_finally_epilogue, + objc_build_try_catch_finally_stmt, objc_build_synchronized_prologue, + objc_build_synchronized_epilogue, build_objc_exception_stuff): + New functions. + (_JBLEN): _setjmp jmpbuf size (needs to be made a target hook in + the future). + (build_private_template): Fix up calls to get_class_ivars(). + (offset_is_register, forwarding_offset): Remove. + (objc_method_parm_type, objc_encoded_type_size): New functions. + (encode_method_prototype): Simplify to no longer depend on + back-end information. + (build_tmp_function_decl_xxx, build_tmp_function_decl, + hack_method_prototype): Removed. + (generate_protocol_references): Remove calls to + build_tmp_function_decl(). + (generate_protocols): Adjust calls to encode_method_prototype(). + (build_class_template): Generate sel_id' and 'gc_object_type' fields + for the NeXT runtime. + (synth_forward_declarations): Call build_metadata_decl(). + (check_ivars): Check that the number of ivars matches also. + (build_super_template): Modify super_type directly; disable debugging + output while generating decl. + (build_ivar_list_initializer): Skip list elements that are not + FIELD_DECLs. + (ivar_list_length): New function. + (generate_ivar_lists): Call ivar_list_length() instead of list_length() + and encode_method_prototype() instead of encode_method_def(). + (build_shared_structure_initializer): Generate 'sel_id' field for + the NeXT runtime. + (generate_category): Do not set TREE_USED. + (build_keyword_selector): Ditto; transform into a function argument + chain. + (get_arg_type_list): If there are no user-specified arguments, use + '...'; use OBJC_VOID_AT_END. + (check_duplicates): Add a parameter indicating whether methods or + selectors are being checked. + (receiver_is_class_object): Add parameters indicating whether + receiver is 'self' or 'super'; robustify. + (build_message_expr): Defer call to finish_message_expr() if + inside an ObjC++ template. + (lookup_method_in_hash_lists): New function. + (finish_message_expr): Complete rewrite/fix. + (build_objc_method_call): Ditto; factor out commonalities between + the GNU and NeXT runtimes; acccommodate ..._stret and ...NonNil + messenger variants on the NeXT. + (lookup_instance_method_static, lookup_class_method_static): + Fold into a single lookup_method_static() function with an + additional parameter. + (add_class_method, add_instance_method): Fold into a single + add_method() function with an additional parameter. + (add_category): Make duplicate categories a hard error in ObjC++. + (add_instance_variable): Properly handle unnamed ivars, arrays of + zero or no size and bitfields. In ObjC++, check for nontrivial + C++ class instances. + (is_public): Allow C functions to access non-@public ivars, with + a warning. + (start_class): Move common initializations to + synth_module_prologue(); check for global scope if in ObjC++. + (continue_class): Fix calls to finish_struct(). + (objc_declare_protocols, start_protocol): Check for global scope + if in ObjC++. + (encode_pointer): Encode 'BOOL *' specially on the NeXT. + (encode_aggregate_within): Rewrite to properly distinguish + struct tags from typedefs in both ObjC and ObjC++. + (encode_bitfield, encode_complete_bitfield): Remove. + (encode_next_bitfield, encode_gnu_bitfield): New functions. + (encode_field_decl): Call encode_next_bitfield() or + encode_gnu_bitfield() as needed. + (synth_self_and_ucmd_args): New function. + (start_method_def): Use it. + (objc_types_are_equivalent): New function. + (comp_proto_with_proto): Use it instead of comptypes(), since + we need symmetry. + (really_start_method): Use lookup_method_static() instead of + lookup_class_method_static() and lookup_instance_method_static(); + Emit 'extern "C"' if in ObjC++ mode. + (add_objc_decls): Removed. + (UOBJC_SUPER_scope): New variable. + (get_super_receiver): Move construction of 'super' from + add_objc_decls(); remove dependency on struct objc_class. + (encode_method_def): Removed; encode_method_prototype() is + used instead. + (objc_clear_super_receiver): New function. + (objc_expand_function_end): Do not do anything for ordinary + C functions. + (finish_method_def): Mark ObjC methods as un-inlinable. + (gen_declaration_1): Emit widths of bitfields. + (finish_objc): Call generate_objc_image_info() if needed; + use check_duplicates() when checking for selector duplicates. + (generate_objc_image_info): New function. + * objc/objc-act.h (add_instance_method, add_class_method, + get_class_ivars): Remove prototypes. + (objc_build_throw_stmt, objc_build_try_catch_finally_stmt, + objc_build_synchronized_prologue, objc_build_synchronized_epilogue, + objc_build_catch_stmt, objc_build_catch_epilogue, + objc_build_finally_prologue, objc_build_finally_epilogue, + add_method, get_class_ivars_from_name): New prototypes. + (CLASS_BINFO_ELTS, PROTOCOL_BINFO_ELTS): New. + (TYPE_PROTOCOL_LIST): Robustify to distinguish from + TRANSLATION_UNIT_DECLs. + (OBJC_TYPE_NAME): New. + (objc_tree_code): Ensure that either or + got included. + (IS_SUPER): Robustify. + (umsg_stret_decl, umsg_super_stret_decl, umsg_nonnil_decl, + umsg_nonnil_stret_decl, objc_storage_class, objc_exception_extract_decl, + objc_exception_try_enter_decl, objc_exception_try_exit_decl, + objc_exception_match_decl, objc_exception_throw_decl, + objc_sync_enter_decl, objc_sync_exit_decl, objc_exception_data_template, + objc_setjmp_decl, objc_stack_exception_data, objc_caught_exception, + objc_rethrow_exception, objc_eval_once, objc_exception_block_stack, + objc_catch_type): New ObjC/ObjC++ roots. + * objc/objc-tree.def (MESSAGE_SEND_EXPR, CLASS_REFERENCE_EXPR): New + ObjC/ObjC++ tree node codes. + +2003-09-24 Alexandre Oliva + + * cpplib.c (do_pragma): Reintroduce cb_line_change call in the + code path that calls a handler. + +2003-09-24 Nathanael Nerode + + * config.gcc (c4x-*, tic4x-*, d30v-*, mmix-knuth-mmixware): + Disable fixproto. + + * config.gcc: Clean up and reindent $with_cpu=yes|no clause and + the section giving $with_cpu defaults by target. + + * config.gcc (arm-*-coff*, armel-*-coff*, arm*-*-ecos-elf, + arm*-*-elf, ep9312-*-elf, arm*-wince-pe*, arm*-*-pe*, arm*-*-pe*, + rs6000-ibm-aix4.[3456789]*, powerpc-ibm-aix4.[3456789]*, + rs6000-ibm-aix5.1.*, powerpc-ibm-aix5.1.*, + rs6000-ibm-aix[56789].*, powerpc-ibm-aix[56789].*, + i[34567]86-pc-msdosdjgpp*): Disable fixproto. + +2003-09-24 David Edelsohn + + * config/rs6000/rs6000.md (movti_power): Collapse case 1 and 2 + together. Protect load string instruction with TARGET_STRING. + (movti_string): Collapse case 1 and 2 together. + +2003-09-24 Nathan Sidwell + + * c-common.c (c_common_type_for_mode): Check for VOIDmode. + +2003-09-24 Richard Earnshaw + + * arm.h (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Wrap in + do...while(0) + +2003-09-23 Nathanael Nerode + + * config.gcc: Move use_fixproto=no from generic vxworks clause to + specific one. + + * config.gcc (powerpc-*-gnu-gnualtivec*): Disable fixproto + (accidentally missed in last pass). + +2003-09-23 Andrew Pinski + + PR bootstrap/12383 + * configure: Regenerate. + +2003-09-23 Nathanael Nerode + + * config.gcc (x86_64-*-freebsd*): Disable fixproto (accidentally + missed in last pass). + +2003-09-23 Alexandre Oliva + + * config/mn10300/mn10300.md (andsi3): Fix cut&pasto in 0xfffffffe + constant. + +2003-09-23 Nathanael Nerode + + * config.gcc: Move vax-*-vms* unsupported notice up with the rest. + + * config.gcc (alpha64*-dec-*vms*, alpha*-dec-*vms*, + powerpc-*-eabisim*, powerpc-*-eabi*, powerpcle-*-eabisim*, + powerpcle-*-eabi*): Disable fixproto. + + * config.gcc: Move use_fixproto=no from generic FreeBSD clause to + specific FreeBSD clauses. + * config.gcc: Move use_fixproto=no from generic NetBSD clause to + specific NetBSD clauses. + * config.gcc: Move use_fixproto=no from generic OpenBSD clause + to specific OpenBSD clauses. + +2003-09-23 John David Anglin + + * pa.c (hppa_expand_prologue): Do pic register save in frame marker + without adding a frame note. + * pa.md (allocate_stack): Save pic register in new frame marker when + generating pic code. + +2003-09-23 Kelley Cook + + * cgraphunit.c (cgraph_expand_all_functions): Renamed from + cgraph_expand_functions. + +2003-09-23 Kaveh R. Ghazi + + * Makefile.in (gnucompare*): Merge into ... + (slowcompare*): ... here. + (fastcompare*): New targets. + * aclocal.m4 (gcc_AC_PROG_CMP_IGNORE_INITIAL): Add checks for + other "fast" cmp programs. + * configure: Regenerate. + +2003-09-23 Rainer Orth + + * targhooks.c: Include output.h. + * Makefile.in (targhooks.o): Add output.h to dependency list. + +2003-09-23 Rainer Orth + + * config.host: Removed superfluous newline. + +2003-09-23 Nathanael Nerode + + * config.gcc: Use ${target}, not $machine. + * configure.in: Don't set $machine. + * configure: Regenerate. + +2003-09-23 Geoffrey Keating + + * config/t-darwin (crt2.o): Add stmp-int-hdrs to dependencies. + + * config/rs6000/rs6000.c (function_arg_pass_by_reference): Don't + pass zero-size arrays by reference. + (rs6000_va_arg): Likewise. + +2003-09-23 Nathanael Nerode + + * config.gcc: Set use_fixproto=no in each specific *-gnu* + configuration, rather than the generic one. + +2003-09-23 Richard Henderson + + * tree-inline.c (remap_save_expr): Map new save_expr to identity + rather than to error_mark_node. + +2003-09-23 Rainer Orth + + * configure.in (HAVE_GAS_SHF_MERGE): Always define to test result. + Update description. + * configure: Regenerate. + * config.in: Likewise. + * dwarf2out.c (DEBUG_STR_SECTION_FLAGS): Test for + HAVE_GAS_SHF_MERGE value. + * varasm.c (mergeable_string_section): Likewise. + (mergeable_constant_section): Likewise. + +2003-09-23 Rainer Orth + + * except.h (MUST_USE_SJLJ_EXCEPTIONS): Test for DWARF2_UNWIND_INFO + value. + +2003-09-23 Rainer Orth + + * target.h (struct gcc_target): New member external_libcall. + * target-def.h (TARGET_ASM_EXTERNAL_LIBCALL): Provide default. + (TARGET_ASM_OUT): Use it. + * doc/tm.texi (TARGET_ASM_EXTERNAL_LIBCALL): Document. + * targhooks.c: Convert to ISO C 90. + (default_external_libcall): New function. + * targhooks.h (default_external_libcall): Declare. + * varasm.c (assemble_external_libcall): Use + targetm.asm_out.external_libcall instead of + ASM_OUTPUT_EXTERNAL_LIBCALL. + * config/mips/mips-protos.h [TARGET_IRIX5 || TARGET_IRIX 6] + (mips_output_external_libcall): Declare. + * config/mips/mips.c (mips_output_external_libcall): Change + definition guard. + Change to match TARGET_ASM_EXTERNAL_LIBCALL. + Only operate for O32 ABI. + * config/mips/iris5.h (TARGET_ASM_EXTERNAL_LIBCALL): Define + instead of ASM_OUTPUT_EXTERNAL_LIBCALL. + * config/mips/iris6.h (ASM_OUTPUT_EXTERNAL_LIBCALL): Don't undef, + superceded by TARGET_ASM_EXTERNAL_LIBCALL. + +2003-09-22 Nathnael Nerode + + * config.gcc: Do per-target disabling of fixproto here in clauses, + not in t- fragments. + * configure.in: Adjust to set STMP_FIXPROTO correctly. + * configure: Regenerate. + * config/arm/t-semi, config/cris/t-cris, config/i386/t-beos, + config/i386/t-cygming, config/i386/t-nto, config/ia64/t-hpux, + t-freebsd, t-linux, t-netbsd, t-openbsd, t-rtems, t-vxworks, + xtensa/t-xtensa: Remove setting of STMP_FIXPROTO. + * config/i370/t-oe, config/i386/t-netware, config/pa/t-bsd, + t-interix, t-linux-aout: Delete files consisting only of + setting of STMP_FIXPROTO. + + * config.host: Allow unknown hosts (not targets). Allow + ns32k-*-netbsdelf* as a host (not a target). Remove redundant + empty clauses. Remove useless obsolete-configuration clause. + Prune unsupported configuration list. Collapse identical + clauses for closely related systems. Rewrite comment for + unsupported hosts list. Reorganize a little. + +2003-09-22 Richard Henderson + + * c-common.c (c_common_signed_or_unsigned_type): Examine mode, + not precision. + +2003-09-22 David Edelsohn + Hartmut Penner + Segher Boessenkool + + * config/rs6000/rs6000.c (altivec_in_gprs_p): Rename to ... + (gpr_or_gpr_p): Test INT_REGNO_P and convert to boolean. + (rs6000_split_altivec_in_gprs): Rename to ... + (rs6000_split_multireg_move): Add support for update addressing. + * config/rs6000/rs6000-protos.h: Same. + * config/rs6000/altivec.md: Same. + * config/rs6000/rs6000.md (movdi_internal32): Use new splitter for + multiple GPRs. + (movti): Remove TARGET_STRING || TARGET_POWERPC64 final condition. + (movti_power): Use new splitter for multiple GPRs. + (movti_string): Same. + (movti_ppc64): Same. + +2003-09-22 Bob Wilson + + * config/xtensa/xtensa-protos.h: Convert to ISO C90. + * config/xtensa/xtensa.c: Convert to ISO C90. Minor formatting fixes. + +2003-09-22 Alexandre Oliva + + * config/mn10300/mn10300.md: Revert 2003-09-17's patch. + (andsi3): Set attr cc to set_zn when using shifts or adds. + +2003-09-22 Bernardo Innocenti + + * doc/contrib.texi: Add Peter Barada, Paul Dale and myself. + +2003-09-22 Bernardo Innocenti + + * config/m68k/m68k.h (MASK_RTD, TARGET_RTD, RETURN_POPS_ARGS): + Resurrect -mrtd option. + +2003-09-21 Andrew Pinski + + PR target/12281 + * config/darwin.c (machopic_validate_stub_or_non_lazy_ptr): Call + mark_referenced instead of setting TREE_SYMBOL_REFERENCED. + +2003-09-22 Olivier Hainque + + PR target/9786 + * reg-stack.c (convert_regs_1): Purge possible dead eh edges + after potential deletion of trapping insn. Avoids later ICE + from call to fixup_abnormal_edges. + (convert_regs_2): Stack the current block successors before + processing this block, that is, before the potential deletion of + dead edges by convert_regs_1, because these edges have been used + to initialize the predecessors count. + +2003-09-22 Eric Botcazou + + * real.c: Fix several nits in the head comment. + +2003-09-21 Richard Henderson + + * tree.h c-aux-info.c, c-decl.c, c-parse.in, coverage.c, dbxout.c, + diagnostic.c, dwarf2out.c, dwarfout.c, function.c, integrate.c, + print-tree.c, stmt.c, toplev.c, tree-dump.c, tree-inline.c, + tree-optimize.c, tree.c, tree.def, xcoffout.c, config/alpha/alpha.c, + config/mips/mips.c, doc/c-tree.texi, objc/objc-act.c: Revert. + +2003-09-21 Richard Henderson + + * tree.h (TREE_LOCUS): Rename from DECL_SOURCE_LOCATION; make const. + (TREE_FILENAME, TREE_LINENO): Likewise. + (set_tree_locus, copy_tree_locus, set_tree_file_line): New. + (TREE_LOCUS_SET_P): New. + * c-aux-info.c, c-decl.c, c-parse.in, coverage.c, dbxout.c, + diagnostic.c, dwarf2out.c, dwarfout.c, function.c, integrate.c, + print-tree.c, stmt.c, toplev.c, tree-dump.c, tree-inline.c, + tree-optimize.c, tree.c, tree.def, xcoffout.c, config/alpha/alpha.c, + config/mips/mips.c, doc/c-tree.texi, objc/objc-act.c: Update to match. + +2003-09-21 Nathanael Nerode + + * config/vax/vax-protos.h: Convert to ISO C90. + * config/vax/vax.c: Convert to ISO C90. + +2003-09-21 Graham Stott + + PR target/12353 + * config/i386/i386.md(ffs_no_cmove): Fix operand 2 constraint. + +2003-09-21 Eric Botcazou + + PR target/12301 + * reorg.c (stop_search_p): Return 1 for insns that can + throw internally. + +2003-09-20 Richard Henderson + + * c-format.c (gcc_diag_char_table): Add %J. + (gcc_cdiag_char_table, gcc_cxxdiag_char_table): Likewise. + (check_format_types): Fix wanted_type name lookup. + (init_dynamic_diag_info): Setup %J. + * diagnostic.c (text_specifies_location): Implement %J. + * c-common.c, c-decl.c, c-objc-common.c, c-pragma.c, calls.c, + dwarfout.c, expr.c, function.c, stmt.c, stor-layout.c, toplev.c, + tree-inline.c, tree-optimize.c, varasm.c, config/arm/pe.c, + config/i386/winnt.c, config/ia64/ia64.c, config/mcore/mcore.c, + config/v850/v850.c, objc/objc-act.c: Use %J in diagnostics. + + * tree-inline.c: Include intl.h + (inline_forbidden_p_1): Fix i18n of inline_forbidden_reason. + * Makefile.in (tree-inline.o): Update. + +2003-09-20 Roger Sayle + + * config/i386/i386.c (ix86_expand_carry_flag_compare): Fix + transformation of a>=0 into (unsigned)a<0x80000000. + +2003-09-20 Andrew Pinski + + * config/darwin.c (machopic_select_rtx_section): Fix check for PIC code. + +2003-09-20 Nathanael Nerode + + * Makefile.in: Don't set (unused) DLLTOOL. + + * config/arm/t-linux, config/arm/t-netbsd, config/arm-t-semi: + Remove obsolete references to ENQUIRE. + +2003-09-19 Nathanael Nerode + + * configure.in: Remove --with-elf, which doesn't work. + * configure: Regenerate. + * config.gcc: Remove references to $elf, which does nothing. + + * config/i386/xm-vsta.h: Remove xm-file believed useless. + * config.build (i386-vsta): Remove reference to it. + * config.host (i386-vsta): Remove reference to it. + +2003-09-19 Phil Edwards + + * doc/install.texi: Document the multiple testsuite options. + +2003-09-19 Gerald Pfeifer + + * doc/install.texi (Specific): Add the specific versions of GCC + where support for FreeBSD 1, HP-UX version 9 and older, and AIX + version 3 and older was discontinued. + +2003-09-19 Joel Sherrill + + * config/m68k/t-m68kbare, config/m68k/t-rtems: Change 68681 to + 68881. + +2003-09-19 Bernardo Innocenti + + * config/m68k/m68k.h (TARGET_CPU_CPP_PREDEFINES): Add predefines + for -m68030, -m68020-60 and -m68020-40. + * config/m68k/m68k.h (TARGET_68030): New target flag. + * config/m68k/m68k.h (MASK_RTD, TARGET_RTD, MASK_REGPARM, + TARGET_REGPARM): Remove. + * config/m68k/m68k.h: Regroup and renumber target flags. + * config/m68k/m68k.h (TARGET_SWITCHES): Fix some tabulations. + * config/m68k/m68k.h (RETURN_POPS_ARGS): Always evaluate to 0. + * config/m68k/m68k.h (FUNCTION_ARG): Likewise. + * config/m68k/m68k.h (FUNCTION_ARG_PARTIAL_NREGS): Likewise. + * config/m68k/m68k-none.h: Use MASK_xxx values in M68K_CPU_xxx macros. + +2003-09-19 Ralf Corsepius + + * config/m68k/t-rtems (m68k-*-rtems*): New. + * config.gcc: Use config/m68k/t-rtems. + +2003-09-19 Ralf Corsepius + + * config/mips/t-rtems: New. + * config.gcc (mips*-*-rtems*): Use config/mips/t-rtems. + +2003-09-19 Kelley Cook + + * cgraph.c: Fix typo in debugging output. + +2003-09-19 T. Papadopoulo + Eric Botcazou + + PR target/12166 + * config/sparc/sol2-c1.asm (start): Set __Argv if GCRT1. + +2003-09-18 Mike Stump + + * c-ppoutput.c (print): Use fileline typedef for field 'line'. + (print_line, maybe_print_line, cb_define, cb_undef, cb_include, + cb_ident, cb_def_pragma): Use fileline typedef. + * cpphash.h (struct cpp_reader): Likewise for field out.first_line. + +2003-09-18 Danny Smith + + * config/i386/winnt.c (gen_stdcall_suffix): Quit summation of + total parm size if a parm has incomplete type. + (gen_fastcall_suffix): Likewise. + +2003-09-18 Richard Kenner + + * except.c (output_function_exception_table): Adjust last change + to handle TYPE of INTEGER_CST. + +2003-09-18 Mark Mitchell + + PR target/11184 + * builtins.c (expand_builtin_apply): Use convert_memory_address + before returning the value. + + * alias.c (find_base_value): Simplify use of + convert_memory_address. + (find_base_term): Likewise. + * builtins.c (expand_builtin_stejmp_setup): Likewise. + (expand_builtin_longjmp): Likewise. + (expand_builtin_prefetch): Likewise. + (get_memory_rtx): Likewise. + (expand_builtin_return): Likewise. + (expand_builtin_memcpy): Likewise. + (expand_builtin_strncpy): Likewise. + (expand_builtin_memset): Likewise. + (expand_builtin_va_arg): Likewise. + (expand_builtin_va_copy): Likewise. + (expand_builtin_alloca): Likewise. + * calls.c (expand_call): Likewise. + * except.c (expand_builtin_extract_return_addr): Likewise. + (expand_builtin_eh_return): Likewise. + * explow.c (convert_memory_address): Define even when + POINTER_EXTEND_UNSIGNED is not defined. Do nothing if the address + is already in the right mode. + * explow.c (memory_address): Simplify use of convert_memory_address. + (probe_stack_range): Likewise. + * expmed.c (make_tree): Likewise. + * expr.c (emit_block_move_in_libcall): Likewise. + (expand_assignment): Likewise. + (expand_expr): Likewise. + * function.c (assign_parms): Likewise. + (expand_function_end): Likewise. + * integrate.c (copy_rtx_and_substitute): Likewise. + * stmt.c (expand_computed_goto): Likewise. + +2003-09-18 Roger Sayle + + * simplify-rtx.c (simplify_unary_operation): Only transform + (not (eq X Y)) into (ne X Y) when mode is BImode or STORE_FLAG_VALUE + is -1. RTL "not" is a bit-wise not, "~", not a logical not "!". + +2003-09-18 Zdenek Dvorak + + PR target/11674 + * config/i386/i386.c (x86_emit_floatuns): Also handle SImode operand. + +2003-09-18 Roger Sayle + + * tree.def (FFS_EXPR, CLZ_EXPR, CTZ_EXPR, POPCOUNT_EXPR, + PARITY_EXPR): Delete unused tree codes. + * c-common.c (c_common_truthvalue_conversion): Delete references + to FFS_EXPR and POPCOUNT_EXPR. + * c-pretty-print.c (pp_c_postfix_expression): Remove FFS_EXPR. + (pp_c_expression): Likewise. + * expr.c (expand_expr): Delete RTL expansion of FFS_EXPR, CLZ_EXPR, + CTZ_EXPR, POPCOUNT_EXPR and PARITY_EXPR. + * fold-const.c (tree_expr_nonnegative_p): Remove FFS_EXPR, CLZ_EXPR, + CTZ_EXPR, POPCOUNT_EXPR and PARITY_EXPR. Add support for calls to + BUILT_IN_FFS, BUILT_IN_PARITY and BUILT_IN_POPCOUNT and their long + and long long variants. + +2003-09-18 Gabriel Dos Reis + + * c-pretty-print.h (pp_type_specifier_seq): Fix thinko. + * c-pretty-print.c: Fix formatting. + (pp_c_integer_constant): Append type annotation to literals. Tidy. + (pp_c_type_specifier): Tidy. + (pp_c_compound_literal): New function. + (pp_c_initializer): Simplify.. + (pp_c_initializer_list): Likewise. + (pp_c_brace_enclosed_initializer_list): New function. + (pp_c_postfix_expression): Simplify. + +2003-09-17 Alexandre Oliva + + * config/mn10300/mn10300.md (andsi3, iorsi3, xorsi3, + one_complsi2, bit-clear, bit-set, iorqi3): Make them set_zn. + +2003-09-17 Richard Henderson + + * tree-optimize.c (tree_rest_of_compilation): Save and restore + input_location. + +2003-09-17 Daniel Jacobowitz + + * config/rs6000/sysv4.h (LIB_LINUX_SPEC): Give -lpthread before -lc. + +2003-09-17 Richard Henderson + + * cfg.c (dump_flow_info): Skip register dump if reg_n_info null. + +2003-09-17 Rainer Orth + + * configure.in (gcc_cv_ld_hidden): Don't test gnu_ld_flag. + * configure: Regenerate. + +2003-09-17 Mark Mitchell + + PR debug/12066 + * dbxout.c (dbxout_init): Use a langhook to find builtin types. + * langhooks-def.h (lhd_return_null_tree_v): New function. + (LANG_HOOKS_BUILTIN_TYPE_DECLS): New macro. + (LANG_HOOKS_DECLS): Add it to the intializer. + * langhooks.c (lhd_return_null_tree_v): New function. + * langhooks.h (lang_hooks_for_decls): Add builtin_type_decls. + +2003-09-17 Daniel Jacobowitz + + * configure.in: Quote gcc_config_arguments for configargs.h. + * configure: Regenerated. + * gccbug.in: Don't shell-expand gcc_config_arguments. + +2003-09-17 Gabriel Dos Reis + + PR c++/11357 + * c-pretty-print.c (pp_c_floating_constant): Append + type-annotation to floating constants. + +2003-09-17 Rainer Orth + + * config/mips/iris5.h (TARGET_OS_CPP_BUILTINS): Define _LONGLONG. + Define _ABIO32. + Use it for _MIPS_SIM. + * config/mips/iris6-o32.h (TARGET_OS_CPP_BUILTINS): Removed. + + * config/mips/iris6-o32-as.h (SUBTARGET_ASM_OPTIMIZING_SPEC): + Moved ... + * config/mips/iris5.h (SUBTARGET_ASM_OPTIMIZING_SPEC): ... here, + updating comment. + Fixes PR target/10190. + +2003-09-17 Daniel Jacobowitz + + * config/rs6000/sysv4.h (LIB_LINUX_SPEC): Make -pthread apply + to shared libraries. + +2003-09-17 Eric Botcazou + + PR optimization/11646 + * cfgrtl.c (purge_dead_edges) [JUMP_INSN]: Rematerialize the + EDGE_ABNORMAL flag for EH edges. + * toplev.c (rest_of_handle_cse): Delete unreachable blocks + if dead edges were purged. + +2003-09-16 Bernardo Innocenti + + * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Add target predefines. + * config/m68k/m68k-none.h (CPP_CPU_DEFAULT_SPEC): Kill all definitions. + * config/m68k/m68k-none.h (CPP_FPU_SPEC): Remove. + * config/m68k/m68k-none.h (CPP_SPEC): Likewise. + +2003-09-16 Ian Lance Taylor + + * cfgcleanup.c (label_is_jump_target_p): Correct use of table + returned by tablejump_p. + +2003-09-16 Joel Brobecker + + * dwarf2asm.c (dw2_asm_output_nstring): Add comment. + +2003-09-16 Roger Sayle + + PR bootstrap/12269 + * simplify-rtx.c (simplify_gen_relational): Allow the cmp_mode + argument to be VOIDmode, taking the mode of the comparison from + the operands. Only call simplify_relational_operation if we + know the mode of the comparison. Honor FLOAT_STORE_FLAG_VALUE + if comparison has a floating point result. Ensure that the + result is always of the specified mode. + (simplify_replace_rtx): Simplify call to simplify_gen_relational. + (simplify_unary_operation): Ensure the correct mode and cmp_mode + are always passed to simplify_gen_relational. Simplify NOT of + comparison operator in any mode, not just BImode. + (simplify_ternary_operation): Correct tests on the return value + of simplify_relational_operation to use const_true_rtx, not + const1_rtx. Abort if it ever returns a non-constant result. + + * cfgloopanal.c (count_strange_loop_iterations): Use the function + simplify_relational_operation, not simplify_gen_relational, if + we're only interested in constant comparisons and will ignore + non-constant results. + +2003-09-16 Roger Sayle + + * fold-const.c (tree_swap_operands_p): New function to determine + the prefered ordering of operands. + (fold): Numerous clean-ups. Use tree_swap_operands_p when swapping + operands to commutative, comparison or ternary operators. Replace + uses of TREE_SET_CODE with recursive call to fold. Remove duplicate + transformation of A ? B : C into !A ? C : B. + +2003-09-16 Jakub Jelinek + + * config/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Define. + * config/alpha/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Define. + * config/arm/linux-elf.h (LINK_GCC_C_SEQUENCE_SPEC): Define. + * config/rs6000/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Define. + * config/rs6000/linux64.h (LINK_GCC_C_SEQUENCE_SPEC): Define. + * config/sh/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Define. + * config/sparc/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Define. + * config/sparc/linux64.h (LINK_GCC_C_SEQUENCE_SPEC): Define. + +2003-09-16 Jason Merrill + Jakub Jelinek + + * c-common.c (handle_warn_unused_result_attribute): New function. + (c_common_attribute_table): Add warn_unused_result. + (c_expand_expr): Issue warning when result of inlined function + with warn_unused_result attribute is ignored. + * calls.c (expand_call): Issue warning when result of function + with warn_unused_result attribute is ignored. + * c-common.h (STMT_EXPR_WARN_UNUSED_RESULT): Define. + * expr.c (expr_wfl_stack): Define. + (expand_expr) : If ignore, + pass const0_rtx as target. Chain locations into expr_wfl_stack. + * tree-inline.c (expand_call_inline): Set STMT_EXPR_WARN_UNUSED_RESULT + bit if inlined function has warn_unused_result attribute. + * input.h (expr_wfl_stack): Declare. + * doc/extend.texi: Document warn_unused_result attribute. + +2003-09-15 Alexandre Oliva + + * cpplib.c (do_pragma): Remove unnecessary cb_line_change. + +2003-09-15 Bob Wilson + + * config/xtensa/xtensa.c (xtensa_multibss_section_type_flags): Add + ATTRIBUTE_UNUSED. + (call_insn_operand): For PIC, don't allow a direct call to a + function in a different section than the current one. + +2003-09-16 Volker Reichelt + + * doc/invoke.texi (Warning Options): Add missing hyphen before + "Wimport". Change "-Wno-endif-labels" to "-Wendif-labels". + Move "-Wold-style-definition" to the C-only section. + Fix the ordering of the warning options. + +2003-09-15 Zdenek Dvorak + Jeff Law + + * gcse.c (remove_reachable_equiv_notes): New. + replace_store_insn): Call it. Update antic list. + (store_killed_in_insn): Take REG_EQUAL notes into account. + (build_store_vectors, delete_store): Add parameter to + replace_store_insn call. + +2003-09-15 Bob Wilson + + * config/xtensa/xtensa.h (LEGITIMATE_PIC_OPERAND_P): Use + SYMBOL_REF_LOCAL_P. + +2003-09-15 Kazu Hirata + + * expr.h (DEFAULT_FUNCTION_ARG_PADDING): New. + (FUNCTION_ARG_PADDING): Use DEFAULT_FUNCTION_ARG_PADDING. + * config/ia64/ia64.c (ia64_hpux_function_arg_padding): + Likewise. + * config/m68hc11/m68hc11.c (m68hc11_function_arg_padding): + Likewise. + * config/rs6000/rs6000.c (function_arg_padding): Likewise. + * config/sparc/sparc.c (function_arg_padding): Likewise. + +2003-09-15 Vladimir Makarov + + * haifa-sched.c (schedule_block): Use ready_remove_first instead + of choose_ready for non-dfa insn scheduling. + +2003-09-15 Andreas Jaeger + Kaveh R. Ghazi + + * doc/invoke.texi (Warning Options): Describe -Wold-style-definition. + * c-opts.c (c_common_handle_option): Handle OPT_Wold_style_definition. + * c-parse.in: Warn about old-style parameter definition. + * c-common.c: Define warn_old_style_defintion. + * c-common.h: Declare it. + * c.opt: Add Wold-style-defintion. + +2003-09-15 Andreas Jaeger + + * config/rs6000/altivec.h: Convert () prototypes to ISO C90. + * config/rs6000/rs6000.c: Likewise. + +2003-09-12 Zdenek Dvorak + + PR optimization/10914 + * expr.h (get_condition, canonicalize_condition): Declaration changed. + * cfgloopanal.c (simple_loop_exit_p): Add parameter to a get_condition + and canonicalize_condition calls. + * gcse.c (fis_get_condition, delete_null_pointer_checks_1, + delete_null_pointer_checks): Ditto. + * ifcvt.c (noce_get_alt_condition, noce_get_condition): Ditto. + * predict.c (estimate_probability, expected_value_to_br_prob): Ditto. + * loop.c (check_dbra_loop, get_condition_for_loop): Ditto. + (canonicalize_condition, get_condition): Allow to return comparisons + of cc mode registers. + * loop-unswitch.c (may_unswitch_on_p, unswitch_single_loop): Allow + cc mode registers comparison in condition. + +2003-09-12 Mark Mitchell + + * coverage.c (create_coverage): Do not call pushlevel/poplevel. + * langhooks-def.h (lhd_do_nothing_iii_return_null_tree): New + function. + * langhooks.c (lhd_do_nothing_iii_return_null_tree): Define it. + +2003-09-14 Kazu Hirata + + * combine.c (simplify_comparison): Convert + (ne (and (lshiftrt (xor X CST) Y) 1) 0) into + (eq (and (lshiftrt X Y) 1) 0). + +2003-09-14 Kazu Hirata + + * alias.c: Follow spelling conventions. + * cpphash.h: Likewise. + * fold-const.c: Likewise. + +2003-09-14 Alexandre Oliva + + * c-ppoutput.c (cb_line_change): Revert 2003-08-04's change. + * c-lex.c (cb_line_change): Skip line changing whenever + c-ppoutput.c would. + +2003-09-14 Steven Bosscher + + * ra.c: Convert to ISO C90 prototypes. + * ra-build.c: Likewise. + * ra-colorize.c: Likewise. + * ra-debug.c: Likewise. + * ra-rewrite.c: Likewise. + +2003-09-14 Richard Sandiford + + * Makefile.in (%.dvi): Remove excess $(docdir). + +2003-09-14 Richard Sandiford + + * function.c (STACK_BYTES): Move definition to head of file. + (assign_parms): Don't pass current_function_pretend_args_size + directly to SETUP_INCOMING_VARARGS. For partial register arguments, + round current_function_pretend_args_size up to STACK_BYTES. Skip any + excess before laying out the argument. + +2003-09-14 Andreas Jaeger + + * objc/objc-act.c: Convert to ISO C90 prototypes. + * objc/objc-act.h: Likewise. + +2003-09-14 Olaf Hering + + * config/rs6000/rs6000.c: Fix typo: Remove extra ')'. + +2003-09-13 Andrew Pinski + + PR target/12021 + * config/m68k/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Remove the asserts + as they already are done in config/m68k/m68k.h. + * config/m68k/netbsd.h (TARGET_OS_CPP_BUILTINS): Likewise + + * config/rs6000/rs6000.c (GEN_LOCAL_LABEL_FOR_SYMBOL): Remove. + (machopic_output_stub): Only generate pic base symbols when using pic + and generate them in the form L00000000$spb. + +2003-09-13 Richard Henderson + + * cgraphunit.c (cgraph_assemble_pending_functions): Export. + (cgraph_finalize_function): Revert TREE_ASM_WRITTEN check. + * cgraph.h: Update. + +2003-09-12 Dale Johannesen + + * config/rs6000/rs6000.c: Fix typos in previous. + +2003-09-12 Ziemowit Laski + + * pretty-print.c (pp_construct): Use xcalloc instead of xmalloc + when allocating pp->buffer. + +2003-09-12 Geoffrey Keating + + * config/darwin.c (machopic_select_rtx_section): Use + const_data_section for things that might require relocation. + +2003-09-12 H.J. Lu + + PR bootstrap/12264 + * tree-inline.c (inline_forbidden_p_1): Cast the 3rd arg to tree. + +2003-09-12 Bob Wilson + + * config/xtensa/elf.h (ASM_SPEC): Remove no-density option. Reformat. + * config/xtensa/linux.h (ASM_SPEC): Likewise. + * config/xtensa/xtensa.h (TARGET_SWITCHES): Remove -mbig-endian, + -mlittle-endian, -m[no-]density, -m[no-]abs, -m[no-]addx, -m[no-]mac16, + -m[no-]mul16, -m[no-]mul32, -m[no-]nsa, -m[no-]minmax, -m[no-]sext, + -m[no-]booleans, -mhard-float, -msoft-float, -m[no-]hard-float-div, + -m[no-]hard-float-recip, -m[no-]hard-float-sqrt, and + -m[no-]hard-float-rsqrt options. Delete corresponding MASK_* macros + and redefine corresponding TARGET_* macros with constants from the + xtensa-config.h header. + * doc/invoke.texi (Option Summary, Xtensa Options): Remove documention + for the options listed above. + +2003-09-12 Dale Johannesen + + * config/rs6000/rs6000-protos.h: Use C90 prototypes. + * config/rs6000/rs6000-c.c: Ditto. + * config/rs6000/rs6000.c: Ditto. + * config/rs6000/ sysv4.h: Ditto. + +2003-09-12 Chris Lattner + + * loop.c: Move comments describing BIV's and GIV's to top of file + +2003-09-12 Roger Sayle + + PR optimization/8967 + * alias.c (write_dependence_p): Modify to take an additional constp + argument that controls whether the UNCHANGING_RTX_P flags are used. + (anti_dependence, output_dependence): Adjust write_dependence_p + callers to pass this additional argument, to return the same result. + (unchanging_anti_dependence): New variant of anti_dependence that + ignores the UNCHANGING_RTX_P property on memory references. + * rtl.h (unchaning_anti_dependence): Prototype here. + * flow.c (init_propagate_block): Place fake constant mem writes on + the mem_set_list so that dead writes to const variables are deleted. + (insn_dead_p): Change anti_dependence to unchanging_anti_dependence. + (mark_used_regs): Likewise. + +2003-09-12 Richard Sandiford + + * config/mcore/mcore-protos.h (mcore_r15_operand_p): Declare. + (mcore_secondary_reload_class): Declare. + (mcore_output_inline_const_forced): Remove. + * config/mcore/mcore.md (movsi): Remove the code that forced + non-inlineable constants into a register if the target was r15 + or the stack pointer. Remove constant restrictions from the main + define_insn. Remove r <- I, r <- M and r <- N alternatives in favor + of an r <- P alternative. Remove fallback define_insn for reload. + (movhi, movqi): Use gen_lowpart rather than gen_SUBREG. Remove reload + define_insn. Use mcore_output_move in the remaining define_insn. + Adjust condition and constraints in the way as for movsi. + (movdi): Always split unacceptable constants into two. Use + simplify_gen_subreg instead of operand_subword{,_force}. + * config/mcore/mcore.c (mcore_output_inline_const_forced): Remove. + (mcore_output_move): Support HImode and QImode moves as well. + (mcore_m15_operand_p): New function. + (mcore_reload_class): Use it to detect cases where LRW_REGS are better. + (mcore_secondary_reload_class): New function. + * config/mcore/mcore.h (SECONDARY_RELOAD_CLASS): Redefine in + terms of mcore_secondary_reload_class. + +2003-09-11 Mike Stump + + * c-lex.c (fe_file_change): Don't transform to_line with SOURCE_LINE. + +2003-09-11 Kaveh R. Ghazi + + * builtins.c (fold_builtin_logarithm): if N can't be truncated to + MODE exactly, then only convert logN(N) -> 1.0 if + flag_unsafe_math_optimizations is set. + + * builtins.c (builtin_dconsts_init, dconstpi, dconste, + init_builtin_dconsts): Delete. + * emit-rtl.c (dconstpi, dconste): Define. + (init_emit_once): Initialize dconstpi & dconste. + * real.h (dconstpi, dconste): Declare. + +2003-09-11 Alexandre Oliva + + PR fortran/11522 + * dwarf2out.c (gen_inlined_subroutine_die): Emit abstract function + for ultimate origin even if block is abstract. + +2003-09-11 Roger Sayle + + * combine.c (combine_simplify_rtx): Move several NOT and NEG + optimizations from here... + * simplify-rtx.c (simplify_unary_operation): to here. Recursively + simplify expressions using simplify_gen_*ary instead of gen_rtx_*. + +2003-09-11 Richard Henderson + + * cgraphunit.c (cgraph_finalize_function): Add nested arg. + Tweek tests for function already generated. + (cgraph_expand_function): Don't double announce in !unit-at-a-time. + * cgraph.h (cgraph_finalize_function): Update for extra arg. + * c-decl.c (finish_function): Likewise. + +2003-09-10 Joe Buck + + * c-decl.c (poplevel): Eliminate use of |= in function_body assignment. + +2003-09-10 Jerry Quinn + + * real.c: Update URL to VAX floating point docs. + (decode_vax_d): Extract 8 exponent bits instead of 7. + +2003-09-10 Ian Lance Taylor + + * combine.c (force_to_mode): Set fuller_mask based only on mask, + not op_mode. + +2003-09-11 Jan Hubicka + + * c-objc-common.c (c_cannot_inline_tree_fn): Warn + on why function is not inlinable; do not check + the body. + (inline_forbidden_p): Move to... + * tree-inline.c (inline_forbidden_p_1): ... here; Add warnings; + deal with alloca, longjmp. + (inline_forbidden_p): New static function. + (find_alloca_call_1, find_alloca_call, find_builtin_longjmp_call_1, + find_builtin_longjmp_call): Kill. + +2003-09-10 Richard Henderson + + * cgraph.h (struct cgraph_node): Rename lowered to analyzed. + * cgraphunit.c: Update to match. + (record_call_1): Rearrange. Call lang hook for language nodes. + (cgraph_analyze_function): Don't call lower_function. + * langhooks.h (struct lang_hooks_for_callgraph): Replace + lower_function with analyze_expr. + * langhooks-def.h: Update to match. + * langhooks.c (lhd_callgraph_analyze_expr): New. + +2003-09-10 Martin Husemann + + PR target/11965 + * config/sparc/sparc.c (sparc_v8plus_shift): Protect against + constants greater than 63. + * config/sparc/sparc.md (ashlsi3, ashrsi3, lshrsi3): Protect + against constants greater than 31. + (*ashldi3_sp64, *ashrdi3_sp64, *lshrdi3_sp64): Protect against + constants greater than 63. + +2003-09-09 Richard Henderson + + * cgraphunit.c (cgraph_finalize_function): Remove unused argument. + * cgraph.h (cgraph_finalize_function): Update. + * c-decl.c (finish_function): Update. + +2003-09-09 Devang Patel + + * config/darwin.h (LINK_SPEC): Pass -nofixprebinding to linker. + * doc/invoke.texi: Document new Darwin linker option -nofixprebinding. + +2003-09-09 Eric Christopher + + * configure.in: Change usage of 'head' to 'sed 1q'. + * configure: Regenerate. + +2003-09-09 Richard Henderson + + * except.c: Include cgraph.h. + (output_function_exception_table): Invoke + cgraph_varpool_mark_needed_node. + * Makefile.in (except.o): Update. + +2003-09-07 Kelley Cook + + * Makefile.in: Define REMAKEFLAGS for LANGUAGES & BOOT_CFLAGS + and use it throughout. + +2003-09-09 Kaveh R. Ghazi + + * builtins.c (real_dconstp, fold_builtin_logarithm, + fold_builtin_exponent): New, split out from fold_builtin. Also + generalize to add log2, log10, exp2 and exp10/pow10 equivalents. + * emit-rtl.c (dconst3, dconst10, dconstthird): New. + (init_emit_once): Initialize new dconsts, use ARRAY_SIZE in lieu + of hardcoded array size. + * fold-const.c (fold): Add cases for exp2, exp10 and pow10. + (tree_expr_nonnegative_p): Likewise. + * real.h (dconst3, dconst10, dconstthird): New. + +2003-09-09 Jan Hubicka + + * cgraphunit.c (cgraph_finalize_function): Fix handling of extern + inline functions. + (cgraph_finalize_compilation_unit): Fix crash when dealing with lost + DECL_SAVED_TREE. + +2003-09-09 Roger Sayle + + * builtins.c (fold_builtin_cabs): Protect the complex argument + against multiple evaluation when optimizing cabs* into sqrt*. + +2003-09-09 Jan Hubicka + + * varasm.c (notice_global_symbol): Properly deal with weak symbols. + +2003-09-08 Kelley Cook + + * Makefile.in: Revert yesterday's change. + +2003-09-08 Bernardo Innocenti + Peter Barada + + * config/m68k/coff.h (REGISTER_NAMES): Add fake register `argptr' + * config/m68k/hp320.h (REGISTER_NAMES): Likewise. + * config/m68k/linux.h (REGISTER_NAMES): Likewise. + * config/m68k/m68kelf.h (REGISTER_NAMES): Likewise. + * gcc/config/m68k/sgs.h (REGISTER_NAMES): Likewise. + * config/m68k/m68k-protos.h (m68k_initial_elimination_offset): Add prototype. + * config/m68k/m68k.c (m68k_frame): New struct, simular to ix86 back-end. + (m68k_compute_frame_layout): New function. + (m68k_initial_elimination_offset): New function. + (m68k_output_function_prologue): ColdFire-specific movem handling. + (m68k_output_function_epilogue): Likewise. + * config/m68k/m68k.h (FIRST_PSEOUDO_REGISTER): Make room for argptr reg. + (ARG_POINTER_REGNUM): Add new definition. + (INITIAL_FRAME_POINTER_OFFSET): Remove macro. + (ELIMINABLE_REGS): Define new macro, like in ix86 back-end. + (CAN_ELIMINATE): Likewise. + (INITIAL_ELIMINATION_OFFSET): Likewise. + +2003-09-08 Bernardo Innocenti + + * config/m68k/m68k.c (m68k_output_function_prologue): Simplify + by removing redundant variable cfa_store_offset. + +2003-09-08 Mark Mitchell + + * langhooks-def.h (lhd_register_builtin_type): New function. + (LANG_HOOKS_REGISTER_BUILTIN_TYPE): New macro. + (LANG_HOOKS_FOR_TYPES_INITIALIZER): Update. + * langhooks.h (lang_hooks_for_types): Add register_builtin_type. + * langhooks.c (lhd_register_builtin_type): New function. + * c-common.h (c_register_builtin_type): Declare. + * c-common.c (c_register_builtin_type): New function. + * c-lang.c (LANG_HOOKS_REGISTER_BUILTIN_TYPE): Define to + c_register_builtin_type. + * config/ia64/hpux.h (TARGET_OS_CPP_BUILTINS): Remove __fpreg, + __float80, and __float128 macros. + * config/ia64/ia64.c (ia64_init_builtins): Create __fpreg, + __float80, and __float128 types. + +2003-09-08 Kaveh R. Ghazi + + * builtin-types.def + (BT_FN_COMPLEX_LONGDOUBLE_COMPLEX_LONGDOUBLE_COMPLEX_LONGDOUBLE, + BT_FN_COMPLEX_DOUBLE_COMPLEX_DOUBLE_COMPLEX_DOUBLE, + BT_FN_COMPLEX_FLOAT_COMPLEX_FLOAT_COMPLEX_FLOAT): New. + * builtins.def (BUILT_IN_CACOS, BUILT_IN_CACOSF, BUILT_IN_CACOSH, + BUILT_IN_CACOSHF, BUILT_IN_CACOSHL, BUILT_IN_CACOSL, + BUILT_IN_CARG, BUILT_IN_CARGF, BUILT_IN_CARGL, BUILT_IN_CASIN, + BUILT_IN_CASINF, BUILT_IN_CASINH, BUILT_IN_CASINHF, + BUILT_IN_CASINHL, BUILT_IN_CASINL, BUILT_IN_CATAN, + BUILT_IN_CATANF, BUILT_IN_CATANH, BUILT_IN_CATANHF, + BUILT_IN_CATANHL, BUILT_IN_CATANL, BUILT_IN_CCOS, BUILT_IN_CCOSF, + BUILT_IN_CCOSH, BUILT_IN_CCOSHF, BUILT_IN_CCOSHL, BUILT_IN_CCOSL, + BUILT_IN_CEXP, BUILT_IN_CEXPF, BUILT_IN_CEXPL, BUILT_IN_CPOW, + BUILT_IN_CPOWF, BUILT_IN_CPOWL, BUILT_IN_CPROJ, BUILT_IN_CPROJF, + BUILT_IN_CPROJL, BUILT_IN_CSIN, BUILT_IN_CSINF, BUILT_IN_CSINH, + BUILT_IN_CSINHF, BUILT_IN_CSINHL, BUILT_IN_CSINL, BUILT_IN_CSQRT, + BUILT_IN_CSQRTF, BUILT_IN_CSQRTL, BUILT_IN_CTAN, BUILT_IN_CTANF, + BUILT_IN_CTANH, BUILT_IN_CTANHF, BUILT_IN_CTANHL, BUILT_IN_CTANL): + New. + * doc/extend.texi: Document new builtins. + +2003-09-09 Jan Hubicka + + * cgraph.c (cgraph_varpool_finalize_decl): Sanity check duplicated + finalization. + * cgraphunit.c (decide_is_fnction_needed): Avoid special case of nested + functions, check for COMDAT. + (cgraph_assemble_pending_functions): Break out from... + (cgraph_finalize_function): ... here; allow redefinig of extern inline + functions. + (record_call_1): Record function references only in non-unit-at-a-time + mode. + (cgraph_analyze_function): Reset current_function_decl. + (cgraph_finalize_compilation_unit): Assemble pending functions. + +2003-09-08 Mark Mitchell + + * mklibgcc.in (libcc.a): Depend on stmp-dirs. + (libgov.a): Likewise. + (libgcc_eh.a): Likewise. + +2003-09-08 Roger Sayle + + * fold-const.c (operand_equal_p): Clarify documentation. + +2003-09-08 Richard Henderson + + * c-decl.c (c_expand_body_1): Push and pop function context here. + * tree-optimize.c (tree_rest_of_compilation): ... not here. Take + nested argument instead of computing nesting ourselves. + +2003-09-08 Jakub Jelinek + + * toplev.c (rest_of_handle_stack_regs): Call split_all_insns before + regstack if optimizing but not scheduling after reload. + +2003-09-08 Jakub Jelinek + + * config/sparc/sparc.c (struct machine_function): New type. + (TARGET_HAVE_TLS, TARGET_CANNOT_FORCE_CONST_MEM): Define. + (sparc_override_options): Initialize init_machine_status. + (tls_symbolic_operand, tgd_symbolic_operand, tld_symbolic_operand, + tie_symbolic_operand, tle_symbolic_operand): New functions. + (symbolic_operand): Disallow tls_symbolic_operand. + (symbolic_memory_operand): Likewise. + (tls_call_delay, sparc_cannot_force_const_mem, legitimate_constant_p, + constant_address_p, legitimate_pic_operand_p, legitimate_address_p): + New functions. + (sparc_tls_symbol): New variable. + (sparc_tls_get_addr, sparc_tls_got, legitimize_tls_address, + legitimize_address): New functions. + (print_operand): Handle %&. + (sparc_init_machine_status, get_some_local_dynamic_name, + get_some_local_dynamic_name_1): New functions. + (sparc_output_dwarf_dtprel): New function. + * config/sparc/sparc.h (CONSTANT_ADDRESS_P): Moved into + constant_address_p. + (LEGITIMATE_PIC_OPERAND_P): Moved into legitimate_pic_operand_p. + (LEGITIMATE_CONSTANT_P): Moved into legitimate_constant_p. + (GO_IF_LEGITIMATE_ADDRESS): Moved into legitimate_address_p. + (LEGITIMIZE_ADDRESS): Moved into legitimize_address. + (PRINT_OPERAND_PUNCT_VALID_P): Add '&'. + (TARGET_TLS, TARGET_SUN_TLS, TARGET_GNU_TLS): Define. + (ASM_OUTPUT_DWARF_DTPREL): Define. + (PREDICATE_CODES): Add tgd_symbolic_operand, tld_symbolic_operand, + tie_symbolic_operand, tle_symbolic_operand. + * config/sparc/sparc.md (UNSPEC_TLSGD, UNSPEC_TLSLDM, UNSPEC_TLSLDO, + UNSPEC_TLSIE, UNSPEC_TLSLE, UNSPEC_TLSLD_BASE): New constants. + (tls_call_delay): New attribute. + (in_call_delay): Use it. + (movqi, movhi, movsi, movdi): Call legitimize_tls_address if needed. + (tgd_hi22, tgd_lo10, tgd_add32, tgd_add64, tgd_call32, tgd_call64, + tldm_hi22, tldm_lo10, tldm_add32, tldm_add64, tldm_call32, tldm_call64, + tldo_hix22, tldo_lox10, tldo_add32, tldo_add64, tie_hi22, tie_lo10, + tie_ld32, tie_ld64, tie_add32, tie_add64, tle_hix22_sp32, + tle_lox10_sp32, tle_hix22_sp64, tle_lox10_sp64): New insns. + (tldo_ldub_sp32, tldo_ldub1_sp32, tldo_ldub2_sp32, tldo_ldsb1_sp32, + tldo_ldsb2_sp32, tldo_ldub_sp64, tldo_ldub1_sp64, tldo_ldub2_sp64, + tldo_ldub3_sp64, tldo_ldsb1_sp64, tldo_ldsb2_sp64, tldo_ldsb3_sp64, + tldo_lduh_sp32, tldo_lduh1_sp32, tldo_ldsh1_sp32, tldo_lduh_sp64, + tldo_lduh1_sp64, tldo_lduh2_sp64, tldo_ldsh1_sp64, tldo_ldsh2_sp64, + tldo_lduw_sp32, tldo_lduw_sp64, tldo_lduw1_sp64, tldo_ldsw1_sp64, + tldo_ldx_sp64, tldo_stb_sp32, tldo_stb_sp64, tldo_sth_sp32, + tldo_sth_sp64, tldo_stw_sp32, tldo_stw_sp64, tldo_stx_sp64): New + insns. + * config/sparc/sparc-protos.h (legitimate_constant_p, + constant_address_p, legitimate_pic_operand_p, legitimate_address_p, + legitimize_tls_address, legitimize_address, tls_symbolic_operand, + tls_call_delay, sparc_output_dwarf_dtprel): New prototypes. + * config/sparc/linux.h (TARGET_GNU_TLS, TARGET_SUN_TLS): Define. + * config/sparc/linux64.h (TARGET_GNU_TLS, TARGET_SUN_TLS): Likewise. + * configure.in (sparc*-*-*): Add TLS check. + * configure: Rebuilt. + +2003-09-07 Eric Botcazou + + PR target/11689 + * config/i386/i386.c (memory_address_length): Fix computation when + the base is esp or ebp. + +2003-09-07 Mark Mitchell + + PR c++/11852 + * varasm.c (initializer_constant_valid_p): Correct logic for + CONSTRUCTORs. + +2003-09-07 Roger Sayle + + * expr.c (expand_operands): New function to expand an operand pair. + (expand_expr): Call expand_operands whenever we need to expand both + operands of a binary operator. + (do_store_flag): Likewise for operands of comparison operations. + +2003-09-07 Roger Sayle + + * combine.c (combine_simplify_rtx): Don't convert -(A*B) into + (-A)*B if we care about sign-dependent rounding. + +2003-09-07 Gabriel Dos Reis + + * c-pretty-print.h (pp_c_left_brace): Declare. + (pp_c_right_brace): Likewise. + * c-pretty-print.c (pp_c_left_brace): Now a function + (pp_c_right_brace): Likewise. + +2003-09-07 Jan Hubicka + + * cfgcleanup.c (try_simplify_condjump): Fix again the preivous patch. + +2003-09-07 Gabriel Dos Reis + + * diagnostic.c (warn_deprecated_use): Move to toplev.c + +2003-09-07 Gabriel Dos Reis + + * langhooks.c (lhd_print_error_function): Move from diagnostic.c. + * Makefile.in (langhooks.o): Depend on diagnostic.h + +2003-09-06 James E Wilson + + * loop.c (loop_regs_update): Delete else clause for PATTERN rtx and + simplify. + +2003-09-07 Kelley Cook + + * Makefile.in: Define $REMAKE to be $MAKE with LANGUAGES & BOOT_CFLAGS + and use it throughout. + +2003-09-07 Jan Hubicka + + * cfgcleanup.c (try_simplify_condjump): Fix my previous patch. + + * toplev.c (rest_of_decl_compilation): Do not finalize external + virables. + + * cgraph.c (cgraph_mark_reachable_node): Only enqueue finalized + functions. + (cgraph_varpool_finalize_decl): Notice global symbol when needed. + +2003-09-06 Jan Hubicka + + PR target/12070 + * calls.c (emit_library_call_value_1): Fix saving of BLKmode arguments. + + PR opt/12082 + * cfgcleanup.c (try_simplify_condjump): Avoid unreachable code warning. + +2003-09-06 Gabriel Dos Reis + + * diagnostic.c (announce_function): Move to toplev.c. + +2003-09-06 Zdenek Dvorak + + * gcse.c (expr_equiv_p): Don't consider anything to be equal to + volatile mem. + +2003-09-06 Kaveh R. Ghazi + + * ggc-common.c (init_ggc_heuristics): Don't use the heuristics + when gc checking is enabled. + +2003-09-06 Steven Bosscher + + PR c/9862 + * c-decl.c (c_expand_body_1): Move return warning from here... + (finish_function): ...to here. + +2003-09-05 Geoffrey Keating + + * config/rs6000/darwin.h (PREFERRED_RELOAD_CLASS): Always return + a subset of the input class. + +2003-09-05 Kazu Hirata + + * config/i860/i860.c: Follow spelling conventions. + * config/i860/i860.h: Likewise. + * config/sh/sh.h: Likewise. + +2003-09-05 Nitin Yewale + + * config/h8300/h8300-protos.h: Declare h8300_hard_regno_rename_ok + * config/h8300/h8300.h (HARD_REGNO_RENAME_OK): New. + * config/h8300/h8300.c (h8300_hard_regno_rename_ok): New. + +2003-09-05 Roger Sayle + Richard Henderson + + PR optimization/1823 + * expmed.c (expand_divmod ): Use an unsigned + multiplication to implement division by constant integer. + +2003-09-05 Jan Hubicka + + * opts.c (decode_options): Enable unit-at-a-time at -O2. + * params.def (max-inline-insns-single): Set to 500 + (max-inline-insns-auto): Set to 150 + * invoke.texi (max-inline-insns-single, max-inline-insns-auto): Update. + +2003-09-04 Richard Henderson + + * cgraph.c (cgraph_mark_reachable_node): Split out from ... + (cgraph_mark_needed_node): Remove needed argument. + * cgraph.h: Update to match. + * cgraphunit.c (decide_is_function_needed): Split out from ... + (cgraph_finalize_function): Reorg. Avoid deferred_inline_function + if we generated the function. + (record_call_1): Update for cgraph_mark_reachable_node. + * varasm.c (mark_referenced): Likewise. + * objc/objc-act.c (mark_referenced_methods): Likewise. + +2003-09-04 DJ Delorie + + * targhooks.c: Add comment explaining the migration process. + +2003-09-04 Eric Christopher + + * config/frv/t-frv: Fix path for frv-abi.h. + * config/frv/frv-asm.h: Fix string concatenation. + +2003-09-04 DJ Delorie + + * builtins.c (apply_args_size): Guard against a NULL cfun. + (expand_builtin_apply_args_1): Likewise. + (expand_builtin_apply): Likewise. + Fixes PR bootstrap/12172. + +2003-09-04 Rainer Orth + + * configure.in (gcc_cv_as_ix86_cmov_sun_syntax): Check if + assembler supports Sun syntax for cmov. + * configure: Regenerate. + * config.in: Likewise. + * config/i386/i386.c: Rename CMOV_SUN_AS_SYNTAX to + HAVE_AS_IX86_CMOV_SUN_SYNTAX. + * config/i386/sol2.h (CMOV_SUN_AS_SYNTAX): Remove. + Fixes PR target/12101. + +2003-09-04 Matt Austern + + * c-common.c (fname_as_string): Use lang_hooks.decl_printable_name + with verbosity 0, instead of DECL_NAME, for human-readable string. + +2003-09-04 Eric Christopher + + * targhooks.c (default_return_in_memory): Allow + unconverted ports. + +2003-09-04 Eric Christopher + + * targhooks.c (default_return_in_memory): Fix typo + in last checkin. + +2003-09-04 Eric Christopher + + * targhooks.c (default_return_in_memory): Fix default + definition. + +2003-09-04 Bernardo Innocenti + + * config/m68k/m68k.c (m68k_coff_asm_named_section): Restore + deleted function. + * config/m68k/coff.h (M68K_TARGET_COFF): Add flag used to + enable coff-only code in m68k.c. + +2003-09-04 Nick Clifton + + * config.gcc: Add v850e1 target. Allow --with-cpu to accept + v850e1. + * config/v850/v850.h: Accept v850e1 as a default CPU. + Accept -mv850e1 as a command line option. + * doc/invoke.texi: Document new -mv850e1 command line switch. + * config/v850/t-v850: Treat -mv850e1 as a multilib alias for + -mv850e. + +2003-09-04 Nick Clifton + + * config.gcc (v850e-*-*): Use t-v850e makefile fragment. + * config/v850/t-v850: Only produce one extra multilib - for + the v850e. + * config/v850/t-v850e: New file: Only produce one extra + multilib - for the v850. + +2003-09-04 Jakub Jelinek + + * config/ia64/libgcc-ia64.ver: Export _Unwind_GetBSP@@GCC_3.3.2. + * config/ia64/unwind-ia64.c (_Unwind_GetBSP): New function. + * unwind.h (_Unwind_GetBSP): New prototype. + * libgcc-std.ver: Add empty GCC_3.3.2 version. + * mkmap-symver.awk: For symbol versions with no exported symbols, + don't put anything into version script, just change all symbol + versions which inherit from it to inherit from its ancestor. + +2003-09-04 Eric Christopher + + * config/mips/mips.c (mips_expand_prologue): Convert to + calls.struct_value_rtx hook. + (reg_or_const_float_1_operand): New. + * config/mips/mips.h: Update Comments. + (mips_arg): Add reg_or_const_float_1_operand. + * config/mips/mips.md (divdf3); Convert to expander. + (divsf3): Ditto. + (*divdf3): New pattern. + (*divsf3): Ditto. + +2003-09-04 Jan Hubicka + + * toplev.c (wrapup_global_declarations): Fix final pass in + unit-at-atime mode. + +2003-09-04 Mark Mitchell + + * doc/extend.texi: Document removal of cast-as-lvalue extension in + C++. + +2003-09-04 Nicolas Roche + + * gcc.c (process_command): Fix typo. + +2003-09-03 David O'Brien + + optimization/11980 + * config/i386/freebsd.h (SIZE_TYPE): Support TARGET_64BIT. + (PTRDIFF_TYPE): Likewise. + (WCHAR_TYPE_SIZE): Likewise. + +2003-09-03 DJ Delorie + + * targhooks.c: New file. + * targhooks.h: New file. + * Makefile.in: Add targhooks.o support. + (function.o): Depend on$(TARGET_H). + (stmt.o): Likewise. + (combine.o): Depend on $(TREE_H) and $(TARGET_H). + * builtins.c (apply_args_size, expand_builtin_apply_args_1, + expand_builtin_apply): Convert to calls.struct_value_rtx hook. + (expand_builtin_saveregs): Convert to + calls.expand_builtin_saveregs hook. + * c-decl.c (start_decl): Handle new calls.promote_prototypes hook + here, instead of ... + (get_parm_info) ... here. + (store_parm_decls_oldstyle): Convert to calls.promote_prototypes + hook. + (finish_function): Handle calls.promote_prototypes hook here too. + * c-typeck.c (convert_arguments): Convert to + calls.promote_prototypes hook. + (c_convert_parm_for_inlining): Likewise. + * calls.c (initialize_argument_information): Convert to + calls.promote_function_args hook. + (expand_call): Convert to calls.struct_value_rtx, + calls.strict_argument_naming, + calls.pretend_outgoing_varargs_named, and + calls.promote_function_return hooks. Pass fndecl to + aggregate_value_p. Initialize CUMULATIVE_ARGS before calling + hooks, so they can use that. + (emit_library_call_value_1): Likewise. + * combine.c (setup_incoming_promotions): Convert to + calls.promote_function_args hook. + * emit-rtl.c: Convert to calls.struct_value_rtx hook. + * expr.c (expand_assignment): Pass call to aggregate_value_p. + (expand_expr): Likewise. + * expr.h: Remove support for SETUP_INCOMING_VARARGS, + STRICT_ARGUMENT_NAMING, PRETEND_OUTGOING_VARARGS_NAMED, + RETURN_IN_MEMORY macro defaults. + * final.c (profile_function): Convert to calls.struct_value_rtx + hook. + * function.c (aggregate_value_p): Accept function type tree as + second parameter; try to deduce fntype from it. Convert to + calls.return_in_memory hook. + (assign_parms): Convert to calls.setup_incoming_varargs, + calls.strict_argument_naming, calls.promote_function_args, + calls.pretend_outgoing_varargs_named hooks. Pass fndecl to + aggregate_value_p. + (expand_function_start): Likewise. Convert to + calls.struct_value_rtx hook. + (expand_function_end): Convert to calls.promote_function_return hook. + (allocate_struct_function): Pass fndecl to aggregate_value_p. + * hard-reg-set.h: Update comments to new hook names. + * integrate.c (expand_inline_function): Pass fndecl to aggregate_value_p. + * reg-stack.c (stack_result): Likewise. + * rtl.h (struct_value_rtx, struct_value_incoming_rtx): Delete. + * stmt.c (expand_value_return): Convert to + calls.promote_function_return hook. + * target-def.h: Add TARGET_PROMOTE_FUNCTION_ARGS, + TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES, + TARGET_STRUCT_VALUE_RTX, TARGET_RETURN_IN_MEMORY, + TARGET_EXPAND_BUILTIN_SAVEREGS, TARGET_SETUP_INCOMING_VARARGS, + TARGET_STRICT_ARGUMENT_NAMING, + TARGET_PRETEND_OUTGOING_VARARGS_NAMED, and TARGET_CALLS. + * target.h: Likewise. + * tree.h (aggregate_value_p): Also takes a tree to deduce function + attributes from (for target hooks). + * doc/tm.texi (PROMOTE_FUNCTION_ARGS, PROMOTE_FUNCTION_RETURN, + PROMOTE_PROTOTYPES, RETURN_IN_MEMORY, STRUCT_VALUE_REGNUM, + STRUCT_VALUE, STRUCT_VALUE_INCOMING_REGNUM, STRUCT_VALUE_INCOMING, + EXPAND_BUILTIN_SAVEREGS, SETUP_INCOMING_VARARGS, + STRICT_ARGUMENT_NAMING, PRETEND_OUTGOING_VARARGS_NAMED): Convert + to hooks. + + * config/alpha/alpha.c (alpha_output_mi_thunk_osf): Pass function + to aggregate_value_p. + * config/arm/arm.c (arm_init_cumulative_args, + arm_output_mi_thunk): Likewise. + * config/i386/i386.c (ix86_return_pops_args, x86_this_parameter): + Likewise. + * config/mips/mips.c (mips_save_reg_p, mips_expand_prologue, + mips_can_use_return_insn): Likewise. + * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Likewise. + * config/s390/s390.c (s390_output_mi_thunk): Likewise. + * config/sparc/sparc.c (sparc_output_mi_thunk): Pass function to + aggregate_value_p. + * config/story16/stormy16.c (xstormy16_asm_output_mi_thunk): Pass + function to aggregate_value_p. + * objc/objc-act.c (generate_struct_by_value_array): Pass NULL to + aggregate_value_p. + + * config/sh/sh-protos.h (sh_builtin_saveregs): Remove. + (sh_attr_renesas_p, sh_cfun_attr_renesas_p, sh_function_arg, + sh_function_arg_advance, sh_pass_in_reg_p): New. * config/sh/sh.c + (sh_handle_renesas_attribute, sh_promote_prototypes, + sh_struct_value_rtx, sh_return_in_memory, sh_builtin_saveregs, + sh_setup_incoming_varargs, sh_strict_argument_naming, + sh_pretend_outgoing_varargs_named): New decls. + (targetm): Add new hooks. + (calc_live_regs): Save MACL and MACH if the function has the + renesas attribute. + (sh_expand_prologue): Support renesas attribute. + (sh_builtin_saveregs): Make static. + (sh_build_va_list): Support renesas attribute. + (sh_va_start): Likewise. + (sh_va_arg): Likewise. + (sh_promote_prototypes): New. + (sh_function_arg): New, moved from sh.h. Support renesas + attribute. + (sh_function_arg_advance): Likewise. + (sh_return_in_memory): Likewise. + (sh_strict_argument_naming): Likewise. + (sh_pretend_outgoing_varargs_named): Likewise. + (sh_struct_value_rtx): New. + (sh_attribute): Add renesas attribute. + (sh_handle_renesas_attribute): New. + (sh_attr_renesas_p, sh_cfun_attr_renesas_p): New. + (sh_ms_bitfield_layout_p): Support renesas attribute also. + (sh_output_mi_thunk): Pass function to aggregate_value_p. * + config/sh/sh.h (TARGET_SWITCHES): Add -mrenesas as an alias for + -mhitachi. + (STRUCT_VALUE_REGNUM, STRUCT_VALUE, RETURN_IN_MEMORY): Moved to + target hooks. + (sh_args): Add renesas_abi flag. + (INIT_CUMULATIVE_ARGS): Set it. Pass fndecl to aggregate_value_p. + (FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Move to sh.c. + (PASS_IN_REG_P): Support renesas attribute. Pass DF and TF on the + stack for the renesas abi. + (STRICT_ARGUMENT_NAMING, PRETEND_OUTGOING_VARARGS_NAMED, + SETUP_INCOMING_VARARGS, EXPAND_BUILTIN_SAVEREGS, + PROMOTE_PROTOTYPES): Moved to sh.c. * config/sh/sh.md (call): Set + call cookie to indicate renesas calls. + +2003-09-03 Mostafa Hagog + + * gcse.c (replace_one_set): New function. + (pre_insert_copy_insn): Change the order of copying + to make copy propagation discover additional PRE opportunities. + +2003-09-03 Roger Sayle + + PR optimization/11700. + * simplify-rtx.c (simplify_subreg): Check that the subreg offset + of a hard register is representable before trying to simplify it + using subreg_hard_regno. + +2003-09-04 Rainer Orth + + * configure.in (gcc_cv_ld_hidden): Disable unless using GNU ld. + * configure: Regenerate. + +2003-09-04 Rainer Orth + + * intl.h (N_): Remove parentheses. + +2003-09-03 Bernardo Innocenti + + * config.gcc (m68k-*-linux*): Remove definition of LINUX_DEFAULT_ELF. + * config/i370/linux.h (LINUX_DEFAULT_ELF): Remove unconditional + definition and code blocks compiled when not defined. + * config/i386/linux.h (LINUX_DEFAULT_ELF): Likewise. + * config/i386/linux64.h (LINUX_DEFAULT_ELF): Likewise. + * config/sparc/linux.h: (LINUX_DEFAULT_ELF): Likewise. + * config/sparc/linux64.h: (LINUX_DEFAULT_ELF): Likewise. + +2003-09-03 Jeff Sturm + + * cgraphunit.c (visited_nodes): New static variable. + (record_call_1): Use walk_tree with visited_nodes. + (cgraph_create_edges): Use walk_tree with visited_nodes. + Setup/teardown visited_nodes hashtable. + +2003-09-03 Roger Sayle + + * toplev.c (flag_rounding_math): New global variable. + (f_options): Add to the list of language independent options. + * flags.h (flag_rounding_math): Prototype here. + (HONOR_SIGN_DEPENDENT_ROUNDING): Use flag_rounding_math instead. + * common.opt (frounding-math): New common command line option. + * opts.c (common_handle_option): Handle OPT_frounding_math. + (set_fast_math_flags): -ffast-math clears flag_rounding_math. + + * doc/invoke.texi: Document this new command line option. + +2003-09-03 Rainer Orth + + * config/sol2.h (NO_IMPLICIT_EXTERN_C): Update comment. + +2003-09-03 Jan Hubicka + + * Makefile.in (c-objc-common.o): Kill gt-c-objc-common.h dependency. + * c-decl.c (finish_function): Kill arguments, always use cgraph path. + * c-objc-common.c: Kill include of gt-c-objc-common.h + (expand_deferred_fns, deffer_fn): Kill function. + (deferred_fns): Kill variable. + (finish_cdtor): Update finish_function call. + (c_objc_common_finish_file): Always call cgraph code. + * c-parse.c: Regenerate. + * c-parse.y: Regenerate. + * c-tree.h (finish_function): Update prototype. + * objc-acct.c (build_module_descriptor, finish_method_def): + Update call of finish_function. + * cgraphunit.c (cgraph_default_inline_p, cgraph_analyze_function): Add + forward prototype. + (cgraph_finalize_function): In non-unit-at-a-time mode analyze the + function and assemble it if needed. + (cgraph_finalize_compilation_unit): Do nothing in non-unit-at-a-time + mode. + (cgraph_optimize): Likewise. + (cgraph_expand_function): In non-unit-at-a-time mode keep function body + even when it has no inline callees. + * c-parse.in: Update calls to finish_function. + +2003-09-03 Nick Clifton + + * config/arm/arm.h: Handle TARGET_CPU_iwmmxt. + Use #error to generate the message if TARGET_DEFAULT is not + recognised. + +2003-09-03 Richard Sandiford + + * config/mips/mips.h (MASK_UNUSED1): Remove. + (MASK_XGOT, TARGET_XGOT): Define. + (TARGET_SWITCHES): Add an entry for -mxgot. + (ASM_SPEC): Map -mxgot to -xgot. + * config/mips/mips.c (mips_symbol_insns): Use TARGET_XGOT to decide + whether we're using a big-GOT sequences. + (mips_legitimize_const_move, mips_expand_call): Likewise. + (override_options): Revert 2003-01-09 change. + * doc/invoke.texi: Document -mxgot. + +2003-09-02 Jason Merrill + + * config/sol2.h (NO_IMPLICIT_EXTERN_C): Define here. + * config/sparc/sol2.h: Not here. + +2003-09-02 Roger Sayle + + * expr.c (expand_expr): The code following both_summands performs + the same task as simplify_gen_binary. Replace all gotos to + both_summands with a call to simplify_gen_binary and delete the + now unused label. + +2003-09-02 Jason Merrill + + PR c++/7327 + * config/sparc/sol2.h (NO_IMPLICIT_EXTERN_C): Define. + +2003-09-02 Jeff Sturm + + * cgraphunit.c (record_call_1): Use walk_tree_without_duplicates. + (cgraph_optimize_function): Set current_function_decl to the + fndecl we're integrating from. + +2003-09-02 Kaveh R. Ghazi + + * builtins.def: Break out _Complex math functions into their + own category. + +2003-09-02 Andreas Jaeger + + * langhooks-def.h (LANG_HOOKS_RTL_EXPAND_STMT): Cast properly. + +2003-09-02 Josef Zlomek + + * cfgbuild.c (compute_outgoing_frequencies): Use NOTE instead of + finding the note again. + +2003-09-02 Nathanael Nerode + + * config.gcc: Remove host-specific rewrites of target_alias. + +2003-09-01 Mark Mitchell + + * Makefile.in (genprogs): Fix typo. + + * Makefile.in (gencheck.o): Remove build commands. + (dummy-conditions.o): Likewise. + (read-rtl.o): Likewise. + (gensupport.o): Likewise. + (genconfig$(build_exeext)): Remove rule. + (genconfig.o): Remove build commands. + (genflags$(build_exeext)): Remove rule. + (genflags.o): Remove build commands. + (gencodes$(build_exeext)): Remove rule. + (gencodes.o): Remove build commands. + (genconstants.o): Remove build commands. + (genemit$(build_exeext)): Remove rule. + (genemit.o): Remove build commands. + (genrecog$(build_exeext)): Remove rule. + (genrecog.o): Remove build commands. + (genextract$(build_exeext)): Remove rule. + (genextract.o): Remove build commands. + (genpeep$(build_exeext)): Remove rule. + (genpeep.o): Remove build commands. + (genattr$(build_exeext)): Remove rule. + (genattr.o): Remove build commands. + (genprognames): New variable. + (genprogs): Likewise. + (genobjs): Likewise. + (genprogs): New rule. + (genobjs): Likewise. + (genattrtab.o): Remove build commands. + (genautomata.o): Likewise. + (genoutput$(build_exeext)): Remove rule. + (genoutput.o): Remove build commands. + (gengenrtl.o): Likewise. + (genpreds.o): Likewise. + (gengtype.o): Likewise. + (genconditions.o): Likewise. + (gen-protos.o): Likewise. + (scan.o): Likewise. + (fix-header.o): Likewise. + (scan-decls.o): Likewise. + (check-g++): Combine with other check targets. + (check-gcc): Likewise. + (check-g77): Likewise. + (check-objc): Likewise. + +2003-09-01 Nathanael Nerode + + * config.gcc: Remove host-specific stuff which is unused here + since the introduction of config.host. + + * doc/fragments.texi: Mention config.host. + * doc/sourcebuild.texi: Mention config.host. Give brief descriptions + of config.build, config.host, and config.gcc. + +2003-09-01 Zack Weinberg + + * c-decl.c (pushdecl): Don't put variables on + C_TYPE_INCOMPLETE_VARS of a type unless that type is itself + incomplete. + +2003-09-01 Nathanael Nerode + + * config.host: New file. + * config.gcc: Remove some host-specific stuff and some + logic needed only for repeated invocation. + * configure.in: Use config.host. + * configure: Regenerate. + +2003-09-01 Josef Zlomek + + * c-typeck.c (build_binary_op): Kill BIT_ANDTC_EXPR. + * convert.c (convert_to_integer): Kill BIT_ANDTC_EXPR. + * fold-const.c (int_const_binop): Kill BIT_ANDTC_EXPR. + (fold): Kill BIT_ANDTC_EXPR and label bit_and. + * tree.def (BIT_ANDTC_EXPR): Kill. + +2003-08-31 Nathanael Nerode + + * configure.in: Remove uses of "for x in .. ${foo}" idiom. + * configure: Regenerate. + + * config.gcc: Remove references to install_headers_dir, now unused + since introduction of config.build. + * config.gcc (i860-*-sysv4*): Don't set unused USG, SVR3 defines. + + * doc/fragments.texi, doc/sourcebuild.texi: Mention new file + config.build. + + * config.build: New file. + * config.gcc: Remove some build-specific stuff. + * configure.in: Use config.build. + * configure: Regnerate. + +2003-08-31 Steven Bosscher + Roger Sayle + + PR middle-end/11823 + * stmt.c (expand_end_case_type): Only use jump tables for dense + switch statements when optimizing for size. + +2003-08-31 Olivier Hainque + + * builtins.c (expand_builtin_setjmp): Use emit_jump to jump around + the != 0 case, which ensures pending stack adjustments are flushed. + +2003-08-30 Zack Weinberg + + * configure.frag: Delete file. + * configure.in: Rename the substitution variables + dep_host_xmake_file and dep_tmake_file to xmake_file and + tmake_file respectively. Do not expand $srcdir in the + value of these; leave that for Make. Introduce a new + substitution varaible, all_lang_makefrags, which lists + subdirectory Make-lang.in files; exclude these from + all_lang_makefiles, which is now only for subdirectory + outputs. Do not invoke configure.frag. Do not set nor + AC_SUBST_FILE target_overrides, host_overrides, or + language_fragments. Create build subdirectories in + config.status extra commands. + * configure: Regenerate. + * Makefile.in: Update substitutions to match changes to + configure. Use include directives instead of @-insertions + to read in host, target, and language fragments. + (Makefile rule): Do not invoke configure.frag. Do not copy + config.status to config.run before executing it. Set + CONFIG_HEADERS and CONFIG_FILES so that only Makefile gets + regenerated. + (cstamp-h rule): Set CONFIG_FILES as well as CONFIG_HEADERS. + +2003-08-30 Zack Weinberg + + * c-tree.h: Delete COMPARE_DIFFERENT_TU from enumeration. + * c-typeck.c (same_translation_unit_p): New function. + (comptypes): Use it instead of flags parameter to identify + structure types from different translation units. + * c-decl.c (duplicate_decls): Always call comptypes with + COMPTYPE_STRICT flags argument. + (c_reset_state): Set BLOCK_SUPERCONTEXT of the block formed + to file_scope_decl. + +2003-08-30 Zack Weinberg + + * c-tree.h (C_TYPE_INCOMPLETE_VARS): New macro. + * c-decl.c (struct c_scope): Remove "incomplete" field. + (pushdecl): Attach variables with incomplete types to + the TYPE_MAIN_VARIANT of the incomplete type in question. + (finish_struct): Look at C_TYPE_INCOMPLETE_VARS for variables + to complete, not at current_scope->incomplete. All such + variables do need completion. + +2003-08-30 Richard Earnshaw + Nicolas Pitre + + * arm/lib1funcs.asm (RETCOND): Delete. + (RETLDM): New assembler macro. Use it for returning with ldm/ldr. + (ARM_LDIV0, THUMB_LDIV0): Collapse multiple definitions. + (__ARM_ARCH__): Move here from ieee754-?f.S. + (RET, RETc): Clean up definitions. + (DIV_FUNC_END): Renamed from FUNC_END. All uses changed. + (FUNC_END): New macro that marks the end of any function. + (ARM_FUNC_START): New macro that allows an assembler routine to be + implemented in ARM code even if a Thumb-only build. + Unconditionally include ieee754-?f.S. + * arm/ieee754-df.S: Delete macros moved to lib1funcs.asm. + Mark ends of functions. + Split into separate conditionally-compiled units. + Use RETLDM to return from routines. + * arm/ieee754-sf.S: Similarly. + * t-arm-elf (LIB1ASMFUNCS): Remove _ieee754_dp and _ieee754_sp. + Add _negdf2 _addsubdf3 _muldivdf3 _cmpdf2 _unorddf2 _fixdfsi + _truncdfsf2 _negsf2 _addsubsf3 _muldivsf3 _cmpsf2 _unordsf2 + _fixsfsi and _fixunssfsi. + + * arm/ieee754-df.S (__muldf3): Fix bug when result of a + multiplication underflows to zero. + (__adddf3): Fix bug when using VFP ordering on little-endian + processors. + (__fixdfsi): Use rrx to extract the carry into a register instead of + MRS instruction. Optimize later use of result. + * arm/ieee754-sf.S (__fixsfsi): Likewise. + (__fixunssfsi): Use a better sequence for handling negative-or-zero. + +2003-08-29 Richard Henderson + + * tree-optimize.c: New file. + * Makefile.in (OBJS-archive): Add tree-optimize.o. + (tree-optimize.o): New. + * c-decl.c (store_parm_decls): Use allocate_struct_function. + (finish_function): Don't free_after_parsing or free_after_compilation. + (set_save_expr_context): Move to tree-optimize.c. + (c_expand_body_1): Use tree_rest_of_compilation. + * c-lang.c (LANG_HOOKS_RTL_EXPAND_STMT): New. + * objc/objc-lang.c (LANG_HOOKS_RTL_EXPAND_STMT): New. + * c-objc-common.c (expand_deferred_fns): Don't emit unused inlines; + iterate until closure. + * langhooks-def.h (LANG_HOOKS_RTL_EXPAND_START, + LANG_HOOKS_RTL_EXPAND_STMT, LANG_HOOKS_RTL_EXPAND_END): New. + (LANG_HOOKS_RTL_EXPAND_INITIALIZER): New. + * langhooks.h (struct lang_hooks_for_rtl_expansion): New. + * toplev.h (tree_rest_of_compilation): Declare it. + +2003-08-29 Richard Henderson + + * function.h (struct function): Add rtl_inline_init, saved_for_inline. + * integrate.c (save_for_inline): Set saved_for_inline. + * c-semantics.c (genrtl_scope_stmt): Check it. + * toplev.c (wrapup_global_declarations): Check it. + (rest_of_handle_inlining): Set and check rtl_inline_init. + (rest_of_compilation): Remove out of date comment. + +2003-08-29 Richard Henderson + + * function.c (allocate_struct_function): New, split out of ... + (prepare_function_start, init_function_start): ... here. + * expr.c (init_expr): Use ggc_alloc_cleared. + * stmt.c (init_stmt_for_function): Likewise. + * tree.h (allocate_struct_function): Declare. + +2003-08-29 Nathanael Nerode + + * config.gcc: Don't use negated character class in shell case + clause. + +2003-08-29 Richard Henderson + + * function.h (struct function): Move function_frequency and + max_jumptable_ents before start of bit field members. + +2003-08-29 Richard Henderson + + * builtins.c (expand_builtin_constant_p): Check cse_not_expected here, + (fold_builtin_constant_p) ... not here. + +2003-08-29 Richard Henderson + + * c-tree.h (C_DECL_FILE_SCOPE): Move ... + * tree.h (DECL_FILE_SCOPE_P): ... here, and rename. + * c-decl.c, c-objc-common.c, c-typeck.c: Update to match. + +2003-08-29 Kaveh R. Ghazi + + * builtins.def: Fix typos. + (ATTR_MATHFN_FPROUNDING_STORE): New macro. + (BUILT_IN_FREXP, BUILT_IN_FREXPF, BUILT_IN_FREXPL, BUILT_IN_MODF, + BUILT_IN_MODFF, BUILT_IN_MODFL, BUILT_IN_REMQUO, BUILT_IN_REMQUOF, + BUILT_IN_REMQUOL, BUILT_IN_SINCOS, BUILT_IN_SINCOSF, + BUILT_IN_SINCOSL): Use ATTR_MATHFN_FPROUNDING_STORE. + + * builtins.def (BUILT_IN_ERFC, BUILT_IN_ERFCF, BUILT_IN_ERFCL): + Use ATTR_MATHFN_FPROUNDING_ERRNO. + +2003-08-29 Nathanael Nerode + + * config.gcc (i386-*-vsta): Fix obvious bogosity. + + * fixinc/inclhack.def: Remove special cases for unsupported + PTX 1 and PTX 2 (including i[34567]86-sequent-sysv3). + * fixinc/fixincl.x: Regenerate. + +2003-08-29 Mark Mitchell + + * Makefile.in (cpp.info): Just state dependencies. + (gcc.info): Likewise. + (gccint.info): Likewise. + (gccinstall.info): Likewise. + (cppinternals.info): Likewise. + (cpp.dvi): Likewise. + (gcc.dvi): Likewise. + (gccint.dvi): Likewise. + (gccinstall.dvi): Likewise. + (cppinternals.dvi): Likewise. + (gcov.1): Likewise. + (cpp.1): Likewise. + (gcc.1): Likewise. + (gfdl.7): Likewise. + (gpl.7): Likewise. + (fsf-funding.7): Likewise. + ($(objdir)/%.info): New pattern rule. + (%.dvi): Likewise. + +2003-08-29 Kelley Cook + + * Makefile.in (restage1): Pass BOOT_CFLAGS to recursive make. + (restage2): Likewise. + (restage3): Likewise. + (restage4): Likewise. + (restageprofile): Likewise. + (restagefeedback): Likewise. + (bubblestrap): Likewise. + +2003-08-29 Nathanael Nerode + + * config.gcc: Narrow unsupported target match to avoid clobbering + i?86-sequent-sysv4*. + +2003-08-29 Kaveh R. Ghazi + + * builtins.c (mathfn_built_in): Handle new math builtins. + +2003-08-28 Per Bothner + + Fix (hopefully temporary) for breakage caused by my 08-21 patch. + * cpplex.c (_cpp_get_fresh_line): Check for null buffer. + (_cpp_lex_buffer): Likewise. + * cpptrad.c (_cpp_read_logical_line_trad): Likewise. + +2003-08-28 Ulrich Weigand + + * config/s390/s390.md ("*mulsi3_sign"): New insn. + ("mulsidi3" expander, "mulsi_6432" insn): Remove, replace by ... + ("mulsidi3"): ... this new insn. + ("umulsidi3"): New insn. + ("divmoddi3", "divmodtidi3", "divmodtisi3"): Simplify by using + mixed-mode matching constraints. + ("udivmodsi4", "udivmoddisi3"): New insns. + ("udivsi3", "umodsi3"): Use only in ESA/390 mode. + +2003-08-28 Kaveh R. Ghazi + + * builtin-types.def (BT_INT_PTR, BT_FLOAT_PTR, BT_DOUBLE_PTR, + BT_LONGDOUBLE_PTR, BT_FN_FLOAT_FLOAT_FLOATPTR, + BT_FN_DOUBLE_DOUBLE_DOUBLEPTR, + BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLEPTR, + BT_FN_FLOAT_FLOAT_INTPTR, BT_FN_DOUBLE_DOUBLE_INTPTR, + BT_FN_LONGDOUBLE_LONGDOUBLE_INTPTR, + BT_FN_FLOAT_FLOAT_FLOAT_INTPTR, BT_FN_DOUBLE_DOUBLE_DOUBLE_INTPTR, + BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE_INTPTR, + BT_FN_VOID_FLOAT_FLOATPTR_FLOATPTR, + BT_FN_VOID_DOUBLE_DOUBLEPTR_DOUBLEPTR, + BT_FN_VOID_LONGDOUBLE_LONGDOUBLEPTR_LONGDOUBLEPTR): New. + * builtins.def (BUILT_IN_FREXP, BUILT_IN_FREXPF, BUILT_IN_FREXPL, + BUILT_IN_MODF, BUILT_IN_MODFF, BUILT_IN_MODFL, BUILT_IN_REMQUO, + BUILT_IN_REMQUOF, BUILT_IN_REMQUOL, BUILT_IN_SINCOS, + BUILT_IN_SINCOSF, BUILT_IN_SINCOSL): New. + * tree.c: Assign new type_nodes. + * tree.h (tree_index): Add TI_FLOAT_PTR_TYPE, TI_DOUBLE_PTR_TYPE, + TI_LONG_DOUBLE_PTR_TYPE, TI_INTEGER_PTR_TYPE. + (float_ptr_type_node, double_ptr_type_node, + long_double_ptr_type_node, integer_ptr_type_node): New type_nodes. + + * doc/extend.texi: Document new builtins. + +2003-08-28 Kaveh R. Ghazi + + * builtin-types.def (BT_FN_FLOAT_INT_FLOAT, + BT_FN_DOUBLE_INT_DOUBLE, BT_FN_LONGDOUBLE_INT_LONGDOUBLE): New. + + * builtins.def (BUILT_IN_ERF, BUILT_IN_ERFC, BUILT_IN_ERFCF, + BUILT_IN_ERFCL, BUILT_IN_ERFF, BUILT_IN_ERFL, BUILT_IN_GAMMA, + BUILT_IN_GAMMAF, BUILT_IN_GAMMAL, BUILT_IN_J0, BUILT_IN_J0F, + BUILT_IN_J0L, BUILT_IN_J1, BUILT_IN_J1F, BUILT_IN_J1L, + BUILT_IN_JN, BUILT_IN_JNF, BUILT_IN_JNL, BUILT_IN_LGAMMA, + BUILT_IN_LGAMMAF, BUILT_IN_LGAMMAL, BUILT_IN_SIGNIFICAND, + BUILT_IN_SIGNIFICANDF, BUILT_IN_SIGNIFICANDL, BUILT_IN_TGAMMA, + BUILT_IN_TGAMMAF, BUILT_IN_TGAMMAL, BUILT_IN_Y0, BUILT_IN_Y0F, + BUILT_IN_Y0L, BUILT_IN_Y1, BUILT_IN_Y1F, BUILT_IN_Y1L, + BUILT_IN_YN, BUILT_IN_YNF, BUILT_IN_YNL): New. + + * doc/extend.texi: Document new builtins. + +2003-08-28 Nathanael Nerode + + * fixinc/mkfixinc.sh: Remove special case code for unsupported + variants of i?86, powerpcle, and thumb. + * fixinc/mkfixinc.sh: Remove special case code for unsupported + arm and hppa variants. + +2003-08-28 Kaveh R. Ghazi + + * builtin-types.def (BT_FN_INT_FLOAT, BT_FN_INT_DOUBLE, + BT_FN_INT_LONGDOUBLE, BT_FN_LONG_FLOAT, BT_FN_LONG_DOUBLE, + BT_FN_LONG_LONGDOUBLE, BT_FN_LONGLONG_FLOAT, + BT_FN_LONGLONG_DOUBLE, BT_FN_LONGLONG_LONGDOUBLE, + BT_FN_FLOAT_FLOAT_LONGDOUBLE, BT_FN_DOUBLE_DOUBLE_LONGDOUBLE, + BT_FN_FLOAT_FLOAT_INT, BT_FN_DOUBLE_DOUBLE_INT, + BT_FN_LONGDOUBLE_LONGDOUBLE_INT, BT_FN_FLOAT_FLOAT_LONG, + BT_FN_DOUBLE_DOUBLE_LONG, BT_FN_LONGDOUBLE_LONGDOUBLE_LONG, + BT_FN_FLOAT_FLOAT_FLOAT_FLOAT, BT_FN_DOUBLE_DOUBLE_DOUBLE_DOUBLE, + BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE): New. + + * builtins.def (BUILT_IN_ACOS, BUILT_IN_ACOSF, BUILT_IN_ACOSH, + BUILT_IN_ACOSHF, BUILT_IN_ACOSHL, BUILT_IN_ACOSL, BUILT_IN_ASIN, + BUILT_IN_ASINF, BUILT_IN_ASINH, BUILT_IN_ASINHF, BUILT_IN_ASINHL, + BUILT_IN_ASINL, BUILT_IN_ATANH, BUILT_IN_ATANHF, BUILT_IN_ATANHL, + BUILT_IN_CBRT, BUILT_IN_CBRTF, BUILT_IN_CBRTL, BUILT_IN_COPYSIGN, + BUILT_IN_COPYSIGNF, BUILT_IN_COPYSIGNL, BUILT_IN_COSH, + BUILT_IN_COSHF, BUILT_IN_COSHL, BUILT_IN_DREM, BUILT_IN_DREMF, + BUILT_IN_DREML, BUILT_IN_EXP10, BUILT_IN_EXP10F, BUILT_IN_EXP10L, + BUILT_IN_EXP2, BUILT_IN_EXP2F, BUILT_IN_EXP2L, BUILT_IN_EXPM1, + BUILT_IN_EXPM1F, BUILT_IN_EXPM1L, BUILT_IN_FDIM, BUILT_IN_FDIMF, + BUILT_IN_FDIML, BUILT_IN_FMA, BUILT_IN_FMAF, BUILT_IN_FMAL, + BUILT_IN_FMAX, BUILT_IN_FMAXF, BUILT_IN_FMAXL, BUILT_IN_FMIN, + BUILT_IN_FMINF, BUILT_IN_FMINL, BUILT_IN_HYPOT, BUILT_IN_HYPOTF, + BUILT_IN_HYPOTL, BUILT_IN_ILOGB, BUILT_IN_ILOGBF, BUILT_IN_ILOGBL, + BUILT_IN_LDEXP, BUILT_IN_LDEXPF, BUILT_IN_LDEXPL, BUILT_IN_LLRINT, + BUILT_IN_LLRINTF, BUILT_IN_LLRINTL, BUILT_IN_LLROUND, + BUILT_IN_LLROUNDF, BUILT_IN_LLROUNDL, BUILT_IN_LOG10, + BUILT_IN_LOG10F, BUILT_IN_LOG10L, BUILT_IN_LOG1P, BUILT_IN_LOG1PF, + BUILT_IN_LOG1PL, BUILT_IN_LOG2, BUILT_IN_LOG2F, BUILT_IN_LOG2L, + BUILT_IN_LOGB, BUILT_IN_LOGBF, BUILT_IN_LOGBL, BUILT_IN_LRINT, + BUILT_IN_LRINTF, BUILT_IN_LRINTL, BUILT_IN_LROUND, + BUILT_IN_LROUNDF, BUILT_IN_LROUNDL, BUILT_IN_NEXTAFTER, + BUILT_IN_NEXTAFTERF, BUILT_IN_NEXTAFTERL, BUILT_IN_NEXTTOWARD, + BUILT_IN_NEXTTOWARDF, BUILT_IN_NEXTTOWARDL, BUILT_IN_POW10, + BUILT_IN_POW10F, BUILT_IN_POW10L, BUILT_IN_REMAINDER, + BUILT_IN_REMAINDERF, BUILT_IN_REMAINDERL, BUILT_IN_RINT, + BUILT_IN_RINTF, BUILT_IN_RINTL, BUILT_IN_SCALB, BUILT_IN_SCALBF, + BUILT_IN_SCALBL, BUILT_IN_SCALBLN, BUILT_IN_SCALBLNF, + BUILT_IN_SCALBLNL, BUILT_IN_SCALBN, BUILT_IN_SCALBNF, + BUILT_IN_SCALBNL, BUILT_IN_SINH, BUILT_IN_SINHF, BUILT_IN_SINHL, + BUILT_IN_TANH, BUILT_IN_TANHF, BUILT_IN_TANHL): New. + + * doc/extend.texi: Document new builtins. + +2003-08-28 Ulrich Weigand + + * config/s390/s390.c (legitmate_constant_p): Use LARL on + zSeries machines even in 31-bit addressing mode. + (legitimate_reload_constant_p): Likewise. + (legitimize_pic_address): Likewise. + (legitimize_tls_address): Likewise. + (s390_split_branches): Likewise. + (s390_dump_pool): Likewise. + (s390_mainpool_finish): Likewise. + (s390_chunkify_start): Likewise. + (s390_select_rtx_section): Likewise. + * config/s390/s390.md ("doloop_si"): Likewise. + ("pool_start_31", "pool_end_31"): Likewise. + ("pool_start_64", "pool_end_64"): Likewise. + ("main_base_31_small", "main_base_31_large"): Likewise. + ("main_base_64"): Likewise. + ("reload_base_31", "reload_base_64"): Likewise. + ("*movsi_larl"): New insn. + ("cjump", "icjump"): Use long branches on zSeries machines. + ("jump"): Likewise. + ("call"): Use BRASL on zSeries machines. + ("call_value", "call_value_tls"): Likewise. + ("brasl", "bras", "basr_64", "basr_31", "bas_64", "bas_31"): Remove + and replace by ... + ("*bras", "*brasl", "*basr") ... these new insns. + ("brasl_r", "bras_r", "basr_64_r", "basr_31_r", "bas_64_r", + "bas_31_r"): Remove and replace by ... + ("*bras_r", "*brasl_r", "*basr_r") ... these new insns. + ("brasl_tls", "bras_tls", "basr_64_tls", "basr_31_tls", + "bas_64_tls", "bas_31_tls"): Remove and replace by ... + ("*bras_tls", "*brasl_tls", "*basr_tls") ... these new insns. + ("*return_si", "*return_di"): Remove and replace by ... + ("*return"): ... this new insn. + ("rotlsi3"): Allow on zSeries machines. + + * config/s390/s390.c (legitimize_reload_constant_p): Use + LL/LH type instructions in z/Architecture mode. + * config/s390/s390.md ("*movsi_lli"): Likewise. + ("*andsi3_ni", "*andhi3_ni", "*andqi3_ni"): Likewise. + ("*iorsi3_ni", "*iorhi3_ni", "*iorqi3_ni"): Likewise. + ("*extendqisi2"): Use LB in z/Architecture mode. + ("*zero_extendqisi2_64", "*zero_extendqisi2_31"): Use LLGC in + z/Architecture mode. + ("zero_extendqihi2", "*zero_extendqihi2_64", "*zero_extendqihi2_31"): + Likewise. + + * config/s390/s390.md ("*tmdi_ext"): Allow in both 64-bit + and 31-bit mode. + ("ptr_extend"): Allow only in 64-bit mode. + +2003-08-27 Daniel Jacobowitz + + * gcc.c (STANDARD_EXEC_PREFIX, STANDARD_STARTFILE_PREFIX) + (TOOLDIR_BASE_PREFIX, STANDARD_BINDIR_PREFIX): Remove unnecessary + definitions. + (main): Only use standard_startfile_prefix if native. + * doc/tm.texi (STANDARD_STARTFILE_PREFIX): Update. + +2003-08-27 Per Bothner + + * cpperror.c (print_location): Don't check for !pfile->buffer. That + test fails following my 08-21 change, and it seems unnecessary anyway. + (cpp_error): Likewise. + +2003-08-27 Jason Merrill + + * real.c (do_multiply): Initialize with memset. + +2003-08-27 Zdenek Dvorak + + * gcov.c (typedef struct arc_info): New field cs_count. + (accumulate_line_counts): Find cycles correctly. + +2003-08-27 Ulrich Weigand + + * config/s390/s390.c (struct machine_function): Remove member + literal_pool_label. + (s390_optimize_prolog): Replace TEMP_REG argument with + TEMP_USED and BASE_USED. Do not check get_pool_size (). + (general_s_operand): Accept all immediates before reload if + ALLOW_IMMEDIATE. If not ALLOW_IMMEDIATE, reject literal pool + references. + (s390_output_symbolic_const): Remove UNSPEC_LTREL_OFFSET handling. + (find_constant_pool_ref): Ignore UNSPECV_POOL_ENTRY insns. + (s390_alloc_pool): New function. + (s390_new_pool): Call it. + (s390_dump_pool): Add REMOTE_LABEL argument. + (s390_chunkify_start): Add BASE_REG argument. Do not check + get_pool_size (). + (s390_chunkify_finish): Add BASE_REG argument. Adapt + s390_dump_pool call. + (s390_pool_count, s390_nr_constants): Remove. + (s390_output_constant_pool): Remove. + (s390_mainpool_start): New function. + (s390_mainpool_finish): New function. + (s390_mainpool_cancel): New function. + (s390_reorg): Implement main literal pool handling. + (s390_emit_prologue): Emit main_pool placeholder instead of + literal_pool_31 / literal_pool_64 insns. + * config/s390/s390.h (s390_pool_count, s390_nr_constants): Remove. + (ASM_OUTPUT_POOL_PROLOGUE, ASM_OUTPUT_SPECIAL_POOL_ENTRY): Remove. + * config/s390/s390.md (UNSPEC_MAIN_BASE): New symbolic constant. + ("main_base_31_small", "main_base_31_large"): New insns. + ("main_base_64", "main_pool"): New insns. + ("literal_pool_31", "literal_pool_64"): Remove. + +2003-08-27 Nathanael Nerode + + * fixinc/inclhack.def (ptx_netswap): New disabled fix, ported from + fixinc.ptx. + * fixinc/inclhack.def (undefine_null): Don't generate \r characters. + Prettify a little. + * fixinc/fixincl.x: Regenerate. + +2003-08-27 Richard Earnshaw + + * lib1funcs.asm (L_ieee754_sp): New. Include ieee754-sf.S. + (L_ieee754_dp): New. Include ieee754-df.S. + * arm/ieee754-sf.S: Rework to allow interworking, calling from Thumb, + and compilation in apcs-26 mode. + * arm/ieee754-df.S: Likewise. + * t-arm-elf (DPBIT, FPBIT, fp-bit.c dp-bit.c): Delete rules + (LIB1ASMFUNCS): Add _ieee754_sp and _ieee754_dp targets. + +2003-08-27 Nicolas Pitre + + * arm/ieee754-sf.S: New. + * arm/ieee754-df.S: New. + +2003-08-27 Jakub Jelinek + + * builtins.c (expand_builtin_expect_jump): Save pending_stack_adjust + and restore it if returning NULL. + +2003-08-27 Richard Sandiford + + * calls.c (initialize_argument_information): If an argument has no + stack space associated with it, and BLOCK_REG_PADDING is defined, + use it to decide at which end the argument should be padded. + * function.c (assign_parms): Allocate BLKmode stack slots. + * config/mips/mips-protos.h (mips_pad_arg_upward): Declare. + (mips_pad_reg_upward): Declare. + * config/mips/mips.h (PAD_VARARGS_DOWN): Use FUNCTION_ARG_PADDING. + (CUMULATIVE_ARGS): Remove num_adjusts and adjusts. + (FUNCTION_ARG_PADDING): Use mips_pad_arg_upward. + (BLOCK_REG_PADDING): Use mips_pad_reg_upward. + * config/mips/mips.c (struct mips_arg_info): Remove struct_p. + (mips_expand_call): Remove code for generating structure shifts. + (mips_arg_info): Don't set struct_p. Don't set fpr_p for non-float + types unless using the EABI. + (function_arg_advance): Don't generate shift instructions. + (function_arg): Don't return them. Don't short-circuit the + check for double structure chunks for DFmode arguments. + (mips_pad_arg_upward, mips_pad_reg_upward): New functions. + (mips_expand_prologue): Remove code to emit structure shifts. + * config/mips/irix6-libc-compat.c: Remove workarounds for buggy + structure passing (inet_ntoa, inet_lnaof, inet_netof). Update + comments to say that only structure returns are a problem. + +2003-08-26 Nathanael Nerode + + * fixinc/tests/base/string.h, fixinc/tests/base/sys/regset.h: + Fix to match produced versions. + * fixinc/inclhack.def (longlong_t): New disabled test, ported + from fixinc.svr4. + * fixinc/inclhack.def (ptx_pwd_h): New disabled fix, ported + from fixinc.ptx. + * fixinc/inclhack.def (ptx_sys_mc_param_h): New disabled fix, + ported from fixinc.ptx. + +2003-08-26 Per Bothner + + * cpplib.h (struct cpp_token): Change type of field line to fileline. + (cpp_error_with_line): Use fileline for appropriate parameter. + * cpphash.h (struct cpp_macro): Change type of field line to fileline. + (struct cpp_reader): Likewise for fields line and directive_line. + (_cpp_begin_message): Use fileline for appropriate parameter. + * cpperror.c (print_location, _cpp_begin_message, cpp_error_with_line, + cpp_error): Use fileline for appropriate parameters and variables. + (print_location): New local lin, since it is not a fileline. + +2003-08-26 Roger Sayle + + PR middle-end/12002 + * tree.h (SCALAR_FLOAT_TYPE_P, COMPLEX_FLOAT_TYPE_P): New macros. + (FLOAT_TYPE_P): Define in terms of these two new macros. + * fold-const.c (fold ): Don't convert x+x into x*2.0 + for complex floating point types. + +2003-08-26 Ulrich Weigand + + * config/s390/s390.c (emit_prologue): Don't check literal pool size. + * config/s390/s390.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY): Call + s390_output_pool_entry. + +2003-08-26 Nathanael Nerode + + * fixinc/inclhack.def (svr4_preproc_lint_on, + svr4_preproc_lint_off, svr4_preproc_machine): New disabled + fixes, ported from fixinc.svr4. + +2003-08-26 Mark Mitchell + + * doc/install.texi (Prerequisites): Mention GNU make requirement. + + * Makefile.in (AR_FOR_TARGET): Export it. + (AR_CREATE_FOR_TARGET): Likewise. + (AR_FLAGS_FOR_TARGET): Likewise. + (AR_EXTRACT_FOR_TARGET): Likewise. + (AWK): Likewise. + (BUILD_PREFIX): Likewise. + (BUILD_PREFIX_1): Likewise. + (DESTDIR): Likewise. + (GCC_FOR_TARGET): Likewise. + (INCLUDES): Likewise. + (INSTALL_DATA): Likewise. + (LIB1ASMSRC): Likewise. + (LIBGCC2_CFLAGS): Likewise. + (MACHMODE_H): Likewise. + (NM_FOR_TARGET): Likewise. + (RANLIB_FOR_TARGET): Likewise. + (libsubdir): Likewise. + (slibdir): Likewise. + (ORDINARY_FLAGS_TO_PASS): Remove stuff that we're + exporting. + (libgcc.a): Don't pass them here. + (stmp-multilib): Or here. + (install-libgcc): Or here. + (install-multilib): Or here. + (POSTSTAGE1_FLAGS_TO_PASS): Or here. + (stage1_build): Or here. + +2003-08-26 Andreas Krebbel + + * config/s390/s390.md ("*llgt_sisi", "*llgt_sisi_split", "*llgt_didi", + "*llgt_didi_split", "*llgt_sidi", "*llgt_sidi_split"): New insns. + +2003-08-26 Andreas Krebbel + + * config/s390/s390.md ("*fmadddf", "*fmsubdf", + "*fmaddsf", "*fmsubsf"): New insns. + +2003-08-26 Roger Sayle + + * fold-const.c (fold ): Optimize (C1/X)*C2 into + (C1*C2)/X when unsafe math optimizations are allowed. + (fold ): Optimize C1/(X*C2) into (C1/C2)/X with unsafe + math optimizations. Minor code clean-ups. Recursively call + fold when constructing sub-expressions. + +2003-08-26 Roger Sayle + + * builtins.c (fold_builtin_bitop): New function to perform constant + folding of ffs, clz, ctz, popcount and parity builtin functions + and their long and long long variants (such as ffsl and ffsll). + (fold_builtin): fold_builtin_bitop when appropriate. + * simplify-rtx.c (simplify_unary_operation): Honor both + CLZ_DEFINED_VALUE_AT_ZERO and CTZ_DEFINED_VALUE_AT_ZERO when + evaluating clz and ctz at compile-time, for operands wider + than HOST_WIDE_INT. + +2003-08-26 Nathan Sidwell + + * builtins.c (build_function_call_expr): Don't set + TREE_SIDE_EFFECTS here. + * expr.c (emit_block_move_via_libcall): Likewise. + (clear_storage_via_libcall): Likewise. + * tree.c (build): Set TREE_SIDE_EFFECTS for non-const, non-pure + CALL_EXPRs. + + * gcse.c (is_too_expensive): New function. + (gcse_main, delete_null_pointer_checks, bypass_jumps): Use it. + +2003-08-25 Zack Weinberg + + * config.gcc (hppa*-*-hpux11*, ia64*-*-hpux*): Remove + commented-out logic to use DCE threads (if present), add + support for POSIX threads. + * config/ia64/hpux.h: Define CPP_SPEC to set appropriate + #defines for -pthread. Add -lpthread to LIB_SPEC when + -pthread. In both cases take -mt as a synonym for -pthread + for acc compatibility. + Define GTHREAD_USE_WEAK to 0. + * config/pa/pa-hpux11.h: Likewise for CPP_SPEC and LIB_SPEC. + Remove old logic for DCE threads from LIB_SPEC. + * config/pa/pa64-hpux.h: Define GTHREAD_USE_WEAK to 0. + +2003-08-25 Roger Sayle + + * builtins.c (expand_builtin_mathfn): Rearrange so that we only + return 0 for invalid argument types. Instead drop through to a + call of expand_call at the bottom of function. If op is SQRT, + try attaching a SQRT rtx as the REQ_EQUAL note of the libcall. + +2003-08-25 Richard Henderson + + * config/ia64/ia64.c (ia64_expand_tls_address): Properly truncate + result when op0 is SImode. + +2003-08-25 Nathanael Nerode + + * fixinc/inclhack.def (svr4_sighandler_type): New fix, ported + from fixinc.svr4. + * fixinc/fixincl.x: Regenerate. + * fixinc/tests/base/sys/signal.h: Regenerate. + +2003-08-25 Ulrich Weigand + + * combine.c (simplify_comparison): Re-enable widening of comparisons + with non-paradoxical subregs of non-REG expressions. + +2003-08-25 Ulrich Weigand + + * combine.c (distribute_notes): Handle REG_ALWAYS_RETURN. + +2003-08-25 Ulrich Weigand + + * combine.c (combine_simplify_rtx): Fix RTL sharing bug. + +2003-08-25 Gabriel Dos Reis + + * pretty-print.h (pp_maybe_newline_and_indent): New macro. + * c-pretty-print.h (c_pretty_printer): Now typedef to the + structure. Be consistent with pretty-print.h abd cxx-pretty-print.h + (struct c_pretty_print_info): Document. Add new fields. + (pp_type_specifier_seq): Rename from pp_c_type_specifier. + (pp_direct_abstract_declarator): New macro. + (pp_ptr_operator): Likewise. + (pp_simple_type_specifier): Likewise. + (pp_expression): Likewise. + (pp_parameter_list): Rename from pp_parameter_declaration. + * c-pretty-print.c (pp_c_whitespace): Now a function. + (pp_c_left_paren): Likewise. + (pp_c_right_paren): Likewise. + (pp_c_dot): Likewise. + (pp_c_ampersand): Likewise. + (pp_c_arrow): Likewise. + (pp_c_semicolon): Likewise. + (pp_c_type_cast): New function. + (pp_c_space_for_pointer_operator): Likewise. + (pp_c_call_argument_list): Likewise. + (pp_c_cv_qualifier): Adjust prototype. + (pp_c_type_qualifier_list): Likewise. + (pp_c_pointer): Likewise. Handle REFERENCE_TYPE here. + (pp_c_type_specifier): Rename from pp_c_simple_type_specifier. + Adjust to follow standard grammar. + (pp_c_specifier_qualifier_list): Adjusr prototype. Handle + REFERENCE_TYPE. Tidy. + (pp_c_parameter_type_list): Adjust prototype. Tidy. + (pp_c_parameter_declaration): Remove. + (pp_c_abstract_declarator): Adjust prototype. + (pp_c_direct_abstract_declarator): Likewise. + (pp_c_type_id): Likewise. + (pp_c_storage_class_specifier): Likewise. + (pp_c_function_specifier): Likewise. + (pp_c_declaration_specifiers): Likewise. + (pp_c_direct_declarator): Likewise. + (pp_c_declarator): Likewise. + (pp_c_declarator): Likewise. + (pp_c_declaration): Likewise. + (pp_c_attributes): Likewise. Tidy. + (pp_c_function_definition): Adjust prototype. + (pp_c_char): Likewise. + (pp_c_string_literal): Likewise. + (pp_c_integer_constant): Likewise. + (pp_c_character_constant): Likewise. + (pp_c_bool_constant): Likewise. + (pp_c_enumeration_constant): Likewise. + (pp_c_floating_constant): Likewise. + (pp_c_constant): Likewise. + (pp_c_identifier): Likewise. + (pp_c_primary_expression): Likewise. Remove TARGET_EXPR case. Tidy. + (pp_c_initializer): Adjust prototype. + (pp_c_init_declarator): Likewise. + (pp_c_initializer_list): Likewise. + (pp_c_id_expression): Likewise. + (pp_c_postfix_expression): Likewise. + (pp_c_expression_list): Likewise. + (pp_c_unary_expression): Likewise. + (pp_c_cast_expression): Likewise. + (pp_c_multiplicative_expression): Likewise. + (pp_c_additive_expression): Likewise. + (pp_c_shift_expression): Likewise. + (pp_c_relational_expression): Likewise. + (pp_c_equality_expression): Likewise. + (pp_c_and_expression): Likewise. + (pp_c_exclusive_or_expression): Likewise. + (pp_c_inclusive_or_expression): Likewise. + (pp_c_logical_and_expression): Likewise. + (pp_c_logical_or_expression): Likewise. + (pp_c_conditional_expression): Likewise. + (pp_c_assignment_expression): Likewise. + (pp_c_expression): Likewise. Tidy. + (pp_c_statement): Likewise. Document. + (pp_c_pretty_printer_init): Adjust prototype. Tidy. + + * c-lang.c (c_initialize_diagnostics): Update. + * c-common.h (strip_pointer_operator): Declare. + * c-common.c (strip_pointer_operator): Define. + +2003-08-25 Mark Mitchell + + PR c++/8795 + * tree.h (build_method_type_directly): Declare. + * c-common.c (handle_vector_size_attributes): Handle METHOD_TYPEs. + (vector_size_helper): Likewise. + * tree.c (build_method_type_directly): New function. + (build_method_type): Use it. + +2003-08-24 Richard Henderson + + * config/i386.i386.c (ix86_return_in_memory): Reformat. Return true + for 16-byte vector modes if sse not enabled; warn for abi change. + (ix86_value_regno): Only return xmm0 for 16-byte vector types. + +2003-08-24 Kazu Hirata + + * rtlanal.c (may_trap_p): Simplify an integer comparison. + +2003-08-24 Nathanael Nerode + + * fixinc/inclhack.def (AAB_svr4_replace_byteorder): Enhance + comment. Enable for DYNIX/ptx systems (when they switch to + regular fixincludes). + * fixinc/fixincl.x: Regenerate. + +2003-08-23 Jason Eckhardt + + * config/i860/t-i860: New. + * config.gcc (i860-*-sysv4*): Add t-i860 to tmake_file. + +2003-08-23 Jakub Jelinek + + * c-decl.c (pushdecl): Only put decls which finish_struct will do + something about onto incomplete chain. + (finish_struct): If not removing type from incomplete + list, update prev. + +2003-08-20 Jan Hubicka + + PR target/11369 + * i386.c (ix86_expand_carry_flag_compare): Validate operand. + + PR target/11031 + * i386.c (const_0_to_3_operand, const_0_to_7_operand, + const_0_to_15_operand, const_0_to_255_operand): New predicates. + * i386.h (PREDICATE_CODES): Add these. + * i386.c (pinsrw and pextrw patterns): Use them. + + PR target/10984 + * i386.c (ix86_expand_binop_builtin): Behave sanely for VOIDmodes. + + PR target/8869 + * expr.c (convert_modes): Deal properly with integer to vector + constant conversion. + + PR target/8871 + * i386.md (zero_extendsidi2*): Add MMX and SSE alternatives. + +2003-08-23 Ulrich Weigand + + * config/s390/s390.h (LOAD_EXTEND_OP): Remove. + * config/s390/s390.md ("movhi"): New expander; old insn renamed to ... + ("*movhi"): ... this. + ("movqi", "*movqi"): Likewise. + ("movqi_64"): Remove. + ("*zero_extendhisi2_31"): Change predicate to s_operand. + +2003-08-23 Dale Johannesen + * calls.c (emit_library_call_value_1): Fix obvious errors in + arguments to emit_group_store. + +2003-08-23 Jason Eckhardt + + * calls.c (emit_library_call_value_1): Remove code related + to LIBGCC_NEEDS_DOUBLE. + * config/stormy16/stormy16.h: Remove mention of LIBGCC_NEEDS_DOUBLE. + * doc/tm.texi: Likewise. + * system.h: Poison the LIBGCC_NEEDS_DOUBLE macro. + +2003-08-23 Richard Sandiford + + * config/mips/linux64.h (STARTFILE_PREFIX_SPEC): Remove. + +2003-08-23 Richard Sandiford + + * config/mips/mips.c (mips_setup_incoming_varargs): Handle o32 and o64 + as well. Put memory references in the varargs alias set. + (mips_expand_prologue): Remove varargs handling from here. + +2003-08-23 Ulrich Weigand + + * config/s390/s390.c (s390_expand_movstr, s390_expand_clrstr, + s390_expand_cmpmem, s390_output_constant_pool, s390_build_va_list, + s390_function_profiler, s390_output_mi_thunk): Use ISO C syntax + for function pointer calls. + * config/s390/s390.md ("*negdi2_31"): Likewise. + +2003-08-23 Roger Sayle + + * combine.c (apply_distributive_law): Correct comment. + +2003-08-23 Jason Eckhardt + + * config/i860/i860.h: Remove comment mentioning LIBGCC_NEEDS_DOUBLE. + +2003-08-22 Jason Eckhardt + + * config/i860/i860.c (i860_build_va_list): Create the va_decl + declaration. Document the va_list structure. + (i860_va_start): Initialize the va_list structure. + (i860_va_arg): Rewrite completely. + * config/i860/i860.h (LIBGCC_NEEDS_DOUBLE): Don't define. + * config/i860/varargs.asm: Do not allocate or initialize + a va_list. Return the address of the register save area. + +2003-08-22 Kazu Hirata + + * config/iq2000/iq2000.c: Fix comment typos. + * config/iq2000/iq2000.md: Likewise. + +2003-08-22 Kazu Hirata + + * config/iq2000/iq2000.c: Follow spelling conventions. + * config/iq2000/iq2000.h: Likewise. + * config/mn10300/mn10300.c: Likewise. + +2003-08-22 Jason Eckhardt + + * config/i860/i860.c (output_move_double): Don't set latehalf + to zero for CONST_INT (since it could be, e.g., -1). + + * config/i860/i860.h (REMSI3_LIBCALL): Replace this macro... + (MODSI3_LIBCALL): ...with this one. + (UREMSI3_LIBCALL): Replace this macro... + (UMODSI3_LIBCALL): ...with this one. + +2003-08-22 Jason Eckhardt + + * config/i860/i860-protos.h (output_delay_insn): Remove prototype. + (output_delayed_branch): Remove prototype. + (single_insn_src_p): Remove prototype. + * config/i860/i860.c (single_insn_src_p): Remove function. + (output_delayed_branch): Remove function. + (output_delay_insn): Remove function. + (va_start): Remove unconditional test and dead code, re-format. + Fix coding style and spelling problems in various comments. + * config/i860/i860.md (UNSPECV_BLOCKAGE): Define constant... + (blockage pattern): ...and use it here. + (all define_peephole patterns related to delayed branches): Remove. + Fix coding style and spelling problems in various comments. + +2003-08-22 Jason Eckhardt + + * config/i860/i860.c: Replace all occurrences of 'GNU CC' with 'GCC'. + Remove all uses of the PARAMS macro. Remove superflous prototypes. + Convert all function definitions from traditional to ISO C90 syntax. + * config/i860/i860-protos.h: Replace all occurrences of 'GNU CC' + with 'GCC'. Remove all uses of the PARAMS macro. + * config/i860/i860.h: Replace all occurrences of 'GNU CC' with 'GCC'. + * config/i860/i860.md: Likewise. + * config/i860/sysv4.h: Likewise. + * config/i860/varargs.asm: Likewise. + +2003-08-22 Jason Eckhardt + + * config/i860/i860-protos.h (i860_va_start): Remove 'stdarg_p' + argument. + (tdesc_section): Add prototype. + Update copyright dates. + * config/i860/i860.c: Include coretypes.h, tm.h, and toplev.h. + (TARGET_ASM_FUNCTION_PROLOGUE): Move definition to end of file. + (TARGET_ASM_FUNCTION_EPILOGUE): Likewise. + (targetm): Likewise. + (i860_output_function_prologue): Substitute HOST_WIDE_INT_PRINT_DEC + for '%d' where necessary. + (i860_va_start): Remove 'stdarg_p' argument. Make conditional checks + on 'stdarg_p' unconditional. Divide current_function_args_info.ints + by UNITS_PER_WORD when referencing (likewise for .floats). + (I860_SVR4_VARARGS): Rename... + (I860_SVR4_VA_LIST): ...to this. + Call build() with 't' rather than 'field'. + (i860_rtx_costs): New function. + (TARGET_RTX_COSTS): Define. + (i860_internal_label): New function. + (TARGET_ASM_INTERNAL_LABEL): Define. + (i860_file_start): New function. + Update copyright dates. + * config/i860/i860.h (CPP_PREDEFINES): Remove. + (TARGET_CPU_CPP_BUILTINS): Define. + (EXPAND_BUILTIN_VA_START): Remove 'stdarg' argument. + (CONST_COSTS): Remove (and move code to i860_rtx_costs). + (ASM_FILE_START): Remove. + (ASM_FILE_START_1): Remove. + (ASM_GLOBALIZE_LABEL): Remove. + (ASM_OUTPUT_INTERNAL_LABEL): Remove. + (ASM_OUTPUT_CASE_LABEL): Replace call of ASM_OUTPUT_INTERNAL_LABEL + with targetm.asm_out.internal_label. + Update copyright dates. + * config/i860/sysv4.h (USER_LABEL_PREFIX): Define. + (CPP_PREDEFINES): Remove. + (TARGET_OS_CPP_BUILTINS): Define. + (GLOBAL_ASM_OP): Define. + (ASM_FILE_START): Remove. + (TARGET_ASM_FILE_START_FILE_DIRECTIVE): Define. + (TARGET_ASM_FILE_START): Define. + Update copyright dates. + +2003-08-22 Jason Eckhardt + + * gcc/config.gcc (i860-*-sysv4*): Add target. + * config/i860/i860-protos.h: New. + * config/i860/i860.c: New. + * config/i860/i860.h: New. + * config/i860/i860.md: New. + * config/i860/sysv4.h: New. + * config/i860/varargs.asm: New. + * config/i860/x-sysv4: New. + +2003-08-22 Jason Eckhardt + + * config/pa/pa.c: Replace 'GNU CC' with 'GCC'. + Remove all uses of PARAMS macro. + Convert all function definitions to ISO C90 syntax. + * config/pa/elf.h: Replace 'GNU CC' with 'GCC'. + * config/pa/fptr.c: Likewise. + * config/pa/lib2funcs.asm: Likewise. + * config/pa/long_double.h: Likewise. + * config/pa/milli64.S: Likewise. + * config/pa/pa-64.h: Likewise. + * config/pa/pa-hpux.h: Likewise. + * config/pa/pa-hpux10.h: Likewise. + * config/pa/pa-hpux11.h: Likewise. + * config/pa/pa-linux.h: Likewise. + * config/pa/pa-modes.def: Likewise. + * config/pa/pa-osf.h: Likewise. + * config/pa/pa-pro-end.h: Likewise. + * config/pa/pa.md: Likewise. + * config/pa/pa32-linux.h: Likewise. + * config/pa/pa64-linux.h: Likewise. + * config/pa/pa64-hpux.h: Likewise. + * config/pa/pa64-regs.h: Likewise. + * config/pa/quadlib.c: Likewise. + * config/pa/rtems.h: Likewise. + * config/pa/pa-protos.h: Replace 'GNU CC' with 'GCC' and remove + all uses of the PARAMS macro. + * config/pa/pa.h: Likewise. + * config/pa/som.h: Likewise. + + * config/iq2000/iq2000.c: Replace 'GNU CC' with 'GCC'. + Remove all uses of PARAMS macro. + Convert all function definitions to ISO C90 syntax. + * config/iq2000-protos.h: Replace 'GNU CC' with 'GCC'. + Remove all uses of PARAMS macro. + * config/iq2000.h: Remove all uses of PARAMS macro. + * config/iq2000/iq2000.md: Replace 'GNU CC' with 'GCC'. + +2003-08-23 Ulrich Weigand + + * config/s390/s390-protos.h (s390_output_pool_entry): Declare. + * config/s390/s390.c (gen_consttable): Remove. + (s390_dump_pool): Use UNSPECV_POOL_ENTRY for pool entry insns. + (s390_output_pool_entry): New function. + * config/s390/s390.md (UNSPECV_POOL_QI, UNSPECV_POOL_HI, + UNSPECV_POOL_SI, UNSPECV_POOL_DI, UNSPECV_POOL_TI, + UNSPECV_POOL_SF, UNSPECV_POOL_DF): Remove, replace by ... + (UNSPECV_POOL_ENTRY): ... this new constant. + ("consttable_qi", "consttable_hi", "consttable_si", "consttable_di", + "consttable_ti", "consttable_sf", "consttable_df"): Remove ... + ("*pool_entry"): ... and replace by this new insn. + ("literal_pool_31"): Do not emit anchor label if pool empty. + + * config/s390/s390.c (struct machine_function): Add save_return_addr_p. + (s390_optimize_prolog): Save RETURN_REGNUM if save_return_addr_p. + (s390_fixup_clobbered_return_reg): Remove. + (s390_reorg): Don't call s390_fixup_clobbered_return_reg. + (s390_return_addr_rtx): Always retrieve return address from save area + slot. Use save_return_addr_p to force slot to be filled. + (s390_emit_prologue): Remove has_hard_reg_initial_val test. + +2003-08-22 Chris Demetriou + + * config/mips/mips.h (MASK_FIX_SB1, TARGET_FIX_SB1): New defines. + (TARGET_SWITCHES): Add -mfix-sb1 and -mno-fix-sb1. + * config/mips/mips.md (divdf3, divsf3, sqrtdf2, sqrtsf2): Work + around SB-1 errata if TARGET_FIX_SB1 is set. + (recip.d insn, recip.s insn, rsqrt.d insn, rsqrt.s insn): Likewise. + * doc/invoke.texi: Document MIPS -mfix-sb1 and -mno-fix-sb1. + +2003-08-22 Roger Sayle + + * hashtable.c (ht_expand): Avoid calculating rehash for the common + case that the first probe hits an empty hash table slot. + +2003-08-22 Mark Mitchell + + * config/ia64/hpux.h (SUPPORTS_INIT_PRIORITY): Define to 0. + +2003-08-22 Mark Mitchell + + * config/ia64/ia64.md (*ptr_extend_plus_1): Rename to ... + (ptr_extend_plus_imm): ... this. + * config/ia64/ia64.c (addp4_optimize_ok): Do not disable addp4 + optimization in C++. + (ia64_output_mi_thunk): Support ILP32 mode. + +2003-08-22 Bernardo Innocenti + + * gcc/config/m68k/m68k.c (m68k_coff_asm_named_section): remove unused + function. + * gcc/config/m68k/m68k.c (-m68k_svr3_asm_out_constructor): likewise. + +2003-08-22 Kazu Hirata + + * config/i386/i386.c (const_int_1_operand): Simplify an + integer comparison. + +2003-08-22 Alan Modra + + * config/fp-bit.c: Specify config/ dir for include of fp-bit.h. + * config/rs6000/ppc64-fp.c: Likewise. + +2003-08-22 Kazu Hirata + + * cfgcleanup.c: Fix comment typos. + * emit-rtl.c: Likewise. + * optabs.c: Likewise. + * ra-build.c: Likewise. + * rtlanal.c: Likewise. + * tree.h: Likewise. + +2003-08-22 Kazu Hirata + + * c-decl.c: Fix comment formatting. + * cfgrtl.c: Likewise. + * combine.c: Likewise. + * convert.c: Likewise. + * dominance.c: Likewise. + * dwarf2out.c: Likewise. + * dwarfout.c: Likewise. + * expmed.c: Likewise. + * fold-const.c: Likewise. + * gcov.c: Likewise. + * genattrtab.c: Likewise. + * ggc-common.c: Likewise. + * mips-tfile.c: Likewise. + * regmove.c: Likewise. + +2003-08-22 Kazu Hirata + + * builtin-attrs.def: Fix comment formatting. + * c-pretty-print.c: Likewise. + * diagnostic.h: Likewise. + * langhooks.h: Likewise. + * recog.c: Likewise. + * simplify-rtx.c: Likewise. + * tree.def: Likewise. + +2003-08-22 Bernardo Innocenti + + * config/m68k/m68k-protos.h: Convert to ISO C90. + * config/m68k/m68k.c: Likewise. + +2003-08-21 Bernardo Innocenti + Paul Dale + Peter Barada + + * config/m68k/m68k.c (m68k_rtx_costs): Adjust mul/div costs for + ColdFire cores. + +2003-08-21 Zack Weinberg + + * Makefile.in (INCLUDES): Remove -I$(srcdir)/config. + * config.gcc (*-*-openbsd): Don't set tm_file. + (alpha*-*-openbsd, arm*-*-coff*, arm*-wince-pe*, + arm-*-pe*, avr-*-*, h8300-*-rtems*, h8300-*-elf*, + h8300-*-*, hppa*-*-osf*, hppa*-*-bsd*, hppa*-*-hpux*, + i370-*-opened*, i370-*-mvs*, i370-*-linux*, i?86-*-openbsd*, + i?86-*-lynxos, i?86-*-nto-qnx*, iq2000*-*-elf*, m68000-hp-hpux*, + m68k-hp-hpux*, m68k-*-aout*, m68k-*-coff*, m68020-*-elf*, + m68k-*-elf*, m68k*-*-netbsd*, m68k*-*-openbsd*, m68k-*-sysv4*, + m68k-*-linux*, m68k-*-rtems*, mcore-*-pe*, mips*-*-netbsd*, + mips*-*-openbsd*, rs6000-*-lynxos*, sh*-*-elf*, sh*-*-ka, + sh-*-rtemself, sparc-*-openbsd*, strongarm-*-pe, vax-*-openbsd*, + xscale-*-coff): Use explicit and complete lists of target headers + to include. Move definitions to tm_defines where appropriate. + (hppa*-*-openbsd*, powerpc-*-openbsd*): Comment out stanza for + not-yet-contributed configuration. + + * config/lynx.h, config/alpha/openbsd.h, config/arm/coff.h + * config/avr/avr.h, config/frv/frv.h, config/h8300/elf.h + * config/i370/linux.h, config/i370/mvs.h, config/i370/oe.h + * config/i386/nto.h, config/iq2000/iq2000.h, + * config/m68k/coff.h, config/m68k/hp310.h, config/m68k/hp320.h + * config/m68k/linux.h, config/m68k/m68k-aout.h + * config/m68k/m68k-none.h, config/m68k/m68kv4.h + * config/m68k/netbsd.h, config/m68k/openbsd.h + * config/m68k/sgs.h, config/mcore/mcore-pe.h, + * config/mips/netbsd.h, config/mips/openbsd.h, config/pa/pa.h, + * config/rs6000/lynx.h, config/sh/embed-elf.h, config/sparc/openbsd.h: + Remove includes of other target config headers, and + definitions of macros moved to tm_defines lists. Add #undefs + where now necessary to prevent redefinition warnings. + + * config/h8300/coff.h: New file split out of... + * config/h8300/elf.h: ...here. + * config/m68k/hp320base.h: New file split out of... + * config/m68k/hp320.h: ...here. + * config/rs6000/lynxbase.h: New file split out of... + * config/rs6000/lynx.h: ...here. + + * config/m68k/hp310g.h, config/m68k/hp320g.h, config/m68k/hpux7.h + * config/m68k/m68k-coff.h, config/mips/openbsd-be.h: Delete file. + + * config/sol2.h: Remove #if 0-ed #include of sys/mman.h. + * config/m68k/m68kelf.h: Remove commented out #include of m68k/sgs.h. + * config/mcore/mcore.h: Don't include hwint.h nor machmode.h. + Remove unnecessary #ifndef. + * config/s390/s390.h: Prefix #include of s390/fixdfdi.h + [under IN_LIBGCC2] with config/. + +2003-08-21 Per Bothner + + * cppfiles.c (stack_file): Correctly pass return_at_eof parameter + to cpp_push_buffer. + * cpplex.c (_cpp_get_fresh_line): Don't buffer->prev - handled + by return_at_eof check. Always call _cpp_pop_buffer at end. + +2003-08-21 Kazu Hirata + + PR target/11805 + * config/h8300/h8300.md (two anonymous patterns): Remove. + +2003-08-21 Richard Sandiford + + * config/mips/mips.h (MUST_PASS_IN_STACK): Remove BLKmode clause. + * config/mips/mips.c (function_arg_pass_by_reference): Never return + true for n32 & n64. + +2003-08-21 Josef Zlomek + + * fold-const.c (fold): Fix bug in (A & C) == D where D & ~C != 0 + and similarly in (A | C) == D where C & ~D != 0. + +2003-08-20 Geoffrey Keating + + PR 8180 + * configure.in: When testing with_libs and with_headers, treat + 'no' as unset. Based on a patch by Dan Kegel . + * configure: Regenerate. + +2003-08-20 Peter Barada + + * longlong.h (umul_ppmm): Add ColdFire support. + +2003-08-20 Peter Barada + Bernardo Innocenti + + * config/m68k/m68k-none.h: Introduce new ColdFire archs. + * config/m68k/m68k.h: Likewise. + * config/m68k/lb1sf68.asm: Rename __mcf5200__ to __mcoldfire__. + * config/m68k/coff.h: Rename TARGET_5200 to TARGET_COLDFIRE. + * config/m68k/linux.h: Likewise. + * config/m68k/m68k.c: Likewise. + * config/m68k/m68k.md: Likewise. + * config/m68k/m68kelf.h: Likewise. + * config/m68k/netbsd-elf.h: Likewise. + * config/m68k/t-m68kelf: Add multilib targets for new ColdFire archs. + +2003-08-20 Bernardo Innocenti + + * config/m68k/m68k.c: Strip away code depending on NO_ADDSUB_Q definition. + * config/m68k/m68k.md: Likewise. + +2003-08-20 Mark Mitchell + + PR java/11996 + Revert this change: + 2003-08-19 Mark Mitchell + * c-common.c (c_common_signed_or_unsigned_type): Correctly handle + types with precisions other than those given by native machine + modes. + +2003-08-20 Gunther Nikl + + * config/m68k/m68k.md (anonymous define_insn): remove obsolete code + selected by FSGLMUL_USE_S and FSGLDIV_USE_S + * config/m68k/m68k.c (output_move_himode): remove SGS_NO_LI check + * config/m68k/m68k.md (anonymous define_insn): Likewise + * config/m68k/m68k.md (anonymous define_insn): remove ISI_OV check + * config/m68k/m68k.c (standard_68881_constant_p): remove obsolete + code selected by NO_ASM_FMOVECR + +2003-08-20 Gunther Nikl + + * config/m68k/m68k.c (output_move_const_into_data_reg, + output_move_himode): unify MOTOROLA/MIT handling of moveq + * config/m68k/m68k.md (movsi_const0, anonymous define_insn): + Likewise + +2003-08-20 Gunther Nikl + + * config/m68k/m68k.c (m68k_output_function_prologue): use %U in + label name + * config/m68k/m68k.c (m68k_output_function_epilogue): replace + HOST_WIDE_INT_PRINT_DEC with %wd + +2003-08-20 Loren James Rittle + + * config/i386/freebsd.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Handle + redefine warning. + +2003-08-20 Roger Sayle + + PR middle-end/11984 + * fold-const.c (fold ): Check for integer constant + operands before calling tree_int_cst_lt when performing associative + transformations. + +2003-08-20 Jason Merrill + + * tree.h (IS_EXPR_CODE_CLASS): Also include 'r' and 's'. + (EXPR_CHECK): Don't check for 'r' or 's' if we're + checking IS_EXPR_CODE_CLASS. + * calls.c (calls_function_1): Likewise. + * fold-const.c (fold): Likewise. + * tree.c (iterative_hash_expr): Likewise. + * tree-inline.c (walk_tree, copy_tree_r): Likewise. + +2003-08-20 Gunther Nikl + + * config/m68k/m68k.c (m68k_output_mi_thunk): delete obsolete code + depending on MOTOROLA_BSR + * config/m68k/m68k.md (anonymous define_insn): Likewise + +2003-08-20 Jason Merrill + + * builtins.c (expand_builtin_mathfn): Use get_callee_fndecl. + (expand_builtin_mathfn2, expand_builtin, builtin_mathfn_code, + fold_trunc_transparent_mathfn, fold_builtin): Likewise. + * dojump.c (do_jump): Likewise. + * fold-const.c (operand_equal_p, fold): Likewise. + (tree_expr_nonnegative_p): Likewise. + + * stor-layout.c (do_type_align): Only copy DECL_USER_ALIGN from + TYPE_USER_ALIGN for FIELD_DECLs. + + * attribs.c (decl_attributes): Rebuild the function pointer type after + changing the target type. + * tree.c (get_qualified_type): Also check that the attributes match. + +2003-08-19 Matt Kraai + + * Makefile.in (STAGESTUFF): Move cc1obj$(exeext) from here ... + * objc/config-lang.in (stagestuff): ... to here. + +2003-08-19 Mark Mitchell + + PR c++/11946 + * convert.c (convert_to_integer): Use CONVERT_EXPR (instead of + NOP_EXPR) when necessary. + * c-common.c (c_common_signed_or_unsigned_type): Correctly handle + types with precisions other than those given by native machine + modes. + +2003-08-19 Geoffrey Keating + + * cpppch.c (cpp_valid_state): Re-add warning about PCH not used + because some macro is defined. + + * config/darwin.h (LINK_COMMAND_SPEC): Add -arch and -arch_only + options. + * config/i386/darwin.h (ASM_SPEC): New. + (SUBTARGET_EXTRA_SPECS): New. + * config/rs6000/darwin.h (ASM_SPEC): New. + (SUBTARGET_EXTRA_SPECS): New. + * configure.in: Don't set CROSS or SYSTEM_HEADER_DIR when building + a cross-compiler between two different processors on Darwin. + * configure: Regenerate. + +2003-08-19 Kazu Hirata + + * builtins.c: Fix comment typos. + * c-common.c: Likewise. + * c-decl.c: Likewise. + * c-pretty-print.c: Likewise. + * cfgbuild.c: Likewise. + * cfglayout.c: Likewise. + * cfgloopanal.c: Likewise. + * cgraphunit.c: Likewise. + * cppfiles.c: Likewise. + * dwarfout.c: Likewise. + * expr.c: Likewise. + * fold-const.c: Likewise. + * gcse.c: Likewise. + * ggc-page.c: Likewise. + * haifa-sched.c: Likewise. + * pretty-print.c: Likewise. + * tree.c: Likewise. + * tree.h: Likewise. + * value-prof.c: Likewise. + +2003-08-19 Kazu Hirata + + * c-decl.c: Follow spelling conventions. + * cppfiles.c: Likewise. + +2003-08-19 Kazu Hirata + + * c-common.c: Fix comment formatting. + * c-common.h: Likewise. + * c-decl.c: Likewise. + * cppinit.c: Likewise. + * cpplib.h: Likewise. + * emit-rtl.c: Likewise. + * input.h: Likewise. + * line-map.h: Likewise. + * opts.c: Likewise. + * opts.h: Likewise. + * simplify-rtx.c: Likewise. + +2003-08-19 Daniel Jacobowitz + + * unwind-c.c: Add libgcc-style exception. + * unwind-dw2.c: Likewise. + * unwind-pe.h: Likewise. + * unwind-sjlj.c: Likewise. + * unwind.inc: Likewise. + +2003-08-19 Andrew Pinski + + PR c/5582 PR c++/10538 + * langhooks-def.h (lhd_decl_uninit): Declare. + (LANG_HOOKS_DECL_UNINIT): New macro. + (LANG_HOOKS_INITIALIZER): Adjust. + * langhooks.h (struct lang_hooks): Add new field + decl_uninit. + * langhooks.c (lhd_decl_uninit): Define. + * c-common.c (c_decl_uninit_1): New function. + (c_decl_uninit): New function. + (warn_init_self): Define. + * c-common.h (c_decl_uninit): Declare. + (warn_init_self): Declare. + * c.opt: Introduce -Winit-self. + * c-opts.c (c_common_handle_options): Set warn_init_self. + * c-lang.c (LANG_HOOKS_DECL_UNINIT): Define. + * objc/objc-lang.c (LANG_HOOKS_DECL_UNINIT): Define. + * function.c (uninitialized_vars_warning): Call the language hook. + * doc/invoke.texi: Document -Winit-self. + +2003-08-19 Chris Demetriou + + * config/mips/mips.md: Adjust SI-mode "trap_if" instruction + to use better predicates and constraints. Define new + instruction to handle "trap_if" with DI-mode arguments. + (conditional_trap): FAIL if trap code is not 0. + +2003-08-19 Andrew Pinski + + * config/i386/i386.c (legitimate_pic_address_disp_p): Change the + strstr with $pb to a strcompare with "" + (ix86_output_addr_diff_elt): Output the real pic base. + +2003-08-19 Gabriel Dos Reis + + * langhooks-def.h (LANG_HOOKS_INITIALIZE_DIAGNOSTICS): Fix spelling. + (LANG_HOOKS_INITIALIZER): Correct. + * c-lang.c: Likewise. + +2003-08-19 Jan Hubicka + + * cgraph.c (cgraph_mark_needed_node): Call notice_global_symbol. + (cgraph_varpool_mark_needed_node): Likewise. + * cgraph.h (notice_global_symbol): Declare + * varasm.c (notice_global_symbol): Break out from ... + (assemble_start_function): ... here; update for variables. + (assemble_variable): Use notice_global_symbol. + +2003-08-19 Richard Sandiford + + * config/mips/mips.c (mips_va_arg): If EABI_FLOAT_VARARGS_P, + expect SFmode and DFmode arguments to be passed in FPRs, + regardless of the underlying type. + +2003-08-19 Richard Sandiford + + PR target/11924 + * config/mips/mips.c (INTERNAL_SYMBOL_P): New macro. + (mips_classify_symbol, m16_usym8_4, m16_usym5_4): Use it. + +2003-08-18 Matt Kraai + + PR c/11207 + * c-typeck.c (set_init_index): Check for negative index. + +2003-08-18 Bob Wilson + + * config/xtensa/crti.asm (_init, _fini): Add alternate code for new + call0 ABI. + * config/xtensa/crtn.asm (_init, _fini): Likewise. + * config/xtensa/lib1funcs.asm (__mulsi3, __udivsi3, __divsi3, + __umodsi3, __modsi3): Likewise. + * config/xtensa/t-xtensa (crti.o, crtn.o): Add $(GCC_CFLAGS) and + $(INCLUDES). + +2003-08-18 Aldy Hernandez + + * config/rs6000/spe.md ("*nabssf2_gpr"): New. + +2003-08-18 Richard Sandiford + + * config/mips/mips.md: Quote C code in braces. Remove use of + fake const0_rtx operands. Remove double backslashes. Use \;. + Remove workarounds for bogus warnings. + +2003-08-18 Richard Sandiford + + * config/mips/mips.md (muldf3, mulsf3): Don't call a gen_* function. + (muldf3_internal, muldf3_r4300): Select based on TARGET_4300_MUL_FIX + rather than TARGET_MIPS4300. + (mulsf3_internal, mulsf3_r4300): Likewise. + +2003-08-18 Richard Sandiford + + * config/mips/mips.md: Renumber unspecs. Clean up comments. + +2003-08-17 Roger Sayle + + * simplify-rtx.c (associative_constant_p): New function to test + whether an RTX expression is an immediate constant. + (simplify_associative_operation): New function to perform some + reassociation optimizations of associative binary expressions. + (simplify_binary_operation): Use simplify_associative_operation + to simplify PLUS, MULT, AND, IOR, XOR, SMIN, SMAX, UMIN and UMAX. + Floating point expressions are only reassociated when unsafe + math optimizations are permitted. + +2003-08-17 Andreas Jaeger + + * config/alpha/alpha.md: Remove usage of PARAMS. + + * config/i386/cygwin.h: Convert K&R prototypes to ISO C90. + * config/i386/i386-interix.h: Likewise. + * config/i386/winnt.c: Likewise. + * config/i386/cygming.h: Likewise. + * config/i386/cygwin2.c: Likewise. + * config/darwin.c: Likewise. + * config/darwin-c.c: Likewise. + * config/darwin-protos.h: Likewise. + * config/darwin.h: Likewise. + * config/s390/s390-protos.h: Likewise. + * config/s390/s390.c: Likewise. + * config/ia64/ia64.c: Likewse + * config/ia64/ia64-protos.h: Likewise. + * config/ia64/ia64-c.c: Likewise. + +2003-08-16 Kaveh R. Ghazi + + * config/sparc/sparc.c: Convert to ISO C. + + * config/sparc/sparc-protos.h: Don't use the PARAMS macro. + * config/sparc/sparc.c: Likewise. + +2003-08-16 Nathan Sidwell + + PR c++/11512 + * stmt.c (expand_expr_stmt_value): Don't warn about any void + typed expression. + +2003-08-16 Jan Hubicka + + * i386.c (ix86_fntype_regparm): Rename from ... + (ix86_function_regparm): ... this one; add fastcall and local + functions. + (ix86_function_ok_for_sibcall): Update. + (ix86_return_pops_args): Likewise. + (init_cumulative_args): Likewise. + (x86_can_output_mi_thunk): Likewise. + (function_arg): Fix formating. + (x86_this_parameter): Fix fastcall. + (x86_output_mi_thunk): Likewise. + + * cgraph.c (cgraph_mark_needed_node): Do not mark functions without + body as reachable; mark nested functions as needed too. + (dump_cgraph): Do not output global.calls. + * cgraph.h (cgraph_global_info): Kill. + * cgraphunit.c (cgraph_finalize_function): Enqueue needed functions. + (record_call_1): Speedup. + (cgraph_analyze_function): Break out from ...; compute inlining + parameters. + (cgraph_finalize_compilation_unit): ... here. + (cgraph_mark_inline): Kill computation of calls. + (cgraph_decide_inlining): Do not compute most of initial values. + +2003-08-14 Roger Sayle + + * fold-const.c (negate_expr_p): MULT_EXPRs and RDIV_EXPRs are easy + to negate if either operand is easy to negate, if we don't care + about sign-dependent rounding. + (negate_expr): Make the logic to negate a REAL_CST explicit. + Attempt to negate a MULT_EXPR or RDIV_EXPR by negating an operand + that's easy to negate, if we don't honor sign-dependent rounding. + (fold ): Optimize -A * B as A * -B if B is easy to + negate, and the symmetric A * -B as -A * B if A is easy to negate. + (fold ): Likewise, optimize -A/B and C/-D as A/-B and + -C/D if B and C are cheap to negate. Add an explicit rule to + optimize X/-1.0 as -X when we don't care about signaling NaNs. + +2003-08-14 Zack Weinberg + + * Makefile.in (tm_file): Rename tm_include_list. + (tm_p_file): Rename tm_p_include_list. + (build_xm_file): Rename build_xm_include_list. + (host_xm_file): Rename host_xm_include_list. + (xm_file): Rename xm_include_list. + (xm_file_list): Add to be substituted. + (cs-config.h, cs-bconfig.h, cs-tconfig.h, cs-tm.h, cs-tm_p.h): + Update to match. + (bt-load.o): Add missing dependency on $(TM_H). + * configure.in: Prefix value of EXTRA_MODES_FILE with config/. + For each of tm_file, tm_p_file, xm_file, host_xm_file, and + build_xm_file, generate both *_file_list and *_include_list + values from it. (xm_file_list was formerly not being generated.) + In *_include_list, prefix the names of all headers found in + $(srcdir)/config with config/. In each loop, consider only + the special case files that can actually appear in that list. + AC_SUBST all *_file_list and all *_include_list variables; do + not AC_SUBST the plain *_file variables. + * configure: Regenerate. + +2003-08-14 Zdenek Dvorak + + * cfg.c (dump_edge_info): Add name of loop_exit edge flag. + +2003-08-14 John David Anglin + + * pa.c (pa_adjust_insn_length): Delete adjustment for delay slot in + direct calls. + (attr_length_call): Include it here. Improve length estimate for + local calls. + (output_call): Use targetm.binds_local_p. + +2003-08-14 Kaveh R. Ghazi + + * builtins.c (CASE_MATHFN): New helper macro. + (mathfn_built_in): Simplify and sort. + + * protoize.c (substr): Delete, callers changed to `strstr'. + +2003-08-13 Zack Weinberg + + * config.gcc (iq2000*-*-elf*): Don't set xm_file. + * config/iq2000/xm-iq2000.h: Delete file. + +2003-08-13 Geoffrey Keating + + * gengtype.c (walk_type): Process a subobject before processing + the pointer that points to the subobject. + +2003-08-13 Per Bothner + + * regclass.c (init_reg_modes): Make non-static. + Rename to init_reg_modes_once per new naming convention. + (init_regs): Don't call init_reg_modes here. + * emit-rtl.c (init_emit_once): Call init_reg_modes_once here instead. + * rtl.h (init_reg_modes_once): New declaration. + * toplev.c (backend_init): Call init_regs after init_emit_once. + +2003-08-13 Kaz Kojima + + * config/sh/linux.h (DBX_REGISTER_NUMBER): Define so to map a + special index for MD_FALLBACK_FRAME_STATE_FOR to itself. + +2003-08-13 J"orn Rennecke + + * sh.c (sh_get_pr_initial_val): Always wrap in unspec for TARGET_SH1. + * sh.md (load_ra): Change insn predicate to TARGET_SH1. + +2003-08-13 Dale Johannesen + + * config/rs6000/rs6000.md (ctrsi, ctrdi): Reenable + handling of decrement-and-branch farther than 32 bits. + +2003-08-12 Kelley Cook + + * configure.in (make_compare_target): Move test to ... + * aclocal.m4 (gcc_AC_PROG_CMP_IGNORE_INITIAL): here. + * configure: Regenerate. + +2003-08-12 Richard Sandiford + + * config/mips/iris6.h: Convert to C90 prototypes. + * config/mips/irix6-libc-compat.c: Likewise. + * config/mips/mips-protos.h: Likewise. + * config/mips/mips.c: Likewise. + +2003-08-12 Nathanael Nerode + + fixinc/inclhack.def (svr4_krnl): Rename from svr4_kernel. Enable + for selected machines. Comment heavily. + fixinc/fixincl.x: Rebuild. + fixinc/tests/base/fs/rfs/rf_cache.h: New file. + +2003-08-12 Richard Sandiford + + * config/mips/mips.h: Tweak various comments. + * config/mips/mips.c: Likewise. + +2003-08-11 James E Wilson + + PR optimization/11319 + PR target/10021 + * alias.c (find_base_value, case REG): Return 0 not src if no base + found. + +2003-08-11 Kaveh R. Ghazi + + * gcse.c (gmalloc): Fix last change. + +2003-08-11 Roger Sayle + + * simplify-rtx.c (simplify_binary_operation): Replace calls to + gen_rtx_NEG and gen_rtx_NOT with calls to simplify_gen_unary, + and calls to gen_rtx_PLUS, gen_rtx_MULT, gen_rtx_LSHIFTRT, + gen_rtx_ASHIFT and gen_rtx_AND with calls to simplify_gen_binary. + +2003-08-11 Roger Sayle + + * expr.c (expand_expr): If an ABS_EXPR has a complex type, abort. + * c-typeck.c (build_unary_op): COMPLEX_TYPE is not a valid + typecode for an ABS_EXPR. + + * doc/c-tree.texi: Document ABS_EXPR. + +2003-08-11 Roger Sayle + + * fold-const.c (fold): Optimize any associative floating point + operator with -funsafe-math-optimizations, not just MULT_EXPR. + +2003-08-11 Kaz Kojima + + * config/sh/lib1funcs.asm (__udivdi3): Add .type and .size + information in SHmedia case too. + (__divdi3, __umoddi3, __moddi3, __init_trampoline, __ic_invalidate): + Likewise. + (__set_fpscr): Use an access via GOT for PIC case. + +2003-08-11 Kelley Cook + + * configure.in (intermodule): Make switch test more portable. + * configure: Regenerate. + +2003-08-11 Kelley Cook + + * Makefile.in (cleanstrap): Pass BOOT_CFLAGS to bootstrap. + (restrap): Likewise. + +2003-08-11 Kaveh R. Ghazi + + * gcse.c (gmalloc): Argument is a size_t. Add ATTRIBUTE_MALLOC. + (grealloc): Size argument is a size_t. + (gcalloc): New function. Use throughout in lieu of + gmalloc/memset. + + * config/avr/avr.c (avr_init_once): Use xcalloc in lieu of + xmalloc/memset. + * config/ia64/ia64.c (ia64_reorg): Likewise. + * conflict.c (conflict_graph_new): Likewise. + * fixinc/fixincl.c (run_compiles): Likewise. + * genattrtab.c (optimize_attrs): Likewise. + * genrecog.c (new_decision): Likewise. + * haifa-sched.c (schedule_block): Likewise. + * hashtable.c (ht_create): Likewise. + +2003-08-11 Bob Wilson + + * config/xtensa/lib2funcs.S: Fix whitespace. + * config/xtensa/xtensa.md (all insns and expanders): Use brace block + syntax where appropriate. Remove unnecessary backslash escapes. + Reformat comments and fix some code formatting. + (extendqisi2): Rearrange conditional. + (*btrue, *bfalse, *ubtrue, *ubfalse, *bittrue, *bitfalse, *masktrue, + *maskfalse, movsicc_internal0, movsfcc_internal0): Call abort instead + of fatal_insn. + +2003-08-11 Richard Sandiford + + * config/mips/mips.c: Various formatting fixes. + (override_options): Resync -mtune handling with gas. + (mips_issue_rate): Rearrange like mips_use_dfa_pipeline_interface. + * config/mips/mips.h: More formatting fixes. + (mips_abi): Move declaration. + * config/mips/mips.md (exception_receiver): Add mode to + unspec_volatile. + +2003-08-11 Aldy Hernandez + + * config/rs6000/rs6000.c (spe_init_builtins): Handle evsplati and + evsplatfi here. + (bdesc_1arg): Remove evsplati and evsplatfi. + +2003-08-11 J"orn Rennecke + + * dwarf2asm.c (dw2_output_indirect_constant_1): Take user_label_prefix + into account. + +2003-08-10 Kaveh R. Ghazi + + * builtins.c (expand_builtin_strcat): Optimize constant strings. + +2003-08-10 Gabriel Dos Reis + + * pretty-print.c (pp_base_indent): Rename from pp_indent. + * c-pretty-print.h (pp_c_pretty_print_flag)s: New datatype. + (struct c_pretty_print_info): Add more fields. + (pp_c_left_paren): Move to c-pretty-print.c. + (pp_c_right_paren): Likewise. + (pp_c_left_brace): Likewise. + (pp_c_right_brace): Likewise. + (pp_c_left_bracket): Likewise. + (pp_c_right_bracket): Likewise. + (pp_c_declarator): Declare. + (pp_c_direct_declarator): Likewise. + (pp_c_specifier_qualifier_list): Likewise. + (pp_c_type_id): Likewise. + * c-pretty-print.c (pp_c_cv_qualifier): Change prootype. Rework.. + (pp_c_type_qualifier_list): New. + (pp_c_pointer): Likewise. + (pp_c_parameter_type_list): Likewise. + (pp_c_function_definition): Likewise. + (pp_c_id_expression): Likewise. + (pp_c_simple_type_specifier): Tidy. + (pp_c_unary_expression): Likewise. + (pp_c_expression): Likewise. + (pp_c_pretty_printer_init): Likewise. + (pp_c_specifier_qualifier_list): Rework.. + (pp_c_abstract_declarator): Likewise. + (pp_c_postfix_expression): Likewise. + (pp_c_primary_expression): Likewise. + (pp_c_cast_expression): Likewise. + (pp_c_direct_abstract_declarator): Likewise. + (pp_c_storage_class_specifier): Likewise. + (pp_c_function_specifier): Likewise. + (pp_c_declaration_specifiers): Likewise. + (pp_c_direct_declarator): Likewise. + (pp_c_declarator): Likewise. + (pp_c_declaration): Likewise. + (pp_c_statement): Likewise. + (pp_c_integer_constant): Rename from pp_c_integer_literal. + (pp_c_character_constant): Rename from pp_c_character_literal. + (pp_c_bool_constant): Rename from pp_c_bool_literal. + (pp_c_enumeration_constant): Rename from pp_c_enumerator. + (pp_c_floating_constant): Rename from pp_c_real_literal. + (pp_c_constant): Rename from pp_c_literal. + * c-lang.c: Include diagnostic.h and c-pretty-print.h + (LANG_HOOKS_INITIALIZE_DIAGNOSTITCS): Define. + (c_initialize_diagnostics): New. + * Makefile.in (c-lang.o): Update dependency. + +2003-08-10 Nathan Sidwell + + * c-typeck.c (digest_init): Add conversion for VECTOR_TYPEs. + +2003-08-10 Richard Sandiford + + * config/mips/mips.c (mips_no_mips16_string): Remove. + (override_options): Don't handle -mips16 as part of -mipsN. + * config/mips/mips.h (mips_no_mips16_string): Remove declaration. + (TARGET_SWITCHES): Add -mips16 and -mno-mips16 entries. + (TARGET_OPTIONS): Remove -mno-mips16. + +2003-08-10 Richard Sandiford + + * config/mips/mips-protos.h (coprocessor_operand): Remove declaration. + (coprocessor2_operand): Likewise. + * config/mips/mips.c (STAB_CODE_TYPE): Remove. + (lookup_name): Remove declaration. + (abort_with_insn): Remove. Replace all uses with fatal_insn. + (mips16, mips_abicalls): Remove. + (mips_char_to_class): Remove initialiser: all entries are NO_REGS. + (arith32_operand, large_int, true_reg_or_0_operand): Remove. + (coprocessor_operand, coprocessor2_operand): Remove. + (override_options): Don't set mips16 or mips_abicalls. + (print_operand): Don't expect SIGN_EXTEND operands. + (mips_secondary_reload_class): Likewise. + (mips_output_conditional_branch): Remove disabled long-branch code. + * config/mips/mips.h (call_used_regs): Remove declaration. + (may_call_alloca): Likewise. + (mips_cpu_attr, mips_abicalls_type, mips_abicalls_attr): Remove. + (mips_abicalls, mips16): Remove declarations. + (ASM_FINAL_SPEC, LIB_SPEC): Remove. + (CC1_SPEC): Remove outdated comment. + (MIPS_VERSION, MACHINE_TYPE): Remove. + (TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove. + (PC_REGNUM, STACK_POINTER_OFFSET): Remove disabled definitions. + (STRUCT_VALUE_RETURN_REGNUM, STACK_DYNAMIC_OFFSET): Likewise. + (PUSH_ROUNDING): Likewise. + (ASSEMBLER_SCRATCH_REGNUM): Remove. + * config/mips/mips.md: Replace mips_cpu_attr with mips_tune + and mips16 with TARGET_MIPS16. + +2003-08-09 Per Bothner + + * cppinit.c (cpp_read_main_file): Split out source-independent + initialization to separate function ... + (cpp_post_options): New function. + * cppfiles.c (cpp_stack_file): Rename public name to ... + (_cpp_stack_file): New internal function name. + * cpplib.h: Update accordingly. + * cppinit.c: (cpp_create_reader): Initialize cpp_readers line here. + (cpp_read_main_file): Don't initialize line here. + * c-opts.c (c_common_post_options): Call cpp_post_options. + (c_common_parse_file): Call cpp_read_main_file, not cpp_stack_file. + * fix-header.c (read_scan_file): Call cpp_post_options. + +2003-08-09 Per Bothner + + * c-decl.c (SCOPE_LIST_APPEND): Remove bogus line continuation. + +2003-08-09 John David Anglin + + * pa.c (pa_asm_output_mi_thunk): Fix typo. + +2003-08-09 Neil Booth + + PR preprocessor/11839 + * cppfiles.c (open_file): Handle ENOTDIR. + +2003-08-09 Richard Sandiford + + PR target/11699 + * config/mips/mips.c (override_options): Reject -mabi=eabi -mabicalls. + +2003-08-08 John David Anglin + + * pa.md (extzv, extv, insv): Fix operand limit checks. Fail if + source/destination is not a register operand. + +2003-08-08 Richard Henderson + + PR target/11535 + * config/ia64/ia64.c (ia64_initial_elimination_offset): Remove + RETURN_ADDRESS_POINTER_REGNUM. + (ia64_expand_prologue): Don't frob it. + (ia64_output_function_epilogue): Likewise. + (ia64_return_addr_rtx): New. + (ia64_split_return_addr_rtx): New. + * config/ia64/ia64-protos.h: Update. + * config/ia64/ia64.h (FIRST_PSEUDO_REGISTER): Decrement. + (RETURN_ADDRESS_POINTER_REGNUM): Remove. + (GENERAL_REGNO_P): Don't check it. + (AR_*_REGNUM): Renumber. + (FIXED_REGISTERS): Remove RETURN_ADDRESS_POINTER_REGNUM. + (CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS): Likewise. + (REG_ALLOC_ORDER, REG_CLASS_CONTENTS): Likewise. + (ELIMINABLE_REGS, REGISTER_NAMES): Likewise. + (RETURN_ADDR_RTX): Use ia64_return_addr_rtx. + * config/ia64/ia64.md (UNSPEC_RET_ADDR): New. + (movdi_ret_addr): New. + +2003-08-08 Geoffrey Keating + + * config.gcc (powerpc-*-darwin*): Don't build a soft-float multilib. + +2003-08-08 Roger Sayle + + * tree.h (get_identifier) Define a macro form of get_identifier + that calls get_identifier_with_length when the string is constant. + (get_identifier_with_length): Change type of second argument to + size_t in prototype. + * stringpool.c (get_identifier): Undefine the macro before giving + the function definition. + (get_identifier_with_length): Change type of second argument to + size_t in function definition. + * hashtable.c (calc_hash): Change type of second argument to size_t. + (ht_lookup): Change type of third argument to size_t. Reorganize + to speed-up the cases where the hash table slot is empty, or the + first probe matches (i.e. there isn't a collision). + * hashtable.h (ht_lookup): Adjust function prototype. + +2003-08-08 Bernardo Innocenti + + PR target/9697 + PR target/11777 + * longlong.h (count_leading_zeros): Exclude on __mcpu32__. + +2003-08-08 Neil Booth + + * common.opt: Add debug switches. + * flags.h (use_gnu_debug_info_extensions): Boolify. + * opts.c (write_symbols, debug_info_level, + use_gnu_debug_info_extensions): Move from toplev.c. + (set_debug_level): New. + (common_handle_options): Handle debug switches. + (print_help): Display target options directly. + * toplev.c (debug_hooks): Don't initialize. + (write_symbols, debug_info_level, + use_gnu_debug_info_extensions): Move to opts.c. + (debug_args, display_help, decode_g_option): Remove. + (process_options): Set no debug if level zero here, + and no-debug-hooks. Error here if impossible debug format selected. + * toplev.h (display_help, decode_g_option): Remove. + +2003-08-08 Richard Sandiford + + * tree.c (get_file_function_name_long): Fix size of alloca() area. + +2003-08-08 Kelley Cook + + * configure.in (gcc_cv_prog_cmp_skip): Flipflop make_compare_target + and gcc_cv_prog_cmp_skip. + * configure: Regenerate. + +2003-08-08 Stan Cox + + * config/iq2000: New port. + * config.gcc (iq2000-*-elf): Added. + * doc/install.texi (Specific): Add iq2000 description. + +2003-08-08 Andreas Schwab + + * configure.in (gcc_cv_as_ia64_ltoffx_ldxmov_relocs): Fix quoting + and insert missing empty argument. + * configure: Regenerate. + +2003-08-07 John David Anglin + + * pa.c (update_total_code_bytes): Use new macro IN_NAMED_SECTION_P. + (attr_length_millicode_call): Likewise. + (attr_length_call): Likewise. Revise some maximum insn lengths. + (attr_length_indirect_call): Likewise. + (output_call): Fix thinko that added extra nop. + * pa.h (IN_NAMED_SECTION_P): Define. + + PR c++/11712 + * pa-hpux.h, pa-hpux10.h, pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Define + __STDC_EXT__ when using C++ dialect. + +2003-08-07 J"orn Rennecke + + * sh.c (calc_live_regs): If the return address pointer is live, + force pr live. + (sh5_schedule_saves): Exclude PR_MEDIA_REG from being a temp register + for saves / restores. + (sh_expand_epilogue): If sh_media_register_for_return returns a + register number, flag the instructions that restores PR_MEDIA_REG + as possibly dead. + Remove dead update of offset. + (sh_get_pr_initial_val): Use UNSPEC_RA if we don't know yet if + we can use the result of get_hard_reg_initial_val. + * sh.md (UNSPEC_RA): New constant. + (movsi_i_lowpart+1): Changed into a define_insn_and_split, named: + (load_ra). Handle UNSPEC_RA. + (sibcall_media): Use PR_MEDIA_REG. + + * sh.h (CALL_USED_REGISTERS): Include PR_REG and PR_MEDIA_REG. + * sh.c (calc_live_regs): Use sh_pr_n_sets to determine if pr + needs saving on SHmedia. + +2003-08-07 Ulrich Weigand + + * config/s390/s390.md: Replace all occurrences of \\t with \t. + +2003-08-07 Richard Sandiford + + * local-alloc.c (combine_regs): Fix comment typo. + +2003-08-06 Zack Weinberg + + * c-decl.c (builtin_decls): Replace with first_builtin_decl + and last_builtin_decl. + (c_init_decl_processing): Initialize both. + (c_reset_state): Iterate from first_builtin_decl to + last_builtin_decl inclusive to reintroduce builtins. + +2003-08-06 David Mosberger + + * doc/extend.texi (Function Attributes): Document the IA-64 version + of the "model" attribute. + + * config/ia64/ia64.h (SYMBOL_FLAG_SMALL_ADDR): New macro. + (SYMBOL_REF_SMALL_ADDR_P): Ditto. + (PREDICATE_CODES): Mention "small_addr_symbolic_operand". + + * config/ia64/ia64.c (ia64_handle_model_attribute): New function. + (ia64_encode_section_info): Likewise. + (ia64_attribute_table): Add "model" attribute. + (TARGET_ENCODE_SECTION_INFO): Define. + (small_addr_symbolic_operand): New function. + (got_symbolic_operand): Return 0 for a symbolref to an object + in the small address area. + (enum ia64_addr_area): New type. + (small_ident1): New variable. + (small_ident2): Likewise. + (init_idents): New function. + (ia64_get_addr_area): Likewise. + (ia64_encode_addr_area): Likewise. + (ia64_encode_section_info): Likewise. + (ia64_expand_load_address): For symbolic references to objects in + the small-address-area, load the address via gen_rtx_SET() (which, + eventually, will expand into "addl"). + +2003-08-06 Per Bothner + + * line-map.h (fileline): New typedef. + (struct line_map, linemap_add, linemap_lookup): Use it. + * input.h (struct location_s): Comment notes that long-term we want + to replace it by fileline. + +2003-08-06 J"orn Rennecke + + Fix SHcompact exception handling: + * sh.c (sh_get_pr_initial_val): If PR is or miight be clobbered + by the prologue, return a MEM with return_address_pointer_rtx + as address. + * sh.h (HARD_REGNO_MODE_OK): PR is OK for SImode. + (RETURN_ADDR_OFFSET): Don't define. + (SH_DBX_REGISTER_NUMBER): Use SHmedia numbers for SHmedia + registers that are visible in compact mode. Show that SHmedia + registers still exist in compact mode, even if there are not + readily accessible. + (ASM_PREFERRED_EH_DATA_FORMAT): Supply DW_EH_PE_indirect + if GLOBAL. Use DW_EH_PE_textrel (nominally) for CODE, + and DW_EH_PE_pcrel for pic data. + (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): If DW_EH_PE_textrel, + set SYMBOL_FLAG_FUNCTION in symbol, and actually use + DW_EH_PE_pcrel / DW_EH_PE_absptr encoding. + (ALLOCATE_INITIAL_VALUE): Put PR on stack if prologue clobbers it. + * sh.md (movsi_media-1): New splitter. + +2003-08-06 Graeme Peterson + + * config/i386/nto.h: New. + * config/i386/t-nto: New. + * config.gcc (i[34567]86-*-nto-qnx*): New. + +2003-08-06 Phil Edwards + + * doc/install.texi (*-*-solaris2*): Refine configure instructions. + +2003-08-06 Alan Modra + + * calls.c (load_register_parameters): Arrange for call_fusage to + report the whole register as used when shifting to the msb. + +2003-08-05 Roger Sayle + + * builtins.c (expand_builtin): When not optimizing, call the library + function for all builtins that have library functions (except alloca). + +2003-08-05 Alexandre Oliva + + * c.opt: Introduce -fworking-directory. + * doc/cpp.texi, doc/invoke.texi, doc/cppopts.texi: Document it. + * c-common.h (flag_working_directory): Declare. + * c-common.c (flag_working_directory): Define. + * c-opts.c (c_common_handle_options): Set it. + (sanitize_cpp_opts): Set... + * cpplib.h (struct cpp_options): ... working_directory option. + (struct cpp_callbacks): Add dir_change. + * cppinit.c (read_original_filename): Call... + (read_original_directory): New. Look for # 1 "directory//" + and process it. + (cpp_read_main_file): Call dir_change callback if working_directory + option is set. + * gcc.c (cpp_unique_options): Pass -g*. + * c-lex.c (cb_dir_change): New. + (init_c_lex): Set dir_change callback. + * toplev.c (src_pwd): New static variable. + (set_src_pwd, get_src_pwd): New functions. + * toplev.h (get_src_pwd, set_src_pwd): Declare. + * dbxout.c (dbxout_init): Call get_src_pwd() instead of getpwd(). + * dwarf2out.c (gen_compile_unit_die): Likewise. + * dwarfout.c (output_compile_unit_die, dwarfout_init): Likewise. + +2003-08-05 Gabriel Dos Reis + + * pretty-print.h (pp_set_line_maximum_length): Make macro. + (pp_set_prefix): Likewise. + (pp_destroy_prefix): Likewise. + (pp_remaining_character_count_for_line): Likewise. + (pp_clear_output_area): Likewise. + (pp_formatted_text): Likewise. + (pp_last_position_in_text): Likewise. + (pp_emit_prefix): Likewise. + (pp_append_text): Likewise. + (pp_flush): Likewise. + (pp_format_text): Likewise. + (pp_format_verbatim): Likewise. + (pp_tree_identifier): Tidy. + * pretty-print.c (pp_base_format_text): Rename from pp_format_text. + (pp_base_format_verbatim): Rename from pp_format_verbatim. + (pp_base_flush): Rename from pp_flush. + (pp_base_set_line_maximum_length): Rename from + pp_set_line_maximum_length. + (pp_base_clear_output_area): Rename from pp_clear_output_area. + (pp_base_set_prefix): Rename from pp_set_prefix. + (pp_base_destroy_prefix): Rename from pp_destroy_prefix. + (pp_base_emit_prefix): Rename from pp_emit_prefix. + (pp_base_append_text): Rename from pp_append_text. + (pp_base_formatted_text): Rename from pp_formatted_text. + (pp_base_last_position_in_text): Rename from pp_last_position_in_text. + (pp_base_remaining_character_count_for_line): Rename from + pp_remaining_character_count_for_line. + * diagnostic.h (diagnostic_format_decoder): Tidy. + (diagnostic_flush_buffer): Likewise. + * c-pretty-print.h: (pp_c_string_literal): Declare. + (pp_c_real_literal): Likewise. + (pp_c_integer_literal): Likewise. + * c-pretty-print.c (pp_c_char): Use pp_string in lieu of + pp_identifier. + (pp_c_character_literal): Tidy. + (pp_c_string_literal): Make public. + (pp_c_bool_literal): Likewise. + (pp_c_integer_literal): Likewise. + (pp_c_real_literal): Likewise. + + * Makefile.in (C_PRETTY_PRINT_H): New variable. + (c-pretty-print.o): Update dependence. + +2003-08-05 Chris Demetriou + + * config/mips/mips.md (fix_truncdfsi2_macro): Properly restore + ".set nomacro" state. + (fix_truncsfsi2_macro): Likewise. + +2003-08-05 Steven Bosscher + + * tree.h (DID_INLINE_FUNC): Remove macro. + (DECL_DECLARED_INLINE_P): Move from c-tree.h and cp/cp-tree.h, + add tree check for FUNCTION_DECL. + (DECL_ESTIMATED_INSNS): Move from c-common.h and java/java-tree.h. + (struct tree_decl): Rename inlined_function_flag to + declared_inline_flag. + * c-common.h (c_lang_decl): Remove. + (DECL_ESTIMATED_INSNS): Remove. + * c-tree.h (struct lang_decl): Don't include c_lang_decl. + (DECL_DECLARED_INLINE_P): Remove. + * c-decl.c (grokdeclarator): Update comment. With -finline-functions, + do not reset DECL_DECLARED_INLINE_P. Don't use DID_INLINE_FUNC. + (finish_function): Make uninlinable a bool. Fixup call to + tree_inlinable_function_p() and fix some code style issues. + * cgraph.h (disgread_inline_limits): Fix spelling: `disregard'. + * cgraph.c (dump_cgraph): Likewise. + * cgraphunit.c (cgraph_decide_inlining): Likewise + (cgraph_finalize_compilation_unit): Likewise. + Also update call to tree_inlinable_function_p(). + (cgraph_default_inline_p): Don't use DID_INLINE_FUNC. Instead + look at DECL_DECLARED_INLINE and reverse logic. + * print-tree.c (print_node): Likewise. + * toplev.c (rest_of_handle_inlining): Don't use DID_INLINE_FUNC. + * tree-inline.h (tree_inlinable_function_p): Make a bool. Update + prototype. + * tree-inline.c (inlinable_function_p): Split up in this function to + check for basic inlining inhibiting conditions, and new + limits_allow_inlining() function. Warn if inlining is impossible + because the inline candidate calls alloca or uses sjlj exceptions. + (limits_allow_inlining): this new function to check if the inlining + limits are satisfied. Throttle from currfn_max_inline_insns, not from + MAX_INLINE_INSNS_SINGLE. The latter only makes sense if + MAX_INLINE_INSNS_AUTO and MAX_INLINE_INSNS_SINGLE are equal. + Update prototypes. + (tree_inlinable_function_p): Make a bool. Update call to + inlinable_function_p + (expand_call_inline): Use limits_allow_inlining() when not in + unit-at-a-time mode to decide on inlining. Don't use DID_INLINE_FUNC, + instead see if the function was declared `inline'. + +2003-08-05 Josef Zlomek + + * gcse.c (try_replace_reg): Fix updating of note. + +2003-08-04 Roger Sayle + + PR middle-end/11771 + * fold-const.c (negate_expr_p ): Change to match the + logic in negate_expr, i.e. we don't invert (A-B) for floating + point types unless flag_unsafe_math_optimizations. + +2003-08-04 Roger Sayle + + * fold-const.c (fold ): Transform x+x into x*2.0. + Optimize x*c+x and x+x*c into x*(c+1) and x*c1+x*c2 into x*(c1+c2) + for floating point expressions with -ffast-math. + (fold ): Don't transform x*2.0 into x+x. + * expmed.c (expand_mult): Wrap long line. Expand x*2.0 as x+x. + +2003-08-04 Roger Sayle + + * c-common.c (flag_noniso_default_format_attributes): Delete. + (built_in_attribute): Don't define/undefine DEF_FN_ATTR. + (c_attrs_initialized): Delete. + (c_common_nodes_and_builtins): Don't test c_attrs_initialized, + always call c_init_attributes. + (c_init_attributes): Don't define/undefine DEF_FN_ATTR. Don't + set c_attrs_initialized when done. + (c_common_insert_default_attributes): Delete. + * c-common.h (flag_noniso_default_format_attributes): Delete. + (c_coomon_insert_default_attributes): Delete prototype. + * c-opts.c (set_std_c89, set_std_c99, set_std_cxx98): Dont set + flag_noniso_default_format_attributes. + + * c-decl.c (c_insert_default_attributes): Delete. + * c-tree.h (c_insert_default_attributes): Delete prototype. + + * attribs.c (decl_attributes): Don't call insert_default_attributes + langhook. Update function description comment. + * langhooks.h (lang_hooks): Remove insert_default_attributes field. + * langhooks-def.h (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES): Delete. + * c-lang.c (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES): Don't define. + * system.h: Poison LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES macro. + + * objc/objc-lang.c (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES): Don't + define. + +2003-08-04 Richard Sandiford + + * config/mips/mips.c (override_options): Disable -G on targets that + have no .section support. + (mips_select_section): Use default_select_section for such targets. + +2003-08-04 Nathanael Nerode + + * fixinc/inclhack.def (svr4_undeclared_getrnge): Introduce and enable. + * fixinc/inclhack.def (static_getrnge): Remove disabled hack. + * fixinc/fixincl.x: Rebuild. + * fixinc/tests/base/regexp.h: New test. + +2003-08-04 Alexandre Oliva + + * c-ppoutput.c (cb_line_change): Don't skip line changing while + parsing macro arguments in the top-level context. + +2003-08-04 Neil Booth + + * config.in: Remove HAVE_LSTAT. + * configure, configure.in: Don't test for lstat. + +2003-08-03 Gabriel Dos Reis + + * opts.c (decode_options): Do language-specific initialization for + the global diagnostic context. + * langhooks-def.h (lhd_initialize_diagnostics): Declare. + (LANG_HOOKS_INITIALIZE_DIAGNOSTITCS): New macro. + (LANG_HOOKS_INITIALIZER): Adjust. + * langhooks.h (struct lang_hooks): Add new field + initialize_diagnostics. + * langhooks.c (lhd_initialize_diagnostics): Define. + +2003-08-03 Gabriel Dos Reis + + * pretty-print.h: Adjust macro definitions. + * pretty-print.c (pp_newline): Rename to pp_base_newline. + (pp_character): Rename to pp_base_character. + (pp_string): Rename to pp_base_string. + * c-pretty-print.c (pp_buffer): Move to pretty-print.h + (pp_newline): Likewise. Adjust. + (pp_c_char): Adjust. + +2003-08-03 Kaveh R. Ghazi + + * builtins.def (BUILT_IN_ABS, BUILT_IN_IMAXABS, BUILT_IN_LABS, + BUILT_IN_LLABS): Move to miscellaneous section. + +2003-08-03 Neil Booth + + PR preprocessor/11534 + * cppexp.c (parse_defined): Warn only if -pedantic. + +2003-08-03 Neil Booth + + * cppfiles.c (stack_file): Use file path. + +2003-08-02 Roger Sayle + + * builtin-types.def (BT_SSIZE): New primitive type. + (BT_FN_INT_PTR_CONST_STRING_VALIST_ARG, + BT_FN_STRING_CONST_STRING_CONST_STRING_INT, + BT_FN_SIZE_STRING_SIZE_CONST_STRING_CONST_PTR, + BT_FN_SSIZE_STRING_SIZE_CONST_STRING_VAR): New function types. + * builtins.def (BUILT_IN_DCGETTEXT, BUILT_IN_DGETTEXT, + BUILT_IN_FSCANF, BUILT_IN_GETTEXT, BUILT_IN_STRFMON, + BUILT_IN_STRFTIME, BUILT_IN_VFPRINTF, BUILT_IN_VFSCANF): New builtins. + * builtin-attrs.def: Remove DEF_FN_ATTR construct and the last + few functions that define default attributes using it. + * c-common.c (c_common_insert_default_attributes): Do nothing. + + * doc/extend.texi: Document these "new" builtins. + +2003-08-02 Kaz Kojima + + * config/sh/linux.h (SUBTARGET_LINK_SPEC): Don't set rpath. + (LIB_SPEC): Set -lpthread always when -pthread set. Set -lieee + when -mieee-fp set and -shared not set. + (SH_FALLBACK_FRAME_FLOAT_STATE): Don't define for SH5. + +2003-08-02 Neil Booth + + * cppfiles.c (struct _cpp_file): Rename once_only_next to + next_file. Remove import and pragma_once, add once_only. + (find_file): Add new file structures to the all_files list. + (should_stack_file): Mark #import-ed files once-only, and + don't stack them if the file has already been stacked. + (_cp_mark_file_once_only): Simplify. + * cpphash.h (struct cpp_reader): Rename once_only_files + to all_files. Rename saw_pragma_once to seen_once_only. + (_cpp_mark_file_once_only): Update prototype. + * cpplib.c (do_pragma_once): Update. + +2003-08-02 Neil Booth + + * cppfiles.c (ENOTDIR): Remove. + (open_file_in_dir): Rename find_file_in_dir. Handle errors + other than ENOENT here. + (once_only_file_p): Rename should_stack_file. + (find_file, open_file_failed, read_file_guts): Report errors + with full path name. + (read_file): Move pch handling to should_stack_file. + (should_stack_file): Handle PCH and once-only issues, and + reading the file. + (stack_file): Don't do file reads. + +2003-08-02 Zdenek Dvorak + + * libgcov.c (gcov_exit): Cleanup and fix. + * profile.c (compute_value_histograms): Don't try to read profiles + that are not present. + +2003-08-02 Kaveh R. Ghazi + + * builtins.def: Categorize. + + * builtins.def (BUILT_IN_CABS, BUILT_IN_CABSF, BUILT_IN_CABSL): + Mind fp rounding. + (BUILT_IN_FFSL): Use DEF_EXT_LIB_BUILTIN. + +2003-08-02 Andreas Tobler + + * config.gcc: Enable posix threads by default on darwin. + +2003-08-01 Jakub Jelinek + + * cfgcleanup.c (outgoing_edges_match): Check REG_EH_REGION notes + even if nehedges1 is 0. + +2003-08-01 Nathanael Nerode + + * fixinc/fixfixes.c, fixinc/fixlib.c, fixinc/fixlib.h, + fixinc/fixtests.c, fixinc/procopen.c, fixinc/server.c, + fixinc/server.h, fixinc/fixincl.c: ANSIfy function prototypes + and defintions. + + * fixinc/inclhack.def (broken_cabs): Make matching more generous. + * fixinc/fixincl.x: Regenerate. + * fixinc/tests/base/math.h: Regenerate to match test_text change. + +2003-08-01 Rainer Orth + + * ggc-common.c (gt_pch_restore): Case MAP_FAILED to void *. + +2003-08-01 Richard Kenner + + * except.c (sjlj_emit_dispatch_table): Use ptr_mode, not Pmode, + for accesses to exc_ptr. + +2003-08-01 Geoffrey Keating + + * doc/sourcebuild.texi (Front End Directory): Don't make references + to libsubdir, it's not part of the interface to frontends. + * doc/install.texi (Configuration): Help users read faster by saying + that GCC's configure options are the standard autoconf ones. + Mention --libdir. Update the default rules for finding the + assembler. Don't use libsubdir since we haven't said what it means. + (Specific): In the Solaris 7 notes, update the place to put the + assembler. + * doc/invoke.texi: Update lib/gcc-lib to lib/gcc. + * doc/cpp.texi (Search Path): Actually, the search path + depends on libdir, which can relocate with cpp. + * doc/tm.texi (Driver): Don't document STANDARD_EXEC_PREFIX, it's + now a private interface between the Makefile and the driver. + +2003-08-01 Richard Henderson + + * system.h: Poison ASM_SIMPLIFY_DWARF_ADDR. + + * varasm.c (lookup_constant_def): New function. + * rtl.h (lookup_constant_def): Declare it. + * dwarf2out.c (loc_descriptor_from_tree): Use it. + Use targetm.delegitimize_address, not ASM_SIMPLIFY_DWARF_ADDR. + +2003-08-01 Zack Weinberg + + * c-decl.c (gettags, pushdecl_function_level): Delete. + (last_function_parm_vars): Rename last_function_parm_others. + (current_function_parm_vars): Rename current_function_parm_others. + (struct c_scope): Rewrite comment explaining this data structure. + Add names_last, blocks_last, parms_last fields. Rename + incomplete_list to incomplete. + (SCOPE_LIST_APPEND, SCOPE_LIST_CONCAT): New macros. + (poplevel): Ignore second argument. No need to nreverse + anything. Restructure such that each list is processed + exactly once. Use 'const location_t *locus' syntactic sugar + variable where useful. Issue unused variable warnings + ourselves, do not rely on function.c. + (insert_block, pushdecl, bind_label): Use SCOPE_LIST_APPEND. + (pushdecl_top_level): Likewise. Don't call duplicate_decls. + (implicitly_declare): decl cannot be error_mark_node. + (undeclared_variable): Manipulate scope structure directly. + (c_make_fname_decl): Likewise. + (getdecls, c_init_decl_processing): Fix comment. + (mark_forward_parm_decls): Use SCOPE_LIST_CONCAT. No need + for 'last' variable. + (grokparms): No need to nreverse parms list. + (store_parm_decls_newstyle): Set up the parms_last and + names_last fields of the new scope too. + (store_parm_decls_oldstyle): Can assume DECL_WEAK is not set + on parms to begin with; check this under ENABLE_CHECKING. Set + up parms_last. + (check_for_loop_decls): Refer directly to current_scope->tags. + Use consistent quote style in diagnostics. + (c_write_global_declarations): The names list is not backward. + + * c-common.h: Don't prototype gettags. + * c-parse.in: Call poplevel with second argument 0 always. + +2003-08-01 Kaveh R. Ghazi + + * builtins.def: Resort builtins. + +2003-08-01 Kaveh R. Ghazi + + * builtins.def (DEF_GCC_BUILTIN, DEF_LIB_BUILTIN, + DEF_EXT_LIB_BUILTIN, DEF_C99_BUILTIN, DEF_C99_C90RES_BUILTIN): + Prepend "__builtin_" onto NAME with string concatenation. Remove + explicit "__builtin_" from each macro call. + + Reformat entire file. + +2003-08-01 Kaveh R. Ghazi + + * builtins.def (ATTR_MATHFN_ERRNO, ATTR_MATHFN_FPROUNDING, + ATTR_MATHFN_FPROUNDING_ERRNO): New macros. Use throughout. + +2003-08-01 Andreas Krebbel + + * config/s390/s390.c (s390_select_ccmode): Do not attempt to use CCL, + CCL1, or CCL2 modes with floating point operations. + + * config/s390/s390.md ("*addsf3_cc", "*addsf3_cconly", "*adddf3_cc", + "*adddf3_cconly", "*subsf3_cc", "*subsf3_cconly", "*subdf3_cc", + "*subdf3_cconly"): New insns. + ("*negabssi2", "*negabsdi2", "*negabsdf2", "*negabssf2"): Likewise. + +2003-08-01 Neil Booth + + * Makefile.in: Refine dependencies. + * c-opts.c (c_common_handle_option): Do nothing for -Wimport. + * c.opt: Update help for -Wimport. + * cppfiles.c: Include hashtab.h. Update comments. + (stack_file): Read the file before updating dependencies. + (once_only_file_p): Be smarter about marking once-only files. + (_cpp_mark_file_once_only): Correct the check for existence on + the list. + (open_file_failed): Use name not path, which is NULL. + * cpphash.h: Don't include hashtab.h. + (struct _cpp_file): Remove. + (struct cpp_reader): Update. + * cppinit.c (cpp_create_reader): Don't initialize warn_import. + * cpplib.h (struct cpp_options): Remove warn_import. + (cpp_simplify_path): Remove. + +2003-08-01 Nathan Sidwell + + PR c++/11295 + * doc/extend.texi (Statement Expressions): Document C++ semantics. + +2003-07-31 SUGIOKA Toshinobu + + * config.gcc (sh-*-linux*): Do not override sh/t-linux with sh/t-le. + +2003-07-31 Kaveh R. Ghazi + + * builtin-types.def: Use `LONGDOUBLE' instead of `LONG_DOUBLE' + throughout. + * builtins.def: Likewise. + +2003-07-31 Jason Merrill + + * Makefile.in (bubblestrap): Don't require a previous full + bootstrap. + + * expr.c (mostly_zeros_p): No longer static. + * tree.h: Declare it. + * stmt.c (resolve_asm_operand_names): Don't copy the pattern + unless we need to do substitutions. + +2003-07-31 Roger Sayle + + * fold-const.c (fold ): Optimize both x*pow(x,c) and + pow(x,c)*x as pow(x,c+1) for constant values c. Optimize x*x + as pow(x,2.0) when the latter will be expanded back into x*x. + (fold ): Optimize pow(x,c)/x as pow(x,c-1). + * builtins.c (expand_builtin_pow): Ignore flag_errno_math as + pow can never set errno when used with an integer exponent. + Always use expand_powi when exponent is -1, 0, 1 or 2. + (fold_builtin): Don't rewrite pow(x,2.0) as x*x nor pow(x,-2.0) + as 1.0/(x*x). This avoids unbounded recursion as we now prefer + the pow forms of these expressions. + +2003-07-31 Geoffrey Keating + + * Makefile.in (libexecdir): New. + (libsubdir): Use gcc instead of gcc-lib. + (libexecsubdir): New. + (ORDINARY_FLAGS_TO_PASS): Add libexecsubdir. + (DRIVER_DEFINES): Add STANDARD_LIBEXEC_PREFIX, use gcc instead of + gcc-lib. + (installdirs): Make libexecsubdir. + (install-common): Put executables in libexecsubdir. + (itoolsdir): Use libexecsubdir. + (itoolsdatadir): New. + (install-mkheaders): Separate data files and executables. + (install-collect2): Put executables in libexecsubdir. + (uninstall): Remove libexecsubdir. + * mkheaders.in: Update for new arrangement of files. + (libexecdir): New. + (libexecsubdir): New. + (itoolsdir): Use libexecsubdir. + (itoolsdatadir): New. + * gcc.c (gcc_libexec_prefix): New. + (STANDARD_LIBEXEC_PREFIX): Use gcc instead of gcc-lib. + (standard_exec_prefix_1): Use libexec. + (standard_exec_prefix_2): New. + (standard_libexec_prefix): New. + (process_command): Update for new arrangement of files. Compute + gcc_libexec_prefix. Update for change from gcc-lib to gcc. + +2003-07-31 Nathanael Nerode + + * inclhack.def (stdio_va_list): Avoid bogus replacement which + triggers on Interix. + * fixincl.x: Regenerate. + +2003-07-31 Jakub Jelinek + + * config/i386/i386.c (legitimate_pic_address_disp_p): Disallow TLS + SYMBOL_REFs not inside UNSPEC even in PLUS rtx. + +2003-07-31 Richard Kenner + + * dwarf2out.c (loc_descriptor_from_tree, case CONSTRUCTOR): New case. + +2003-07-31 Per Bothner + + * opts.c (in_fnames, num_in_fnames): Moved here from c-opts. + (add_input_filename): New function. + (handle_options): Call add_input_filename directly instead of + with a lang hook. + * opts.h (in_fnames, num_in_fnames): Moved here. + (add_input_filename): Declare. + * c-decl.c: Need to #include opts.h. + * Makefile.in (c-decl.o): Also depends on opts.h. + * c-opts.c (in_fnames, num_in_fnames): Moved to opts.c. + (c_common_handle_filename): Replaced by add_input_filename. + * c-common.h (in_fnames, num_in_fnames, c_common_handle_filename): + Remove. + * langhooks.h (struct lang_hooks): Remove handle_filename hook. + * langhooks-def.h (LANG_HOOKS_HANDLE_FILENAME): Remove macro. + (LANG_HOOKS_INITIALIZER): Remove use of LANG_HOOKS_HANDLE_FILENAME. + * c-lang.c (LANG_HOOKS_HANDLE_FILENAME): Remove macro. + +2003-07-31 Zdenek Dvorak + + * combine.c (try_combine): Set JUMP_LABEL for newly created + unconditional jump. + +2003-07-31 Zdenek Dvorak + + * fold-const.c (fold): Fold some comparisons of bit operations. + +2003-07-31 Jan Hubicka + + * cgraph.c (create_edge): Fix typo. + * i386.c (pic_symbolic_operand): Reorder tests. + +2003-07-31 Nathan Sidwell + + * doc/gcov.texi (Invoking Gcov): Describe output name mangling + more fully. + (Gcov Data Files): Update. + +2003-07-31 Rainer Orth + + * config.gcc (alpha*-dec-osf[45]*): Enable POSIX thread support by + default. + + * gthr-posix.c: New file. + * gthr-posix.h: Define _REENTRANT if missing. + Make _LIBOBJC #pragma weak visible with _LIBOBJC_WEAK. + + * config/alpha/t-osf4 (SHLIB_LINK): Hide dummy functions provided + by gthr-posix.o. + * config/alpha/t-osf-pthread: New file. + + * fixinc/inclhack.def (alpha_pthread): New fix. + * fixinc/fixincl.x: Regenerate. + * fixinc/tests/base/pthread.h [ALPHA_PTHREAD_CHECK]: New testcase. + + * doc/install.texi (alpha*-dec-osf*): Remove --enable-threads + warning. + Fixes PR bootstrap/9330. + +2003-07-31 Rainer Orth + + * configure.in (gcc_cv_ld_hidden): Also disable on mips-sgi-irix5* + without GNU ld. + Update comment. + * configure: Regenerate. + +2003-07-31 Vladimir Makarov + + * sched-deps.c (sched_analyze_2): Prevent interblock move of CC0 + setter. + +2003-07-30 Roger Sayle + + * builtins.def: Alphabetize. + +2003-07-30 Matt Kraai + + * doc/c-tree.texi: Normalize spellings of "lowercase" and + "uppercase". + * doc/cpp.texi: Likewise. + * doc/md.texi: Likewise. + * doc/rtl.texi: Likewise. + * doc/tm.texi: Likewise. + +2003-07-30 Matt Kraai + + * objc/Make-lang.in (objc.stage1, objc.stage2, objc.stage3) + (objc.stage4, objc.stageprofile, objc.stagefeedback): Remove moves + of cc1obj. + +2003-07-30 Chris Demetriou + + * config/mips/mips.h (SIZE_TYPE, PTRDIFF_TYPE): Undef these + macros before defining them. + +2003-07-31 Ulrich Weigand + + * config/s390/s390.md (UNSPEC_ROUND, UNSPEC_SETHIGH, + UNSPECV_BLOCKAGE): New constants. + ("*sethighqisi", "*sethighhisi", "*sethiqidi_64", "*sethiqidi_31", + "*extractqi", "*extracthi", "*extendqidi2" splitter, "*extendqisi2" + splitter, "fix_truncdfdi2_ieee", "fix_truncdfsi2_ieee", + "fix_truncsfdi2", "fix_truncsfsi2", "blockage"): Use them. + + (all insns and expanders): Write output control string as brace block + where appropriate. Remove \-escapes for doublequote characters. + +2003-07-31 Jan Hubicka + + * gcse.c (insert_store): Fix typo in previous patch. + +2003-07-30 Neil Booth + + * cppfiles.c (stack_file, open_file_failed): Use path for deps. + +2003-07-30 Andi Kleen + + * loop.c (check_dbra_loop): Allow LTU in the loop condition. + +2003-07-30 Zdenek Dvorak + + * combine.c (distribute_notes): Cancel REG_VALUE_PROFILE notes. + * gcov-io.h (GCOV_FIRST_VALUE_COUNTER, GCOV_LAST_VALUE_COUNTER, + GCOV_N_VALUE_COUNTERS): New. + * profile.c (compute_value_histograms): New static function. + (branch_prob): Read back the value histograms. + * rtl.c (reg_note_name): Add name for REG_VALUE_PROFILE note. + * rtl.h (enum reg_note): Add REG_VALUE_PROFILE note. + * value-prof.c: Add comment on reading the profile. + * value-prof.h (COUNTER_FOR_HIST_TYPE, HIST_TYPE_FOR_COUNTER): New. + * doc/invoke.texi (-fprofile-values): Document behavior with + -fbranch-probabilities. + +2003-07-30 David Edelsohn + + * longlong.h (PowerPC umul_ppmm): Do not test __vxworks__. + +2003-07-30 Ulrich Weigand + + * config/s390/s390.h (EH_RETURN_HANDLER_RTX): Compute offset + symbolically. + +2003-07-30 Jan Hubicka + + * gcse.c (insert_store): Ignore fake edges. + + * c-common.c (flag_vtable_gc): Kill. + * c-common.g (flag_vtable_gc): Kill. + * c-opts (c_common_handle_option): Kill. + * c.opt (fvtable-gc): Kill. + * final.c (final_scan_insn): Do not call assemble_vtable_entry. + * output.h (assemble_vtable_entry, assemble_vtable_inherit): Kill. + * varasm.c (assemble_vtable_entry, assemble_vtable_inherit): Kill. + + * invoke.texi (-ftable-gc): Kill documentation. + + * tree-inline.c (inlinable_function_p): Don't set DECL_UNINLINABLE + just because function body is missing. + + * i386.c (pic_symbolic_operand): Properly detect RIP relative unspecs. + +2003-07-30 Ranjit Mathew + + * unwind-sjlj.c: Fix typo in file description. + +2003-07-30 Alan Modra + + * calls.c (load_register_parameters): When shifting reg sized values + to the msb, move the value to a reg first. + +2003-07-29 Geoffrey Keating + + * cppfiles.c (stack_file): Leave filename as "" rather than "". + * line-map.h (linemap_add): Update comments. + * line-map.c (linemap_add): Update comments, interpret zero-length + filename as "". + +2003-07-29 Nathanael Nerode + + * mkinstalldirs: Import autoconf 2.57 / automake 1.7 version. + +2003-07-29 Zack Weinberg + + * c-decl.c (last_function_parm_vars, current_function_parm_vars): + New static variables. + (struct c_scope): Add parms and warned_forward_parm_decls + fields; remove parm_order. + (storedecls, storetags): Delete. + (poplevel): Also clear bindings on the parms chain. + (pushdecl): Handle forward declarations of parameters, and + chain PARM_DECLs on the parms list, not the names list. + (lookup_name_current_level): Check for PARM_DECLs on the parms + list too. + (push_parm_decl): Don't update parm_order. + (clear_parm_order): Rename mark_forward_parm_decls. Issue the + warning, only once per parameter list, and set TREE_ASM_WRITTEN + on the decls here. Then move the forward decls to the names list. + (grokparms): Set last_function_parm_vars. + (get_parm_info): Don't use gettags or getdecls. No need to + extract non-parms from the parms list, or reorganize the parms + list. Feed nonparms back in the TREE_TYPE of the list node + returned. Issue only one error per parameter list for "void" + appearing more than once in said parameter list. Collapse + parmlist_tags_warning into this function to avoid double scan + of tags list. + (start_function): Set current_function_parm_vars. + (store_parm_decls_newstyle): Bypass pushdecl, manipulate scope + directly. Get non-parms from current_function_parm_vars; no + need to extract them from the parms chain. Properly bind tags + in the new scope. + (store_parm_decls_oldstyle): No need to extract non-parameters + from the parms chain, nor to store them back afterward. Move + declaration to top of function, restructure code reordering + DECL_ARGUMENTS. + (store_parm_decls): No need to save and restore warn_shadow. + * c-parse.in: Don't call parmlist_tags_warning nor + clear_parm_order. Call mark_forward_parm_decls when forward + parm decls are encountered. + * c-tree.h: Prototype mark_forward_parm_decls; not + clear_parm_order or parmlist_tags_warning. + +2003-07-29 Geoffrey Keating + + * c-common.c (allow_pch): Remove. + * c-common.h (allow_pch): Remove. + (c_common_no_more_pch): Declare. + * c-lex.c (c_lex): Call c_common_no_more_pch when appropriate. + * c-pch.c: Include hosthooks.h. + (c_common_valid_pch): Don't check allow_pch. + (c_common_read_pch): Clear valid_pch to prevent reading PCH files. + (c_common_no_more_pch): New. + * ggc-common.c: Include hosthooks.h. + (gt_pch_save): Call gt_pch_get_address. + (gt_pch_restore): Call gt_pch_use_address. + * hooks.c (hook_voidp_size_t_null): New. + (hook_bool_voidp_size_t_false): New. + * hooks.h (hook_voidp_size_t_null): New. + (hook_bool_voidp_size_t_false): New. + * hosthooks-def.h (HOST_HOOKS_GT_PCH_GET_ADDRESS): New. + (HOST_HOOKS_GT_PCH_USE_ADDRESS): New. + (HOST_HOOKS_INITIALIZER): Add HOST_HOOKS_GT_PCH_GET_ADDRESS, + HOST_HOOKS_GT_PCH_USE_ADDRESS. + * hosthooks.h (struct host_hooks): Add gt_pch_get_address, + gt_pch_use_address. + * doc/hostconfig.texi (Host Common): Document + HOST_HOOKS_GT_PCH_GET_ADDRESS, HOST_HOOKS_GT_PCH_USE_ADDRESS. + * Makefile.in (c-pch.o): Depend on hosthooks.h. + (ggc-common.o): Likewise. + + * config/rs6000/host-darwin.c (HOST_HOOKS_GT_PCH_GET_ADDRESS): Define. + (HOST_HOOKS_GT_PCH_USE_ADDRESS): Define. + (pch_address_space): New. + (darwin_rs6000_gt_pch_get_address): New. + (darwin_rs6000_gt_pch_use_address): New. + +2003-07-29 Neil Booth + + PR preprocessor/11569 + PR preprocessor/11649 + * Makefile.in (LIBCPP_DEPS): Add HASHTAB_H. + * cppfiles.c: Completely rewritten. + * c-incpath.c (free_path, remove_duplicates, heads, tails, add_path): + struct cpp_path is now struct cpp_dir. + (remove_duplicates): Don't simplify path names. + * c-opts.c (c_common_parse_file): cpp_read_next_file renamed + cpp_stack_file. + * cpphash.h: Include hashtab.h. + (_cpp_file): Declare. + (struct cpp_buffer): struct include_file is now struct _cpp_file, + and struct cpp_path is now struct cpp_dir. Rename members. + (struct cpp_reader): Similarly. New members once_only_files, + file_hash, file_hash_entries, quote_ignores_source_dir, + no_search_path, saw_pragma_once. Remove all_include_files and + max_include_len. Make some members bool. + (_cpp_mark_only_only): Renamed from _cpp_never_reread. + (_cpp_stack_file): Renamed from _cpp_read_file. + (_cpp_stack_include): Renamed from _cpp_execute_include. + (_cpp_init_files): Renamed from _cpp_init_includes. + (_cpp_cleanup_files): Renamed from _cpp_cleanup_includes. + * cppinit.c (cpp_create_reader): Initialize no_search_path. Update. + (cpp_read_next_file): Rename and move to cppfiles.c. + (cpp_read_main_file): Update. + * cpplib.c (run_directive): Update for renamed members. + (do_include_common, _cpp_pop_buffer): Update. + (do_import): Undeprecate #import. + (do_pragma_once): Undeprecate. Use _cpp_mark_file_once_only. + * cpplib.h: Remove file_name_map_list. + (cpp_options): Remove map_list. + (cpp_dir): Rename from cpp_path. New datatype for name_map. + (cpp_set_include_chains, cpp_stack_file, cpp_included): Update. + +2003-07-29 Phil Edwards + + * Makefile.in: Make stamp-objdir safe for parallel builds. + +2003-07-29 Phil Edwards + + * Makefile.in (stmp-docobjdir): New target; ensure $docobjdir exists. + (info): Depend on stmp-docobjdir. + +2003-07-29 Rainer Orth + + * configure: Regenerate. + +2003-07-29 Jan Hubicka + + PR C++/11131 + * tree-inline.c (expand_call_inline): Always call inlinable_function_p + in !unit-at-a-time mode. + +2003-07-28 Geoffrey Keating + + * c-decl.c (c_expand_body_1): Use C_DECL_FILE_SCOPE to detect + main function. + +2003-07-28 Mark Mitchell + + PR c++/11667 + * c-common.c (shorten_compare): Take into account differences + between C and C++ representation for enumeration types. + * tree.h (set_min_and_max_values_for_integral_type): Declare. + * stor-layout.c (set_min_and_max_values_for_integral_type): New + function, broken out from ... + (fixup_signed_type): ... here and ... + (fixup_unsigned_type): ... here. + +2003-07-28 Zack Weinberg + + * c-decl.c: Update commentary, adjust blank lines throughout. + (struct c_scope): Fix indentation. Reorder members so + outer-context pointers come first, booleans last. + (duplicate_decls, define_label): Use a 'locus' variable for + diagnostic locations in a few more places. + (warn_if_shadowing): Un-split a conditional that fits on one line. + (c_init_decl_processing): No need to clear current_scope and + current_function_scope. + (start_decl): Merge if/else if statements with same action. + (push_parm_decl): Rename old_immediate_size_expand to use + save_foo convention; save/restore around entire function. + (grokdeclarator): Remove unnecessary braces. + +2003-07-28 Hans-Peter Nilsson + Michael Culbertson + + * c-parse.in (lineno_stmt_decl_or_labels_ending_decl): Also warn + when warn_declaration_after_statement. Call pedwarn_c90, not + pedwarn. Correct message: it's "ISO C90", not "ISO C89". + * c-common.c (warn_declaration_after_statement): Define. + * c-common.h (warn_declaration_after_statement): Declare. + * c.opt (Wdeclaration-after-statement): New. + * c-errors.c (pedwarn_c90): New function. + * c-opts.c (c_common_handle_option) : New. + * c-tree.h (pedwarn_c90): Declare. + * doc/invoke.texi (Option Summary): Document + -Wdeclaration-after-statement. + (Warning Options): Ditto. + +2003-07-28 Jan Hubicka + + * i386.md (memory attribute) Avoid accessing uninitialized memory + for ishift1 type instructions. + +2003-07-28 Jakub Jelinek + + * configure.in (--enable-checking): Add fold category. + (ENABLE_FOLD_CHECKING): Define if requested. + * configure: Rebuilt. + * config.in: Rebuilt. + * doc/install.texi: Document it. + * fold-const.c: Include md5.h. + [ENABLE_FOLD_CHECKING] (fold): Define to fold_1. + [ENABLE_FOLD_CHECKING] (fold, fold_checksum_tree, fold_check_failed, + print_fold_checksum): New functions. + + * fold-const.c (fold): Never modify argument passed to fold, instead + change a copy and return it. + * convert.c (convert_to_integer): Likewise. + +2003-07-27 Nathanael Nerode + + * fixinc/fixinc.svr4: Remove dead code. Remove now-unnecessary + cleanup of junk after #else and #endif directives. Collapse repeated + clauses into for statment. + + * fixinc/fixincl.sh: GNU C -> GCC. Add usage comment. + +2003-07-27 Zack Weinberg + + * c-decl.c (struct c_scope): Remove keep_if_subblocks field. + (keep_next_if_subblocks): Rename next_is_function_body. + (pushlevel): Adjust commentary. Always set ->keep on the + outermost level of a function. Don't set ->keep_if_subblocks. + (poplevel): Adjust commentary. Don't look at ->keep_if_subblocks. + (store_parm_decls): Adjust to match. + (finish_function): Adjust to match. + Call poplevel with all three arguments zero. + + * c-decl.c (store_parm_decls_newstyle, store_parm_decls_oldstyle): + New functions split out of store_parm_decls. + Avoid unnecessary work. Use local variables consistently. + (store_parm_decls): Likewise. + + (finish_function): No need to set functionbody flag on call to + poplevel. + (struct language_function): Remove scope field. + (c_push_function_context, c_pop_function_context): No need to + save and restore current_scope. + +2003-07-27 Nathan Sidwell + + * doc/extend.texi (Deprecated Features): Implicit typename is + gone. Default args on types is going. + +2003-07-26 J"orn Rennecke + + * Makefile.in (ifcvt.o): Depend on target.h + * ifcvt.c (target.h): Include. + (if_convert): Don't call mark_loop_exit_edges if we can't + modify jumps. + +2003-07-26 Gerald Pfeifer + + * doc/install.texi (Testing): Adjust required versions of DejaGnu. + +2003-07-26 Richard Henderson + + PR inline-asm/11676 + * cse.c (count_reg_usage): Handle asm_operands properly. + +2003-07-26 Roger Sayle + + * builtins.def (DEF_FALLBACK_BUILTIN): Delete. + (DEF_EXT_FALLBACK_BUILTIN): Delete. + (BUILT_IN_BZERO, BUILT_IN_BCOPY, BUILT_IN_BCMP): Declare using + the regular DEF_EXT_LIB_BUILTIN macro. + (BUILT_IN_FPUTC, BUILT_IN_FPUTS, BUILT_IN_FWRITE): Declare using + the regular DEF_LIB_BUILTIN macro. + (BUILT_IN_PUTCHAR_UNLOCKED, BUILT_IN_PUTS_UNLOCKED, + BUILT_IN_FPUTC_UNLOCKED, BUILT_IN_FPUTS_UNLOCKED, + BUILT_IN_FWRITE_UNLOCKED): Declare using the regular + DEF_EXT_LIB_BUILTIN macro. + + * c-decl.c (duplicate_decls): Remove code to handle builtin + functions prototyped without an argument list. + +2003-07-26 Danny Smith + + * config/i386/winnt.c: Revert 2003-07-08 change. + (i386_pe_section_type_flags): Remove error_with_decl here too. + +2003-07-26 Gabriel Dos Reis + + * config/arm/pe.c (arm_mark_dllimport): Don't use xxx_with_decl. + * config/mcore/mcore.c (mcore_mark_dllimport): Likewise. + * config/v850/v850.c (v850_handle_data_area_attribute): Likewise. + (v850_handle_data_area_attribute): Likewise. + +2003-07-26 Geoffrey Keating + + * varasm.c (output_constant_def_contents): Use + ASM_DECLARE_CONSTANT_NAME if defined. + * doc/tm.texi (Label Output): Document ASM_DECLARE_CONSTANT_NAME. + * config/darwin.h (ASM_DECLARE_OBJECT_NAME): Ensure zero-sized + objects get at least one byte to prevent assembler problems. + (ASM_DECLARE_CONSTANT_NAME): New. + + * Makefile.in (libbackend.o): Remove options_.h. + (mostlyclean): Likewise. + + * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Don't + insert a label at the end of an function under Mach-O. + + * c-decl.c (c_static_assembler_name): Remove TREE_STATIC test. + +2003-07-25 Aldy Hernandez + + * config/rs6000/rs6000.c (is_ev64_opaque_type): Only check pointer + equality. + (spe_init_builtins): Declare __ev64_opaque__ as a builtin type. + + * config/rs6000/spe.h: Remove __ev64_opaque__ definition. + +2003-07-25 Gabriel Dos Reis + + * doc/passes.texi (Passes): Mention pretty-printing and + diagnostic files. + +2003-07-25 Nathan Sidwell + + * doc/extend.texi (Function Attributes): GNU C++ does now allow + unused parameter decls. + (Attribute Syntax): GNU C++ does not allow label attributes to be + after the ':'. + +2003-07-25 Gabriel Dos Reis + + * objc/objc-act.c (objc_check_decl): Don't use xxx_with_decl. + (objc_declare_class): Likewise. + (error_with_ivar): Likewise. + (start_class): Likewise. + (warn_with_method): Likewise. + +2003-07-25 Gabriel Dos Reis + + Remove pedwarn_with_decl, warning_with_decl and error_with_decl + from GCC. + * calls.c (try_to_integrate): Don't use xxx_with_decl. + (expand_call): Likewise. + * dwarfout.c (output_reg_number): Likewise. + * expr.c (expand_expr): Likewise. + * function.c (assign_temp): Likewise. + (uninitialized_vars_warning): Likewise. + (setjmp_args_warning): Likewise. + (expand_function_end): Likewise. + * stmt.c (fixup_gotos): Likewise. + (warn_about_unused_variables): Likewise. + (expand_end_bindings): Likewise. + * stor-layout.c (layout_decl): Likewise. + (place_field): Likewise. + * toplev.c (check_global_declarations): Likewise. + (rest_of_handle_inlining): Likewise. + (default_tree_printer): New function. + (general_init): Initialize diagnostic machinery before routing + signals to the ICE machinery. Set default tree printer. + * toplev.h (pedwarn_with_decl): Remove declaration. + (warning_with_decl): Likewise. + (error_with_decl): Likewise. + (pedwarn): Remove attribute for the time being. + * tree-inline.c (expand_call_inline): Don't use xxx_with_decl. + * varasm.c (named_section): Likewise. + (make_decl_rtl): Likewise. + (assemble_variable): Likewise. + (merge_weak): Likewise. + (declare_weak): Likewise. + + * diagnostic.h: Move non-diagnostic stuff into pretty-print.h. + * diagnostic.c: Move non-diagnostic stuff into pretty-print.c. + (format_with_decl): Remove. + (diagnostic_for_decl): Likewise. + (pedwarn_with_decl): Likewise. + (warning_with_decl): Likewise. + (error_with_decl): Likewise. + (diagnostic_initialize): Adjust. + (diagnostic_count_diagnostic): Likewise. + (announce_function): Likewise. + (lhd_print_error_function): Likewise. + (diagnostic_report_current_module): Likewise. + (default_diagnostic_starter): Likewise. + (diagnostic_report_diagnostic): Likewise. + (default_diagnostic_finalizer): Likewise. + (verbatim): Likewise. + (error): Likewise. + (warning): Likewise. + * opts.c (common_handle_option): Likewise. + * pretty-print.c: New file. + * c-pretty-print.h (pp_base): Override. + * c-pretty-print.c: Adjust use of macros throughout. + (pp_buffer): New macro. + (pp_newline): Likewise. + * c-objc-common.c (c_tree_printer): Adjust prototype. Tidy. + * Makefile.in (DIAGNOSTIC_H): New variable. + (c-errors.o): Use it. + (c-objc-common.o): Likewise. + (c-common.o): Likewise. + (c-opts.o): Likewise. + (c-format.o): Likewise. + (diagnostic.o): Likewise. + (opts.o): Likewise. + (toplev.o): Likewise. + (rtl-error.o): Likewise. + (dwarf2out.o): Likewise. + (jump.o): Likewise. + (pretty-print.o): New rule. + +2003-07-24 Roger Sayle + + * builtins.def (BUILT_IN_PRINTF, BUILT_IN_FPRINTF): Changed from + front-end builtins to normal builtins, using DEF_LIB_BUILTIN. + (BUILT_IN_PRINTF_UNLOCKED, BUILT_IN_FPRINTF_UNLOCKED): Changed + from front-end to normal builtins, using DEF_EXT_LIB_BUILTIN. + (DEF_FRONT_END_LIB_BUILTIN): Delete. + (DEF_EXT_FRONT_END_LIB_BUILTIN): Delete. + (BUILT_IN_FWRITE_UNLOCKED): Wrap long line. + + * builtins.c (build_string_literal): New function to construct + a char* pointer to a string literal. + (expand_builtin_fputs): Change 2nd argument from "int ignore" to + "rtx target" to be consistent with other expand_builtin_* functions. + Change 3rd argument from "int unlocked" to "bool unlocked". + (expand_builtin_printf): Rewrite of c_expand_builtin_printf from + c-common.c to avoid front-end dependencies. Optimize printf("") + as a no-op when the result isn't required. Handle embedded NULs + in format string. + (expand_builtin_fprintf): A rewrite of c_expand_builtin_fprintf + from c-common.c to avoid front-end dependencies. Likewise, optimize + fprintf(fp,"") as a no-op when the result isn't required, evaluating + fp for side-effects. Handle embedded NULs in format string. + (expand_builtin_sprintf): Fix typo. + (expand_builtin): Don't expand BUILT_IN_FPRINT{,_UNLOCKED} when not + optimizing. Adjust calls of expand_builtin_fputs to match the API + change. Expand BUILT_IN_PRINTF and BUILT_IN_PRINTF_UNLOCKED using + expand_builtin_printf. Likewise, expand BUILT_IN_FPRINTF_UNLOCKED + and BUILT_IN_FPRINTF using expand_builtin_fprintf. + + * c-common.c (is_valid_printf_arglist): Delete. + (c_expand_builtin): Delete. + (c_expand_builtin_printf): Moved to builtins.c. Delete. + (c_expand_builtin_fprintf): Moved to builtins.c. Delete. + (c_expand_expr): No longer treat CALL_EXPRs specially. + (CALLED_AS_BUILT_IN): Delete. + +2003-07-24 Zdenek Dvorak + + PR optimization/11631 + * gcse.c (store_motion): Connect infinite loops to exit. + +2003-07-24 Jason Merrill + + * tree.h (boolean_type_node): Move from C/C++/Java frontends. + (boolean_true_node, boolean_false_node): Likewise. + (enum tree_index): Add TI_BOOLEAN_{TYPE,FALSE,TRUE}. + * tree.c (build_common_tree_nodes): Init boolean_type_node. + (build_common_tree_nodes_2): Init boolean_{true,false}_node. + * stor-layout.c (set_sizetype): Handle an early BOOLEAN_TYPE. + * c-common.h (truthvalue_type_node): Renamed from boolean_type_node. + (truthvalue_true_node): Renamed from boolean_true_node. + (truthvalue_false_node): Renamed from boolean_false_node. + * c-decl.c: Just set truthvalue_* to integer_*. + * c-*.[ch]: s/boolean/truthvalue/. s/c_bool/boolean/. + +2003-07-24 Roger Sayle + + * c-decl.c (match_builtin_function_types): New subroutine of + duplicate_decls to test whether a redeclaration of a builtin + function is suitably close, i.e. the return type and all of + the argument types have the same modes as the builtin expects. + (duplicate_decls): Fuzzy type matching for builtin functions + moved to match_builtin_function_types. + +2003-07-24 Zdenek Dvorak + + * cfgloopmanip.c (duplicate_loop_to_header_edge): Update irreducible + flag correctly. + +2003-07-24 Zack Weinberg + + * c-decl.c: Search-and-replace change 'binding level' to + 'scope' in commentary. + (struct binding_level): Now struct c_scope. + (current_binding_level): Now current_scope. + (free_binding_level): Now scope_freelist. + (current_function_level): Now current_function_scope. + (global_binding_level): Now global_scope. + (make_binding_level): Now make_scope. + (pop_binding_level): Now pop_scope. + +2003-07-24 Rainer Orth + + * configure.in (libgcc_visibility): Add missing whitespace. + +2003-07-24 Richard Henderson + + * libgcc-std.ver (GCC_3.3.1): Export __gcc_personality_sj0, + __gcc_personality_v0. + +2003-07-24 Rainer Orth + + * Makefile.in: Replace pwd by ${PWD_COMMAND}. + +2003-07-24 Nathan Sidwell + + * doc/invoke.texi (-fprofile-arcs, -ftest-coverage): Update + documentation missed from my 2003-07-09 patch. + +2003-07-24 Nathanael Nerode + + * aclocal.m4 (_gcc_COMPUTE_GAS_VERSION): Set patch level to 0 if + it's not provided. + * configure: Rebuild. + +2003-07-24 Steven Bosscher + + PR c/10602 + * c-typeck.c (type_lists_compatible_p): Do not compare + arguments if one of them is an error_mark_node + +2003-07-24 Alan Modra + + * config/rs6000/rs6000.c (rs6000_emit_prologue): Save fp regs inline + if current_function_calls_eh_return. + +2003-07-23 Mark Mitchell + + * doc/c-tree.texi (OFFSET_TYPE): Update description. + +2003-07-23 Bob Wilson + + * config/xtensa/crti.asm (_init, _fini): Increase frame size to 64. + * config/xtensa/lib1funcs.asm (__mulsi3, __udivsi3, __divsi3, + __umodsi3, __modsi3): Increase frame size to 32. + +2003-07-23 Geoffrey Keating + + * config/rs6000/host-darwin.c: ANSIfy, update comment for sigaltstack + prototype. + +2003-07-23 Mark Mitchell + + * doc/c-tree.texi (Types): Update documentation for OFFSET_TYPE. + + PR optimization/10679 + * tree-inline.c (inlinable_function_p): Honor MIN_INLINE_INSNS. + +2003-07-23 John David Anglin + + PR target/11607 and PR target/11516 + * pa.md (extzv, extv, insv): Revert latter half of last patch. + +2003-07-22 Mark Mitchell + + * fold-const.c (force_fit_type): Handle OFFSET_TYPE. + * varasam.c (output_constant): Likewise. + +2003-07-22 Kazu Hirata + + * alias.c: Fix comment formatting. + * c-common.c: Likewise. + * c-decl.c: Likewise. + * c-opts.c: Likewise. + * combine.c: Likewise. + * cpplib.c: Likewise. + * diagnostic.c: Likewise. + * dojump.c: Likewise. + * final.c: Likewise. + * fold-const.c: Likewise. + * gcc.c: Likewise. + * gcse.c: Likewise. + * ggc-page.c: Likewise. + * jump.c: Likewise. + * loop.c: Likewise. + * mips-tfile.c: Likewise. + * recog.c: Likewise. + * regclass.c: Likewise. + * regmove.c: Likewise. + * tree.c: Likewise. + * tree.h: Likewise. + +2003-07-22 Per Bothner + + * line-map.c (add_line_map): Handle invalid LEAVE request. + Fixes PR preprocessor/11361. + +2003-07-22 Per Bothner + + * diagnostic.c.(diagnostic_report_current_module): Update to match + 2003-06-05 changes to push_srcloc and pop_srcloc. + +2003-07-22 Wolfgang Bangerth + + * doc/trouble.texi: Better document two-stage name lookup. + +2003-07-22 Eric Christopher + + * config/s390.c (s390_valid_pointer_mode): New. + (TARGET_VALID_POINTER_MODE): Use. + (s390_emit_prologue): Add tpf profiling hooks. + (s390_emit_epilogue): Ditto. + * config/s390.h (MASK_TPF): New. + (TARGET_TPF): Use. + (POINTERS_EXTEND_UNSIGNED): Define. + * config/s390.md (ptr_extend): New pattern. + +2003-07-22 Zack Weinberg + + * hashtable.c (approx_sqrt): Make static. + * hashtable.h: Don't prototype approx_sqrt. + * line-map.c (init_line_maps): Rename linemap_init. + (free_line_maps): Rename linemap_free. + (add_line_map): Rename linemap_add. + (lookup_line): Rename linemap_lookup. + (print_containing_files): Rename linemap_print_containing_files. + * linemap.h: Update to match. + + * cpperror.c, cppinit.c, cpplib.c, cppmacro.c: Update calls to + linemap routines to use new names. + +2003-07-16 Nathan Sidwell + + * c-common.c (handle_packed_attribute): Don't pack a struct via a + typedef. Propagate packedness from a main variant. + +2003-07-22 Nathanael Nerode + + * Makefile.in (install-common): Add dependency on installdirs. + +2003-07-21 Alexandre Oliva + + * c-common.c (c_common_type_for_mode): Return integer types for + pointer modes. + +2003-07-22 Geoffrey Keating + + * c-decl.c (start_decl): Don't call maybe_apply_pragma_weak here. + (finish_decl): Call maybe_apply_pragma_weak here. + (grokdeclarator): Check that DECL_ASSEMBLER_NAME isn't set before + TREE_PUBLIC and TREE_STATIC are decided. + (start_function): Move call to maybe_apply_pragma_weak. Check that + DECL_ASSEMBLER_NAME isn't set too early. + + * cpplex.c (_cpp_process_line_notes): Mention option name in + trigraphs warning. + +2003-07-22 Kazu Hirata + + * combine.c (if_then_else_cond): Simplify the comparison of + rtx against -1, 0, and 1. + * loop.c (check_dbra_loop): Likewise. + * optabs.c (emit_conditional_move): Likewise. + (emit_conditional_add): Likewise. + * config/i386/i386.md (*movsi_or): Likewise. + (*movdi_or_rex6): Likewise. + +2003-07-22 Jan Hubicka + + * cgraphunit.c (cgraph_finalize_compilation_unit): Remove redundant if. + +2003-07-21 Neil Booth + + * cppfiles.c (open_file_pch): Don't put unused entries in the + splay tree. Remove dead code. + +2003-07-21 Geoffrey Keating + + * c-common.h (num_in_fnames): Declare. + (c_static_assembler_name): Move from here... + * c-tree.h (c_static_assembler_name): ... to here. + * c-opts.c: Don't include langhooks-def.h. + (c_static_assembler_name): Move to c-decl.c. + (num_in_fnames): Make externally visible. + * c-decl.c: Include langhooks-def.h. + (c_static_assembler_name): Move from c-opts.c. + * Makefile.in (c-decl.o): Add $(LANGHOOKS_DEF_H). + (c-opts.o): Remove $(LANGHOOKS_DEF_H). + + * c-pragma.c (maybe_apply_pragma_weak): Don't get DECL_ASSEMBLER_NAME + when it's not needed. + +2003-07-21 Jakub Jelinek + + * config/rs6000/rs6000.h (machine_function): Add ra_need_lr. + * config/rs6000/rs6000.c (rs6000_return_addr): Set it. + (rs6000_emit_prologue): Save FPRs inline if set. + +2003-07-21 H.J. Lu + + * config/ia64/ia64.md (prefetch): Support predicate. + +2003-07-21 Josef Zlomek + + * cfgcleanup.c (merge_blocks_move_successor_nojumps): Use tablejump_p. + * rtlanal.c (tablejump_p): Use next_active_insn for finding the jump + table. + +2003-07-17 Eric Botcazou + + PR optimization/11536 + * unroll.c (loop_iterations): Do not replace a register holding + the final value by its equivalent before the loop if it is not + invariant. + +2003-07-21 Dave Fluri + + * doc/extend.texi: Fixes to spelling, grammar, and diction. + +2003-07-21 Ben Elliston + + * doc/invoke.texi (Optimize Options): Replace "it's" with "its". + (V850 Options): Spelling fixes. + +2003-07-20 Lisa M. Goldstein + + * doc/invoke.texi: Fixes to style, grammar and diction. + +2003-07-20 Roger Sayle + + * builtins.def (BUILT_IN_ALLOCA): Remove "#if SMALL_STACK" form. + * system.h (SMALL_STACK): Poison obsolete target macro. + * doc/tm.texi (SMALL_STACK): Remove target macro documentation. + +2003-07-20 Phil Edwards + + * configure.in: Cache the results of testing for cmp's capabilities. + * configure: Regenerate. + +2003-07-20 Mark Mitchell + + PR debug/11279 + * dwarf2out.c (gen_enumeration_type_die): Remember that + enumerators can be unsigned. + +2003-07-19 Zack Weinberg + + * c-decl.c (named_labels, shadowed_labels, label_level_chain) + (push_label_level, pop_label_level): Kill. + (struct binding_level): Rename level_chain to outer. + Add outer_function field. Change parm_flag, function_body, + keep, keep_if_subblocks to 1-bit bitfields of type bool. + (current_function_level): New variable. + (keep_next_level_flag, keep_next_if_subblocks): Change type to bool. + (keep_next_level, declare_parm_level, warn_if_shadowing): + Update to match. + (struct language_function): Kill named_labels, shadowed_labels fields. + (c_init_decl_processing, start_function, c_push__function_context) + (c_pop_function_context): No need to muck with named_labels nor + shadowed_labels. + + (make_binding_level): No need to clear the structure here. + (pop_binding_level): Always operate on current_binding_level. + Update current_function_level if necessary. + (pushlevel): Don't clear named_labels. Update current_function_level + if necessary. Use "true" and "false" where appropriate. + (poplevel): Diagnose labels defined but not used, or vice + versa, and clear out label-meanings leaving scope, while + walking down the decls list, for all binding levels. + Handle LABEL_DECLs appearing in the shadowed list. + pop_binding_level takes no arguments. + (pushdecl_function_level): Use current_function_level. + + (make_label, bind_label): New static functions. + (declare_label): New exported function. + (lookup_label, define_label): Rewritten for new data structure. + (shadow_label): Kill. + + * c-tree.h: Prototype declare_label; don't prototype + push_label_level, pop_label_level, nor shadow_label. + * c-parse.in: Remove all calls to push_label_level and + pop_label_level. Use declare_label for __label__ decls. + + * doc/extend.texi: Clarify that __label__ can be used to + declare labels with local scope in any nested block, not + just statement expressions. Cross-reference nested functions + section from local labels section. + +2003-07-19 Zdenek Dvorak + + * sched-rgn.c (find_rgns): Initialize current_edge correctly. + +2003-07-19 Phil Edwards + + * doc/makefile.texi (restrap, profiledbootstrap): Document targets. + +2003-07-19 Kaveh R. Ghazi + + * fixinc/fixfixes.c fixinc/fixincl.c fixinc/fixlib.c + fixinc/server.c objc/objc-act.c: Remove unnecessary casts. + +2003-07-19 Ulrich Weigand + + * config/s390/s390.c (legitimize_pic_address): Access local symbols + relative to the GOT instead of relative to the literal pool base. + (s390_output_symbolic_const): Handle new GOT-relative accesses. + * config/s390/s390.md ("call"): Access local functions and PLT stubs + relative to the GOT instead of relative to the literal pool base. + ("call_value"): Likewise. + ("call_value_tls"): Likewise. + + * config/s390/s390.c (s390_chunkify_start): Remove pool anchor + reloading. Support LTREL_BASE / LTREL_OFFSET construct. + (s390_chunkify_finish): Likewise. + (s390_chunkify_cancel): Likewise. + (s390_reorg): Adapt caller. + (find_base_register_in_addr, + find_base_register_ref, replace_base_register_ref): Delete. + (find_ltrel_base, replace_ltrel_base): New functions. + (find_constant_pool_ref): Handle LTREL_BASE unspecs. + (s390_decompose_address): Handle LTREL_BASE unspecs. Optimize + base vs. index register usage. + (struct constant_pool): Remove 'anchor'. + (s390_add_anchor): Delete. + (s390_dump_pool): Remove anchor handling. + * config/s390/s390.md ("reload_anchor"): Remove. + + * config/s390/s390.c (s390_split_branches): Use LTREL_BASE/OFFSET. + (s390_load_got): New function. Use LTREL_BASE/OFFSET. + (s390_emit_prologue): Use it. + * config/s390/s390.md ("builtin_longjmp", "builtin_setjmp_setup", + "builtin_setjmp_receiver"): Cleanup. Use s390_load_got. Do not + hard-code register 14. + * config/s390/s390-protos.h (s390_load_got): Declare. + + * config/s390/s390.c (NR_C_MODES, constant_modes, gen_consttable): + Support TImode constants. + * config/s390/s390.md ("consttable_ti"): New. + ("consttable_si", "consttable_di"): Handle TLS symbols correctly. + + * config/s390/s390.md (UNSPEC_LTREL_OFFSET, UNSPEC_LTREL_BASE, + UNSPEC_GOTENT, UNSPEC_GOT, UNSPEC_GOTOFF, UNSPEC_PLT, UNSPEC_PLTOFF, + UNSPEC_RELOAD_BASE, UNSPECV_POOL, UNSPECV_POOL_START, UNSPECV_POOL_END, + UNSPECV_POOL_QI, UNSPECV_POOL_HI, UNSPECV_POOL_SI, UNSPECV_POOL_DI, + UNSPECV_POOL_TI, UNSPECV_POOL_SF, UNSPECV_POOL_DF, UNSPECV_MAIN_POOL): + New symbolic constants. + ("consttable_qi", "consttable_hi", "consttable_si", "consttable_di", + "consttable_sf", "consttable_df", "pool_start_31", "pool_end_31", + "pool_start_64", "pool_end_64", "reload_base_31", "reload_base_64", + "pool", "literal_pool_31", "literal_pool_64"): Cleanup. Use + symbolic UNSPEC values. + * config/s390/s390.c (larl_operand, s390_short_displacement, + bras_sym_operand, s390_cannot_force_const_mem, + s390_delegitimize_address, s390_decompose_address, + legitimize_pic_address, s390_output_symbolic_const, + s390_function_profiler): Use symbolic UNSPEC values. + +2003-07-19 Kaveh R. Ghazi + + * alias.c alloc-pool.c bitmap.c bitmap.h bt-load.c builtins.c + c-common.c c-decl.c c-incpath.c c-lex.c c-opts.c c-parse.in + c-pragma.c c-typeck.c calls.c cfg.c cfganal.c cfgloop.c cfgrtl.c + collect2.c combine.c conflict.c coverage.c cppexp.c cppfiles.c + cpphash.c cppinit.c cpplex.c cpplib.c cppmacro.c cppspec.c + cpptrad.c cse.c cselib.c dbxout.c defaults.h df.c dominance.c + dwarf2out.c dwarfout.c emit-rtl.c except.c expmed.c expr.c final.c + fix-header.c flow.c fold-const.c function.c gcc.c gccspec.c gcov.c + gcse.c genattr.c genattrtab.c genautomata.c genconditions.c + genemit.c genextract.c genoutput.c genrecog.c gensupport.c + ggc-page.c ggc-simple.c global.c graph.c haifa-sched.c hashtable.c + integrate.c jump.c langhooks.c lcm.c line-map.c local-alloc.c + loop.c mips-tdump.c mips-tfile.c mkdeps.c optabs.c params.c + postreload.c prefix.c print-tree.c protoize.c ra-build.c + ra-colorize.c ra-rewrite.c ra.c recog.c reg-stack.c regclass.c + regmove.c regrename.c reload.c reload1.c reorg.c resource.c + sbitmap.c sched-deps.c sched-rgn.c sched-vis.c sdbout.c + simplify-rtx.c ssa-ccp.c ssa.c stmt.c stor-layout.c timevar.c + tlink.c toplev.c tree-dump.c tree.c unroll.c unwind-dw2-fde.c + varasm.c varray.c vmsdbgout.c xcoffout.c: Remove unnecessary + casts. + +2003-07-19 Gabriel Dos Reis + + * c-pragma.c (apply_pragma_weak): Don't use warning_with_decl. + * toplev.h (warning): Remove attribute. + +2003-07-19 Gabriel Dos Reis + + * c-decl.c (c_finish_incomplete_decl): Don't use xxx_with_decl. + (pop_label_level): Likewise. + (duplicate_decls): Likewise. + (implicitly_declare): Likewise. + (shadow_label): Likewise. + (start_decl): Likewise. + (finish_decl): Likewise. + (grokdeclarator): Likewise. + (get_parm_info): Likewise. + (detect_field_duplicates): Likewise. + (finish_struct): Likewise. + (start_function): Likewise. + (store_parm_decls): Likewise. + (finish_function): Likewise. + (c_expand_body_1): Likewise. + (check_for_loop_decls): Likewise. + (merge_translation_unit_decls): Likewise. + +2003-07-19 Neil Booth + + * common.opt: Document --param. + * opts.c (columns, undocumented_msg): New. + (print_help): Get number of columns from environment. Print + --param help. Tweak newline handling. + (print_param_help): New. + (print_filtered_help): Better handling of duplicates. Complain + about undocumented switches. + (print_switch): New. + (wrap_help): Improve wrapping, use COLUMNS. + * opts.sh: Ignore comments in records. + * params.def: Fix typos and remove trailing periods. + * toplev.c (display_help): Don't dump --param help. + * doc/sourcebuild.texi: Update. + +2003-07-18 Richard Henderson + + PR target/11556 + * optabs.c (prepare_operand): Fail gracefully instead of abort + if the predicate doesn't satisfy. + (gen_cond_trap): Allow prepare_operand to fail. + +2003-07-19 Gabriel Dos Reis + + * c-common.c: Don't undefine GCC_DIAG_STYLE. + (fname_decl): Don't use xxx_with_decl. + (c_add_case_label): Likewise. + (handle_section_attribute): Likewise. + (handle_alias_attribute): Likewise. + (handle_no_instrument_function_attribute): Likewise. + (handle_no_limit_stack_attribute): Likewise. + * c-objc-common.c (c_tree_printer): Print IDENTIFIER_NODEs. + * c-format.c (gcc_cdiag_char_table): Add '%E' format-specifier. + +2003-07-19 Zdenek Dvorak + + * Makefile.in (ifcvt.o): Add cfgloop.h. + * basic-block.h (EDGE_LOOP_EXIT): New flag. + * cfgrtl.c (rtl_verify_flow_info_1): Handle it correctly. + * ifcvt.c: Include cfgloop.h. + (mark_loop_exit_edges): New static function. + (if_convert): Call it. + (find_if_header): Ignore branches out of loops. + +2003-07-18 Kazu Hirata + + * combine.c (simplify_comparison): Don't share rtx when converting + (ne (and (not X) 1) 0) to (eq (and X 1) 0). + +2003-07-18 David Edelsohn + + * config/rs6000/aix.h (AGGREGATE_PADDING_FIXED): Define. + (AGGREGATES_PAD_UPWARD_ALWAYS): Define. + (MUST_PASS_IN_STACK): Define. + (BLOCK_REG_PADDING): Define. + +2003-07-18 Richard Henderson + + * cfgrtl.c (force_nonfallthru_and_redirect): Use tablejump_p + to skip the addr_vec. + +2003-07-18 Alexandre Oliva + + * combine.c (combinable_i3pat): Don't forbid occurrences of + i2dest or i1dest in inner_dest if inner_dest is a mem. + +2003-07-18 Jan Hubicka + + * cgraph.c (cgraph_remove_node): Clear the hash table slot. + +2003-07-17 Jakub Jelinek + + PR target/11087 + * loop.c (basic_induction_var): Check if convert_modes emitted any + instructions. Remove them and return 0 if so. + +2003-07-18 Eric Botcazou + + PR optimization/11083 + * toplev.c (rest_of_handle_addresof): Rename into + rest_of_handle_addressof. Delete unreachable blocks + if dead edges were purged after the addressof pass. + +2003-07-18 Neil Booth + + * Makefile.in, configure, configure.in: Remove handling of + lang-options.h and options_.h. + * toplev.c (struct lang_opt, documented_lang_options): Remove. + (display_help): Don't use documented_lang_options. + +2003-07-17 Zack Weinberg + + * c-decl.c (pushdecl_function_level): Make static, return nothing. + (kept_level_p): Fold into poplevel. + (undeclared_variable): Moved here from c-typeck.c. Export. + * c-tree.h (KEEP_YES, KEEP_NO, KEEP_MAYBE): New #defines. + (undeclared_variable): Prototype here. Don't prototype + kept_level_p nor pushdecl_function_level. + * c-parse.in: Change first argument to poplevel from + "kept_level_p()" to "KEEP_MAYBE". + * c-typeck.c (undeclared_variable): Moved to c-decl.c. + +2003-07-17 Roger Sayle + + * simplify-rtx.c (simplify_rtx): Use simplify_gen_binary to swap + commutative operands instead of modifying the RTL in-place. + +2003-07-17 Mark Mitchell + + PR optimization/11557 + * calls.c (flags_from_decl_or_type): Do not set ECF_LIBCALL_BLOCK + unless we know which function is being called. + +2003-07-17 Roger Sayle + + * cse.c (fold_rtx): Use swap_commutative_operands_p to determine + whether to reorder the operands of a commutative binary operator. + +2003-07-17 Roger Sayle + + * fold-const.c (const_binop): Avoid performing the FP operation at + compile-time, if either operand is NaN and we honor signaling NaNs, + or if we're dividing by zero and either flag_trapping_math is set + or the desired mode doesn't support infinities. + (fold_initializer): New function to fold an expression ignoring any + potential run-time exceptions or traps. + * tree.h (fold_initializer): Prototype here. + * c-typeck.c (build_binary_op): Move to the end of the file so + that intializer_stack is in scope. If constructing an initializer, + i.e. when initializer_stack is not NULL, use fold_initializer to + fold expressions. + * simplify-rtx.c (simplify_binary_operation): Likewise, avoid + performing FP operations at compile-time, if they would raise an + exception at run-time. + +2003-07-17 Geoffrey Keating + + PR 11498 + * Makefile.in (c-opts.o): Add $(LANGHOOKS_DEF_H). + (langhooks.o): Add $(GGC_H), gt-langhooks.h. + (GTFILES): Add langhooks.c. + (gt-langhooks.h): New. + * c-common.h (c_static_assembler_name): Prototype. + * c-lang.c (LANG_HOOKS_SET_DECL_ASSEMBLER_NAME): Define. + * objc/objc-lang.c (LANG_HOOKS_SET_DECL_ASSEMBLER_NAME): Define. + * c-opts.c: Include langhooks-def.h. + (c_static_assembler_name): New. + * langhooks.c: Include ggc.h. Include gt-langhooks.h. + (var_labelno): New. + (lhd_set_decl_assembler_name): Give static objects with context + unique names. + * varasm.c (var_labelno): Delete. + (make_decl_rtl): Don't change the assembler name once it's set. + + * c-opts.c (this_input_filename): New. + (finish_options): Take new parameter, name of file being compiled. + Update callers. Set this_input_filename. + (push_command_line_include): Use this_input_filename not + main_input_filename. + +2003-07-17 Neil Booth + + * Makefile.in: Depend .pot generation on options.c. + * po/exgettext: Add an extra_files variable containing additional + files to scan. + +2003-07-17 Zack Weinberg + + * objc/objc-lang.c: Override LANG_HOOKS_WRITE_GLOBALS to + c_write_global_declarations. + + * c-decl.c: Fix typos in several comments. Remove all + #if 0 blocks; reindent as needed. Remove unused argument + to declare_parm_level; all callers changed. + * c-parse.in: Update calls to declare_parm_level. Avoid + issuing a double warning in some circumstances. + * c-typeck.c: Update calls to declare_parm_level. + * c-tree.h: Update prototype of declare_parm_level. + + * c-pragma.c (apply_pragma_weak): Don't complain about a + redundant #pragma weak. + + * objc/objc-act.c (forward_declare_categories, + build_selector_reference_decl, build_class_reference_decl, + build_objc_string_decl, synth_forward_declarations, + build_protocol_reference): Set TREE_PUBLIC on synthetic + forward decl to 0, consistent with eventual definition. + Correct comments to match. + + * fixinc/inclhack.def (solaris_mutex_init_2): Escape braces + in regexp that don't form a range expression. + * fixinc/fixincl.def: Regenerate. + +2003-07-17 Richard Henderson + + PR target/10907 + * config/ia64/ia64.c (ia64_epilogue_uses): GP is live at end + even with !TARGET_CONST_GP. + (ia64_function_ok_for_sibcall): Reject non-local functions. + +2003-07-17 Steven Bosscher + + * c-common.c (c_estimate_num_insns_1): Don't handle + METHOD_CALL_EXPR. + * expr.c (safe_from_p): Likewise. + * gengtype.c (adjust_field_tree_exp): Likewise. + * stmt.c (warn_if_unused_value): Likewise + * tree.c (first_rtl_op): Likewise. + * tree.def: Don't define METHOD_CALL_EXPR. + * java/lang.c (java_estimate_num_insns_1): Don't handle + METHOD_CALL_EXPR. + +2003-07-17 Eric Botcazou + + PR other/11466 + * doc/invoke.texi (SPARC Options): Document "-mlittle-endian" + and its restrictions for the SPARC64 port. + Move the entry of "-mimpure-text" before that of "-mv8". + +2003-07-17 Eric Botcazou + Phil Edwards + + * doc/install.texi (*-*-solaris2*): Document the step-by-step + procedure to bootstrap and install. + Document the preference for the legacy Sun tools in /usr/bin + over the POSIX tools in /usr/xpg4/bin for the build process. + +2003-07-17 Neil Booth + + * c.opt: Document Uncodumented; use it. Document ObjC options. + * opts.c (print_filtered_help): Skip undocumented switches. + * opts.h (CL_UNDOCUMENTED): New. + * opts.sh: Handle Undocumented. + * toplev.c (documented_lang_options): Prevent its becoming empty. +objc: + * lang-options.h: Remove. + +2003-07-16 Ulrich Weigand + + * loop.c (check_ext_dependent_givs): Pass const struct loop * + instead of struct loop_info * as argument. Accept BIVs with + increment +/- 1 provided there is a friendly exit test against + a loop-invariant value. + (strength_reduce): Adapt call to check_ext_dependent_givs. + +2003-07-16 J"orn Rennecke + Con Bradley + + * sh-protos.h (sh_get_pr_initial_val): Declare. + * sh.c (regno_reg_class): Make its elements type enum reg_class. + (output_stack_adjust): Remove emit_fn argument. Add epilogue_p + and live_regs_mask arguments. Changed all callers. + (save_schedule_s): New structure. + (save_schedule): New typedef. + (scavenge_reg, sh5_schedule_saves, sh5_schedule_saves): New functions. + (calc_live_regs): For TARGET_SHMEDIA, use leaf_function_p. + In interrupts handlers, also save registers that are usually + partially saved, and make sure there is at least one general purpose + register saved if a target register needs saving. + Add casts in comparisons to avoid warnings. + (sh_media_register_for_return): return -1 for interrupt handlers. + (MAX_SAVED_REGS, MAX_TEMPS): New defines. + (sh_expand_prologue): Use sh5_schedule_saves. Check that any temp + registers used are available. + Set RTX_FRAME_RELATED_P where appropriate. + Add an REG_FRAME_RELATED_EXPR for r0 + offset addressing. + (sh_expand_epilogue, sh_set_return_address): Use sh5_schedule_saves. + (initial_elimination_offset): Likewise. + * sh.h (DWARF_CIE_DATA_ALIGNMENT): Set to -4. + (LOCAL_ALIGNMENT, GENERAL_REGISTER_P): Add casts to avoid warnings. + (FP_REGISTER_P): Add casts to fix broken handling of unsigned REGNO. + (XD_REGISTER_P, TARGET_REGISTER_P): Likewise. + (HARD_REGNO_CALL_PART_CLOBBERED): Also yield nonzero for r15, + and for target registers. + (RETURN_IN_MEMORY): Add parentheses to avoid warnings. + (regno_reg_class): Make its elements type enum reg_class. + (CONSTRAINT_LEN): Don't use isdigit. + (FUNCTION_ARG_REGNO_P): Add casts to avoid warnings. + (FUNCTION_ARG): Add parentheses to avoid warnings. + (RETURN_ADDR_RTX): Use sh_get_pr_initial_val. + (RETURN_ADDR_OFFSET): Define to -1 for TARGET_SH5. + (SH_DBX_REGISTER_NUMBER): Add casts to avoid warnings. + (EH_RETURN_DATA_REGNO): Use unsigned constants to avoid warnings. + * sh.md (xordi3+1): Remove unused variable regno. + (return_media): Check that tr0 is available before using it. + +2003-07-16 Neil Booth + + * c.opt: Document more options. + +2003-07-16 Roger Sayle + + * combine.c (subst): Also handle (subreg (const_double ...)) case + if created by a substitution, by using the original inner mode. + +2003-07-16 Roger Sayle + + * simplify-rtx.c (simplify_replace_rtx): Convert constant comparisons + to MODE_FLOAT constants if FLOAT_STORE_FLAG_VALUE is defined. + (simplify_rtx): Likewise. Simplify (lo_sum (high X) X) as X. + +2003-07-16 Andrew Pinski + + * doc/install.texi (--without-headers): New. + + Partial Fix PR/10129 + * config/darwin.c (machopic_function_base_name): Only Return "". + (machopic_output_function_base_name): New; print the true pic label. + (machopic_classify_ident): Pic Base is always a defined data. + * config/darwin.h (ASM_OUTPUT_LABELREF): Support the pic base label. + * config/darwin-proto.h (machopic_output_function_base_name): Prototype. + + * gcse.c (gcse_constant_p): COMPARE of the same registers is a constant + if they are not floating point registers. + + PR c/10962 + * ggc.h: Add header guards. + * c-decl.c (finish_struct): Sort fields if + number greater than 15 and there are no + anonymous structs/unions. + * c-common.h: Include ggc.h. + (sorted_fields_type): New struct. + (field_decl_cmp): New prototype. + (resort_sorted_fields): New prototype. + (DECL_DECLARES_TYPE_NON_TEMPLATE_P): New macro. + * c-tree.h: (lang_type): Use pointer to sorted_fields_type + as s, removing other fields. + * c-typeck.c (lookup_field): Use s in lang_type. + These were mostly moved from cp/class.c: + * c-common.c (field_decl_cmp): New static function. + (field_decl_cmp): New function. + (resort_sorted_fields): New function. + +2003-07-16 Geoffrey Keating + + * config/darwin.c (machopic_select_section): Use decl_readonly_section + to do most of the work. + +2003-07-16 Hans-Peter Nilsson + + * config/mmix/mmix-protos.h: Convert prototypes to ISO C90. + * config/mmix/mmix.c: Convert functions to ISO C90. + (mmix_eh_return_handler_rtx, mmix_output_shifted_value): Tweak + formatting. + (mmix_get_hard_reg_initial_val): Tweak section head comment. + +2003-07-16 J"orn Rennecke + + * c-pragma.h (HANDLE_PRAGMA_WEAK): Always define to SUPPORTS_WEAK. + +2003-07-16 Jakub Jelinek + + * unwind-dw2.c (MD_FROB_UPDATE_CONTEXT): Define. + (uw_update_context_1): Use it. + * config/rs6000/rs6000.c (insn_after_throw): Remove. + (rs6000_aix_emit_builtin_unwind_init): Save $r2 to its location + in parent frame if _Unwind_* called directly instead of through + .plt. + (rs6000_emit_eh_toc_restore): Remove. + (rs6000_emit_prologue): Update stack pointer before doing any saving + if current_function_calls_eh_return. Generate unwind info for $r2. + (rs6000_emit_epilogue): Restore stack pointer after doing all + restoring if current_function_calls_eh_return. Restore $r2. + * config/rs6000/rs6000-protos.h (rs6000_emit_eh_toc_restore): Remove. + * config/rs6000/rs6000.md (eh_return): Remove call to + rs6000_emit_eh_toc_restore. + * config/rs6000/linux64.h (MD_FROB_UPDATE_CONTEXT): Define. + * config/rs6000/aix.h (MD_FROB_UPDATE_CONTEXT): Define. + +2003-07-15 Jakub Jelinek + + * expr.c (emit_block_move): Don't move anything if size is const 0. + (clear_storage): Test against const0_rtx instead of comparing INTVAL + against 0. + +2003-07-15 David S. Miller + + * config/sparc/sparc.c (sparc_nonflat_function_epilogue): Only + emit nop if the last real insn is CALL_INSN. + +2003-07-16 Danny Smith + + * config/i386/xm-mingw32.h (HOST_BIT_BUCKET): Define + as "nul". + * config/i386/xm-mingw32.h: Change GNU CC to GCC. + +2003-07-16 Danny Smith + + * config/i386/winnt.c (associated_type): Artificial methods are not + affected by the import/export status of their class unless they are + COMDAT. + (i386_pe_dllimport_p): Do not mark artificial methods as dllimport. + + * config/i386/winnt.c: Fix GCC copyright comment. + +2003-07-16 Gabriel Dos Reis + + PR c++/11531 + * diagnostic.c (diagnostic_report_diagnostic): Don't ICE if we're + not recursing on hard error. + (diagnostic_for_decl): Likewise. + * diagnostic.def: Rearrange. + +2003-07-15 J"orn Rennecke + + * dwarf2out.c (expand_builtin_init_dwarf_reg_sizes): + If DWARF_FRAME_RETURN_COLUMN doesn't have a register mode, use Pmode. + +2003-07-15 J"orn Rennecke + Richard Henderson + + * unwind-dw2.c (_Unwind_GetGR): Use dwarf_reg_size_table + to decide if to access a _Unwind_Ptr or a _Unwind_Word. + (_Unwind_SetGR): Likewise. + (_Unwind_GetPtr, _Unwind_SetSpColumn): New functions. + (Unwind_SpTmp): New typedef. + (uw_update_context_1): Use _Unwind_SetSpColumn and _Unwind_GetPtr. + (uw_update_context): Use _Unwind_GetPtr. + (init_dwarf_reg_size_table): Move above uw_init_context_1. + (uw_init_context_1): Initialize dwarf_reg_size_table if necessary. + Use _Unwind_SetSpColumn. + (uw_install_context_1): Don't initialize dwarf_reg_size_table. + Use _Unwind_GetPtr. + +2003-07-15 Neil Booth + + * c.opt: Document more options. + * toplev.c (documented_lang_options): Remove all local help strings. + +2003-07-15 Mark Mitchell + + PR debug/11473 + * dbxout.c (dbxout_type): Use TYPE_SIZE to determine the sizes of + base classes. + +2003-07-15 Kazu Hirata + + PR target/10795 + * config/i386/i386.c (ix86_expand_carry_flag_compare): Don't + swap comparison operands if doing so would generate an + unrecognizable insn. + +2003-07-15 Eric Botcazou + + PR optimization/11320 + * sched-int.h (struct deps) [reg_conditional_sets]: New field. + (struct sched_info) [compute_jump_reg_dependencies]: New prototype. + * sched-deps.c (sched_analyze_insn) [JUMP_INSN]: Update call to + current_sched_info->compute_jump_reg_dependencies. Record which + registers are used and which registers are set by the jump. + Clear deps->reg_conditional_sets after a barrier. + Set deps->reg_conditional_sets if the insn is a COND_EXEC. + Clear deps->reg_conditional_sets if the insn is not a COND_EXEC. + (init_deps): Initialize reg_conditional_sets. + (free_deps): Clear reg_conditional_sets. + * sched-ebb.c (compute_jump_reg_dependencies): New prototype. + Mark registers live on entry of the fallthrough block and conditionally + set as set by the jump. Mark registers live on entry of non-fallthrough + blocks as used by the jump. + * sched-rgn.c (compute_jump_reg_dependencies): New prototype. + Mark new parameters as unused. + +2003-07-15 Richard Sandiford + + * doc/invoke.texi: Resync MIPS -march documentation. + +2003-07-15 Richard Sandiford + + * config/mips/mips.h (PROCESSOR_R9000): New processor_type. + (TARGET_MIPS9000, TUNE_MIPS9000): New macros. + (GENERATE_MULT3_SI): True for TARGET_MIPS9000. + * config/mips/mips.c (mips_cpu_info_table): Add rm9000 entry. + (mips_rtx_costs): Adjust integer multiplication costs for the rm9000. + (mips_issue_rate): Handle PROCESSOR_R9000. + (mips_use_dfa_pipeline_interface): Likewise. + * config/mips/9000.md: New file. + * config/mips/mips.md: Include it. + (define_attr cpu): Add r9000. + (mulsi3_mult3): Use "mul" for rm9000 code. + +2003-07-15 Stan Cox + + * config/mips/mips.h (PROCESSOR_R7000): New processor_type. + (TARGET_MIPS7000, TUNE_MIPS7000): New macros. + (GENERATE_MULT3_SI): True for TARGET_MIPS7000. + * config/mips/mips.c (mips_cpu_info_table): Add rm7000 entry. + (mips_rtx_costs): Adjust integer multiplication costs for the rm7000. + (mips_issue_rate): Handle PROCESSOR_R7000. + (mips_use_dfa_pipeline_interface): Likewise. + * config/mips/7000.md: New file. + * config/mips/mips.md: Include it. + (define_attr cpu): Add r7000. + (mulsi3_mult3): Use "mul" for rm7000 code. + +2003-07-15 Richard Sandiford + + * config/mips/mips.md (define_attr type): Add condmove. Use it for + the conditional move patterns. + * config/mips/5400.md (ir_vr54_move): Rename to ir_vr54_condmove. + Check for condmove type. + (ir_vr54_arith): Add move type. + * config/mips/5500.md (ir_vr55_move, ir_vr55_arith): Likewise. + * config/mips/sr71k.md (ir_sr70_move, ir_sr70_arith): Likewise. + +2003-07-15 Neil Booth + + * c-opts.c (print_help): Remove. + (c_common_handle_option): Don't handle --help. + * c.opt: Document some options. + (--help): Remove. + * opts.c (print_filtered_help): New. + (print_help): Use it. + +2003-07-14 Geoffrey Keating + + * c-common.c (c_common_type_for_mode): Handle V4DFmode. + * tree.c: (build_common_tree_nodes_2): Likewise. + * tree.h (enum tree_index): Add TI_V4DF_TYPE. + (V4DF_type_node): New. + + * c-opts.c (push_command_line_include): Don't free deferred_opts, + we'll need it. + (finish_options): Reset init_cursor. + +2003-07-15 Kazu Hirata + + * expr.c (expand_assignment): Remove an unused argument + SUGGEST_REG. + * expr.h: Update the prototype. + * function.c: Update the callers. + * stmt.c: Likewise. + +2003-07-14 Mark Mitchell + + PR debug/11098 + * integrate.c (copy_decl_for_inlining): Do not mark copied decls + as DECL_ABSTRACT. + +2003-07-14 Nathanael Nerode + + * fixinc/inclhack.def (avoid_bool_define, avoid_bool_type): Bypass + with __cplusplus, not "we must use the C++ compiler's type" + * fixinc/inclhack.def (void_null): Note that Interix needs this. + * fixinc/fixincl.x: Regenerate. + +2003-07-14 Geoffrey Keating + + * unwind-dw2-fde-darwin.c (live_image_destructor): Get seen_objects + and unseen_objects from the global data before calling + __deregister_frame_info_bases. + (examine_objects): Insert objects into the seen_objects list, + not unseen_objects. + (_Unwind_Find_FDE): Always unlock the global object lists, even if + we couldn't allocate a data structure to put in it. + + * objc/objc-act.h (CLASS_SUPER_NAME): Add a little typechecking. + (TYPE_PROTOCOL_LIST): Share use of type.context with C frontend. + (SET_TYPE_PROTOCOL_LIST): New. + * objc/objc-act.c (get_static_reference): Use SET_TYPE_PROTOCOL_LIST. + (get_object_reference): Likewise. + +2003-07-14 Jan Hubicka + + * cfglayout.c (locator_file): Break out from .... + (insn_file): ... here. + (locator_line): Break out from .... + (insn_line): ... here. + * rtl.h (locator_file, locator_line): Declare. + (final_start_function): Set proper line/file info. + +2003-07-14 Gabriel Dos Reis + + * c-pretty-print.c (pp_c_unary_expression): A CONVERT_EXPR is + handled by pp_c_cast_expression. + +2003-07-14 Richard Sandiford + + * config/mips/mips.c (mips_expand_prologue): Use a single insn to + allocate 32768 bytes of stack. Use addition rather than subtraction + when a single insn is enough. + * config/mips/mips.md: Remove insns and splitters for subtracting + constants. + (subsi3): Only accept register operands. + (subsi3_internal): Likewise. Use for TARGET_MIPS16 as well. + (subdi3_internal_3, subsi3_internal_2): Likewise. + (casesi): Use expand_binop to subtract the lower bound. + +2003-07-14 Richard Sandiford + + * config/mips/mips.c (mips_in_small_data_p): Don't handle + TARGET_MIPS16 specially. + +2003-07-14 Richard Sandiford + + * config/mips/elf.h (ASM_OUTPUT_ALIGNED_BSS): Use + mips_output_aligned_bss. + * config/mips/linux.h: Likewise. + * config/mips/mips-protos.h (mips_output_aligned_bss): Declare. + * config/mips/mips.c (mips_output_aligned_bss): New function. + + * config/mips/elf.h (DBX_DEBUGGING_INFO): Delete. + * config/mips/elf64.h: Likewise. + + * config/mips/elf.h (ASM_DECLARE_OBJECT_NAME): Use + mips_declare_object_name. + (ASM_FINISH_DECLARE_OBJECT): Likewise mips_finish_declare_object. + * config/mips/elf64.h: As for elf.h. + * config/mips/iris6.h: Likewise. + * config/mips/linux.h (ASM_DECLARE_OBJECT_NAME): As for elf.h. + * config/mips/mips.h (ASM_DECLARE_OBJECT_NAME): Remove unnecessary + do...while (0) block. + * config/mips/mips-protos.h (mips_declare_object_name): Declare. + (mips_finish_declare_object): Declare. + * config/mips/mips.c (mips_declare_object_name): New function. + (mips_finish_declare_object): New function. + + * config/mips/elf.h (SBSS_SECTION_ASM_OP): Delete. + * config/mips/linux.h: Likewise. + + * config/mips/mips.c (inside_function): Delete. + (file_in_function_warning, ignore_line_number): Delete. + (mips_output_filename): Don't warn about changing filenames within + a function. + (mips_output_lineno): Update accordingly. + (mips_output_function_prologue): Don't reset the deleted variables. + * config/mips/mips.h (inside_function): Delete. + (file_in_function_warning, ignore_line_number): Delete. + + * config/mips/elf.h (OBJECT_FORMAT_COFF, EXTENDED_COFF): Remove undefs. + * config/mips/elf64.h: Likewise. + * config/mips/openbsd.h: Likewise. + * config/mips/iris5.h (OBJECT_FORMAT_COFF): Remove undefs. + * config/mips/linux.h: Likewise. + * config/mips/mips.h (OBJECT_FORMAT_COFF, EXTENDED_COFF): Delete. + (CODE_MASK, MIPS_IS_STAB, MIPS_MARK_STAB, MIPS_UNMARK_STAB): Delete. + + * config.gcc (mips-sgi-irix6*o32, mips-sgi-irix5*): Add mips/sdb.h + to the list of include files when using gas. + (mips*el-*-openbsd*, mips*-*-openbsd*): Add mips/sdb.h unconditionally. + * config/mips/elf.h: Remove #undef SDB_DEBUGGING_INFO. + * config/mips/elf64.h: Likewise. + * config/mips/iris5.h: Likewise. + * config/mips/linux.h: Likewise. + * config/mips/iris5gas.h (SDB_DEBUGGING_INFO): Remove definition. + * config/mips/mips.h (PREFERRED_DEBUGGING_TYPE): Likewise. + (SDB_DEBUGGING_INFO, sdb*, SDB_ALLOW_*, PUT_SDB*): Move to... + * config/mips/sdb.h: ...this new file. + +2003-07-14 Douglas Rupp + + * fixinc/server.c (server_setup): Don't use non-POSIX NULL first + argument to getcwd; use fixed buffer instead. + +2003-07-14 Nathanael Nerode + + * fixinc/mkfixinc.sh: Treat OpenBSD normally. + * fixinc/fixinc.wrap: Delete. + +2003-07-14 Dan Nicolaescu + + * ggc-page.c (extra_order_size_table): Insns have 9 slots. Regs + don't have 2. + +2003-07-14 Dan Nicolaescu + + * ggc-page.c (struct globals): Add new fields to keep track of the + total allocated memory and overhead. + (ggc_print_statistics): Print them. + (ggc_alloc): Keep track of the total allocated memory and the + overhead. + + * tree.c (dump_tree_statistics): Increase spacing. + (enum tree_node_kind): Move to ... + * tree.h (enum tree_node_kind): ... here. + (tree_node_counts, tree_node_sizes): Declare. + +2003-07-14 James A. Morrison + + * doc/include/texinfo.tex: Upgrade to texinfo 4.6. + +2003-07-14 Franz Sirl + + PR optimization/11440 + * gcse.c (try_replace_reg): Don't attach notes to ZERO_EXTRACT or + SIGN_EXTRACT SETs. + +2003-07-14 Alan Modra + + * doc/tm.texi (BLOCK_REG_PADDING): Describe. + * expr.h (struct locate_and_pad_arg_data): Add where_pad. + (emit_group_load, emit_group_store): Adjust declarations. + Remove most occurrences of #ifdef TREE_CODE. + * expr.c (emit_group_load): Add "type" param, and use + BLOCK_REG_PADDING to determine need for a shift. Optimize non- + aligned accesses if !SLOW_UNALIGNED_ACCESS. + (emit_group_store): Likewise. + (emit_push_insn, expand_assignment, store_expr, expand_expr): Adjust + emit_group_load and emit_group_store calls. + * calls.c (store_unaligned_arguments_into_pseudos): Tidy. Use + BLOCK_REG_PADDING to determine whether we need endian_correction. + (load_register_parameters): Localize vars. Handle shifting of + small values to the correct end of regs. Adjust emit_group_load + call. + (expand_call, emit_library_call_value_1): Adjust emit_group_load + and emit_group_store calls. + * function.c (assign_parms): Set mem alignment for stack slots. + Adjust emit_group_store call. Store values at the "wrong" end + of regs to the stack. Use BLOCK_REG_PADDING. + (locate_and_pad_parm): Save where_pad. + (expand_function_end): Adjust emit_group_load call. + * stmt.c (expand_value_return): Adjust emit_group_load call. + * Makefile.in (calls.o): Depend on $(OPTABS_H). + * config/rs6000/linux64.h (TARGET_LITTLE_ENDIAN): Redefine as 0. + (AGGREGATE_PADDING_FIXED, AGGREGATES_PAD_UPWARD_ALWAYS): Define. + (MUST_PASS_IN_STACK): Define. + (BLOCK_REG_PADDING): Define. + * config/rs6000/rs6000.h (struct rs6000_args): Remove orig_nargs. + (PAD_VARARGS_DOWN): Define in terms of FUNCTION_ARG_PADDING. + * config/rs6000/rs6000.c (init_cumulative_args): Don't set orig_nargs. + (function_arg_padding): !AGGREGATE_PADDING_FIXED compatibility code. + Act on AGGREGATES_PAD_UPWARD_ALWAYS. + +2003-07-13 Aaron W. LaFramboise + + * config/i386/gthr-win32.c (__GTHREAD_HIDE_WIN32API): Define to 1. + +2003-07-13 Richard Kenner + + * expr.c (expand_expr, case COMPONENT_REF): If reg, copy OP0 to MEM + both if OFFSET specified and if result BLKmode for ARRAY_RANGE_REF. + +2003-07-13 Nathanael Nerode + + PR other/11123 + * toplev.c: Don't cut off option names. + +2003-07-13 Andreas Jaeger + + * c-decl.c (link_hash_hash): Avoid warning about casting pointer + to integer of different size. + +2003-07-13 Kazu Hirata + + * combine.c (simplify_comparison): Convert (ne (and (not X) 1) 0) + to (eq (and X 1) 0). + +2003-07-13 Andreas Jaeger + + * config.gcc: Add pmmintrin.h for x86_64-*-*. + +2003-07-13 Zack Weinberg + + * Makefile.in (LIBCPP_DEPS): Remove coretypes.h and $(TM_H). + (hashtable.o, line-map.o, mkdeps.o): Likewise, from dependency + list. Move these all together down by cpplib. + + * cpplib.h: Don't refer to MAX_WCHAR_TYPE_SIZE when determining + definition of CPPCHAR_SIGNED_T. + + * cppcharset.c, cpperror.c, cppexp.c, cppfiles.c, cpphash.c, cppinit.c + * cpplex.c, cpplib.c, cppmacro.c, cpppch.c, cpptrad.c, hashtable.c + * line-map.c, mkdeps.c: Don't include coretypes.h or tm.h. + + * cpphash.c (_cpp_init_hashtable): Don't use gcc_obstack_init. + * cppinit.c (cpp_create_reader): Likewise. + + * cpphash.h (scan_out_logical_line): Rename _cpp_scan_out_logical_line. + * cpptrad.c: Likewise. All callers changed. + * cpplib.c: All callers changed. + * c-ppoutput.c: Replace 'uchar' with 'unsigned char' throughout. + * hashtable.h: Define GTY(x) to nothing here too. + +2003-07-13 Richard Kenner + + * stor-layout.c (compute_record_mode): Remove very obsolete test + that forces BLKmode for records with fields crossing word boundary. + +2003-07-13 Zack Weinberg + + * Makefile.in: Remove orphan reference to acconfig.h. + +2003-07-13 Andreas Jaeger + + * cgraphunit.c: Convert prototypes to ISO C90. + +2003-07-13 Nathanael Nerode + + * fixinc/inclhack.def (avoid_wchar_t_type): Use __cplusplus bypass + (for OpenBSD). + * fixinc/fixincl.x: Rebuild. + +2003-07-12 Zack Weinberg + + * configure.in: Always define HAVE_AS_GOTOFF_IN_DATA for + i?86-*-*. Use correct name of cache variable. + * configure: Regenerate. + +2003-07-12 Kazu Hirata + + * config/alpha/alpha.c: Fix comment typos. + * config/alpha/alpha.md: Likewise. + * config/arm/arm.c: Likewise. + * config/arm/arm.md: Likewise. + * config/arm/lib1funcs.asm: Likewise. + * config/avr/avr.md: Likewise. + * config/arm/README-interworking: Fix typos. + +2003-07-12 Kazu Hirata + + * c-format.c: Fix comment formatting. + * c-typeck.c: Likewise. + * coverage.c: Likewise. + * cppcharset.c: Likewise. + * cpplib.c: Likewise. + * dbxout.c: Likewise. + * gcov-io.h: Likewise. + * toplev.c: Likewise. + +2003-07-12 Nathanael Nerode + + * fixinc/inclhack.def (alpha_sbrk): Note that OpenBSD needs this + fix. + +2003-07-12 Zack Weinberg + + * aclocal.m4 (gcc_AC_CHECK_TYPE): Clone of AC_CHECK_TYPE, + uses three-argument AC_DEFINE so no acconfig.h entries are + needed. + (_gcc_COMPUTE_GAS_VERSION): Also provide gcc_cv_gas_vers + which contains the GAS version number as a scaled integer. + (gcc_GAS_VERSION_GTE_IFELSE): Use gcc_cv_gas_vers. Add + ability to check for ELF assembler. + (gcc_GAS_CHECK_FEATURE): New macro. + * configure.in: Use gcc_AC_CHECK_TYPE. Rewrite all + assembler feature checks using gcc_GAS_CHECK_FEATURE. + Use three-argument AC_DEFINE everywhere. + * acconfig.h: Deleted. + * config.in, configure: Regenerate. + +2003-07-12 Nathanael Nerode + + * fixinc/inclhack.def (struct_sockaddr): Avoid "fixing" sockaddr_in + (on OpenBSD). + * fixinc/fixincl.x: Regenerate. + + * fixinc/inclhack.def (gnu_types): Improve comment. + +2003-07-12 Andreas Jaeger + + * fp-test.c (main): Use ISO C90 prototype. + + * version.c: Remove unneded include of ansidecl.h. + + * cgraph.h: Convert prototypes to ISO C90. + * cgraph.c: Likewise. + * fix-header.c: Likewise. + * ra.h: Likewise. + * protoize.c: Likewise. + +2003-07-12 Jan Hubicka + + * cgraphunit.c (cgraph_inlined_into, cgraph_inlined_calees): Fix + warning. + +2003-07-12 Jan Hubicka + Gerald Pfeifer + + * cgraph.c (cgraph_max_uid): New global variable. + (cgraph_node): Set uid field. + (create_edge): Keep inline flags consistent. + (dump_cgraph): Dump more info. + * cgraph.h (struct cgraph_local_info): Remove inline_many and + can_inline_once; add inlinable, disgread_inline_limits, and self_insn + (struct cgraph_global_info): Add insns, calls, cloned_times, + will_be_output. + (struct cgraph_node): Add uid. + (struct cgraph_edge): Add inline_call. + (cgraph_max_uid, cgraph_inline_p): Declare. + * cgraph.c: Include params.h and fibheap.h + (cgraph_mark_functions_to_inline_once): Kill. + (INSNS_PER_CALL): New constant. + (ncalls_inlined, nfunctions_inlined, initial_insns, overall_insns): New + static variables. + (cgraph_finalize_function): Do not analyze inlining. + (cgraph_finalize_compilation_unit): Set inlining attributes. + (cgraph_mark_functions_to_output): More consistency checks. + (cgraph_optimize_function): Set current_function_decl to NULL. + (cgraph_expand_function): Use new inline flags. + (cgraph_postorder): Expand from cgraph_expand_functions. + (INLINED_TIMES, SET_INLINED_TIMES): New macros. + (cgraph_inlined_into, cgraph_inlined_callees, + cgraph_estimate_size_after_inlining, cgraph_estimate_growth, + cgraph_mark_inline, cgraph_check_inline_limits, + cgraph_default_inline_p, cgraph_decide_inling_of_small_functions, + cgraph_decide_inlining, cgraph_inline_p): New functions. + * params.def (PARAM_LARGE_FUNCTION_INSNS, PARAM_LARGE_FUNCTION_GROWTH, + PARAM_INLINE_UNIT_GROWTH): New parameters. + * tree-inline.c (struct inline_data): New field current_decl. + (expand_call_inline): Avoid forward declarations; use + inlinable_function_p. + (optimize_inline_calls): Set id.current_decl. + +2003-07-11 Andrew Pinski + + * configure.in: Remove wrongly added definition of + local_prefix. + * configure: Regenerate. + +2003-07-11 Dan Nicolaescu + + * rtl.def (NOTE): Do not use padding. + +2003-07-11 Dara Hazeghi + + * doc/install.tex: Update required binutils for i?86-*-linux* + +2003-07-11 Richard Henderson + + * Makefile.in (stage1_build): Force OBJS-onestep=OBJS. + +2003-07-11 Mark Mitchell + + * varasm.c (make_decl_rtl): Treat decls with a DECL_CONTEXT of + TRANSLATION_UNIT_DECL as top_level. + +2003-07-11 Jakub Jelinek + + * optabs.c (prepare_cmp_insn): Try cmpmemM first if it exists, + then fall back to cmpstrM. + * builtins.c (expand_builtin_memcmp): Likewise. + * config/s390/s390-protos.h (s390_expand_cmpstr): Rename to... + (s390_expand_cmpmem): ... this. + * config/s390/s390.md (cmpmemdi, cmpmemsi, cmpmem_short_64, + cmpmem_short_31, cmpmem_long_64, cmpmem_long_31): Renamed + from cmpstr* patterns. Rename call to s390_expand_cmpstr + to s390_expand_cmpmem. + * config/s390/s390.c (s390_expand_cmpstr): Rename to... + (s390_expand_cmpstr): ... this. Rename cmpstr* instructions + to cmpmem*. + * config/i370/i370.md (cmpmemsi, cmpmemsi_1): Renamed from + cmpstr* patterns. + * doc/md.texi (cmpstrM): Describe as String compare insn, not + Block compare insn. + (cmpmemM): Add. + +2003-07-11 Loren James Rittle + + * config/i386/freebsd.h (SET_ASM_OP): Remove. + (SUBTARGET_OVERRIDE_OPTIONS): Handle TARGET_64BIT case. + (ASM_COMMENT_START, ASM_APP_ON, ASM_APP_OFF, DBX_REGISTER_NUMBER + MCOUNT_NAME, SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE_SIZE): Whitespace. + +2003-07-11 Richard Henderson + + * function.c (assign_parms): Don't recombine complex args if + fnargs is unchanged from orig_fnargs. + (split_complex_args): Return args without complex before copying. + Re-layout the modified parameters. + +2003-07-11 J"orn Rennecke + + * regclass.c (choose_hard_reg_mode): Add third argument. + Changed all callers. + * rtl.h (choose_hard_reg_mode): Update declaration. + * dwarf2out.c (expand_builtin_init_dwarf_reg_sizes): + Take HARD_REGNO_CALL_PART_CLOBBERED into account. + +2003-07-11 Geoffrey Keating + + * c-decl.c (finish_decl): Handle 'used' here... + * cgraphunit.c (cgraph_finalize_function): ... and here ... + * c-common.c: (handle_used_attribute): ... not here. + + * configure.in (onstep): Support --enable-intermodule. + * Makefile.in (OBJS-common): New. + (OBJS-md): New. + (OBJS-archive): New. + (OBJS): Build from OBJS-common, OBJS-md, OBJS-archive. + (OBJS-onestep): New. + (libbackend.a): Support @onestep@. + (libbackend.o): New. + * configure: Regenerate. + + * c-common.h (c_reset_state): New prototype. + (c_parse_file): New prototype. + (finish_file): Move prototype from c-tree.h. + * c-decl.c: Include . + (builtin_decls): New. + (current_file_decl): New. + (duplicate_decls): Add extra parameter. Change all callers. Don't + output duplicate common symbols. + (link_hash_hash): New. + (link_hash_eq): New. + (poplevel): Handle popping of the top level. + (warn_if_shadowing): Handle TRANSLATION_UNIT_DECL. + (pushdecl): Set DECL_CONTEXT to TRANSLATION_UNIT_DECL if appropriate. + (pushdecl_top_level): Likewise. + (redeclaration_error_message): Handle TRANSLATION_UNIT_DECL. + (c_init_decl_processing): Create TRANSLATION_UNIT_DECL. + (finish_decl): Handle TRANSLATION_UNIT_DECL. + (merge_translation_unit_decls): New. + (c_write_global_declarations): New. + (c_reset_state): New. + (implicitly_declare): Handle TRANSLATION_UNIT_DECL. + * c-lang.c (LANG_HOOKS_WRITE_GLOBALS): New. + * c-objc-common.c (c_cannot_inline_tree_fn): Handle + TRANSLATION_UNIT_DECL. + (c_objc_common_finish_file): Call merge_translation_unit_decls. + * c-opts.c (in_fnames): Rename from in_fname. + (c_common_decode_option): Handle multiple input filenames. + (c_common_post_options): Likewise. + (c_common_parse_file): Likewise; also, call c_parse_file rather than + yyparse. + * c-parse.in: Move cleanup code to c_parse_file. + (free_parser_stacks): Move contents to c_parse_file. + (c_parse_file): New. + * c-tree.h (union lang_tree_node): Chain along TYPE_NEXT_VARIANT + for integer types. + (C_DECL_FILE_SCOPE): New. + (finish_file): Move prototype to c-common.h. + (merge_translation_unit_decls): New prototype. + (comptypes): Add extra parameter to prototype. + (c_write_global_declarations): New prototype. + * c-typeck.c (tagged_types_tu_compatible_p): New. + (function_types_compatible_p): Add extra parameter, change all callers. + (type_lists_compatible_p): Likewise. + (comptypes): Likewise. + (struct tagged_tu_seen): New. + (tagged_tu_seen_base): New. + (build_unary_op): Handle TRANSLATION_UNIT_DECL. + (c_mark_addressable): Remove #if 0 code. + * calls.c (special_function_p): Handle TRANSLATION_UNIT_DECL, add + comment explaining why it shouldn't have to. + * cgraph.h (struct cgraph_node): Add chain_next and chain_prev GTY + options. + * cppinit.c (cpp_read_next_file): New. + (cpp_read_main_file): Use it. + * cpplib.c (undefine_macros): New. + (cpp_undef_all): New. + * cpplib.h (cpp_read_next_file): Prototype. + (cpp_undef_all): Prototype. + * langhooks-def.h (write_global_declarations): Remove prototype. + * toplev.h (write_global_declarations): Add prototype. + * tree.c (decl_type_context): Use switch statement, handle + TRANSLATION_UNIT_DECL. + * tree.def: Update documentation for TRANSLATION_UNIT_DECL. + (TRANSLATION_UNIT_DECL): New kind of tree. + * tree.h: Update documentation for TRANSLATION_UNIT_DECL. + * Makefile.in (c-decl.o): Add $(HASHTAB_H) to dependencies. + * doc/invoke.texi: Make attempt to document new functionality. + + 2003-05-19 Per Bothner + + * gcc.c (combine_inputs): New. + (process_command): Set combine_inputs. + (do_spec_1): Handle combine_inputs. + (main): Likewise. + +2003-07-10 James E Wilson + + PR optimization/9745 + * loop.c (loop_iv_add_mult_emit_before): Call loop_regs_update before + loop_insn_emit_before. + (loop_iv_add_mult_sink, loop_iv_add_mult_hoist): Likewise. + +2003-07-10 Zack Weinberg + + * cppcharset.c: Fix comment. + (iconv_close [!HAVE_ICONV]): #define to (void)0 to prevent warning. + (EILSEQ): #define to EINVAL if not already defined. + (convert_using_iconv): #if out when !HAVE_ICONV. + (init_iconv_desc): Handle !HAVE_ICONV here... + (cpp_init_iconv): ...not here. + +2003-07-11 Neil Booth + + * common.opt: More --help messages. + * opts.c (print_help): Use puts(). + * toplev.c (f_options): Remove help text. + (display_help): Don't dump f_options. + +2003-07-11 Nathanael Nerode + + * fixinc/mkfixinc.sh: Drop reference to unsupported alpha-*-interix*. + Move i?86-*-interix* to the don't-fix list. + * fixinc/fixinc.interix: Delete with extreme prejudice. + +2003-07-10 Dara Hazeghi + + PR bootstrap/10758 + * doc/install.texi: Document requirements for ia64-*-hpux* target. + +2003-07-10 Roger Sayle + + * config/ia64/hpux.h (TARGET_C99_FUNCTIONS): Define. + +2003-07-10 Zack Weinberg + + * cppcharset.c (one_utf8_to_cppchar, one_cppchar_to_utf8, + one_utf8_to_utf32, one_utf32_to_utf8, one_utf8_to_utf16, + one_utf16_to_utf8, conversion_loop, convert_utf8_utf16, + convert_utf8_utf32, convert_utf16_utf8, convert_utf32_utf8, + convert_no_conversion, convert_using_iconv): New functions. + (APPLY_CONVERSION): New macro. + (struct conversion, conversion_tab): New data structure. + (init_iconv_desc): Check conversion_tab for a custom conversion + primitive before trying to use iconv. + (convert_cset): Deleted. + (cpp_init_iconv): Use UTF- terminology, not UCS-. + (_cpp_destroy_iconv): Update to match. + (_cpp_valid_ucn): We don't need iconv to implement UCNs. + (convert_ucn): Use one_cppchar_to_utf8 and APPLY_CONVERSION. + (convert_escape, cpp_interpret_string): Use APPLY_CONVERSION. + (_cpp_interpret_string_notranslate): New function, moved here + from cpplib.c. + + * cpphash.h (convert_f, struct cset_converter): New types. + (struct cpp_reader): narrow_cset_desc and wide_cset_desc + are now struct cset_converter, not bare iconv_t. + Update prototypes. + * cpplib.c (interpret_string_notranslate): Moved to cppcharset.c; + all callers changed. + +2003-07-10 Kelley Cook + + * Makefile.in (options.h): Depend on Makefile. Add move-if-change + to opts.sh command line. + * opts.sh: Write to temporary files with a move-if-change at the end. + +2003-07-10 Denis Chertykov + Richard Kenner + + * combine.c (gen_binary): Handle the CLOBBER rtx and + don't build a binary operation with it. + +2003-07-10 Zdenek Dvorak + + * gcse.c (load_kills_store, find_loads, store_killed_in_insn, + store_killed_after, store_killed_before): Keep track of the correct + dependency function to use. + +2003-07-10 Steven Bosscher + * toplev.c (do_compile): Don't try to open dump files before + lang_dependent_init initializes dump_base_name. + +2003-07-10 Kaveh R. Ghazi + + * config/arm/arm.c (arm_init_iwmmxt_builtins, arm_expand_builtin): + Use ARRAY_SIZE. + * config/frv/frv.c (frv_expand_builtin): Likewise. + * config/sh/sh.c (sh_media_init_builtins): Likewise. + +2003-07-09 Mark Mitchell + + PR c++/10032 + * doc/invoke.texi (C++ Dialect Options): Change documentation of + -fpermissive. + +2003-07-10 J"orn Rennecke + + * tm.texi (RETURN_ADDR_OFFSET): Document. + +2003-07-10 Nathan Sidwell + + * gcov-io.h: Update documentation. + (GCOV_UNSIGNED2STRING): New. + (GCOV_TAG_FUNCTION_LENGTH, GCOV_TAG_BLOCKS_LENGTH, + GCOV_TAG_ARCS_LENGTH, GCOV_TAG_COUNTER_LENGTH, + GCOV_TAG_SUMMARY_LENGTH): Adjust. + (GCOV_TAG_BLOCKS_NUM, GCOV_TAG_ARCS_NUM, + GCOV_TAG_COUNTER_NUM): New. + (GCOV_BLOCK_SIZE): Number of words. + (gcov_var): Adjust buffer type. + * gcov-io.c (gcov_write_bytes, gcov_read_bytes): Rename to ... + (gcov_write_words, gcov_read_words): ... here. Take a 4-byte word + count, not byte count. + (gcov_open): Adjust overread init. + (gcov_allocate, gcov_write_unsigned, gcov_write_counter, + gcov_write_string, gcov_write_tag, gcov_write_length, + gcov_write_tag_length): Adjust. + (gcov_read_unsigned, gcov_read_counter, gcov_read_string): Adjust. + (gcov_sync, gcov_seek): Adjust. + * gcov-dump.c (print_usage): Show gcc version only. + (dump_file): Use GCOV_UNSIGNED2STRING. + (tag_blocks, tag_arcs, tag_counters): Use GCOV_TAG_*_NUM macros. + * gcov.c (print_version): Show gcc version only. + (read_graph_file): Use GCOV_UNSIGNED2STRING. Use + GCOV_TAG_*_NUM macros. + (read_count_file): Use GCOV_UNSIGNED2STRING. Use + GCOV_TAG_COUNTER_LENGTH. + * coverage.c (read_counts_file): Use GCOV_UNSIGNED2STRING. + Use GCOV_TAG_COUNTER_NUM. + * libgcov.c (gcov_version): Use GCOV_UNSIGNED2STRING. + (__gcov_merge_single, __gcov_merge_delta): Use GCOV_CHECK. + +2003-07-10 Andreas Schwab + + * gcov-dump.c (dump_file): Fix missing address operator. + +2003-07-10 Kazu Hirata + + PR c/11449 + * fold-const.c (sign_bit_p): Return EXP if VAL is the sign bit + of HOST_WIDE_INT. + (fold_single_bit_test): If sign_bit_p() fails, assume that the + bit being tested is not a sign bit. + +2003-07-10 Kazu Hirata + + * config/h8300/h8300.md (a peephole2): New. + +2003-07-10 Alexandre Oliva + + 2001-12-13 Alexandre Oliva + * config/mn10300/linux.h (LINK_SPEC): Rename the dynamic linker + from ld-linux.so.2 to ld.so.1. + 2001-11-18 Alexandre Oliva + * config/mn10300/linux.h (LINK_SPEC): -lpthread, not -lthread. + * config/mn10300/linux.h (LINK_SPEC): Don't handle -Wl,-rpath + nor -Wl,-rpath-link. + (LIB_SPEC): Add -rpath-link if !static. + 2001-08-22 Alexandre Oliva + * config/mn10300/mn10300.c (mn10300_protect_label): New + variable. + * config/mn10300/linux.h (PRINT_OPERAND, + PRINT_OPERAND_ADDRESS): Set it during their execution. + (ASM_OUTPUT_LABELREF): Output `+' before symbol name if + mn10300_protect_label is set. + * config/mn10300/linux.h (LINK_SPEC): Recognize -Wl,-rpath and + -Wl,-rpath-link. + (LIB_SPEC, STARTFILE_SPEC): Define. + 2001-05-11 Alexandre Oliva + * config/mn10300/t-linux (dp-bit.c, fp-bit.c): Don't define + FLOAT_BIT_ORDER_MISMATCH. + 2001-05-09 Alexandre Oliva + * config.gcc (am33_2.0-*-linux*): Added. + * config/mn10300/linux.h: New. + * config/mn10300/t-linux: New. + +2003-07-10 Andreas Jaeger + + * fold-const.c: Properly wrap prototypes. + +2003-07-09 Alexandre Oliva + + 2003-06-16 Alexandre Oliva + * config/mn10300/mn10300.c (mn10300_unspec_int_label_counter): + Moved from... + * config/mn10300/mn10300.md (GOTaddr2picreg): ... here. + * config/mn10300/mn10300.h: GTY-declare it. + 2003-06-11 Alexandre Oliva + * config/mn10300/mn10300.c (mn10300_encode_section_info): Fix + prototype. Use incoming RTL argument. + 2002-12-12 Alexandre Oliva + * config/mn10300/mn10300.md (int_label): Move C statements... + (GOTaddr2picreg): ... here. + 2002-08-15 Alexandre Oliva + * config/mn10300/mn10300.h (ENCODE_SECTION_INFO): Move... + * config/mn10300/mn10300.c (mn10300_encode_section_info): + ... here. New function. + (TARGET_ENCODE_SECTION_INFO): Define to it. + 2001-11-04 Alexandre Oliva + * config/mn10300/mn10300.md (builtin_setjmp_receiver): Fix typo in + pattern name. + (mn10300_loadPC): Define as insn splittable after reload. + 2001-05-13 Alexandre Oliva + * config/sh/mn10300.h (JUMP_TABLES_IN_TEXT_SECTION): Let them + be defined in .rodata even in PIC, now that the assembler + supports that. + 2001-05-09 Alexandre Oliva + * config/mn10300/mn10300.h (GOT_SYMBOL_NAME): Don't let the + symbol take an underscore prefix. + 2001-04-14 Alexandre Oliva + * config/mn10300/mn10300-protos.h (legitimate_pic_operand_p, + legitimize_pic_address): Declare. + * config/mn10300/mn10300.h (CONDITIONAL_REGISTER_USAGE): Mark + the PIC register as fixed. + (EXTRA_CONSTRAINT): Match UNSPEC_PLT and UNSPEC_PIC for 'S'. + (GO_IF_LEGITIMATE_ADDRESS): Require legitimate_pic_operand for + PIC. + (LEGITIMATE_PIC_OPERAND_P): Define. + (PIC_OFFSET_TABLE_REGNUM): Define. + (GOT_SYMBOL_NAME): Define. + (SYMBOLIC_CONST_P): Define. + (ENCODE_SECTION_INFO): Use SYMBOL_REF_FLAG to mark local + symbols. + (MN10300_GLOBAL_P): Test it. + (OUTPUT_ADDR_CONST_EXTRA): Handle PIC-related unspecs. + (JUMP_TABLES_IN_TEXT_SECTION): Enable for PIC. + * config/mn10300/mn10300.c (print_operand): Handle unspec. + (expand_prologue): Set PIC register. + (call_address_operand): Don't match SYMBOL_REFs in PIC. + (legitimize_address): Call legitimize_pic_address. + (legitimize_pic_address): New fn. + (legitimate_pic_operand_p): New fn. + * config/mn10300/mn10300.md (PIC_REG, SP_REG): New constants. + (UNSPEC_INT_LABEL, UNSPEC_PIC, UNSPEC_GOT, UNSPEC_GOTOFF, + UNSPEC_PLT): New constants. + (pop_pic_reg): New insn. + (movsi): Adjust non-PIC addresses. + (builtin_setjmp_receiver): Restore the PIC register. + (casesi): New insn. + (call): Adjust non-PIC addresses. + (int_label, GOTaddr2picreg): New expands. + (am33_loadPC): New insn. + (mn10300_loadPC): New expand. + (call_next_insn): New insn. + (add_GOT_to_pic_reg): New expand. + (symGOT2reg, symGOT2reg_i): New expands. + (symGOTOFF2reg, symGOTOFF2reg_i): New expands. + (sym2PIC, sym2PLT): New expands. + +2003-07-09 Alexandre Oliva + + * config/mn10300/mn10300.h (PREDICATE_CODES): Define. + 2001-05-01 Alexandre Oliva + * config/mn10300/mn10300.md (sqrtsf2): flag_fast_math was renamed + to flag_unsafe_math_optimizations. + 2001-04-14 Alexandre Oliva + * config/mn10300/mn10300.c (expand_prologue): Mark + FP-register-saving insns as frame-related. + 2001-02-13 Alexandre Oliva + * config/mn10300/mn10300.c + (mn10300_get_live_callee_saved_regs): Don't search past + LAST_EXTENDED_REGNUM. + (mn10300_gen_multiple_store, store_multiple_operation): Likewise. + * config/mn10300/mn10300.md: Remove excessive line breaks from + `@' output patterns that were accounted as additional + alternatives. + * config/mn10300/mn10300.md, config/mn10300/mn10300.c: + Re-introduce changes accidentally removed in Richard Sandiford's + 2000-12-05's patch. + * config/mn10300/t-mn10300 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): + Re-instate am33-2 lost in merge from net GCC. + 2000-08-26 Alexandre Oliva + * config/mn10300/mn10300.h (DBX_REGISTER_NUMBER): Added + floating-point registers. + 2000-08-07 Alexandre Oliva + * config/mn10300/mn10300.md (movdf): Revert some am33-specific + pessimizations that had gone in on 2000-05-08. + 2000-06-28 Graham Stott + * config/mn10300/mn10300.h (REG_CLASS_CONTENTS): Fix typo. + 2000-06-22 Graham Stott + * config/mn10300/mn10300.md (movqi): Use nonimmediate_operand for + operand 0. + * (movhi): Likewise. + * (movsi): Likewise. + * (movsf): Likewise. + * (movdi): Likewise. + * (movdf): Likewise. + 2000-05-24 Alexandre Oliva + * config/mn10300/mn10300.c (fp_regs_to_save): New function. + (can_use_return_insn, initial_offset): Add fp_regs_to_save. + (expand_prologue, expand_epilogue): Save and restore FP regs. + 2000-05-20 Alexandre Oliva + * config/mn10300/mn10300.md (movdi, movdf): 64-bit clean-up. + 2000-05-13 Alexandre Oliva + * config/mn10300/mn10300.md (abssf2, negsf2, rsqrtsf2, addsf3, + subsf3, mulsf3, divsf3, fmaddsf4, fmsubsf4, fnmaddsf4, fnmsubsf4): + Do not clobber cc0. + 2000-05-12 Alexandre Oliva + * config/mn10300/mn10300.md (abssf2, negsf2, rsqrtsf2): + Discourage the two-argument, longer opcodes. + (addsf3, subsf3, mulsf3, divsf3): Likewise for three-argument + ones. + * config/mn10300/mn10300.h (struct mn10300_cc_status_mdep): New. + (CC_STATUS_MDEP, CC_STATUS_MDEP_INIT): Define. + * config/mn10300/mn10300.md (cmpsf): New pattern. + (branch): Test mdep.fpCC and output fbCC. + * config/mn10300/mn10300.c (print_operand): Output conditions. + (notice_cc_update): Recognize fcmp and set mdep.fpCC. + 2000-05-10 Alexandre Oliva + * config/mn10300/mn10300.md (movsf, movdf, addsf3, subsf3, + mulsf3, divsf3): Use the `F' constraint for FP values. + * config/mn10300/mn10300.c (const_1f_operand): New function. + * config/mn10300/mn10300-protos.h (const_1f_operand): Declare. + * config/mn10300/mn10300.md (sqrtsf2): New expand. + (rsqrtsf2): New insn. + 2000-05-09 Alexandre Oliva + * config/mn10300/mn10300.md (movdf): Oops, I missed it in my + previous check-in. + 2000-05-08 Alexandre Oliva + * config/mn10300/mn10300.md (abssf2, negdf2): On + TARGET_AM33_2, expand to... + (abssf2_am33_2, negdf2_am33_2): New insns. + (addsf3, subsf3, mulsf3, divsf3): Likewise. + (fmaddsf4, fmsubsf4, fnmaddsf4, fnmsubsf4): Likewise. + * config/mn10300/mn10300.md (movqi, movhi, movsi, movsf, + movdi, movdf): Added FP regs. + * invoke.texi (-mam33-2, -mno-am33-2): Document. + 2000-04-29 Alexandre Oliva + * config/mn10300/mn10300.h (FIRST_FP_REGNUM, LAST_FP_REGNUM): + New macros. + (REGNO_AM33_2_FP_P): Renamed to... + (REGNO_FP_P): Redefine in terms of FIRST_* and LAST_*. + (CONDITIONAL_REGISTER_USAGE, REGNO_REG_CLASS): Likewise. + 2000-04-27 Alexandre Oliva + * config/mn10300/mn10300.h (REG_CLASS_CONTENTS): Remove FP + regs from GENERAL_REGS. + 2000-04-27 Alexandre Oliva + * config/mn10300/mn10300.h (REGNO_AM33_2_FP_P): New macro. + * config/mn10300/mn10300.c (mn10300_address_cost): Added FP_REGS. + * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Added FP_REGS. + 2000-04-23 Alexandre Oliva + * config/mn10300/mn10300.h (CLASS_CANNOT_CHANGE_SIZE): Defined + as FP_REGS. + 2000-04-21 Alexandre Oliva + * config/mn10300/mn10300.h (OK_FOR_Q): New macro. + (EXTRA_CONSTRAINT): Added OK_FOR_Q. + * config/mn10300/mn10300.c (secondary_reload_class): Adjust. + * config/mn10300/mn10300.c (print_operand): Support `D' for doubles. + * config/mn10300/mn10300.h (FIRST_PSEUDO_REGISTER): Adjust. + (FIXED_REGISTERS, CALL_USED_REGISTERS, REG_ALLOC_ORDER): Added + AM33/2.0 floating-point registers. + (CONDITIONAL_REGISTER_USAGE): Adjust. + (enum reg_class, REG_CLASS_NAMES): Added FP_REGS and FP_ACC_REGS. + (REG_CLASS_CONTENTS, REGNO_REG_CLASS): Adjust. + (REG_CLASS_FROM_LETTER): Added `f' and `A'. + (REGISTER_NAMES, ADDITIONAL_REGISTER_NAMES): Adjust. + * config/mn10300/t-mn10300 (MULTILIB_OPTIONS): Added am33-2. + (MULTILIB_DIRNAMES): Likewise. + * config/mn10300/mn10300.h (CPP_SPEC): Define `__AM33__=2' and + `__AM33_2__' when `-mam33-2' is given. + (TARGET_AM33_2): Define. + (TARGET_SWITCHES): Adjust. + * config/mn10300/mn10300.c (asm_file_start): Print `.am33_2' + when appropriate. + +2003-07-09 Matt Kraai + + * doc/install.texi: Add missing @. + +2003-07-09 Bob Wilson + + * config/xtensa/xtensa.h (CRT_CALL_STATIC_FUNCTION): Define. + +2003-07-09 Aldy Hernandez + + PR/11144 + * config/i386/i386.c (ix86_function_arg_boundary): Remove abort. + +2003-07-09 Nathanael Nerode + + PR bootstrap/11043 + * config/arc/t-arc: Replace bogus references to "x-crtinit.o", + "x-crtfini.o" with "crtinit.o", "crtfini.o". + + * fixinc/inclhack.def (limits_ifndefs): Add select test. + * fixinc/fixincl.x: Rebuild. + + * fixinc/inclhack.def (math_exception): Improve bypass and comment. + * fixinc/fixincl.x: Rebuild. + +2003-07-09 Hans-Peter Nilsson + + * doc/install.texi (Configuration): Document the valgrind option + to --enable-checking. + +2003-07-09 Jan Hubicka + + * objc-lang.c (LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS): New. + +2003-07-09 Rainer Orth + + * c-lex.c (cb_ident): Cast cstr.text to const char *. + +2003-07-09 Nathan Sidwell + + * gcov-io.h: Update documentation. + (GCOV_GRAPH_SUFFIX, GCOV_GRAPH_MAGIC): Rename to GCOV_NOTE_SUFFIX, + GCOV_NOTE_MAGIC. + (GCOV_DATA_SUFFIX, GCOV_NOTE_SUFFIX): Update. + (GCOV_DATA_MAGIC, GCOV_NOTE_MAGIC): Make non-palindromic. + (struct gcov_var): Change buffer's type. Add endian flag. + (gcov_open): Remove mode in libgcov. + (gcov_magic): Prototype. + * gcov-io.c (from_file): New. + (gcov_open): Clear endian flag. + (gcov_magic): New. + (gcov_write_bytes, gcov_read_bytes): Return gcov_unsigned_t + pointers. + (gcov_write_unsigned, gcov_write_counter, gcov_write_string, + gcov_write_tag, gcov_write_length, gcov_write_tag_length): Update. + (gcov_read_unsigned, gcov_read_counter, gcov_read_string): Update. + * gcov-iov.c (main): Correct cast. + * coverage.c (read_counts_file): Use gcov_magic. Remove endianness + conversion. + (gcov_begin_output): Use GCOV_NOTE_MAGIC. + (coverage_init): Use GCOV_NOTE_SUFFIX. + * libgcov.c (gcov_version_mismatch): Remove endianness conversion. + Rename to gcov_version, and return flag. + (gcov_exit): Use gcov_version. + (__gcov_init): Use gcov_version. + * Makefile.in (coverageexts): Update. + * gcov.c (print_version): Remove endianness conversion. + (create_file_names): Use GCOV_NOTE_SUFFIX. + (read_graph_file): Use gcov_magic. + (read_count_file): Likewise. + * gcov-dump.c (dump_file): Remove endianness conversion, use + gcov_magic. + +2003-07-09 Nathan Sidwell + + * configure.in (BUILD_PREFIX, BUILD_PREFIX_1): Set if enable + coverage is on. + * configure: Regenerated. + * Makefile.in (ALL_CFLAGS): Correct its comment. + +2003-07-08 Mark Mitchell + + * fold-const.c (make_range): Do not access operand 1 for a + zero-operand operator. + +2003-07-09 Neil Booth + + * toplev.c (warn_dummy, W_options): Die. + (display_help): Don't print W_options. + * common.opt: Add W_options help from toplev.c. + +2003-07-09 Andreas Jaeger + + * opts.c (wrap_help): Only pass int arguments as arguments to + printf's '*' modifier. Change argument of function. + +2003-07-08 Matt Kraai + + * doc/invoke.texi: Fix misspelling of "@item". + +2003-07-08 Kazu Hirata + + * config/i386/i386.md: Remove an old comment about + NOTICE_UPDATE_CC. + +2003-07-09 Jan Hubicka + + * cgraph.c (cgraph_node_name): New function. + (dump_cgraph): Use it. + * cgraph.h (cgraph_dump_file): Declare. + (cgraph_node_name): Declare. + * cgraphunit.c: Include timevar.h + (cgraph_finalize_compilation_unit): Use timevar; reorganize dumps. + (cgraph_optimize_function): Use TV_INTEGRATION. + (cgraph_mark_local_functions): reorganize dumps. + (cgraph_mark_functions_to_inline_once): Likewise. + (cgraph_optimize): Likewise; use timevar. + * timevar.def (TV_CGRAPH, TV_CGRAPHOPT): New. + * toplev.c (dump_file_index): Add DFI_cgraph. + (dump_file_info): Likewise. + (cgraph_dump_file): New global variable. + (do_compile): Open and close cgraph dump. + * invoke.texi (-d): Document new flag; renumber. + +2003-07-08 Roger Sayle + + PR c/11370 + * calls.c (emit_call_1): Don't bother popping the arguments off of + the stack after a noreturn function call; The adjustment is dead. + (expand_call): Likewise. + +2003-07-08 Geoffrey Keating + + * expr.c (MOVE_MAX_PIECES): Move from here... + * defaults.h (MOVE_MAX_PIECES): ... to here. + +2003-07-08 Matt Kraai + + * Makefile.in (stage1-start): Handle an empty SUBDIRS. + +2003-07-08 Kaveh R. Ghazi + + * genattr.c (internal_dfa_insn_code): Don't prototype. + * genattrtab.c (attr_desc): Add `static_p' field. + (expand_units): Make blockage range and ready cost functions + static. + (write_attr_get): Don't add extern prototypes in C file. Mark + static functions as appropriate. + (find_attr, make_internal_attr): Initialize static_p. + * genattrtab.h (ATTR_STATIC): New macro. + * genautomata.c (output_internal_reset_func): Mark output function + as inline. + (make_internal_dfa_insn_code_attr): Mark output function as static. + +2003-07-08 Kaveh R. Ghazi + + * genattrtab.h: Add new macros for attr `special' flags. + * genattrtab.c (attr_desc): Reorder/resize fields better. + Use attr `special' macros in all calls to make_internal_attr. + * genautomata.c: Likewise. + +2003-07-09 Jan Hubicka + + * c-common.c (c_estimate_num_insns_1): New static function. + (c_estimate_num_insns): New global function. + * c-common.h (DECL_NUM_STMTS): Rename to... + (DECL_ESTIMATED_INSNS): ... this. + (c_estimate_num_insns): Declare. + * c-decl.c (duplicate_decls): Use DECL_ESTIMATED_INSNS. + * c-lang.c (LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS): New. + * c-semantics.c (add_stmt): Do not account statements. + * langhooks-def.h (LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS): + New. + * langhooks.h (lang_hooks_for_tree_inlining): Add + estimate_num_insns + * params.def (max-inline-insns-auto, max-inline-insns-auto): set + to 100. + (max-inline-insns): set to 300. + (min-inline-insns): set to 10. + * tree-inline.c (struct inline_data): Rename inlined_stmts to + inlined-insns. + (INSNS_PER_STMT): Kill. + (inlinable_function_p): Compute and store body size. + (expand_call_inline): Likewise. + (optimize_inline_calls): Likewise. + +2003-07-08 James E Wilson + + PR target/10021 + * emit-rtl.c (set_mem_attribute_minus_bitpos): When handle ARRAY_REF, + loop over new variable t2 instead of t. + +2003-07-08 Danny Smith + + PR bootstrap/11455 + * config/i386/winnt.c: Replace use of error(), warning() with + error_with_decl(), warning_with_decl(), throughout. + +2003-07-08 Neil Booth + + * opts.c (wrap_help): Use unsigned int, not size_t. + +2003-07-08 Stephane Carrez + + * config/m68hc11/m68hc11.h (HAVE_AS_DWARF2_DEBUG_LINE): Don't define + as .file/.loc directives are incompatible with linker relaxation. + +2003-07-08 Zack Weinberg + + * Makefile.in (fixinc.sh): Remove gnu-regex.[ch] from dependencies. + * fixinc/Makefile.in: Remove all references to gnu-regex.[och]. + * fixinc/fixfixes.c, fixinc/fixincl.c, fixinc/fixlib.c + * fixinc/fixtests.c: Use xregexec not regexec, xregcomp not regcomp. + * fixinc/fixlib.h: Include xregex.h not gnu-regex.h. + * fixinc/inclhack.def (hpux10_cpp_pow_inline, hpux11_cpp_pow_inline): + Escape { and } characters which are not part of range expressions. + * fixinc/fixincl.x: Regenerate. + * fixinc/gnu-regex.c, fixinc/gnu-regex.h: Delete file. + +2003-07-08 Steven Bosscher + + PR c/1687 + * tree-inline.c (find_alloca_call): Use + walk_tree_without_duplicates, instead of walk_tree. + (find_builtin_longjmp_call): Likewise. + * c-objc-common.c (c_cannot_inline_fn): Likewise. + * c-semantics.c (find_reachable_label): Likewise. + +2003-07-08 Jakub Jelinek + + PR c/11420 + * config/i386/i386.c (ix86_check_movabs): New function. + * config/i386/i386-protos.h (ix86_check_movabs): New prototype. + * config/i386/i386.md (movabs[shqd]i_1_rex64): Kill broken alternative. + (movabs[shqd]i_[12]_rex64): Add ix86_check_movabs check to conditions. + +2003-07-08 Chris Demetriou + + * Makefile.in (install-po): Cope with empty CATALOGS. + +2003-07-08 Richard Sandiford + + * config/mips/elf64.h (TARGET_ASM_UNIQUE_SECTION): Delete. + (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Delete. + (SECTION_FUNCTION_TEMPLATE): Delete. + * config/mips/elf.h: As for elf64.h. + (ASM_OUTPUT_ALIGNED_BSS): Use named_section rather than sbss_section. + * config/mips/linux.h: As for elf.h + * config/mips/iris6gld.h (TARGET_ASM_UNIQUE_SECTION): Delete. + * config/mips/iris6.h (EXTRA_SECTIONS): Delete. + (EXTRA_SECTION_FUNCTIONS): Remove sdata_section. Remove the handling + of in_sdata from current_section_name and current_section_flags. + * config/mips/iris6gld.h (TARGET_ASM_UNIQUE_SECTION): Delete. + * config/mips/mips.h (sdata_section, sbss_section): Remove prototypes. + (MASK_GP_OPT, TARGET_GP_OPT): Delete. + (MASK_NO_FUSED_MADD): Use MASK_GP_OPT's old value. + (TARGET_SWITCHES): Neuter gpOPT, gpopt, no-gpOPT and no-gpopt. + (SMALL_DATA_SECTION, EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Remove. + * config/mips/mips.c (TARGET_IN_SMALL_DATA_P): Override. + (TARGET_SECTION_TYPE_FLAGS): Override if TARGET_IRIX6. + (mips_classify_symbol): Use SYMBOL_REF_SMALL_P. + (override_options): Remove setting of MASK_GPOPT. + (mips_output_external): Use mips_in_small_data_p to check whether a + symbol needs an .extern directive. Don't emit such directives for + TARGET_EXPLICIT_RELOCS. + (mips_declare_object): Update accordingly. + (mips_select_rtx_section): Call named_section rather than + SMALL_DATA_SECTION. + (mips_select_section): Use default_elf_section_section for everything + except .text string constants. + (mips_in_small_data_p): New function. + (mips_encode_section_info): Remove small data handling. + (mips_unique_section): Delete. + (iris6_section_type_flags): New function. + * doc/tm.texi: Remove documentation of -mgpopt and -mhalf-pic. + +2003-07-08 John David Anglin + + PR Target/11453 + * pa.md: Disparage all mtsar constraints. + (extzv, extv, insv): Don't fail on length of {32|64}. + +2003-07-08 Zack Weinberg + + * system.h: Poison MAP_CHARACTER. + * config/i370/i370-protos.h (mvs_map_char): Delete. + * config/i370/i370.c (ascebc, ebcasc, mvs_map_char): Delete. + * config/i370/i370.h (MAP_CHARACTER): Delete definition. + (ASM_OUTPUT_ASCII): Don't use MAP_CHARACTER. + +2003-07-08 Danny Smith + + * toplev.c (randomize): Correct call to time(). + +2003-07-08 Jakub Jelinek + + * unroll.c (reg_dead_after_loop): Check for reg in REG_EQUAL and + REG_EQUIV notes as well. + +2003-07-08 Kazu Hirata + + * doc/md.texi: Fix the description of addmodecc. + +2003-07-07 Zack Weinberg + + * Makefile.in (top_builddir): Set to "..", not ".". + (INTLLIBS, INTLDEPS): Delete. + (LIBINTL, LIBINTL_DEP, LIBICONV_DEP): New variables to be substituted. + (LIBDEPS): Add $(LIBICONV_DEP). + (LIBS): Take out $(INTLLIBS), add $(LIBINTL) and $(LIBICONV). + (INCLUDES): Replace -I../intl with @INCINTL@. + ($(top_builddir)/intl/libintl.a): Delete rule. + (stage2-start, stage3-start, stage4-start, stageprofile-start, + stagefeedback-start): Use $$ for variable to be evaluated by + shell, not make. + * acconfig.h (ENABLE_NLS, HAVE_CATGETS, HAVE_GETTEXT, + HAVE_LC_MESSAGES, HAVE_STPCPY): Delete. + * aclocal.m4: sinclude ../config/progtest.m4. Add + contents of lcmessage.m4 from gettext distro. + * configure.in: Check for wchar.h and setlocale. Set + LIBICONV_DEP to the empty string and substitute it. + Call AM_LC_MESSAGES. Delete AC_ARG_ENABLE for --enable-nls; + this is handled elsewhere. Use ZW_GNU_GETTEXT_SISTER_DIR, + not CY_GNU_GETTEXT. Clear $LIBICONV if its text is included + in $LIBINTL, to avoid linking it twice. + * configure, config.in: Regenerate. + +2003-07-08 Nathanael Nerode + + * fixinc/mkfixinc.sh: Remove winnt support. + * fixinc/fixinc.winnt: Delete with extreme prejudice. + +2003-07-08 Neil Booth + + * Makefile.in: Update. + * c-opts.c (c_common_handle_option): opt_text now contains the '-'. + * c.opt: Update documentation. + * common.opt: Add some help text. + * opts.c: Include intl.h. + (wrap_help, print_help): New. + (find_opt, handle_option, common_handle_option): opt_text now + contains the '-'. Use print_help to output help. + * opts.h (struct cl_option): New member "help". + * opts.sh: Update to handle help text output and to prepend + options with '-'. + * toplev.c (display_help): Remove some help text. + +2003-07-07 David Edelsohn + Fariborz Jahanian + + * configure.in: Test for PowerPC mfcr field support in assembler. + * config.in, configure: Regenderated. + + * config/rs6000/power4.md: Add mfcrf reservation. + * config/rs6000/rs6000-protos.h (mfcr_operation): Declare. + * config/rs6000/rs6000.c (mfcr_operation): Define. + (print_operand): Add 'Q' case for mfcrf. + * config/rs6000/rs6000.h (TARGET_MFCRF): New. + * config/rs6000/rs6000.md (attribute "type"): Add mfcrf. + (movcc_internal1): Emit optional field operand for mfcr and set + "type" attribute appropriately. + (mfcr SCC): Likewise. + (movesi_from_cr_one): New. + +2003-07-07 Roger Sayle + + * config/i386/i386.md: Correct check-in of incorrect version. + +2003-07-07 Kaveh R. Ghazi + + * bitmap.c (debug_bitmap_file): Merge uses of HOST_PTR_PRINTF with + adjacent stdio calls. + * c-decl.c (c_print_identifier): Likewise. + * mips-tfile.c (write_varray, write_object, allocate_cluster): Likewise. + * print-rtl.c (print_rtx): Likewise. + * print-tree.c (print_node_brief, print_node): Likewise. + * system.h (HOST_PTR_PRINTF): Ensure we have a literal string. + + * configure.in (AC_COMPILE_CHECK_SIZEOF): Check for `void *'. + * config.in, configure: Regenerated. + +2003-07-07 Roger Sayle + + PR target/10979 + * config/i386/i386.md (atan2df3, atan2sf3, atan2xf3, atan2tf3): + Changed to define_expand patterns that copy operand[1] to prevent + it from being clobbered before emitting an atan2?f3_1 insn. + (atan2df3_1, atan2sf3_1, atan2xf_1, atan2tf3_1): New define_insn + patterns that actually specify the behaviour of x87's FPATAN. + +2003-07-07 Jakub Jelinek + + * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Remove bogus + clearing of SYMBOL_FLAG_LOCAL bit. + If vcall_offset fits into signed 16-bit immediate, use + one instruction for both addition and load. + +2003-07-07 Neil Booth + + * opts.c (common_handle_option): Correct handling of the + -falign- switches that do and don't take an argument. + +2003-07-07 Kazu Hirata + + * config/h8300/h8300.md (pushqi1_h8300hs): Revert my patch + today. + (pushhi1_h8300hs): Likewise. + +2003-07-07 Andreas Jaeger + + * genextract.c: Convert remaining prototypes to ISO C90. + + * cpplex.c (_cpp_free_buff): Convert prototype to ISO C90. + * fold-const.c (fold_single_bit_test): Likewise. + * diagnostic.c (default_diagnostic_finalizer): Likewise. + * cfgrtl.c (rtl_redirect_edge_and_branch): Likewise. + + * gengtype.c (write_array): Generate ISO C90 prototypes. + + * genflags.c (gen_proto): Generate ISO C90 prototypes. + +2003-07-07 Roger Sayle + + PR optimization/11059 + * expr.c (can_store_by_pieces): Return true if length is zero. + (store_by_pieces): If length is zero and endp is two, abort, + othwerise, if length is zero and endp is not two, return "to". + (clear_by_pieces): Do nothing if length is zero. + (clear_storage): Do nothing if length is zero. + (store_constructor): Simplify code when size is zero, or the + target has already been cleared. This avoids emitting a + blockage instruction when initializing empty structures. + +2003-07-07 Andreas Jaeger + + * mips-tfile.c: Convert prototypes to ISO C90. + * mips-tdump.c: Convert prototypes to ISO C90. + +2003-07-07 Nathan Sidwell + + * rtl.h (emit_line_note): Take a location_t. + (emit_line_note_force): Remove. + (set_file_and_line_for_statement): Take a location_t. + * tree.g (emit_line_note): Take a location_t. + * emit-rtl.c (emit_line_note): Take a location_t. + (emit_line_note_force): Remove. + * function.c (init_function_start): Adjust emit_line_note call. + (expand_function_end): Use force_next_line_note, not + emit_line_note_force. + * c-parse.in (maybe_type_qual): Adjust emit_line_note calls. + * c-semantics.c (genrtl_do_pushlevel, genrtl_goto_stmt, + genrtl_expr_stmt_value, genrtl_decl_stmt, genrtl_if_stmt, + genrtl_while_stmt, genrtl_do_stmt_1, genrtl_return_stmt, + genrtl_for_stmt, genrtl_break_stmt, genrtl_continue_stmt, + genrtl_continue_stmt, genrtl_switch_stmt, + genrtl_asm_stmt): Likewise. + * expr.c (expand_expr): Likewise. + * integrate.c (expand_inline_function): Likewise. + * stmt.c (set_file_and_line_for_stmt): Take a location_t. + (expand_decl_init): Adjust emit_line_note call. + +2003-07-07 Dale Johannesen + + * config/rs6000/darwin-tramp.asm: Fix trampolines. PR 10900. + +2003-07-07 Andreas Jaeger + + * config/i386/i386-protos.h: Convert prototypes to ISO C90. + * config/i386/i386.c: Likewise. + +2003-07-07 Kazu Hirata + + * config/h8300/h8300.md: Use gen_int_mode instead of + GEN_INT (trunc_int_for_mode (...)). + +2003-07-07 Kazu Hirata + + * config/h8300/h8300.md (pushqi1_h8300hs): Optimize by pushing + 2 bytes and then subtract 2 from the stack pointer. + (pushhi1_h8300hs): Likewise. + +2003-07-07 Nathan Sidwell + + * configure.in (enable_coverage): Remove -DSELF_COVERAGE, add + -frandom-seed. + * configure: Regenerated. + * Makefile.in: Remove extraneous comment. + * toplev.c (randomize): Protect against potential multiple calls. + * doc/invoke.texi (-frandom-seed): Document use for in coverage + files. + +2003-07-07 Richard Kenner + Eric Botcazou + + PR optimization/11198 + * alias.c (objects_must_conflict_p): Return 1 if the types have + the same alias set, not if the alias sets only conflict. + +2003-07-07 Andrew Pinski + + * cppcharset.c (ICONV_CONST): Define iff !HAVE_ICONV. + (convert_cset): Change inbuf to type ICONV_CONST char. + * Makefile.in (LIBS): Add LIBICONV. + + * doc/invoke.texi (-falign-functions): Document that + when n is zero then a machine-dependent default is used. + (-falign-labels): Document that when n is zero then a + machine-dependent default is used and that -falign-labels =1 + is equivalent to -fno-align-labels. + (-falign-loops): Likewise. + (-falign-jumps): Likewise. + +2003-07-06 Art Haas + + * f/global.c (ffeglobal_type_string_): Fix obsolete GCC array + initializer syntax. + +2003-07-06 James E Wilson + + PR optimization/9812 + * rtl.h (mem_for_const_double): Delete prototype. + * varasm.c (mem_for_const_double): Delete function. + * config/m68k/hp320.h, config/m68k/linux.h, config/m68k/m68kelf.h, + config/m68k/m68kv4.h, config/m68k/netbsd-elf.h + (LEGITIMATE_PIC_OPERAND_P): Delete duplicate definitions. + * config/m68k/m68k.h (LEGITIMATE_CONSTANT_P): Disallow XFmode. + (LEGITIMATE_PIC_OPERAND_P): Delete CONST_DOUBLE tests. + * config/m68k/m68k.md (movxf): Add reload_in_progress guard. Add + comment about confused support for XFmode constants. + +2003-07-07 Jan Hubicka + + * cfglayout.c (fixup_reorder_chain): Call delete_dead_jumptables. + +2003-07-06 Kazu Hirata + + * config/h8300/h8300.c: Fix comment typos. + * config/h8300/h8300.md: Likewise. + * config/i386/athlon.md: Likewise. + * config/i386/i386.c: Likewise. + * config/i386/pentium.md: Likewise. + * config/ia64/ia64.c: Likewise. + * config/ia64/itanium1.md: Likewise. + * config/ia64/itanium2.md: Likewise. + * config/m32r/m32r.md: Likewise. + * config/m68hc11/m68hc11.c: Likewise. + * config/mcore/mcore.c: Likewise. + * config/mips/sr71k.md: Likewise. + * config/mips/t-iris5-as: Likewise. + * config/mmix/mmix.h: Likewise. + * config/ns32k/ns32k.h: Likewise. + * config/ns32k/NOTES: Fix a typo. + +2003-07-06 Andreas Jaeger + + * stmt.c: Convert remaining prototypes to ISO C90. + * cfglayout.c: Likewise. + * dbxout.c: Likewise. + * gcc.c: Likewise. + * genemit.c: Likewise. + + * basic-block.h: Convert prototypes to ISO C90. + * c-parse.in: Likewise. + * c-pragma.h: Likewise. + * c-typeck.c: Likewise. + * cfghooks.h: Likewise. + * cfgloopanal.c: Likewise. + * dbxout.h: Likewise. + * debug.h: Likewise. + * dwarf2asm.h: Likewise. + * gcov.c: Likewise. + * gengtype-lex.l: Likewise. + * sched-int.h: Likewise. + * timevar.c: Likewise. + +2003-07-06 Neil Booth + + * c-common.h (c_comon_handle_filename, + c_common_missing_arguement): New. + * c-lang.c (LANG_HOOKS_HANDLE_FILENAME, + LANG_HOOKS_MISSING_ARGUMENT): New. + * c-opts.c (missing_arg): Rename c_common_missing_argument, + update to be an appropriate langhook. + (c_common_handle_option): Don't handle filenames. + (c_common_handle_filename): New. + * hooks.c (hook_void_constcharptr, + hook_bool_constcharptr_size_t_false): New. + * hooks.h (hook_void_constcharptr, + hook_bool_constcharptr_size_t_false): New. + * langhooks-def.h (LANG_HOOKS_HANDLE_FILENAME, + LANG_HOOKS_MISSING_ARGUMENT): New. + (LANG_HOOKS_INITIALIZER): Update. + * langhooks.h (struct lang_hooks): Add handle_filename and + missing_argument. + * opts.c (handle_option): Don't handle filenames here, but ... + (handle_options): ... here. + (common_handle_option): Don't handle missing arguments here. + * objc/objc-lang.c (LANG_HOOKS_HANDLE_FILENAME, + LANG_HOOKS_MISSING_ARGUMENT): New. + +2003-07-06 Neil Booth + + * Makfile.in: Remove traces of mbchar. + * c-parse.in (MULTIBYTE_CHARS): Remove. + * config.in (MULTIBYTE_CHARS): Remove. + * configure: Remove --enable-mbchar. + * configure.in: Remove --enable-mbchar. + * mbchar.c, mbchar.h: Remove. + * system.h: Poison MULTIBYTE_CHARS. + * config/linux-aout.h (MULTIBYTE_CHARS): Remove. + * config/linux.h (MULTIBYTE_CHARS): Remove. + * config/svr4.h (MULTIBYTE_CHARS): Remove. + * config/sparc/linux.h (MULTIBYTE_CHARS): Remove. + +2003-07-06 Andreas Jaeger + + * varray.c (varray_check_failed): Fix typo. + + * unroll.c: Convert prototypes to ISO C90. + * varasm.c: Likewise. + * varray.c: Likewise. + * varray.h: Likewise. + * vmsdbgout.c: Likewise. + * xcoffout.c: Likewise. + * xcoffout.h: Likewise. + +2003-07-06 Nathan Sidwell + + * gcov-io.h: Add a local time stamp. + (struct gcov_info): Add stamp field. + (gcov_truncate): New. + * coverage.c (read_counts_file): Skip the stamp. + (coverage_begin_output): Write the stamp. + (build_gcov_info): Declare and init the stamp. + (coverage_finish): Only unlink data file, if stamp is zero. + * gcov-dump.c (dump_file): Dump the stamp. + * gcov.c (bbg_stamp): New. + (release_structures): Clear bbg_stamp. + (read_graph_file): Read stamp. + (read_count_file): Check stamp. + * libgcov.c (gcov_exit): Check stamp and truncate if needed. + +2003-07-06 Nathan Sidwell + + * tree.h (default_flag_random_seed): Remove. + * toplev.h (local_tick): Declare. + * tree.c (flag_random_seed, default_flag_random_seed): Move to + toplev.c. + (append_random_chars): Don't call default_flag_random_seed. + * toplev.c (flag_random_seed): Define here. Set local_tick. + (local_tick): Define. + (randomize): New, moved from tree.c. + (print_switch_values): Adjust. + (toplev_main): Call randomize. + +2003-07-06 Nathan Sidwell + + * tree.h (crc32_string): Declare. + * tree.c (append_random_chars): Remove. + (crc32_string): New. + (get_file_function_name_long): Use crc32_string here. + +2003-07-06 Andreas Jaeger + + * gcc.c: Convert prototypes to ISO C90. + * gcc.h: Likewise. + * gcov-dump.c: Likewise. + * gcov-iov.c: Likewise. + * gcse.c: Likewise. + * genattrtab.h: Likewise. + * ggc.h: Likewise. + * global.c: Likewise. + * graph.c: Likewise. + * graph.h: Likewise. + * hosthooks.h: Likewise. + * hooks.h: Likewise. + * hooks.c: Likewise. + * hashtable.h: Likewise. + * hashtable.c: Likewise. + * haifa-sched.c: Likewise. + * integrate.h: Likewise. + * integrate.c: Likewise. + * input.h: Likewise. + * ifcvt.c: Likewise. + * jump.c: Likewise. + * langhooks-def.h: Likewise. Add extern to prototypes. + * langhooks.c: Likewise. + * langhooks.h: Likewise. + * lcm.c: Likewise. + * local-alloc.c: Likewise. + * loop-init.c: Likewise. + * loop-unroll.c: Likewise. + * loop-unswitch.c: Likewise. + * loop.c: Likewise. + * loop.h: Likewise. Add extern to prototypes. + * machmode.h: Likewise. + * main.c: Likewise. + * mbchar.c: Likewise. + * mbchar.h: Likewise. + * mkdeps.c: Likewise. + * mkdeps.h: Likewise. + * optabs.c: Likewise. + * optabs.h: Likewise. + * output.h: Likewise. + * gccspec.c: Likwise. + * postreload.c: Likewise. + * prefix.c: Likewise. + * prefix.h: Likewise. + * print-rtl.c: Likewise. + * print-tree.c: Likewise. + * profile.c: Likewise. + * read-rtl.c: Likewise. + * real.c: Likewise. + * real.h: Likewise. + * recog.c: Likewise. + * recog.h: Likewise. + * reg-stack.c: Likewise. + * regclass.c: Likewise. + * regmove.c: Likewise. + * regrename.c: Likewise. + * regs.h: Likewise. + * reload.c: Likewise. + * reload.h: Likewise. + * reload1.c: Likewise. + * reorg.c: Likewise. + * resource.c: Likewise. + * resource.h: Likewise. + * rtl-error.c: Likewise. + * rtl.c: Likewise. + * rtl.h: Likewise. + * rtlanal.c: Likewise. + * sbitmap.c: Likewise. + * sbitmap.h: Likewise. + * scan-decls.c: Likewise. + * scan.c: Likewise. + * sched-deps.c: Likewise. + * sched-ebb.c: Likewise. + * sched-int.h: Likewise. + * sched-rgn.c: Likewise. + * sched-vis.c: Likewise. + * sibcall.c: Likewise. + * simplify-rtx.c: Likewise. + * sreal.c: Likewise. + * sreal.h: Likewise. + * ssa-ccp.c: Likewise. + * ssa-dce.c: Likewise. + * ssa.c: Likewise. + * ssa.h: Likewise. + * stack.h: Likewise. + * stmt.c: Likewise. + * stor-layout.c: Likewise. + * stringpool.c: Likewise. + * target.h: Likewise. + * timevar.c: Likewise. + * timevar.h: Likewise. + * tlink.c: Likewise. + * tracer.c: Likewise. + * tree-inline.c: Likewise. + * tree-inline.h: Likewise. + * tree.c: Likewise. + * tree.h: Likewise. + +2003-07-05 Kazu Hirata + + * combine.c (nonzero_bits1): Fix a warning. + +2003-07-05 Kazu Hirata + + * config/h8300/h8300.c (compute_mov_length): Correct the + length of loading CONST0_RTX (SFmode). + +2003-07-05 Nathan Sidwell + + * toplev.c (output_clean_symbol_name): Remove. + * toplev.h (output_clean_symbol_name): Remove. + * config/alpha/alpha.c (unicosmk_output_module_name): Use + lbasename & clean_symbol_name. + +2003-07-05 Kazu Hirata + + * ggc.h: Follow spelling conventions. + * config/i386/i386.c: Likewise. + * config/i386/winnt.c: Likewise. + * config/rs6000/rs6000.c: Likewise. + +2003-07-05 Kazu Hirata + + * bt-load.c: Fix comment typos. + * c-incpath.c: Likewise. + * cfg.c: Likewise. + * cfgcleanup.c: Likewise. + * cfgloop.h: Likewise. + * cfgloopmanip.c: Likewise. + * cfgrtl.c: Likewise. + * diagnostic.h: Likewise. + * dwarfout.c: Likewise. + * emit-rtl.c: Likewise. + * et-forest.c: Likewise. + * et-forest.h: Likewise. + * expr.c: Likewise. + * gcse.c: Likewise. + * genattr.c: Likewise. + * jump.c: Likewise. + * langhooks.h: Likewise. + * local-alloc.c: Likewise. + * loop-unroll.c: Likewise. + * loop-unswitch.c: Likewise. + * ra-build.c: Likewise. + * regclass.c: Likewise. + * regmove.c: Likewise. + * rtl.def: Likewise. + * rtlanal.c: Likewise. + * sched-ebb.c: Likewise. + * sched-rgn.c: Likewise. + * simplify-rtx.c: Likewise. + * ssa.c: Likewise. + * tracer.c: Likewise. + * tree.c: Likewise. + +2003-07-05 Zack Weinberg + + * cppcharset.c: Use the correct return type for the fallback iconv + macro. + +2003-07-05 Zdenek Dvorak + + Blame to Jan Hubicka + * cfglayout.c (record_effective_endpoints): Split insns before + first basic block correctly. + +2003-07-05 Richard Kenner + + * expr.c (expand_expr, case COMPONENT_REF): When seeing if should use + bitfield operations, use STRICT_ALIGNMENT, not SLOW_UNALIGNED_ACCESS + if EXPAND_CONST_ADDRESS or EXPAND_INITIALIZER. + +2003-07-05 Andreas Jaeger + + * genattrtab.c (write_attr_get): Revert part of last patch to + always write out a prototype. + + * genemit.c (gen_split): Readd lost unused attributes in last + patch. + +2003-07-05 Zdenek Dvorak + + * cfgloopmanip.c (force_single_succ_latches): Force latch to be + different from header. + +2003-07-05 Andreas Schwab + + * config/m68k/m68k.c: Remove code protected by CRDS. + * config/m68k/m68k.md: Likewise. + +2003-07-05 Neil Booth + + PR driver/11417 + * c-opts.c (permit_fortran_options): New. + (c_common_init_options): Accept fortran front end options if + it looks like we might be preprocessing Fortran. + (c_common_handle_option): Don't reject switch if permit_fotran_options. + +2003-07-05 Kaveh R. Ghazi + + * genattr.c (internal_dfa_insn_code): Output prototype. + * genattrtab.c: Don't output unnecessary decls, output in ISO C. + * genautomata.c: Likewise. + * genconditions.c: Likewise. + * genemit.c: Likewise. + * genextract.c: Likewise. + * gengenrtl.c: Likewise. + * gengtype.c: Likewise. + * genopinit.c: Likewise. + * genoutput.c: Likewise. + * genpeep.c: Likewise. + * genrecog.c: Likewise. + +2003-07-04 Zack Weinberg + + * cpplib.h (CPP_AT_NAME, CPP_OBJC_STRING): New token types. + (struct cpp_options): Add narrow_charset, wide_charset, + bytes_big_endian fields. Remove EBCDIC field. + (cpp_init_iconv, cpp_interpret_string): New external interfaces. + + * cpphash.h: Include if we have it, otherwise + provide a dummy definition of iconv_t. + (struct cpp_reader): Add narrow_cset_desc and wide_cset_desc fields. + (_cpp_valid_ucn): Update prototype. + (_cpp_destroy_iconv): New prototype. + + * doc/cpp.texi: Document character set handling. + * doc/cppopts.texi: Document -fexec-charset= and -fexec-wide-charset=. + * doc/extend.texi: Delete entire section on multiline strings. + Rewrite section on __FUNCTION__ etc now that these are + variables in C. + + * cppucnid.tab, cppucnid.pl: New files. + * cppucnid.h: New generated file. + * cppcharset.c: Include cppucnid.h. Lots of commentary added. + (iconv_open, iconv, iconv_close): Provide dummy definitions + if !HAVE_ICONV. + (SOURCE_CHARSET, struct strbuf, init_iconv_desc, cpp_init_iconv, + _cpp_destroy_iconv, convert_cset, width_to_mask, convert_ucn, + emit_numeric_escape, convert_hex, convert_oct, convert_escape, + cpp_interpret_string, narrow_str_to_charconst, + wide_str_to_charconst): New. + (ucn_valid_in_identifier): Use a binary search through the + ucnranges table defined in cppucnid.h, not a long chain of if + statements. + (_cpp_valid_ucn): Add a limit pointer. Downgrade "universal + character names are only valid in C++ and C99" to a warning. + Issue the "meaning of \[uU] is different in traditional C" + warning here. Take care not to let iconv see an invalid UCS + value if we get a malformed UCN. Issue an error if we don't + have iconv. + (cpp_interpret_charconst): Moved here from cpplex.c. Use + cpp_interpret_string to do the heavy lifting. + + * cppinit.c (cpp_create_reader): Initialize bytes_big_endian, + narrow_charset, wide_charset fields of options structure. + (cpp_destroy): Call _cpp_destroy_iconv. + * cpplex.c (forms_identifier_p): Adjust call to _cpp_valid_ucn. + (maybe_read_ucn, hex_digit_value, cpp_parse_escape): Delete. + (cpp_interpret_charconst): Moved to cppcharset.c. + * cpplib.c (dequote_string): Delete. + (interpret_string_notranslate): New. + (do_line, do_linemarker): Use interpret_string_notranslate. + + * Makefile.in (cppcharset.o): Depend on cppucnid.h. + + * c-common.c (fname_string, combine_strings): Delete. + * c-common.h (fname_string, combine_strings): Delete prototypes. + * c-lex.c (ignore_escape_flag): Delete. + (cb_ident): Use cpp_interpret_string, not lex_string. + (get_nonpadding_token): New function. + (c_lex): Handle Objective-C @-prefixed identifiers and strings here. + Adjust calls to lex_string. Don't write *value twice. + (lex_string): Now handles string constant concatenation. + Most of the work handed off to cpp_interpret_string. + Call fix_string_type here. + * c-parse.in (STRING_FUNC_NAME, VAR_FUNC_NAME): Replace with + FUNC_NAME, throughout. + (OBJC_STRING): New token type. + (primary:STRING): No need to call fix_string_type here. + (primary:objc_string): Make that OBJC_STRING. + (objc_string nonterminal): Delete. + (yylexname): Delete code to handle fake string constants. + (yylexstring): Delete entirely. + (_yylex): Handle CPP_AT_NAME and CPP_OBJC_STRING. No need + to handle CPP_ATSIGN. + + * c.opt (-fexec-charset=, -fwide-exec-charset=): New options. + * c-opts.c (missing_arg, c_common_handle_option): Handle + OPT_fexec_charset_ and OPT_fwide_exec_charset_. + (c_common_init): Set cpp_opts->bytes_big_endian, not + cpp_opts->EBCDIC. Call cpp_init_iconv. + (print_help): Document -fexec-charset= and -fexec-wide-charset=. + (TARGET_EBCDIC): Delete default definition. + + * objc/objc-act.c (build_objc_string_object): No need to + handle string constant concatenation. + +2003-07-04 Kazu Hirata + + * doc/install.texi: Fix typos. + * doc/invoke.texi: Likewise. + * doc/tm.texi: Likewise. + +2003-07-04 Kazu Hirata + + * config/pa/fptr.c: Fix comment typos. + * config/pa/pa-64.h: Likewise. + * config/pa/pa.c: Likewise. + * config/pa/pa.h: Likewise. + * config/rs6000/603.md: Likewise. + * config/rs6000/7xx.md: Likewise. + * config/rs6000/darwin.h: Likewise. + * config/rs6000/freebsd.h: Likewise. + * config/rs6000/rs6000.c: Likewise. + * config/rs6000/rs6000.md: Likewise. + * config/rs6000/spe.h: Likewise. + +2003-07-04 Ulrich Weigand + + * config/s390/2064.md: Change GNU CC to GCC. + * config/s390/2084.md: Likewise. + * config/s390/fixdfdi.h: Likewise. + * config/s390/linux.h: Likewise. + * config/s390/s390-modes.def: Likewise. + * config/s390/s390-protos.h: Likewise. + * config/s390/s390.c: Likewise. + * config/s390/s390.h: Likewise. + * config/s390/s390.md: Likewise. + * config/s390/s390x.h: Likewise. + +2003-07-04 Jeff Law + + PR c/11428 + * expr.c (do_store_flag): Pass in the correct result type + when calling fold_single_bit_test. + * fold-const.c (fold_single_bit_test): Use result_type for the + result when folding a sign bit test. + +2003-07-04 Neil Booth + + * opts.c (common_handle_options): Negate sense of -falign- switches. + +2003-07-04 H.J. Lu + + * Makefile.in: Replace PWD with PWD_COMMAND. + +2003-07-04 Zdenek Dvorak + + * cfgloopanal.c (count_strange_loop_iterations): New static function. + (constant_iterations, count_loop_iterations, simple_loop_exit_p): + Handle strange loops. + +2003-07-04 Toon Moene + + * install.texi: Even the g77 manpage is derived from + the full g77 manual. + +2003-07-04 Zack Weinberg + + * ABOUT-NLS: Delete. + * intl: Delete entire directory. + * aclocal.m4: Include ../config/gettext.m4. Delete + AC_ISC_POSIX, AM_LANGINFO_CODESET, jm_GLIBC21, AM_LC_MESSAGES, + AM_PATH_PROG_WITH_TEST, AM_WITH_NLS, and AM_GNU_GETTEXT. + * configure.in: Use CY_GNU_GETTEXT, not AM_GNU_GETTEXT. + Remove intl/Makefile from all_outputs. + * configure, config.in: Regenerate. + * Makefile.in: Expunge all references to intl subdirectory. + Add -I../intl to INCLUDES. + * intl.h: Include libintl.h if and only if ENABLE_NLS is defined. + +2003-07-04 Roger Sayle + + * config/rs6000/aix51.h (TARGET_C99_FUNCTIONS): Define. + * config/rs6000/aix52.h (TARGET_C99_FUNCTIONS): Likewise. + +2003-07-04 Danny Smith + + PR c++/5287, PR c++/7910, PR c++/11021 + * config/i386/winnt.c (ix86_handle_dll_attribute): Don't add + dllimport attribute if function is defined at declaration, but + report error instead. Likewise for dllimport'd variable + definitions. Set implicit TREE_PUBLIC for dllimport'd variables + declared within functions, Report error if dllimport or dllexport + symbol is not global. + (i386_pe_dllimport_p): Ignore dllimport attribute of functions + if defined after declaration or if inlined. Don't allow definition + of static data members of C++ classes. Don't dllimport virtual + methods. + (i386_pe_mark_dllexport): Warn about inconsistent dll attributes. + (i386_pe_mark_dllimport): Remove unnecessary checks. + (i386_pe_encode_section_info): Warn if the dllimport attribute + and symbol prefix have been instantiated and then overridden. + + * doc/extend.texi: Document dllimport and dllexport attributes. + + * config/i386/winnt.c (i386_pe_output_labelref): Fix indents. + +2003-07-03 Uwe Stieber + + * config/kaos.h (CPP_PREDEFINES): Delete. + (TARGET_OS_CPP_BUILTINS): New. + +2003-07-03 Kaveh R. Ghazi + + * c-aux-info.c: Include toplev.h after c-tree.h. + * c-common.c: Likewise. + (GCC_DIAG_STYLE): Undef. + * c-semantics.c (GCC_DIAG_STYLE): Define. + * c-tree.h (GCC_DIAG_STYLE): Likewise. + * diagnostic.h (inform): Move prototype to toplev.h. + * jump.c: Include diagnostic.h before toplev.h. + * toplev.h (GCC_DIAG_STYLE, ATTRIBUTE_GCC_DIAG): Define. + (warning, error, fatal_error, pedwarn, sorry, inform, + error_for_asm, warning_for_asm): Mark with ATTRIBUTE_GCC_CXXDIAG. + +2003-07-03 Zdenek Dvorak + + * cfglayout.c (cfg_layout_duplicate_bb): Do not update frequencies + at all if edge is not specified. + (can_copy_bbs_p, copy_bbs): New. + * cfglayout.h (can_copy_bbs_p, copy_bbs): Declare. + * cfgloop.c (get_loop_body): Comment more precisely. + * cfgloopmanip.c (copy_bbs, record_exit_edges): Removed. + (scale_bbs_frequencies): Fix comment typo. + (can_duplicate_loop_p): Use can_copy_bbs_p. + (duplicate_loop_to_header_edge): Simplify by using copy_bbs. + +2003-07-03 Devang Patel + + * c-opts.c (c_common_parse_file): Remove extra + debug_hooks->start_source_file call. + +2003-07-03 Roger Sayle + + * real.c (real_trunc, real_floor, real_ceil): New functions + to implement trunc, floor and ceil respectively. + * real.h (real_trunc, real_floor, real_ceil): Prototype here. + * builtins.c (integer_valued_real_p): New function to test if + a floating point expression has an integer valued result. + (fold_trunc_transparent_mathfn): Optimize foo(foo(x)) as + foo(x) where foo is an integer rounding function. Similarly, + optimize foo(bar(x)) as bar(x), and foo((double)(int)x) as + (double)(int)x when both foo and bar are integer rounding + functions and we don't need to honor errno. + (fold_builtin_trunc, fold_builtin_floor, fold_builtin_ceil): + New functions to fold trunc, floor and ceil. + (fold_builtin): Use fold_builtin_trunc to fold BUILT_IN_TRUNC*, + fold_builtin_floor to fold BUILT_IN_FLOOR* and fold_builtin_ceil + to fold BUILT_IN_CEIL*. + * fold-const.c (tree_expr_nonnegative_p): Handle FLOAT_EXPR and + the remaining integer rounding functions. + +2003-07-03 Eric Botcazou + + * config/sparc/sparc.c (function_arg_partial_nregs): Use + SPARC_INT_ARG_MAX to determine where to split unnamed + complex FP arguments. + +2003-07-03 Jan Hubicka + + * basic-block.h (create_basic_block, merge_blocks_nomove): Kill. + * cfgcleanup.c (merge_blocks): Rename to merge_blocks_move. + (merge_blocks_move_predecessor_nojumps, + merge_blocks_move_successor_nojumps): Use merge_blocks. + (try_optimize_cfg): Use merge_blocks_move. + * cfgrtl.c (create_basic_block): Rename to rtl_create_basic_block. + (merge_blocks_nomove): Rename to rtl_merge_blocks. + (cfg_layout_create_basic_block): New. + (rtl_can_merge_blocks): New. + (cfg_layout_split_block): Do not alloc aux by hand. + * cfghooks.h (cfg_hooks): Add create_basic_block, can_merge_blocks_p, + merge_blocks. + (create_basic_block, can_merge_blocks_p, merge_blocks): New macros. + * cfglayout.c (cfg_layout_duplicate_bb): Do not allocate aux by hand. + * cfgloopmanip.c (loop_split_edge_with): Likewise. + * ifcvt.c (merge_if_block): Use merge_blocks_nomove. + + * basic-block.h (basic_block_def): Add field 'rbi'. + * bb-reorder.c (find_traces, rotate_loop, mark_bb_visited, + find_traces_1_round, copy_bb, connect_traces): Update use of rbi. + * cfg.c (entry_exit_blocks): Add new field. + * cfglayout.c: Include alloc-pool.h; + (cfg_layout_pool): New. + (record_effective_endpoints, fixup_reorder_chain, + fixup_fallthru_exit_predecessor, cfg_layout_duplicate_bb): Update use + of rbi. + (cfg_layout_initialize_rbi): New function. + (cfg_layout_initialize): Use it. + (cfg_layout_finalize): Clear rbi fields. + * cfglayout.h (RBI): Kill. + (cfg_layout_initialize_rbi): Declare. + * cfgloopmanip.c (copy_bbs): Use rbi. + (record_exit_edges): Likewise. + (duplicate_loop_to_header_edge): Likewise. + * cfgrtl.c (cfg_layout_create_basic_block): Use + cfg_layout_initialize_rbi. + (cfg_layout_split_block): Use rbi. + (cfg_layout_delete_block): Likewise. + * loop-init.c (loop_optimizer_finalize): Likewise. + * loop-unswitch.c (unswitch_loop): Likewise. + * tracer.c (seen, tail_duplicate, layout_superblocks): Likewise. + + * cfgrtl.c: Update comments. + (try_redirect_by_replacing_jump): New argument. + (redirect_branch_edge): Break out from ... + (rtl_redirect_edge_and_branch): ... this one. + (update_cfg_after_block_merging): Break out from ... + (rtl_merge_blocks): ... this one. + (cfg_layout_split_edge): New. + (cfg_layout_merge_blocks): New. + (cfg_layout_can_merge_blocks_p): New. + (cfg_layout_redirect_edge_and_branch): Reorganize. + (cfg_layout_rtl_cfg_hooks): Fill in. + (cfg_layout_delete_block): Kill barriers. + * cfganal.c (can_fallthru): Deal with exit blocks + * cfglayout.c (cfg_layout_function_header): New function + (record_effective_endpoints): Record function header. + (fixup_reorder_chain): Fixup dead jumptables; place header + + * basic-block.h (CLEANUP_CFGLAYOUT): New flag. + * bb-reorder.c (cfg_layout_initialize): Update call. + * cfgcleanup.c (try_optimize_cfg): Supress optimizations of fallthru + edges in cfglayout mode. + * cfglayout.c (cleanup_unconditional_jumps): Kill. + (cfg_layout_initialize): Kill agrument loops; use cfgcleanup. + * cfglayout.h (cfg_layout_initialize): Update prototype. + * cfgloop.h (CP_INSIDE_CFGLAYOUT): Kill. + * cfgloopmanip.c (loop_split_edge_with): Use split_edge. + * flow.c (propagate_block): Do not crash when basic block ends + by first insn in the chain. + * loop-init.c (loop_optimizer_init): First enter cfglayout mode; later + do loop discovery. + * tracer.c (tracer): Update call of cfg_layout_initialize. + +2003-07-03 Kaveh R. Ghazi + + * Makefile.in: Use dependency variables in lieu of explicit + files throughout. + +2003-07-03 Steven Bosscher + + * rtl.h (ECF_*, flags_from_decl_or_type): Move from here... + * tree.h: ...to here. + +2003-07-03 Kazu Hirata + + * config/s390/2064.md: Fix comment typos. + * config/s390/2084.md: Likewise. + * config/s390/s390.c: Likewise. + * config/s390/s390.md: Likewise. + * config/sh/sh.c: Likewise. + * config/sh/sh.h: Likewise. + * config/sh/sh.md: Likewise. + * config/sparc/sparc.c: Likewise. + * config/sparc/sparc.h: Likewise. + * config/sparc/sparc.md: Likewise. + * config/stormy16/stormy16.c: Likewise. + * config/stormy16/stormy16.h: Likewise. + * config/stormy16/stormy-abi: Fix a typo. + +2003-07-03 Kelley Cook + + * Makefile.in (ifcvt.o): Depend on OPTABS_H. + +2003-07-03 Kaveh R. Ghazi + + * config/mips/mips.h (save_argv): Delete. + +2003-07-03 Roger Sayle + + PR target/10700 + * fold-const.c (extract_muldiv_1): There's nothing that can be done + if the expression is a SAVE_EXPR. + +2003-07-03 Kazu Hirata + + * config/m32r/m32r.c: Fix comment typos. + * config/m68hc11/m68hc11.c: Likewise. + * config/m68hc11/m68hc11.h: Likewise. + * config/m68k/m68k.c: Likewise. + * config/mcore/mcore.c: Likewise. + * config/mcore/mcore.h: Likewise. + * config/mcore/mcore.md: Likewise. + * config/mips/mips.c: Likewise. + * config/mips/mips.h: Likewise. + * config/mips/mips.md: Likewise. + * config/mips/netbsd.h: Likewise. + * config/mn10300/mn10300.c: Likewise. + +2003-07-03 Andreas Schwab + + * dbxout.c (pending_bincls): Move decl down inside + DBX_DEBUGGING_INFO || XCOFF_DEBUGGING_INFO section. + +2003-07-02 Nathan Sidwell + + * rtl.h (NOTE_DATA): Refer to whole union. + * emit-rtl.c (emit_note): Use memset to clear NOTE_DATA. + +2003-07-03 Eric Botcazou + + PR optimization/11381 + * simplify-rtx.c (simplify_relational_operation): Check that + two equal operands have no side-effects before simplifying + the comparison. + +2003-07-02 Jeff Law + + * expr.c (do_store_flag): Remove special case folding for + single bit tests. Instead call back into the commonized folder + routine. + * fold-const.c (fold_single_bit_test): New function, mostly + extracted from do_store_flag, with an additional case extracted + from fold. + (fold): Call fold_single_bit_test appropriately. + * tree.h (fold_single_bit_test): Prototype. + +2003-07-02 Zack Weinberg + + * system.h: Include filenames.h. + (IS_DIR_SEPARATOR, IS_ABSOLUTE_PATHNAME): Don't define. + (DIR_SEPARATOR, DIR_SEPARATOR_2): If not already defined, + define based on HAVE_DOS_BASED_FILE_SYSTEM. + * config/i386/xm-cygwin.h, config/i386/xm-djgpp.h + * config/i386/xm-mingw32.h: Don't define + HAVE_DOS_BASED_FILE_SYSTEM, + DIR_SEPARATOR, or DIR_SEPARATOR_2. + * doc/hostconfig.texi: Update to match. + + * cppfiles.c, gcc.c, gensupport.c, protoize.c, + config/i386/cygwin.h: + Use IS_ABSOLUTE_PATH throughout. + * gcc.c (DIR_UP): Delete, unused. + * protoize.c (IS_SAME_PATH): Define in terms of + FILENAME_CMP. + (is_abspath): Delete. + +2003-07-02 Kazu Hirata + + * config/i386/emmintrin.h: Fix comment typos. + * config/i386/i386.c: Likewise. + * config/i386/i386.h: Likewise. + * config/i386/sco5.h: Likewise. + * config/ia64/ia64.c: Likewise. + * config/ia64/itanium2.md: Likewise. + +2003-07-02 H.J. Lu + + * dbxout.c (pending_bincls): Replace DBX_USE_BINCLS with + DBX_USE_BINCL. + (emit_bincl_stab): Same. + (emit_pending_bincls): Same. + +2003-07-02 Kazu Hirata + + * config/h8300/h8300.c (compute_mov_length): Fix the length of + loading CONST0_RTX (SFmode). + * config/h8300/h8300.h (CONST_DOUBLE_OK_FOR_LETTER_P): Change + 'G' to CONST0_RTX (SFmode). + * config/h8300/h8300.md (movsf_h8300): Change the first + constraint to 'G'. + (movsf_h8300h): Likewise. + +2003-07-02 Neil Booth + + * c-common.h (c_common_init_options): New prototype. + * c-opts.c (deferred_size): Remove. + (defer_opt): Array is now pre-allocated. + (c_common_init_options): Pre-allocate deferred_opts. Make + lang_flags unsigned. + (push_command_line_options): Free deferred_opts. + * hooks.c (hook_uint_uint_constcharptrptr_0): New. + * hooks.h (hook_uint_uint_constcharptrptr_0): New. + * langhooks-def.h (LANG_HOOKS_INIT_OPTIONS): Update. + * langhooks.h (struct lang_hooks): New prototype for init_options. + * main.c (main): Cast argv. + * opts.c (handle_option, handle_options): Update prototypes. + (decode_options): save_argc, save_argv are not global. Constify. + * opts.h (decode_options): New prototype. + * toplev.c (general_init): New protoype. + (save_argv): Make static. + (save_argc): Remove. + (print_switch_values, general_init): Constify. + (toplev_main): Save argv. + * toplev.h (toplev_main): Update prototype. + (save_argc, save_argv): Remove. + +2003-07-02 David Edelsohn + + * dbxout.c (pending_bincls): Guard with DBX_USE_BINCLS. + (emit_bincl_stab): Same. + (emit_pending_bincls): Same. + +2003-07-02 Nathan Sidwell + + PR c++/11072 + * ginclude/stddef.h (offsetof): Remove cast to 'char &'. Explain why. + +2003-07-02 Andreas Schwab + + * dbxout.c (pending_bincls): Only define if DBX_DEBUGGING_INFO. + +2003-07-02 Eric Botcazou + + PR optimization/11210 + * expr.c (handled_component_p) [NOP_EXPR]: Add ??? note + about the behaviour with regard to bitfields. + * fold-const (decode_field_reference): Record outermost type in + case the expression is a NOP. Strip all NOPs. Set the signedness + to that of the outermost type (if any) when the bitsize is equal + to the size of the type. + +2003-07-02 Richard Sandiford + + * config/mips/mips.md (addsi3): Remove workaround for adds of -32768. + (addsi3_internal, adddi3, adddi3_internal_2): Likewise. + (adddi3_internal_3, addsi3_internal_2): Likewise. + +2003-07-02 Richard Sandiford + + * config/mips/mips.c (machine_function): Add new fields: + ignore_hazard_length_p and all_noreorder_p. + (mips_flag_delayed_branch): New variable. + (override_options): Treat '/' as an operand punctuation character. + Set up mips_flag_delayed_branch. + (print_operand): Handle '/'. + (mips_output_function_prologue): Put the whole function in + .set noreorder and .set nomacro if all_noreorder_p is true. + (mips_output_function_epilogue): End the noreorder/nomacro sequence. + (mips16_optimize_gp): Remove "first insn" parameter. + (mips16_lay_out_constants): New function, split out from mips_reorg. + (mips_avoid_hazard, mips_avoid_hazards): New functions. + (mips_reorg): For mips16 code, call mips16_lay_out_constant + and (optionally) mips16_optimize. If TARGET_EXPLICIT_RELOCS, + do delayed-branch scheduling followed by hazard detection. + (mips_adjust_insn_length): Only account for hazards if + !ignore_hazard_length_p. + (mips_output_load_label): Add a nop to the o32 sequence if + the target suffers from load delays. + (mips_output_conditional_branch): Add %/ to the end of branches. + (mips_output_division): Fill the branch delay slot with %#. + * config/mips/mips.md: Remove redundant '%*' from mips16 branch + instructions. End all other %* branches with %/. + (ffssi2, ffsdi2): Fix lengths. + (truncdisi2, truncdihi2, truncdiqi2): Add store attributes. + (fix_truncdfsi2_macro): Turn off .set nomacro if appropriate. + (fix_truncsfsi2_macro): Likewise. + (mov_lwl): Set hazard to "none". + (ashldi3_internal): Fill the branch delay slot with %#. + (ashrdi3_internal, lshrdi3_internal): Likewise. + (exception_receiver): Explicitly set $28. + (hazard_nop): New pattern. + +2003-07-02 Jan Hubicka + + * cgraphunit.c (cgraph_finalize_unit): Set current_function_decl + before calling tree_inlinable_function_p. + +2003-07-02 Rainer Orth + + * fixinc/inclhack.def (irix_stdio_va_list): Apply to IRIX 6.5 + too. + (stdio_va_list): Apply to IRIX 6.5 and + too. + Substitute va_list uses in inline definition. + * fixinc/fixincl.x: Regenerate. + +2003-07-02 Rainer Orth + + * config/mips/iris5.h (SET_FILE_NUMBER): Moved here from iris3.h. + Undef before redefinition. + (LABEL_AFTER_LOC): Likewise. + (DEFAULT_SIGNED_CHAR): Likewise. + (ASM_OUTPUT_ASCII): Moved here from iris4.h. + Fix IRIX spelling. + + * config/mips/iris3.h: Remove, unused. + * config/mips/iris4.h: Likewise. + + * config/mips/mips.h (STACK_ARGS_ADJUST): Remove, unused. + + * config/mips/iris5.h (TARGET_DEFAULT): Move ... + * config.gcc (mips-sgi-irix6*o32, mips-sgi-irix5*): ... here to + target_cpu_default. + + * config/mips/iris5.h: Move explicit includes ... + * config.gcc (mips-sgi-irix6*o32, mips-sgi-irix5*): ... here. + + * config/mips/iris6.h (MIPS_ISA_DEFAULT, MIPS_ABI_DEFAULT): Move ... + * config.gcc (mips-sgi-irix6*, mips-sgi-irix5cross64): ... here to + tm_defines. + + * config/mips/iris6.h (TARGET_DEFAULT): Move ... + * config.gcc (mips-sgi-irix6*, mips-sgi-irix5cross64): ... here to + target_cpu_default. + + * config/mips/iris6.h: Fix IRIX spelling. + (MULTILIB_DEFAULTS): Undef before redefinition. + + * config/mips/iris6.h: Move explicit includes ... + * config.gcc (mips-sgi-irix6*, mips-sgi-irix5cross64): ... here. + +2003-07-02 Jan Hubicka + + * cgraph.c (cgraph_mark_needed_node, cgraph_varpool_mark_needed_node, + cgraph_varpool_finalize_decl, cgraph_varpool_assemble_pending_decls): + Use next_needed field instead of aux to maintain the queue. + * cgraph.h (cgraph_node): Add next_needed. + (cgraph_varpool_node): Add next_needed; remove aux. + * cgraphunit.c (cgraph_finalize_compilation_unit): Use next_needed. + +2003-07-02 Jan Hubicka + + * cgraphunit.c (cgraph_finalize_function): Set finalized. + (cgraph_finalize_function): Do not examine inlinablility. + (cgraph_finalize_compilation_unit): Do it here. + * cgraph.h (cgraph_local_info): Add finalized field. + +2003-07-02 Rainer Orth + + * ggc-common.c (gt_pch_save): Cast MAP_FAILED to void *. + (gt_pch_restore): Likewise. + +2003-07-01 Kazu Hirata + + * config/alpha/alpha.c: Fix comment typos. + * config/alpha/elf.h: Likewise. + * config/arm/arm.c: Likewise. + * config/arm/arm.h: Likewise. + * config/arm/arm.md: Likewise. + * config/arm/t-arm-coff: Likewise. + * config/arm/t-strongarm-pe: Likewise. + * config/arm/xscale-elf.h: Likewise. + * config/avr/avr.h: Likewise. + +2003-07-01 Jeff Law + + * stmt.c (any_pending_cleanups): Remove another redundant test. + +2003-07-01 David Edelsohn + J"orn Rennecke + + * config/rs6000/rs6000.md (ctr{s,d}i_internal?): Add earlyclobber + for MEM case. + +2003-07-01 Devang Patel + + * dbxout.c (DBXOUT_DECR_NESTING): Emit pending bincls, if required. + (binclstatus): New. + (struct dbx_file): New members - bincl_status, pending_bincl_name and + prev. + (pending_bincls): New. + (dbxout_init): Initialize new dbx_file members. + (dbxout_start_source_file): Same. + (emit_bincl_stab): New function. + (emit_pending_bincls): Same. + (emit_pending_bincls_if_required): Same. + (dbxout_end_source_file): Emit EINCL stab only if BINCL is already + processed. + (dbxout_begin_block): Emit pending BINCL stabs. + (dbxout_end_block): Same. + (dbxout_function_decl): Same. + (dbxout_continue): Same. + (dbxout_type): Same. + (dbxout_class_name_qualifiers): Same. + (dbxout_symbol): Same. + (dbxout_symbol_location): Same. + (dbxout_parms): Same. + +2003-07-01 Kaveh R. Ghazi + + * c-semantics.c (genrtl_case_label): Fix format specifier bug. + * cfgrtl.c (rtl_verify_flow_info_1): Likewise. + +2003-07-01 Andreas Jaeger + + * fold-const.c: Convert prototypes to ISO C90. + * function.c: Likewise. + * function.h: Likewise. + +2003-07-01 Kazu Hirata + + * doc/contrib.texi: Fix typos. + * doc/invoke.texi: Likewise. + * doc/passes.texi: Likewise. + * doc/sourcebuild.texi: Likewise. + * doc/tm.texi: Likewise. + +2003-07-01 Kazu Hirata + + * basic-block.h: Fix comment typos. + * bb-reorder.c: Likewise. + * c-format.c: Likewise. + * cfgcleanup.c: Likewise. + * cfghooks.h: Likewise. + * cfgloop.c: Likewise. + * cfgloopmanip.c: Likewise. + * cfgrtl.c: Likewise. + * cgraph.h: Likewise. + * cgraphunit.c: Likewise. + * combine.c: Likewise. + * convert.c: Likewise. + * dbxout.c: Likewise. + * df.c: Likewise. + * df.h: Likewise. + * diagnostic.c: Likewise. + * dwarf2out.c: Likewise. + * et-forest.h: Likewise. + * flow.c: Likewise. + * fold-const.c: Likewise. + * function.h: Likewise. + * gcov-io.h: Likewise. + * gcov.c: Likewise. + * gcse.c: Likewise. + * genautomata.c: Likewise. + * ggc-common.c: Likewise. + * ggc-page.c: Likewise. + * loop-unroll.c: Likewise. + * loop-unswitch.c: Likewise. + * loop.c: Likewise. + * mips-tfile.c: Likewise. + * optabs.c: Likewise. + * ra-build.c: Likewise. + * ra-colorize.c: Likewise. + * ra-rewrite.c: Likewise. + * ra.h: Likewise. + * regmove.c: Likewise. + * reload.c: Likewise. + * rtlanal.c: Likewise. + * sched-ebb.c: Likewise. + * sched-int.h: Likewise. + * sched-vis.c: Likewise. + * sreal.c: Likewise. + * ssa-ccp.c: Likewise. + * ssa.c: Likewise. + * toplev.c: Likewise. + * tree-inline.c: Likewise. + * value-prof.c: Likewise. + * value-prof.h: Likewise. + +2003-07-01 Nathan Sidwell + + * rtl.h (emit_line_note_after): Remove. + (emit_note_copy_after, emit_note_copy): New. + * emit-rtl.c (reorder_insns_with_line_notes): Replace + emit_line_note_after with emit_note_copy_after. + (emit_insn_after_with_line_notes): Likewise. + (emit_line_note_after): Kill. + (emit_note_copy_after): New. + (emit_note_copy): New. + * function.c (emit_return_into_block): Use emit_note_copy_after. + (thread_prologue_and_epilogue_insns): Likewise. + * integrate.c (expand_inline_function): Use emit_note_copy. + (copy_insn_list): Likewise. + * unroll.c (copy_loop_body): Likewise. + * cfglayout.c (duplicate_insn_chain): Likewise. + +2003-07-01 Nathan Sidwell + + * c-tree.h (define_label): Replace filename and lineno arguments + with a location_t. + * c-decl.c (poplevel): Adjust define_label call. + (pop_label_level): Likewise. + (define_label): Replace filename and lineno arguments with a + location_t. + (store_parm_decls): Use DECL_SOURCE_LOCATION. + * c-parse.in (label): Adjust define_label call. + +2003-07-01 Neil Booth + + * config/sol2.h, config/alpha/alpha.h, config/alpha/linux.h, + config/i386/i386-interix.h, config/ia64/hpux.h, config/mips/iris6.h, + config/mips/linux.h, config/mips/mips.h, config/pa/pa-hpux.h, + config/pa/pa-hpux10.h, config/pa/pa-hpux11.h, config/pa/pa-pro-end.h, + config/pa/pa.h, config/pa/rtems.h: Use c_dialect_ macros. + +2003-07-01 Andreas Jaeger + + * final.c: Convert prototypes to ISO C90. + * flow.c: Likewise. + * flags.h: Likewise. + * gcov-io.c: Likewise. + * gcov-io.h: Likewise. + +See ChangeLog.9 for earlier changes. diff --git a/gcc/ChangeLog.8 b/gcc/ChangeLog.8 index e28ee99dae7..37774eebf50 100644 --- a/gcc/ChangeLog.8 +++ b/gcc/ChangeLog.8 @@ -1,4 +1,3 @@ - 2002-12-31 Kazu Hirata * config/h8300/h8300-protos.h: Update the prototypes.