blob: 7709c6f8bc0199b0c44bb4265e5b646763ce51a6 [file] [log] [blame]
2000-12-31 Alexandre Oliva <>
* resource.c (mark_referenced_resources): Abort() before
attempting to mark a pseudo register.
(mark_set_resources): Likewise.
2000-12-31 Philip Blundell <>
* config/arm/linux-gas.h (CLEAR_INSN_CACHE): Add missing asm
2000-12-30 Richard Henderson <>
* dbxout.c (dbxout_block): Invert logic on eliding LBRAC/RBRAC.
Initialize variables properly for DBX_LBRAC_FIRST.
2000-12-30 Richard Kenner <>
* expr.c (expand_expr, case COMPONENT_REF): Fix typo in last change.
2000-12-30 Kaveh R. Ghazi <>
* builtins.c (validate_arglist): New function, use it.
2000-12-30 Philip Blundell <>
* config/arm/arm.c (arm_expand_prologue): Fix typos in error
message and comment. Note location of testcase for an unhandled
2000-12-30 Jeffrey Oldham <>
* defaults.h (BUILD_VA_LIST_TYPE): New definition.
* tree.c (build_common_tree_nodes_2): Ensure the va_list_type_node
is a copy, not an alias.
2000-12-30 Richard Kenner <>
* calls.c (calls_function_1, case CONSTRUCTOR): New case.
* alias.c (alias_sets_conflict_p): New function.
(mems_in_disjoint_alias_sets_p): Use it.
(readonly_fields_p): Moved from expr.c; check for record type.
(objects_must_conflict_p): New function.
* calls.c (expand_call): Use assign_temp as much as possible, use
readonly variant if assigned once, and don't set memory attributes.
(emit_library_call_value_1, store_one_arg): Likewise.
* integrate.c (expand_inline_function): Likewise.
* stmt.c (expand_asm_operands, expand_return): Likewise.
* expr.c (copy_blkmode_from_reg, store_constructor): Likewise.
(store_field, save_noncopied_parts, expand_expr): Likewise.
(expand_expr_unaligned): Likewise.
(readonly_fields_p): Moved to alias.c.
(safe_from_p): Rework handling of SAVE_EXPR.
MEMs ony conflict if alias sets conflict; likewise for INDIRECT_REF.
* function.c (struct temp_slot): Delete field ALIAS_SET; add TYPE.
(assign_stack_for_temp): Use objects_must_confict_p.
Set all memory attributes from type, if specified.
(mark_temp_slot): Mark TYPE field.
* tree.h (alias_sets_conflict_p, readonly_fields_p): New decls.
(objects_must_conflict_p): Likewise.
* stmt.c (expand_decl): Don't use assign_stack_temp in error case.
(add_case_node): No need to copy nodes anymore.
2000-12-30 Alexandre Oliva <>
* config/sh/sh.c (split_branches): Don't dereference re-computed
`beyond' before checking it's non-NULL.
2000-12-29 Robert Lipe <>
Remove COFF support from i?86-pc-sco3.2v5.
* i386/sco5.h (PREFERRED_DEBUGGING_TYPE): Change to Dwarf II.
(TARGET_ELF): Now always true.
(SUBTARGET_SWTICHES: )Remove -mcoff.
2000-12-29 Alexandre Oliva <>
* varasm.c (output_constant_def): Don't ENCODE_SECTION_INFO
twice. Update desc->rtl and ->label, in case ENCODE_SECTION_INFO
modifies them.
2000-12-29 Bernd Schmidt <>
* ia64.c (ia64_expand_load_address): Accept additional scratch
register argument. All callers & prototype changed.
Use scratch register when generating load_symptr insns.
* (movdi_symbolic): Clobber a scratch register. Use it
when calling ia64_expand_load_address.
(movdi): Generate movdi_symbolic with additional operand.
(load_gprel64): Use pic_offset_table_rtx instead of (reg:DI 1).
(load_symptr): Likewise. Use additional operand as a scratch
register instead of generating it here.
* basic-block.h: Add a comment.
* flow.c (PROP_POSTRELOAD): New macro.
(update_life_info): Add it to prop_flags.
(mark_set_1): If it is set, compute REG_N_SETS for the original
register number of a hard reg.
* emit-rtl.c (gen_raw_REG): New function.
(gen_rtx_REG, gen_reg_rtx, init_emit_once): Use it instead of
* print-rtl.c (print_rtx): Print ORIGINAL_REGNO.
* final.c (alter_subreg): Update it.
* regrename.c (do_replace): Likewise. Use gen_raw_REG.
* rtl.def (REG): Update comment.
* rtl.h (X0UINT, ORIGINAL_REGNO): New macros.
(gen_raw_REG): Declare.
2000-12-29 Richard Kenner <>
* tree.c (get_set_constructor_bits): Use host_integerp and
* local-alloc.c (update_equiv_regs): Don't use copy_rtx on PATTERN.
* toplev.c (main): Call xmalloc_set_program_name.
* gcc.c (main): Likewise.
2000-12-29 Philip Blundell <>
* config/arm/arm.c (arm_override_options): Fix typo in warning
2000-12-29 Richard Henderson <>
* config/alpha/alpha.c (alpha_expand_block_move): Initialize
src_align and dst_align in bits. Do unaligned quadword loads
if possible for BWX too.
(alpha_expand_block_clear): Initialize align in bits. Track
small leading offsets into a larger alignment. Play games with
stq_u for large 4-byte aligned blocks. Use load/mask/store
for appropreately aligned heads and tails.
2000-12-29 Alexandre Oliva <>
* function.c (assign_parms): Convert arguments passed by
reference to the right mode.
2000-12-28 Geoffrey Keating <>
* (select_or_iter_stmt): Use truthvalue_conversion
on the condition of a FOR statement, so that it gets typechecked
and optimized.
2000-12-29 Alexandre Oliva <>
* c-decl.c (grokdeclarator): Prevent crash in case of overflow in
array size.
* calls.c (emit_library_call_value_1): Add to call_fusage the
stack slot assigned to argument passed by reference.
2000-12-28 Jeffrey Oldham <>
* toplev.h (extern really_sorry): Remove extern declaration for
nonexistent function.
2000-12-28 Jeffrey Oldham <>
* varasm.c (initializer_constant_valid_p): Indicate subtraction of
pointers to the same string constant is absolute.
2000-12-28 Joseph S. Myers <>
* c-common.c (enum format_type): Add strfmon_format_type.
(decl_attributes): Handle format attributes strfmon and
(format_char_info): Update comment for flag_chars.
(format_flag_spec): Add skip_next_char.
(format_kind_info): Add left_precision_char.
(printf_flag_specs, scanf_flag_specs, strftime_flag_specs,
format_types): Update for these new structure members and flags.
(time_char_table): Make const.
(strfmon_length_specs, strfmon_flag_specs, strfmon_flag_pairs,
monetary_char_table): New.
(format_types): Add details of strfmon formats.
(init_function_format_info): Create default attribute for strfmon.
(check_format_info_main): Check the new flags. Handle
skip_next_char and left precision.
* toplev.c (documented_lang_options): Update description of
* extend.texi: Document strfmon format attributes. Document
attribute forms such as __printf__. Clarify format_arg attribute
* invoke.texi (-Wformat): Update for strfmon formats.
2000-12-28 Andreas Jaeger <>
* expmed.c (store_bit_field): Fix last patch.
2000-12-28 Alexandre Oliva <>
* config/sh/crt1.asm (start_l): `__SH4_SINGLE_ONLY__' was missing
the trailing `__'.
2000-12-28 Alan Lehotsky <>
* expmed.c (store_bit_field): Correctly compute smallest mode that
is sufficient to contain all bits we are storing.
2000-12-27 Kaveh R. Ghazi <>
* builtins.c (build_function_call_expr): New function. Use it
everywhere in lieu of manually constructing a CALL_EXPR.
2000-12-27 Chandrakala Chavva <>
* calls.c (store_one_arg): If parm is passed both in stack and in
register and offset is greater than reg_parm_stack_space, split
the offset and call emit_push_insn().
2000-12-27 Nick Clifton <>
* ifcvt.c (noce_emit_store_flag): Handle jump insns that are
2000-12-27 Alexandre Oliva <>
* rtl.c (copy_most_rtx, shallow_copy_rtx): Copy frame_related
2000-12-27 Bruce Korb <>
* fixinc/ fix for ancient Bourne shell
* fixinc/Makefile.BEOS: obsolete
* fixinc/Makefile.DOS: obsolete
* fixinc/ use `test -d' rather than `ls' for testing
2000-12-27 Bernd Schmidt <>
* sched-deps.c (get_condition, conditions_mutex_p): New functions.
(add_dependence): Use them to avoid adding unnecessary dependencies
between conditionally executed insns.
(sched_analyze_1, sched_analyze_2, sched_analyze_insn): Don't free
dependency lists if current insn is a COND_EXEC.
2000-12-27 Geoffrey Keating <>
* config/rs6000/ (define_attr "length"): Correct
2000-12-26 Kazu Hirata <>
* config/h8300/h8300.c: Fix a comment typo.
(get_shift_alg): Fix a typo in the assembly code for 12-bit
ASHIFTRT in HImode. Do not output extra whitespace after one line
of assembly code. Output a tab after an opcode instead of a
(emit_a_shift): Output a tab after an opcode instead of a space.
2000-12-23 Marek Michalkiewicz <>
* config/avr/avr.c (out_movqi_r_mr, out_movhi_r_mr, out_movsi_r_mr,
out_movsi_mr_r, out_movqi_mr_r, out_movhi_mr_r): Use %o instead of
%4 in output templates, do not modify operands passed by the caller.
2000-12-23 Joseph S. Myers <>
Don't define.
* builtins.c (expand_builtin): Don't handle BUILT_IN_LABS,
* c-common.c (c_common_nodes_and_builtins): Use BUILT_IN_ABS for
builtin labs, llabs and imaxabs.
(expand_tree_builtin): Don't handle BUILT_IN_LABS, BUILT_IN_LLABS
2000-12-23 Joseph S. Myers <>
* c-common.c (builtin_function_2): New function.
(c_common_nodes_and_builtins): Use it to define each pair (foo,
__builtin_foo) of builtins in one place.
2000-12-22 Joseph S. Myers <>
* Add libgcj and preprocessor categories.
2000-12-22 Bernd Schmidt <>
* config/ia64/ia64.c (itanium_reorder): Only schedule stops in
the final scheduling pass.
2000-12-22 Nick Clifton <>
* config/arm/arm.h (struct machine_function): Add new field
* config/arm/arm.c (arm_compute_save_reg_mask): Do not include the
link register if its save has been eliminated.
(output_arm_prologue): Mention if the save of the link register
has been eliminated.
(output_arm_epilogue): Rename 'live_regs_mask' to
Test 'saved_regs_mask' for the link register, not regs_ever_live.
(arm_expand_prologue): If the link register has not been saved set
lr_save_eliminated and emit a USE to prevent later passes from
scavenging it.
* dwarf2out_frame_debug_expr: Allow the (scratch) frame
pointer to be initialized from the stack pointer plus a
2000-12-22 Bernd Schmidt <>
* regrename.c (struct du_chain): New field "earlyclobber".
(enum scan_actions): Remove unused entry "note_reference".
(enum scan_actions_name): Likewise.
(note_sets, clear_dead_regs, merge_overlapping_regs): New static
(regrename_optimize): Use them to compute unavailable regs; get
rid of the more simpleminded code we used to have here.
Use a tick array to ensure registers are allocated in a more
round-robin way. Disable code that only optimizes registers
that were seen more than once.
(referenced_regs): Remove variable.
(scan_rtx_reg): New arg "earlyclobber". All callers changed.
Store its value in newly generated du_chain structures.
Add new du_chains at the end, not the start, of the list.
Don't handle the "note_reference" action.
(scan_rtx): New arg "earlyclobber". All callers changed.
(build_def_use): Lose code to keep track of referenced regs.
2000-12-22 Kaveh R. Ghazi <>
* (sched-deps.o, sched-rgn.o): Fix dependency typo.
* fp-bit.h (usi_to_float): Add prototype.
* i386.c (ix86_expand_builtin): Delete unused label.
* dwarf2out.c (file_info_cmp): Prototype.
(dwarf2out_line): Hide variable `old_in_use'.
* objc-act.c (objc_fatal): Delete.
* sched-vis.c (visualize_stall_cycles): Remove unused variable.
* system.h (getopt): Fix error in last change.
* varasm.c (assemble_trampoline_template): Constify.
2000-12-22 Jason Merrill <>
* collect2.c (main): Use auto_demangling.
2000-12-22 Alexandre Oliva <>
* function.c (assign_parms): Update parm's DECL_INCOMING_RTL
when optimizing PARALLEL to REG.
2000-12-22 Graham Stott <>
* reload.c (update_auto_inc_notes): New, broken out from ...
(find_reloads_address_1): ... use here, also correct possible
use of uninitialized reloadnum.
2000-12-21 David O'Brien <>
* config/freebsd.h (LIB_SPEC): remove -kthread option.
2000-12-22 Michael Hayes <>
* resource.c (mark_set_resources): Use MARK_SRC_DEST for
* rtlanal.c (side_effects_p): Handle PRE_MODIFY and POST_MODIFY.
2000-12-22 Michael Hayes <>
* md.texi (Looping Patterns): New node.
2000-12-21 Joseph S. Myers <>
* gcc.texi, cpp.texi: Update last-updated dates.
2000-12-21 Chandrakala Chavva <>
* varasm.c (output_addressed_constants): Use language specific
expander on unknown nodes.
2000-12-21 Graham Stott <>
* combine.c (distribute_notes): Handle REG_NON_LOCAL_GOTO notes.
2000-12-21 Bernd Schmidt <>
* (out_object_file): Depend on sched-int.h.
* rtl.h (single_set_1): New macro.
(single_set_2): Renamed from single_set_1 and extra argument added.
* rtlanal.c (single_set_2): Likewise.
* config/ia64/ia64-protos.h (get_bundle_name, ia64_issue_rate,
ia64_adjust_cost, ia64_sched_init, ia64_sched_finish,
ia64_sched_reorder, ia64_sched_reorder2, ia64_variable_issue):
* config/ia64/ia64.c: Include "sched-int.h".
(hard_regno_rename_ok): Also disallow renaming from the various
reg_save_* regs.
(ia64_safe_itanium_requiers_unit0, ia64_safe_itanium_class,
ia64_safe_type, init_insn_group_barriers, group_barrier_needed_p,
safe_group_barrier_needed_p, fixup_errata): New static functions.
(rtx_needs_barrier): Handle bundle selector and cycle display
(emit_insn_group_barriers): Accept additional FILE * arg. All
callers changed. Rework to only generate stop bits between
basic blocks that haven't been inserted by scheduling.
(struct bundle, struct ia64_packet): New structures.
(bundle, packets, type_names): New static arrays.
(ia64_final_schedule): New variable.
(ia64_single_set, insn_matches_slot, ia64_emit_insn_before,
gen_nop_type, finish_last_head, rotate_one_bundle, rotate_two_bundles,
cycle_end_fill_slots, packet_matches_p, get_split, find_best_insn,
find_best_packet, itanium_reorder, dump_current_packet, schedule_stop):
New static functions.
(ia64_issue_rate, ia64_sched_init, ia64_sched_reorder,
ia64_sched_finish, ia64_sched_reorder2, ia64_variable_issue): New
(ia64_reorg): Perform a final scheduling pass.
* config/ia64/ia64.h (CONST_COSTS): Slightly increase SYMBOL_REF costs.
(ia64_final_schedule): Declare variable.
* config/ia64/ (attr itanium_class): Add some more classes.
(attr type): Account for them.
(itanium_requires_unit0): New attribute.
(function units): Rewrite.
(some splitters): Don't create scheduling barriers here.
(gr_spill_internal, gr_restore_internal): Don't predicate the
(nop_m, nop_i, nop_f, nop_b, nop_x, cycle_display, cycle_display_1,
bundle_selector): New patterns.
(insn_group_barrier): Now has an operand.
2000-12-21 DJ Delorie <>
* dwarf2out.c (simple_decl_align_in_bits): new
(field_byte_offset): Try both the type align and the
decl align, use whichever works, preferring the type align.
2000-12-21 Joseph S. Myers <>
* Fix typo.
2000-12-20 Benjamin Kosnik <>
* (gcc_gxx_target_include_dir): Use instead of
build_tooldir and libstdcxx_incdir.
2000-12-20 Robert Lipe <>
* haifa-sched.c (schedule_block): Provide empty source statement
2000-12-20 Richard Henderson <>
* rtl.h (REG_NON_LOCAL_GOTO): New.
* rtl.c (reg_note_name): Update.
* stmt.c (expand_goto): Emit a REG_NON_LOCAL_GOTO note.
* builtins.c (expand_builtin_longjmp): Likewise.
* flow.c (make_edges): Check for REG_NON_LOCAL_GOTO and do
not emit an edge.
2000-12-20 Marek Michalkiewicz <>
* config/avr/avr.c (out_movsi_r_mr, out_movsi_mr_r, out_movhi_mr_r):
Do not output undefined opcodes where source or destination register
overlaps with modified pointer register. Handle (X + d) addresses.
* config/avr/ (*movhi, *movsi, *movsf): Correct insn length
in alternatives with memory operand.
2000-12-20 Richard Henderson <>
* c-typeck.c (build_asm_stmt): New, broken out from ...
(c_expand_asm_operands): ... here. Just do rtl expansion.
(c_expand_return): Return the new stmt node.
(c_start_case, do_case): Likewise.
* c-common.c (c_expand_expr_stmt): Likewise.
* c-common.h: Update declarations.
* c-tree.h: Likewise.
* c-semantics.c (build_stmt): Use STMT_LINENO not TREE_COMPLEXITY.
* (fndef): Set DECL_SOURCE_LINE to the open brace.
(nested_function, notype_nested_function): Likewise.
(compstmt): Return the compound statement not the binding level.
(lineno_labeled_stmt): Simplify.
(lineno_stmt, lineno_label): Set STMT_LINENO.
(stmt, label): Return the new stmt node.
2000-12-20 Bernd Schmidt <>
* (OBJS): Add sched-ebb.o.
(sched-ebb.o): New rule.
(sched-vis.o): Depend on hard-reg-set.h and $(BASIC_BLOCK_H).
(haifa-sched.o): Depend on insn-flags.h.
* haifa-sched.c: Include "insn-flags.h".
(priority): Don't access BLOCK_NUM, use the new contributes_to_priority
* rtl.h (schedule_ebbs): Declare.
* sched-int.h (struct sched_info): Add new members
contributes_to_priority and compute_jump_reg_dependencies.
* sched-rgn.c (contributes_to_priority, compute_jump_reg_dependencies):
New functions.
(region_sched_info): Add them.
* sched-vis.c: Include "hard-reg-set.h" and "basic-block.h".
* sched-ebb.c: New file.
* sched-deps.c (sched_analyze_insn): Add code to handle JUMP_INSNs.
* flow.c (ior_reg_cond, and_reg_cond, elim_reg_cond): Properly
handle all relational operators.
2000-12-20 Alexandre Oliva <>
* final.c (output_addr_const): Use ASM_OUTPUT_SYMBOL_REF.
* tm.texi: Document it.
2000-12-19 Benjamin Kosnik <>
* (-DGPLUSPLUS_TOOL_INCLUDE_DIR): Use build_tooldir
instead of gcc_tooldir.
2000-12-19 John David Anglin <>
* system.h (getopt): Update prototype to match include/getopt.h.
2000-12-19 John David Anglin <>
From Jeff Law.
* pa.c (basereg_operand): Simplify.
2000-12-19 Bernd Schmidt <>
* haifa-sched.c (rm_line_notes): Arguments are now head and tail,
not block number. All callers and prototype changed.
(set_priorities): Likewise.
(save_line_notes): Add head and tail arguments; all callers and
prototype changed.
(restore_line_notes): Likewise. Don't crash on insns generated
during scheduling.
(schedule_block): Don't use BLOCK_HEAD/BLOCK_END macros.
Call MD_SCHED_INIT with additional argument.
When starting a new cycle, emit cycle_display insns if available.
Don't stop scheduling when encountering a JUMP_INSN, but add another
call to schedule_more_p in the inner loop.
Call MD_SCHED_REORDER2 after scheduling an insn.
Call MD_SCHED_FINISH once all insns are scheduled.
(sched_init): Compensate for the fact that get_block_head_tail
doesn't include leading notes.
* sched-deps.c (free_deps): Free vectors here.
* sched-rgn.c (compute_block_backward_dependencies): Not here.
(last_was_jump): New static variable.
(schedule_more_p): Test it.
(init_ready_list): Initialize it.
(can_schedule_ready_p): Set it if we have a JUMP_INSN.
* config/i386/i386.h (MD_SCHED_INIT): Add new arg.
* config/m32r/m32r.h (MD_SCHED_INIT): Add new arg.
* config/sparc/sparc.h (MD_SCHED_INIT): Add new arg.
* md.texi (cycle_display): Document.
* tm.texi (MD_SCHED_INIT): Document new arg.
* flow.c (ior_reg_cond, nand_reg_cond, not_reg_cond): Rewrite
to use different representation. All callers changed.
(and_reg_cond): Renamed from nand_reg_cond; caller changed.
(init_propagate_block_info): Don't test flags to determine
whether to compute conditional lifetimes.
Adjust code for new representation of conditional lifetimes.
(mark_regno_cond_dead): Similar adjustment.
(free_reg_cond_life_info): Similar adjustment.
(elim_reg_cond): New function.
(flush_reg_cond_1): Use it.
2000-12-19 Catherine Moore <>
* reload1.c (reload_combine): Take multi-hard-regs into account
2000-12-19 Joseph S. Myers <>
* invoke.texi (-print-search-dirs): Make references to cpp refer
to cpp0 instead.
2000-12-18 Kaveh R. Ghazi <>
* fold-const.c (tree_expr_nonnegative_p): Treat truth values as
Tue Dec 19 00:37:08 2000 J"orn Rennecke <>
* reload.c (push_reload): When using a dying register for the reload
register in an in-out reload, use outmode if wider than inmode.
2000-12-19 Joseph S. Myers <>
* config/d30v/d30v.h (EXIT_BODY): Update comment.
2000-12-18 Joseph S. Myers <>
* config.gcc (*-*-linux*): Don't define HAVE_ATEXIT or BSTRING.
* tm.texi (EXIT_BODY): Update documentation.
* config/freebsd.h, config/netware.h, config/arm/coff.h,
config/arm/conix-elf.h, config/arm/unknown-elf.h,
config/d30v/d30v.h, config/mcore/mcore.h, config/pj/pj.h,
sparc/sp86x-aout.h: Remove definitions of HAVE_ATEXIT (some
commented out) and associated comments.
2000-12-18 Joseph S. Myers <>
* c-common.c (STD_C9L, ADJ_STD): Define.
(printf_length_specs, scanf_length_specs): Mark "ll" as standard
(T99_LL): Rename to T9L_LL.
(T99_ULL): Rename to T9L_ULL.
(print_char_table, scan_char_table): Use T9L_LL and T9L_ULL
instead of T99_LL and T99_ULL.
(check_format_info_main): Use ADJ_STD on all format standard
versions being compared.
* c-common.h: Declare warn_long_long.
* c-tree.h: Don't declare warn_long_long.
2000-12-18 Joseph S. Myers <>
* COPYING: Update to current (fixes references
to 19yy as example year in copyright notice).
2000-12-18 Neil Booth <>
* c-lex.c (cb_file_change): Treat in_system_header as strictly
boolean (0 or 1).
2000-12-18 Neil Booth <>
* cppmain.c: Update print.lineno with -P.
2000-12-18 Neil Booth <>
* c-lex.c: s/change_file/file_change.
* cpplib.h: Similarly.
* cppmain.c: Similarly.
* fix-header.c: Similarly.
* cppfiles.c (stack_include_file): Pass the buffer location and
size to cpp_push_buffer. Generate the file_change callback,
so that sysp is already set.
* cpphash.h: Add _cpp_do_file_change.
* cpplib.c (do_line): Set buffer->sysp directly. Generate the
file_change callback after setting sysp.
(_cpp_do_file_change): Handle FC_ENTER and the FC_RENAME exception
(cpp_push_buffer): Don't generate a callback. Clear sysp.
(cpp_pop_buffer): Clean up logic.
2000-12-18 Benjamin Kosnik <>
* (gcc_gxx_include_dir): Simplify.
(libstdcxx_incdir): Export.
* configure: Regenerate.
(libstdcxx_incdir): Add.
* cppdefault.c (GPLUSPLUS_TOOL_INCLUDE_DIR): Add search path.
2000-12-18 Neil Booth <>
* c-lex.c (lex_lineno): Remove.
(init_c_lex, c_lex): Remove lex_lineno.
(cb_change_file): Update lineno correctly, both before calling
push_srcloc and before leaving the function.
(cb_def_pragma): Set lineno before outputting diagnostics.
Sun Dec 17 18:45:41 2000 Richard Kenner <>
* print-tree.c (print_node): Print DECL_USER_ALIGN and TYPE_USER_ALIGN.
Use print_node_brief to print bounds.
2000-12-17 Neil Booth <>
* cpplib.h (struct cpp_reader): Remove references to string_pool
and temp_string_pool.
* cppinit.c (cpp_create_reader, cpp_cleanup): Similarly; using
ident_pool in place.
* cpplex.c (parse_number, unescaped_terminator_p, parse_string,
save_comment, cpp_token_as_text): Similarly.
* cpplib.c (do_define, glue_header_name, parse_assertion): Similarly.
* cppmacro.c (make_number_token, builtin_macro, lock_pools,
unlock_pools, stringify_arg, paste_tokens): Similarly.
Sun Dec 17 12:41:48 2000 Richard Kenner <>
* dwarf2out.c (loc_descriptor_from_tree, case NOP_EXPR): New case.
(loc_descriptor_from_tree, case CONVERT_EXPR): Likewise.
(loc_descriptor_from_tree, case NON_LVALUE_EXPR): Likewise.
2000-12-17 Richard Earnshaw <>
* (check-po): Use $(MAKE).
(risky-stage1, risky-stage2, risky-stage3, risky-stage4): Likewise.
2000-12-17 Neil Booth <>
* cppmain.c (check_multiline_token): New function.
(scan_buffer): Use it.
(cb_change_file): Restructure to avoid warning.
* cpperror.c (print_location): Initialize col.
2000-12-14 Philipp Thomas <>
* protoize.c (main): Correctly set locale categories.
* gcc.c (main): Likewise.
* cppmain.c (general_init): Likewise.
* toplev.c (main): Likewise.
* gcov.c (main): Likewise.
* collect2.c (main): Likewise.
2000-12-17 Kaveh R. Ghazi <>
* c-common.c (c_common_nodes_and_builtins): Create a
cstring_endlink, use it. Rename int_ftype_string_string to
int_ftype_cstring_cstring, string_ftype_string_int to
string_ftype_cstring_int, and string_ftype_string_string to
string_ftype_cstring_cstring. Prefer sizetype_endlink and
int_endlink to manually recreating them. Fix the prototype
set for __builtin_strspn/__builtin_strcspn.
2000-12-12 Marek Michalkiewicz <>
* config/avr/avr.c (out_set_stack_ptr): Update comment.
(print_operand): Add support for %~ and %o.
2000-12-17 Herman A.J. ten Brugge <>
* c4x.h: Add ASM_OUTPUT_DEF definition for bounded pointer code.
2000-12-17 Neil Booth <>
* c-lex.c: Move main_input_filename handling to FC_ENTER. Clean up.
* cpperror.c (print_containing_files): Get right line number.
(print_location): Output column of 1 if 0.
* cppfiles.c (stack_include_file): cpp_push_buffer handles
the callback.
* cpphash.h (_cpp_do_file_change): No longer external.
* cpplib.c (do_file_change): Now local to cpplib.c.
(do_line): Fake a buffer stack for preprocessed files.
(cpp_push_buffer): Create a file_change callback. Handle faked
(cpp_pop_buffer): Similarly.
* cpplib.h: BUF_FAKE: New buffer type.
* cppmain.c: Update to handle correct file renaming where a
#line is the first line of the main file, and produce only
the renamed file, not the original file, as output.
2000-12-17 Michael Hayes <>
* config/c4x/ Remove redundant @s from output patterns.
2000-12-17 Michael Hayes <>
Herman A.J. ten Brugge <>
* config/c4x/c4x.h (REGISTER_TARGET_PRAGMAS): Call c4x_init_pragma.
* config/c4x/c4x-protos.h (c4x_init_pragma): New prototype.
* config/c4x/c4x.c (c4x_init_pragma): New function.
(c_lex_func): New variable.
(c4x_parse_pragma): Use c_lex_func.
2000-12-17 Michael Hayes <>
Herman A.J. ten Brugge <>
* config/c4x/c4x.h (MD_INIT_BUILTINS): Add void_list_node argument
to c4x_init_builtins.
* config/c4x/c4x-protos.h (c4x_init_builtins): Add tree argument.
* config/c4x/c4x.c (c4x_init_builtins): Add tree argument.
(c4x_output_ascii): Fix.
2000-12-17 Michael Hayes <>
Herman A.J. ten Brugge <>
* config/c4x/c4x.h (MD_INIT_BUILTINS, MD_EXPAND_BUILTIN): Define.
* config/c4x/c4x-protos.h (c4x_init_builtins): New prototype.
(c4x_expand_builtin): Likewise.
* config/c4x/c4x.c (c4x_init_builtins): New function.
(c4x_expand_builtin): Likewise.
* config/c4x/ (floatunsqihf2): New pattern.
(*floatqihf2_set, *fixhfqi_set, fix_trunchfqi2): Likewise.
(fixuns_trunchfqi2, toieee, frieee, *ldhf_conditional): Likewise.
(*ldhf_conditional_noov, movhfcc, trap, cond_trap_cc): Likewise.
(*toieee_movqf_clobber, *frieee_movqf_clobber): Likewise.
2000-12-17 Michael Hayes <>
* libgcc2.h: Use Wtype for SItype and DWtype for DItype in prototypes.
* libgcc2.c (__absvsi2): Use Wtype and DWtype.
(__absvdi2, __addvsi3, __addvdi3, __subvsi3): Likewise.
(__subvdi3, __mulvsi3, __mulvdi3, __negvsi2, __negvdi2): Likewise.
2000-12-16 Alexandre Oliva <>
* config/sh/sh.h (INITIALIZE_TRAMPOLINE): Enclose the block
statement in do/while(0).
Sat Dec 16 19:56:24 MET 2000 Jan Hubicka <>
* (ashrsi3_cmpno, ashrhi3_cmpno, ashrqi3_cmpno, lshrsi3_cmpno,
lshrhi3_cmpno): Remove redundant '@' from the template.
* (cmpstrsi_1): Fix type of the compare.
* genattrtab.c (attr_rtx_cost): New function.
(simplify_test_exp): Avoid overactive inlining; use temporary
obstacks for tests.
Sat Dec 16 10:41:11 2000 Richard Kenner <>
* diagnostic.c (finish_abort): Deleted.
(fatal): Add code from finish_abort.
(error_recursion, fancy_abort): Call fatal, not finish_abort.
(trim_filename): Remove leading "../".
* diagnostic.h (finish_abort): Deleted.
* toplev.c (crash_signal): Call fatal, not finish_abort.
* stor-layout.c (place_field): Treat overflowing DECL_SIZE_UNIT
as if size were variable.
* expmed.c (expand_mult): Write REG_EQUAL note with proper mode.
2000-12-16 Neil Booth <>
* tradcpp.c: T_WARNING: New.
(do_warning): New function.
(finclude): Skip past the newline and increase the line number
before calling output_line_command.
(do_line): Skip the new line after output_line_command. Don't
pre-decrement the line number.
2000-12-15 Diego Novillo <>
* i386/unix.h (ASM_OUTPUT_MI_THUNK): Fix references to
_GLOBAL_OFFSET_TABLE_ when using Intel syntax.
2000-12-15 Jakub Jelinek <>
* gcc.c (cpp_options): Pass -fno-operator-names.
* cpplib.h (struct cpp_options): Add operator_names.
* cppinit.c (cpp_create_reader): Initialize it.
(initialize_builtins): If -fno-operator-names, don't add
C++ alternate operator names.
(COMMAND_LINE_OPTIONS): Add -fno-operator-names.
(cpp_handle_option): Clear operator_names.
2000-12-15 Jason Merrill <>
* jump.c (jump_optimize_1): Don't delete the line note after the
prologue even if it seems redundant.
* config/arm/arm.c (arm_expand_prologue): Set RTX_FRAME_RELATED_P
on all insns used to adjust the stack.
Fri Dec 15 15:32:16 MET 2000 Jan Hubicka <>
* combine.c (cant_combine_insn_p): Get around SUBREGs when determining
hardreg<->reg moves.
Fri Dec 15 14:48:37 MET 2000 Jan Hubicka <>
* genrecog.c (add_to_sequence): Remove special case for
(maybe_both_true): Return 1 when falling out of sequence when
trying to find common position in the pattern.
Fri Dec 15 14:44:51 MET 2000 Jan Hubicka <>
* integrate.c (copy_rtx_and_substitute): Copy mode too.
Fri Dec 15 14:11:57 MET 2000 Jan Hubicka <>
* flow.c (notice_stack_pointer_modification_1): Cleanup.
2000-12-15 Alexandre Oliva <>
* function.c (adjust_trampoline_addr): New function.
(trampoline_address): Call it instead of round_trampoline_addr().
* tm.texi (TRAMPOLINE_ADJUST_ADDRESS): Document it.
2000-12-14 Zack Weinberg <>
* cppfiles.c (hack_vms_include_specification): Delete function
(not used since 1998).
Fri Dec 15 03:37:51 2000 J"orn Rennecke <>
* haifa-sched.c (sched_init): Don't put a note in front of any BARRIER.
2000-12-14 Jim Wilson <>
* alias.c (get_alias_set): Call record_component_aliases for
(record_component_aliases): Handle COMPLEX_TYPE.
2000-12-14 Kaveh R. Ghazi <>
* fixinc/gnu-regex.c: Disable NLS.
2000-12-14 Richard Henderson <>
* config/alpha/alpha.c (alpha_emit_conditional_move): Do not swap
comparison operands when that would create non-canonical rtl.
* config/i386/ (umulsi3_highpart): Remove * from name.
(smulsi3_highpart): Likewise.
2000-12-14 Neil Booth <>
* gcc.c (cpp_options): Add -remap.
2000-12-14 Neil Booth <>
* gcc.c (cpp_options): Update to use '&'.
(struct switchstr): Change type of validated to save space.
New member 'ordering'.
(handle_braces, validate_switches): Update to handle '&'.
2000-12-13 Laurynas Biveinis <>
* fixinc/inclhack.def: skip stdio_va_list fix if __DJ_va_list
found in a header.
* fixinc/fixincl.x: regenerated.
2000-12-13 DJ Delorie <>
* config.gcc (cygwin, win32, mingw32): Use float-i386.h.
2000-12-13 Tom Tromey <>
* gcc.c (handle_braces): Handle %{<S*} spec correctly.
2000-12-13 Alexandre Oliva <>
* function.c (assign_parms): Optimize incoming PARALLELs into
REGs if possible.
2000-12-13 Bruce Korb <>
* fixinc/*): substantial rewrite to accommodate systems
that cannot handle bi-directional pipes, viz. BeOS and DOS.
* fixinc/fixlib.h(IGNORE_ARG): new macro
(STATIC): define for all of fixinc to use
* fixinc/fixfixes.c(*): eliminate unused arg warnings
* fixinc/fixtests.c(*): ditto
* fixinc/fixincl.c(start_fixer): chain_open now uses const arg list
* fixinc/gnu-regex.c: reorder some includes to avoid _GNU_SOURCE
warning. Also, eliminate the ``#ifdef emacs'' stuff.
(re_syntax_options): make global as it is declared so.
* fixinc/ process the argument list more consistently
(beos/msdosdjgpp): set TARGETS to twoprocess vs. oneprocess
* fixinc/procopen.c(globals): include "fixlib.h" for std defs
* fixinc/server.c(globals): ditto
* fixinc/server.h(defines): ditto
2000-12-13 Neil Booth <>
* tradcpp.c (special_symbol): Improve test for definedness,
though it is still not perfect.
(do_define): Don't define illegal macro names.
2000-12-07 Aldy Hernandez <>
* config/mips/elf.h (ASM_OUTPUT_SECTION_NAME): emit @nobits
if changing into .bss section.
* config/mips/elf64.h: same.
* config/mips/iris6.h: same.
* config/mips/netbsd.h: same.
* config/mips/openbsd.h: same.
2000-12-13 Neil Booth <>
* cppfiles.c (read_name_map): Return null if open () fails.
(remap_filename): Simplify logic. Add ICE if it doesn't work
as expected. Perform secondary lookup attempt on base filename
Wed Dec 13 19:48:04 MET 2000 Jan hubicka <>
* flow.c (notice_stack_pointer_modification_1): Notice midifications
Wed Dec 13 17:25:32 MET 2000 Jan Hubicka <>
* genoutput.c (process_template): Add sanity checking for '@' templates.
2000-12-13 Bernd Schmidt <>
* simplify-rtx.c (cselib_finish): Free reg_values and used_regs
2000-12-12 Mike Stump <>
* (distclean): Remove safe-ctype.c as well.
2000-12-12 Brad Lucier <>
* tradcpp.c (do_error): Cast difference of pointers to int
for error message.
2000-12-12 Franz Sirl <>
* config/rs6000/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Move from here...
* config/rs6000/sysv4.h (HANDLE_PRAGMA_PACK_PUSH_POP): here.
2000-12-12 Jim Wilson <>
* rtlanal.c (may_trap_p): Check operand modes of LE, LT, GE, and GT.
2000-12-12 Alexandre Oliva <>
* Simplify language enabling/disabling code.
* configure: Rebuilt.
* ch/ (target_libs): Set.
(build_by_default): Set to no.
* cp/ (target_libs): Set.
* f/ (target_libs): Set.
* java/ (target_libs): Set.
* objc/ (target_libs): Set.
2000-12-12 Neil Booth <>
* tradcpp.c (enum node_type): Add T_ERROR.
(do_error): New function.
(directive_table): Add #error handler.
2000-12-12 Franz Sirl <>
* (HAVE_AS_DWARF2_DEBUG_LINE): Enable .file/.loc check
for powerpc*-*-*.
* configure: Regenerated.
* config/rs6000/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
* config/rs6000/rs6000.c (rs6000_unique_section): Use
Mon Dec 11 13:51:09 2000 Jeffrey A Law (
* pa.c (cmpib_comparison_operator): Remove GEU and LTU.
* pa.h (PREDICATE_CODES, cmpib_comparison_operator): Corresponding
2000-12-11 Bruce Korb <>
* fixinc/fixincl.tpl: initialize all fields for warnings
* fixinc/fixincl.x: regenerate
2000-12-11 Neil Booth <>
* tradcpp.h: For tradcpp, NUL is not whitespace.
2000-12-11 Neil Booth <>
* fix-header.c (read_scan_file): Macro expansion is not a file buffer.
2000-12-05 Marek Michalkiewicz <>
* config/avr/avr.c (compare_condition, compare_sign_p): New functions.
(compare_diff_p, compare_eq_p): Call compare_condition.
(out_tsthi, out_tstsi): Call compare_sign_p.
(avr_progmem_p): Check for error_mark_node.
2000-12-11 Neil Booth <>
* cpperror.c (print_location): New function.
(print_containing_files): Simplify.
(_cpp_begin_message): Simplify and use print_location.
* cppfiles.c (stack_include_file): Update.
(_cpp_pop_file_buffer): Update.
* cpphash.h (struct cpp_buffer): New members
include_stack_listed and type.
* cpplib.c (_cpp_handle_directive): Buffer->inc is not null.
(run_directive): Take buffer type. cpp_push_buffer cannot fail.
(_cpp_do__Pragma, cpp_define, _cpp_define_builtin, cpp_undef,
handle_assertion): Update.
(cpp_push_buffer): Take a buffer type and file name.
(cpp_pop_buffer): Update. Clear include_stack_listed.
* cpplib.h (input_stack_listing_current): Remove.
(enum cpp_buffer_type): New.
(cpp_push_buffer): New prototype.
* cppmacro.c (builtin_macro): Simplify; buffer cannot be null.
* fix-header.c (read_scan_file): Update.
2000-12-10 Robert Lipe <>
* install.texi (i*86-*-sco3.2v5*): Remove information duplicated
in html version.
2000-12-10 Richard Henderson <>
* genrecog.c (find_operand): Handle 'V' format code.
(find_matching_operand): New.
(validate_pattern): Accept '=' for an in-out operand if there
is another operand with a matching constraint.
* config/i386/ (andqi_ext_0_cc): Use matching constraint
for op1 to op0.
2000-12-10 Richard Henderson <>
* genrecog.c (validate_pattern) [STRICT_LOW_PART]: Fix thinko.
2000-12-09 Richard Henderson <>
* genrecog.c (validate_pattern): Verify that ZERO_EXTRACT and
STRICT_LOW_PART as SET_DEST have in-out constraints.
2000-12-09 Joseph S. Myers <>
* c-common.c (check_function_format): Don't suggest adding format
attributes to functions with no parameter to which to add them.
2000-12-09 Nick Clifton <>
* config/arm/arm.c (arm_expand_prologue): Mark the generated
insn not the set as being DWARF2_FRAME_RELATED_P.
2000-12-09 Laurynas Biveinis <>
* use $(build_exeext) for all build
system executable targets.
2000-12-09 Laurynas Biveinis <>
* install.texi: remove i[345]86-*-winnt3.5 section.
* configur.bat: removed.
* config/msdos: directory removed.
2000-12-09 Neil Booth <>
* cppfiles.c (NEVER_REREAD, DO_NOT_REREAD): Move from cpphash.h.
* cpplex.c (parse_identifier): Improve diagnostic.
(_cpp_lex_token): Return unconditionally at the end of a directive.
* cpplib.c (read_flag): Verify legality of each flag.
(end_directive): Resotre pfile->skipping before skip_rest_of_line.
(do_line): Use the new read_flag.
* cppmacro.c (struct cpp_macro, parse_arg, replace_args,
check_macro_redefinition, parse_params): Rename var_args to
2000-12-09 Joseph S. Myers <>
* .cvsignore: Add info files.
2000-12-08 Laurynas Biveinis <>
* config/winnt: Remove obsolete directory.
* install.texi (Configurations): Remove obsolete documentation for
Windows NT.
2000-12-08 Joseph S. Myers <>
* Don't define INSTALL_INFO.
* configure: Regenerate.
* (INSTALL_INFO): Remove.
(info): Depend on info files in source directory.
(,, Build info files in source
(distclean): Don't remove info files.
(maintainer-clean): Remove info files from source directory.
(install-normal): Depend on install-info.
(install-info): Install info files from source directory, if they
* texinfo.tex: Update to version 2000-11-09.08 from
2000-12-08 Alexandre Oliva <>
* lcm.c (optimize_mode_switching): Check whether an insn is a NOTE
before taking its NOTE_LINE_NUMBER.
2000-12-08 Nick Clifton <>
* config/arm/ (load_indirect_jump): Add pool ranges.
* extend.texi: Document ARM "interrupt" function attribute.
Mention that the ARM also support the "naked" function
* config/arm/arm-protos.h (arm_current_func_type): Add
* config/arm/arm.h (EXCEPTION_LR_REGNUM): Define.
(struct machine_function): Add 'func_type' field.
Define bit values for 'func_type' field.
(ARM_FUNC_TYPE): New macro.
(IS_INTERRUPT): New macro.
(IS_VOLATILE): New macro.
(IS_NAKED): New macro.
(IS_NESTED): New macro.
* config/arm/arm.c (isr_attribute_args): New Structure. A
list of "interrupt" function attribute modifiers.
(arm_isr_value): New Function: Returns the type of the current
interrupt function.
(arm_compute_func_type): New Function: Computes the type of
the current function.
(arm_current_func_type): New Function: Returns the type of the
current function.
(use_return_insn): Use arm_current_func_type.
(arm_valid_type_attribute_p): Accept "interrupt" function
(arm_comp_type_attributes): Check "interrupt" attributes.
(arm_valid_machine_decl): Accept "interrupt" function
(arm_function_ok_for_sibcall): Do not allow interrupt
functions to use sibcalls.
(arm_naked_function_p): Delete.
(print_multi_reg): Remove redundant parameter 'hat'.
(arm_compute_save_reg_mask): New Function: Compute a bit mask
of registers saved during the current function's prologue.
(output_arm_return_instruction): Use arm_current_func_type.
Generate return instruction when LR is not poppsed off the
(arm_volatile_func): Delete.
(output_arm_prologue): Use arm_current_func_type and
Note presernce of interrupt functions.
(arm_output_epilogue): Use arm_current_func_type and
(arm_expand_prologue): Use arm_current_func_type and
(arm_init_machine_status): Initialize func_type field, if
(thumb_expand_prologue): Use arm_current_func_type.
(output_thumb_prologue): Use arm_current_func_type.
2000-12-08 Brad Lucier <>
* tradcpp.c (do_include): Make pointer differences 64-bit clean.
Fri Dec 8 08:23:29 2000 J"orn Rennecke <>
* fp-bit.c (_fpmul_parts): Use USItype variables as inputs
for multiplies.
2000-12-07 Mike Stump <>
* (distclean): Remove alloca.c hashtab.c.
2000-12-07 Zack Weinberg <>
* (HOST_RTL): Add safe-ctype.o.
(safe-ctype.o): New rule.
* system.h: Include safe-ctype.h, not ctype.h. No need to
wrap ctype macros.
* cpphash.h: Zap IStable and related macros. Define is_* in
terms of safe-ctype.h macros.
* cppinit.c: Delete the IStable and all related code.
* tradcpp.c: Delete is_idchar, is_idstart, is_hor_space, and
is_space arrays. Delete initialize_char_syntax. Change all
references to the above arrays to use macros instead.
* tradcpp.h: Define is_idchar, is_idstart, is_space, and
is_nvspace in terms of safe_ctype.h's macros.
* tradcif.y: is_idchar, is_idstart are macros not arrays.
* config/i370/i370.c, config/winnt/dirent.c,
config/winnt/fixinc-nt.c, config/winnt/ld.c:
Use uppercase ctype macros. If we included ctype.h,
include safe-ctype.h instead.
* fixinc/fixfixes.c: Use uppercase ctype macros. Don't test
ISLOWER(c) before calling TOUPPER(c).
* fixinc/fixincl.c (extract_quoted_files): Simplify out some gunk.
* fixinc/gnu-regex.c: Include safe-ctype.h, not ctype.h. No need to
wrap ctype macros. Don't test ISUPPER(x) before calling TOLOWER(x).
2000-12-07 DJ Delorie <>
* c-decl.c (grokdeclarator): preserve previous alignments when
rebuilding array types.
2000-12-07 Neil Booth <>
* cppfiles.c (struct include_file): Move from cpphash.h.
(_cpp_never_reread): New function.
(open_file, read_include_file): Use it.
(stack_include_file): Set the buffer's sysp according to the
path in which the file was found.
(find_include_file): Don't set sysp.
(cpp_make_system_header, actual_directory): Update.
(_cpp_execute_include): Do #include_next lookup handling here,
not in cpplib.c. Use _cpp_never_reread.
* cpphash.h (struct_include_file): Remove.
(struct cpp_buffer): New member sysp.
(CPP_IN_SYSTEM_HEADER, _cpp_execute_include): Update.
(_cpp_never_reread): New.
* cpplib.c (read_line_number): Rename read_flag. Rework slightly.
(end_directive): Clear line_extension flag.
(_cpp_handle_directive): Set line_extension flag for #number.
(do_include_next): Handle path lookup in _cpp_execute_include.
(do_line): Cleanup to use read_flag. Don't allow flags in #line.
(_cpp_do_file_change): Update.
(do_pragma_once): Use cpp_never_reread. Clean up.
* cpplib.h (struct lexer_state): New member line_extension.
2000-12-07 Richard Henderson <>
* flow.c (calculate_global_regs_live): Force the stack pointer live
after reload as well.
2000-12-07 Bruce Korb <>
* fixinc/Makefile.*(exeext): the variables are exeext, the
substitution expression is build_exeext.
2000-12-07 Neil Booth <>
* c-common.c (parse_in): Make a cpp_reader *.
* cppfiles.c (_cpp_fake_include): Remove.
* cpphash.h: Similarly.
* cpplib.c (do_line): Don't call _cpp_fake_include. A valid
#line always creates a callback; FC_RENAME if there are no
#line flags.
* fix-header.c (read_scan_file): cpp_push_buffer cannot fail.
The first EOF must be our get_char buffer.
2000-12-07 Joseph S. Myers <>
* c-common.c (warn_format_security): New variable.
(check_format_info): Warn about non-literal formats with no format
arguments if either -Wformat-nonliteral or -Wformat-security is
(set_Wformat): Set warn_format_security for settings other than 1.
* c-common.h (warn_format_security): Declare.
* c-decl.c (c_decode_option): Decode -Wformat-security and
* invoke.texi: Document -Wformat-security.
* toplev.c (documented_lang_options): Include -Wformat-security
and -Wno-format-security.
2000-12-07 Joseph S. Myers <>
* c-common.c (check_format_info): Warn for non-constant format
strings with strftime formats if -Wformat-nonliteral. Where the
format can convert arguments, if the format is not a string
literal and there are no arguments to the format, give a different
warning message from the general non-string-literal case.
2000-12-07 Joseph S. Myers <>
* c-common.c (format_wanted_type): Add reading_from_flag.
(print_char_table): Mark %s and %S formats with flag "R".
(check_format_info_main): Set up reading_from_flag appropriately.
If aflag, always set writing_in_flag rather than relying on the
format used being a scanf format and so having it set.
(check_format_types): Check for formats reading through null
2000-12-07 Joseph S. Myers <>
* invoke.texi (-Wformat): Document what format features are
2000-12-06 Kazu Hirata <>
* config/h8300/h8300.h: Fix formatting.
2000-12-06 Joel Sherrill <>
* config.gcc (a29k*-*-rtems*, arm*-*-rtems*, c4x-*-rtems*,
h8300-*-rtems*, hppa1.1-*-rtems, *mips*-*-rtems*): New targets.
* config.gcc (*-rtems*): Add support for gthr-rtems.h.
* gthr-rtems.h, config/a29k/rtems.h, config/arm/rtems-elf.h,
config/h8300/rtems.h, config/mips/rtems.h: New files.
2000-12-06 Mark Kettenis <>
* config.gcc: Reorganize handling of *-*-gnu*, to share target
specific make details with Linux. Update comments to clarify
the distinction between GNU/Linux and GNU/Hurd.
Wed Dec 6 19:22:02 2000 Jeffrey A Law (
* contrib.texi: Fix my email address. Update Per's
list of contributions.
2000-12-06 Rodney Brown <>
* c-lex.c (cb_indent): Decorate `str' argument, unused on HP-UX.
* collect2.c (scan_libraries): Remove unused `ch'.
(COFF specific stuff): Prototype ldgetname. Declare and prototype
ldbtread and ldclose.
* config/alpha/osf.h: Standarize copyright statement.
* config/arc/arc.h: Likewise.
* config/arm/elf.h config/arm/coff.h config/arm/aout.h: Likewise.
* config/arm/arm.c config/arm/arm.h: Likewise.
* config/elxsi/elxsi.h: Likewise.
* config/i386/sco.h: Likewise.
* config/m68k/crds.h config/m68k/hp320.h config/m68k/lynx.h: Likewise.
* config/m68k/m68kv4.h config/m68k/next21.h: Likewise.
* config/m68k/sun3.h: Likewise.
* config/m88k/dgux.h config/m88k/dguxbcs.h: Likewise.
* config/pdp11/2bsd.h config/pdp11/pdp11.h: Likewise.
* config/romp/romp.h: Likewise.
* config/rs6000/aix41.h: Likewise.
* config/sparc/sysv4.h: Likewise.
* config/we32k/we32k.c config/we32k/we32k.h: Likewise.
* fixinc/gnu-regex.c fixinc/gnu-regex.h: Likewise.
* cpplib.h cppexp.c cselib.h profile.c: Likewise.
* longlong.h: Likewise.
* libgcc2.c: Likewise.
2000-12-06 Herman A.J. ten Brugge <>
* machmode.def: Use correct definition for BITSIZE on targets where
2000-12-06 Bruce Korb <>
* fixinc/Makefile.*: Reduce differences to (ultimately) reduce
the number of them.
2000-12-06 J. David Anglin <>
* pa.c: Include expr.h before c-tree.h.
(remove_useless_addtr_insns): Use reverse_condition_maybe_unordered
instead of reverse_condition.
(print_operand): Correct predicates for GT, GE, LT and LE. Add
(cmpib_comparison_operator): Add GEU and LTU codes.
* pa.h (PREDICATE_CODES): Add codes for cmpib_comparison_operator.
* (bltgt, bunle, bunlt, bunge, bungt, buneq, bunordered,
bordered): New float conditional branch patterns.
Wed Dec 6 21:03:41 2000 J"orn Rennecke <>
* final.c (final_addr_vec_align): Fix clipping to BIGGEST_ALIGNMENT.
2000-12-06 Sylvain Pion <>
* cpplex.c (skip_escaped_newlines): Don't warn for spaces between
backslash and newline, when inside a comment.
2000-12-06 Joseph S. Myers <>
* invoke.texi: Use @table @samp instead of @itemize @minus for
table of language standards. Fix use of @pxref. From Zack
Weinberg. Also exclude specs documentation from generated
manpage, and create separate ENVIRONMENT section.
2000-12-06 Michael Matz <>
* gcse.c (compute_pre_data): Kill trapping expressions in
destination blocks of abnormal edges.
2000-12-05 Richard Sandiford <>
* config/mn10300/mn10300.c (mn10300_print_reg_list): Added.
(mn10300_get_live_callee_saved_regs): Likewise.
(mn10300_gen_multiple_store): Likewise.
(store_multiple_operation): Likewise.
(expand_prologue): Use mn10300_gen_multiple_store().
* config/mn10300/mn10300-protos.h (mn10300_print_reg_list): Added.
(mn10300_get_live_callee_saved_regs): Likewise.
(mn10300_gen_multiple_store): Likewise.
(store_multiple_operation): Likewise.
* config/mn10300/ (store_movm): Use a MATCH_PARALLEL
tied to store_multiple_operation().
Tue Dec 5 20:09:14 2000 Jeffrey A Law (
* builtins.c (expand_builtin_setjmp_setup): Set
2000-12-05 Neil Booth <>
* cppfiles.c (stack_include_file): Push zero-length buffers
in case of failure. Return void, as we don't fail any more.
(read_include_file): Check for files we shouldn't re-read.
Don't return an error code; errors are implied by marking the
(_cpp_execute_include): Move the recursion and in-macro checks
here. Update for stack_include_file not failing.
* cpplib.c (cpp_push_buffer): Always succeed, since
_cpp_execute_include performs the recursion check. Tidy up.
* cpplib.h (cpp_push_buffer): Update prototype.
2000-12-05 Alexandre Oliva <>
* sched-vis.c (visual_tbl_line_length): New variable.
(get_visual_tbl_length): Set it.
(visualize_stall_cycles): Don't let stalls overrun
2000-12-05 Geoffrey Keating <>
* global.c (global_conflicts): Allow for a REG_UNUSED note
with a different mode to the REG set in the insn.
2000-12-05 Kaveh R. Ghazi <>
* ( Pass $WARN_CFLAGS into fixinc dir.
* fixinc/ (FIXINC_DEFS): Add $(WARN_CFLAGS).
2000-12-05 Bruce Korb <>
* fixinc/*-gnu*): activate fixinc for GNU/Hurd and
2000-12-05 Richard Earnshaw <>
* fixinc/ Run fixinc on netbsd.
* fixinc/inclhack.def (machine/ansi.h): Run this rule on all files,
to cope with aliased copies.
* fixinc/fixincl.x: Regenerate.
2000-12-05 Bernd Schmidt <>
* sched-vis.c: Guard with #ifdef INSN_SCHEDULING.
* sched-rgn.c: Likewise.
(rgn_print_insn): Fix output.
2000-12-05 Bruce Korb <>
* fixinc/Makefile.*: make these more consistent
* fixinc/ enable BeOS fixincludes
2000-12-05 Richard Henderson <>
* stmt.c (warn_if_unused_value): Move side effects test earlier.
2000-12-05 Alan Modra <>
* bb-reorder.c (reorder_basic_blocks): Do check for EH edges even
when using sjlj.
2000-12-05 Richard Henderson <>
* flow.c (calculate_global_regs_live): Only force stack pointer
live before reload. Force pic register live before reload.
(insn_dead_p): Don't protect pic references from deletion.
2000-12-05 Joseph S. Myers <>
* invoke.texi: Add support for using Don't use
2000-12-04 Nick Clifton <>
* config/arm/arm.c (arm_override_options): Test 'insn_flags' not
'tune_flags' for XScale nature.
Remove spurious test of HARD_FLOAT and XScale flags.
* config/arm/ (umulsidi3adddi): Restore "=&r" register
contraint, accidentally changed during XScale contribution.
* config/arm/lib1funcs.asm (interwork_call_via_, call_via_): Do
not create these functions if the target architecture does not
support Thumb instructions.
2000-12-04 Joseph S. Myers <>
* ONEWS: New file with the current contents of NEWS up to EGCS
* NEWS: Generate automatically from online release notes from EGCS
1.0 to GCC 2.95.2, using ../contrib/gennews.
2000-12-04 Neil Booth <>
* tradcif.y: Move lexptr to top of file. Add rule to handle
assertions in conditional expressions.
* tradcpp.c (parse_answer): Assertions do not need to go to
end of line in conditional directives.
(parse_assertion): Get first character of identifiers correct.
(test_assertion): New function.
* tradcpp.h (test_assertion): New prototype.
2000-12-01 Rodney Brown <>
* config.gcc: Fix typo for UnixWare 7.
2000-12-03 Phil Edwards <>
* invoke.texi: Replace `pedwarns' with clearer text.
2000-12-04 Bruce Korb <>
* fixinc/Makefile.*(clean): don't clean autogenerated files.
(mainainer-clean): clean autogenerated files
2000-12-04 DJ Delorie <>
* md.texi: Add overview, clarify match_dup and define_expand.
2000-12-04 DJ Delorie <>
* print-tree.c (print_node): Target-specific builtins print
numbers, not names.
2000-12-04 Jason Merrill <>
* stor-layout.c (int_mode_for_mode): Handle MODE_VECTOR_INT,
* diagnostic.c (report_problematic_module): s/function/module/.
* c-lex.h: Remove decl for check_newline.
2000-12-04 Gerald Pfeifer <>
* README.APOLLO: Remove obsolete file.
2000-12-04 Neil Booth <>
* cppinternals.texi: New file.
2000-12-04 Neil Booth <>
* cppfiles.c (cpp_make_system_header): Take 2 booleans,
and operate on current buffer.
(cpp_read_file): Rename _cpp_read_file.
* cpplib.c (do_line, do_pragma_system_header): Update calls to
* fix-header.c: Similarly.
* cpphash.h (_cpp_read_file): Move from...
* cpplib.h: ... here.
* cppinit.c (do_includes, cpp_start_read): Update appropriately.
2000-12-03 Kaveh R. Ghazi <>
* builtins.c (expand_builtin_strspn, expand_builtin_strcspn):
Handle another transformation.
2000-12-03 Nick Clifton <>
* config.gcc: Add support for StrongARM targets.
* config/arm/t-strongarm-elf: New file.
* config/arm/t-strongarm-coff: New file.
* config/arm/t-strongarm-pe: New file.
* config/arm/strongarm-pe.h: New file.
2000-12-03 Nick Clifton <>
* NEWS: Mention XScale has been added.
* config.gcc: Add support for XScale targets.
* config/arm/arm.h: Add support for XScale processor.
* config/arm/arm.c: Add support for XScale processor.
* config/arm/ Add support for XScale processor.
* config/arm/t-xscale-elf: New file.
* config/arm/t-xscale-coff: New file.
* config/arm/xscale-elf.h: New file.
* config/arm/xscale-coff.h: New file.
2000-12-03 Richard Henderson <>
* bb-reorder.c (reorder_basic_blocks): Don't check for EH edges
unless exception handling is enabled, and if not using sjlj.
* builtins.c (expand_builtin_setjmp_setup): New.
(expand_builtin_setjmp_receiver): New.
(expand_builtin_setjmp): Split out _setup and _receiver functions.
Move argument parsing in from ...
(expand_builtin): ... here.
* except.c (receive_exception_label): Branch around receiver
unless new-style exceptions. Call expand_builtin_setjmp_receiver.
(start_dynamic_handler): Call expand_builtin_setjmp_setup.
* expr.h: Update builtin setjmp decls.
2000-12-03 Bruce Korb <>
* fixinc/ machine): Sometimes, there is no canonical
build machine name. Default to the target.
2000-12-03 Laurynas Biveinis <>
* use $(build_canonical), not $(canonical_build).
2000-12-03 Bernd Schmidt <>
* (OBJS): Add sched-rgn.o.
(sched-rgn.o): New rule. * haifa-sched.c (sched_verbose): No
longer static.
MAX_BLOCKAGE_COST): Move to sched-int.h.
IS_LOAD_INSN, struct haifa_edge, edge_table, NEXT_IN, NEXT_OUT,
FROM_BLOCK, TO_BLOCK, nr_edges, in_edges, out_edges, IN_EDGES,
OUT_EDGES, edgelst, struct region, nr_regions, rgn_table,
rgn_bb_table, block_to_bb, containing_rgn, RGN_NR_BLOCKS,
debug_regions, find_single_block_region, find_rgns, too_large,
init_regions, current_nr_blocks, current_blocks, bitset, bitlst,
bitlst_table_last, bitlst_table_size, bitlst_table, bitset_member,
extract_bitlst, bblst, struct candidate, candidate_table,
bblst_table, bblst_size, bblst_last, IS_VALID, IS_SPECULATIVE,
SRC_PROB, target_bb, split_edges, compute_trg_info,
debug_candidate, debug_candidates, bbset, bbset_size, dom,
rgn_nr_edges, rgn_edges, edgeset_size, edgeset_bitsize,
EDGE_TO_BIT, edge_to_bit, pot_split, ancestor_edges,
compute_dom_prob_ps, ABS_VALUE, INSN_PROBABILITY,
MIN_PROB_DIFF, check_live_1, update_live_1, check_live,
update_live, set_spec_fed, is_pfree, find_conditional_protection,
is_conditionally_protected, may_trap_exp, haifa_classify_insn,
is_prisky, is_exception_free, add_branch_dependences,
propagate_deps, compute_block_backward_dependences,
debug_dependencies, is_cfg_nonregular, build_control_flow,
CONST_BASED_ADDRESS_P, free_pending_lists, sched_target_n_insns,
target_n_insns, sched_n_insns, init_ready_list, deaths_in_region,
can_schedule_ready_p, new_ready, schedule_more_p, rgn_print_insn,
rgn_rank, region_sched_info): Move to sched-rgn.c.
(debug_reg_vector): Delete useless function.
(get_bb_head_tail): Likewise.
(insn_issue_delay, insn_cost, ready_add, get_block_head_tail,
no_real_insns_p, rm_line_notes, save_line_notes,
restore_line_notes, rm_redundant_line_notes, sched_init): No
longer static.
(rm_line_notes, save_line_notes, restore_line_notes,
schedule_block, set_priorities): Change argument to be a real
basic block, not one of haifa's "bb"s. All callers changed
(rm_other_notes): Initialize note_list here, not in
(sched_finish): New function, called from schedule_insn. * *
MAX_BLOCKAGE_COST): Moved here from haifa-sched.c.
(get_block_head_tail, no_real_insns_p, rm_line_notes,
save_line_notes, restore_line_notes, rm_redundant_line_notes,
rm_other_notes, insn_issue_delay, set_priorities, schedule_block,
sched_init, sched_finish, ready_add, insn_cost): Declare.
2000-12-03 Laurynas Biveinis <>
Bruce Korb <>
* pass $(build_canonical) to
* fixinc/ accept build system name as an argument.
Use it for choosing the fix build method. Use the target for
selecting special fix rules.
2000-12-03 Bernd Schmidt <>
* (OBJS): Add sched-deps.o.
(sched-deps.o): New rule.
* haifa-sched.c (struct deps, struct haifa_insn_data): Moved to
(SIZE_FOR_MODE): Delete unused macro.
(reg_known_equiv_p, reg_known_value, reg_pending_clobbers,
reg_pending_sets, reg_pending_sets_all, true_dependency_cache,
anti_dependency_cache, output_dependency_cache,
forward_dependency_cache): Variables moved to sched-deps.c.
(add_dependence, remove_dependence, find_insn_list,
find_insn_mem_list, add_insn_mem_dependence, flush_pending_lists,
sched_analyze_insn, sched_analyze_1, sched_analyze_2,
sched_analyze, group_leader, compute_forward_dependences,
init_deps, free_deps, init_dependency_caches, free_dependency_caches):
Functions moved to sched-deps.c.
(schedule_region): Call init_deps_global and finish_deps_global
instead of directly manipulating dependency data structures.
* sched-deps.c: New file.
(init_deps_global, finish_deps_global): New functions.
* sched-int.h (struct haifa_insn_data, struct deps): Moved here from
(h_i_d): Declare.
from haifa-sched.c.
* (OBJS): Add sched-vis.o.
(sched-vis.o): New rule.
* haifa-sched.c (get_unit_last_insn): New function.
(sched_dump, insn_unit, actual_hazard_this_instance): No longer
(schedule_block): Call visualize_alloc and visualize_free. Delete
spurious return statement.
(init_target_units, insn_print_units, get_visual_tbl_length,
init_block_visualization, print_block_visualization, safe_concat,
visualize_scheduled_inns, visualize_no_unit, visualize_stall_cycles,
print_exp, print_value, print_pattern, print_insn, target_units,
MAX_VISUAL_LINES, INSN_LEN, n_visual_lines, visual_tbl,
n_vis_no_unit, vis_no_unit): Move scheduling visualization
* sched-vis.c: New file.
(visualize_alloc, visualize_free): New functions.
(visualize_scheduled_insns, visualize_stall_cycles,
print_block_visualization): Lose basic block argument. All callers
(visualize_scheduled_insns): Use new function get_unit_last_insn.
* sched-int.h (current_sched_info, sched_dump): Declare.
(init_target_units, insn_print_units, init_block_visualization,
print_block_visualization, visualize_scheduled_inns,
visualize_no_unit, visualize_stall_cycles, visualize_alloc,
visualize_free): Declare functions.
* sched-int.h: New file.
* (haifa-sched.o): Depend on it.
* haifa-sched.c: Include it.
(no_real_insns_p): New function.
(current_sched_info): New static variable.
(__inline, HAIFA_INLINE): Moved to sched-int.h.
(get_block_head_tail): Minor cleanup.
(init_ready_list, can_schedule_ready_p, new_ready, schedule_more_p,
rgn_print_insn, rgn_rank): New functions, broken out of
rank_for_schedule, schedule_insn and schedule_block, where they
are now called through function pointers in current_sched_info.
(queue_insn, schedule_insn, queue_to_ready, debug_ready_list,
print_insn): To display uid and block number, call the print_insn
function pointer in current_schedule_info.
(region_sched_info): New static variable.
(sched_target_n_insns, sched_n_insns, target_n_insns): New global
variables, moved out of schedule_block.
(schedule_block): Return void. All callers changed.
Move some of the setup code into schedule_region. Get head/tail
from current_sched_info, and update it when done.
(schedule_region): Slightly rearranged, some code moved here from
schedule_block. Call no_real_insns_p to avoid doing work for a
block that consists only of notes and labels.
(schedule_insns): Initialize current_sched_info.
2000-12-03 Neil Booth <>
* cppmacro.c (funlike_invocation_p): Re-disable macros enabled
by contexts drops AFTER argument pre-expansion, so that they
remain enabled during argument pre-expansion.
(_cpp_pop_context): Unconditionally re-enable a macro when
dropping a context level.
2000-12-03 Manfred Hollstein <>
* arm/t-linux (MULTILIB_OPTIONS): Comment.
(LIBGCC): Likewise.
2000-12-02 Kaveh R. Ghazi <>
* builtins.c (expand_builtin_strcat, expand_builtin_strncat,
expand_builtin_strspn, expand_builtin_strcspn): New functions.
(expand_builtin): Handle BUILT_IN_STRCAT, BUILT_IN_STRNCAT,
* c-common.c (c_common_nodes_and_builtins): Declare builtin
strcat, strncat, strspn and strcspn.
(string_ftype_string_cstring): Renamed from `string_ftype_ptr_ptr'.
* extend.texi (strcat, strcspn, strncat, strspn): Document new
2000-12-02 Kaveh R. Ghazi <>
* builtins.c (expand_builtin_strcmp): Use const*_rtx when
expanding strcmp at compile-time. Add another transformation.
(expand_builtin_strncmp): Add more transformations. Call
expand_builtin_memcmp, not expand_builtin_strcmp, under
appropriate conditions if HAVE_cmpstrsi.
2000-12-02 David Edelsohn <>
* (anddi3_internal[23]): Prefer rldic? over andis
(cr logic): Really make operands sequential.
2000-12-02 Geoffrey Keating <>
* c-common.c (combine_strings): When the ISO C standard specifies
the maximum length of a string, it doesn't include the trailing
zero byte.
* cpplib.c (do_ifdef): Add check_eol() call.
(do_ifndef): Likewise.
2000-12-02 Daniel Berlin <>
Bruce Korb <>
* fixinc/*: global substitute /__MSDOS__/SEPARATE_FIX_PROC/
* fixinc/ prepare to use Makefile.BEOS for *-*-beos*
* fixinc/Makefile.DOS: define SEPARATE_FIX_PROC for build
* fixinc/fixfix.c(wrap_fix): avoid wrapping files that
use the "__need_" hackery. It breaks them.
* fixinc/fixincl.c(process - SEPARATE_FIX_PROC):
Sometimes on DOS and BeOS the temp output file cannot be opened.
Skip the file noisily. Ought to be fixed instead.
2000-12-02 Bruce Korb <>
From: 2000-11-19 Kaveh R. Ghazi <>
* fixfixes.c (emit_gnu_type, format_write): Prototype.
(format_write, char_macro_use_fix, char_macro_def_fix): Use gcc's
custom uppercase ctype macros.
* fixincl.c (do_version): Make static and add ATTRIBUTE_NORETURN.
Use gcc's custom uppercase ctype macros.
(main): Prototype.
(machine_matches): Add static prototype and constify variable.
(create_file, test_test, egrep_test): Add static prototype.
(quoted_file_exists): Likewise, and constify parameters.
(extract_quoted_files, internal_fix, start_fixer, fix_applies,
write_replacement, test_for_changes): Add static prototype.
(write_replacement, test_for_changes): Delete excess argument to
* fixtests.c (test): Make static.
* server.c (load_data, sig_handler, server_setup, find_shell): Add
static prototype.
(sig_handler): Mark parameter with ATTRIBUTE_UNUSED.
2000-12-02 Bruce Korb <>
* fixnc/ remove from fixincludes exception list
(per Laurynas Biveinis <>)
2000-12-02 Richard Earnshaw <>
(REGNO_MODE_OK_FOR_BASE_P): Define in terms of above.
both strict and non-strict uses.
(REG_MODE_OK_FOR_BASE_P): Define in terms of above.
(REG_OK_FOR_INDEX_P): Define in terms of above.
(REG_OK_FOR_BASE_P): Delete.
(ARM_GO_IF_LEGITIMATE_ADDRESS): Adjust for name changes. Use ARM
specific variants rather than general ones. Use ARM_REG_OK_FOR_BASE_P
in pre/post increment cases.
* arm.c (legitimate_pic_address): Similarly.
2000-12-02 Neil Booth <>
* tradcpp.c (struct answer, parse_assertion, parse_answer,
canonicalize_text, find_answer): New.
(do_assert, do_unassert): Provide appropriate function bodies.
(union hashval): New member answers.
2000-11-23 Marek Michalkiewicz <>
* config/avr/ Document UNSPEC usage.
(*tablejump_rjmp, *tablejump_lib, *tablejump_enh, *tablejump):
Make operand 0 input only, clobber it. Use UNSPEC, not a bogus
MEM for program memory word reference. Do not add the label to
the table index in each of the asm output templates, instead ...
(casesi): ... do it in RTL. Adjust to match the above change.
2000-12-02 Bernd Schmidt <>
* c-common.c (PTRDIFF_TYPE): Provide default here, ...
* c-decl.c: ... not here.
* haifa-sched.c (sched_dump): Renamed from dump. All users changed.
(old_max_uid): New variable.
(compute_forward_dependences): Renamed from
compute_block_forward_dependences; changed to accept block head and
tail instead of block number. Caller changed.
(free_deps, init_dependency_caches, free_dependency_caches,
init_regions, sched_init): New functions, split out from
schedule_insns and compute_block_backward_dependences.
2000-12-02 Neil Booth <>
* cppexp.c (parse_number): Update diagnostic test.
2000-12-02 Bernd Schmidt <>
* reload1.c (free_for_value_p): New function, frontend to
reload_reg_free_for_value_p. All callers of the latter now call
this function with an additional mode argument.
2000-12-02 Gerald Pfeifer <>
* install.texi (Configurations): Remove obsolete documentation for
2000-12-02 Gerald Pfeifer <>
* install.texi (Installation): Remove obsolete description for
libstdc++ which is now an integral part of GCC.
2000-12-01 Jim Blandy <>
* dbxout.c (dbxout_parms): Correctly describe parameters passed by
invisible reference in registers, but then spilled to the stack.
Remove code to emit a second stab for such parameters; it attempts
to describe the value's location by introducing a synthetic C++
`reference' type, and then saying the stack slot has that
reference type. This loses type information (breaking GDB's
`ptype' command, among other things) just to describe a location
which stabs can represent correctly in other ways.
2000-12-01 Alexandre Oliva <>
* final.c (output_addr_const) <PLUS>: Don't assume at least one
operand is a CONST_INT.
* config/sh/sh.c (reg_class_from_letter): Assign `k' to SIBCALL_REGS.
(machine_dependent_reorg): Split all insns.
* config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Compute
* config/sh/ (calli_pcrel, call_pcrel, call_valuei_pcrel,
call_value_pcrel, call, call_value, sibcall): Match even when
not optimizing.
(sibcalli_pcrel, sibcall_pcrel): Likewise. Use constraint `k'
for call address.
(sibcalli): Likewise.
2000-12-01 Joseph S. Myers <>
* c-common.c (warn_format, warn_format_y2k,
warn_format_extra_args, warn_format_nonliteral): Define.
(check_format_info): Check warn_format_nonliteral and
(check_format_info_main): Check warn_format_y2k.
(set_Wformat): New function.
* c-common.h (warn_format_y2k, warn_format_extra_args,
warn_format_nonliteral, set_Wformat): Declare.
* c-decl.c (warn_format): Remove definition.
(c_decode_option): Handle -Wformat-nonliteral,
-Wno-format-extra-args and -Wno-format-y2k, and negated versions.
Use set_Wformat.
* invoke.texi: Document these new options and -Wformat=2.
* toplev.c (documented_lang_options): Add these new options.
2000-12-01 Joseph S. Myers <>
* builtins.def (BUILT_IN_IMAXABS): Add.
* builtins.c (expand_builtin): Also abort on BUILT_IN_IMAXABS.
* c-common.c (c_common_nodes_and_builtins): Create builtin
functions __builtin_imaxabs, and plain imaxabs unless
flag_no_nonansi_builtin outside C99 mode.
(expand_tree_builtin): Handle BUILT_IN_IMAXABS.
* extend.texi: Document builtin imaxabs.
2000-12-01 Joseph S. Myers <>
* c-common.c: Include "defaults.h".
(c_common_nodes_and_builtins): Create string_type_node,
const_string_type_node, wint_type_node, intmax_type_node,
uintmax_type_node, default_function_type, ptrdiff_type_node and
* c-common.h (identifier_global_value): Declare.
* c-decl.c (WINT_TYPE, INTMAX_TYPE, UINTMAX_TYPE): Don't define.
(init_decl_processing): Don't create string_type_node,
const_string_type_node, wint_type_node, intmax_type_node,
uintmax_type_node, default_function_type, ptrdiff_type_node and
(identifier_global_value): New function.
2000-12-01 Neil Booth <>
* cppinit.c (initialize): Forgotten prototype.
* cpplex.c (_cpp_lex_token): Loop until not skipping.
Always clear PREV_WHITE upon meeting a new line.
* cpplib.c (end_directive): Set pfile->skipping after
* cpplib.h (cpp_reader): Remove macro_pos.
* cppmacro.c (cpp_get_line): Don't do anything special inside
(parse_arg): Add PREV_WHITE if a token appears after new lines.
(funlike_invocation_p): Save and restore the output position
over a successful check for a '('.
(enter_macro_context): Delete uses of macro_pos.
(cpp_get_token): Don't use pfile->skipping.
2000-12-01 Phil Edwards <>
* diagnostic.c: Fix typos in comments.
* diagnostic.h: Likewise.
2000-11-30 Phil Edwards <>
* rtl.texi (Machine Modes): Document BImode and OImode.
2000-12-01 Joseph S. Myers <>
* gcc.c (default_compilers): Add suffixes .mi, .cp, .ii, .FOR and
2000-12-01 Joseph S. Myers <>
* c-decl.c (grokdeclarator): If pedantic, warn about arrays with
incomplete element type.
(grokparms): Before checking for incomplete parameter type, check
the type isn't error_mark_node.
2000-12-01 Jakub Jelinek <>
* builtins.c (target_char_cast): New function.
(expand_builtin_strchr): Use it.
(expand_builtin_strrchr): Use it.
(builtin_memset_read_str): New function.
(expand_builtin_memset): Use target_char_cast.
Try to optimize memset with second argument nonzero using
2000-11-30 Marek Michalkiewicz <>
* install.texi (avr): Replace incomplete list of supported MCU
types with a link to the current one ...
* invoke.texi (AVR Options): ... here. Update -mmcu= to list
all supported MCU types. Document -minit-stack= default.
Document new options -mno-tablejump, -mtiny-stack.
* md.texi (AVR family): Fix typo in 'w' constraint letter
description. Document 'q'. Update 'O'.
2000-12-01 Bernd Schmidt <>
* combine.c (cant_combine_insn_p): Only disallow insns involving
hard regs if they are reg-reg moves.
(try_combine, can_combine_p, combinable_i3pat): Delete old
2000-12-01 Alexandre Oliva <>
* config/sh/sh.c (shiftcosts): Don't get INTVAL before testing
whether X is a CONST_INT.
(addsubcosts): Likewise.
* config/sh/sh.h (OUTPUT_ADDR_CONST_EXTRA): Use INTVAL instead of
mis-used XINT.
2000-11-30 Alexandre Oliva <>
* config/sh/ (fpu_switch0, fpu_switch1, movpsi, fpu_switch,
splits): Only match on TARGET_SH4.
* combine.c (try_combine): Disregard USEs when updating LOG_LINKS
of subsequent insns.
2000-11-30 Richard Henderson <>
* config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): Disable.
* config/alpha/alpha32.h (ASM_OUTPUT_MI_THUNK): Likewise.
2000-11-30 Richard Henderson <>
* config/alpha/elf.h (ASM_OUTPUT_SECTION_NAME): Copy elfos.h defn.
2000-11-30 Alexandre Oliva <>
* c-common.c (status_warning) [! ANSI_PROTOTYPES]: Load status
from va_list before using it.
2000-11-30 Michael Matz <>
* flow.c (make_edge): Early out, if no flags to set.
(calculate_global_regs_live): Clear out garbage only when necessary.
* simplify-rtx.c (varray_type used_regs): New.
(clear_table): Use it to only clear necessary items.
(cselib_lookup, cselib_record_set): Remember newly set items.
(cselib_update_varray_sizes, cselib_init): Initialize and grow
* local-alloc.c (update_equiv_regs): New local `cleared_regs'.
Move clearing of dead regs out of insn-loop.
2000-11-30 Richard Henderson <>
* calls.c (expand_call): Emit queued insns before creating
the tail recursion sequence.
2000-11-30 J. David Anglin <>
Bruce Korb <>
* fixinc/inclhack.def(): prevent dual double definition protection
* fixinc/fixincl.x: regenerate
2000-11-29 Loren J. Rittle <>
* fixinc/ (fixincl.x): Explicitly state the
location of the generated file.
2000-11-30 Gerald Pfeifer <>
* README.FRESCO: Remove obsolete file.
2000-11-30 Mark Kettenis <>
TARGET_LIBGCC2_CFLAGS): Remove. We now use the settings from
config/t-linux for the Hurd.
2000-11-30 Stephane Carrez <>
* config/mn10200/udivmod.c, config/mn10200/divmod.c,
config/mn10200/udivmodsi4.c: Moved from here.
* config/udivmod.c, config/divmod.c, config/udivmodsi4.c: To here.
* config/mn10200/t-mn10200 (LIB2FUNCS_EXTRA): Use the generic
C division functions.
* config/m68hc11/t-m68hc11-gas (LIB2FUNCS_EXTRA): Likewise.
Thu Nov 30 01:12:52 2000 Jeffrey A Law (
* (conditional moves): Avoid holes in operand list.
(mod, umod patterns): Similarly.
(variable extract/shift patterns): Similarly.
2000-11-30 Neil Booth <>
* objc/objc-act.c (lang_init, finish_file, maybe_objc_comptypes,
maybe_objc_check_decl, build_objc_string_object,
objc_declare_alias, objc_declare_class, build_message_expr,
build_protocol_expr, build_selector_expr, build_encode_expr,
get_class_ivars, start_class, start_protocol): Remove
redundant code, assuming doing_objc_thang is true.
2000-11-29 John David Anglin <>
* pa.c (restore_unscaled_index_insn_codes): Delete procedure.
(record_unscaled_index_insn_codes): Likewise.
(unscaled_index_insn_codes): Delete.
(max_unscaled_index_insn_codes_uid): Delete.
(output_function_prologue, output_function_epilogue, pa_reorg):
Don't use the unscaled index insn hack.
* Remove hack from all index insns to reverse the operand
order of frame and stack pointer references incorrectly created
in the reload pass.
* function.h (emit_status): Delete member regno_pointer_flag and
rename regno_pointer_flag_length to regno_pointer_align_length.
Delete define for REGNO_POINTER_FLAG.
* integrate.h (inline_remap): Delete member regno_pointer_flag.
Add member x_regno_reg_rtx.
* rtl.h (rtx_def): Use frame_related bit to indicate register is
a pointer in REG expressions. Define REG_POINTER macro.
* alias.c (find_base_value, find_base_term): Use REG_POINTER
* combine.c (nonzero_bits, num_sign_bit_copies): Likewise.
* emit-rtl.c (gen_reg_rtx): Use regno_pointer_align_length instead
of regno_pointer_flag_length. Remove code which refers to
(mark_reg_pointer): Use REG_POINTER.
(free_emit_status): Remove code which refers to regno_pointer_flag.
(init_emit, mark_emit_status): Likewise.
* flow.c (dump_flow_info): Likewise.
* function.c (preserve_temp_slots): Likewise.
* integrate.c (expand_inline_function, copy_rtx_and_substitute):
Use x_regno_reg_rtx instead of regno_pointer_flag for function
pointer determination in map.
* loop.c (strength_reduce, maybe_eliminate_biv_1): Use REG_POINTER.
* predict.c (estimate_probability): Likewise.
* regclass.c (record_address_regs, reg_scan_mark_refs): Likewise.
* unroll.c (unroll_loop): Use x_regno_reg_rtx instead of
regno_pointer_flag for function pointer determination in map.
* convex.h (RTX_COSTS): Don't test regno_pointer_flag and use
* pa.c (hppa_legitimize_address, emit_move_sequence, basereg_operand):
(restore_unscaled_index_insn_codes): Revise comment.
* expr.c (do_compare_and_jump): Add missing TYPE_MODE in statement.
2000-11-30 Joseph S. Myers <>
* extend.texi: Update documentation for attributes.
2000-11-29 David O'Brien <>
* config/alpha/elf.h (IDENT_ASM_OP): Protect the #define.
(ESCAPES): Same.
(INT_ASM_OP): Same.
(SIZE_ASM_OP): Same.
(SKIP_ASM_OP): Same.
(TYPE_ASM_OP): Same.
2000-11-29 Neil Booth <>
* c-decl.c (c_decode_option): Don't handle -lang-objc.
* objc/lang-options.h: Remove -lang-objc.
* objc/lang-specs.h: Don't pass -lang-objc to cc1obj.
* objc/objc-act.c (lang_init_options): Set c_language.
2000-11-29 Jakub Jelinek <>
* expr.c (can_store_by_pieces): Reinitialize max_size for reverse
2000-11-29 Neil Booth <>
* c-pragma.c (init_pragma): Update for parse_in type change.
2000-11-29 Laurynas Biveinis <>
* recognize DOS-style absolute paths.
2000-11-29 Jakub Jelinek <>
* expr.h (store_by_pieces): Add prototype.
(can_store_by_pieces): Likewise.
* expr.c (struct store_by_pieces): Renamed from clear_by_pieces.
(can_store_by_pieces): New.
(store_by_pieces): New.
(clear_by_pieces): New.
(clear_by_pieces_1): New.
(store_by_pieces_1): Renamed from clear_by_pieces, handle storing
arbitrary compiler generated constants into memory block.
(store_by_pieces_2): Renamed from clear_by_pieces_1, likewise.
* builtins.c (c_readstr): New.
(builtin_memcpy_read_str): New.
(expand_builtin_memcpy): If src is string constant and
emit_block_move would move it by pieces, compute integer constants
from the string and store it into memory block instead.
(builtin_strncpy_read_str): New.
(expand_builtin_strncpy): If N is not constant zero and c_strlen does
not return INTEGER_CST, don't optimize.
If N is larger than strlen(src) + 1, try to copy the string
including padding with store_by_pieces.
(expand_builtin_strcmp): If both arguments have side effects, don't
(expand_builtin_fputs): If STR has side effects, don't optimize.
2000-11-29 Richard Earnshaw <>
* (sibcall, sibcall_value, sibcall_insn, sibcall_value_insn):
Add use of link register.
2000-11-29 Joseph S. Myers <>
* extend.texi: Update documentation for default format attributes.
Tue Nov 28 21:56:45 2000 Jeffrey A Law (
* pa/pa-64.h (ASM_OUTPUT_SECTION_NAME): Use a hash table, not
a list, to keep track of the sections.
2000-11-28 Nick Clifton <>
* config/arm/ (pic_load_addr): Split into
pic_load_addr_arm and pic_load_addr_thumb.
* config/arm/arm.c (legitimize_pic_address): Generate either
ARM or Thumb versions of pic_load_addr.
(arm_finalize_pic): Generate either ARM or Thumb versions of
2000-11-28 Richard Henderson <>
* calls.c (expand_call): Defer const/pure NO_DEFER_POP until
after sibcall do_pending_stack_adjust.
Wed Nov 29 00:08:23 2000 J"orn Rennecke <>
* jump.c (delete_insn): Check that REG_LABEL note actually contains
2000-11-28 Neil Booth <>
* c-common.h: Remove flag_digraphs.
* c-decl.c: Remove flag_digraphs.
(c_decode_option): Don't set it.
* c-lex.c (init_c_lex): Don't do anything for digraphs.
2000-11-28 Richard Henderson <>
* (finish_parse): Update for parse_in type change.
(_yylex): Likewise.
2000-11-28 Neil Booth <>
* cppmacro.c (cpp_scan_buffer_nooutput): Take a boolean
indicating whether to scan all buffers on the stack or
just one.
* cppinit.c (do_includes): Update.
* cppmain.c (main): Update.
* cpplib.h: Update prototype.
2000-11-28 Richard Henderson <>
* genoutput.c (validate_insn_operands): New.
(gen_insn): Call it.
* config/alpha/ (divmodsi_internal): Renumber operands.
(divmoddi_internal): Likewise.
* config/arm/ (andsi3_compare0_scratch): Likewise.
* config/i960/ (branch patterns): Likewise.
* config/ia64/ (tbit_and_0): Likewise.
(tbit_and_1, tbit_or_0, tbit_or_1): Likewise.
* config/m68k/ (zero_extract memory patterns): Likewise.
* config/mips/ (divmodsi4_internal): Likewise.
(divmoddi4_internal): Likewise.
* config/rs6000/ (call patterns): Likewise.
* config/sh/ (movsi_y): Likewise.
* config/sparc/ Comment out if 0 v8p shift pattern.
2000-11-28 Richard Henderson <>
* config.gcc: Kill residual pyramid support.
2000-11-28 Neil Booth <>
* c-lex.h (parse_in): Change parse_in to a cpp_reader *.
* c-decl.c (c_decode_option): Update to match.
* c-lex.c (init_c_lex, yyparse): Update to match.
* c-lang.c (lang_init_options): Use cpp_create_reader.
* cppinit.c (cpp_init): Rename initialize.
(cpp_reader_init): Rename cpp_create_reader. Create the
reader. Initialize cpplib if appropriate.
* cpplib.h (cpp_create_reader) New prototype.
(cpp_init, cpp_reader_init): Delete prototypes.
* cppmain.c (general_init, setup_callbacks): New functions.
(main): Use them.
* fix-header.c (scan_in): Change type to cpp_reader *.
(read_scan_file): Update for new cpplib interface and scan_in type.
* cp/decl.c (parse_in): Change to cpp_reader *.
(lang_decode_option): Update.
* cp/lex.c (lang_init_options): Use new cpplib interface.
(init_cp_pragma, finish_parse, handle_pragma_implementation): Update.
* cp/spew.c (read_token): Update.
* objc/objc-act.c (lang_init_options): Update new cpplib interface.
2000-11-28 Jakub Jelinek <>
* loop.c (load_mems): Avoid using next_label to find end_label. If
jumping outside of the loop (other than loop end), don't hoist MEMs
out of loop.
2000-11-28 Jan Hubicka <>
* calls.c (expand_call): Don't disable tail recursion based
on the loop nest.
2000-11-28 Neil Booth <>
* tradcpp.c (enum node_type): New hash types T_ASSERT, T_UNASSERT.
(struct directive): Drop 4th argument from handlers.
(do_define, do_line, do_include, do_undef, do_else, do_elif,
do_endif): Similarly.
(do_assert, do_unassert, do_ifdef, do_ifndef): New handlers.
(do_ifxdef): Update as common handler of do_ifdef and do_ifndef.
(make_definition, make_undef): Take a const char*.
(make_assertion): New function.
(struct directive_table): Update.
(main): Handle -A command line argument.
(handle_directive): Drop fourth handler argument.
2000-11-28 Bernd Schmidt <>
* simplify-rtx.c (cselib_record_sets): Ignore sets whose destination
is anything but REG or MEM, but look inside STRICT_LOW_PART.
Tue Nov 28 09:53:50 2000 Richard Kenner <>
* system.h (IS_DIR_SEPARATOR): Use uppercase macro name.
* gcc.c (find_a_file, process_command, do_spec_1, main): Use it.
2000-11-28 Jakub Jelinek <>
* config/i386/ (truncxfsf2_2): Fix predicate.
2000-11-27 Jim Wilson <>
* reload1.c (reload): Use HOST_WIDE_INT for old_frame_size.
2000-11-27 Matthias Klose <>
* extend.texi (Nested Functions): Update URL of Usenix paper.
2000-11-27 Mark Mitchell <>
* function.c (free_after_compilation): Clear x_clobber_return_insn.
2000-11-27 Neil Booth <>
* cppinit.c (cpp_reader_init): Remove handling of warn_paste
command line options.
(cpp_handle_option): Similarly.
* cpplib.h (struct cpp_options): Remove warn_paste.
* cppmacro.c (paste_tokens): Apart from assembler, make
unpasteable token warning mandatory.
2000-11-27 Neil Booth <>
* tradcpp.c (enum pending_dir_t, struct pending_dir): New.
(main): Allocate a pending directive set of these. Use it.
Merge handling of -D and -U. Update handling of pending
directives. Free the memory after use.
2000-11-27 Bernd Schmidt <>
* flow.c (entry_exit_blocks): Add entry for cond_local_set.
(struct propagate_block_info): Add new member cond_local_set.
(propagate_block): Accept new arg cond_local_set. All callers
(init_propagate_block_info): Likewise.
(calculate_global_regs_live): Allocate & free cond_local_set. Always
rescan if there's overlap between cond_local_set and new_live_at_end.
(mark_set_1): Set bits either in cond_local_set or local_set, as
* basic-block.h (struct basic_block_def): New field cond_local_set.
(propagate_block, init_propagate_block_info): Update prototypes.
Mon Nov 27 17:29:44 2000 kaz Kojima <>
* gcc/config/sh/ (udivsi3_i4, udivsi3_i4_single): Clobber
T register.
2000-11-27 Richard Earnshaw <>
* arm.c (select_dominance_cc_mode): Handle new way that combine
canonicalizes conditional compares.
(arm_select_cc_mode): Likewise.
* Garbage collect some dead code.
(cmp_and, cmp_ior): New patterns.
(splitter for conditional move with inverted false): Use cond_exec
and handle unordered comparisons.
Mon Nov 27 17:22:56 MET 2000 Jan Hubicka <>
* i386.c (ix86_force_to_memory, ix86_free_from_memory): New.
* i386-protos.h (ix86_force_to_memory, ix86_free_from_memory): Declare
* (float?i?f, int/fp operations): Rewrite spliters to use
ix86_force_to_memory and ix86_free_from_memory.
2000-11-27 Richard Earnshaw <>
* (arm_adddi3, adddi_sesidi_di, adddi_zesidi_di, arm_addsi3,
arm_subsi3_insn, anddi_zesidi_di, arm_andsi3_insn, anddi_notdi_di,
anddi_notzesidi_di, anddi_notsesidi_di, arm_iorsi3,
one_cmpldi2): Merge with splitters to create define_insn_and_split
patterns. Remove redundant splits.
(peephole2 for add:SI of invalid immediate): New.
(peephole2 for minus:SI of invalid immediate): New.
(peephole2 for ior:SI of invalid immediate): New.
(peephole for merge of move and compare): Convert ot peephole2.
(addsf3, adddf3): Mark as commutative.
* (thumb peephole for merging stack adjustments): Convert to
2000-11-27 Bernd Schmidt <>
* haifa-sched.c (print_pattern): Prettier output for COND_EXEC.
* reload1.c (reload_cse_simplify_set): Pass down mode to cselib_lookup.
(reload_cse_simplify_operands): Do nothing about operands where both
the operand and the match_operand fail to give us a mode.
* simplify-rtx.c (wrap_constant): New function.
(entry_and_rtx_equal_p): Except integer constants to come wrapped in a
CONST describing the proper mode.
(rtx_equal_for_cselib_p): Pass down modes to recursive calls of
(cselib_lookup_mem): Call wrap_constant on the rtx that is passed to
(cselib_lookup): Likewise.
Based on a patch from Geoff Keating <>:
* loop.c (basic_induction_var): If a REG is set from something
that is not a biv, then the REG is not a biv. Even if it is
earlier set from something that is a biv.
2000-11-27 Alexandre Oliva <>
* (extra_objs): Enclose extra_headers in quotes.
* configure: Rebuilt.
2000-11-27 Neil Booth <>
* c-lex.c (cb_enter_file, cb_leave_file, cb_rename_file):
Combine into the new function cb_change_file.
(init_c_lex): Update.
* cppfiles.c (stack_include_file): Use _cpp_do_file_change.
(cpp_syshdr_flags): Delete.
* cpphash.h (_cpp_do_file_change): New prototype.
Move struct cpp_buffer here from...
* cpplib.h (struct cpp_buffer): ... here.
(enum cpp_fc_reason, struct cpp_file_loc,
struct_cpp_file_change, change_file): New.
(enter_file, leave_file, rename_file, cpp_syshdr_flags): Delete.
* cpplib.c (do_line): Update for new cb_change_file callback.
(_cpp_do_file_change): New function.
(_cpp_pop_buffer): Update to use it.
* cppmain.c (move_printer): Delete.
(main): Set up single callback cb_change_file.
(cb_enter_file, cb_leave_file, cb_rename_file): Delete.
(cb_change_file): New.
* fix-header.c (cur_file, cb_change_file): New.
(recognized_function, read_scan_file): Update.
* scan-decls.c (scan_decls): Update.
* scan.h (recognized_function): Update prototype.
2000-11-26 Mark Mitchell <>
* tree.h (mark_tree_hashtable): New function.
* tree.c (mark_tree_hashtable_entry): New function.
(mark_tree_hashtable): Likewise.
2000-11-27 Michael Meissner <>
* d30v-protos.h (srelational_si_operator): Correctly spell
(urelational_si_operator): Ditto.
(relational_si_operator): Ditto.
(d30v_expand_prologue): Add prototype.
(d30v_expand_epilogue): Ditto.
* d30v.h (OPTIMIZATION_OPTIONS): Undo November 22nd change.
* (movcccc_*): Delete now unused patterns.
(64 bit comparison splitters): Rewrite to use COND_EXEC instead of
(define_cond_exec): Use 'b' to select branch flags.
2000-11-26 Kaveh R. Ghazi <>
* builtins.c (expand_builtin_strncmp, expand_builtin_strncpy): New
(expand_builtin): Handle BUILT_IN_STRNCPY and BUILT_IN_STRNCMP.
* builtins.def (BUILT_IN_STRNCPY, BUILT_IN_STRNCMP): New entries.
* c-common.c (c_common_nodes_and_builtins): Declare builtin
strncpy and strncmp.
* extend.texi (strncmp, strncpy): Document new builtins.
2000-11-26 Mark Mitchell <>
* config/elfos.h (ASM_OUTPUT_SECTION_NAME): Use a hash table, not
a list, to keep track of the sections.
* tm.texi (ASM_OUTPUT_SECTION_NAME): Document the fact that the
parameter provided will always be a canonical string.
2000-11-26 Neil Booth <>
* cppmacro.c (cpp_scan_buffer_nooutput): Only scan the
current buffer.
2000-11-26 Joseph S. Myers <>
* makefile.vms: Remove EGCS references.
2000-11-26 Ulrich Drepper <>
* dwarf2out.c (output_file_names): New function. Compute minimal
combination of directory and file name table and emit them.
(output_line_info): Remove code to emit directory and file name
table and call output_file_names instead.
(file_info_cmp): Helper function to sort directory names.
2000-11-26 Neil Booth <>
* cpplib.h (struct cpp_reader): Remove lang_asm.
(struct cpp_options): Remove c89. New members lang,
* cppexp.c (parse_number): Use them.
* cpphash.h (VALID_SIGN): Use them.
* cppinit.c (set_lang, cpp_start_read): Update.
* cpplex.c (parse_string, _cpp_lex_token): Update.
* cpplib.c (_cpp_handle_directive): Update.
* cppmacro.c (parse_args): Update.
* cppmain.c (scan_buffer): Update.
Sun Nov 26 10:02:37 2000 Richard Kenner <>
* fold-const.c (fold, case CONVERT_EXPR): Always return tree of
proper type.
2000-11-26 Neil Booth <>
* Remove MAYBE_CPPLIB and maybe_cpplib.
* c-decl.c: Remove parse_in declaration.
* c-lang.c: Similarly.
* c-lex.c: Similarly.
* Similarly.
* c-pragma.c: Similarly.
* Similarly.
* cp/ Similarly.
* cp/spew.c: Similarly.
* cp/decl2.c: Remove check for lang-c++ option.
* cp/lang-specs.h: Remove -lang-c++ from cc1plus command line.
* cp/lex.c (lang_init_options): With cpp_reader_init, default to C++.
* c-lex.h: Add declaration of parse_in.
* cppinit.c: Call set_lang after allocating pfile->pending.
* configure: Regenerate.
2000-11-25 Zack Weinberg <>
* combine.c (try_combine): Remove redundant test.
2000-11-25 Richard Henderson <>
* c-common.h (DECL_C_HARD_REGISTER): New.
* c-decl.c (finish_decl): Set it for asm register variables.
* c-semantics.c (emit_local_var): Test it when instantiating one.
2000-11-25 Richard Henderson <>
* c-decl.c (c_expand_body): Use DECL_SOURCE_LINE rather than
lineno for the start of the function.
2000-11-25 Richard Henderson <>
* dwarf2out.c (file_table, file_table_allocated): Remove.
(file_table_allocated): Remove.
(struct file_table): New.
(decl_file_table, line_file_table): New.
(print_dwarf_line_table): Use them.
(size_of_line_prolog): Likewise.
(output_line_info): Likewise.
(add_src_coords_attributes): Likewise.
(gen_subprogram_die): Likewise.
(gen_variable_die): Likewise.
(dwarf2out_add_library_unit_info): Likewise.
(dwarf2out_line): Likewise.
(lookup_filename): Take a struct file_table argument.
(init_file_table): New.
(dwarf2out_init): Use it.
2000-11-25 Joseph S. Myers <>
* invoke.texi: Update sequence points references.
2000-11-25 Neil Booth <>
* c-common.c: Remove USE_CPPLIB conditional inclusions.
* c-common.h: Similarly.
* c-decl.c: Similarly.
* c-lang.c: Similarly.
* c-lex.c: Similarly.
* Similarly.
* c-pragma.c: Similarly.
* c-pragma.h: Similarly.
* gcc.c: Similarly.
* toplev.c: Similarly.
* cp/cp-tree.h: Similarly.
* cp/decl2.c: Similarly.
* cp/lang-specs.h: Similarly.
* cp/lex.c: Similarly.
* cp/lex.h: Similarly.
* cp/spew.c: Similarly.
* java/lang-options.h: Similarly.
* objc/lang-specs.h: Similarly.
* objc/objc-act.c: Similarly.
* Remove configure option.
* Regenerate.
* configure: Regenerate.
2000-11-25 Richard Henderson <>
* haifa-sched.c (sched_analyze_1, sched_analyze_2, sched_analyze):
Revert 2000-11-22 change.
2000-11-25 Bernd Schmidt <>
* config/i386/i386.h (FIXED_REGS): Make the three flags registers
2000-11-25 Philipp Thomas <>
* (ALL_LINGUAS): Remove en_GB and add sv.
* configure: Rebuilt.
2000-11-25 Jakub Jelinek <>
* config/sparc/ (muldi3_v8plus): Remove H constraint.
Handle CONST_INT as second argument.
* config/sparc/sparc.c (set_extends): Remove first argument.
Properly handle AND, CONST_INT and CONST_DOUBLE, handle IOR, XOR and
(sparc_check_64): Abort if first argument is not REG.
If it is DImode REG, look at the lower register of the register
* config/sparc/sparc.c (load_pic_register, restore_regs,
output_return, sparc_v8plus_shift, sparc_function_profiler,
sparc_function_block_profiler, sparc_block_profiler): Fix output
2000-11-25 Alexandre Oliva <>
* config/sh/sh.h (TARGET_NONE): New.
(TARGET_SWITCHES): For all variant-selecting switch, use
TARGET_NONE to reset all other variant-selecting switch. Added
empty strings to avoid warnings.
* ($(INTL_TARGETS)): Added $(CONFIG_H) for
* gcc/config/sh/ (sibcalli, sibcalli_pcrel): New insns.
(sibcall_pcrel): New insn_and_split.
(sibcall, sibcall_value, sibcall_epilogue): New expands.
* config/sh/ (GOTaddr2picreg, symGOT2reg, symGOTOFF2reg,
symPLT_label2reg, call, call_value): Don't set
* config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Don't mark
PIC_OFFSET_TABLE_REGNUM as call_used, so that calc_live_regs
takes it into account.
(FINALIZE_PIC): Delete, useless.
(LEGITIMATE_CONSTANT_P): Delete, unused.
* config/sh/sh.c (sh_expand_prologue): Don't use
current_function_uses_pic_offset_table. Don't special-case
PIC_OFFSET_TABLE_REGNUM. Initialize it if it's ever live and
PIC is enabled.
(sh_expand_epilogue, initial_elimination_offset): Don't
2000-11-25 Alexandre Oliva <>, NIIBE Yutaka <>
* config/sh/sh-protos.h (symbol_ref_operand): Declare.
* config/sh/ (UNSPEC_CALLER): New constant.
(calli_pcrel, call_valuei_pcrel): Use PIC_REG.
(call_pcrel, call_value_pcrel): New insn_and_splits.
(call, call_value): Use them.
(call_site): New expand.
(sym_label2reg, symPLT_label2reg): Adjust to hold call_sites.
Output call_site label.
(PREDICATE_CODES): Added symbol_ref_operand.
* config/sh/sh.c (symbol_ref_operand): Define.
* emit-rtl.c (try_split): Propagate CALL_INSN_FUNCTION_USAGE
to CALL_INSNs in the split sequence.
2000-11-24 Nick Clifton <>
* config.gcc (v850-*-*): Define c_target_objs and
* config/v850/t-v850: Define how to build v850-c.o
* config/v850/v850.h (struct data_area_stack_element): Move
definition here from v850.c.
* config/v850v850.c: Include gcc.h to avoid compile time
(push_data_area): Move to v850-c.c.
(pop_data_area): Move to v850-c.c.
(mark_current_function_as_interrupt): Move to v850-c.c.
(GHS_default_section_names): Allow to be exported.
(GHS_current_section_names): Allow to be exported.
(data_area_stack_elements): Allow to be exported.
(ghs_pragma_section): Move to v850-c.c.
(ghs_pragma_interrupt): Move to v850-c.c.
(ghs_pragma_starttda): Move to v850-c.c.
(ghs_pragma_startsda): Move to v850-c.c.
(ghs_pragma_startzda): Move to v850-c.c.
(ghs_pragma_endtda): Move to v850-c.c.
(ghs_pragma_endsda): Move to v850-c.c.
(ghs_pragma_endzda): Move to v850-c.c.
* config/v850/v850-c.c: New file: Contains v850 specific
pragma parsing functions.
2000-11-24 Nick Clifton <>
* config.gcc (extra_objs): Remove duplicate description.
(c_target_objs): New variable. Contains target specific
object files for the gcc C compiler only.
(cxx_target_objs): New variable. Contains target specific
object files for the gxx C++ compiler only.
* (c_target_objs): Substitute in the makefile.
(cxx_target_objs): Substitute in the makefile.
* configure: Regenerate.
* (C_TARGET_OBJS): Define and initialize from
(CXX_TARGET_OBJS): Define and initialize from
* cp/ (CXX_C_OBJS): Include CXX_TARGET_OBJS).
* tm.texi (REGISTER_TARGET_PRAGMAS): Add paragraph explaining
about how the use of the 'c_lex' function requires the use of
the target specific, language specific object files feature of
the configuration mechanism.
Fri Nov 24 18:50:58 2000 Richard Kenner <>
* gcc.c (process_command): Use F_OK, not R_OK.
2000-11-24 Arno J. Klaassen <>
* flow.c (print_rtl_and_abort): Remove ANSIism.
Fri Nov 24 19:54:36 2000 Alexandre Oliva <>
* config/sh/sh.h (GENERAL_REGISTER_P,
all over.
* config/sh/sh.c: Use new macros.
* config/sh/ Likewise.
Fri Nov 24 19:46:16 2000 Alexandre Oliva <>
* config/sh/ Clobber MACH_REG and MACL_REG in SImode,
instead of just MACH_REG in DImode. Always refer to FPSCR_REG
in PSImode.
Fri Nov 24 22:37:41 2000 Denis Chertykov <>
* config/avr/avr.c (out_tsthi,out_tstsi): Test simplification bug
(machine_dependent_reorg): Wrong optimization based on
Fri Nov 24 19:48:09 2000 J"orn Rennecke <>
* jump.c (delete_computation): Re-instate deletion of feeding insn.
(delete_insn): Look for REG_LABEL notes.
(redirect_tablejump): Delete feeding insns.
2000-11-24 Bernd Schmidt <>
* config/i386/ (call_pop_0, call_pop_1, call_value_pop_0,
call_value_pop_1): Make sure operand numbers are contiguous.
* fold-const.c (fold_range_test): Avoid crash if LHS or RHS is null.
* reload1.c (conflicts_with_override): New function.
(emit_input_reload_insns): Use it to tighten test for validity
of substituting into output of previous insn.
* haifa-sched.c (struct ready_list): New.
(ready_lastpos, ready_add, ready_remove_first, ready_sort): New static
(schedule_insn): Replace args READY and N_READY with a pointer to a
ready_list; return void. Use the new functions to access the ready
list. All callers changed.
(queue_to_ready, debug_ready_list): Likewise.
(schedule_block): Initialize a ready_list structure. Use new
functions to access it.
(max_priority): Remove unused variable.
(schedule_insn): Don't set it.
* c-common.c (verify_tree): Don't recurse into CONSTRUCTORs.
* combine.c (cant_combine_insn_p): New function.
(try_combine): Use it.
* (c-common.o): Depend on $(OBSTACK_H).
* c-common.c (c-obstack.c): Include "obstack.h".
(struct reverse_tree): Delete.
(reverse_list, reverse_max_depth): Delete.
(build_reverse_tree, common_ancestor, modify_ok): Delete functions.
(struct tlist, struct tlist_cache): New.
(tlist_obstack, tlist_firstobj, warned_ids, save_expr_cache): New.
(add_tlist, merge_tlist, verify_tree, warning_candidate_p,
warn_for_collisions, warn_for_collisions_1, new_tlist): New
static functions.
(verify_sequence_points): Rewritten.
* fold-const.c (fold): Don't lose possibly important sequence
points when removing one arm of TRUTH_ORIF_EXPRs or TRUTH_ANDIF_EXPRs.
2000-11-24 Richard Sandiford <>
* gcc/cse.c (cse_insn): Removed conversion of REG_EQUIV to REG_EQUAL
when reversing a register-to-register copy. Reversal now disabled
when the previous instruction has a REG_EQUIV.
2000-11-24 Nathan Sidwell <>
* (unary_expr): Move VA_ARG from here ...
(primary): ... to here.
2000-11-23 Graham Stott <>
* expr.c (store_constructor): If a field is non addressable and
the target is a MEM use MEM_ALIAS_SET otherwise use get_alias_set.
2000-11-23 Bernd Schmidt <>
* flow.c (print_rtl_and_abort): New function.
(verify_wide_reg, verify_local_live_at_start): Try to dump more
information before aborting.
2000-11-23 Alexandre Oliva <>
* emit-rtl.c (gen_lowpart_common): Use word 0 if register mode
is narrower than requested mode.
(gen_highpart): Abort if register mode is narrower than
requested mode.
2000-11-23 Graham Stott <>
* cse.c (cse_insn): Initialize all regcost variables.
Fix a typo add missing '='.
Only compare costs if there is a replacement insn.
Thu Nov 23 04:33:33 2000 Alexandre Oliva <>
* final.c (output_addr_const) [LABEL_REF]: Simplify.
[MINUS]: Enclose non-CONST_INTs in parentheses.
* tm.texi (OUTPUT_ADDR_CONST_EXTRA): Document it.
* varasm.c (decode_rtx_const) [CONST]: If it's not something
PLUS or MINUS a CONST_INT, use the whole CONST with offset 0
instead of abort()ing.
* sh.c (output_pic_addr_const): Removed. Fixed all callers.
* sh.h (OUTPUT_ADDR_CONST_EXTRA): New. Handle the UNSPECs
formerly handled in output_pic_addr_const.
* (sym_label2reg, symPLT_label2reg): Enclose UNSPEC
operands of MINUS in CONSTs so that decode_rtx_const() will
accept them.
Thu Nov 23 04:10:30 2000 Alexandre Oliva <>
* config/sh/ (mova_const): New pattern.
(GOTaddr2picreg): Use it.
* config/sh/sh.c (broken_move): Match it.
(mova_p): Don't match it.
(machine_dependent_reorg): Adjust it.
Thu Nov 23 02:09:09 2000 Alexandre Oliva <>
* config/sh/sh.h (FIRST_GENERAL_REG, LAST_GENERAL_REG): New.
Moved most register-number #defines...
* config/sh/ (define_constants): ... here. Use macros to
refer to registers and unspecs.
* config/sh/sh.c: Likewise.
Thu Nov 23 01:01:32 2000 J"orn Rennecke <>
(rtl.o, print-rtl.o, bitmap.o, obstack.o): Build with -DGENERATOR_FILE.
(alloca.o, vfprintf.o, ggc-none.o, errors.o): Likewise.
(splay-tree.o, hash.o): Likewise.
(rtl.o, print-rtl.o): Depend on $(GCONFIG_H) instead of $(CONFIG_H).
(bitmap.o, obstack.o, vfprintf.o, ggc-none.o, errors.o): Likewise.
(hashtab.o): Likewise.
(gcov.o): Depend on $(CONFIG_H).
* #include insn-codes.h in tm.h.
2000-11-22 Nick Clifton <>
* config/arm/arm.c (arm_encode_call_attribute): Make 'newstr' a
const char * to avoid a compile time warning.
* config/arm/ (define_constants): Define symbolic names for
the link register, last integer register and the fake CC register.
Update patterns to use these symbolic names.
2000-11-22 Neil Booth <>
* cpplex.c (trigraph_ok): Ensure we don't warn twice.
* cpplib.h (struct cpp_buffer): New member last_Wtrigraphs.
2000-11-22 Richard Henderson <>
* haifa-sched.c (sched_analyze_1): Don't special-case calls
for clobbering registers.
(sched_analyze_2): Likewise.
(sched_analyze): Zap reg_last_uses and reg_last_sets after calls.
2000-11-22 Chris Demetriou <>
Neil Booth <>
* gcc.c (validate_switches): Validate multiple switches named
in '|' (or) expressions in specs.
(handle_braces): If more than 1 alternative in a '|' spec
matches, call do_spec1 just once.
2000-11-22 Michael Meissner <>
* d30v.h (TARGET_SWITCHES): Add documentation strings.
(OPTIMIZATION_OPTIONS): Temporarily turn off -frename-registers if
Wed Nov 22 06:40:56 2000 Jeffrey A Law (
* pa.c (hppa_encode_label): Account for addition of encoding
character when allocating persistent space for the new label
2000-11-22 Zack Weinberg <>
*, config.gcc, Expunge remaining
traces of facility for running MD files through C preprocessor.
2000-11-22 Joseph S. Myers <>
* gcov.texi: Add magic comments for
* Add rules to generate and install gcov.1.
* gcov.1: New (generated) file.
2000-11-21 Richard Henderson <>
* regrename.c (scan_rtx_reg): Terminate the chain rather than
abort on mark_read with NO_REGS.
2000-11-21 Mike Stump <>
* fixinc/fixtests.c (TEST_FOR_FIX_PROC_HEAD): Fix to allow
compilation with older compilers, such as /bin/cc on SunOS.
* fixinc/fixfixes.c (FIX_PROC_HEAD): Ditto.
2000-11-21 Richard Henderson <>
* varasm.c (record_constant): Pad the constructed
constant_descriptor appropriately.
Wed Nov 22 00:52:55 2000 J"orn Rennecke <>
* rtl.h (traverse_md_constants): Declare.
(struct md_constant): Define.
* (HOST_RTL): Add hashtab.o .
(OBJS): Add hashtab.o .
(hashtab.o): New rule.
(rtl.o): Depends on HASHTAB_H.
* rtl.c (hashtab.h): #include.
(md_constants): New static variable.
(def_hash, def_name_eq_p, read_constants): New static functions.
(traverse_md_constants): New function.
(read_name): Do constant expansion.
(read_rtx): Recognize define_constants.
* gencodes.c (print_md_constant): New function.
(main): Emit #defines for all constant definitions encountered.
* md.texi (Constant Definitions): New node.
* gensupport.c (xcalloc): New function.
2000-11-21 Richard Henderson <>
* config/alpha/alpha.c (alpha_split_tfmode_frobsign): New.
* config/alpha/alpha-protos.h: Declare it.
* config/alpha/ (abstf_internal): Use it.
(negtf_internal): Likewise.
(andnotdi3): Unstar the name.
(movtf_internal): Add o/G alternative.
2000-11-21 Zack Weinberg <>
* stringpool.c (stringpool_statistics): Also report number and
percentage of entries which are identifiers.
2000-11-21 Diego Novillo <>
* gcse.c (hoist_expr_reaches_here_p): Do not mark expr_bb as
visited before visiting it.
2000-11-21 Nick Clifton <>
* config/arm/arm.h: Accept TARGET_CPU_arm9tdmi,
TARGET_CPU_strongarm110 and TARGET_SPU_strongarm1100.
* config.gcc: Accept --with-cpu=arm9 and --with-cpu=arm9tdmi.
2000-11-21 Richard Henderson <>
* c-common.c (c_unsafe_for_reeval): New function.
(add_c_tree_codes): Register it.
* c-common.h: Declare it.
* tree.c (lang_unsafe_for_reeval): New hook.
(unsafe_for_reeval): Call it.
* tree.h: Declare it.
2000-11-21 Richard Henderson <>
* config/i386/i386.c (i386_simplify_dwarf_addr): Simplify @GOT
references as well.
2000-11-21 Neil Booth <>
* do_includes: Revert to using cpp_read_file.
2000-11-21 Bernd Schmidt <>
* loop.c (consec_sets_giv): If the reg we're examining is anything
but UNKNOWN_INDUCT, do nothing.
Reset the reg's type to UNKNOWN_INDUCT before returning.
Mostly from Vladimir Makarov (
* (attr itanium_class): Define insn types as described in
Itanium docs.
(all insn patterns): Use itanium_class, not type attributes.
Occasionally split alternatives as necessary.
(attr type): Compute from new attr itanium_class.
2000-11-21 Kaveh R. Ghazi <>
* tradcpp.c (output_line_command): Mark system headers as such in
`line' commands.
2000-11-21 Jakub Jelinek <>
* (HAVE_AS_DWARF2_DEBUG_LINE): SPARC has .file/.loc
support in as as well.
* configure: Regenerate.
2000-11-20 Richard Henderson <>
* c-lex.c (orig_filename): New variable.
(init_c_lex): Set it. Move call to cpp_start_read ...
(yyparse): ... here. New function.
* (yyparse_1): Rename the parser entry point.
* c-tree.h: Declare it.
2000-11-21 Jakub Jelinek <>
* expr.c (do_compare_and_jump): If op0 was replaced by promoted
integer constant, use type of op1 for comparison.
2000-11-20 Stan Shebs <>
* config/rs6000/xm-darwin.h: New file, Darwin host definitions.
* config/rs6000/x-darwin: New file, Darwin host fragment.
* config.gcc (powerpc-*-darwin*): New host.
* system.h (HAVE_DESIGNATED_INITIALIZERS): Allow this to be
overridden by a config file.
2000-11-20 Neil Booth <>
* cppmacro.c (paste_tokens): Rename from paste_payloads.
Change token type after pasting spellings.
(paste_all_tokens): Use it.
* gcc.dg/cpp/paste2.c: Update test.
* objc/execute/paste.m: New test.
2000-11-20 Richard Henderson <>
* dwarf.h (FMT_CODE): Adjust argument order; fix mapping to
dwarf_subscr_data_formats bits.
* dwarfout.c (simple_type_size_in_bits): Handle a type with
no computed size as size zero.
(field_byte_offset): Likewise.
(subscript_data_attribute): Handle a range with no upper bound.
2000-11-20 Kaveh R. Ghazi <>
* gansidecl.h (const): Check __STDC__ before undef'ing `const'.
2000-11-20 Joseph S. Myers <>
* c-typeck.c (build_conditional_expr): When merging type
qualifiers for conditional expressions between a pointer and a
pointer to a void type, merge the qualifiers on the target types
rather than the pointer type. Remove obsolete conditioned out
2000-11-20 Neil Booth <>
* c-lang.c (lang_init_options): Update call to
* cppmain.c (main): Similarly.
* fix-header.c (read_scan_file): Similarly.
* cp/lex.c (lang_init_options): Similarly.
* objc/objc-act.c (lang_init_options): Similarly.
* cppexp.c (parse_number): Only warn for unextended C89.
* cppinit.c (set_lang): New function.
(cpp_reader_init): Take a LANG argument and pass it to set_lang.
(COMMAND_LINE_OPTIONS): New option std=c++98.
(cpp_handle_option): Use set_lang.
* cpplex.c (_cpp_lex_token): Warn pedantically if not C99.
* cppib.h (enum_c_lang): New enumeration. Update comments.
2000-11-20 Will Cohen <>
* calls.c (expand_call): Clear target only when target is in
hard register and current_function_check_memory_usage is set.
2000-11-20 Bernd Schmidt <>
* toplev.c (rest_of_compilation): Run optimize_mode_switching even
if not optimizing.
* sh.c (emit_sf_insn, emit_df_insn): Just call emit_insn.
2000-11-19 Richard Henderson <>
* crtstuff.c (force_to_data): Use array size 1 not 0.
* dwarf2out.c (simple_type_size_in_bits): Handle a type with
no computed size as size zero.
(field_byte_offset): Likewise.
2000-11-20 Joseph S. Myers <>
* config.gcc: Fix another typo.
2000-11-19 Richard Henderson <>
* c-decl.c (grokdeclarator): Support flexible array members.
Use open-ended ranges for these and zero-length arrays.
* c-typeck.c (push_init_level): Validate the context of
initialization of a zero-length array.
* tree.c (int_fits_type_p): Be prepared for missing bounds.
* varasm.c (array_size_for_constructor): New.
(output_constructor): Use it for arrays of unspecified length.
* extend.texi (Zero Length): Mention C99 flexible array members.
Document initialization in a top-level struct as valid.
2000-11-19 Joseph S. Myers <>
* config.gcc, invoke.texi: Fix errors in spelling of "deprecated".
* alias.c (mems_in_disjoint_alias_sets_p): Do use alias sets in
stdarg and varargs functions.
2000-11-19 Zack Weinberg <>
* gcc.c (process_command): Define 'j' variable when
2000-11-19 Richard Henderson <>
* stor-layout.c (variable_size): Only put SAVE_EXPRs on pending_sizes.
2000-11-19 Franz Sirl <>
* rs6000/rs6000.c (rs6000_encode_section_info): Fix string length
calculation and allocation.
2000-11-19 Kaveh R. Ghazi <>
* builtins.c (c_getstr): Constify variable.
* gmon-sol2.c (_mcleanup): Comment out #endif labels.
* conflict.c (const_conflict_graph_arc): New typedef.
(arc_hash, arc_eq): Avoid needlessly casting away const-ness.
* cppmacro.c (builtin_macro): Likewise.
* dwarf2out.c (output_comp_unit): Constify variable.
* fix-header.c (v_fatal): Add ATTRIBUTE_PRINTF.
* protoize.c (IS_SAME_PATH_CHAR): Use TOUPPER, not toupper.
* ssa.c (ssa_rename_from_hash_function): Avoid needlessly casting
away const-ness.
* tradcpp.c (rescan, do_line, macroexpand, macarg): Use
ISALNUM/ISDIGIT/ISPRINT, not isalnum/isdigit/isprint.
* varasm.c (const_str_htab_hash, const_str_htab_eq,
compare_constant_1, record_constant_1): Constify.
2000-11-18 Richard Henderson <>
* c-decl.c (grokdeclarator): Special case the creation of an
index for a zero-length array.
* tree.c (build_index_type): Revert Oct 20 change.
2000-11-18 Marek Michalkiewicz <>
* config/avr/avr-protos.h (avr_output_addr_vec_elt): Prototype.
* config/avr/avr.c (jump_tables_size): New variable.
(function_prologue): Initialize it as 0.
(function_epilogue): Add it to function_size.
(avr_output_addr_vec_elt): New function. Count words in jump
tables in jump_tables_size. Move code ...
* config/avr/avr.h (ASM_OUTPUT_ADDR_VEC_ELT): ... from here.
Call avr_output_addr_vec_elt instead.
* config/avr/ (tablejump): Remove disabled define_expand.
2000-11-18 Mark Mitchell <>
* Make --enable-new-gxx-abi the default.
* configure: Likewise.
2000-11-18 Kaveh R. Ghazi <>
* (tradcpp.o, tradcif.o): Depend on tradcpp.h.
* tradcif.y: Include tradcpp.h. Constify. Make functions static.
Move extern function declarations to tradcpp.h.
* tradcpp.c: Likewise.
* tradcpp.h: New file.
2000-11-18 Joseph S. Myers <>
* c-decl.c (check_for_loop_decls): New function.
* (for_init_stmt): New.
(select_or_iter_stmt): Use for_init_stmt.
* c-tree.h (check_for_loop_decls): New declaration.
2000-11-18 Neil Booth <>
* cppinit.c: Update comments.
(cpp_reader_init): Make -imacro and -include use the standard
#include "" search path.
(do_includes): New function.
2000-11-18 Ben Elliston <>
* config/sh/crt1.asm (start_l): Move PC-relative move instruction
out of a branch delay slot.
2000-11-17 Richard Henderson <>
* config/alpha/elf.h (PREFERRED_DEBUGGING_TYPE): Set to DWARF2_DEBUG.
(ASM_SPEC): Disable and enable .mdebug based on -gstabs.
(ASM_FILE_START): Only write out ecoff .file directive if
emitting mdebug debugging.
2000-11-17 Richard Henderson <>
whether as accepts .file/.loc and produces dwarf2 line info.
* dwarf2out.c (DWARF2_ASM_LINE_DEBUG_INFO): Default on if
the assembler supports it.
*, configure: Regenerate.
2000-11-17 Richard Henderson <>
* fixinc/ Don't disable fixincludes for any linux*.
2000-11-17 Jim Wilson <>
* config/ia64/ia64.c (emit_insn_group_barriers, case CALL_INSN):
Don't clear need_barrier is next_insn is a CALL_INSN, or has
instruction type B or UNKNOWN.
2000-11-17 Neil Booth <>
* cpperror.c (print_file_and_line): Don't display line number if 0.
2000-11-17 Zack Weinberg <>
* ggc.h: Delete ggc_add_string_root and ggc_mark_string. Add
digit_vector and digit_string.
* stringpool.c (digit_vector): New.
(ggc_alloc_string): Use digit_string.
* stmt.c (digit_strings): Delete.
(init_stmt): Do not initialize digit_strings.
(expand_asm_operands): Use ggc.h's digit_string macro.
* toplev.c (mark_file_stack): Delete.
(compile_file): Don't call init_tree_codes.
(main): No need to make the file stack a GC root.
* tree.c (init_tree_codes): Delete.
* tree.h (init_tree_codes): Delete.
* c-lex.c: Don't include ggc.h.
(mark_splay_tree_node, mark_splay_tree): Delete.
(init_c_lex): No need to ggc_strdup string constant. Don't add
file_info_tree to GGC roots.
(cb_enter_file, cb_rename_file): No need to ggc_strdup
* (c-lex.o): No longer depends on $(GGC_H).
* dbxout.c (dbxout_init),
dwarf2out.c (dwarf2out_line),
ggc-common.c (ggc_mark_rtx_children, ggc_mark_trees),
varasm.c (mark_const_hash_entry, mark_pool_constant, init_varasm_once),
xcoffout.c (xcoffout_source_file),
i386.c (load_pic_register):
Delete call(s) to ggc_add_string_root and/or ggc_mark_string.
* except.c (create_rethrow_ref),
profile.c (init_edge_profiler),
toplev.c (compile_file),
varasm.c (named_section, assemble_static_space,
assemble_trampoline_template, output_constant_def, force_const_mem),
i386.c (load_pic_register),
ia64.c (ia64_encode_section_info),
rs6000.c (rs6000_emit_load_toc_table, create_TOC_reference,
rs6000_emit_prologue, rs6000_emit_epilogue), (load_toc_aix_si, load_toc_aix_di):
Change ggc_alloc_string (var, -1) to ggc_strdup (var).
* profile.c (output_func_start_profiler),
tree.c (make_node),
i386.c (load_pic_register): No need to ggc_strdup string constant.
2000-11-17 Hans-Peter Nilsson <>
* (config.status): Depend on config.gcc.
* <for machine in $build $host $target>: Move
contents of loop into config.gcc, removing autoconf quoting.
Fix changequote bug for alpha*-*-vxworks*.
* configure: Regenerate.
* config.gcc: New.
2000-11-16 Zack Weinberg <>
* (if_prefix): Find the filename and line number at
$-2 and $-1 respectively.
* diagnostic.c (error_recursion): Add missing newline, use
fputs, translate string.
2000-11-16 Zack Weinberg <>
* stringpool.c: New file.
* ggc-common.c (ggc_mark_string_ptr, ggc_add_string_root): Delete.
(ggc_alloc_string): Now in stringpool.o.
* ggc-page.c, ggc-simple.c: Do not define or allocate empty_string.
* ggc.h: Delete prototype of ggc_add_string_root. #define
ggc_add_string_root and ggc_mark_string to nothing. Prototype
init_stringpool and stringpool_statistics.
(ggc_alloc_string): Returns a const char *.
* tree.c (hash_table, do_identifier_warnings): Delete.
(init_obstacks): Don't initialize the identifier hash table.
(get_identifier, maybe_get_identifier, start_identifier_warnings,
set_identifier_size): Now in stringpool.c.
* tree.h (struct tree_string): Constify pointer field.
(approx_sqrt): Prototype.
* (stringpool.o): Add rule, mention in OBJS.
* toplev.c (approx_sqrt): New function.
(compile_file): Call stringpool_statistics if mem_report is on.
(main): Call init_stringpool.
* builtins.c (c_strlen), c-decl.c (finish_decl), c-lex.c
(process_directive), c-typeck.c (constructor_asmspec, struct
initializer_stack, start_init), except.c (create_rethrow_ref),
stmt.c (digit_strings), toplev.c (decode_f_option), tree.c
(built_in_filename), varasm,c (in_named_name,
assemble_static_space, struct constant_descriptor, struct
deferred_string, struct pool_constant, force_const_mem),
i386.c (pic_label_name, global_offset_table_name), rs6000.c
(rs6000_emit_prologue, rs6000_emit_epilogue) : Constify a char *.
* c-common.c (combine_strings): Combine strings in scratch
buffer, then pass to build_string.
* optabs.c (init_libfuncs), profile.c (init_edge_profiler,
output_func_start_profiler), stmt.c (init_stmt), alpha.c
(alpha_need_linkage), arm.c (arm_encode_call_attribute),
i386.c (load_pic_register), ia64.c (ia64_encode_section_info),
rs6000.c (rs6000_encode_section_info): Create string in
scratch buffer, then pass to ggc_alloc_string.
* stmt.c (expand_asm_operands): If we must adjust the
constraint strings, do so by creating a new one, not by
modifying the old one in place. Constify some char *s.
* config/pa/pa.c (hppa_encode_label): Drop unnecessary second
argument. Create string in scratch buffer, then pass to
* config/pa/pa-protos.h: Update prototype.
* config/pa/elf.h, config/pa/pa.h, config/pa/som.h:
hppa_encode_label takes only one argument.
2000-11-16 Kaveh R. Ghazi <>
* mcore.c (mcore_expand_prolog): Call xmalloc/xrealloc, not
* cpplib.c (glue_header_name): Likewise.
* fixincl.c (run_compiles, start_fixer): Likewise.
* fixlib.c (load_file_data): Likewise.
* mkdeps.c (munge): Likewise.
2000-11-17 Hans-Peter Nilsson <>
trailing ';'. Fix formatting.
2000-11-16 Jim Wilson <>
* config/ia64/ia64.h (MASK_INLINE_DIV_LAT, MASK_INLINE_DIV_THR):
Shift masks left by one to avoid conflict.
* config/ia64/ia64.c (ia64_encode_section_info): Disallow decls with
2000-11-16 Nick Clifton <>
* config/arm/arm.c (output_arm_prologue): Note nested functions.
(arm_expand_prologue): For nested functions preserve the
static chain register during stack frame creation.
* config/arm/arm.h (STATIC_CHAIN_REGNUM): Change to 12.
with a stack frame there is a 4 byte gap between the arg
pointer and the hard frame pointer (used to preserve the
static chain register during stack frame creation).
2000-11-16 DJ Delorie <>
* rtl.c (read_rtx): Provide suitable names for unnamed
define_insn and define_insn_and_split patterns, based on file
and line numbers.
2000-11-15 Neil Booth <>
* cpplib.c (start_directive, end_directive): New functions.
(_cpp_handle_directive, run_directive): Use them.
(_cpp_handle_directive): Don't -Wtraditional on indented
null directives.
(_cpp_push_buffer): Don't re-clear was_skipping.
* cpplib.h (struct cpp_reader): New member la_saved.
* cppmacro.c (cpp_get_token): Don't interpret _Pragma in
gcc.dg/cpp/_Pragma1.c: Update.
gcc.dg/cpp/_Pragma2.c: New test.
2000-11-15 Mark Mitchell <>
* toplev.c (wrapup_global_declarations): Don't write out
artificial static variables that aren't needed.
2000-11-15 Bernd Schmidt <>
* ia64.c (struct group): New structure.
(last_group): New static array.
(group_idx): New static variable.
(emit_group_barrier_after, errata_find_address_regs, errata_emit_nops):
New static functions.
(emit_insn_group_barriers): Initialize and keep track of group_idx
and last_group.
Call errata_emit_nops if TARGET_B_STEP or TARGET_A_STEP.
Replace all calls to emit_insn_after that emit a group barrier to use
* ia64.h (MASK_B_STEP): New.
(other MASK_XXX macros): Renumbered.
(TARGET_SWITCHES): Add -mb-step.
2000-11-15 Fred Fish <>
* fixinc/ (fixincludes): Add *-*-beos* to list of
machines for which fixincludes is not needed.
* config/i386/x-beos (STMP_FIXPROTO): Don't run fixproto.
2000-11-15 Jason Merrill <>
* diagnostic.c (finish_abort): New fn.
(fancy_abort, error_recursion): Use it.
* toplev.c (crash_signal): Likewise.
* diagnostic.h: Declare it.
2000-11-13 Andrew Haley <>
* tree.c (build_type_no_quals): New function.
* tree.h (build_type_no_quals): Declare.
* c-common.c (c_get_alias_set): When considering type
compatibility for pointer types, ignore cv-qualifiers anywhere in
a pointer chain.
2000-11-15 Graham Stott <>
* regrename.c (scan_rtx_rtx): Skip to the next chain on
encountering a terminated chain.
2000-11-14 Mark Mitchell <>
* Move check for V3 above check for C++ header-file
* configure: Regenerated.
2000-11-14 DJ Delorie <>
* config/v850/v850.c: Remove obstacks.
Tue Nov 14 21:54:31 2000 Marek Michalkiewicz <> & Denis Chertykov <>
* config/avr/avr.c (avr_case_values_threshold): New.
(avr_override_options): Set it depending on options, make it large
when not optimizing to work around "unable to generate reloads".
* config/avr/avr.h (TARGET_SWITCHES): Add -mno-tablejump option.
(EXTRA_SECTION_FUNCTIONS): Make the .progmem.gcc_sw_table section
executable if not AVR_MEGA. Make sure jump tables are word-aligned.
(JUMP_TABLES_IN_TEXT_SECTION): Define as 0, not 1.
(ASM_OUTPUT_ADDR_VEC_ELT): Optimize, use "rjmp" if not AVR_MEGA.
(avr_case_values_threshold): Declare as extern int.
(CASE_VALUES_THRESHOLD): Define as avr_case_values_threshold.
* config/avr/ (tablejump): Removed.
(*tablejump_rjmp): New for jump tables made from "rjmp" instructions.
(*tablejump_lib, *tablejump_enh, *tablejump): Change to expect the
index in the table, not multiplied by 2.
(casesi): Change to match the above insns. Always enable.
* config/avr/libgcc.S (__tablejump__): Rename to __tablejump2__.
Change to expect the word address of the table, multiply it by 2
here and not in the caller. Change "adiw" to faster "inc".
2000-11-14 Neil Booth <>
* cppexp.c (parse_defined): Call cpp_get_token not
(lex): Similarly.
* cpplex.c (cpp_output_line): Similarly.
* cpplib.c (glue_header_name, do_line, do_ident,
parse_answer, parse_assertion): Similarly.
(_cpp_handle_diretive): Don't save to lookaheads
when processing directives.
* cppmacro.c (parse_arg, expand_arg): Call cpp_get_token not
(funlike_invocation_p): Don't save to lookaheads
when pre-expanding arguments.
(_cpp_get_token): Delete.
(cpp_get_token): Merge contents of _cpp_get_token.
2000-11-14 Jakub Jelinek <>
* builtins.c (expand_builtin_setjmp): Set
(expand_builtin_longjmp): Set current_function_calls_longjmp.
* config/sparc/ (builtin_setjmp_setup): New expand.
(do_builtin_setjmp_setup): New insn.
Tue Nov 14 12:34:56 2000 Richard Kenner <>
* tree.c (get_unwidened): Use host_integerp and tree_low_cst.
(int_fits_type_p): For variable bounds, call force_fit_type.
2000-11-14 Jakub Jelinek <>
* varasm.c (struct deferred_string): New structure.
(const_str_htab): New variable.
(STRHASH): New macro.
(mark_const_str_htab_1, mark_const_str_htab, const_str_htab_hash,
constr_str_htab_eq, const_str_htab_del): New functions.
(output_constant_def): Add DEFER argument, defer string
constants until mark_constant_pool time if requested.
(mark_constant_pool): Walk the insn chain even if const_str_htab is
not empty.
(mark_constants): If a SYMBOL_REF for deferred string is found,
output it and remove from hash table.
(output_addressed_constants): Set DEFER to 0 in call to
* rtl.h (STRING_POOL_ADDRESS_P): Define.
(output_constant_def): Adjust prototype.
* expr.c (expand_expr): Set DEFER to 1 in call to output_constant_def.
2000-11-14 Chandrakala Chavva <>
* optabs.c (expand_complex_ab):: Use overflow-trapping optabs for
signed types if flag_trapv.
2000-11-14 Zack Weinberg <>
* tradcpp.c, tradcif.y: Update FSF mailing address, delete
reference to GPLv1.
2000-11-14 Joseph S. Myers <>
* c-common.h (CTI_C_SIZE_TYPE): Update comment.
2000-11-14 Jakub Jelinek <>
* varasm.c (struct varasm_status): Change x_const_rtx_sym_hash_table
to array of pool_constnat pointers.
(struct pool_constant): Add next_sym and label members.
(struct pool_sym): Remove.
(init_varasm_status): Change pool_sym into pool_constant.
(mark_pool_constant): Mark pc->label string as well.
(mark_pool_sym_hash_table): Remove.
(mark_varasm_status): Remove it from caller as well.
(free_varasm_status): Don't free pool_sym structures.
(force_const_mem): Don't allocate pool_sym structure, instead
fill pool->label and chain it into rtx_sym hash table.
(find_pool_constant, mark_constant_pool): Use pool_constant instead
of pool_sym.
2000-11-14 Jakub Jelinek <>
* reload1.c (emit_input_reload_insns): Honor forcing of constants
2000-11-14 Michael Matz <>
* dominance.c: New file.
* (OBJS): Add dominance.o.
* flow.c (compute_flow_dominators): Remove.
(compute_immediate_dominators): Remove.
(compute_immediate_postdominators): Remove.
* basic-block.h: Remove their prototypes.
(calculate_dominance_info): Add prototype.
* dce.c (eliminate_dead_code): Change calls to above functions.
Don't compute dominators but only immediate dominators.
* flow.c (flow_loops_find): Change callers.
* gcse.c (compute_code_hoist_data): Likewise.
* haifa-sched.c (schedule_insns): Likewise.
* ifcvt.c (if_convert): Likewise.
* ssa.c (convert_to_ssa): Likewise, and only compute immediate
2000-11-14 Richard Henderson <>
* stmt.c (warn_if_unused_value): Don't warn if the expression
has side effects.
* c-typeck.c (c_sizeof): Fold result to c_size_type_node.
(c_sizeof_nowarn, c_alignof, c_alignof_expr): Likewise.
2000-11-13 Franz Sirl <>
* loop.c (basic_induction_var): Revert accidental checkin.
2000-11-13 Hans-Peter Nilsson <>
* c-lex.c (cb_leave_file): Harmonize conditions and order of
statements to those of process_directive for (action == act_pop).
* collect2.c (main): Pass on -B options from COLLECT_GCC_OPTIONS.
* local-alloc.c (equiv_init_movable_p): References to CC0 are not
2000-11-13 Joseph S. Myers <>
* (stmts_and_decls): Deprecate use of label at end of
compound statement.
2000-11-13 Neil Booth <>
* cpplex.c (_cpp_lex_token): CPP_COMMENT and true CPP_EOF
cases return without MI check.
* cpplib.c (do_diagnostic): Take boolean of whether to
print the directive name.
(do_error, do_warning): Update.
(do_pragma_dependency): Use it.
* cpplib.h (VARARGS_FIRST): Delete.
(struct cpp_token): Delete integer.
* cppmacro.c (enter_macro_context): Move disabled check
to _cpp_get_token.
(_cpp_get_token): Simplify into a single loop.
2000-11-13 Richard Earnshaw <>
* Use 'test -f' not '[ -e'.
* configure: Regenerated.
2000-11-13 DJ Delorie <>
* config/mn10300/ (store_movm): Note which registers are
really used or clobbered.
2000-11-13 Joseph S. Myers <>
* (ends_in_label): Remove from %union and %type.
(decls, stmts, lineno_stmt_or_labels, xstmts,
lineno_stmt_or_label, stmt_or_label): Remove.
(stmts_and_decls, lineno_stmt_decl_or_labels_ending_stmt,
lineno_stmt_decl_or_labels, compstmt_contents_nonempty,
lineno_stmt, lineno_label): New.
(compstmt_nostart): Use compstmt_contents_nonempty.
2000-11-13 Joseph S. Myers <>
* c-common.c (boolean_increment): New function.
* c-common.h (enum c_tree_index): Add CTI_C_BOOL_TYPE,
(c_bool_type_node, c_bool_true_node, c_bool_false_node): Define.
(boolean_increment): Declare.
* c-convert.c (convert): Allow for BOOLEAN_TYPE.
* c-decl.c (init_decl_processing): Create boolean nodes.
(finish_struct): Allow for _Bool bitfields.
* (reswords): Add _Bool.
(rid_to_yy): Allow for RID_BOOL.
* c-typeck.c (default_conversion): Make booleans promote to int.
(convert_arguments, build_unary_op, build_modify_expr,
convert_for_assignment): Allow for booleans.
* ginclude/stdbool.h: Make conforming to C99.
2000-11-13 Joseph S. Myers <>
* (c99_block_start, c99_block_end,
c99_block_lineno_labeled_stmt): New.
(simple_if, do_stmt_start): Use c99_block_lineno_labeled_stmt.
(stmt): Split off selection and iteration statements into...
(select_or_iter_stmt): New. Use c99_block_lineno_labeled_stmt.
2000-11-13 Joseph S. Myers <>
* invoke.texi (-Wtrigraphs, -fdump-translation-unit, -save-temps,
-time): Update.
2000-11-13 Richard Earnshaw <>
* (mulsidi3adddi, umulsidi3adddi): Revert previous change.
Rewrite to avoid use of match_dup. Don't try to tie registers that
are not in the same mode.
2000-11-13 Joseph S. Myers <>
* invoke.texi: Update lists of languages and suffixes supported.
2000-11-13 Joseph S. Myers <>
* Take toplevel configure arguments from the
environment to create configargs.h and substitute
gcc_config_arguments, taking account of any existing configargs.h
if reconfiguring.
* configure: Regenerate.
* Include toplevel configure arguments in gccbug.
2000-11-13 Richard Earnshaw <>
* varasm.c (struct constant_descriptor): Put CONTENTS inside a
union to make it well-aligned. Update all uses.
2000-11-13 Joseph S. Myers <>
* (initelt): Give appropriate pedantic warnings,
depending on flag_isoc99, for non-ISO syntax and for C99 syntax
outside C99 mode.
(designator): If pedantic, pedwarn for a designator specifying a
range of elements.
* c-typeck.c (set_init_index, set_init_label): Don't pedwarn for
these cases.
* extend.texi: Document the C99 syntax as the preferred syntax,
and the pre-2.5 syntax as obsolete. Mention use of designator
lists for nested subobjects.
2000-11-13 Joseph S. Myers <>
* diagnostic.c (vbuild_message_string, output_do_printf, vnotice):
* tradcpp.c (v_message, warning, error, fatal, error_with_line):
2000-11-12 Mark Mitchell <>
* function.c (assign_parms): When calling put_var_into_stack, make
sure that there are no hidden pending sequences.
2000-11-12 Kaveh R. Ghazi <>
* builtins.c (expand_builtin): Handle BUILT_IN_INDEX and
BUILT_IN_RINDEX. Add missing checks for BUILT_IN_STRCHR and
* builtins.def (BUILT_IN_INDEX, BUILT_IN_RINDEX): New entries.
* c-common.c (c_common_nodes_and_builtins): Declare index and
rindex when nonansi builtins are allowed.
* extend.texi (index, rindex): Document new builtins.
2000-11-12 Mark Mitchell <>
* Turn on libstdc++ V3 by default.
* configure: Regenerated.
* fixinc/ Use the ordinary fixincludes on Solaris.
2000-11-12 Jakub Jelinek <>
* reload1.c (set_label_offsets): Go inside of PARALLELs.
2000-11-12 Joseph S. Myers <>
* invoke.texi: Clean up option summary.
2000-11-12 Nick Clifton <>
* config/mcore/mcore.c: Fix comment formating, and adjust sequence
of #include headers.
2000-11-12 Marc Espie <>
* Fix filds test.
* configure: Regen.
2000-11-12 Mark Mitchell <>
* jump.c (delete_computation): Don't assume that just because an
instruction sets a register, that register is dead.
2000-11-12 Neil Booth <>
* cppexp.c: Don't worry about pfile->skipping.
* cpplib.c (struct if_stack): Make was_skipping unsigned char.
(cpp_handle_directive): Save pfile->skipping in struct cpp_buffer
for handled directives.
(skip_rest_of_line): Use _cpp_lex_token after popping contexts
and releasing lookaheads.
(do_ifdef, do_ifndef, do_if): Use buffer->was_skipping.
(do_else, do_elif, push_conditional): Update logic.
(do_endif): Set buffer->was_skipping rather than pfile->skipping.
(unwind_if_stack): Inline into cpp_pop_buffer.
(cpp_push_buffer): Clear ifs->was_skipping for cpp_handle_directive.
* cpplex.c (_cpp_lex_token): Clear skipping on EOF. Handle
multiple-include optimisation.
* cpplib.h (struct cpp_buffer): New member was_skipping.
* cppmacro.c (_cpp_get_token): Loop whilst pfile->skipping. This
works because skipping == 0 in directives.
(_cpp_release_lookahead): Renamed from release_lookahead.
(cpp_get_token): No need to check skipping as _cpp_get_token does
this for us. No need to handle MI optimisation.
Sat Nov 11 21:14:02 2000 Mark P Mitchell <>
* fixinc/inclhack.def (sunos_matherr_decl): Bypass matherr
declarations that use `__MATH_EXCEPTION' in their prototypes, too.
* fixinc/fixincl.x: Regenerated.
2000-11-11 Bruce Korb <>
* fixinc/inclhack.def (avoid_bool_type): avoid commenting out #endif
(avoid_wchar_t_type): ditto
* fixinc/fixinc.irix: obsoleted
2000-11-11 Zack Weinberg <>
* Don't add $outputs to all_lang_makefiles. Add
$srcdir/$s/ if it exists.
* configure: Regenerate.
Sat Nov 11 18:41:20 2000 Mark P Mitchell <>
* fixinc/ Use the ordinary fixincludes on IRIX.
2000-11-11 Jason Merrill <>
* function.c (assign_parms): If TREE_ADDRESSABLE is set, try to
give the parm a register and then call put_var_into_stack.
* stmt.c (expand_decl): Likewise.
2000-11-11 Joseph S. Myers <>
* gcc.texi: Adjust wording.
2000-11-11 Mark Mitchell <>
* fixinc/inclhack.def (avoid_wchar_t_type): New fix.
* fininc/fixincl.x: Regenerated.
2000-11-11 Joseph S. Myers <>
* invoke.texi: Correct spelling of -foptimize-register-move.
2000-11-11 Neil Booth <>
* cppexp.c (lex): Don't handle CPP_PLACEMARKER.
* cpplex.c (_cpp_lex_token): Rename skip_newlines to next_bol
* cpplib.c (skip_rest_of_line, check_eol, cpp_push_buffer):
* cpplib.h: Remove CPP_PLACEMARKER.
(struct lexer_state): Rename skip_newlines to next_bol.
* cppmacro.c (stringify_arg): Don't handle CPP_PLACEMARKER.
Simplify prev_white handling as a result.
(paste_all_tokens): Don't worry about CPP_PLACEMARKERs.
(parse_arg): Empty arguments are now empty, not CPP_PLACEMARKERs.
(parse_args): Similarly. Update argument count tests.
(enter_macro_context): Return 2 to indicate an empty macro.
(replace_args): Don't bother pre-expanding an empty argument.
Handle placemarkers and ## extension during pre-expansion.
(cpp_get_token): Handle empty macro expansions. Don't worry
(_cpp_create_definition): Empty macros are now empty.
(cpp_macro_definition): Don't special case empty macros.
* scan-decls.c: Don't bother with CPP_PLACEMARKERs.
* c-lex.c: Similarly.
2000-11-11 Joseph S. Myers <>
* gcc.texi, invoke.texi: Add new section discussing language
standards; link to it where appropriate; refer to ISO C instead of
2000-11-11 Alexandre Oliva <>
* builtins.c (std_expand_builtin_va_start): Take PARM_BOUNDARY
into account.
* config/sh/sh.h (MODES_TIEABLE_P): Don't tie SFmode to other FP
2000-11-10 Joseph S. Myers <>
* gcc.texi, gcov.texi: Update dates and version numbers.
2000-11-10 Zack Weinberg <>
* Remove AC_PROG_LEX and AC_PROG_YACC. Look for
flex and bison, specifically, first in a unified build and
then installed on the system.
* Set BISON to @BISON@, FLEX to @FLEX@. Rename
(collect2.o, gcc.o, prefix.o, toplev.o, alloca.o, intl.o,
cppdefault.o): Remove pointless sed munging of source file
2000-11-10 Bernd Schmidt <>
* reload.c (find_reloads_address_1, case POST_MODIFY): Use RELOAD_OTHER
for address reloads. Push replacements for REG_INC notes.
(regno_clobbered_p): New arg SETS. Examine SETs if it's nonzero. All
callers changed.
* reload1.c (choose_reload_regs): Registers set in the insn can't be
used for RELOAD_OTHER reloads.
2000-11-10 Mark Mitchell <>
* c-dump.h: New file.
2000-11-10 Kaveh R. Ghazi <>
* alpha.c (check_float_value): Use memcpy, not bcopy.
* arm.c (output_move_double): Likewise.
* Likewise.
* m88k.c (legitimize_operand): Likewise.
* m88k.h (ORDER_REGS_FOR_LOCAL_ALLOC): Likewise.
* Likewise.
* mips.c (override_options): Likewise.
* Likewise.
* romp.c (output_fpops): Likewise.
* rs6000.c (rs6000_override_options): Likewise.
* Likewise.
* vax.c (check_float_value): Likewise.
* emit-rtl.c (copy_rtx_if_shared, init_emit_once): Likewise.
* expmed.c (synth_mult): Likewise.
* final.c (add_bb_string): Likewise.
* genattr.c (main): Likewise.
* genattrtab.c (attr_string, simplify_cond, copy_rtx_unchanging):
* jump.c (thread_jumps): Likewise.
* prefix.c (save_string): Likewise.
* real.h (REAL_VALUE_FROM_CONST_DOUBLE): Likewise.
* regclass.c (init_reg_sets, init_reg_sets_1): Likewise.
* reload1.c (reload, eliminate_regs): Likewise.
2000-11-10 Joseph S. Myers <>
* gcc.texi (Service): Update to reflect current practice and
location of the GNU service directory.
2000-11-09 Bernd Schmidt <>
* regrename.c (build_def_use): Mark contents of REG_INC notes as
needing replacement.
* config/ia64/ (extendsfdf2, extendsftf2, extenddftf2): Emit
a no-op move if regs are equal.
* toplev.c (rest_of_compilation): Do the noop moves elimination pass
when calling jump after post-reload splitting.
2000-11-09 Jan van Male <>
* c-tree.texi: Fix typos.
* extend.texi: Likewise
* gcov.texi: Likewise
* rtl.texi: Likewise
* tm.texi: Likewise
2000-11-09 Hans-Peter Nilsson <>
* c-lex.c [! NO_IMPLICIT_EXTERN_C] (cb_enter_file): Check
in_system_header and flags[1] before dereferencing flags[2].
2000-11-09 Matthew Hiller <>
* reload1.c (reload_combine): Fixed calculation of
first_index_reg, last_index_reg.
2000-11-09 Mark Mitchell <>
* c-dump.c (dequeue_and_dump): Dump function bodies.
* (C_AND_OBJC_OBJS): Add c-dump.o.
(c-dump.o): New target.
* c-common.h (flag_dump_translation_unit): New variable.
(C_TYPE_QUALS): New macro.
(strip_array_types): New function.
(DECL_C_BIT_FIELD): New macro.
(dump_info_p): New typedef.
(dump_tree_fn): Likewise.
(lang_dump_tree): New variable.
(dump_node_to_file): New function.
* c-common.c (flag_dump_translation_unit): Define it.
(strip_array_types): New function.
* c-decl.c (c_decode_option): Handle -fdump-translation-unit.
* c-lang.c (finish_file): Call dump_node_to_file if
* c-semantics.c (mark_rtl_for_local_static): Fix typo in comment.
* c-tree.h (DECL_C_BIT_FIELD): Remove declaration.
* c-dump.c: New file.
2000-11-09 Christopher Faylor <>
* config/i386/cygwin.h: Add mingw startfile prefix.
2000-11-09 Richard Henderson <>
* flow.c (invalidate_mems_from_set): Split out from ...
(mark_set_1): ... here.
(try_pre_increment_1): Use it. Use propagate_block_delete_insn
instead of turning insn into a NOTE_INSN_DELETED.
2000-11-10 Joseph S. Myers <>
* extend.texi, invoke.texi: Move documentation of builtin versions
of C library functions to one place and update.
2000-11-09 Richard Henderson <>
* fold-const.c (fold): Compare TYPE_MAIN_VARIANT rather than
the types themselves to discover type equivalence.
2000-11-09 Mike Stump <>
* (distclean): Remove a few extra leftovers.
2000-11-09 Richard Henderson <>
* recog.c (validate_replace_rtx_1): Consider subregs when
replacing a register with a constant inside a sign/zero_extend.
* config/alpha/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
2000-11-09 Geoffrey Keating <>
* c-decl.c (finish_struct): When a structure is completed,
check all its variant types for completeness.
2000-11-09 Neil Booth <>
* cpphash.c: Move cpp_defined here from cpplib.c.
* cpplib.c: Update comments, move cpp_defined to cpphash.c.
* cpplex.c (_cpp_lex_token): Don't leave the lexer at EOL.
* cppmacro.c (cpp_get_token): Update comments, no need now
to catch the CPP_EOF meaning EOL case.
2000-11-08 Geoffrey Keating <>
* config/sparc/sparc.c (sparc_va_arg): When the required alignment
is more than that provided, copy to a temporary.
2000-11-09 Alexandre Oliva <>