X-Git-Url: http://git.sourceforge.jp/view?p=pf3gnuchains%2Fgcc-fork.git;a=blobdiff_plain;f=gcc%2FChangeLog;h=fcaa6fb3350ff8186f3999778fd32e6f8e40a98e;hp=2e1facf7fc81489980edc7dee13e6ee777ae9af2;hb=97f0697bcb479c812b01367c70acf7a84624f732;hpb=4f8fef6a61e97a7660d1b8d886523e3281d00f0f diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 2e1facf7fc8..fcaa6fb3350 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,613 @@ +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 + tests. + +2000-11-29 Neil Booth + + * c-pragma.c (init_pragma): Update for parse_in type change. + +2000-11-29 Laurynas Biveinis + + * configure.in: 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 + optimize. + (expand_builtin_fputs): If STR has side effects, don't optimize. + +2000-11-29 Richard Earnshaw + + * arm.md (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 (law@cygnus.com) + + * 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/arm.md (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 + pic_load_addr. + +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 + a CODE_LABEL. + +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 + + * c-parse.in (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/alpha.md (divmodsi_internal): Renumber operands. + (divmoddi_internal): Likewise. + * config/arm/arm.md (andsi3_compare0_scratch): Likewise. + * config/i960/i960.md (branch patterns): Likewise. + * config/ia64/ia64.md (tbit_and_0): Likewise. + (tbit_and_1, tbit_or_0, tbit_or_1): Likewise. + * config/m68k/m68k.md (zero_extract memory patterns): Likewise. + * config/mips/mips.md (divmodsi4_internal): Likewise. + (divmoddi4_internal): Likewise. + * config/rs6000/rs6000.md (call patterns): Likewise. + * config/sh/sh.md (movsi_y): Likewise. + * config/sparc/sparc.md: 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. + (IS_ABSOLUTE_PATHNAME): New macro. + * gcc.c (find_a_file, process_command, do_spec_1, main): Use it. + +2000-11-28 Jakub Jelinek + + * config/i386/i386.md (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 + changed. + (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 + appropriate. + * 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/sh.md (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. + * arm.md: 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 + * i386.md (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.md (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. + + * arm.md (thumb peephole for merging stack adjustments): Convert to + peephole2. + +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. + (cselib_lookup_mem): Call wrap_constant on the rtx that is passed to + htab_find_slot_with_hash. + (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 + + * configure.in (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 + function. + (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. + + * d30v.md (movcccc_*): Delete now unused patterns. + (64 bit comparison splitters): Rewrite to use COND_EXEC instead of + IF_THEN_ELSE. + (define_cond_exec): Use 'b' to select branch flags. + +2000-11-26 Kaveh R. Ghazi + + * builtins.c (expand_builtin_strncmp, expand_builtin_strncpy): New + functions. + (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, + extended_numbers. + * 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 + + * Makefile.in: Remove MAYBE_CPPLIB and maybe_cpplib. + * c-decl.c: Remove parse_in declaration. + * c-lang.c: Similarly. + * c-lex.c: Similarly. + * c-parse.in: Similarly. + * c-pragma.c: Similarly. + * configure.in: Similarly. + * cp/Make-lang.in: 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. + * c-parse.in: 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. + + * configure.in: Remove configure option. + * config.in: 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 + fixed. + +2000-11-25 Philipp Thomas + * configure.in (ALL_LINGUAS): Remove en_GB and add sv. + * configure: Rebuilt. + +2000-11-25 Jakub Jelinek + + * config/sparc/sparc.md (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 + MOV. + (sparc_check_64): Abort if first argument is not REG. + If it is DImode REG, look at the lower register of the register + pair. + + * 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 + formatting. + +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. + (TARGET_DEFAULT): Set to SH1_BIT. + + * Makefile.in ($(INTL_TARGETS)): Added $(CONFIG_H) for + insn-codes.h. + + * gcc/config/sh/sh.md (sibcalli, sibcalli_pcrel): New insns. + (sibcall_pcrel): New insn_and_split. + (sibcall, sibcall_value, sibcall_epilogue): New expands. + + * config/sh/sh.md (GOTaddr2picreg, symGOT2reg, symGOTOFF2reg, + symPLT_label2reg, call, call_value): Don't set + current_function_uses_pic_offset_table. + * 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 + special case PIC_OFFSET_TABLE_REGNUM. + +2000-11-25 Alexandre Oliva , NIIBE Yutaka + + * config/sh/sh-protos.h (symbol_ref_operand): Declare. + * config/sh/sh.md (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. + * config/sh/sh.h (OUTPUT_ADDR_CONST_EXTRA) [UNSPEC_CALLER]: + 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 + cxx_target_objs. + + * 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 + warning. + (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. + + * configure.in (c_target_objs): Substitute in the makefile. + (cxx_target_objs): Substitute in the makefile. + * configure: Regenerate. + + * Makefile.in (C_TARGET_OBJS): Define and initialise from + c_target_objs. + (CXX_TARGET_OBJS): Define and initialise from + cxx_target_objs. + (C_AND_OBJC_OBJS): Include C_TARGET_OBJS. + + * cp/Make-lang.in (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.