2000-08-26 Michael Hayes * loop.c (prescan_loop): Move checks for NOTE_INSN_LOOP_CONT and NOTE_INSN_LOOP_VTOP to... (find_and_verify_loops) ...here. Fri Aug 25 04:21:13 2000 Alexandre Oliva * crtstuff.c (CRT_CALL_STATIC_FUNCTION): Define default. (fini_dummy, init_dummy): Use it. Fri 25-Aug-2000 08:03:27 BST Neil Booth * cpplex.c (is_macro_disabled): Caller has already checked that we're not a preprocessed file. 2000-08-24 Mark Mitchell * Makefile.in (C_AND_OBJC_OBJS): Remove c-iterate.o. (c-iterate.o): Remove target. * gcc/c-common.h (enum rid): Remove RID_ITERATOR. * gcc/c-decl.c (init_decl_processing): Remove call to init_iterators. (finish_decl): Don't handle iterators. (grokdeclarator): Likewise. * gcc/c-parse.gperf: Remove __iterator and __iterator__ keywords. * gcc/c-gperf.h: Regenerated. * gcc/c-iterate.c: Removed. * gcc/c-lex.c (init_lex): Don't handle iterators. * gcc/c-parse.in (primary): Remove pop_iterator_stack call. (compstmt_primary_start): Remove push_iterator_stack call. (stmt): Don't allow iterator statements. Replace iterator_expand with expand_expr_stmt. (all_iter_stmt): Remove. (all_iter_stmt_simple): Likewise. (all_iter_stmt_with_decl): Likewise. * gcc/c-tree.h (ITERATOR_P): Remove. (ITERATOR_BOUND_P): Likewise. (init_iterators): Remove declaration. (iterator_expand): Likewise. (iterator_for_loop_start): Likewise. (iterator_for_loop_end): Likewise. (iterator_for_loop_record): Likewise. (push_iterator_stack): Likewise. (pop_iterator_stack): Likewise. * gcc/c-typeck.c (decl_constant_value): Don't check ITERATOR_P. (readonly_warning): Likewise. * gcc/tree.h (ITERATOR_BOUND_P): Don't mention it. 2000-08-24 Jim Wilson * c-common.c (decl_attributes, case A_ALIGN): Revert last change. Copy type in a TYPE_DECL, just like pushdecl does. 2000-08-24 Richard Henderson * toplev.c (main): Enable flag_reorder_blocks at -O2. 2000-08-24 Zack Weinberg * ggc-page.c (alloc_page): If HAVE_MMAP_ANYWHERE and we're asked for one page, allocate GGC_QUIRE_SIZE of them and put the extras on the free list. (release_pages): Clean up. (ggc_set_mark): Don't adjust G.allocated here... (sweep_pages): ... do it here. 2000-08-24 Zack Weinberg * cppfiles.c (read_include_file): Rearrange initializations. 2000-08-24 Richard Henderson * stmt.c (expand_asm_operands): Treat EXTRA_CONSTRAINT like g or X. * config/ia64/ia64-protos.h: Update. * config/ia64/ia64.c (gr_register_operand): New. (fr_register_operand, grfr_register_operand): New. (gr_nonimmediate_operand, grfr_nonimmediate_operand): New. (grfr_reg_or_8bit_operand): New. (gr_reg_or_0_operand): Rename from reg_or_0_operand and use gr_register_operand. (gr_reg_or_5bit_operand, gr_reg_or_6bit_operand): Likewise. (gr_reg_or_8bit_operand, gr_reg_or_8bit_adjusted_operand): Likewise. (gr_reg_or_8bit_and_adjusted_operand): Likewise. (gr_reg_or_14bit_operand, gr_reg_or_22bit_operand): Likewise. (fr_reg_or_fp01_operand): Likewise. (not_postinc_memory_operand): New. (ia64_split_timode): Remove unused variables. (rtx_needs_barrier): Check arguments to cmpxchg. (builtin_description): Remove. (bdesc_2argsi, bdesc_2argdi): Remove. (ia64_init_builtins): Declare all builtins directly. (ia64_expand_fetch_and_op): Rewrite to be called from ia64_expand_builtin directly. Use expand_binop and co. (ia64_expand_op_and_fetch): Likewise. (ia64_expand_compare_and_swap): Likewise. (ia64_expand_binop_builtin): Remove. (ia64_expand_lock_test_and_set): New. (ia64_expand_lock_release): New. (ia64_expand_builtin): Use them. * config/ia64/ia64.h (CONSTRAINT_OK_FOR_S): New. (EXTRA_CONSTRAINT): Use it. (PREDICATE_CODES): Update. * config/ia64/ia64.md (*): Use gr_register_operand and co. (mf): Indicate that we set memory as well as use it. (fetchadd_acq_si): Show memory being modified as well. (fetchadd_acq_di, cmpxchg_acq_si, cmpxchg_acq_di): Likewise. (val_compare_and_swap_si, val_compare_and_swap_di): Remove. (lock_test_and_set_si, lock_test_and_set_di): Remove. (fetch_and_add_si, fetch_and_sub_si, fetch_and_or_si): Remove. (fetch_and_and_si, fetch_and_xor_si, fetch_and_nand_si): Remove. (fetch_and_add_di, fetch_and_sub_di, fetch_and_or_di): Remove. (fetch_and_and_di, fetch_and_xor_di, fetch_and_nand_di): Remove. (add_and_fetch_di, sub_and_fetch_di, or_and_fetch_di): Remove. (and_and_fetch_di, xor_and_fetch_di, nand_and_fetch_di): Remove. (add_and_fetch_si, sub_and_fetch_si, or_and_fetch_si): Remove. (and_and_fetch_si, xor_and_fetch_si, nand_and_fetch_si): Remove. * config/ia64/ia64intrin.h (*): Cast result to the appropriate return type. Pretty print definitions. 2000-08-24 Jim Wilson * config/ia64/ia64.md (movdi): Don't call gen_movdi_symbolic if we have a SYMBOL_REF with SYMBOL_REF_FLAG set. 2000-08-24 Jason Merrill * dwarf2out.c (AT_flag, AT_int, AT_unsigned, AT_string, AT_ref, AT_loc, AT_addr, AT_lbl): Abort on unsuitable input. (get_AT_low_pc, get_AT_hi_pc, get_AT_string, get_AT_flag, get_AT_unsigned, get_AT_ref): Don't call them if get_AT fails. 2000-08-24 Greg McGary * optabs.c (init_optabs): Initialize fixtab, fixtrunctab, floattab, and extendtab within their proper array boundaries. * emit-rtl.c (init_emit_once): Pass `const_tiny_rtx' with bounds for the entire array. * config/arm/arm.c (arm_override_options): Use ARRAY_SIZE. * config/alpha/alpha.c (alpha_lookup_xfloating_lib_func): Likewise. * config/avr/avr.c (order_regs_for_local_alloc): Likewise. * config/fr30/fr30.c (fr30_print_operand): Likewise. * config/i386/dgux.c (output_options): Likewise. * config/i386/dgux.h (ASM_FILE_START): Likewise. * config/m88k/m88k.c (output_options): Likewise. * config/m88k/m88k.h (ASM_FILE_START): Likewise. * config/mcore/mcore.c (mcore_output_inline_const_forced, layout_mcore_frame, handle_structs_in_regs): Likewise. * config/mips/mips.c (output_block_move): Likewise. * config/rs6000/rs6000.c (rs6000_override_options, rs6000_file_start): Likewise. * config/sparc/sparc.c (sparc_add_gc_roots): Likewise. * fixinc/fixfixes.c (FIX_TABLE_CT): Likewise. * fixinc/fixtests.c (TEST_TABLE_CT): Likewise. * builtins.c (expand_builtin_setjmp): Likewise. * expr.c (safe_from_p): Likewise. * flow.c (life_analysis): Likewise. * fold-const.c (size_int_type_wide): Likewise. * gcc.c (translate_options, init_spec, set_spec, main): Likewise. * genattrtab.c (make_length_attrs): Likewise. * genopinit.c (gen_insn): Likewise. * genrecog.c (NUM_KNOWN_PREDS, NUM_SPECIAL_MODE_PREDS): Likewise. * global.c (global_alloc): Likewise. * local-alloc.c (find_free_reg): Likewise. * mips-tdump.c (print_symbol): Likewise. * mips-tfile.c (parse_def, parse_input): Likewise. * reload1.c (NUM_ELIMINABLE_REGS): Likewise. * stmt.c (expand_nl_goto_receiver): Likewise. * stor-layout.c (set_sizetype): Likewise. * varasm.c (decode_reg_name): Likewise. * toplev.c (decode_f_option, decode_W_option, set_target_switch, print_switch_values): Likewise. (NUM_ELEM): Remove macro. (display_help, main): s/NUM_ELEM/ARRAY_SIZE/ 2000-08-24 Greg McGary * tree.h (enum tree_index): New member `TI_MAIN_IDENTIFIER'. (MAIN_NAME_P, main_identifier_node): New macros. * c-common.c (c_common_nodes_and_builtins): Init main_identifier_node. * c-decl.c (start_decl, grokdeclarator, start_function, store_parm_decls, finish_function): Use MAIN_NAME_P. * config/avr/avr.c (function_prologue, function_epilogue): Likewise. * config/i386/cygwin.h (SUBTARGET_PROLOGUE): Likewise. * config/i386/win32.h (SUBTARGET_PROLOGUE): Likewise. * config/pdp11/pdp11.c (output_function_prologue): Likewise. 2000-08-24 Greg McGary * cppfiles.c (actual_directory): Don't write beyond `dir' when it contains "". * real.c (asctoeg): Stay within bounds of etens[][]. 2000-08-24 Kaveh R. Ghazi * dependence.c (dependence_string, direction_string, dump_one_node, dump_node_dependence): Hide unused identifiers. (get_low_bound, normalize_coefficients): Match definition to static prototype. (get_one_coefficient): Initialize variables `value0_is_idx' and `value1_is_idx'. (ziv_test, gcd_test): Mark parameters with ATTRIBUTE_UNUSED. (ziv_test): Delete variable `idx', use parameter `sub' instead. (direction_merge): Avoid automatic aggregate initialization. (have_dependence_p): Use `src' not `dest' to set `src_idx'. Initialize variables `dest_idx' and `src_idx'. (end_dependence_analysis): Avoid C89 style function definition. 2000-08-24 Joseph S. Myers * c-common.c (time_char_table): Don't allow width with %F. (check_format_info): Don't allow "Z" length with scanf. 2000-08-24 Gabriel Dos Reis * diagnostic.c (finish_diagnostic): Define. (output_do_printf): Use wrap_text instead of output_add_string. (default_print_error_function): Avoid embedded '\n'. * diagnostic.h (flush_diagnostic_buffer): Declare. 2000-08-23 Alexandre Oliva * dependence.c: Replace `[][]' with `[][MAX_SUBSCRIPTS]'. 2000-08-23 Hans-Peter Nilsson * Makefile.in (GCC_PASSES): Add specs. 2000-08-23 Jim Wilson * frame.h (IA64_UNW_EHANDLER, IA64_UNW_UHANDLER): New. * config/ia64/frame-ia64.c (__get_personality): Return zero if neither EHANDLER nor UHANDLER bit is set. (__get_except_table): Likewise. 2000-08-23 Nick Clifton * config/arm/lib1funcs.asm: Replace upper case condition codes with lower case versions. * config/arm/arm.h (STRUCT_VALUE): Define. (STRUCT_VALUE_REGNUM): Delete. 2000-08-23 Zack Weinberg * cpphash.h (IN_I): New flag for directive table. * cpplib.c (DIRECTIVE_TABLE): Mark #define, #undef, #ident, and #pragma with IN_I. (_cpp_check_directive): If -fpreprocessed, execute directives marked with IN_I. Issue no warnings in this case. * cpplex.c (_cpp_get_token): Expand no macros if -fpreprocessed. 2000-08-23 Joseph S. Myers * c-common.c (print_char_table): Allow 'I' flag with %d, %i and %u. (check_format_info): Support printf 'I' flag; warn about it with -pedantic. 2000-08-23 Richard Earnshaw (rearnsha@arm.com) * arm.c (arm_expand_prologue): Ensure that the stack-adjustment barrier can't be ignored by the alias analysis code. 2000-08-12 Eli Zaretskii * fixinc/inclhack.def (sysv68_string): Fix the Sed script so it works inside fixincl. Wed Aug 23 04:55:48 2000 Alexandre Oliva * simplify-rtx.c (simplify_rtx): Don't pass VOIDmode to simplify_relational_operation() unless both operands are of VOIDmode. * cse.c (fold_rtx): Likewise. Tue Aug 22 23:53:27 EDT 2000 John Wehle (john@feith.com) * rtlanal.c (rtx_unstable_p): The pic register is stable (within one function) and the actual rtx should be used when checking the registers. (rtx_addr_can_trap_p): Pic memory addresses can't trap. * alias.c (true_dependence, write_dependence_p): Fix bug in previous patch. * i386.c (ix86_GOT_alias_set): New. (legitimize_pic_address): Use it. * rtlanal.c (rtx_unstable_p): An unchanging MEM is only stable if its address is stable. (rtx_varies_p): An unchanging MEM can't vary if its address doesn't vary. 2000-08-22 Kaveh R. Ghazi * c-parse.in (unop +): Restrict -Wtraditional warnings to user code. 2000-08-22 J. David Anglin * vax.h (ASM_SPEC): Pass `-J' to assembler. * x-vax-gcc: New file for bootstrapping with gcc. * x-vax: Use X_CFLAGS rather than X_CPPFLAGS to pass `-J'. * configure.in: Use x-vax-gcc with gcc. * configure: Rebuilt. Tue Aug 22 21:21:05 2000 J"orn Rennecke * toplev.c (rest_of_compilation): Rebuild label notes after post-reload splitting pass if new labels have been created. 2000-08-22 Gabriel Dos Reis * diagnostic.h (output_buffer_state): New macro. * diagnostic.c (diagnostic_for_decl, sorry, default_print_error_function, output_do_verbatim, report_diagnostic, report_problematic_module): Use it. (wrap_text): Tweak. (output_format): Use wrap_text instead of maybe_wrap_text. 2000-08-22 Nick Clifton * config/arm/lib1funcs.asm (ARM_DIV_MOD_BODY): New macro. Common code for ARM divide and modulus functions. (THUMB_DIV_MOD_BODY): New macro. Thumb equivalent of ARM_DIV_MOD_BODY. (FUNC_END): New macro: Common code at the end of the division and modulo functions. (THUMB_FUNCTION_START): New macro: Common code at the start of Thumb functions. (__divsi3, __udivsi3, __modsi3, __umodsi3): Use new macros. Tue Aug 22 20:34:52 2000 Kaz Kojima * config/sh/sh.md (cmpeqdi_t splitter): Fix a reverse testing. * config/sh/sh.c (prepare_scc_operands): Apply force_reg to sh_compare_op1 when the mode is DImode and sh_compare_op1 isn't const0_rtx. 2000-08-22 Nick Clifton * config/arm/lib1funcs.asm (__umodsi3): Before performing any restorative additions, test for bottom bits of IP being set, rather than relying upon the RORs not matching. (__modsi3): Ditto. 2000-08-22 David Edelsohn * aix.h (ASM_DECLARE_FUNCTION_NAME): Call named_section() or text_section() as appropriate instead of emitting text csect pseudo-op directly. (TEXT_SECTION_ASM_OP): Only require default 32-bit alignment. (UNIQUE_SECTION): Define macro. (ASM_OUTPUT_SECTION_NAME): Define macro. * rs6000.c (rs6000_override_options): Disable -ffunction-sections on AIX if debugging and -fdata-sections always. 2000-08-22 Steven King * config/float-i386.h (LDBL_EPSILON): Remove __convert_long_double machinery. (LDBL_MAX): Same here. 2000-08-22 Richard Henderson * flow.c (tidy_fallthru_edge): Update b->end properly. 2000-08-22 Stan Cox * Makefile.in (OBJS): Add dependence.o. * dependence.c: New file. 2000-08-22 Alexandre Oliva , John David Anglin * calls.c (check_sibcall_argument_overlap_1): Adjust for ARGS_GROW_DOWNWARD. (check_sibcall_argument_overlap): Likewise. 2000-08-22 Alexandre Oliva * invoke.texi (SH Options): Document -m4-nofpu, -m4-single-only, -m4-single, -m4, -mbigtable, -mfmovd, -mhitachi, -mnomacsave, -misize, -mpadstruct, -mspace. 2000-08-22 Joseph S. Myers * c-common.c (check_format_info): Give the 'some locales' warning for strftime %Ey rather than the unconditional 'only last 2 digits of year' one. 2000-08-22 Richard Henderson * alias.c (init_alias_analysis): Do not register struct_value_incoming_rtx or static_chain_rtx as pointing to stack memory. Tue Aug 22 01:44:43 2000 Jeffrey A Law (law@cygnus.com) * protoize.c (munge_compile_params): Fix typo and formatting buglets. 2000-08-22 Gabriel Dos Reis * diagnostic.h (report_problematic_module): Declare. * diagnostic.c (report_problematic_module): New function. (report_error_function): Tweak. Tue Aug 22 02:31:26 2000 Richard Kenner * stmt.c (expand_goto_internal, fixup_gotos): Only check TYPE_RETURNS_STACK_DEPRESSED for FUNCTION_TYPE. 2000-08-21 Richard Henderson * flow.c (calculate_global_regs_live): Mark frame pointer live everywhere before reload. 2000-08-21 Jim Wilson * real.c (ereal_from_int, ereal_from_uint, significand_size): Handle INTEL_EXTENDED_IEEE_FORMAT. (toe64): Delete INTEL_EXTENDED_IEEE_FORMAT support. Unconditionally clear last two bytes of output FP value. 2000-08-21 Graham Stott * config/ia64/ia64.h (REDO_SECTION_INFO_P): Change decl to DECL. 2000-08-21 Jakub Jelinek * unroll.c (loop_find_equiv_value): If ret is modified between insn and loop_start, ret might not be equivalent to reg. 2000-08-21 Joseph S. Myers * c-common.c (init_dollar_format_checking, maybe_read_dollar_number, finish_dollar_format_checking): New functions. (dollar_arguments_used, dollar_arguments_count, dollar_first_arg_num, dollar_max_arg_used, dollar_format_warned): New variables. (check_format_info): Support $ formats for scanf and printf width and precision. Always increment format_chars to advance past the '*' of precision, not just when the format parameters are available to check. 2000-08-21 Kaveh R. Ghazi * mips.c (block_move_loop, expand_block_move, function_arg_partial_nregs, save_restore_insns, function_prologue, mips_expand_prologue, RA_MASK): Avoid using the `U' integer constant suffix. (function_arg_advance, function_arg): Match argument to format specifier `%p'. 2000-08-21 Nix * gcc.c (do_spec_1): Implement %j spec flag. Remove dead comment. * gcc.texi (The Configuration File): Document HOST_BIT_BUCKET. * system.h (HOST_BIT_BUCKET): Default to "/dev/null". * config/i386/xm-dos.h (HOST_BIT_BUCKET): Define as "NUL". * config/i386/xm-os2.h, config/winnt/winnt.h: Likewise. * protoize.c (munge_compile_params): Use HOST_BIT_BUCKET (if writable) instead of hardcoded value. * toplev.c (compile_file): Output to a file even if -fsyntax-only. * gcc.c, config/i386/xm-dos.h, config/i386/xm-os2.h: Kill MKTEMP_EACH_FILE. * gcc.c (cc1_options): Do not process -o or run the assembler if -fsyntax-only. * objc/lang-spec.h: Likewise. 2000-08-21 Eli Zaretskii * fixinc/fixincl.c (fix_with_system): Pipe the output of "external" fixes through `cat', to avoid truncating the input file by redirection. 2000-08-21 Jakub Jelinek * config/i386/i386.md (lea_general_1): Copy insn condition to split condition. (lea_general_2, lea_general_3): Likewise. 2000-08-21 Kaveh R. Ghazi * c-decl.c (duplicate_decls, define_label): Restrict -Wtraditional warnings to user code. * c-lex.c (readescape, yylex): Likewise. * c-typeck.c (store_init_value, process_init_element): Likewise (c_expand_start_case): Format. 2000-08-18 Maciej W. Rozycki * mips/linux.h (LINK_SPEC): Use %(endian_spec). * mips/mips.h: Change LINKER_ENDIAN_SPEC to ENDIAN_SPEC and linker_endian_spec to endian_spec. (ENDIAN_SPEC): Add %{EB} and %{EL}. (LINK_SPEC): Remove %{EB} and %{EL}. (ASM_SPEC): Likewise. Use %(endian_spec). 2000-08-21 Joseph S. Myers * c-tree.h (flag_hosted): Move declaration from here... * c-common.h (flag_hosted): ... to here. (flag_noniso_default_format_attributes): New declaration. * c-decl.c (flag_noniso_default_format_attributes): New variable. (c_decode_option): Set it appropriately for options choosing language standard variant. * c-common.c (init_function_format_info): Only provide default format attributes if flag_hosted. Only provide the gettext formats if flag_noniso_default_format_attributes. Update comments. (check_format_info): Disable treatment of %a as a scanf flag in C99 mode. 2000-08-21 Joseph S. Myers * c-common.c (scan_char_table): Add 'w' to flags for all formats except 'n'. (check_format_info): Set 'wide' for scanf format widths. Warn for a zero scanf width. Make the check for writing into a constant object at the first level of indirection; at later levels, warn if any type qualifiers are encountered. Mon Aug 21 07:41:12 2000 Jeffrey A Law (law@cygnus.com) * reload.c (reload_inner_reg_of_subreg): New function broken out of push_reload. (push_reload): Use reload_inner_reg_of_subreg. (combine_reloads): Do not combine reloads if the input reload is a SUBREG in which the inner part will need reloading. * global.c (global_alloc): Avoid passing dumpfile argument to reload routines. * toplev.c (rest_of_compilation): Likewise. * reload.h (reload): Remove dumpfile argument. Callers changed. (debug_reload, debug_reload_to_stream): Move prototypes here. * rtl.h (reload): Remove dumpfile argument. * reload.c (debug_reload): Remove prototype. (debug_reload_to_stream): Likewise. * reload1.c: Avoid passing dumpfile around, rely on rtl_dump_file instead. 2000-08-21 Gabriel Dos Reis * diagnostic.c (context_as_prefix): Export. (need_error_newline): Remove. (lang_diagnostic_starter, lang_diagnostic_finalizer): New objects. (error_module_changed, record_last_error_module, error_function_changed, record_last_error_function): New functions. (initialize_diagnostics): Default intialize lang_diagnostic_starter, lang_diagnostic_finalizer. (init_output_buffer): Tweak. (file_name_as_prefix): New function. (announce_function, default_print_error_function, report_error_function, set_diagnostic_context): Tweak. 2000-08-21 Richard Earnshaw * flow.c (init_propagate_block_info): Handle SUBREG in a jump condition expression. 2000-08-20 Richard Henderson * flow.c (merge_blocks_nomove): Don't seek back past the bb note. 2000-08-20 Zack Weinberg * cppinit.c (cpp_init): Set global flag when called. (cpp_reader_init): Bomb out if cpp_init hasn't been called. Sun Aug 20 01:41:35 2000 Dennis Chernoivanov * cpplex.c (cpp_scan_buffer): Move `output_line_command' just before `process_directive' so that newlines won't be missed for directives. (cpp_printf): Increment `print->lineno' when newline is emitted. * cppmain.c (cb_ident): Likewise. (cb_define): Likewise. (cb_undef): Likewise. (cb_include): Likewise. (cb_def_pragma): Likewise. (dump_macros_helper): Likewise. 2000-08-20 Richard Henderson * config/ia64/ia64.c (emit_insn_group_barriers): Stop if ar.lc assigned before a loop. * config/ia64/ia64.md (ashlsi3): Zero extend the shift count. (ashrsi3, lshrsi3): Likewise. 2000-08-20 Gabriel Dos Reis * c-lang.c: #include diagnostic.h (c_tree_printer): New function. (lang_init): Initialize lang_printer. * Makefile.in (c-lang.o): Depends on diagnostic.h 2000-08-20 Gabriel Dos Reis * c-errors.c (pedwarn_c99): Adjust call to report_diagnostic. * diagnostic.c (default_diagnostic_starter, default_diagnostic_finalizer): New functions. (diagnostic_for_asm, diagnostic_for_decl): Tweak. (pedwarn, pedwarn_with_file_and_line, error, error_with_file_and_line, fatal, warning, warning_with_file_and_line): Adjust call to report_diagnostic. (report_diagnostic): Rework. (set_diagnostic_context): New function. * diagnostic.h (struct diagnostic_context): New data structure. (diagnostic_message, diagnostic_argument_list, diagnostic_file_location, diagnostic_line_location, diagnostic_is_warning, diagnostic_starter, diagnostic_finalizer, diagnostic_finalizer, diagnostic_auxiliary_data): New macros. (set_diagnostic_context): Declare. (report_diagnostic): Change prototype. Sun 20-Aug-2000 09:25:45 BST Neil Booth * fix-header.c (main): Initialize cpplib. 2000-08-19 Michael Meissner * ifcvt.c (find_if_block): Do not assume that a THEN block has any instructions in it before checking for indirect jumps. * ifcvt.c (find_if_block): Do not consider a THEN block that ends in a indirect jump as a potential for conditional execution. * d30v.h (d30v_init_expanders): Don't declare here. * d30v-protos.h (d30v_init_expanders): Declare here with a valid prototype. Sat 19-Aug-2000 21:11:45 BST Neil Booth * cpp.texi: Add @section for assertions. Sat Aug 19 12:37:08 EDT 2000 John Wehle (john@feith.com) * loop.c (scan_loop): Use CONST_CALL_P instead of checking for REG_LIBCALL / REG_RETVAL. Sat Aug 19 09:18:47 2000 Jeffrey A Law (law@cygnus.com) * reload1.c (reload_as_needed): Accept dumpfile argument, pass it to emit_reload_insns. (emit_reload_insns): Add new dumpfile argument. If non-null then dump the reloads for each insn into the dumpfile. (reload): Pass dumpfile to reload_as_needed. * invoke.texi: Clean up linux-gnu vs linux comments. 2000-08-19 Richard Henderson * config/ia64/ia64.c (reg_or_5bit_operand): New. (ia64_depz_field_mask): New. * config/ia64/ia64.h (CONSTRAINT_OK_FOR_R): New. (PREDICATE_CODES): Update. * config/ia64/ia64.md: Update commentary. (depz_internal): New. (ashlsi3): Implement directly. (ashrsi3, lshrsi3): Simplify; rely on extv and extzv for constants. (ashldi3): Use shladd. * config/ia64/ia64-protos.h: Update. 2000-08-18 Zack Weinberg * toplev.c (independent_decode_option): Always process -g. Remove third argument, now unused. Adjust caller to match. 2000-08-18 Richard Henderson * combine.c (make_compound_operation): Break after creating the extraction. 2000-08-18 Zack Weinberg * cpplib.c (cpp_register_pragma_space): Just return if the namespace is already registered. 2000-08-18 Ray Essick & Nick Clifton * config/mcore/mcore.md (rotlsi3): Allow allow rotations by a constant amount. Do not generate ROTL instruction. Fri Aug 18 16:22:20 2000 Alexandre Oliva * config/sh/elf.h: Do not include sh/sh.h. * config/sh/rtems.h: Likewise. * config/sh/rtemself.h: Do not include sh/elf.h. * configure.in: Get them included with `tm_file's. * configure: Rebuilt. * config/sh/sh.md (fpu_switch0, fpu_switch1): Simplify. * config/sh/sh.c (fpscr_set_from_mem): Use them. Fri Aug 18 14:23:18 2000 Richard Kenner * stor-layout.c (compute_record_type): Don't use mode of single field as mode of record if not integer mode of same type. * regmove.c (perhaps_ends_bb_p): New function. (optimize_reg_copy_1, optimize_reg_copy_2): Call it. (optimize_reg_copy_3, fixup_match_2, regmove_optimize): Likewise. (fixup_match_1): Likewise. (fixup_match_1, combine_stack_adjustments_for_block): Add casts to avoid signed/unsigned warnings. * function.c (fixup_var_refs_1, case MEM): Update CODE after updating X. Fri 18-Aug-2000 18:33:45 BST Neil Booth * cpphash.h: Use HAVE_DESIGNATED_INITIALIZERS. (_cpp_trigraph_map): Declaration moved from cpplex.c * cppinit.c: Define _cpp_trigraph_map. Use UCHAR_MAX + 1 instead of 256. Use consistent test for designated initializers. (cpp_init): Initialize trigraph_map. (initialize_standard_includes, parse_option): Use memcmp instead of strncmp. * cpplex.c (init_trigraph_map): Remove. (trigraph_ok, trigraph_replace, lex_line): Refer to _cpp_trigraph_map. * cpplib.c (str_match, WARNING, ERROR, ICE): Delete. (do_unassert): Remove unused "next" local. * system.h (HAVE_DESIGNATED_INITIALIZERS): New prototype. 2000-08-18 Emmanuel Marty * arm/lib1funcs.asm (_umodsi3 THUMB VARIANT): Restore deleted return insn. 2000-08-17 Richard Henderson * config/ia64/ia64.c (spill_restore_mem): Handle emitting the first insn in a sequence. Thu Aug 17 22:40:05 EDT 2000 John Wehle (john@feith.com) * alias.c (true_dependence, write_dependence_p): A read involving a label_ref or the constant pool doesn't create a dependency. * rtl.h (unchanging): Improve documentation. 2000-08-17 Rodney Brown * cse.c (insert_regs): Remove unused `regno'. 2000-08-17 Neil Booth * (cppinit.c) merge_include_chains: Use remove_dup_dir, remove_dup_dirs. If qtail == brack, remove brack not qtail. (remove_dup_dir, remove_dup_dirs): New functions. 2000-08-17 Neil Booth * cppinit.c (cpp_cleanup): Free include dir chains. * cpplib.c (do_undef): Let _cpp_free_definition make the node void. (do_unassert): Free the assert with _cpp_free_definition. * cppmacro.c (_cpp_free_definition): Free memory allocated for assertions. Make the node a T_VOID node. 2000-08-17 Neil Booth * cppinit.c (path_include, append_include_chain): Remove 2nd parameter (struct cpp_pending *). (path_include, initialize_standard_includes, cpp_handle_option): Update callers appropriately. (cpp_handle_option): Use pend. 2000-08-17 Neil Booth * cppinit.c (sort_options): Remove, put functionality in cpp_init. (cpp_init): New. (initialize_builtins): Free memory. (cpp_start_read): Move init_IStable to cpp_init. * cpplib.h (cpp_init): New prototype. * cppmain.c (main): Call cpp_init. Thu Aug 17 13:20:32 EDT 2000 John Wehle (john@feith.com) * rtlanal.c (rtx_unstable_p): Use CONSTANT_P. (rtx_unstable_p, rtx_varies_p): Process vectors. 2000-08-16 Niibe Yutaka , Kaz Kojima * config/sh/lib1funcs.asm (GLOBAL): Define. Use for all references to GLOBAL symbols. Use LOCAL where appropriate. 2000-08-16 Kaveh R. Ghazi * configure.in (*-ibm-aix4.[12]*): Delete test for gnu ld. Always use t-aix41 when host == target. 2000-08-16 Richard Henderson * reload.c (push_secondary_reload): Revert last change. If we use a reload_in/out pattern, make the when the same as the primary reload. (find_reloads): Likewise. 2000-08-16 Manfred Hollstein * configure.in (libstdcxx-v3): Fix test. * configure: Regenerate. Wed Aug 16 08:10:32 2000 Richard Kenner * calls.c (calls_function_1, expand_call): Only test TYPE_RETURNS_STACK_DEPRESSED for FUNCTION_TYPE. * function.c (thread_prologue_and_epilogue_insns): Likewise. 2000-08-16 Richard Henderson * combine.c (simplify_shift_const): Revert previous two changes. If SHIFT_COUNT_TRUNCATED, crop the shift count before the main loop. 2000-08-15 Richard Henderson * combine.c (simplify_shift_const): Bound shift count when combining shifts. Tue Aug 15 17:33:05 2000 Richard Kenner * calls.c (ECF_SP_DEPRESSED): New macro. (calls_function_1): Treat calling sp-depressed function as alloca. (emit_call_1): Don't adjust SP if calling sp-depressed function. (expand_call): Set ECF_SP_DEPRESSED if TYPE_RETURNS_STACK_DEPRESSED. If sp-depressed, ensure block saves and restores SP. * fold-const.c (extract_muldiv): Only check TYPE_IS_SIZETYPE for INTEGER_TYPE. * function.c (keep_stack_depressed): New function. (thread_prologue_and_epilogue_insns): Call it. * print-tree.c (print_node): Use HOST_WIDE_INT_PRINT_UNSIGNED to print DECL_OFFSET_ALIGN. Print no-force-blk and transparent-union flags properly. * stmt.c (expand_goto_internal): Don't restore stack if last block and function returns with sp depressed. (fixup_gotos): Likewise. (save_stack_pointer): New function, from code in expand_decl. (expand_decl): Call new function. * tree.h (TYPE_IS_SIZETYPE): Call INTEGER_TYPE_CHECK. (TYPE_RETURNS_STACK_DEPRESSED): New macro. (save_stack_pointer): New declaration. * diagnostic.c (fatal_function): New variable. (set_fatal_function): New function. (fatal): Call it. * diagnostic.h (set_fatal_function): New declaration. 2000-08-15 William Cohen * config/sh/elf.h (DWARF2_DEBUGGING_INFO): Defined. (PREFERRED_DEBUGGING_TYPE): Set to dwarf2 info. (DWARF2_ASM_LINE_DEBUG_INFO): Defined. 2000-08-15 Richard Henderson * flow.c (mark_used_reg): Set reg_cond_reg appropriately. 2000-08-15 Richard Earnshaw * arm.c (arm_function_ok_for_sibcall): New function. * arm.h (FUNCTION_OK_FOR_SIBCALL): Define. * arm.md (call expanders): Don't check here for calls that can't be sibling calls. 2000-08-15 Richard Earnshaw * arm.md (splits generating cond_exec): Disable. 2000-08-15 Richard Earnshaw * arm/linux-elf.h (text_section): Delete declaration. 2000-08-15 Richard Earnshaw ARM support for unordered FP operations. * arm-protos.h (arm_comparison_operator): Declare. * arm.c (arm_comparison_operator): New function. (arm_select_cc_mode): Add unordered comparison codes. (get_arm_condition_code): Likewise. (arm_final_prescan_insn): Can't handle unordered jumps that can't be done in one insn. * arm.h (PREDICATE_CODES): Add arm_comparison_operator. * arm.md (all uses of comparison_operator): Replace with arm_comparison_operator. (bunordered, bordered, bugt, bunlt, bunge, bunle, buneq, bltgt): New expands. (arm_buneq, arm_bltgt, arm_buneq_reversed, arm_bltgt_reveresed): New patterns. Tue Aug 15 00:36:36 2000 Ovidiu Predescu * gthr-posix.h: Conditionally include ; include from libobjc/. 2000-08-14 Richard Henderson * config/i386/i386.c (legitimize_pic_address): Use Pmode for all CONSTs. 2000-08-14 Richard Henderson * configure.in (ia64-*): Set float_format for i386 long double. * real.c (GET_REAL): Treat 128-bit INTEL_EXTENDED_IEEE_FORMAT as we would for i386 XFmode. (PUT_REAL): Likewise. (endian, ereal_atof, real_value_truncate): Likewise. (ereal_isneg, toe64, etens, make_nan): Likewise. * real.h (REAL_VALUE_TO_TARGET_LONG_DOUBLE): Likewise. * config/ia64/ia64-protos.h: Update. * config/ia64/ia64.c (general_tfmode_operand): New. (destination_tfmode_operand): New. (tfreg_or_fp01_operand): New. (ia64_split_timode): New. (spill_tfmode_operand): New. (ia64_expand_prologue): Use TFmode not XFmode. (ia64_expand_epilogue): Likewise. (ia64_function_arg): Likewise. (ia64_function_arg_advance): Likewise. (ia64_return_in_memory): Likewise. (ia64_function_value): Likewise. (ia64_print_operand): Likewise. (ia64_register_move_cost): Set GR<->FR to 5. (ia64_secondary_reload_class): Get GR for TImode memory op. * config/ia64/ia64.h (ROUND_TYPE_SIZE): Remove. (ROUND_TYPE_ALIGN): Remove. (LONG_DOUBLE_TYPE_SIZE): Set to 128. (INTEL_EXTENDED_IEEE_FORMAT): Define. (HARD_REGNO_NREGS): Use TFmode, not XFmode. (HARD_REGNO_MODE_OK): Likewise. Disallow TImode in FRs. (MODES_TIEABLE_P): Use TFmode, not XFmode. (CLASS_MAX_NREGS): Likewise. (ASM_OUTPUT_LONG_DOUBLE): Output by 4 byte hunks. (PREDICATE_CODES): Update. * config/ia64/ia64.md (movti): New. (movti_internal): Use a clobber for memory alternatives. (reload_inti, reload_outti): New. (movsfcc_astep): Predicate properly. (movdfcc_astep): Likewise. (movxf): Remove. (movtf): New. (extendsftf2, extenddftf2): New. (trunctfsf2, trunctfdf2): New. (floatditf2, fix_trunctfdi2): New. (floatunsditf2, fixuns_trunctfdi2): New. (addtf3, subtf3, multf3, abstf2): New. (negtf2, nabstf2, mintf3, maxtf3): New. (maddtf3, msubtf3, nmultf3, nmaddtf3): New. (cmptf): New. (fr_spill): Use TFmode, not XFmode. (fr_restore): Likewise. * config/ia64/lib1funcs.asm (__divtf3): New. * config/ia64/t-ia64 (LIB1ASMFUNCS): Add it. 2000-08-14 Kaveh R. Ghazi * cse.c (fold_rtx): Avoid empty body in an if-statement. * doloop.c (doloop_iterations_max, doloop_modify): Avoid using the `U' integer constant suffix. * dwarf2out.c (add_subscript_info): Avoid empty body in an else-statement. * sparc/sol2.h (__enable_execute_stack): Prototype. 2000-08-14 David Edelsohn * collect2.c: Remove use of AIX import file. * longlong.h: Test ARCH_PWR not ARCH_POWER. * rs6000.c (print_operand, case 'E'): Add else. 2000-08-14 Richard Henderson * config/ia64/ia64.md (movdi): Delay calling ia64_expand_load_address. (movdi_symbolic): New. 2000-08-14 Jim Wilson * config/ia64/ia64.h (ASM_SPEC): Pass -mconstant-gp and -mauto-pic to GNU as. For Intel as, pass -M const_gp and -M no_plabel. * config/ia64/linux.h (ASM_SPEC): Pass -mconstant-gp and -mauto-pic to GNU as. 2000-08-14 Richard Henderson * expr.c (emit_group_load): Don't force constants into registers. Special case source already in the correct mode. 2000-08-14 Zack Weinberg * configure.in: Accept *-*-linux* not just *-*-linux-gnu*. * fixinc/inclhack.def: Likewise. * fixinc/mkfixinc.sh: Likewise. * configure: Regenerate. * fixinc/fixincl.x: Regenerate. * install.texi: Document equivalence of linux and linux-gnu. Mon Aug 14 18:51:44 2000 J"orn Rennecke * cse.c (insert_regs): Also in REG case: When finding an invalid value, and we make a new quantity, make sure that it won't be mistaken by for a valid one by mention_regs. 2000-08-13 Ralf Gütlein * h8300.md: Remove obsolete peepholes. 2000-08-13 Kazu Hirata * invoke.texi (H8/300 Options): Fix typos. * config/h8300.c: Fix formatting. * config/h8300.h: Fix comment typos. (OVERRIDE_OPTIONS): Fix formatting. * function.c: Fix formatting. * cse.c: Fix formatting. 2000-08-13 Geoff Keating * flow.c (attempt_auto_inc): Remove unused variable `bb'. (attempt_auto_inc): Suppress parentheses warning. * function.c (put_reg_into_stack): Remove unused variable `unsigned_p'. * loop.c (load_mems): Remove `u' suffix in two places. * config/rs6000/rs6000.c: Remove unnecessary `u' suffixes from hex constants. * config/rs6000/rs6000.h: Likewise. * config/rs6000/sol-c0.c: Prototype some functions. Remove the __eabi dummy routine. * config/rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Remove unused variable `buf_ptr'. * config/rs6000/rs6000.c (rs6000_select_section): Rewrite to not put stuff in .sdata unnecessarily. (rs6000_unique_section): New function. * config/rs6000/rs6000-protos.h: Add rs6000_unique_section. * config/rs6000/sysv4.h (UNIQUE_SECTION): Define. * c-typeck.c (build_array_ref): Don't complain about non-lvalue arrays in C99. Don't try to look at DECL_REGISTER of a COMPONENT_REF. Don't complain twice about the same error. * fixinc/inclhack.def (aix_pthread): New fix. (aix_sysmachine): New fix. * fixinc/fixincl.x: Regenerate. * expr.c (expand_expr): Call convert_modes when turning a large multiply into a small one. 2000-08-12 Geoff Keating * tree.h (DECL_OFFSET_ALIGN): Make the off_align field of the tree structure an exponent rather than an explicit alignment so it doesn't overflow. (SET_DECL_OFFSET_ALIGN): New macro. * stor-layout.c (place_union_field): Use SET_DECL_OFFSET_ALIGN rather than DECL_OFFSET_ALIGN. (place_field): Likewise. * expmed.c (store_bit_field): Abort on align==0 to avoid antisocial machine behaviour. 2000-08-12 Richard Henderson * sibcall.c (uses_addressof): Accept both addressof and current_function_internal_arg_pointer inside a mem. (optimize_sibling_and_tail_recursive_call): Fail tail recursion if current_function_uses_addressof. * stmt.c (expand_return): Kill tail recursion and HAVE_return optimizations. 2000-08-11 Richard Henderson * config/ia64/ia64.md (addsi3): Remove expander. (subsi3, mulsi3, negsi2, one_cmplsi2): Likewise. (*addsi3_shladd): New. 2000-08-11 Richard Henderson * config/ia64/ia64.c (do_spill): Pass cfa offset to move expander. (do_restore): Likewise. (gen_movdi_x, gen_fr_spill_x, gen_fr_restore_x): New. (ia64_expand_prologue, ia64_expand_epilogue): Use them. (rtx_needs_barrier): Track actual bit manipulation for ar.unat moves, gr_spill, and gr_restore. (emit_insn_group_barriers): Special case gr_spill/gr_restore. (process_set): Don't handle varargs spills. * config/ia64/ia64.md (gr_spill): Accept cfa offset. Emit .mem.offset here instead of in process_set. (gr_restore): Likewise. 2000-08-11 Richard Henderson * config/ia64/ia64.h (PROMOTE_MODE): Only extend to SImode. 2000-08-11 Mark Elbrecht * gcc.texi (The Configuration File): Document COLLECT2_HOST_INITIALIZATION, GCC_DRIVER_HOST_INITIALIZATION, and UPDATE_PATH_HOST_CANONICALIZATION. 2000-08-11 Kaveh R. Ghazi * c-parse.in (cast_expr): Avoid -Wstrict-prototype warnings for unprototyped function pointer casts on integer constants. 2000-08-11 Laurynas Biveinis * fixproto: Recognize DOS paths with drive letters as absolute paths. 2000-08-11 Nathan Sidwell * extend.texi (Volatiles): Fix typos. 2000-08-11 Kazu Hirata * flow.c: Fix formatting. 2000-08-11 Richard Henderson * reload.c (push_secondary_reload): When invoking a reload_{in,out} pattern, always allocate a tertiary scratch register. * config/alpha/alpha.md (reload_inqi): Use a DImode scratch. (reload_inhi): Likewise. 2000-08-11 Richard Henderson * function.c (put_reg_into_stack): Allow type to be NULL. (schedule_fixup_var_refs): Likewise. (gen_mem_addressof): Allow decl to be NULL. (put_addressof_into_stack): Likewise. * flow.c (merge_blocks_nomove): Be more careful about locating the beginning of block A. * combine.c (simplify_shift_const): Obey SHIFT_COUNT_TRUNCATED. Thu Aug 10 22:47:09 2000 Ovidiu Predescu * configure.in: * configure: * gthr-posix.h: * config.in: Reverted the check for . 2000-08-10 Chris Demetriou * mips/elf.h (CTOR_SECTION_NAME, DTOR_SECTION_NAME): New macros define the name of CTOR and DTOR sections. (CTOR_LIST_BEGIN, CTOR_LIST_END, DTOR_LIST_BEGIN, DTOR_LIST_END): Change to use attributes to specify sections. * mips/elf64.h (CTOR_SECTION_NAME, DTOR_SECTION_NAME, (CTOR_LIST_BEGIN, CTOR_LIST_END, DTOR_LIST_BEGIN, DTOR_LIST_END): Same as in mips/elf.h. 2000-08-10 Drew Moseley * config/mn10300/mn10300.h: Added no-crt0 option for explicitly disabling just crt0.o. 2000-08-10 Richard Earnshaw & Nick Clifton * arm.h (CPP_SPEC): Use sub-spec cpp_interwork. (CPP_INTERWORK_SPEC, CPP_INTERWORK_DEFAULT_SPEC): New sub-specs. (EXTRA_SPECS): Add them. * arm/lib1funcs.asm: Support builds for interworking. Use macros to eliminate duplicated pieces of code. 2000-08-10 Kazu Hirata * h8300.c (expand_a_rotate): New. (emit_a_rotate): Likewise. (h8300_adjust_insn_length): Add support for the rotate insns. * h8300.md (rotlqi3): New. (*rotlqi3_1): Likewise. (rotlhi3): Likewise. (*rotlhi3_1): Likewise. (rotlhi3): Likewise. (*rotlhi3_1): Likewise. * h8300-proto.h: Add prototypes for expand_a_rotate and emit_a_rotate. * h8300.c: Fix comment typos. (dosize): Declare the variable amount as unsigned. (get_shift_alg): Fix a comparison between signed and unsigned. (emit_a_shift): Likewise. (h8300_adjust_insn_length): Simplify the code. * c-decl.c: Fix formatting. 2000-08-10 Kaveh R. Ghazi * c-lex.c (parse_float, yylex): For -Wtraditional, issue a warning about non-traditional numeric constant suffixes. * cppexp.c (parse_number): Likewise. * invoke.texi: (-Wtraditional): Document new behavior. Thu Aug 10 00:11:04 2000 Ovidiu Predescu * gthr-posix.h: Include auto-host.h. Conditionally include . * configure.in: Check for the header file. * config.in: Added define for HAVE_SCHED_H. 2000-08-09 Kaveh R. Ghazi * c-typeck.c (process_init_element): For -Wtraditional, warn about initialization of unions. * invoke.texi (-Wtraditional): Document new behavior. 2000-08-09 Zack Weinberg * configure.in (--enable-c-cpplib): Uncomment. Use AC_DEFINE instead of extra_c_flags. (--enable-c-mbchar): Use AC_DEFINE instead of extra_c_flags. * configure: Regenerate. * config.in: Regenerate. * cpperror.c (cpp_type2name): New function. * cpplex.c (lex_line): If we issued an error for an invalid preprocessing directive, discard that logical line. * cpplib.c (do_line): Call a hook function if the current file is renamed by #line. (do_ident): Pass the contents of the string, not the entire token, to the callback function. * cpplib.h (CPP_LAST_PUNCTUATOR): New #define. (cb.rename_file): New hook function. (cb.ident): Adjust prototype. (cpp_type2name): Prototype. * cppmacro.c (dump_macro_args): Correct precedence lossage. * cppmain.c (cb_ident): Update for changed interface. (cb_rename_file): New function. (main): Set rename callback. 2000-08-09 Alexandre Oliva * caller-save.c (mark_referenced_regs): Mark partially-overwritten multi-word registers. 2000-08-08 Joseph S. Myers * c-common.c (combine_strings, check_format_info): Refer to ISO C or ISO C89 instead of ANSI C. * c-decl.c (grokdeclarator, xref_tag, finish_struct, build_enumerator, do_case): Likewise. * c-lex.c (parse_float, yylex): Likewise. * c-parse.in: Likewise. * c-typeck.c (common_type, build_array_ref, build_binary_op, build_unary_op, pedantic_lvalue_warning, build_conditional_expr, build_c_cast, convert_for_assignment, set_init_index, set_init_label, c_expand_start_case): Likewise. * toplev.c (documented_lang_options, display_help): Likewise. 2000-08-08 Kazu Hirata * h8300.c: Fix formatting. * h8300.h: Likewise. * h8300.md: Likewise. (movsi_h8300hs): Fix formatting of the resulting assembly code. * reload1.c: Fix formatting. 2000-08-08 Rodney Brown * alpha/alpha.c (alpha_emit_xfloating_libcall): Use GEN_CALL_VALUE define. * alpha/alpha.md (untyped_call): Use GEN_CALL define. * clipper/clipper.md (untyped_call): Likewise. * dsp16xx/dsp16xx.md (untyped_call): Likewise. * fx80/fx80.md (untyped_call): Likewise. * mips/mips.md (untyped_call): Likewise. * ns32k/ns32k.md (untyped_call): Likewise. * pa/pa.md (untyped_call): Likewise. * romp/romp.md (untyped_call): Likewise. * sparc/sparc.md (untyped_call): Likewise. 2000-08-08 Jason Eckhardt * config/i860/i860.c (singlemove_string): Do not generate assembler pseudo instructions that must be expanded (that is, with signed constants larger than 16 bits). 2000-08-08 Richard Henderson * flow.c (life_analysis): Only turn off PROP_LOG_LINKS and PROP_AUTOINC at -O0. Don't collect alias info at -O0. (init_propagate_block_info): Don't kill memory stores at -O0. (mark_set_1, mark_used_regs): Likewise. 2000-08-08 David Edelsohn * rs6000.c (optimization_options): Decorate 'level' as ATTRIBUTE_UNUSED. (mask64_operand): Remove sign-extend thinko. (rldic_operand): New function. (load_multiple_operation): regno's are unsigned ints. (store_multiple_operation): Likewise. (lmw_operation): Likewise. (stmw_operation): Likewise. (includes_lshift_p): shift_mask is unsigned int. (includes_lshift64_p): New function. (addrs_ok_for_quad_peep): unsigned int reg1. (print_operand): Consistently add "else" after output_operand_lossage(). (print_operand, case 'b'): Fold in case 'W'. (print_operand, case 'W'): Print rldic MB value. (output_epilogue): Update Objective-C language string. (output_toc): unsigned HOST_WIDE_INT low, compare unsigned. * rs6000.h (PREDICATE_CODES): Add rldic_operand. * rs6000.md (ashldi3): Add rldic instruction. (iordi3, xordi3): Remove redundant "else if CONST_DOUBLE". (cmpsi_internal2, cmpdi_interal2): Use 'b' output template modifier. 2000-08-08 Richard Henderson * config/ia64/ia64-protos.h: Remove duplicates. Update for massive code rearrangements. * config/ia64/ia64.c (ia64_arpfs_regno): Remove. (ia64_rp_regno, ia64_fp_regno, ia64_input_regs): Remove. (ia64_local_regs, ia64_need_regstk): Remove. (ar_ccv_reg_operand): New. (ia64_gp_save_reg): New. (struct ia64_frame_info): Combine most of the size elements; add new gr save elements. (find_gr_spill): New. (next_scratch_gr_reg): New. (mark_reg_gr_used_mask): New. (ia64_compute_frame_size): Rewrite. Allocate special AR regs to GR backing store regs when possible. (ia64_initial_elimination_offset): New. (ia64_rap_fp_offset): Remove. (save_restore_insns): Remove. (setup_spill_pointers): New. (finish_spill_pointers): New. (spill_restore_mem): New. (do_spill, do_restore): New. (ia64_expand_prologue): Rewrite to use them. (ia64_expand_epilogue): Likewise. (ia64_direct_return): Update for current_frame_info changes. (ia64_function_prologue): Simplify .prologue emission. Emit .spill when needed. (ia64_setup_incoming_varargs): Don't ever emit rtl. (ia64_dbx_register_number): New. (ia64_initialize_trampoline): New. (ia64_secondary_reload_class): Request GR_REGS for integer arithmetic destined for FR_REGS. (ia64_init_machine_status): Don't reset return_address_pointer_rtx. (ia64_mark_machine_status): Mark ia64_gp_save. (rws_access_regno): Rename from rws_access_reg; don't treat predicates specially. (rws_access_reg): New. Update all callers. (rtx_needs_barrier): Remove dead unspecs. (ia64_epilogue_uses): Mark ar.pfs and ar.unat live on exit. (ia64_encode_section_info): Silence signed/unsigned warnings. (spill_offset, sp_offset, spill_offset_emitted): Remove. (tmp_reg, tmp_saved): Remove. (process_set): Rewrite to expect complicated bits via REG_FRAME_RELATED_EXPR. (ia64_expand_fetch_and_op): Use emit_move_insn; be explicit in the use of ar.ccv; never set RTX_UNCHANGING_P. (ia64_expand_op_and_fetch): Likewise. (ia64_expand_compare_and_swap): Likewise. (ia64_expand_builtin): Likewise. * config/ia64/ia64.h (AR_UNAT_REGNUM): New. (FIRST_PSEUDO_REGISTER): Update. (AR_M_REGNO_P): Update. (FIXED_REGS): Don't mark three local registers as used. (EXTRA_CC_MODES): New. (SELECT_CC_MODE): New. (HARD_REGNO_NREGS): Allow DImode in p0; handle CCImode. (HARD_REGNO_MODE_OK): Disallow CCImode from non-predicates. (FRAME_GROWS_DOWNWARD): Unset. (STARTING_FRAME_OFFSET): Zero. (ELIMINABLE_REGS): Eliminate from the soft to hard frame pointer. (INITIAL_ELIMINATION_OFFSET): Defer to out of line function. (HARD_FRAME_POINTER_REGNUM): New. (CAN_DEBUG_WITHOUT_FP): Define. (TRAMPOLINE_TEMPLATE): Remove. (TRAMPOLINE_SIZE): Lower to 32. (TRAMPOLINE_ALIGNMENT): Lower to 64. (INITIALIZE_TRAMPOLINE): Defer to out of line function. (PREDICATE_CODES): Update. (struct machine_function): Add ia64_gp_save. * config/ia64/ia64.md: Purge unused unspecs. (movsi patterns): Allow moves to/from AR_M_REGS. (movdi patterns): Allow moves to/from p0. (call patterns): Move most setjmp hackery to ia64_gp_save_reg. (gr_spill, gr_restore): Indicate ar.unat read/written. (nonlocal_goto): Don't pass old frame_pointer. (nonlocal_goto_receiver): Remove. (exception_receiver): New. (builtin_setjmp_setup): New. (builtin_setjmp_receiver): New. * config/ia64/lib1funcs.asm (__ia64_save_stack_nonlocal): Bundle. (__ia64_nonlocal_goto): Bundle. Don't kill r7. (__ia64_restore_stack_nonlocal): Likewise. (__ia64_trampoline): New. * config/ia64/sysv4.h (DBX_REGISTER_NUMBER): Defer to out of line function. * config/ia64/t-ia64 (LIB1ASMFUNCS): Add __trampoline. 2000-08-08 Richard Henderson * frame.h (ia64_frame_state): Add my_psp. * libgcc2.c (ia64_throw_helper): Add throw_sp argument. (__throw): Pass it in. Don't clobber r7. * config/ia64/frame-ia64.c (init_ia64_reg_loc): Mark inline. (execute_one_ia64_descriptor) [mem_stack_v]: Sets psp.when and nothing to do with sp. (normalize_reg_loc): Use frame->my_psp. (frame_translate): Handle frame-pointer-less functions. Set spill_base correctly, in absence of being told. (__build_ia64_frame_state): New sp argument. Fill in frame->my_sp. (__ia64_backtrace_helper): New sp argument. Use builtin_return_address instead of label addresses. (print_record) [mem_stack_v]: No size member. 2000-08-08 Richard Henderson * regclass.c (choose_hard_reg_mode): Iterate over all CC modes. 2000-08-08 Richard Henderson * tm.texi (LOCAL_REGNO): Document. * flow.c (LOCAL_REGNO, EPILOGUE_USES): Provide default. (mark_regs_live_at_end): Don't mark LOCAL_REGNO registers. * reload1.c (reload): Likewise when considering nonlocal labels. * config/ia64/ia64.h (LOCAL_REGNO): New. * config/sparc/sparc.h (LOCAL_REGNO): New. 2000-08-08 Joseph S. Myers * c-lex.c (yylex): Don't allow integer suffixes 'LUL', 'Ll', 'lL'. 2000-08-07 Nick Clifton * config/mips/mips.c: Fix compile time warning messages. * config/mips/mips-protos.h: Add prototype for equality_op. * mn10300.h (TARGET_SWITCHES): Document `-mam33'. 2000-08-07 Graham Stott * mn10300.md: Use nonimmediate_operand instead of general_operand on output operands. * mn10300.h (PREFERRED_RELOAD_CLASS): Limit memory reloads. 2000-08-07 Alexandre Oliva * sh.h (EXTRA_CONSTRAINT_Q): Adjust to GNU Coding Standards. * sh.c (expand_block_move): Break long lines. (expand_ashiftrt, fpscr_set_from_mem): Likewise. * sh.md (mulsi3): Likewise. (movdi): Adjust spacing. 2000-08-07 Richard Henderson * expmed.c (store_bit_field): Don't require MEM_IN_STRUCT_P. * expr.c (emit_group_store): Don't set it. 2000-08-07 Kazu Hirata * invoke.texi (Options for Debugging Your Program or GCC): Remove duplicate entries for 'w' and 'z'. * flow.c: Fix a comment typo. Sun Aug 6 23:47:35 2000 Ovidiu Predescu * c-parse.in: Changed the language string for Objective-C to "GNU Objective-C". Sun Aug 6 11:54:03 2000 Ovidiu Predescu * gthr-posix.h: Integrated Chris Ball's changes to improve the Posix thread support for Objective-C. 2000-08-06 Joseph S. Myers * c-common.h (enum c_tree_index): Add CTI_SIGNED_SIZE_TYPE and CTI_UNSIGNED_PTRDIFF_TYPE. (signed_size_type_node): Define. (unsigned_ptrdiff_type_node): Define. * c-decl.c (init_decl_processing): Create the signed_size_type_node and unsigned_ptrdiff_type_node types. * c-common.c (T_SC): Define. (T_SST): Define. (T_UPD): Define. (print_char_table): Use T_SST for %zd, %zi, %zn. Use T_UPD for %to, %tu, %tx, %tX. Allow %hhn (T_SC). Add "c" to the flags for %s and %p. (scan_char_table): Use T_SC for %hhd, %hhi, %hhn. Use T_SST for %zd, %zi, %zn. Use T_UPD for %to, %tu, %tx, %tX. Add "c" to the flags for %c, %s and %[. (check_format_info): Only allow leniency for signedness of targets of character pointers (when pedantic) for formats flagged with "c", so for strings but not for %hh formats. When pedantic, don't allow character pointers to substitute for void pointers if a second level of indirection is present. 2000-08-06 Kazu Hirata * invoke.texi (Options for Debugging Your Program or GCC): Update the names of dump files. * h8300.c (dosize): Rearrange code for conciseness. (split_adds_subs): Likewise. * loop.c: Fix formatting. * dwarf2out.c: Fix formatting. * tm.texi (FUNCTION_ARG_PARTIAL_NREGS): Fix a typo. * expr.c: Fix formatting. 2000-08-06 Kaveh R. Ghazi * rs6000.c (rs6000_maybe_dead): Prototype. 2000-08-06 Richard Henderson * stmt.c (expand_goto): Do virtual_stack_vars_rtx replacement for HAVE_nonlocal_goto as well. * config/i960/i960.md (nonlocal_goto): Don't do it here. * config/pj/pj.md (nonlocal_goto): Likewise. 2000-08-07 Michael Hayes * loop.c (try_swap_copy_prop): New function. (load_mems): Rename copies to load_copies and add new regset store_copies. Check for sets of shadow registers and mark in store_copies. Call try_swap_copy_prop for registers marked in store_copies. Sun Aug 6 00:54:42 2000 Ovidiu Predescu * objc/objc-act.c: New command line option -fconstant-string-class to allow specifying a user defined constant string class, different from NXConstantString. * toplev.c: Moved the Objective-C specific options to objc/lang-options.h. * objc/lang-options.h: Moved the Objective-C specific options from toplev.c. Added -fconstant-string-class. 2000-08-05 Chris Demetriou * mips/elf.h (CTOR_LIST_BEGIN, CTOR_LIST_END, DTOR_LIST_BEGIN, DTOR_LIST_END): change type of __CTOR_LIST__ from func_ptr array to just func_ptr, to avoid extra alignment imposed on arrays. * mips/elf64.h (CTOR_LIST_BEGIN, CTOR_LIST_END, DTOR_LIST_BEGIN, DTOR_LIST_END): Likewise. * mips.h: Clean up comments and spacing near MASKs. (TARGET_UNIX_ASM): Delete. (MASK_MIPS16, MASK_NO_CHECK_ZERO_DIV, MASK_CHECK_RANGE_DIV, MASK_UNINIT_CONST_IN_RODATA): Change values to make mask values contiguous. 2000-08-05 Joseph S. Myers * c-common.c (print_char_table): Add entries for the X/Open ' format flag (print decimals with locale's thousands grouping character). Make %C expect wint_t. (check_format_info): If pedantic, warn when the %n$ operand number form is used. Allow for the ' flag; warn about it if pedantic. 2000-08-05 Zack Weinberg * i386.h (FUNCTION_OK_FOR_SIBCALL): Not OK if DECL's return type is a float mode, cfun->decl's return type is not, and TARGET_FLOAT_RETURNS_IN_80387. 2000-08-04 Andreas Schwab * cppmain.c (cb_def_pragma): Skip the first two tokens from the token list, which are always `#' and `pragma'. 2000-08-04 Zack Weinberg * tree.c (tree_expr_nonnegative_p): Move to... * fold-const.c: ... here. Also handle BIND_EXPR and RTL_EXPR. (rtl_expr_nonnegative_p): New. * tree.h: Add prototype for rtl_expr_nonnegative_p. * real.h (CONST_DOUBLE_LOW, CONST_DOUBLE_HIGH, CONST_DOUBLE_MEM, CONST_DOUBLE_CHAIN: Move to... * rtl.h: ...here. Use XCINT/XCEXP. * Makefile.in: Remove toplev.o from OBJS. Add rule to make libbackend.a; add libbackend.a to STAGESTUFF. Add BACKEND variable. Use BACKEND when linking cc1, not OBJS. Add BACKEND to VOL_FILES. * objc/Make-lang.in (cc1obj): Link with $(BACKEND). 2000-08-05 Herman A.J. ten Brugge * config/c4x/c4x.md (return_indirect_internal): New. * config/c4x/c4x.c (c4x_expand_epilogue): Use it. 2000-08-04 Joseph S. Myers * c-common.c (time_char_table): Mark up formats added in C99 and make other corrections. %D and %g were added in C99. %Og is an extension. %EX is permitted. %R, %T, %n, %r, %t were added in C99. %e was added in C99. %Oj is an extension. %G and %z are in C99 rather than GNU extensions, but %OG and %Oz are extensions. %h was added in C99. %C was added in C99. %OY and %OC are extensions. Add the C99 format %F. (check_format_info): If pedantic and not in C99 mode, warn for C99 formats, %E and %O. Fri Aug 4 23:01:58 2000 J"orn Rennecke * function.c (schedule_fixup_var_refs): New function, broken out of put_reg_into_stack. (put_reg_into_stack): Use it. (put_var_into_stack): In CONCAT case, fixup up references for components only after fixing up references to the whole concat. 2000-08-04 Rodney Brown * alias.c (mark_constant_function): Use INSN_P. (init_alias_analysis): Likewise. * combine.c (combine_instructions): Use INSN_P. (can_combine_p): Likewise. (try_combine): Likewise. (distribute_notes): Likewise. (distribute_links): Likewise. * cse.c (cse_around_loop): Use INSN_P. (invalidate_skipped_block): Likewise. (cse_set_around_loop): Likewise. (cse_end_of_basic_block): Likewise. (delete_trivially_dead_insns): Likewise. * emit-rtl.c (unshare_all_rtl_again): Use INSN_P. (unshare_all_rtl_1): Likewise. (next_cc0_user): Likewise. (try_split make_insn_raw): Likewise. (remove_unnecessary_notes): Likewise. * final.c (shorten_branches): Use INSN_P. (leaf_renumber_regs): Likewise. (leaf_renumber_regs_insn): Likewise. * flow.c (find_label_refs): Use INSN_P. (verify_wide_reg): Likewise. (notice_stack_pointer_modification): Likewise. (count_or_remove_death_notes): Likewise. (verify_flow_info): Likewise. (clear_log_links): Likewise. * function.c (fixup_var_refs_insns): Use INSN_P. (compute_insns_for_mem): Likewise. * gcse.c (alloc_gcse_mem): Use INSN_P. (compute_sets): Likewise. (compute_hash_table): Likewise. (classic_gcse): Likewise. (cprop): Likewise. (insert_insn_end_bb): Likewise. (delete_null_pointer_checks_1): Likewise. * global.c (expand_preferences): Use INSN_P. (build_insn_chain): Likewise. * graph.c (node_data): Use INSN_P. * haifa-sched.c (priority): Use INSN_P. (rm_line_notes): Likewise. (rm_other_notes): Likewise. (find_insn_reg_weight): Likewise. (init_target_units): Likewise. (schedule_block): Likewise. (compute_block_forward_dependences): Likewise. (debug_dependencies): Likewise. (set_priorities): Likewise. * integrate.c (function_cannot_inline_p): Use INSN_P. (save_parm_insns): Likewise. (copy_insn_list): Likewise. * jump.c (mark_all_labels): Use INSN_P. (never_reached_warning): Likewise. * lcm.c (optimize_mode_switching): Use INSN_P. * local-alloc.c (validate_equiv_mem): Use INSN_P. (memref_used_between_p): Likewise. (update_equiv_regs): Likewise. (block_alloc): Likewise. (no_conflict_p): Likewise. * loop.c (scan_loop): Use INSN_P. (find_and_verify_loops): Likewise. (count_loop_regs_set): Likewise. (loop_reg_used_before_p): Likewise. (strength_reduce): Likewise. (recombine_givs): Likewise. (check_dbra_loop): Likewise. (load_mems): Likewise. (try_copy_prop): Likewise. * print-rtl.c (print_rtx): Use INSN_P. * recog.c (find_single_use): Use INSN_P. * reg-stack.c (stack_regs_mentioned): Use INSN_P. (next_flags_user): Likewise. (swap_rtx_condition): Likewise. * regmove.c (mark_flags_life_zones): Use INSN_P. (optimize_reg_copy_1): Likewise. (optimize_reg_copy_2): Likewise. (optimize_reg_copy_3): Likewise. (reg_is_remote_constant_p): Likewise. (fixup_match_2): Likewise. (regmove_optimize): Likewise. (fixup_match_1): Likewise. * regrename.c (build_def_use): Use INSN_P. (replace_reg_in_block): Likewise. (consider_use): Likewise. * reload.c (find_equiv_reg): Use INSN_P. * reload1.c (reload): Use INSN_P. (maybe_fix_stack_asms): Likewise. (calculate_needs_all_insns): Likewise. (reload_as_needed): Likewise. (emit_output_reload_insns): Likewise. (delete_address_reloads_1): Likewise. (reload_cse_regs_1): Likewise. (reload_combine): Likewise. (reload_cse_move2add): Likewise. * reorg.c (redundant_insn): Use INSN_P. (dbr_schedule): Likewise. * resource.c (find_dead_or_set_registers): Use INSN_P. (mark_target_live_regs): Likewise. * rtlanal.c (reg_used_between_p): Use INSN_P. (reg_referenced_between_p): Likewise. (reg_set_between_p): Likewise. (reg_set_p): Likewise. (single_set): Likewise. (multiple_sets): Likewise. (find_last_value): Likewise. (reg_set_last): Likewise. (find_reg_note): Likewise. (find_regno_note): Likewise. * sibcall.c (sequence_uses_addressof): Use INSN_P. * simplify-rtx.c (cselib_process_insn): Use INSN_P. * ssa.c (find_evaluations): Use INSN_P. (rename_block): Likewise. (rename_equivalent_regs): Likewise. * unroll.c (loop_find_equiv_value): Use INSN_P. (set_dominates_use): Likewise. * varasm.c (mark_constant_pool): Use INSN_P. (mark_constants): Likewise. * config/alpha/alpha.c (alpha_does_function_need_gp): Use INSN_P. (alphaev4_next_group): Likewise. (alphaev5_next_group): Likewise. * config/c4x/c4x.c (c4x_process_after_reload): Use INSN_P. (c4x_rptb_rpts_p): Likewise. * config/mips/mips.c (mips16_optimize_gp): Use INSN_P. * config/rs6000/rs6000.c (uses_TOC): Use INSN_P. (rs6000_adjust_priority): Likewise. * config/sh/sh.c (sh_loop_align): Use INSN_P. (machine_dependent_reorg): Likewise. (split_branches): Likewise. * config/tahoe/tahoe.c (tahoe_cmp_check): Use INSN_P. Fri Aug 4 11:43:49 2000 John Wehle (john@feith.com) * combine.c (recog_for_combine): Remove the old notes prior to attempting to recognize the new pattern. (distribute_notes): Ignore REG_NONNEG notes. 2000-08-04 Chandrakala Chavva * varasm.c (output_constructor): Add .align 0 for packed vars. 2000-08-04 J. David Anglin * configure.in: Use default thread_file even when enable_threads is yes or dce because hpux10.20 pa port uses MULTILIB implementation. * configure: Rebuilt. * gthr-dce.h (__gthread_objc_condition_allocate): Fix typo. 2000-08-04 Donn Terry (donnte@microsoft.com) * prefix.c (translate_name): Don't strip trailing DIR_SEPARATOR. 2000-08-04 Mark Elbrecht * i386/x-djgpp: Delete code that conditionally modifies target_alias. Delete code that conditionally modifies 'version'. Delete X_CPPFLAGS. Add comment for SYSTEM_HEADER_DIR. * i386/xm-djgpp.h (GCC_DRIVER_HOST_INITIALIZATION): New macro. * gcc.c (main): Use it. * config/i386/xm-djgpp.h (UPDATE_PATH_HOST_CANONICALIZE): New macro. * prefix.c (update_path): Use it. * i386/djgpp.h (STANDARD_INCLUDE_DIR): Define. (MD_EXEC_PREFIX): Set to '/dev/env/DJDIR/bin/'. (ASM_OUTPUT_SECTION_NAME): Add code attribute to sections containing code. (SUPPORTS_WEAK, SUPPORTS_ONE_ONLY): Default to true. (SUBTARGET_SWITCHES): Adjust. (WCHAR_UNSIGNED, WCHAR_TYPE_SIZE, WCHAR_TYPE): Undefine before defining. (WINT_TYPE, SIZE_TYPE, PTRDIFF_TYPE): Define. 2000-08-04 Joseph S. Myers * c-common.h (flag_isoc94): Declare. * c-decl.c (flag_isoc94): Define. (c_decode_option): Set flag_isoc94 as appropriate. * c-common.c (T_PD, T_IM, T_UIM): Define. (format_char_info): Add tlen and jlen. (print_char_table): Add entries for %t and %j. Allow %zn. Allow %F. Allow %lf. (scan_char_table): Add entries for %t and %j. Allow %F. Allow %l[. (time_char_table): Add NULL entries for %t and %j. (check_format_info): Allow for %t and %j. Warn for %F if pedantic and not C99. Warn for %lc, %ls and %l[ if pedantic and not C94. Warn for printf %lf if pedantic and not C99. Don't warn for empty precision. Allow precision argument to be unsigned int. If pedantic, warn for %p passed an argument not a pointer to possibly qualified void or a possibly qualified character type, and for pointer targets of the wrong sign, except for character pointers. 2000-08-04 Joseph S. Myers * ginclude/stddef.h: Don't declare wint_t unless __need_wint_t. * c-common.h (enum c_tree_index): Add CTI_WINT_TYPE. (wint_type_node): Define. * c-decl.c (WINT_TYPE): Define. (init_decl_processing): Create the wint_type_node type. * c-common.c (T_WI): Define. (print_char_table): Use T_WI for %lc format. 2000-08-04 Bruce Korb * fixinc/: Verified that the MSDOS patch does not break the UNIX functionality and applied the next three patches from July: 2000-07-28 Eli Zaretskii * fixinc/fixfixes.c (main) [__MSDOS__]: Avoid overwriting the output file with the temporary one by appending ".X" to generate the temporary fuile's name. If the output file already has an extension, replace it with ".X". * fixinc/fixincl.c (fix_with_system) [__MSDOS__]: Use $ORIGDIR, not $DESTDIR, to find applyfix. Use sprintf instead of snprintf; reallocate the command buffer while copying the command-line argument. Redirect the output directly to the temporary file, instead of going through another temporary file. (process): Close the temporary file before unlinking it. (machine_matches) [__MSDOS__]: If the machine doesn't match, set the FD_SKIP_TEST flag. Pay attention to the FD_MACH_IFNOT flag. (run_compiles): Pass p_fixd argument to machine_matches, as it expects. * fixinc/fixincl.sh: Export ORIGDIR. If $DJDIR is set in the environment, assume there are no symlinks in the include directory. When cleaning up the DONE files, look for them case-insensitively. Don't try to remove symlinks if they aren't there. * fixinc/fixlib.c (make_raw_shell_str): Accept new argument smax; all callers changed. Declare pz "const char *", to avoid compiler warnings. * fixinc/fixlib.h (ENV_TABLE): Get ORIGDIR from the environment. Change prototype of make_raw_shell_str. 2000-07-27 Eli Zaretskii * fixinc/fixincl.c [__MSDOS__]: Don't include "server.h". (initialize) [__MSDOS__]: Use tempnam. (initialize): Don't use SIGPIPE if it is not defined. * fixinc/fixfixes.c (main) [__MSDOS__]: freopen for stdout should return stdout. 2000-07-25 Bruce Korb * fixinc/fix*.[ch]: substantially reworked to make it possible to run this program without using fork(2) or pipe(2) (i.e. in a DOS environment). 2000-08-04 Joseph S. Myers * cppdefault.h (WINT_TYPE): Define. * cppinit.c (builtin_array): Define __WINT_TYPE__. * tradcpp.c (initialize_builtins): Define __WINT_TYPE__. * tm.texi (NO_BUILTIN_WINT_TYPE, WINT_TYPE): Document. Fri Aug 4 06:53:46 2000 Clinton Popetz * (mips_legitimate_address_p): Don't allow register+offset if the offset is large and negative, and we are compiling for 64 bit registers. 2000-08-04 Herman A.J. ten Brugge * gencodes.c (main): Define CODE_FOR_nothing as the last possible insn_code_number + 1. 2000-08-04 Kazu Hirata * h8300.c (function_prologue): Rearrange code for conciseness. (function_epilogue): Likewise. * h8300.h (OK_FOR_U): Fix formatting. * cse.c: Fix a comment typo. Fix formatting. 2000-08-03 Richard Henderson * config/i386/i386.md (return_indirect_internal): New. * config/i386/i386.c (ix86_expand_epilogue): Use it. 2000-08-03 Zack Weinberg * cpplex.c (parse_name): Might have to glue a CPP_OTHER token before the name. (lex_line): Glue @ onto the beginning of identifiers and string constants, in Objective-C mode. (output_token, spell_token): Handle CPP_OSTRING. (can_paste, maybe_paste_with_next): Handle pasting @ onto the beginning of a NAME or a STRING, in objc mode. * cpplib.c (get_define_node): Do not permit identifiers that begin with @ to be #defined. * cppmacro.c (CAN_PASTE_AFTER): Add CPP_OTHER. * cpplib.h (TTYPE_TABLE): Add CPP_OSTRING. * c-lang.c, objc/objc-act.c (build_objc_string): Delete. * c-tree.h (build_objc_string): Delete prototype. * objc/objc-tree.def: Delete OBJC_STRING_CST. * c-lex.c (yylex): Use build_string for all three kinds of strings. * c-parse.in, objc/objc-act.c: Update commentary. 2000-08-03 Mark Mitchell * extend.texi: Fix typo in last change. * extend.texi: Add commentary on statement-expressions and their interactions with C++. 2000-08-03 Nick Clifton * dwarf2.h (DW_LANG_Java): Change value to 0x000b. * dwarf.h (LANG_JAVA): Change value to 0x000b. 2000-08-03 Anthony Green * dwarf2out.c (gen_compile_unit_die): Add java language support. (add_bound_info): Check for java language. (is_java): New function. * dwarfout.c (output_compile_unit_die): Ditto. * dwarf.h (dwarf_source_language): Add java source language type. * dwarf2.h (dwarf_source_language): Ditto. Thu Aug 3 20:32:25 MET DST 2000 Jan Hubicka * reg-stack.c (subst_stack_regs_pat): Use replace_reg to swap operands. * i386.c (ix86_expand_branch): Mode of comparison in IF_THEN_ELSE is VOIDmode. Thu Aug 3 10:05:53 2000 Akiko Matsushita * gengenrtl.c, rtl.c: Avoid #elif. 2000-08-03 Michael Poole * tm.texi (Register Classes): Clarify order of sub-initializers in REG_CLASS_CONTENTS. Thu Aug 3 15:53:03 2000 J"orn Rennecke From SAITOH Masanobu: * sh.h (ASM_OUTPUT_REG_PUSH): Fix syntax. 2000-08-03 David Billinghurst * config/i386/cygwin.h: Remove -remap from CPP_SPEC since this option is not supported by tradcpp and isn't actually needed for cygwin. 2000-08-03 Kazu Hirata * h8300.c: Fix a comment typo. * h8300.h (OK_FOR_U): Accept a 32-bit constant address on H8/S. * jump.c: Fix formatting. * toplev.c: Fix formatting. Thu Aug 3 01:05:32 2000 Jeffrey A Law (law@cygnus.com) * flow.c (find_auto_inc): Verify that we've got a REG before peeking at its regno. Fail, don't abort if we can't find the increment of the desired register. * pa.md (shadd height reduction patterns/splitters): Remove. 2000-08-02 Jim Wilson * config/ia64/ia64-protos.h (flag_ssa): Declare. * config/ia64/ia64.md (movti_internal, movti_internal+1): New. 2000-08-02 Mark Mitchell * dce.c: Remove all uses of assert. * dwarf2out.c: Likewise. * dwarfout.c: Likewise. * ssa.c: Likewise. 2000-08-02 Zack Weinberg * gcc.h (lang_specific_driver): Constify second argument. * gcc.c (translate_options, process_command, main): Likewise. Constify variables to match. Cast second argument to pexecute. * cppspec.c, gccspec.c: Adjust type of second argument to lang_specific_driver, and update code as necessary. 2000-08-02 Jakub Jelinek * loop.c (scan_loop): Ensure update_end label does not go away until reg_scan_update is run. 2000-08-02 Zack Weinberg * c-common.h: Prototype min_precision and c_build_qualified_type here... * c-tree.h: ... not here. * errors.h: Prototype fancy_abort. * emit-rtl.c (gen_lowpart_common): Move variable 'c' into HOST_BITS_PER_WIDE_INT == 64 ifdef block. * regrename.c (regrename_optimize): Make control flow explicit. (replace_reg_in_block): Initialize reg_use to 0. * i386.c (legitimate_address_p): Rename error label to report_error to avoid namespace clash. 2000-08-02 Kazu Hirata * fold-const.c: Fix formatting. Wed Aug 2 16:26:15 MET DST 2000 Jan Hubicka * i386.c (legitimate_address_p): Accept other bases than pic_offset_table_rtx for GOTOFF constructs. Wed Aug 2 15:59:34 MET DST 2000 Jan Hubicka * i386.md (shift to lea splitter): Use const_int_operand. 2000-08-02 Zack Weinberg * cppexp.c, cppinit.c, cpplex.c, cpplib.c, cppmacro.c, cppspec.c: Do not use 'legal' or 'illegal' in error messages and comments. * cppmain.c (cb_define, cb_undef): Don't generate any output if not done_initializing. * cpplex.c (maybe_paste_with_next): When the token after a ## is an omitted rest argument, only delete the token before it if that token is a comma. Do not warn about bogus token pastes for , ## rest_arg. * cpp.texi: Update. * cpp.1: Regenerate. 2000-08-02 Fred Fish * config/i386/beos-elf.h (STARTFILE_SPEC): Add i386-mcount.o when user gives -p option. Add init_term_dyn.o for BeOS 5.0 and later. * config/i386/beos-elf.h (INCLUDE_DEFAULTS): Add additional Be directories to search path. Remove support for __declspec(dllimport) and __declspec(dllexport). This is leftover cruft from the earlier BeOS gcc port when BeOS used Microsoft's PE object file format. * configure.in (i*86-*-beoself): Remove extra_objs=winnt.o. * config/i386/t-beos (winnt.o): Remove Makefile frag. * config/i386/beos-elf.h (TARGET_NOP_FUN_DLLIMPORT): Remove. (VALID_MACHINE_DECL_ATTRIBUTE): Remove. (VALID_MACHINE_TYPE_ATTRIBUTE): Remove. (MERGE_MACHINE_DECL_ATTRIBUTES): Remove. (REDO_SECTION_INFO_P): Remove. (ASM_EXPORT_DECL): Remove. (ASM_DECLARE_FUNCTION_NAME): Remove. (ASM_DECLARE_OBJECT_NAME): Remove. (ASM_OUTPUT_ALIGNED_COMMON): Remove. (ASM_OUTPUT_ALIGNED_DECL_COMMON): Remove. (ASM_OUTPUT_ALIGNED_LOCAL): Remove. (STRIP_NAME_ENCODING): Remove. Remove support for obsolete version of BeOS that is no longer supported by Be. * configure.in (i*86-*-beospe*): Remove. * config/i386/beos-pe.h: Remove. 2000-08-01 Jeffrey Oldham Mark Mitchell * Makefile.in (OBJS): Added dce.o. (ssa.o): Updated target to include ssa.h. (flow.o): Likewise. (toplev.o): Likewise. (dce.o): Created target. * basic-block.h: Added comments. (INVALID_BLOCK): Added definition. (connect_infinite_loops_to_exit): Added declaration. Moved SSA declarations to ssa.h. * flow.c: Added inclusion of ssa.h. (struct depth_first_search_dsS, depth_first_search_ds): Added definitions. (compute_immediate_postdominators): Added definition. (connect_infinite_loops_to_exit): Likewise. (flow_dfs_compute_reverse_init): Likewise. (flow_dfs_compute_reverse_add_bb): Likewise. (flow_dfs_compute_reverse_execute): Likewise. (flow_dfs_compute_reverse_finish): Likewise. * rtl.h (rtx/in_struct): Added use to determine insn necessity. (LABEL_P): Added definition. (JUMP_P): Likewise. (NOTE_P): Likewise. (BARRIER_P): Likewise. (JUMP_TABLE_DATA_P): Likewise. (INSN_DEAD_CODE_P): Likewise. * ssa.c: Replaced inclusions with ssa.h inclusion. (CONVERT_HARD_REGISTER_TO_SSA_P): Moved to ssa.h. (rename_registers): Removed unnecessary variables. * ssa.h: Created by moving declarations from ssa.c and basic-block.h. * timevar.def: Defined TV_DEAD_CODE_ELIM. * toplev.c: Added ssa.h inclusion. (dump_file_index): Added DFI_dce. (dump_file): Added "dce" entry. Defined flag_ssa. (f_options): Added dce entry. * invoke.texi: Document -fdce. Emphasize experimental status of -fssa. * dce.c: New file. 2000-08-01 Zack Weinberg * cpperror.c (v_message): Split into _cpp_begin_message and v_message macro. All callers updated. (_cpp_begin_message): Do inhibit_errors/inhibit_warnings checks here. * cppfiles.c (cpp_syshdr_flags): New function. (read_include_file): Don't call cpp_output_tokens. Call enter_file hook. * cppinit.c (dump_macros_helper): Moved to cppmain.c. (cpp_reader_init): Don't initialize token_buffer. Call _cpp_init_internal_pragmas. (cpp_cleanup): Don't clear token_buffer. (cpp_start_read): Don't worry about output from -D processing. Don't call cpp_output_tokens. (cpp_finish): Don't dump macros here. Don't call cpp_output_tokens. * cppmacro.c (_cpp_dump_definition): Rename cpp_dump_definition. Write directly to a FILE *. (dump_funlike_macro): Delete. (dump_macro_args): New. * cpplex.c (TOKEN_LEN): Convert to inline function. (_cpp_grow_token_buffer, safe_fwrite, cpp_output_tokens, cpp_scan_line, _cpp_dump_list): Delete. (cpp_printf, cpp_output_list): New. (output_line_command): Don't worry about entering or leaving files. (cpp_scan_buffer): Just output each token as we hit it. (process_directive): Don't call cpp_output_tokens. (_cpp_glue_header_name): Don't use token_buffer. (output_token, dump_param_spelling): Write directly to a FILE *. * cpplib.c (pass_thru_directive, dump_macro_name, pragma_dispatch, do_pragma_gcc): Delete. (do_define, do_undef, parse_include, do_line, do_ident, do_pragma, do_pragma_poison, cpp_pop_buffer): Call the appropriate hook functions. (do_error, do_warning, pragma_dependency): Call _cpp_begin_message, then cpp_output_list. (cpp_register_pragma, cpp_register_pragma_space, _cpp_init_internal_pragmas): New. (do_pragma): Walk the pragmas table here. (do_pragma_once, do_pragma_poison, do_pragma_system_header, do_pragma_dependency): Return void. (do_pragma_implementation): Moved to cppmain.c. * cpplib.h: Update prototypes. (struct cpp_reader): Remove printer, token_buffer, token_buffer_size, and limit. Add struct cb, and pragmas. (struct cpp_printer): Remove last_id and written. (CPP_WRITTEN, CPP_PWRITTEN, CPP_SET_WRITTEN, CPP_ADJUST_WRITTEN): Delete. * cpphash.h: Update prototypes. (ufputs): New wrapper. * cppmain.c (cb_define, cb_undef, cb_include, cb_ident, cb_enter_file, cb_leave_file, cb_def_pragma): New functions. (main): Set up callbacks. Register #pragma implementation. Dump macros from here. 2000-08-01 Geoff Keating * rtl.h (enum reg_note): Add REG_MAYBE_DEAD. * rtl.c (reg_note_name): Add REG_MAYBE_DEAD. * flow.c (propagate_one_insn): Allow deletion of prologue/epilogue insns if they have a REG_MAYBE_DEAD note attached. * config/rs6000/rs6000.c (rs6000_maybe_dead): New function. (rs6000_emit_load_toc_table): TOC loads may go dead. 2000-08-01 Jim Wilson * config/ia64/ia64.c (ia64_function_arg): Fix last change. Verify type exists before using it. Use number of words as alignment otherwise. (ia64_function_arg_partial_nregs, ia64_function_arg_advance, ia64_va_arg): Propagate ia64_function_args changes here. 2000-08-01 Richard Henderson * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Care for null DECL. * config/ia64/sysv4.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise. 2000-08-01 Bernd Schmidt From Joern Rennecke: * sh.h (CPP_SPEC, TARGET_SWITCHES): Add m4-nofpu. * sh.md (udivsi3, divsi3): Don't use libcalls that use the FPU unless TARGET_SH3E is set. * t-sh (MULTILIB_MATCHES): Add m2=m4-nofpu. * sh.md (ashlsi3_d, ashlsi3_k): Remove, replace with (ashlsi3_std): New pattern. (ashlsi3 expander): Use it for TARGET_SH3. * sh.c (gen_ashift): Use it instead of ashlsi3_k. Tue Aug 1 12:34:21 MET DST 2000 Jan Hubicka * loop.c (canonicalize_condition): Use destination, not source to determine SET's mode. 2000-07-31 Mark Mitchell * flow.c (clear_log_links): Fix typo. Mon Jul 31 22:19:24 2000 Jeffrey A Law (law@cygnus.com) * loop.c (check_dbra_loop): Make change from July 17, 2000 work on targets which need more than one insn for a compare/cbranch operation. 2000-07-31 Jim Wilson * config/ia64/ia64.c (ia64_function_arg): Use alignment not size when computing offset. Mon Jul 31 20:35:50 2000 Denis Chertykov * genpeep.c (main): Handle DEFINE_PEEPHOLE2. 2000-07-31 Geoff Keating * flow.c (clear_log_links): Nuke global_live_at_start and global_live_at_end data, since if the log_links stuff is invalid so is global_live_at_*. 2000-07-31 Richard Henderson * tm.texi (Addressing Modes): Clarify PRE/POST_MODIFY descriptions. 2000-07-31 Jakub Jelinek * cpplex.c (_cpp_get_line): If index is 0, return line 0 col 0. (_cpp_get_token): Don't macro expand a just pasted token if it was pasted at no_expand_level. 2000-07-31 Zack Weinberg * cppmacro.c (find_param, count_params, save_expansion): Permit 'defined' as a macro parameter name. 2000-07-31 Zack Weinberg * Makefile.in: Rename cpp to cpp0, tradcpp to tradcpp0, and xcpp to cpp throughout. (native): Remove unnecessary dependency on cpp. * gcc.c (trad_capable_cpp, C specs): Rename cpp to cpp, tradcpp to tradcpp0. (.i spec): Add missing output-file spec to cc1 command line. * objc/lang-specs.h: Rename cpp to cpp0 and/or tradcpp to tradcpp0. 2000-07-31 Zack Weinberg * c-decl.c (mesg_implicit_function_declaration): Init to -1. (implicit_decl_warning): New function. (implicitly_declare): Use it. * c-typeck.c (build_external_ref): Use implicit_decl_warning to complain about implicit decls of builtins. * c-lang.c (lang_init): Set mesg_implicit_function_declaration based on pedantic && flag_isoc99, if not already set. * c-tree.h: Declare mesg_implicit_function_declaration. Prototype implicit_decl_warning. 2000-07-30 Jeffrey D. Oldham * Makefile.in (ssa.o): Updated header files in dependences. * basic-block.h: Added compute_immediate_postdominators declaration. * config/i386/i386.h (CONVERT_HARD_REGISTER_TO_SSA_P): Added definition. * flow.c (compute_immediate_dominators): Updated comment. (compute_immediate_postdominators): Added definition. * rtl.h (HARD_REGISTER_P): Added definition. * ssa.c: Include additional header files. (assert): Added definition. (ssa_rename_to_lookup): Added to reimplement ssa_rename_to to include select hard registers. (ssa_rename_to_insert): Likewise. (ssa_rename_from_initialize): Likewise. (ssa_rename_from_lookup): Likewise. (original_register): Likewise. (ssa_rename_from_insert): Added to reimplement ssa_rename_from to include select hard reigsters. (ssa_rename_from_traverse): Likewise. (ssa_rename_from_free): Likewise. (ssa_rename_from_print): Likewise. (ssa_rename_from_print_1): Likewise. (ssa_rename_from_hash_function): Likewise. (ssa_rename_from_equal): Likewise. (ssa_rename_from_delete): Likewise. (simplify_to_immediate_dominators): Removed in favor of flow.c:compute_immediate_dominators. (find_evaluations_1): Modified to work with hard registers. (insert_phi_node): Likewise. (insert_phi_nodes): Likewise. (struct rename_set_data): Updated prev_reg comment. (create_delayed_rename): Modified to work with hard registers. (RENAME_NO_RTX): Updated comment. (apply_delayed_renames): Modified to work with hard registers. (rename_insn_1): Likewise and added handling of CLOBBER rtls. (rename_block): Updated to use revised ssa_rename_to interface. (rename_registers): Updated to use revised ssa_rename_to and ssa_rename_from interface. (convert_to_ssa): Revised to use compute_immediate_dominators and deal with hard registers. (make_regs_equivalent_over_bad_edges): Modified to work with hard registers. Added check for illegal unification of hard register. (make_equivalent_phi_alternatives_equivalent): Modified to work with hard registers. (compute_conservative_reg_partition): Likewise. (coalesce_if_unconflicting): Modified to work with hard registers and check for conflicting hard registers. (mark_phi_and_copy_regs): Revised loop to work only on pseudo registers. (rename_equivalent_regs_in_insn): Modified to work with hard registers. (record_canonical_element_1): Added definition. (check_hard_regs_in_partition): Added definition. (convert_from_ssa): Added data structure deallocation and check for illegal hard register unification. (conflict_hard_regs_p): Added definition. * toplev.c (rest_of_compilation): Added comment. 2000-07-31 Anthony Green * config/ia64/crtbegin.asm (__EH_FRAME_BEGIN__): Align correctly. 2000-07-31 Jason McMullan * builtins.c (expand_builtin_apply): Don't defer pop during argument setup. 2000-07-31 Herman A.J. ten Brugge * calls.c (combine_pending_stack_adjustment_and_call): Only use preferred_unit_stack_boundary when it is > 1. 2000-07-31 Joseph S. Myers * c-common.c (init_function_format_info): Add C99 format functions in C99 mode. * c-decl.c (get_parm_info): Don't treat 'const void', 'volatile void' or 'register void' as being the special case of 'void' alone in a parameter list. * c-typeck.c (build_c_cast): Change -Wcast-qual pedwarn for discarding qualifiers into a plain warning. 2000-07-31 Kazu Hirata * combine.c: Fix formatting. * h8300.md: Fix formatting. * local-alloc.c: Fix formatting. * h8300.c (get_shift_alg): Remove the variable alg. (emit_a_shift): Rearrange code to improve readability. * h8300.md (movsi_h8300hs): Rearrange code to improve readability. * h8300.h (MODES_TIEABLE_P): Accept a combination of QImode and HImode on all architectures and a combination of HImode and SImode on H8/300H and H8/S. * h8300.c (split_adds_subs): Rearrange code for conciseness. Mon Jul 31 12:27:55 MET DST 2000 Jan Hubicka * i386.md (addsi to lea splitter, ashlqi3_1_lea): Fix bugs in my last checkin. Mon Jul 31 10:41:01 MET DST 2000 Jan Hubicka * recog.c (extract_insn): Set operand_mode according to operand if match_operand is VOIDmode. Mon Jul 31 10:36:38 MET DST 2000 Jan Hubicka * recog.c (validate_replace_rtx_1): Do not abort for (nil) expression. 2000-07-31 Geoff Keating * c-parse.in (extdefs): Call ggc_collect between external definitions. 2000-07-30 Michael Hayes Richard Henderson * Makefile.in (OBJS): Add doloop.o. * doloop.c: New file. * final.c (insn_current_reference_address): Return 0 before final. * flags.h (flag_branch_on_count_reg): Fix typos in commentary. * jump.c (any_uncondjump_p): Likewise. * loop.c (indirect_jump_in_function): Make static. (strength_reduce): Call doloop_optimize. (insert_bct, instrument_loop_bct): Remove. * loop.h (doloop_optimize): Prototype. * recog.c (split_all_insns): Split all INSN_P. * toplev.c (flag_branch_on_count_reg): Default on. * config/c4x/c4x.c (c4x_optimization_options): Don't set flag_branch_on_count_reg. * config/i386/i386.c (override_options): Likewise. * config/rs6000/rs6000.c (optimization_options): Likewise. * config/i386/i386.md (decrement_and_branch_on_count): Remove. (doloop_end): New. (dbra_ge): Remove, as well as all it's splitters. * config/rs6000/rs6000.md (decrement_and_branch_on_count): Remove. (doloop_end): New. * config/ia64/ia64-protos.h (ar_lc_reg_operand): Declare. (ia64_register_move_cost): Declare. * config/ia64/ia64.c (ar_lc_reg_operand): New. (struct ia64_frame_info): Add ar_size. (ia64_compute_frame_size): Set it. (save_restore_insns): Save and restore ar.lc. (ia64_register_move_cost): New, moved from header file. Handle application registers. (REG_AR_PFS, REG_AR_EC): Remove. Replace with AR_*_REGNUM numbers. (emit_insn_group_barriers): Special case doloop_end_internal. (ia64_epilogue_uses): Mark ar.lc live at end. * config/ia64/ia64.h (AR_CCV_REGNUM, AR_LC_REGNUM): New registers. (AR_EC_REGNUM, AR_PFS_REGNUM): New registers. (FIRST_PSEUDO_REGISTER): Make room. (AR_M_REGNO_P, AR_I_REGNO_P, AR_REGNO_P): New. (FIXED_REGISTERS, CALL_USED_REGISTERS): Update. (REG_ALLOC_ORDER): Update. (HARD_REGNO_MODE_OK): Update. (REGISTER_NAMES): Update. (enum reg_class): Add AR_M_REGS and AR_I_REGS. (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update. (REGNO_REG_CLASS): Update. (LEGITIMATE_ADDRESS_DISP): Displacement range is 9 bits, not 10. (REGISTER_MOVE_COST): Move out of line. (PREDICATE_CODES): Update. * config/ia64/ia64.md (movdi patterns): Handle ar register classes. (addsi3_plus1_alt, adddi3_plus1_alt): New. (shladd_elim splitter): Allow constants in the predicate. (doloop_end, doloop_end_internal): New. 2000-07-30 Richard Henderson * genattrtab.c (struct insn_def): Add lineno member. (struct insn_ent): Likewise. (struct attr_desc): Likewise. (struct delay_desc): Likewise. (struct function_unit_op): Likewise. (struct function_unit): Likewise. (check_attr_value): Use message_with_line. (check_defs): Likewise. (expand_units): Likewise. (check_attr_test): Take a lineno argument. (gen_attr): Likewise. (gen_insn): Likewise. (gen_delay): Likewise. (gen_unit): Likewise. (main): Give it to them. (convert_set_attr_alternative): Take an insn_def argument instead of num_alt and insn_index. (convert_set_attr): Likewise. (write_test_expr): Protect INSN_ADDRESSES load with INSN_ADDRESSES_SET_P. 2000-07-30 Richard Henderson * flow.c (init_propagate_block_info): Use pc_set. Sun Jul 30 20:58:34 MET DST 2000 Jan Hubicka * i386.md (*lea_general_[123]) New insns and splits. (addsi3 to lea splitter): Handle other modes too. (shlsi3 to lea splitter): Likewise. (addhi_1_lea, shlhi_1_lea): New patterns. (addhi_1, shlhi_1): Conditionize by PARTIAL_REG_STALL. Sun Jul 30 20:51:25 MET DST 2000 Jan Hubicka * recog.c (general_operand, nonimmediate_operand): Accept any mode for VOIDmode CONSTANT_P operands. Sun Jul 30 20:42:21 MET DST 2000 Jan Hubicka * gcse.c (try_replace_reg): Use validate_replace_rtx_subexp instead of replace_rtx. * recog.c (validate_replace_rtx_subexp): New function. * recog.h (validate_replace_rtx_subexp): Declare. Sun Jul 30 20:38:26 MET DST 2000 Jan Hubicka * combine.c (simplify_set, make_extraction, make_compound_operation make_field_assignment): Use full mask instead of GET_MODE_MASK (mode) as force_to_mode argument. Sun Jul 30 20:30:41 MET DST 2000 Jan Hubicka * combine.c (if_then_else_cond): Be sure that mode fits in HOST_WIDE_INT. Sun Jul 30 20:27:36 MET DST 2000 Jan Hubicka * combine.c (record_promoted_value): Allow bitsize of mode to be equivalent to HOST_BITS_PER_WISE_INT. Sun Jul 30 20:25:21 MET DST 2000 Jan Hubicka * function.c (assign_stack_local_1, assign_stack_temp_for_type): Do not call gen_mode_alignment when mode is BLKmode. Sun Jul 30 20:21:54 MET DST 2000 Jan Hubicka * loop.c (express_from_1): Fix call of simplify_gen_binary. Sun Jul 30 20:08:37 MET DST 2000 Jan Hubicka * simplify-rtx.c (simplify_relational_operation): Verify that mode == VOIDmode implies both operands to be VOIDmode. (simplify_ternary_operation): Compute properly the mode of comparison. * combine.c (combine_simplify_rtx): Likewise. 2000-07-25 Michael Hayes * basic-block.h (struct loops): New field rc_order. * flow.c (flow_loops_cfg_dump): Dump rc_order if computed. (flow_loops_free): Free rc_order. (flow_depth_first_order_compute): New parameter rc_order. (flow_loops_find): Allocate rc_order and swap usage with dfs_order. 2000-07-30 Herman A.J. ten Brugge Michael Hayes * config/c4x/c4x.md (set_ldp_prologue): Add for RTL prologue/epilogue. (push_st, push_dp, pop_st, pop_dp, popqi_unspec): Likewise. (nodb_call, return_from_epilogue): Likewise. (return_from_interrupt_epilogue, prologue, epilogue): Likewise. * config/c4x/c4x.c (c4x_expand_prologue, c4x_expand_eplilogue): Add. * config/c4x/c4x-protos.h (c4x_interrupt_function_p): Add. (c4x_expand_prologue, c4x_expand_epilogue): Likewise. (c4x_valid_type_attribute_p): Likewise. * config/c4x/c4x.h (FUNCTION_PROLOGUE, FUNCTION_EPILOGUE): Delete. (FUNCTION_BLOCK_PROFILER_EXIT): Convert to emit RTL. 2000-07-30 Michael Hayes * config/c4x/c4x.c (c4x_emit_move_sequence): Use loadqi_big_constant and loadhi_big_constant if applicable. * config/c4x/c4x.md (loadqi_big_constant, loadhi_big_constant): Tweak and add new splitter.s 2000-07-30 Michael Hayes * config/c4x/c4x.c (c4x_rptb_insert): Make more robust. 2000-07-30 Michael Hayes * config/c4x/c4x.h (ASM_FORMAT_PRIVATE_NAME): Output $ in label. 2000-07-30 Michael Hayes * config/c4x/c4x.h (IS_XXX_REGNO): Rewrite to avoid unsigned warnings. 2000-07-30 Michael Hayes * config/c4x/libgcc.S (divqf3): Improve accuracy. 2000-07-27 Mark Mitchell Put phi nodes after NOTE_INSN_BASIC_BLOCK. * rtl.h (NOTE_INSN_BASIC_BLOCK_P): New macro. * bb-reorder.c (get_next_bb_note): Use NOTE_INSN_BASIC_BLOCK_P. (get_prev_bb_note): Likewise. (remove_scope_notes): Likewise. * flow.c (commit_one_edge_insertion): Likewise. (merge_blocks_nomove): Likewise. (verify_flow_info): Likewise. * gcse.c (insert_insn_end_bb): Likewise. * reg-stack.c (emit_swap_insn): Likewise. * ssa.c (first_insn_after_basic_block_note): New function. (insert_phi_node): Use it. (rename_block): Likewise. (eliminate_phi): Likewise. (make_regs_equivalent_over_bad_edges): Likewise. (make_equivalent_phi_alternatives_equivalent): Likewise. (for_each_successor_phi): Likewise. (convert_from_ssa): Modify phi-node deletion algorithm. 2000-07-29 Andreas Jaeger * configure.in (mips*-*-linux*): Use mips*el to check for little endian MIPS, add tmake_file. * config/mips/linux.h (TARGET_VERSION): Use GNU/Linux. (SUBTARGET_CPP_SPEC): Default MIPS_ISA is 1. Patches by Maciej W. Rozycki . 2000-07-28 Richard Henderson * config/ia64/ia64.c (ia64_print_operand): Fix typos. Sign extend mode size before negating. 2000-07-28 Richard Henderson * emit-rtl.c (gen_lowpart_common): Add missing 'c' variable. 2000-07-28 Bernd Schmidt * cse.c (canon_hash): Handle PRE_MODIFY/POST_MODIFY. (cse_insn): Likewise. (addr_affects_sp_p): Likewise. * expr.c (move_by_pieces): Likewise. (clear_by_pieces): Likewise. * gcse.c (oprs_unchanged_p): Likewise. * haifa-sched.c (sched_analyze_2): Likewise. * recog.c (offsettable_address_p): Likewise. * regclass.c (record_address_regs): Likewise. * reload.c (find_reusable_reload): Likewise. (push_reload): Likewise. (operands_match_p): Likewise. (decompose): Likewise. (find_reloads_address_1): Likewise. (find_inc_amount): Likewise. * reload1.c (elimination_effects): Likewise. * resource.c (mark_set_resources): Likewise. * flow.c (attempt_auto_inc): New function; mostly broken out of find_auto_inc. (find_auto_inc): Split into two functions and enhanced to generate POST_MODIFY. * rtl.def (PRE_MODIFY, POST_MODIFY): Adjust comment. * rtl.h (count_all_occurrences): Declare. (HAVE_{PRE,POST}_MODIFY_{DISP,REG}): Provide default of 0 if not defined. * rtlanal.c (count_all_occurrences): New function. * tm.texi (HAVE_POST_MODIFY_DISP, HAVE_PRE_MODIFY_DISP, HAVE_POST_MODIFY_REG, HAVE_PRE_MODIFY_REG): Document. * config/ia64/ia64-protos.h (destination_operand): Declare. * config/ia64/ia64.c (destination_operand): New function. (ia64_print_operand): Handle POST_MODIFY. (rtx_needs_barrier): Likewise. * config/ia64/ia64.h (HAVE_POST_MODIFY_DISP): Define to 1. (HAVE_POST_MODIFY_REG): Define to 1. (MAX_REGS_PER_ADDRESS): Change to 2. (GO_IF_LEGITIMATE_ADDRESS): Accept POST_MODIFY too. (LEGITIMATE_ADDRESS_REG): New helper macro. (LEGITIMATE_ADDRESS_DISP): Likewise. (PREDICATE_CODES): Add entry for destination_operand. * config/ia64/ia64.md (all mov patterns): Use destination_operand predicate for operand 0. 2000-07-28 Kaveh R. Ghazi * dwarf2out.c: Indent #error directive. * gbl-ctors.h: Fix typo in comment. (__do_global_ctors): Prototype. * gcse.c (record_one_set, pre_delete): Remove unused variables. * rs6000.c (rs6000_maybe_dead): Delete unused prototype. (print_operand): Initialize variable `t'. 2000-07-27 Aldy Hernandez * config/arm/arm.md ("call_value"): removed constraints. Constraints are ignored in expanders. (*call_value_reg): split =rf into various constraints. (*call_value_mem): same (*call_value_symbol): same (*sibcall_value_insn): same 2000-07-28 Philipp Thomas * install.texi (--enable-nls): Change the description of the NLS related configure options to match the current state. (--with-included-gettext): Likewise. (--enable-maintainer-mode): New description added. * extend.texi (-fstrict-prototype): Add missing '.'. 2000-07-27 Jim Wilson * dwarf2out.c (gen_decl_die): Don't call gen_abstract_function if DECL_INITIAL (decl) == NULL_TREE. 2000-07-27 Alexandre Oliva * Makefile.in (INSN_ATTR_H): New macro. Replace all dependencies on insn-attr.h with it. * genattr.c: Generate `#include "insn-addr.h"' if HAVE_ATTR_length. * insn-addr.h: New header. (insn_addresses_): Renamed from insn_addresses. (INSN_ADDRESSES_DEFN, INSN_ADDRESSES, INSN_ADDRESSES_ALLOC, INSN_ADDRESSES_FREE, INSN_ADDRESSES_SET_P, INSN_ADDRESSES_SIZE, INSN_ADDRESSES_NEW): New macros. * genattrtab.c (write_test_expr): Use new macros. * final.c (insn_addresses, init_insn_lengths): Likewise. (align_fuzz, shorten_branches): Likewise. (final): Likewise. Do not reject new insns if their addresses have been added to INSN_ADDRESSES. * config/arm/arm.c, config/avr/avr.c: Use new macros. * config/h8300/h8300.c, config/i370/i370.c: Likewise. * config/m88k/m88k.c, config/pa/pa.c, config/pa/pa.md: Likewise. * config/sparc/sparc.c, config/sparc/sparc.md: Likewise. * config/sh/sh.c: Likewise. (output_branchy_insn): Use INSN_ADDRESSES_NEW. * Makefile.in (bootstrap): Move -BstageN/ back to the beginning. 2000-07-27 Andrew Cagney * gcc.c (struct prefix_list): Add member priority. (enum path_prefix_priority): Declare. (add_prefix): Replace ``first'' with ``priority''. Append new entry but keep list in priority order. (process_command): Update. Pass PREFIX_PRIORITY_B_OPT or PREFIX_PRIORITY_LAST to add_prefix. (process_command): Move include kludge - foo/stageN - to before foo/include. 2000-07-27 Jason Merrill * dwarf2out.c (gen_typedef_die): Abort if we get identical TREE_TYPE and DECL_ORIGINAL_TYPE on a typedef. 2000-07-27 RodneyBrown * expr.h (get_alias_set, lang_get_alias_set): Delete prototypes. * tree.h (get_alias_set, lang_get_alias_set): Prototype. 2000-07-27 Joseph S. Myers * c-decl.c (finish_function): Don't treat 'main' specially unless flag_hosted. In C99 mode, return 0 from 'main' unless DEFAULT_MAIN_RETURN is otherwise defined. * c-decl.c (store_parm_decls): In C99 mode, pedwarn for function parameters defaulting to int in an old-style function definition. 2000-07-27 Kaveh R. Ghazi * c-parse.in (string): For -Wtraditional, warn about string concatenation only once per line. Thu Jul 27 09:25:17 2000 Akiko Matsushita * pa/x-pa-hpux: Add -D_HIUX_SOURCE to FIXPROTO_DEFINES for HI-UX/WE2 systems. 2000-07-24 Bruce Korb * fixincl/fixfixes.c(emit_gnu_type): rewrote to *rely* on GCC defining the __xxx_TYPE__ macros. * fixincl/fixincl.tpl(gnu_type_map): now obsolete * fixincl/fixlib.h: don't need to include "tm.h" anymore * fixincl/inclhack.def(type_map): now obsolete Thu Jul 27 11:54:17 2000 Andrew Cagney * cpp.texi: Append a trailing full-stop to xrefs where needed. 2000-07-26 Dave Pitts * i370.c: Remove LONGEXTERNAL ifdef from alias_number. Added hash routine constants. (mvs_hash_alias): New function. (mvs_add_alias): Change argument spacing. (mvs_need_alias): Change aliasing criteria. Added documentation. (mvs_get_alias): Change to use hashed name. The hashed name prevents CSECT name collisions. (mvs_check_alias): Likewise. (handle_pragma): Change documentation. * i370.md (mulsi3, divsi3, udivsi3, modsi3, umodsi3): Changed gen_rtx mode from SImode to DImode. (iorhi3): Changed LTORG size for insn. Wed Jul 26 19:44:05 2000 Hans-Peter Nilsson * reload.c (find_reloads_toplev): Reload a paradoxical subreg of a mem if the address is a mode_dependent_address_p. 2000-07-26 Kazu Hirata * h8300.c (print_operand): Print ":8" when the 'R' operand is suitable for 8-bit absolute. * h8300.h (EIGHTBIT_CONSTANT_ADDRESS_P): New. (OK_FOR_U): Add a case for the 8-bit constant address on the H8/300H. Wed Jul 26 19:26:21 2000 Hans-Peter Nilsson * varasm.c (assemble_variable) [! defined(ASM_OUTPUT_ALIGNED_COMMON) && ! defined (ASM_OUTPUT_ALIGNED_BSS]): Also test ! defined(ASM_OUTPUT_ALIGNED_DECL_COMMON) before complaining about lack of implemented alignment. 2000-07-26 Geoffrey Keating * emit-rtl.c (gen_lowpart_common) [REAL_ARITHMETIC]: Handle cross-compiling between 64-bit and 32-bit machines. 2000-07-27 Richard Henderson * config/ia64/ia64.md (movqicc_astep, movqi_internal_astep): New. (movhicc_astep, movhi_internal_astep): New. (movsicc_astep, movsi_internal_astep): New. (movdicc_astep, movdi_internal_astep): New. (movsfcc_astep, movsf_internal_astep): New. (movdfcc_astep, movdf_internal_astep): New. (movxfcc_astep, movxf_internal_astep): New. (cmovdi_internal_astep, cmovsi_internal_astep): New. Unify the cmov[ds]i splitters. 2000-07-27 Rodney Brown * real.c (asctoeg): Rename `error' label to unexpected_char_error 2000-07-26 Nick Clifton * config/arm/vxarm.h (CPP_PREDEFINES): Remove definition of __arm__. Allow it to be defined by CPP_ISA_SPEC in arm.h * dwarf2out.c (dwarf2out_frame_debug_expr): Accept SEQUENCE as well as PARALLEL blocks in FRAME_RELATED_EXPR notes. 2000-07-26 Alexandre Oliva * c-decl.c (finish_enum): Convert enumerations that fit in an `int' to `int'. (build_enumerator): In pedantic mode, cast to `int' those that don't. 2000-07-25 Rodney Brown * config/alpha/osf.h (SIZE_TYPE, PTRDIFF_TYPE): New. Tue Jul 25 23:08:33 2000 J"orn Rennecke * sh.md (cmpgtdi_t): Must be split. (cmpgtdi_t+1): New splitter. 2000-07-25 Zack Weinberg * cpplib.c (_cpp_check_directive): Issue -Wtraditional warnings for indented directives even if we are skipping. 2000-07-25 Nathan Sidwell * invoke.texi (strict-prototypes): Remove. * extend.texi (Deprecated Features): Add strict-prototypes. (Backwards Compatibility): New node. 2000-07-25 Jakub Jelinek * config/i386/i386.md (andsi_1+1): Allow HImode. (andsi_1+2): Require q_regs_operand. 2000-07-25 Jakub Jelinek * config/i386/i386.md (call_pop): Check operands[0], not operands[1]. Only check SYMBOL_REF_FLAG for a SYMBOL_REF. (call): Likewise. (call_value_pop): Only check SYMBOL_REF_FLAG for a SYMBOL_REF. (call_value): Likewise. 2000-07-25 Zack Weinberg * toplev.c (pipe_closed): Delete. (crash_signal): New. Generate ICE for a fatal signal. (float_signal): Call crash_signal outside a float-handler block, not abort. (main): Install crash_signal as handler for core-dumping signals. 2000-07-25 David Edelsohn * rs6000.c (print_operand, case 'T'): New case. * rs6000.md (call_indirect_aix32): Convert to expander of scheduled instructions. (call_indirect_aix64): Likewise. (call_value_indirect_aix{32,64}): Likewise. (call, call_value): Invoke expanders for AIX. Fall through to matchers for SysV. (call_indirect_nonlocal_aix{32,64}): New patterns (ctr and lr). (call_value_indirect_nonlocal_aix{32,64}): New patterns. (call_nonlocal_aix32): Remove CALL_LONG alternative. Operand 1 only "g" constraint. (call_nonlocal_aix64): Likewise. (call_value_nonlocal_aix{32,64}): Likewise. (call_nonlocal_sysv): New pattern for ctr, lr, and symbolic operands. (call_value_nonlocal_sysv): New pattern. (indirect_jump{si,di}): Use new 'T' modifier. (tablejump{si,di} matchers): Likewise. (return_internal_{si,di}): Likewise. (return_eh_{si,di}): Likewise. 2000-07-24 Richard Henderson * config/ia64/ia64.c (ia64_print_operand): Handle "%,". * config/ia64/ia64.h (PRINT_OPERAND_PUNCT_VALID_P): Likewise. * config/ia64/ia64.md (movdi_internal): Use it. 2000-07-24 Zack Weinberg * cppexp.c: Warn about unary + if -Wtraditional. * cpplex.c (lex_line): Always set BOL on the first token of a line. 2000-07-24 Michael Meissner * d30v.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Delete references to unsupported macro. 2000-07-24 Nick Clifton * config/arm/arm.c (emit_multi_reg_push): Generate a REG_FRAME_RELEATED_NOTE that is compatable with the code in dwarf2out_debug_frame_expr. 2000-07-24 Jason Merrill * dwarf2out.c: Complain if DWARF2_DEBUGGING_INFO is defined without UNALIGNED_INT_ASM_OP. (def_cfa_1): Don't emit def_cfa_register or def_cfa_offset to adjust a location expression. (dwarf2out_frame_debug_expr): Lose cfa_old_reg stuff. Don't assume indirect access if we're saving the CFA address exactly. * Makefile.in (bootstrap): Move -BstageN/ to the end. 2000-07-24 Jakub Jelinek * tradcpp.c (main): Update max_include_len for cpp_include_defaults as well. 2000-07-24 Michael Meissner * invoke.texi (D30V Options): Add d30v options. Mon Jul 24 02:04:52 2000 Jeffrey A Law (law@cygnus.com) * gcse.c (alloc_pre_mem): Do not alloc TRANSPOUT, it is not needed by our gcse pass anymore. (free_pre_mem): Corresponding changes. (compute_pre_data): Do not call compute_transpout anymore. * gcse.c (alloc_avail_expr_mem): Kill unused 'u_bitmap'. (free_avail_expr_mem, alloc_pre_mem, free_pre_mem): Corresponding changes. * gcse.c (free_pre_mem): Do not free ANTLOC and AE_KILL here. (compute_pre_data): Do it here instead. * gcse.c (alloc_pre_mem, free_pre_mem): Delete unused bitmap 'temp_bitmap'. (pre_delete): Corresponding changes. 2000-07-23 Mark Mitchell * c-semantics.c (make_rtl_for_local_static): Use TREE_ASM_WRITTEN to figure out whether or not a variable has already been emitted. Sun Jul 23 14:49:12 2000 Jason Eckhardt * config/i860/i860.md (untyped_call expander): Use GEN_CALL instead of gen_call. Sun Jul 23 11:52:03 2000 George Helffrich (george@gly.bris.ac.uk) * dbxout.c (dbxout_type, case COMPLEX_TYPE): Fix length field in stab. 2000-07-23 Kazu Hirata * h8300.c: Fix formatting. 2000-07-23 Joseph S. Myers * c-typeck.c (c_expand_start_case): Change -Wtraditional pedwarn for `long' switch expression into a plain warning. * c-lex.c (init_lex): Keep the "inline" keyword in C99 mode. (yylex): Don't pedwarn for "inline" in C99 mode. * bitmap.c (debug_bitmap_file): Cast pointers to PTR for printing with %p. * ggc-page.c (debug_print_page_list, alloc_page, free_page, ggc_alloc): Likewise. * bb-reorder.c (dump_scope_forest_1): Likewise. 2000-07-22 Aldy Hernandez * reload.c (find_reloads_toplev): Add new parameter "address_reloaded". (find_reloads): Add new parameter to find_reloads_toplev calls. 2000-07-22 Jeffrey Oldham * collect2.c (main): Typo fixed. * diagnostic.c: Typo fixed. * dwarf2out.c (dwarf2out_frame_debug_expr): Typo fixed. * eh-common.h: Typo fixed. * emit-rtl.c (start_sequence): Typo fixed. * flow.c (find_label_refs): Typo fixed. (calculate_global_regs_live): Typo fixed. (mark_regno_cond_dead): Typo fixed. (create_edge_list): Typos fixed. (verify_edge_list): Typo fixed. * ggc-common.c (ggc_mark_rtx_children): Typo fixed. * loop.c (strength_reduce): Typo in function name fixed. * rtl.h: Added comments. Typo in function name fixed. * rtlanal.c: Typo in function name fixed. (insn_dependant_p): Rename to ... (insn_dependent_p): ... this. (computed_jumo_p): Typo fixed. 2000-07-22 Kaveh R. Ghazi * system.h (__FUNCTION__): Wrap definition in #ifndef. 2000-07-21 David Edelsohn * rs6000.h (SIZE_TYPE): Define. 2000-07-21 Mark Mitchell * ssa.c (rename_insn_1): Don't rename registers that are CLOBBERed. 2000-07-21 Zack Weinberg * diagnostic.c (trim_filename, fancy_abort): Moved here from rtl.c. (fatal_function, set_fatal_function): Removed. (fatal): Don't prepare for or call the fatal_function. (diagnostic_lock, error_recursion): New. (diagnostic_for_decl, report_diagnostic): Guard against re-entering the error reporting routines. (fancy_abort): Assume function is not NULL. * errors.c (fancy_abort): New. Assume function is not NULL. * tradcpp.c (fancy_abort): Assume function is not NULL. * system.h: Provide default definition of __FUNCTION__. * rtl.h: Use __FUNCTION__ not __PRETTY_FUNCTION__ throughout. Always use __FUNCTION__ in definition of abort. * tree.h: Likewise. * varray.h: Likewise. * toplev.h: Likewise. Don't prototype set_fatal_function. 2000-07-20 Geoff Keating * config/rs6000/aix43.h (CPP_SPEC): Define __LONG_MAX__ correctly in 64-bit mode. * glimits.h: Don't do #if defined for ARCH_PPC. * config/rs6000/rs6000.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): All constants of size no larger than a pointer should go in the TOC. Add 'MODE' parameter. (LEGITIMIZE_RELOAD_ADDRESS): Add MODE parameter to ASM_OUTPUT_SPECIAL_POOL_ENTRY_P. (ASM_OUTPUT_SPECIAL_POOL_ENTRY): Likewise. * config/rs6000/aix.h (SELECT_RTX_SECTION): Likewise. * config/rs6000/netware.h (SELECT_RTX_SECTION): Likewise. * config/rs6000/rs6000.c (constant_pool_expr_1): Likewise. (rs6000_legitimize_address): Likewise. (rs6000_emit_move): Likewise. (rs6000_select_rtx_section): Likewise. (output_toc): Deal properly with outputting small constants like HImode, and SFmode in 32-bit mode, and DFmode in 64-bit mode. * config/rs6000/sysv4.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Add MODE parameter. Put small constants in the TOC. * config/rs6000/rs6000.c (easy_fp_constant_p): All constants are easy in SImode. (rs6000_emit_move): When reload calls us with an illegitimate address, exit early. Move the change_address calls to one place at the end of the routine. Merge the SImode and DImode expanders. When called by reload to put an integer into a FP register, force it to memory. * config/rs6000/rs6000.c (struct toc_hash_struct): Add 'key_mode' field. (rs6000_hash_constant): Hash mode too. (toc_hash_function): Allow for key_mode. (toc_hash_eq): Structures are different if key_mode differs. (output_toc): Add 'mode' parameter. Save key_mode. * config/rs6000/rs6000.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY): Pass 'mode' parameter. * config/rs6000/rs6000-protos.h (output_toc): Add 'mode' param. * config/rs6000/rs6000.c (output_toc): Use RS6000_OUTPUT_BASENAME for vtable references. * config/rs6000/rs6000.h (PREFERRED_RELOAD_CLASS): If we have a choice, don't put integer values in FP regs. Thu Jul 20 18:13:52 2000 Jeffrey A Law (law@cygnus.com) * flow.c (verify_flow_info): Revamp code to verify that the head and end of each basic block are in the insn chain. Thu Jul 20 18:02:35 2000 Michael Matz * gcse.c (record_one_set): Prepend instead of append onto reg_set_table, making it O(n) instead O(n^2). * lcm.c (compute_antinout_edge,compute_laterin,compute_available): Use a queue instead of a stack as worklist. 2000-07-20 Kazu Hirata * h8300.c (two_insn_adds_subs_operand): Fix a typo. * h8300.h (OK_FOR_T): New. (EXTRA_CONSTRAINT): Support OK_FOR_T. * h8300.md: Use inc/dec.[wl] for increment/decrement by 1 and 2 in HI and SI modes. 2000-07-20 Jim Wilson * config/ia64/ia64.h (ASM_OUTPUT_MI_THUNK): Handle DELTA values larger than 14 bits. 2000-07-20 Zack Weinberg * cppmacro.c (CAN_PASTE_AFTER): New macro. (count_params): Don't set GNU_REST_ARGS on anything. (save_expansion): Set PASTE_LEFT only on tokens for which CAN_PASTE_AFTER is true, or which are named operators. * cpplex.c (parse_args): Distinguish between a rest argument given one empty argument, and a rest argument given zero arguments. (maybe_paste_with_next): Look for VOID_REST tag, and trigger deletion of previous token based on that. (get_raw_token): Flatten some control structure. * cpplib.h (CPP_LAST_EQ): Correct. (VOID_REST): New token flag. (GNU_REST_ARGS): Delete. * tradcpp.c (main): Don't munge -D options. (make_definition): Bring -D handling in line with cpplib. (do_define): Strip all leading whitespace from macro definitions. 2000-07-20 David Billinghurst * Makefile.in (tradcpp): Depend on intl.o and version.o. 2000-07-20 Bruce Korb * fixincl/check.tpl: strip the platform specific types before testing * fixincl/fixfixes.c(gnu_type_fix): use platform specific types * fixincl/fixincl.tpl: use platform specific types * fixincl/fixlib.h: include the platform specific types * fixincl/inclhack.def(gnu_types): don't supply the types * fixincl/fixincl.x: regen 2000-07-19 Jim Wilson * config/ia64/ia64.h (HARD_REGNO_MODE_OK): Don't allow XFmode in GR_REGS. 2000-07-19 Zack Weinberg * tradcpp.c (rescan): Do not recognize directives when the # is indented. 2000-07-19 Zack Weinberg Implement C++ named operators. * cpplib.h (TTYPE_TABLE): Move CPP_MIN and CPP_MAX into block of operators allowed in #if and having an _EQ variant. Add CPP_MIN_EQ, CPP_MAX_EQ, and CPP_DEFINED. (cpp_token flags): Add NAMED_OP. (enum node_type): Add T_OPERATOR. (struct cpp_hashnode): Add code slot to value union. * cpphash.h (spec_nodes): Remove n_defined. * cpplex.c (lex_line): Convert T_OPERATOR nodes to their proper types. (spell_token, can_paste, maybe_paste_with_next): Handle named operators. (is_macro_disabled): Tweak error messages. * cpplib.c (get_define_node): Disallow all named operators as macro names. Tweak error messages. (_cpp_init_stacks): Don't set up spec_nodes->n_defined. * cppinit.c (builtin_array): Add entries for the named operators. * cppexp.c (lex): Check for CPP_DEFINED token. (priority table): Add entries for CPP_MIN and CPP_MAX. (_cpp_parse_expr): Handle CPP_MIN and CPP_MAX. 2000-07-19 Bernd Schmidt * gcse.c (INSN_CUID): If ENABLE_CHECKING, abort if the uid is larger than the array of cuids. (alloc_gcse_mem): Use uid_cuid rather than INSN_CUID when computing cuids. 2000-07-19 Bruce Korb * fixinc/fixincl.c: Convert to using a table of environment variables and activate the auto-edit marker on the fixed output files. * fixinc/fixlib.h: Define the environment table * fixinc/fixincl.sh: export the ${INPUT} dir * fixinc/check.tpl: likewise 2000-07-18 Zack Weinberg * gcc.c (.h spec): Fix typo. Wed Jul 19 01:22:15 CEST 2000 Marc Espie * Makefile.in: Fix tradcif.c path. 2000-07-18 Zack Weinberg * cpplib.h (TTYPE_TABLE): Rearrange to use only two per-entry macros, not five. * cpphash.h (TOKEN_NAME): New macro. (_cpp_spell_operator): Deleted. (token_spellings): Now _cpp_token_spellings. * cppexp.c: Use TOKEN_NAME or TYPE_NAME, not _cpp_spell_operator. * cpplex.c: Use OP and TK macros when expanding the TTYPE_TABLE. Eliminate token_names. For non-OPERATOR tokens, store the stringification of the enumeration name (CPP_CHAR, etc.) in the name slot of token_spellings. Use TOKEN_NAME and/or TOKEN_SPELL, do not reference token_spellings directly. * cpplib.c: Use TOKEN_SPELL. * cpplex.c (_cpp_push_token): If the token being pushed back is the previous token in this context, just subtract one from context->posn. * cppmacro.c (save_expansion): Clear aux field when storing a placemarker. 2000-07-18 Jakub Jelinek * cpplex.c (cpp_scan_buffer): Output line command even at the stop buffer, provided it is not NULL. 2000-07-18 Alexandre Oliva * c-decl.c (duplicate_decls): Do not call make_var_volatile() in case of invalid volatile re-declaration. 2000-07-18 Jakub Jelinek * calls.c (store_arg): Return non-zero if sibcall_failure is desired. (expand_call): Adjust caller. 2000-07-17 Gabriel Dos Reis * diagnostic.h (report_diagnostic): Change prototype. * diagnostic.c (output_do_verbatim, diagnostic_for_asm, diagnostic_for_decl): Change prototype. (error_with_decl, warning_with_decl, pedwarn_with_decl, warning, error, warning, error_with_file_and_line, warning_with_file_and_line, pedwarn_with_file_and_line, fatal): Adjust call to report_diagnostic, diagnostic_for_decl. (error_for_asm, warning_for_asm): Adjust call to diagnostic_for_asm. (output_verbatim, verbatim): Adjust call to output_do_verbatim. * c-errors.c (pedwarn_c99): Adjust call to report_diagnostic. End varaible argument list. 2000-07-17 Zack Weinberg * cpphash.c: Don't include hashtab.h. Most macro-handling code moved to cppmacro.c. (hash_HASHNODE, eq_HASHNODE, _cpp_dump_macro_hash, dump_hash_helper): Delete. (expand_hash, higher_prime_number, _cpp_lookup_with_hash, cpp_forall_identifiers): New. Implement specialized version of Vlad's expandable hash table. (cpp_lookup): Use new functions. (_cpp_init_macros, _cpp_cleanup_macros): Adjust for new implementation. * cppmacro.c: New file. * cppinit.c (dump_macros_helper): New. (cpp_finish): Iterate over the identifier table directly. * cpplex.c (parse_name): Calculate the hash of the identifier while we scan it. Use _cpp_lookup_with_hash when we can. * cpphash.h: Update prototypes. (xcnewvec, HASHSTEP): New helper macros. * cpplib.h: Update prototypes. * Makefile.in (LIBCPP_OBJS): Add cppmacro.o. (cppmacro.o): New rule. (cpphash.o): Update deps. * cppmain.c: Do not set pfile->printer if no_output is on. 2000-07-15 Neil Booth * cpplib.c: Change all directive-handler functions to return void, not int. * cpphash.h: Update typedefs. 2000-07-17 Geoffrey Keating * configure: Regenerate. * extend.texi (Extended Asm): Mention that a memory clobber does not count as a side-effect. * unroll.c (copy_loop_body): Fix one instance of using host arithmetic on the target; fixes loop-4 on a 32-bit -> 64-bit cross-compile. * tlink.c (scan_linker_output): Tweak for output of AIX ld. 2000-07-17 Richard Henderson * config/ia64/ia64.md (movdi): Split out load address code. New post-reload splitter for symbolic operands. (movdi_internal): Abort if we didn't split symbolic operands when we should have. * config/ia64/ia64.c (ia64_expand_load_address): New, from movdi bits. (ia64_reorg): Split insns when not optimizing. * config/ia64/ia64-protos.h (ia64_expand_load_address): Declare. Mon Jul 17 23:43:26 MET DST 2000 Jan Hubicka * real.h (REAL_VALUE_TO_TARGET_LONG_DOUBLE): Use LONG_DOUBLE_TYPE_SIZE instead of MAX_LONG_DOUBLE_TYPE_SIZE to decide output format. 2000-07-17 Chandrakala Chavva * loop.c (check_dbra_loop) : Changed loop_continue to loop->cont. 2000-07-17 Jason Merrill * Makefile.in (clean): Remove libgcc directory. * configure.in (-Wno-long-long check): Use higher-level macros. 2000-07-17 Zack Weinberg * simplify-rtx.c (simplify_binary_operation): Recognize (compare (gt[u] (cc) 0) (lt[u] (cc) 0)). (simplify_ternary_operation): Do not examine MODE_BITSIZE of a CONST_INT, it will always be zero. 2000-07-17 Chandrakala Chavva * loop.c (check_dbra_loop) : Return if more than one condition is present to control the loop. Mon Jul 17 08:26:35 2000 Clinton Popetz * mips.c (mips_expand_prologue): Don't calculate the last argument register unless we need it. When we are calculating this, make sure FUNCTION_ARG is giving us a REG. 2000-07-17 Stephane Carrez * flow.c (libcall_dead_p): Use single_set to verify the insn has only one set and get for analysis. (propagate_one_insn): Don't pass the PATTERN of the insn. 2000-07-17 Mark Klein * pa.c (emit_hpdiv_const): Update to match new pattern for udivsi3. 2000-07-17 J. David Anglin * Makefile.in (TARGET_GETGROUPS_T): New configuration variable. * configure.in (TARGET_GETGROUPS_T): Evaluate. * sys-protos.h (getgroups): Use TARGET_GETGROUPS_T for array type of second argument of getgroups. * configure, config.in: Rebuilt. 2000-07-17 Geoffrey Keating * simplify-rtx.c (simplify_relational_operation): Two signed values with equal high words are less/greater than each other if their low words are less/greater when considered as unsigned. Mon Jul 17 02:37:06 2000 Marc Espie * configure.in (vax-*-openbsd): Change to new style configuration, add collect2/float_format information. * configure: Rebuilt. * config/vax/openbsd1.h: New. * config/vax/openbsd.h: New. * config/vax/t-openbsd: New. 2000-07-17 Chip Salzenberg * c-common.c (shorten_compare): Quiet warnings about unsigned comparisons with zero when they occur in a system header. 2000-07-17 Joseph S. Myers * invoke.texi (-pedantic): Refer to ISO C instead of ANSI C, and update to describe current practice. * glimits.h (LLONG_MIN, LLONG_MAX, ULLONG_MAX): Define for C99. * contrib.texi, cpp.texi, extend.texi, invoke.texi: Update references to C9X. Change references to -fstd and -flang-isoc9x to refer to -std. * c-common.c (scan_char_table): Allow "z" length modifiers on diouxXn formats. (check_format_info): Use TYPE_DOMAIN on the type matched against for "z" formats, to retrieve the language size_t rather than the internal one. * c-common.c (check_format_info): Do not make a pedantic objection to the 'L' length modifier if used with a floating point type character. * c-lex.c (yylex): Don't pedwarn for hexadecimal floating point constants in C99 mode. 2000-07-17 Kazu Hirata * h8300.md: Fix the format of mac. (movsi_h8300hs): Output a tab after stmac instead of a space. * h8300.c (two_insn_adds_subs_operand): Improve code for detecting profitable adds/subs sequences. * fold-const.c: Fix comment typos. 2000-07-16 Laurynas Biveinis * cppfiles.c (read_name_map): Set map_list_ptr->map_list_map to NULL. 2000-07-16 Kaveh R. Ghazi * fixinc/fixfixes.c (emit_gnu_type): Avoid string concatenation. 2000-07-16 Neil Booth * cpplex.c: Update comments. * README.Portability: Small update. 2000-07-16 Neil Booth * README.Portability: Small update. 2000-07-15 Richard Henderson * config/ia64/ia64-protos.h (ia64_move_ok): Prototype. * config/ia64/ia64.c (ia64_move_ok): New function. * config/ia64/ia64.md (movqi, movqi_internal): Use it. (movhi, movsi, movdi, movsf, movdf, movxf): Likewise. 2000-07-15 Zack Weinberg * cpphash.c (save_expansion): Clear PREV_WHITE on tokens immediately following a paste operator. * cppinit.c (sort_options): New function (only for HOST_EBCDIC). (cpp_reader_init): Call it, if HOST_EBCDIC. (cpp_handle_options): Do not sort option list here. (handle_option): Rename to cpp_handle_option and export. * cpplex.c (cpp_scan_buffer_nooutput, cpp_scan_buffer): Use _cpp_get_token directly. (cpp_scan_line): Return 0 at EOF, 1 otherwise. * cpplib.c (cpp_push_buffer): Don't set new->lineno to 1. * cpplib.h: Prototype cpp_handle_option. Update prototype of cpp_scan_line. 2000-07-15 Richard Henderson * fold-const.c (extract_muldiv): Don't optimize past an unsigned cast around an expression. Tidy other unsigned tests. 2000-07-15 Gabriel Dos Reis * diagnostic.c (doing_line_wrapping, line_wrapper_printf, notice, v_error_with_decl, v_warning_with_decl, v_pedwarn_with_decl): Remove. (v_message_with_decl): Rename to ... (format_with_decl): ... this. Tweak (diagnostic_for_decl): New function. (fatal_io_error): Use verbatim in lieu of notice. (announce_function): Use verbatim. (default_print_error_function): Likewise. (error_with_decl, warning_with_decl, pedwarn_with_decl): Use new infratructure. 2000-07-15 Kaveh R. Ghazi * mips.c (function_arg_pass_by_reference): Don't do automatic aggregate initialization. (machine_dependent_reorg): Initialize variable `mode'. * mips.md (absdi2): Change variable `regno1' to unsigned int. (reload_indi): Rename loword/hiword to lo_word/hi_word to avoid conflicts with sys/param.h macro of the same name. (reload_outdi): Likewise. 2000-07-15 Michael Meissner * fold-const.c (fold): When optimizing FOO++ == CONST into ++FOO == CONST + INCREMENT, don't overwrite the tree node for FOO++, create a new node instead. 2000-07-15 Neil Booth * README.Portability: Correct example about calling a function through a pointer to function. Format wide paragraphs. 2000-07-15 Michael Meissner * README.Portability: Update integer suffixes and function prototype sections. 2000-07-15 Neil Booth * README.Portability: Small update. 2000-07-15 Neil Booth * README.Portability: New file. Fri Jul 14 18:13:53 2000 Mark P Mitchell * INSTALL: Give special instructions for building GCC on Irix 6. * config/mips/x-iris6 (CC): Don't set it. (OLDCC): Likewise. 2000-07-14 Jason Merrill * dwarf2out.c (dwarf2out_frame_debug_expr): If we store the CFA register in the stack and later in another register, use the new register. Fri Jul 14 10:25:53 2000 Clinton Popetz * config/mips/mips.md: (absdi2): Handle sign_extend for second operand. 2000-07-14 Nathan Sidwell * cpplib.c (do_pragma_dependency): Tidy warning messages. 2000-07-14 Zack Weinberg * .cvsignore: Correct typo. 2000-07-13 Mark Mitchell * .cvsignore: Add generated YACC files. * objc/.cvsignore: New file. 2000-07-14 Neil Booth * cpplex.c (adjust_column): New funcion. (skip_whitespace): Use it. (skip_block_comment): Use it, and warn about /*/* with -Wcomments. 2000-07-14 Neil Booth * cpphash.c (struct macro_info): Add new members. (_cpp_free_definition): Delete the macro directly. (count_params): Return void, with first token of expansion in struct macro_info on success. (parse_define): Return int. Hoist syntax checking from save_macro_expansion. Leave call to save_expansion to _cpp_create_definition. (alloc_macro): Needs just 2 arguments. (free_macro): Delete. (save_expansion): Don't perform syntax check. (_cpp_create_definition): Call save_expansion. 2000-07-13 Kaveh R. Ghazi * genrecog.c (write_header): Split long string. * cpphash.c (macro_info): Don't use the `signed' keyword. * system.h (alloca): Prototype if __GNUC__ && __SIZE_TYPE__. 2000-07-13 Jakub Jelinek * calls.c (stored_args_map): New variable. (check_sibcall_argument_overlap_1): New. (check_sibcall_argument_overlap): New. (expand_call): Initialize stored_args_map. Call check_sibcall_argument_overlap. 2000-07-13 Bruce Korb * fixinc/fixfixes.c: move EXIT_BROKEN to header, add sub-expr max count (emit_gnu_type): utility procedure for gnu_type_fix (gnu_type_fix): implement various pre-processor guards around standard types so these types can be defined over and over * fixinc/fixincl.tpl: add a "gnu_type_map" that forces the standard types alluded to above will have GNU-compliant base types * fixinc/fixlib.h: add EXIT_BROKEN define and the gnu_type_map struct * fixinc/inclhack.def: add test_text entries and utilize the new "gnu_types" fix for the ptrdiff_t, size_t and wchar_t types. * fixinc/fixincl.x: regenerate 2000-07-12 Gabriel Dos Reis * diagnostic.c (vline_wrapper_message_with_location, v_message_with_file_and_line, v_error_with_file_and_file, v_error_for_asm, v_warning_for_asm, vfatal, v_warning_with_file_and_line, v_pedwarn_with_file_and_line, vsorry, verror, vwarning, vpedwarn): Remove. (diagnostic_for_asm): New function. (pedwarn, error, warning, pedwarn_with_file_and_line, error_with_file_and_line, warning_with_file_and_line, sorry, error_for_asm, warning_for_asm, fatal): Reimplement. (finish_diagnostic): Clear diagnostic info as well. 2000-07-13 Neil Booth * c-common.h (flag_digraphs): New. * c-decl.c (c_decode_option): Set flag_digraphs as appropriate. * c-lex.c (yylex): Use flag_digraphs to decide whether to honour digraphs. 2000-07-13 Zack Weinberg * gcc.c (do_spec_1): Add new %B operator. (set_input): Prepare for %B. (link_command_spec): Move up with the other tm.h- overrideable specs. Factor out the portion conditional on LINK_LIBGCC_SPECIAL into a new spec, %(link_libgcc). (struct compiler): Just have a single spec string. All users updated. (default_compilers): Remove unnecessary braces. (static_specs): Update. (trad_capable_cpp, cpp_options, cc1_options, asm_options): New named specs. (C and assembly specs): Use the new named specs, as appropriate. * objc/lang-specs.h: Use the new named specs. Remove unnecessary braces. 2000-07-12 Zack Weinberg * gcc.c (execute): If a subprocess gets a fatal signal, report strsignal() of the signal number, and ask for a bug report. Do not do this for SIGPIPE if there's already been an error. * tradcpp.c: Don't include signal.h. Don't catch SIGPIPE. Delete pipe_closed. * tradcif.c: Remove. 2000-07-12 Zack Weinberg * final.c (profile_function): Do not emit profile counters in the data section, if NO_PROFILE_COUNTERS is defined. * tm.texi: Document NO_PROFILE_COUNTERS. Update doc for FUNCTION_PROFILER. * config/i386/linux.h (NO_PROFILE_COUNTERS): Define. (FUNCTION_PROFILER): Just emit a call to mcount. 2000-07-12 Zack Weinberg * tradcpp.c (main): Rename 'perror' label to 'sys_error'. * cppexp.c, cpphash.c, cpphash.h, cppinit.c, cpplex.c, cpplib.c, cpplib.h: Eradicate all traces of code dependent on traditional, lang_chill, or lang_fortran. * cppfiles.c: #undef strcmp to suppress warning about macros used without arguments. (_cpp_execute_include): Use f, not fname, in "No include path" error. (_cpp_pop_file_buffer): New function. * cpplib.c: Don't include . (cpp_push_buffer): Set line_base and lineno in new buffer. (cpp_pop_buffer): Use _cpp_pop_file_buffer. * cpplex.c: Move all prototypes and structure declarations to the top of the file. Properly parenthesise some macro arguments. (cpp_scan_line): New function. (special_symbol [case T_INCLUDE_DEPTH]): Use pfile->include_depth, don't need to walk up the stack counting. 2000-07-12 Kaveh R. Ghazi * c-common.c (combine_strings): Emit a pedantic warning when a string length is greater than the minimum ANSI C is required to support. Wed Jul 12 13:24:30 2000 Jeffrey A Law (law@cygnus.com) * pa/xm-pa64.h (NO_SYS_SIGLIST): Kill. * d30v/xm-d30v.h (NO_SYS_SIGLIST): Kill. 2000-07-12 Kaveh R. Ghazi * c-decl.c (define_label): Warn about identifier conflicts with labels in traditional C. * c-parse.in (unop +): Warn about the unary plus operator for traditional C. * c-typeck.c (store_init_value): Warn about automatic aggregate initialization for traditional C. * invoke.texi (-Wtraditional): Document new warnings. 2000-07-12 Gabriel Dos Reis * Makefile.in (c-errors.o): Fix thinko in dependency. 2000-07-12 Zack Weinberg * gcc.c (C specs [!USE_CPPLIB]): Invoke tradcpp if any of -traditional, -ftraditional, or -traditional-cpp was given. Do not pass -traditional to the preprocessor. (.S spec): Likewise. Don't bother defining __ASSEMBLER__, the preprocessor does it automatically. * objc/lang-specs.h: Likewise. Don't bother defining __OBJC__. * ch/lang-specs.h: Always use tradcpp. Do not pass -traditional, -trigraphs, or -pedantic to the preprocessor. * f/lang-specs.h (.F spec): Likewise. Don't bother defining _LANGUAGE_FORTRAN. 2000-07-12 Zack Weinberg * cppexp.c (LOGICAL): Delete macro. (_cpp_parse_expr): Do not use UNARY for unary +. Implement || and && directly. * cpphash.c (HASHSIZE): Increase to 4096. (struct hashdummy): Add hash field. (eq_HASHNODE): Compare unreduced hashes, then lengths, then the string values using memcmp. (cpp_lookup): Set dummy.hash. Wed Jul 12 13:15:16 2000 Marc Espie * configure.in (m88k-openbsd): Express configuration using new fragment style. * configure: Rebuilt. * m88k/aout-dbx.h: New. * m88k/openbsd.h: New. * m88k/xm-openbsd.h: New. 2000-07-12 Kaveh R. Ghazi * expr.c (expand_expr): Return const0_rtx, not error_mark_node. 2000-07-12 Richard Henderson * reload.c (push_secondary_reload): Make sure to add the new reload at the end, after acquiring secondary memory. 2000-07-12 Kaveh R. Ghazi * cpplex.c (is_macro_disabled): Use CPP_WTRADITIONAL. * c-decl.c (set_current_function_name_declared, anon_aggr_type_p, lang_expand_stmt): Mark parameters with ATTRIBUTE_UNUSED. * c-parse.in (stmt): Delete unused variables. * convert.c (convert_to_vector): Likewise. * gensupport.c (process_rtx): Declare attr as `rtvec' not `rtx'. * tree.c (finish_vector_type): Prototype. 2000-07-12 Bruce Korb * fixinc/fixfixes.c: use xmalloc * fixinc/fixincl.c(initialize): set program name for xmalloc * fixinc/fixlib.c(must_malloc): obsolete (is_cxx_header): no longer used - disabled (skip_quote): inserted and disabled for future use * fixinc/fixlib.h: reflects above * fixinc/fixtests.c: removed dinkleberries 2000-07-12 Neil Booth * cpphash.h: (TOKEN_SPELL) Pulled from cpplex.c. * cpplex.c (TOKEN_SPELL) Move to cpphash.h. * cpphash.c: (struct macro_info, alloc_macro, free_macro, struct toklist_dummy): New. (cpp_free_definition): Free macros with free_macro. (count_params): Don't save paramter spellings. Save macro information in a struct macro_info. (parse_define): Don't allocate a token list. (save_expansion): Allocate the macro's token list, and save parameter spellings if necessary. Use TOKEN_SPELL. (cpp_create_definition): Make list const. 2000-07-12 Gabriel Dos Reis * c-typeck.c (pedwarn_c99): Move to * c-errors.c: ... Here. * toplev.h (verror, vwarning, vpedwarn): Remove prototypes. * diagnostic.c (verror, vwarning, vpedwarn): Make static. * Makefile.in (C_AND_OBJC_OBJS): Include c-errors.o (c-errors.o): List dependency. 2000-07-12 Mark Mitchell * c-parse.c: Remove. * c-parse.h: Likewise. * c-parse.y: Likewise. * objc/objc-parse.c: Likewise. * objc/objc-pasre.y: Likewise. 2000-07-11 Rodney Brown * gcc.texi: Fix minor typos * extend.texi: Fix minor typos 2000-07-11 Marc Espie * collect2.c (main): Recognize .lo as object files. 2000-07-11 J. David Anglin * pa.c (hppa_encode_label): Store labels in gc memory when ggc_p is true. * aclocal.m4 (AC_FUNC_MMAP_ANYWHERE): Extend test to detect systems with MAP_ANONYMOUS and MAP_ANON. * configure, config.in: Rebuilt. 2000-07-12 Gabriel Dos Reis * diagnostic.c (save_output_state): Remove. (restore_output_state): Likewise. (clear_text_info): New function. (clear_diagnostic_info): Likewise. (output_text_length, is_starting_newline, output_prefix, line_wrap_cutoff, ideal_line_wrap_cutoff, prefix_was_emitted_for, prefixing_policy, output_buffer_ptr_to_format_args): New macros (set_real_maximum_length, output_set_maximum_length, output_set_prefix, output_get_prefix, output_set_maximum_length, output_destroy_prefix, init_output_buffer, reshape_diagnostic_buffer, output_space_left, output_emit_prefix, output_add_newline, output_add_character, output_add_space, output_append_r, output_append, wrap_text, output_format, output_do_printf, output_printf, output_do_verbatim, output_verbatim, verbatim): Use them. (output_clear): Split into cleat_text_info and clear_diagnostic_info. (struct output_state): Move to... * diagnostic.h: ...Here (struct output_buffer): Adjust. 2000-07-11 Zack Weinberg * cpplex.c (parse_name): No longer inline (premature optimization). (do_pop_context): Fold into pop_context. (pop_context): Returns int. (lex_next): Hoist test for end of directive into pop_context. (push_macro_context): Returns int; takes just reader and token. Hoist test for excessive nesting to caller. (push_arg_context): Returns void; takes just reader and token. Do not call stringify_arg or get_raw_token. (get_raw_token): Convert tail recursion through push_arg_context to a loop at this level. Call stringify_arg here if appropriate. (maybe_paste_with_next): Convert tail recursion to a while loop. Hoist test of paste_level to caller. (stringify_arg): Push arg context at beginning. (cpp_get_token): Split out core into _cpp_get_token. Call process_directive here. Throw away CPP_PLACEMARKER tokens. (_cpp_get_token): Convert tail recursion through push_macro_context to a loop at this level. (_cpp_glue_header_name, is_macro_disabled, stringify_arg, _cpp_get_raw_token): Use _cpp_get_token. (_cpp_skip_rest_of_line): Drop the context stack directly; do not call pop_context. (_cpp_run_directive): Call lex_next directly. * cpphash.h: Prototype _cpp_get_token. * cppexp.c (lex): Use it. * cpphash.c (parse_define): Use it. * cpplib.c (get_define_node, do_undef, parse_include, read_line_number, do_line, do_ident, do_pragma, do_pragma_gcc, do_pragma_implementation, do_pragma_poison, do_pragma_dependency, parse_ifdef, validate_else): Use it. (cpp_push_buffer): Tweak error message; abort if anyone tries to push a buffer while macro expansions are stacked. 2000-07-11 Donn Terry * cpplex.c (free_macro_args, save_token): Cast arg of free and/or xrealloc to PTR. (_cpp_init_input_buffer): Clear all fields of the base context. Tue Jul 11 15:28:21 CDT 2000 Clinton Popetz * gensupport.c (process_rtx): Make rtl checking stop complaining about the define_insn while it is being converted from a define_insn_and_split. Tue Jul 11 16:26:17 2000 Clinton Popetz * config/mips/mips.c (simple_memory_operand): Access the INTVAL of the address, not it's containing MEM. 2000-07-11 Bruce Korb * fixinc/fixtests.c(double_slash): obsolete (else_endif_label): likewise * fixinc/inclhack.def(irix_multiline_cmnt): obsolete (libc1_ifdefd_memx): correct initial comment and omit the #if/#endif pair from the memxxx declarations * fixinc/fixincl.x: regen 2000-07-11 Kaveh R. Ghazi * cpplex.c (T, I, S, C, N): Avoid non-constant initializers. 2000-07-11 Neil Booth * cpp.texi: Update. 2000-07-11 Neil Booth * cppinit.c: (cpp_reader_init): Allow digraphs by default. (handle_option): Set digraphs according to standard. Merge OPT_lang_c89 handler with OPT_std_c89. * cpplex.c: (lex_line, can_paste): Honour digraphs in accordance with the digraphs flag. * cpplib.h: (struct cpp_options): New option digraphs. 2000-07-10 Hans-Peter Nilsson Bruce Korb * fixinc/inclhack.def (libc1_ifdefd_memx): New fix. * fixinc/fixincl.x: Regenerate. * fixinc/tests/base/testing.h: Add testcase. 2000-07-10 Richard Henderson * config/ia64/ia64.c (got_symbolic_operand): New. (symbolic_operand, move_operand): Revert 0701 change. * config/ia64/ia64.h (PREDICATE_CODES): Update. * config/ia64/ia64-protos.h (got_symbolic_operand): Declare. * config/ia64/ia64.md (movdi): Revert 0701 wrt symbolic_operand; split the offset into a 14-bit low part instead of a 13-bit low part. (load_fptr): Mark the mem as unchanging. (load_symptr): Use got_symbolic_operand. 2000-07-10 Nick Clifton * libgcc2.c (next_stack_level): Cast result of computation to (void **) so that the assignment does not generate a warning. 2000-07-10 Chandrakala Chavva * flags.h : Add new variable flag_single_precision_constant. * toplev.c (display_help) : Add -fsingle-precision-constant option. (flag_single_precision_constant): New. * c-lex.c (yylex): Convert floating point constant to single precision constant. * invoke.texi : Add documentation for this new option. 2000-07-10 Gabriel Dos Reis * diagnostic.c (output_octal): Second parameter is unsigned. (output_long_octal): Likewise. (output_hexadecimal): Likewise. (output_long_hexadecimal): Likewise. (output_format): Adjust arguments extraction. Tweak. (output_verbatim, verbatim): End variable argument list. (report_diagnostic): Improve documentation. 2000-07-10 Benjamin Chelf * c-common.h (build_stmt): Declare. (build_continue_stmt): Likewise. (build_break_stmt): Likewise. (build_return_stmt): Likewise. * c-decl.c (do_case): Rewrite to do what previously done in c-parse.in. * c-semantics.c (build_stmt): Define. (build_return_stmt): Likewise. (build_break_stmt): Likewise. (build_continue_stmt): Likewise. (build_case_label): Likewise. * c-parse.in (BREAK): Change to build tree, then generate RTL. (CONTINUE): Likewise. (RETURN): Likewise. (CASE): Likewise. (DEFAULT): Likewise. * c-parse.y: Regenerate. * c-pasre.c: Likewise. 2000-07-09 Jason Merrill * expr.c (expand_expr): Bail earlier if we get an error_mark_node. * tree.h (STRIP_NOPS): Check for error_mark_node. (STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Likewise. (dwarf2out_*): Remove duplicate declarations. * c-decl.c (duplicate_decls): Copy DECL_ABSTRACT_ORIGIN from DECL_ABSTRACT_ORIGIN, not DECL_ORIGIN. 2000-07-10 Gabriel Dos Reis * diagnostic.c (wrap_text): New function. (maybe_wrap_text): Likewise. (output_add_string): Use it. (output_format): Likewise. (count_error): Use verbatim instead of notice. (report_error_function): Likewise. Don't use plain fprintf. (finish_diagnostic): New function. (output_do_verbatim): Tweak. Commonalize functionalities in output_verbatim and verbatim. (output_verbatim): Adjust. (verbatim): Likewise. (report_diagnostic): Define. * diagnostic.h (report_diagnostic): Prototype. 2000-07-09 Zack Weinberg * cppexp.c (_cpp_parse_expr): Don't use unary plus. 2000-07-09 Neil Booth * cpphash.h: ISvspace, is_vspace, is_nvspace: New. IShspace, ISspace: Update. * cppinit.c: ISTABLE: Update. V: New. * cpplex.c (IS_HSPACE, S_NEWLINE): Remove. (IS_DIRECTIVE): Rename KNOWN_DIRECTIVE. (skip_block_comment, skip_line_comment, parse_string, lex_line): Use is_vspace rather than IS_NEWLINE. (skip_whitespace, lex_line): Clean up to use is_nvspace. (lex_line): Use KNOWN_DIRECTIVE. Any kind of directive gets a BOL flag. (lex_next): Unconditionally stop if within a directive. Treat directives within macro invocations as directives (after parse_args emits error), not as the argument. 2000-07-09 Gabriel Dos Reis * diagnostic.c (diagnostic_args): New macro. (diagnostic_msg): Likewise. (output_formatted_integer): Likewise. (output_state): New data type. (digit_buffer): Make global. (output_add_integer): Rename to output_decimal. Squeeze digit_buffer. (output_long_decimal, output_unsigned_decimal, output_long_unsigned_decimal, output_octal, output_long_octal, output_hexadecimal, output_long_hexadecimal): New functions. (output_append_r): New function. (output_append): Tweak. (output_flush_on): Rename to output_to_stream. (output_format): Change prototype. Improve documentation. Handle more format specifiers. (build_location_prefix): Rename to context_as_prefix. (output_notice): Rename to output_do_printf. (output_printf): Tweak. (line_wrapper_printf): Likewise. (vline_wrapper_message_with_location): Adjust call to renamed functions. (v_message_with_decl): Likewise. (default_print_error_function): Likewise. (save_output_state): New function. (restore_output_state): Likewise. (output_do_verbatim): Likewise. (output_verbatim): Define. (verbatim): Likewise. * diagnostic.h (printer_fn): Change return type from void to int. Improve documentation. (output_add_integer): Rename to output_decimal. (output_flush_on, output_format): Don't export. (output_verbatim, verbatim): Declare. 2000-07-08 Toon Moene * fold-const.c (extract_muldiv) case PLUS_EXPR, MINUS_EXPR: Check whether c divides op1 exactly if operation is not multiplication. 2000-07-08 Richard Henderson * final.c (final): Do not abort when reg-stack introduces a new insn. 2000-07-08 Zack Weinberg * cpplib.h (struct cpp_name): Now struct cpp_string. (CPP_INT, CPP_FLOAT, CPP_NUMBER, CPP_COMMENT, CPP_HEADER_NAME): Change to type S. (struct cpp_token): Rename 'name' field to 'str'. Add 'node' field, a cpp_hashnode *. All references to val.name updated to use val.str or val.node as appropriate. (struct cpp_reader): Add spec_nodes field. (cpp_idcmp): Now cpp_ideq; takes a token * and a char *. * cpphash.h (struct spec_nodes): New. (enum spell_type): Reorder. Only SPELL_STRING tokens use val.str. All references to 'spelling > SPELL_NONE' updated to match. (CPP_IN_SYSTEM_HEADER): Check pfile->buffer and pfile->buffer->inc are not NULL before dereferencing them. * cpplex.c (parse_name): Take a pointer to the current token, plus current position and limit as args; return the new position; don't copy the text of a name into the string buffer, instead call cpp_lookup and store the node pointer. If extending a token, copy out the text of the old into a scratch buffer, append the new, look that up and store the new node pointer. Inline. (maybe_paste_with_next): If the result of paste is a NAME, then look up the pasted text and store its node pointer. (lex_line): Adjust for new parse_name interface. Check for L"str", L'str' using spec_nodes->n_L. (spell_token): SPELL_IDENT tokens have their spelling in val.node->name. Handle SPELL_STRING tokens that don't have string delimiters. (_cpp_expand_name_space, (can_paste): Check for L ## "str" using spec_nodes->n_L. (cpp_get_token, special_symbol): No need to call cpp_lookup. (cpp_idcmp): Now cpp_ideq; take a token * and a const char *; return 1=equal 0=not, not a tristate. * cpphash.c (var_args_str): Delete. (find_param): Compare node fields directly. (is__va_args__): Use CPP_PEDANTIC. Just compare token->val.node with spec_nodes->n__VA_ARGS__. (dump_funlike_macro): Don't use var_args_str. * cpplib.c (_cpp_check_directive): Just walk through spec_nodes->dirs comparing pointers. (get_define_node, do_pragma_poison, detect_if_not_defined, parse_ifdef): The identifier has already been looked up. (do_ifdef, do_ifndef): parse_ifdef won't return a poisoned node. (do_if): Only call detect_if_not_defined at beginning of file. (_cpp_parse_assertion): Only copy string pointers for SPELL_STRING tokens. (pragma_dispatch): Take a node pointer and examine its name field. (_cpp_init_stacks): Also initialize the spec_nodes structure. * cppinit.c (cpp_reader_init): Call _cpp_init_stacks after _cpp_init_macros. (cpp_cleanup): Free pfile->spec_nodes. Call _cpp_cleanup_* in reverse order from the corresponding _cpp_init_* routines. * cppexp.c (parse_number, parse_charconst, parse_defined, lex): Check val.node->type instead of calling cpp_defined. Use spec_nodes entries where appropriate. * fix-header.c, scan-decls.c: Update for interface changes. 2000-07-08 Geoffrey Keating * config/rs6000/rs6000.c (rs6000_emit_move): Fix conditions for emitting aux_truncdfsf2. 2000-07-03 Donn Terry (donnte@microsoft.com) * cppinit.c (print_help): split overlong line into ISO C89 maximum chunks. 2000-07-07 Zack Weinberg * cppexp.c: Update all code for new lexer interface. (op_t, operator codes, struct token, tokentab2, op_to_str): Remove. (struct suffix, vsuf_1, vsuf_2, vsuf_3, op_to_prio): New. * cpplex.c (token_names): Trim leading CPP_ from names; make the strings unsigned. (_cpp_spell_operator): New. (is_macro_disabled): Disable all macros if rescanning preprocessed text. (_cpp_get_directive_token): Remove. * cppinit.c: Don't set no_macro_expand. * cpplib.c (read_line_number, do_line): Check only for EOF, not VSPACE. * cpphash.h: Update prototypes. * cpplib.h (CPP_VSPACE): Remove. (struct cpp_reader): Remove no_macro_expand. 2000-07-08 Neil Booth * cpphash.c (is__va_args__): New function. (count_params): Fix line reported in error messages. Use is__va_args__. Don't return ')' on error. Flag GNU style rest args macro definitions. (parse_define): Check macro name is not __VA_ARGS__. (save_expansion): Check identifier in non-varargs-macro is not __VA_ARGS__. Don't flag GNU_VARARGS. * cpplex.c (parse_args): Accept no argument iff GNU_REST_ARGS. (maybe_paste_with_next): Use per-macro GNU_REST_ARGS rather than per-token GNU_VARARGS. * cpplib.h (GNU_VARARGS): Remove. (GNU_REST_ARGS): New. Sat Jul 8 01:38:25 MET DST 2000 Jan Hubicka * i386.md (call_pop, call, call_value_pop): Do not set current_function_uses_pic_offset_table for calls to static functions or indirect calls. 2000-07-07 Jim Wilson * config/ia64/ia64.c (rws_access_reg): New local write_count. If is_predicate_reg, then take max write_count of register pair. 2000-07-07 Kaveh R. Ghazi * tradcpp.c (main): Rename label `include' to `add_include' to avoid conflicts with variable `include' in traditional C. 2000-07-07 Jakub Jelinek * integrate.c (copy_insn_list): Remove REG_LABEL notes. 2000-07-07 Jakub Jelinek * sibcall.c (uses_addressof): Add INMEM argument, check for current_function_internal_arg_pointer outside of MEM rtxs in addition to ADDRESSOFs. (sequence_uses_addressof): Update caller. 2000-07-07 Zack Weinberg * tradcpp.c (initialize_builtins): Honor NO_BUILTIN_SIZE_TYPE and friends. 2000-07-07 Kaveh R. Ghazi * system.h (UNION_INIT_ZERO): New macro for initializing union members in structs. * cpplex.c (placemarker_token, eof_token): Use UNION_INIT_ZERO. 2000-07-07 Neil Booth * cpp.texi: Update. Fri Jul 7 07:47:35 2000 Jeffrey A Law (law@cygnus.com) * final.c (final): Detect out of bounds array access to the insn_lengths array. 2000-07-07 Kazu Hirata * fold-const.c (fold): Fix a comment typo. 2000-07-07 Neil Booth * cpp.texi: Update to new lexer. 2000-07-06 Zack Weinberg * tradcpp.c: New file. * tradcif.y: New file. * tradcif.c: New generated file. * Makefile.in: Add rules to build tradcpp.o, tradcif.o, $(srcdir)/tradcif.c. Add tradcpp to STAGESTUFF and dependencies of C. Install tradcpp from install-common, in $(libsubdir). 2000-07-06 Zack Weinberg * cppinit.c: Include cppdefault.h. Refer to cpp_GCC_INCLUDE_DIR and cpp_GCC_INCLUDE_DIR_len, not directly to GCC_INCLUDE_DIR and its length. (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE, USER_LABEL_PREFIX, REGISTER_PREFIX, struct default_include, STANDARD_INCLUDE_DIR, STANDARD_INCLUDE_COMPONENT): Move to cppdefault.h. (include_defaults_array): Move to cppdefault.c. * cppdefault.h: New file. * cppdefault.c: New file. * Makefile.in (LIBCPP_OBJS): Add cppdefault.o. (cppinit.o): Don't apply $(PREPROCESSOR_DEFINES) to this file. (cppdefault.o): New rule; apply $(PREPROCESSOR_DEFINES) to this file. Thu Jul 6 18:30:36 2000 Richard Kenner * reload.c (push_reload): When seeing if can reuse a register, check extra registers against widest of INMODE and OUTMODE. 2000-07-06 Neil Booth * cpplib.c: (_cpp_parse_assertion): Perform hash lookups based on full length of predicate. 2000-07-06 Hans-Peter Nilsson * timevar.c: [HAVE_SYS_RESOURCE_H]: Include . [NEED_DECLARATION_GETRUSAGE]: Declare getrusage. 2000-07-05 Kazu Hirata * h8300-proto.h: Fix formatting. * h8300.c: Likewise. * h8300.h: Likewise. 2000-07-05 Jim Wilson * config/ia64/ia64.h (HARD_REGNO_MODE_OK): If FR_REGNO_P, disallow CCmode. 2000-07-05 Rodney Brown * invoke.texi: Fix minor typos * md.texi: Fix minor typos 2000-07-05 Zack Weinberg * cpplib.c (_cpp_parse_assertion): Fix buffer overrun. 2000-07-04 Zack Weinberg * cpplex.c: Don't include sys/mman.h. (cpp_push_buffer, cpp_pop_buffer): Moved to cpplib.c. * cpplib.c: Include sys/mman.h and obstack.h. (cpp_push_buffer): Moved from cpplex.c; allocate buffers on an obstack. (cpp_pop_buffer): Moved from cpplex.c; free buffers from an obstack. (_cpp_unwind_if_stack): Now static, unwind_if_stack. Don't bother freeing if stack entries (they will be freed with their buffer). (do_endif): Free if stack entries from the buffer obstack. (push_conditional): Allocate if stack entries from the buffer obstack. (find_answer): Rename to _cpp_find_answer. (do_assert, do_unassert): Update. * cpphash.h: Update prototypes. (xobnew): New convenience macro. * cpplib.h (struct cpp_reader): Add hash_ob and buffer_ob fields. Update comments. (struct cpp_hashnode): Remove disabled field. * cppinit.c: Don't include hashtab.h or splay-tree.h. (report_missing_guard): Moved to cppfiles.c. (cpp_reader_init): Call cpp_init_stacks, cpp_init_macros, cpp_init_includes. (cpp_cleanup): Call cpp_cleanup_stacks, cpp_cleanup_macros, cpp_cleanup_includes. Don't destroy hashtab or all_include_files here. (cpp_finish): Use _cpp_report_missing_guards. * cppfiles.c (report_missing_guard): Moved from cppinit.c. (_cpp_init_include_table): Rename _cpp_init_includes. (_cpp_cleanup_includes, _cpp_report_missing_guards): New. * cppexp.c (parse_assertion): Update for new name of find_answer. * Makefile.in (cpplib.o, cpphash.o, cppinit.o): Update deps. 2000-07-04 Zack Weinberg * cpplib.c (do_ident): s/VSPACE/EOF/ 2000-07-05 Neil Booth * cpplex.c: Fix trigraph replacement within strings. 2000-07-04 Kaveh R. Ghazi * rs6000/aix.h (ASM_GENERATE_INTERNAL_LABEL): Fix format specifier. * xcoffout.c (assign_type_number): Constify. (xcoffout_source_file): Add static prototype. Don't needlessly cast away const-ness. 2000-07-04 Jason Merrill * frame.h (frame_state): Move base_offset to end. Mon Jul 3 21:31:43 2000 Clinton Popetz * calls.c (emit_library_call_value_1): Revert previous change. 2000-07-03 Zack Weinberg * fix-header.c (struct partial_proto): Remove unnecessary fields. (recognized_extern, recognized_function, read_scan_file): Update for new scheme. (check_protection): It's still a multiple include guard even if it doesn't always trigger. * scan-decls.c (skip_to_closing_brace, scan_decls): Update for new scheme. * scan.h: Declare struct cpp_token. Update prototypes. 2000-07-03 Neil Booth Zack Weinberg Complete overhaul of the lexer and macro expander. * cpphash.c (object_defn, funct_defn, push_macro_expansion, arg, arglist, argdata, reflist, collect_objlike_expansion, collect_funlike_expansion, collect_params, warn_trad_stringify, trad_stringify, duplicate_arg_p, add_pat, unsafe_chars, macarg, compare_defs, special_symbol, scan_arguments, stringify, funlike_macroexpand, _cpp_quote_string, monthnames): Delete. (cpp_lookup, _cpp_free_definition, dump_funlike_macro, _cpp_create_definition, _cpp_dump_definition, dump_hash_helper): Adjust. (find_param, count_params, parse_define, var_args_str, check_macro_redefinition, save_expansion): New. * cpplex.c (skip_block_comment, skip_line_comment, parse_name, parse_string, output_line_command, trigraph_replace, lex_line, cpp_push_buffer, cpp_pop_buffer, cpp_output_tokens, cpp_scan_buffer_nooutput, cpp_scan_buffer, cpp_free_toklist, cpp_idcmp, _cpp_get_directive_token, _cpp_init_input_buffer, _cpp_skip_rest_of_line): Modify. (maybe_macroexpand, skip_comment, copy_comment, skip_string, find_position, null_warning, bump_column, expand_name_space, pedantic_whitespace, _cpp_output_list, _cpp_slice_toklist, _cpp_squeeze_toklist, _cpp_scan_until, _cpp_skip_hspace, _cpp_parse_name, _cpp_lex_token, cpp_get_non_space_token, _cpp_prescan): Delete. (dump_param_spelling, process_directive, lex_next, is_macro_disabled, stringify_arg, expand_context_stack, output_token, make_string_token, alloc_number_token, special_symbol, duplicate_token, maybe_paste_with_next, can_paste, prevent_macro_expansion, restore_macro_expansion, get_temp_token, release_temp_tokens, quote_string, token_names, token_spellings, _cpp_expand_name_space, _cpp_glue_header_name, _cpp_reserve_name_space, digraph_spellings, trigraph_ok, skip_whitespace, save_comment, placemarker_token, eof_token, cpp_context, macro_args, get_raw_token, parse_arg, parse_args, save_token, push_arg_context, push_macro_context, pop_context, do_pop_context, free_macro_args, _cpp_get_line, _cpp_run_directive): New. * cpplib.c (validate_else, parse_include, push_conditional, pass_thru_directive, read_line_number, parse_ifdef, detect_if_not_defined, _cpp_check_directive, do_define, do_undef, do_include, do_import, do_include_next, do_error, do_warning, do_ident, do_pragma, pragma_dispatch, gcc_pragmas, top_pragmas, do_pragma_gcc, do_pragma_implementation, do_pragma_poison, do_pragma_system_header, do_pragma_dependency, do_sccs, do_ifdef, do_ifndef, do_else, dl_elif, do_endif, _cpp_unwind_if_stack, do_assert, do_unassert, cpp_define, cpp_undef, cpp_assert, cpp_unassert, cpp_defined): Update for new scheme. (strtoul_for_line, get_define_node, dump_macro_name, _cpp_check_linemarker, _cpp_parse_assertion): New. (_cpp_handle_directive, do_pragma_default): Delete. * cpphash.h (struct predicate): Now struct answer. (enum spell_type, struct token_spelling, struct directive, directive_handler): New. Update prototypes. Remove unused macros. * cpplib.h: Update prototypes. Remove unused macros, structure definitions, and fields. * cpperror.c (print_containing_files, v_message): Adjust. * cppexp.c (parse_assertion, lex, parse_escape, _cpp_parse_expr): Adjust. * cppfiles.c (open_include_file, _cpp_execute_include, _cpp_compare_file_date, cpp_read_file, read_include_file): Adjust. * cppinit.c (dump_special_to_buffer): Delete. (append_include_chain, merge_include_chains, cpp_reader_init, cpp_cleanup, initialize_builtins, builtin_array, cpp_start_read, cpp_finish, handle_option, print_help): Adjust. * cppmain.c (main): Adjust. 2000-07-03 Zack Weinberg * cppspec.c (lang_specific_driver): Use double quotes in error message. Mon Jul 3 16:53:43 2000 Clinton Popetz * calls.c (emit_library_call_value_1): Use valreg instead of hard_libcall_value. 2000-07-03 Geoff Keating * config/rs6000/rs6000.c (rs6000_emit_move): New function. * config/rs6000/rs6000-proto.h: Prototype rs6000_emit_move. * config/rs6000/rs6000.md (movsi): Use rs6000_emit_move. (movhi): Likewise. (movqi): Likewise. (movdf): Likewise. (movsf): Likewise. (movdi): Likewise. (movti): Likewise. * expmed.c (expand_mult_highpart): Use op1 instead of wide_op1 when mode instead of wider_mode is being used. 2000-07-03 Jakub Jelinek * config/i386/i386.md (movstrictqi_xor): Use 'q' constraint instead of 'r'. Use q_regs_operand. (andsi_1+2): Use q_regs_operand. 2000-07-03 Jakub Jelinek * builtins.c (get_memory_rtx): Always put into alias set 0. 2000-07-03 Nick Clifton * config/arm/arm.md: Fix post increment and pre increment peepholes so that they do not generate UNPREDICATBLE opcodes. (ie ones where the increment clobbers the source/destination). 2000-07-01 Marek Michalkiewicz * config/avr/avr.c (out_adj_frame_ptr): Make "frame pointer change too big for -mtiny-stack" a warning, if larger than 63. (out_set_stack_ptr): Change the logic so -mno-interrupts is always safe to use on possible future devices. (function_prologue): Write SPH before SPL, for consistency. If interrupt_func_p true, we know we have enabled interrupts. (avr_num_arg_regs): New function. Round up to even number of bytes if no -mpack-args or if calling a libgcc function. (function_arg, function_arg_advance): Use it. (output_movsisf, ashlsi3_out, ashrsi3_out, lshrsi3_out): Output "movw" if available. (out_tsthi, out_tstsi, ashlqi3_out, lshrqi3_out): Change uses of TEST_HARD_REG_CLASS macro to test_hard_reg_class function. (asm_output_section_name): Add blanks for consistent output. (encode_section_info): Set TREE_READONLY for progmem data to avoid gas warnings about changed section attributes. (avr_hard_regno_mode_ok): Force non-QImode data to start in even numbered registers on devices with "movw". * config/avr/avr.h (MASK_*): Define bits for target_flags. (TARGET_SWITCHES): Mark help strings for translation. Add new -mpack-args and -menhanced switches. (TARGET_OPTIONS): Mark help strings for translation. (progmem_section): Add section attributes. * config/avr/avr.md (*movhi, call_insn, call_value_insn): Output "movw" if available. (mulqi3, mulqihi3, umulqihi3, mulhi3, *tablejump_enh): New patterns. * config/avr/libgcc.S (_mulqi3, _divqi3): Update to the new call convention (arguments aligned on even registers). (_cleanup, _exit): Make weak symbols libc can override. 2000-07-03 Kaveh R. Ghazi * fp-bit.h: New file. * fp-bit.c: Move common code, prototypes, etc into fp-bit.h. Comment #endif statements. (__thenan_sf, __thenan_df): Add missing braces around initializer. Mon Jul 3 00:32:47 2000 Jeffrey A Law (law@cygnus.com) * gcse.c (compute_pre_data): Compute ae_kill using other local properties instead of calling compute_ae_kill. * alias.c (init_alias_analysis): Do not call prologue_epilogue_contains until after reload has completed. 2000-07-02 Benjamin Chelf * c-common.h (genrtl_begin_compound_stmt): Remove declaration. (genrtl_finish_compound_stmt): Likewise. (genrtl_compound_stmt): Change to return void. * c-semantics.c (genrtl_begin_compound_stmt): Remove function and move code from here to ... (genrtl_compound_stmt): ... here. (genrtl_finish_compound_stmt): Remove. (expand_stmt): Add comment. 2000-07-02 Zack Weinberg * c-typeck.c (build_indirect_ref): Use COMPLETE_OR_VOID_TYPE_P and VOID_TYPE_P. 2000-07-02 Jakub Jelinek * cpplib.h (struct cpp_reader): New field include_depth. (struct cpp_printer): Rename last_bsd to last_id. * cppfiles.c (read_include_file): Bump include_depth. * cpplex.c (cpp_pop_buffer): Decrement include_depth. (output_line_command): Output correct #line if a header is including itself and is not protected against multiple inclusion. Use include_depth instead of buffer_stack_depth, last_id instead of last_bsd. * cppinit.c (cpp_start_read): Initialize last_id instead of last_bsd. 2000-07-01 Benjamin Chelf * Makefile.in (C_AND_OBJC_OBJS): Added c-semantics.o. (c-semantics.o): New target. * c-common.h (TREE_LANG_FLAG_?): Added documentation. (genrtl_do_pushlevel): Moved from cp/cp-tree.h. (genrtl_clear_out_block): Likewise. (genrtl_goto_stmt): Likewise. (genrtl_expr_stmt): Likewise. (genrtl_decl_stmt): Likewise. (genrtl_if_stmt): Likewise. (genrtl_while_stmt): Likewise. (genrtl_do_stmt): Likewise. (genrtl_return_stmt): Likewise. (genrtl_for_stmt): Likewise. (genrtl_break_stmt): Likewise. (genrtl_continue_stmt): Likewise. (genrtl_scope_stmt): Likewise. (genrtl_switch_stmt): Likewise. (genrtl_case_label): Likewise. (genrtl_begin_compound_stmt): Likewise. (gerntl_finish_compound_stmt): Likewise. (genrtl_compound_stmt): Likewise. (genrtl_asm_stmt): Likewise. (genrtl_decl_cleanup): Likewise. (DECL_ANON_UNION_ELEMS): Likewise. (emit_local_var): Likewise. (make_rtl_for_local_static): Likewise. (expand_cond): Likewise. (expand_stmt): Likewise. (c_expand_return): Likewise. (c_expand_start_case): Likewise. (do_case): Likewise. (COMPOUND_STMT_NO_SCOPE): Likewise. (c_expand_asm_operands): Likewise. (NEW_FOR_SCOPE_P): New macro. (expand_expr_stmt_fn): New type. (set_current_function_name_declared): Likewise. (current_function_name_declared): Likewise. (lang_expand_stmt): Likewise. (stmts_are_full_exprs_p): Likewise. (anon_aggr_type_p): Likewise. (lang_expand_expr_stmt): Likewise. (build_case_label): Likewise. * c-decl.c (lang_expand_expr_stmt): Initialize. (stmts_are_full_exprs_p): Define. (current_function_name_declared): Likewise. (do_case): Likewise. (lang_expand_stmt): Likewise. (set_current_function_name_declared): Likewise. (anon_aggr_type_p): Likewise. * c-semantics.c: New file. (expand_cond): Moved from cp/semantics.c. (genrtl_do_pushlevel): Likewise. (genrtl_clear_out_block): Likewise. (genrtl_goto_stmt): Likewise. (genrtl_expr_stmt): Likewise. (genrtl_decl_stmt): Likewise. (genrtl_if_stmt): Likewise. (genrtl_while_stmt): Likewise. (genrtl_do_stmt): Likewise. (genrtl_return_stmt): Likewise. (genrtl_for_stmt): Likewise. (genrtl_break_stmt): Likewise. (genrtl_continue_stmt): Likewise. (genrtl_scope_stmt): Likewise. (genrtl_switch_stmt): Likewise. (genrtl_case_label): Likewise. (genrtl_begin_compound_stmt): Likewise. (genrtl_finish_compound_stmt): Likewise. (genrtl_compound_stmt): Likewise. (genrtl_asm_stmt): Likewise. (genrtl_decl_cleanup): Likewise. (make_rtl_for_local_static): Moved from cp/decl.c. (emit_local_var): Likewise. (expand_stmt): Define. * c-tree.h: (c_expand_asm_operands): Moved to c-common.h. (c_expand_return): Likewise. (c_expand_start_case): Likewise. 2000-07-01 Richard Henderson * config/ia64/ia64.c (symbolic_operand): Reject CONST expressions with the low 13 bits set. (move_operand): Check for CONST|SYMBOL_REF|LABEL_REF directly. * config/ia64/ia64.md (movdi): Likewise. Expand a CONST with one of the low 13 bits into a CONST plus an adddi3. (load_symptr): Set RTX_UNCHANGING_P. See ChangeLog.3 for earlier changes.