| Wed Dec 30 23:38:55 1998 Jeffrey A Law (law@cygnus.com) |
| |
| * m68k.md (adddi_dilshr32): Allow all operands to be registers too. |
| (adddi_dishl32): Similarly. |
| |
| * cse.c (invalidate_skipped_block): Call invalidate_from_clobbers |
| for each insn in the skipped block. |
| |
| * reload1.c (reload_as_needed): Verify that the insn satisfies its |
| constraints after replacing a register address with an autoincrement |
| address for reload inheritance purposes. |
| |
| * i386.md (doubleword shifts): Avoid namespace pollution. |
| |
| Wed Dec 30 23:00:28 1998 David O'Brien <obrien@NUXI.com> |
| |
| * configure.in (FreeBSD ELF): Needs special crt files. |
| |
| Wed Dec 30 22:50:13 1998 Geoffrey Noer <noer@cygnus.com> |
| |
| * i386/xm-cygwin.h: Change DIR_SEPARATOR to forward slash. |
| |
| 1998-12-30 Andreas Schwab <schwab@issan.cs.uni-dortmund.de> |
| |
| * loop.c (check_dbra_loop): While reversing the loop, if the |
| comparison value has a VOID mode use the mode of the other operand |
| to compute the mask. |
| |
| Wed Dec 30 22:24:00 1998 Michael Meissner <meissner@cygnus.com> |
| |
| * rs6000.md ({save,restore}_stack_function): Take 2 operands to |
| avoid warnings in compiling explow.c. |
| |
| (patch from Ken Raeburn, raeburn@cygnus.com) |
| * rs6000.c (rs6000_stack_info): Force 8-byte alignment of |
| fpmem_offset. Compute total size after that, and then |
| rs6000_fpmem_offset using both values. |
| |
| Mon Dec 28 19:26:32 1998 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at> |
| |
| * gcc.texi (Non-bugs): ``Empty'' loops will be optimized away in |
| the future; indeed that already happens in some cases. |
| |
| Tue Dec 29 11:58:53 1998 Richard Henderson <rth@cygnus.com> |
| |
| * sparc.c (input_operand): Recognize (const (constant_p_rtx)). |
| (arith_operand): Remove constant_p_rtx handling. |
| (const64_operand, const64_high_operand): Likewise. |
| (arith11_operand, arith10_operand, arith_double_operand): Likewise. |
| (arith11_double_operand, arith10_double_operand, small_int): Likewise. |
| (small_int_or_double, uns_small_int, zero_operand): Likewise. |
| * sparc.h (PREDICATE_CODES): Likewise. |
| |
| * rtl.h (CONSTANT_P): Remove CONSTANT_P_RTX. |
| |
| Tue Dec 29 11:32:54 1998 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> |
| |
| * rtl.def (CONSTANT_P_RTX): Clarify commentary. |
| * expr.c (expand_builtin, case BUILT_IN_CONSTANT_P): Rework to |
| consider constant CONSTRUCTOR constant and to defer some cases |
| to cse. |
| * cse.c (fold_rtx, case CONST): Add handling for CONSTANT_P_RTX. |
| * regclass.c (reg_scan_mark_refs, case CONST): Likewise. |
| |
| Tue Dec 29 11:30:10 1998 Richard Henderson <rth@cygnus.com> |
| |
| * expr.c (init_expr_once): Kill can_handle_constant_p recognition. |
| * cse.c (fold_rtx, case 'x'): Remove standalone CONSTANT_P_RTX code. |
| |
| * alpha.c (reg_or_6bit_operand): Remove CONSTANT_P_RTX handling. |
| (reg_or_8bit_operand, cint8_operand, add_operand): Likewise. |
| (sext_add_operand, and_operand, or_operand): Likewise. |
| (reg_or_cint_operand, some_operand, input_operand): Likewise. |
| * alpha.h (PREDICATE_CODES): Likewise. |
| |
| Sat Dec 26 23:26:26 1998 Jeff Law (law@cygnus.com) |
| |
| * version.c: Bump for snapshot. |
| |
| Sat Dec 26 09:17:04 1998 Jeffrey A Law (law@cygnus.com) |
| |
| * gengenrtl.c (gencode): Always use bzero to clear memory instead |
| of dangerous casts and stores. |
| |
| * Makefile.in (compare, gnucompare): Add missing else true clauses. |
| |
| Fri Dec 25 23:00:56 1998 Jeffrey A Law (law@cygnus.com) |
| |
| * alpha.md (builtin_longjmp): Add missing "DONE". |
| |
| Thu Dec 24 10:39:57 1998 Stan Cox <scox@cygnus.com> |
| |
| * gcc.c (execute): Enable -pipe with win32. |
| |
| Wed Dec 23 10:27:44 1998 Nick Clifton <nickc@cygnus.com> |
| |
| * config/arm/t-arm-elf: Add multiplib option for leading |
| underscores. |
| |
| * config/arm/thumb.h (ASM_OUTPUT_LABELREF): Use variable |
| 'user_label_prefix' rather than macro USER_LABEL_PREFIX. |
| |
| (thumb_shiftable_const): Use macro 'BASE_REG_CLASS' rather |
| than variable 'reload_address_base_reg_class'. [Note this |
| change is unrelated to the others in this patch]. |
| |
| * config/arm/unknown-elf.h (USER_LABEL_PREFIX): Default to no |
| leading underscore. |
| |
| Wed Dec 23 09:51:32 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> |
| |
| * alias.c (record_alias_subset): Remove ignored `&'. |
| (init_alias_once): Likewise. |
| |
| * c-lex.c (UNGETC): Cast first argument of comma expression to void. |
| |
| * config/mips/mips.c (mips_asm_file_end): Cast the result of |
| fwrite to `int' when comparing against one. |
| |
| * config/mips/mips.h (CAN_ELIMINATE): Add parens around && within ||. |
| (INITIAL_ELIMINATION_OFFSET): Add braces to avoid ambiguous `else'. |
| |
| * cse.c (rehash_using_reg): Change type of variable `i' to |
| unsigned int. |
| |
| * dwarf2out.c (initial_return_save): Cast -1 to unsigned before |
| assigning it to one. |
| |
| * except.c (duplicate_eh_handlers): Remove unused variable `tmp'. |
| |
| * final.c (final_scan_insn): Likewise for variable `i'. |
| (output_asm_insn): Cast a char to unsigned char when used as an |
| array index. |
| |
| * gcse.c (compute_pre_ppinout): Cast -1 to SBITMAP_ELT_TYPE when |
| assigning it to one. |
| |
| * loop.c (strength_reduce): Remove unused variables `count' and `temp'. |
| |
| * recog.c (preprocess_constraints): Cast a char to unsigned char |
| when used as an array index. |
| |
| * regmove.c (find_matches): Likewise. |
| |
| * reload1.c (calculate_needs): Add default case in switch. |
| (eliminate_regs_in_insn): Initialize variable `offset'. |
| (set_offsets_for_label): Change type of variable `i' to unsigned. |
| (reload_as_needed): Wrap variable `i' in macro check on |
| AUTO_INC_DEC || INSN_CLOBBERS_REGNO_P. |
| |
| * scan-decls.c (scan_decls): Mark parameters `argc' and `argv' |
| with ATTRIBUTE_UNUSED. Cast variable `start_written' to size_t |
| when comparing against one. |
| |
| * stor-layout.c (layout_decl): Cast maximum_field_alignment to |
| unsigned when comparing against one. Likewise for |
| GET_MODE_ALIGNMENT(). |
| (layout_record): Cast record_align to int when comparing against a |
| signed value. |
| (layout_type): Cast TYPE_ALIGN() to int when comparing against a |
| signed value. |
| |
| * tree.c (get_identifier): Cast variable `len' to unsigned when |
| comparing against one. |
| (maybe_get_identifier): Likewise |
| |
| Wed Dec 23 00:10:01 1998 Jeffrey A Law (law@cygnus.com) |
| |
| * toplev.c (rest_of_compilation): Do not set reload_completed. |
| * reload1.c (reload): Set reload_completed before calling |
| cleanup_subreg_operands. |
| |
| Tue Dec 22 23:58:31 1998 Richard Henderson <rth@cygnus.com> |
| |
| * reload1.c (emit_reload_insns): Check `set' not null before use. |
| |
| Tue Dec 22 15:15:45 1998 Nick Clifton <nickc@cygnus.com> |
| |
| * rtlanal.c (multiple_sets): Change type of 'found' from 'rtx' to |
| 'int'. |
| |
| Tue Dec 22 13:55:44 1998 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr> |
| |
| * halfpic.c (half_pic_encode): Delete redundant code. |
| |
| Tue Dec 22 13:02:22 1998 Michael Meissner <meissner@cygnus.com> |
| |
| * toplev.c (main): Delete handling of -dM as a preprocessor |
| option. |
| |
| Mon Dec 21 17:39:38 1998 Michael Meissner <meissner@cygnus.com> |
| |
| * toplev.c (main): Don't emit any warnings when using -dD, -dM, or |
| -dI, which are handled by the preprocessor. |
| |
| Sun Dec 20 16:13:44 1998 John F. Carr <jfc@mit.edu> |
| |
| * configure.in: Handle Digital UNIX 5.x the same as 4.x. |
| * i386/sol2.h: Define LOCAL_LABEL_PREFIX as ".". |
| |
| Sun Dec 20 07:39:52 1998 Jeff Law (law@cygnus.com) |
| |
| * version.c: Bump for snapshot. |
| |
| Sat Dec 19 22:24:22 1998 Jeff Law (law@cygnus.com) |
| |
| * version.c: Bump for snapshot. |
| |
| Sat Dec 19 21:41:32 1998 Jeff Law (law@cygnus.com) |
| |
| * version.c: Bump for snapshot. |
| |
| Sat Dec 19 09:52:27 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> |
| |
| * genattr.c (fatal): Qualify a char* with the `const' keyword. |
| |
| * genattrtab.c (fatal, attr_printf, attr_string, write_attr_set, |
| write_unit_name, write_eligible_delay, expand_units, |
| make_length_attrs, write_attr_case, find_attr, |
| make_internal_attr): Likewise. |
| * gencheck.c (tree_codes): Likewise. |
| * gencodes.c (fatal): Likewise. |
| * genconfig.c (fatal): Likewise. |
| * genemit.c (fatal): Likewise. |
| * genextract.c (fatal, walk_rtx, copystr): Likewise. |
| * genflags.c (fatal): Likewise. |
| * genopinit.c (fatal, optabs, gen_insn): Likewise. |
| * genoutput.c (fatal, error, predicates): Likewise. |
| * genpeep.c (fatal): Likewise. |
| * genrecog.c (fatal, decision, pred_table, add_to_sequence, |
| write_tree_1, write_tree, change_state, copystr, indents): Likewise. |
| |
| Thu Dec 17 18:21:49 1998 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> |
| |
| * configure.in (with-fast-fixincludes): Fix whitespace. |
| * configure: Rebuilt. |
| |
| * fixincludes (c_asm.h): Wrap Digital UNIX V4.0B DEC C specific |
| asm() etc. function declarations in __DECC. |
| |
| Thu Dec 17 13:57:23 1998 Nick Clifton <nickc@cygnus.com> |
| |
| * expr.c (emit_move_insn_1): Only emit a clobber if the target |
| is a pseudo register. |
| |
| Thu Dec 17 13:50:29 1998 Nick Clifton <nickc@cygnus.com> |
| |
| * gcse.c: Include expr.h in order to get the prototype for |
| get_condition() which is used in delete_null_pointer_checks(). |
| |
| Thu Dec 17 15:58:26 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> |
| |
| * hwint.h: New file to consolidate HOST_WIDE_INT (etc) macros. |
| |
| Thu Dec 17 12:31:12 1998 Jim Wilson <wilson@cygnus.com> |
| |
| * Makefile.in (INTERNAL_CFLAGS): Add SCHED_CFLAGS. |
| (ALL_CFLAGS): Delete SCHED_CFLAGS. |
| |
| 1998-12-17 Vladimir N. Makarov <vmakarov@cygnus.com> |
| |
| * config/i60/i960.md (extendqihi2): Fix typo (usage ',' instead of |
| ';'). |
| |
| 1998-12-17 Michael Tiemann <tiemann@axon.cygnus.com> |
| |
| * i960.md (extend*, zero_extend*): Don't generate rtl that looks |
| like (subreg:SI (reg:SI N) 0), because it's wrong, and it hides |
| optimizations from the combiner. |
| |
| Thu Dec 17 08:27:03 1998 J"orn Rennecke <amylaar@cygnus.co.uk> |
| |
| * loop.c (combine_givs_used_by_other): Don't depend on n_times_set. |
| |
| Wed Dec 16 17:30:35 1998 Nick Clifton <nickc@cygnus.com> |
| |
| * toplev.c (main): Disable optimize_size if a specific |
| optimization level is requested. Always set optimization |
| level to 2 if -Os is specified. |
| |
| Wed Dec 16 16:33:04 1998 Dave Brolley <brolley@cygnus.com> |
| |
| * objc/lang-specs.h: Pass -MD, -MMD and -MG to cc1obj if configured with |
| cpplib. |
| * cpplib.c (cpp_start_read): If in_fname is not initialized, try to |
| initialize it using fname. |
| |
| 1998-12-16 Zack Weinberg <zack@rabi.phys.columbia.edu> |
| |
| * cpplib.c (do_include): Treat #include_next in the |
| primary source file as #include plus warning. Treat |
| #include_next in a file included by absolute path as an |
| error. fp == CPP_NULL_BUFFER is a fatal inconsistency. |
| |
| Wed Dec 16 12:28:54 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> |
| |
| * cccp.c: Don't define MIN/MAX anymore. |
| * cpplib.c: Likewise. |
| * machmode.h: Likewise. |
| * system.h: Provide definitions for MIN/MAX. |
| |
| Tue Dec 15 23:47:42 1998 Zack Weinberg <zack@rabi.phys.columbia.edu> |
| |
| * fix-header.c: Don't define xstrdup here. |
| |
| Wed Dec 16 05:11:04 1998 J"orn Rennecke <amylaar@cygnus.co.uk> |
| |
| * loop.c (consec_sets_giv): New argument last_consec_insn. |
| (strength_reduce): Provide / use it. |
| |
| Wed Dec 16 17:24:07 1998 Michael Hayes <m.hayes@elec.canterbury.ac.nz> |
| |
| * loop.h (loop_info): New field 'vtop'. |
| * loop.c (check_dbra_loop): Use loop_info->vtop rather than |
| scanning loop for vtop. |
| * unroll.c (subtract_reg_term, find_common_reg_term): New functions. |
| (loop_iterations): Use them to determine if loop has a constant |
| number of iterations. Set loop_info->vtop. Don't subtract |
| common reg term from initial_value and final_value if have a |
| do-while loop. |
| |
| Tue Dec 15 13:49:55 1998 Jeffrey A Law (law@cygnus.com) |
| |
| * mn10200.md (addsi3 expander): Use "nonmemory_operand" for operand 2. |
| |
| * mn10300.md (bset, bclr): Operand 0 is a read/write operand. |
| |
| * mn10200.md (abssf2, negsf2): New expanders. |
| |
| * mn10300.md (absdf2, abssf2, negdf2, negsf2): New expanders. |
| |
| Tue Dec 15 11:55:30 1998 Nick Clifton <nickc@cygnus.com> |
| |
| * integrate.c (copy_rtx_and_substitute): If a SUBREG is |
| replaced by a CONCAT whose components do not have the same |
| mode as the original SUBREG, use a new SUBREG to restore the |
| mode. |
| |
| * emit-rtl.c (subreg_realpart_p): Cope with subregs containing |
| multiword complex values. |
| |
| 1998-12-15 Zack Weinberg <zack@rabi.phys.columbia.edu> |
| |
| * cppalloc.c: Add xstrdup here. |
| * cpplib.h: Remove savestring prototype. |
| * cpplib.c: Remove savestring function. s/savestring/xstrdup/ |
| throughout. |
| * cppfiles.c: s/savestring/xstrdup/ throughout. |
| |
| 1998-12-15 Zack Weinberg <zack@rabi.phys.columbia.edu> |
| |
| * cpplib.c: Make all directive handlers read their own |
| arguments. |
| (struct directive): Remove last two arguments from FUNC |
| member prototype. Remove `command_reads_line' member |
| entirely. |
| (directive_table): Remove initializations of |
| command_reads_line flag. Pretty-print. |
| (eval_if_expression, do_define, do_line, do_include, |
| do_undef, do_error, do_pragma, do_ident, do_if, do_xifdef, |
| do_else, do_elif, do_sccs, do_assert, do_unassert, |
| do_warning): Take only two args. |
| |
| (cpp_define): Call do_define with two args and the text to |
| define stuffed into a buffer. |
| (make_assertion): Call do_assert with two args. |
| (handle_directive): Call do_line with two args. Call |
| kt->func with two args. Remove command_reads_line |
| processing. |
| (do_define, do_undef, do_error, do_warning, do_pragma, |
| do_sccs): Read the rest of the line here. |
| (do_ident): Gobble rest of line, as cccp does. |
| (cpp_undef): New function. |
| (cpp_start_read): Call cpp_undef instead of do_undef. |
| |
| 1998-12-15 Zack Weinberg <zack@rabi.phys.columbia.edu> |
| |
| * cpphash.h (union hash_value): Remove `keydef' member, add a |
| `struct hashnode *aschain' member for #assert. |
| |
| * cpplib.c (struct tokenlist_list, struct |
| assertion_hashnode): Delete structure definitions. |
| (assertion_install, assertion_lookup, delete_assertion, |
| check_assertion, compare_token_lists, reverse_token_list, |
| read_token_list, free_token_list): Delete functions. |
| (parse_assertion): New function. |
| (cpp_cleanup): Don't destroy the assertion_hashtable. |
| |
| (do_assert): Gut and rewrite. #assert foo (bar) places |
| entries for `#foo' and `#foo(bar)' in the macro hash table, |
| type T_ASSERT. The value union's `aschain' member is used |
| to chain all answers for a given predicate together. |
| (do_unassert): Also rewritten. Take an un-asserted |
| answer off the chain from its predicate and call |
| delete_macro on the hashnode, or walk a predicate chain |
| calling delete_macro on all the entries. |
| (cpp_read_check_assertion): Simply call parse_assertion to |
| get the canonical assertion name, and look that up in the |
| hash table. |
| |
| * cpplib.h (ASSERTION_HASHNODE,ASSERTION_HASHSIZE,assertion_hashtab): |
| Removed. |
| |
| * cpphash.c (install): Use bcopy instead of an explicit loop |
| to copy the macro name. |
| |
| * cppexp.c (cpp_lex): Convert the result of |
| cpp_read_check_assertion to a `struct operation' directly; |
| don't go through parse_number. |
| |
| Tue Dec 15 18:27:39 1998 J"orn Rennecke <amylaar@cygnus.co.uk> |
| |
| * loop.h (struct induction): Delete times_used member. |
| * loop.c (n_times_set): Rename to set_in_loop. Changed all users. |
| (n_times_used): Rename to n_times_set. Changed all users. |
| (scan_loop): Free reg_single_usage before strength reduction. |
| (record_giv, combine_givs): Remove handling of times_used member. |
| (combine_givs_used_once): Rename to: |
| (combine_givs_used_by_other) . Changed all callers. |
| |
| Tue Dec 15 01:45:26 1998 Jason Merrill <jason@yorick.cygnus.com> |
| |
| * dwarf2out.c (gen_struct_or_union_type_die): Check AGGREGATE_TYPE_P |
| instead of TREE_CODE_CLASS == 't'. |
| (gen_type_die): Likewise. |
| (scope_die_for): Ignore FUNCTION_TYPE "scopes". |
| |
| Mon Dec 14 16:23:27 1998 Jim Wilson <wilson@cygnus.com> |
| |
| * real.c (endian): Disable last change unless |
| HOST_BITS_PER_WIDE_INT is greater than 32. |
| |
| Mon Dec 14 17:13:36 1998 Andrew MacLeod <amacleod@cygnus.com> |
| |
| * output.h (force_data_section): New prototype. |
| * varasm.c (force_data_section): New function to force the |
| data section, regardless of what in_section thinks. |
| * dwarf2out.c (output_call_frame_info): Call force_data_section |
| since varasm may not realize we've changes sections. |
| |
| Mon Dec 14 14:09:34 1998 Nick Clifton <nickc@cygnus.com> |
| |
| * reload1.c (reload): Delete REG_RETVAL and REG_LIBCALL notes |
| after completing reload. |
| |
| * rtl.texi: Document that REG_RETVAL and REG_LIBCALL are |
| deleted after reload. |
| |
| Mon Dec 14 01:39:28 1998 Jeffrey A Law (law@cygnus.com) |
| |
| * rtl.h (multiple_sets): Fix prototype. |
| * rtlanal.c (multiple_sets): Fix return type. |
| |
| Sun Dec 13 12:43:58 1998 Jeff Law (law@cygnus.com) |
| |
| * version.c: Bump for snapshot. |
| |
| Sun Dec 13 01:05:22 1998 Jeff Law (law@cygnus.com) |
| |
| * version.c: Bump for snapshot. |
| |
| 1998-12-13 Manfred Hollstein <manfred@s-direktnet.de> |
| |
| * protoize.c (fputs): Wrap extern declaration in #ifndef fputs. |
| |
| Sun Dec 13 00:24:14 1998 J"orn Rennecke <amylaar@cygnus.co.uk> |
| |
| * rtl.h (recompute_reg_usage): Add second argument. |
| * flow.c (recompute_reg_usage): Likewise. |
| * toplev.c (rest_of_compilation): Supply second argument to |
| recompute_reg_usage. |
| |
| * reload1.c (compute_use_by_pseudos): Allow reg_renumber[regno] < 0 |
| after reload. |
| |
| Sat Dec 12 23:39:10 1998 Jeffrey A Law (law@cygnus.com) |
| |
| * m68k/t-m68kelf (MULTILIB_OPTIONS): Add mcpu32. |
| (MULTILIB_MATCHES): -m68332 now uses mcpu32 libraries, not m68000. |
| (MULTILIB_EXCEPTIONS): Don't build 68881 libraries for m68000, |
| mcpu32 or m5200. |
| |
| * i386/next.h (ASM_OUTPUT_ALIGN): Use 0x90 for fill character. |
| |
| * rtlanal.c (multiple_sets): New function. |
| * rtl.h (multiple_sets): Declare it. |
| * local-alloc.c (wipe_dead_reg): Use it. |
| * global.c (global_conflicts): Likewise. |
| |
| Sat Dec 12 22:13:02 1998 Mark Mitchell <mark@markmitchell.com> |
| |
| * global.c (record_conflicts): Don't use an array of shorts to |
| store an array of ints. |
| (global_conflicts): Likewise. |
| |
| Sat Dec 12 16:49:24 1998 Richard Henderson <rth@cygnus.com> |
| |
| * alpha.c (alpha_expand_block_move): mode_for_size expects |
| bits, not bytes. Infer extra alignment from addressof. |
| |
| 1998-12-11 Michael Meissner <meissner@cygnus.com> |
| |
| * rs6000/sysv4.h (ASM_OUTPUT_ALIGNED_LOCAL): Put small data in the |
| .sbss section, not .sdata. |
| |
| 1998-12-11 Manfred Hollstein <manfred@s-direktnet.de> |
| |
| * cccp.c: Do not #include <sys/stat.h> here; this is already done |
| by "system.h". |
| * collect2.c: Likewise. |
| * cpplib.h: Likewise. |
| * gcc.c: Likewise. |
| * gcov.c: Likewise. |
| * getpwd.c: Likewise. |
| * protoize.c: Likewise. |
| * toplev.c: Likewise. |
| |
| * cpplib.h (HOST_WIDE_INT): Get definition from "machmode.h" |
| and don't try to define it here. |
| * Makefile.in (cppmain.o): Depend on machmode.h. |
| (cpplib.o): Likewise. |
| (cpperror.o): Likewise. |
| (cppexp.o): Likewise. |
| (cppfiles.o): Likewise. |
| (cpphash.o): Likewise. |
| (cppalloc.o): Likewise. |
| (fix-header.o): Likewise. |
| (scan-decls.o): Likewise. |
| |
| Fri Dec 11 11:02:49 1998 Stan Cox <scox@cygnus.com> |
| |
| * sh.c (print_operand): Lookup interrupt_handler attribute instead |
| of relying on static variable. |
| * (calc_live_regs): Likewise. |
| * (sh_pragma_insert_attributes): Create interrupt_handler |
| attribute if a pragma was specified. |
| * (sh_valid_machine_decl_attribute): Don't set static flag. |
| * sh.h (PRAGMA_INSERT_ATTRIBUTES): New. |
| |
| Fri Dec 11 12:56:07 1998 J"orn Rennecke <amylaar@cygnus.co.uk> |
| |
| * reload1.c (reload_combine): Use BASIC_BLOCK_LIVE_AT_START |
| to determine if a register is live at a jump destination. |
| Everything is dead at a BARRIER. |
| |
| Thu Dec 10 16:02:06 1998 Jim Wilson <wilson@cygnus.com> |
| |
| * cse.c (simplify_unary_operation): Sign-extend constants when |
| they have the most significant bit set for the target. |
| * real.c (endian): Sign-extend 32 bit output values on a 64 bit |
| host. |
| * m32r/m32r.c (m32r_expand_prologue): Store pretend_size in |
| HOST_WIDE_INT temporary before negating it. |
| * m32r/m32r.md (movsi_insn+1): Use ~0xffff instead of 0xffff0000. |
| |
| Thu Dec 10 15:05:59 1998 Dave Brolley <brolley@cygnus.com> |
| |
| * objc/objc-act.c (lang_init_options): Enclose cpplib related code in |
| #if USE_CPPLIB. |
| |
| Thu Dec 10 13:39:46 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> |
| |
| * collect2.h: New header file for prototypes. |
| |
| * Makefile.in (collect2.o, tlink.o): Depend on collect2.h. |
| |
| * collect2.c: Include collect2.h. |
| * tlink.c: Likewise. |
| |
| Wed Dec 9 23:55:11 1998 Jeffrey A Law (law@cygnus.com) |
| |
| * flow.c: Update some comments. |
| |
| Wed Dec 9 15:29:26 1998 Dave Brolley <brolley@cygnus.com> |
| |
| * objc/objc-act.c (cpp_initialized): Removed. |
| (lang_init_options): Initialize cpplib. |
| (lang_decode_option): Move initialization of cpplib to |
| lang_init_options. |
| * c-lang.c (parse_options,parse_in): Added. |
| (lang_init_options): Initialized cpplib here. |
| * c-decl.c (parse_options,cpp_initialized): Removed. |
| (c_decode_option): Move initialization of cpplib to |
| lang_init_options. |
| |
| Wed Dec 9 19:36:57 1998 J"orn Rennecke <amylaar@cygnus.co.uk> |
| |
| * reload1.c (reload_combine, reload_combine_note_store): |
| Make STORE_RUID always valid. |
| (reload_combine): Check if BASE is clobbered too early. |
| |
| Wed Dec 9 09:53:58 1998 Nick Clifton <nickc@cygnus.com> |
| |
| * reload.c (find_reloads): Display the insn that cannot be |
| reloaded. |
| |
| Wed Dec 9 12:15:26 1998 Dave Brolley <brolley@cygnus.com> |
| |
| * cccp.c (create_definition): Fix end of buffer logic. |
| |
| Wed Dec 9 10:15:45 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> |
| |
| * except.c (duplicate_eh_handlers, rethrow_symbol_map): Function |
| pointer parameters changed to use the PARAMS() macro. |
| |
| Wed Dec 9 09:12:40 1998 Andrew MacLeod <amacleod@cygnus.com> |
| |
| * except.h (struct handler_info): Add handler_number field. |
| * except.c (gen_exception_label): EH labels no longer need to be |
| on the permanent obstack. |
| (get_new_handler): Set the label number field. |
| (output_exception_table_entry): Regenerate handler label reference |
| from the label number field. |
| (init_eh): Remove a blank line. |
| * integrate.c (get_label_from_map): Labels no longer need to be |
| on the permanent obstack. |
| |
| Tue Dec 8 22:04:33 1998 Jim Wilson <wilson@cygnus.com> |
| |
| * i960/i960.h (CONST_COSTS, case CONST_INT): Accept power2_operand |
| only when OUTER_CODE is SET. |
| |
| Tue Dec 8 22:47:15 1998 J"orn Rennecke <amylaar@cygnus.co.uk> |
| |
| * loop.c (strength_reduce): If scan_start points to the loop exit |
| test, be wary of subversive use of gotos inside expression statements. |
| Don't set maybe_multiple for a backward jump that does not |
| include the label under consideration into its range. |
| * unroll.c (biv_total_increment): Make use of maybe_multiple field. |
| |
| Tue Dec 8 22:33:18 1998 J"orn Rennecke <amylaar@cygnus.co.uk> |
| |
| * explow.c (plus_constant_wide): Don't immediately return with |
| result of recursive call. |
| |
| Tue Dec 8 15:32:56 1998 Andrew MacLeod <amacleod@cygnus.com> |
| |
| * eh-common.h (struct eh_context): Add table_index for rethrows. |
| |
| * rtl.h (enum reg_note): Add REG_EH_REGION and REG_EH_RETHROW reg notes. |
| (SYMBOL_REF_NEED_ADJUST): New flag indicating symbol needs to be |
| processed when inlined or unrolled (ie duplicated in some way). |
| |
| * rtl.c (reg_note_name): Add strings for new reg_note enums. |
| |
| * expr.h (rethrow_libfunc): New library decl. |
| |
| * optabs.c (rethrow_libfunc): Initialize. |
| |
| * except.h (struct eh_entry): Add new field 'rethrow_label'. |
| (new_eh_region_entry): No longer exported from except.c. |
| (duplicate_handlers): Renamed to duplicate_eh_handlers and |
| different prototype. |
| (rethrow_symbol_map, rethrow_used): New exported functions. |
| (eh_region_from_symbol): New exported function. |
| |
| * except.c (create_rethrow_ref): New function to create a single |
| SYMBOL_REF for a rethrow region. |
| (push_eh_entry): Initialize a rethrow ref. |
| (func_eh_entry): Add a rethrow_label field. |
| (new_eh_region_entry): Make static, and initialize the rethrow entry. |
| (duplicate_eh_handlers): Create a new region, and remap labels/symbols. |
| (eh_region_from_symbol): Find an EH region based on its rethrow symbol. |
| (rethrow_symbol_map): Given a label map, maps a rethrow symbol for |
| a region into an appropriate new symbol. |
| (rethrow_used): Indicate whether a rethrow symbol has been referenced. |
| (expand_eh_region_end): Don't issue jump around code for new-exceptions. |
| (end_catch_handler): Emit a barrier for new-exceptions since |
| control can never drop through the end of a catch block. |
| (expand_end_all_catch): new-exceptions never fall through a catch |
| block. |
| (expand_rethrow): Use __rethrow routine for new exceptions. |
| (output_exception_table_entry): Generate rethrow labels, if needed. |
| (output_exception_table): Generate start and end rethrow labels. |
| (init_eh): Create rethrow symbols for beginning and end of table. |
| (scan_region): Don't eliminate EH regions which are the targets of |
| rethrows. |
| |
| * flow.c (make_edges): Add different edges for rethrow calls, |
| identified by having the REG_EH_RETHROW reg label. |
| (delete_unreachable_blocks): Don't delete regions markers which are |
| the target of a rethrow. |
| |
| * integrate.c (save_for_inline_eh_labelmap): New callback routine to |
| allow save_for_inline_copying to call duplicate_eh_handlers. |
| (save_for_inline_copying): Call duplicate_eh_handlers instead of |
| exposing internal details of exception regions. |
| (copy_for_inline): Check if SYMBOL_REFs need adjustment. |
| (expand_inline_function_eh_labelmap): New callback routine to |
| allow expand_inline_function to call duplicate_eh_handlers. |
| (expand_inline_function): Call duplicate_eh_handlers instead of |
| exposing internal details of exception regions. |
| (copy_rtx_and_substitute): Adjust SYMBOL_REFS if SYMBOL_REF_NEED_ADJUST |
| flag is set. |
| |
| * libgcc2.c (find_exception_handler): Generalize to enable it to |
| pick up processing where it left off last time for a rethrow. |
| (__unwinding_cleanup): New function. debug hook which is called before |
| unwinding when __throw finds there is nothing but cleanups left. |
| (throw_helper): Common parts of __throw extracted out for reuse. |
| (__throw): Common parts moved to throw_helper. |
| (__rethrow): New function for performing rethrows. |
| |
| Tue Dec 8 13:11:04 1998 Jeffrey A Law (law@cygnus.com) |
| |
| * reload1.c (current_function_decl): Tweak declaration. |
| |
| Tue Dec 8 10:23:52 1998 Richard Henderson <rth@cygnus.com> |
| |
| * c-decl.c (flag_isoc9x): Default off. |
| (c_decode_option): Kill -std=gnu, add -std=gnu89 and -std=gnu9x. |
| * cccp.c (print_help, main): Likewise. |
| * gcc.c (default_compilers): Update for -std=gnu*. |
| |
| Tue Dec 8 01:14:46 1998 Jeffrey A Law (law@cygnus.com) |
| |
| * Makefile.in (DEMANGLE_H): Change location to shared demangle.h. |
| * demangle.h: Deleted. |
| |
| * reload1.c (current_function_decl): Declare. |
| |
| Tue Dec 8 11:58:51 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> |
| |
| * cpplib.c (convert_string): Use `0x00ff', not `0x00ffU'. |
| |
| Tue Dec 8 09:28:36 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> |
| |
| * dbxout.c: If USG is defined use gstab.h, even if HAVE_STAB_H is set. |
| |
| 1998-12-08 Ulrich Drepper <drepper@cygnus.com> |
| |
| * configure.in: Test for availability of putc_unlocked, fputc_unlocked, |
| and fputs_unlocked. |
| * configure: Rebuilt. |
| * system.h: If the *_unlocked functions are available use them |
| instead of the locked counterparts by defining macros. |
| * config.in: Regenerated. |
| |
| Tue Dec 8 00:34:05 1998 Mike Stump <mrs@wrs.com> |
| |
| * i386/bsd.h (ASM_FILE_START): Don't use dump_base_name, it is |
| wrong and should only be used for dump related things, not |
| debugging information, instead main_input_filename should be used. |
| Also, reuse output_file_directive if possible. |
| * i386/aix386ng.h (ASM_FILE_START): Likewise. |
| * i386/isc.h (ASM_FILE_START): Likewise. |
| * i386/win-nt.h (ASM_FILE_START): Likewise. |
| * i386/sun386.h (ASM_FILE_START): Likewise. |
| |
| Mon Dec 7 23:56:28 1998 Robert Lipe <robertl@dgii.com> |
| |
| * configure.in (mips*-*-linux*): Handle big and little endian |
| systems. |
| * configure: Rebuilt. |
| |
| Mon Dec 7 23:14:51 1998 Mike Stump <mrs@wrs.com> |
| |
| * emit-rtl.c: Fix typo. |
| |
| Mon Dec 7 23:07:38 1998 Nathan Sidwell <nathan@acm.org> |
| |
| * reload1.c (eliminate_regs): Don't do anything, if we're not |
| generating code. |
| |
| Mon Dec 7 15:27:09 1998 DJ Delorie <dj@cygnus.com> |
| |
| * mips/mips.h (ENCODE_SECTION_INFO): Handle TARGET_EMBEDDED_DATA. |
| Add comment. |
| * mips/mips.c (mips_select_section): Add comment. |
| |
| Mon Dec 7 17:55:06 1998 Mike Stump <mrs@wrs.com> |
| |
| * cccp.c (ignore_escape_flag): Add support for \ as `natural' |
| characters in file names in #line to be consistent with #include |
| handling. We support escape processing in the # 1 "..." version of |
| the command. See also support in cp/lex.c. |
| (handle_directive): Likewise. |
| (do_line): Likewise. |
| |
| 1998-12-07 Zack Weinberg <zack@rabi.phys.columbia.edu> |
| |
| * cpplib.c (initialize_char_syntax): Use ISALPHA and ISALNUM |
| so it'll work on non-ASCII platforms. Always consider $ an |
| identifier character. Take no arguments. |
| (cpp_reader_init): Call initialize_char_syntax with no |
| arguments. |
| (cpp_start_read): Don't call initialize_char_syntax again. |
| Clear is_idchar['$'] and is_idstart['$'] if not |
| opts->dollars_in_ident. |
| |
| * cpplib.h (struct cpp_reader): Replace void *data element by |
| cpp_options *opts. Rearrange elements to make gdb printout |
| less annoying (put buffer stack at end). |
| (CPP_OPTIONS): Get rid of now-unnecessary cast. |
| |
| * cppmain.c: s/data/opts/ when initializing cpp_reader |
| structure. |
| * c-decl.c: Likewise. |
| * objc/objc-act.c: Likewise. |
| * fix-header.c: Likewise. |
| |
| 1998-12-07 Zack Weinberg <zack@rabi.phys.columbia.edu> |
| |
| * cpplib.h (struct cpp_buffer): Replace dir and dlen members |
| with a struct file_name_list pointer. |
| (struct cpp_reader): Add pointer to chain of `actual |
| directory' include searchpath entries. |
| (struct file_name_list): Add *alloc pointer for the sake of |
| the actual-directory chain. |
| |
| Move definition of HOST_WIDE_INT here. |
| (cpp_parse_escape): Change prototype to match changes in |
| cppexp.c. |
| |
| * cppfiles.c (actual_directory): New function. |
| (finclude): Use it to initialize the buffer's actual_dir |
| entry. |
| (find_include_file): We don't need to fix up max_include_len |
| here. |
| |
| * cpplib.c (do_include): Don't allocate a file_name_list on |
| the fly for current directory "" includes, use the one that's |
| been preallocated in pfile->buffer->actual_dir. Hoist out |
| duplicate code from the search_start selection logic. |
| (cpp_reader_init): Initialize pfile->actual_dirs. |
| |
| Remove definition of HOST_WIDE_INT. Change calls |
| to cpp_parse_escape to match changes in cppexp.c (note |
| hardcoded MASK, which is safe since this is the source |
| character set). |
| |
| * cppexp.c: Bring over changes to cpp_parse_escape from cccp.c |
| to handle wide character constants in #if directives. The |
| function now returns a HOST_WIDE_INT, and takes a third |
| argument which is a binary mask for all legal values (0x00ff |
| for 8-bit `char', 0xffff for 16-bit `wchar_t', etc.) Define |
| MAX_CHAR_TYPE_MASK and MAX_WCHAR_TYPE_MASK. Change callers of |
| cpp_parse_escape to match. [Fixes c-torture/execute/widechar-1.c] |
| |
| Mon Dec 7 15:38:25 1998 Dave Brolley <brolley@cygnus.com> |
| |
| * gcc.c (default_compilers): Fix typo in USE_CPPLIB spec for cc1. |
| |
| Mon Dec 7 15:38:25 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> |
| |
| * c-aux-info.c (concat): Wrap function definition in !USE_CPPLIB. |
| * cppalloc.c: Move function `xcalloc' from cpplib.c to here. |
| * cpplib.c: Move function `xcalloc' from here to cppalloc.c. |
| |
| Mon Dec 7 11:30:49 1998 Nick Clifton <nickc@cygnus.com> |
| |
| * final.c (output_asm_name): Use tabs to separate comments from |
| assembly text. |
| |
| Include instruction lengths (if defined) in output. |
| |
| Mon Dec 7 10:53:38 1998 Michael Hayes <m.hayes@elec.canterbury.ac.nz> |
| |
| * loop.c (check_dbra_loop): Fix initial_value and initial_equiv_value |
| in the loop_info structure. |
| |
| Mon Dec 7 11:04:40 1998 Catherine Moore <clm@cygnus.com> |
| |
| * configure.in (arm*-*-ecos-elf): New target. |
| * configure: Regenerated. |
| * config/arm/elf.h (ASM_WEAKEN_LABEL): Define. |
| * config/arm/ecos-elf.h: New file. |
| * config/arm/unknown-elf.h (TARGET_VERSION): Check |
| for redefinition. |
| |
| Mon Dec 7 16:15:51 1998 J"orn Rennecke <amylaar@cygnus.co.uk> |
| |
| * sh.c (output_far_jump): Emit braf only for TARGET_SH2. |
| |
| Sun Dec 6 04:19:45 1998 Jeff Law (law@cygnus.com) |
| |
| * version.c: Bump for snapshot. |
| |
| Sun Dec 6 05:16:16 1998 Michael Hayes <m.hayes@elec.canterbury.ac.nz> |
| |
| * loop.c (check_dbra_loop): New argument loop_info. Update fields |
| as needed. |
| |
| Sun Dec 6 03:40:13 1998 Jeff Law (law@cygnus.com) |
| |
| * version.c: Bump for snapshot. |
| |
| Sun Dec 6 07:49:29 1998 Alexandre Oliva <oliva@dcc.unicamp.br> |
| |
| * gcc.texi (Bug Reporting): 40Kb is a soft limit, larger |
| compressed reports are ok and preferred over URLs. |
| |
| Sun Dec 6 07:45:33 1998 Alexandre Oliva <oliva@dcc.unicamp.br> |
| |
| * invoke.texi (Warning Options): Soften the tone of -pedantic. |
| |
| Sun Dec 6 00:20:44 1998 H.J. Lu (hjl@gnu.org) |
| |
| * print-rtl.c (print_rtx): Add prototype. |
| |
| * unroll.c (iteration_info): Make it static. |
| |
| Sun Dec 6 01:19:46 1998 Richard Henderson <rth@cygnus.com> |
| |
| * alias.c (memrefs_conflict_p): A second ANDed address |
| disables the aligned address optimization. |
| |
| Sat Dec 5 18:48:25 1998 Richard Henderson <rth@cygnus.com> |
| |
| * alpha.c (alpha_emit_set_const_1): Fix parenthesis error |
| in -c << n case. |
| |
| Sat Dec 5 15:14:52 1998 Jason Merrill <jason@yorick.cygnus.com> |
| |
| * i960.h (BOOL_TYPE_SIZE): Define. |
| |
| Sun Dec 6 00:28:16 1998 Michael Hayes <m.hayes@elec.canterbury.ac.nz> |
| |
| * config/c4x/c4x.c (valid_parallel_load_store): Flog functionality |
| from old valid_parallel_operands_4. |
| (valid_parallel_operands_4): Check that operands for 4 operand |
| parallel insns are valid, excluding load/store insns. |
| * config/c4x/c4x.h (valid_parallel_load_store): Add prototype. |
| * config/c4x/c4x.md (*movqf_parallel, *movqi_parallel): Use |
| valid_parallel_load_store instead of valid_parallel_operands_4. |
| (*absqf2_movqf_clobber, *floatqiqf2_movqf_clobber, |
| *negqf2_movqf_clobber, *absqi2_movqi_clobber, |
| *fixqfqi2_movqi_clobber, *negqi2_movqi_clobber, |
| *notqi_movqi_clobber): Use valid_parallel_operands_4. |
| (*subqf3_movqf_clobber, *ashlqi3_movqi_clobber, |
| *ashrqi3_movqi_clobber, *lshrqi3_movqi_clobber, |
| *subqi3_movqi_clobber): Use valid_parallel_operands_5. |
| |
| Sat Dec 5 23:52:01 1998 Michael Hayes <m.hayes@elec.canterbury.ac.nz> |
| |
| * config/c4x/c4x.c (iteration_info): Delete extern. |
| |
| Fri Dec 4 20:15:57 1998 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de> |
| |
| * tm.texi (SMALL_REGISTER_CLASSES): Make description match reality. |
| |
| * final.c (cleanup_subreg_operands): Delete some unused code. |
| |
| * recog.h (MAX_RECOG_ALTERNATIVES): New macro. |
| (struct insn_alternative): New structure definition. |
| (recog_op_alt): Declare variable. |
| (preprocess_constraints): Declare function. |
| * recog.c (recog_op_alt): New variable. |
| (extract_insn): Verify number of alternatives is in range. |
| (preprocess_constraints): New function. |
| * reg-stack.c: Include recog.h. |
| (constrain_asm_operands): Delete. |
| (get_asm_operand_lengths): Delete. |
| (get_asm_operand_n_inputs): New function. |
| (record_asm_reg_life): Delete OPERANDS, CONSTRAINTS, N_INPUTS and |
| N_OUTPUTS args. All callers changed. |
| Compute number of inputs and outputs here by calling |
| get_asm_operand_n_inputs. |
| Instead of constrain_asm_operands, call extract_insn, |
| constrain_operands and preprocess_constraints. Use information |
| computed by these functions throughout. |
| (record_reg_life): Delete code that is unused due to changes in |
| record_asm_reg_life. |
| (subst_asm_stack_regs): Delete OPERANDS, OPERAND_LOC, CONSTRAINTS, |
| N_INPUTS and N_OUTPUTS args. All callers changed. |
| Similar changes as in record_asm_reg_life. |
| (subst_stack_regs): Move n_operands declaration into the if statement |
| where it's used. |
| Delete code that is unused due to changes in subst_asm_stack_regs. |
| * stmt.c (expand_asm_operands): Verify number of alternatives is in |
| range. |
| * Makefile.in (reg-stack.o): Depend on recog.h. |
| |
| Fri Dec 4 02:23:24 1998 Jeffrey A Law (law@cygnus.com) |
| |
| * except.c (set_exception_version_code): Argument is an "int". |
| |
| Fri Dec 4 01:29:28 1998 Jeffrey A Law (law@cygnus.com) |
| |
| * configure.in (hppa2*-*-*): Handle like hppa1.1-*-* for now. |
| * configure: Rebuilt. |
| |
| Fri Dec 4 01:29:28 1998 Robert Lipe <robertl@dgii.com> |
| |
| * configure.in (mipsel-*-linux*): New target. |
| * mips/linux.h: New file, based on other Linux targets. |
| |
| Thu Dec 3 11:19:50 1998 Mike Stump <mrs@wrs.com> |
| |
| * gthr-vxworks.h (__ehdtor): Fix memory leak. The delete hook |
| runs in the context of the deleter, not the deletee, so we must |
| use taskVarGet to find the correct memory to free. |
| (__gthread_key_create): Initialize the task |
| variable subsystem so that the task variable is still active when |
| the delete hook is run. |
| |
| 1998-12-03 Joseph S. Myers <jsm28@cam.ac.uk> |
| |
| * pdp11.h: Use optimize_size for space optimizations. |
| * pdp11.c: Likewise. |
| * pdp11.md: Likewise. |
| |
| * pdp11.h (TARGET_40_PLUS): Fix typo. |
| |
| Thu Dec 3 11:48:32 1998 Jeffrey A Law (law@cygnus.com) |
| |
| * local-alloc.c (block_alloc): Slightly retune heuristic to widen |
| qty lifetimes. |
| |
| Thu Dec 3 22:30:18 1998 Michael Hayes <m.hayes@elec.canterbury.ac.nz> |
| |
| * alias.c (addr_side_effect_eval): New function. |
| (memrefs_conflict_p): Use it. |
| * rtl.h (addr_side_effect_eval): Prototype it. |
| |
| 1998-12-02 Joseph S. Myers <jsm28@cam.ac.uk> |
| |
| * pdp11.md (extendsfdf2): Fix mode mismatch in SET. |
| |
| Wed Dec 2 11:23:07 1998 Jim Wilson <wilson@cygnus.com> |
| |
| * reload.c (find_reloads): When force const to memory, put result |
| in substed_operand not *recog_operand_loc. |
| |
| 1998-12-02 Ulrich Drepper <drepper@cygnus.com> |
| |
| * c-lex.c: Fix indentation from last patch. |
| Remove trailing whitespace. |
| * real.c: Likewise. |
| |
| Wed Dec 2 10:11:12 1998 Jeffrey A Law (law@cygnus.com) |
| |
| * flow.c (delete_block): Call set_last_insn after we have reset |
| NEXT_INSN (kept_tail). |
| |
| Wed Dec 2 00:47:31 1998 Jeffrey A Law (law@cygnus.com) |
| |
| * mips.md (trap_if): Use "$0" for the value zero. |
| |
| Tue Dec 1 20:49:49 1998 Ulrich Drepper <drepper@cygnus.com> |
| Stephen L Moshier <moshier@world.std.com> |
| Richard Henderson <rth@cygnus.com> |
| |
| * c-common.c (declare_function_name): Declare predefined variable |
| `__func__'. |
| |
| * c-decl.c (flag_isoc9x): Set to 1 by default. |
| (c_decode_option): Handle -std= option. Remove -flang-isoc9x. |
| (grokdeclarator): Always emit warning about implicit int for ISO C 9x. |
| |
| * c-parse.in: Allow constructors in ISO C 9x. |
| Rewrite designator list handling. |
| Allow [*] parameters. |
| Don't warn about comma at end of enum definition for ISO C 9x. |
| |
| * cccp.c (c9x): New variable. |
| (rest_extension): New variable. |
| (print_help): Document new -std= option. |
| (main): Recognize -std= option. Set c9x appropriately. |
| (create_definition): Recognize ISO C 9x vararg macros. |
| |
| * gcc.c (default_compilers): Adjust specs for -std options. |
| (option_map): Add --std. |
| (display_help): Document -std. |
| |
| * toplev.c (documented_lang_options): Add -std and remove |
| -flang-isoc9x. |
| |
| * c-lex.c (yylex): Recognize hex FP constants and call REAL_VALUE_ATOF |
| or REAL_VALUE_HTOF based on base of the constants. |
| * fold-const.c (real_hex_to_f): New function. Replacement function |
| for hex FP conversion if REAL_ARITHMETIC is not defined. |
| * real.c (asctoeg): Add handling of hex FP constants. |
| * real.h: Define REAL_VALUE_HTOF if necessary using ereal_atof or |
| real_hex_to_f. |
| |
| Tue Dec 1 16:45:49 1998 Stan Cox <scox@cygnus.com> |
| |
| * mips.md (divmodsi4*, divmoddi4*, udivmodsi4*, udivmoddi4): Add |
| -mcheck-range-division/-mcheck-zero-division checking. Avoid as macro |
| expansion. Use hi/lo as destination register. |
| (div_trap): New. |
| (divsi3*, divdi3*, modsi3*, moddi3*, udivsi3*, udivdi3*, umodsi3*, |
| umoddi3*): Add -mcheck-range-division/-mcheck-zero-division checking. |
| Avoid as macro expansion. Use hi/lo as destination register. |
| |
| * mips.h (MASK_CHECK_RANGE_DIV): New. |
| (MASK_NO_CHECK_ZERO_DIV): New. |
| (ELIMINABLE_REGS): Added GP_REG_FIRST + 31. |
| (CAN_ELIMINATE, INITIAL_ELIMINATION_OFFSET): Allow for getting |
| return address for leaf functions out of r31 to support |
| builtin_return_address. |
| |
| Tue Dec 1 15:03:30 1998 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl> |
| |
| * jump.c (jump_optimize): Call regs_set_between_p with PREV_INSN(x), |
| NEXT_INSN(x) to check insn x. |
| |
| Tue Dec 1 15:20:44 1998 Jeffrey A Law (law@cygnus.com) |
| |
| * flow.c (delete_block): Call set_last_insn if we end up deleting the |
| last insn in the rtl chain. |
| |
| * reload1.c (reload): Do not set reload_completed or split insns |
| here. Instead... |
| * toplev.c (rest_of_compilation): Set reload_completed after |
| reload returns. Split insns after reload_cse has run. |
| |
| Tue Dec 1 11:55:04 1998 Richard Henderson <rth@cygnus.com> |
| |
| * final.c (final_scan_insn): Abort if block_depth falls below 0. |
| |
| Tue Dec 1 10:23:16 1998 Nick Clifton <nickc@cygnus.com> |
| |
| * config/arm/t-arm-elf (LIBGCC2_CFLAGS): Define inhibit_libc. |
| |
| Tue Dec 1 10:22:18 1998 Nick Clifton <nickc@cygnus.com> |
| |
| * config/arm/unknown-elf.h (ASM_OUTPUT_DWARF2_ADDR_CONST): Remove |
| use of user-label_prefix. |
| |
| Tue Dec 1 17:58:26 1998 J"orn Rennecke <amylaar@cygnus.co.uk> |
| |
| * reload1.c (emit_reload_insns): Clear spill_reg_store |
| when doing a new non-inherited reload from the same pseudo. |
| |
| * local-alloc.c (function_invariant_p): New function. |
| (update_equiv_regs): Use function_invariant_p instead of CONSTANT_P |
| to decide if an equivalence should be recorded. |
| * reload1.c (num_eliminable_invariants): New static variable. |
| (reload): Set it. Use function_invariant_p instead of CONSTANT_P |
| to decide if an equivalence should be recorded. |
| Unshare PLUS. |
| (calculate_needs_all_insns): Skip insns that only set an equivalence. |
| Take num_eliminable_invariants into account when deciding |
| if register elimination should be done. |
| (reload_as_needed): Take num_eliminable_invariants into account |
| when deciding if register elimination should be done. |
| (eliminate_regs): Handle non-constant reg_equiv_constant. |
| * rtl.h (function_invariant_p): Declare. |
| |
| Mon Nov 30 02:00:08 1998 Jeff Law (law@cygnus.com) |
| |
| * version.c: Bump for snapshot. |
| |
| Mon Nov 30 00:42:59 1998 Jeff Law (law@cygnus.com) |
| |
| * version.c: Bump for snapshot. |
| |
| Sun Nov 29 22:59:40 1998 Jason Merrill <jason@yorick.cygnus.com> |
| |
| * except.c (add_new_handler): Complain about additional handlers |
| after one that catches everything. |
| |
| Sat Nov 28 10:56:32 1998 Jeffrey A Law (law@cygnus.com) |
| |
| * configure.in (alpha*-*-netbsd): Fix typo. |
| * configure: Rebuilt. |
| |
| Fri Nov 27 12:28:56 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> |
| |
| * system.h: Include libiberty.h. |
| |
| * c-aux-info.c: Remove prototypes for concat/concat3. Change |
| function `concat' from fixed parameters to variable parameters, |
| as is done in libiberty. All callers of concat/concat3 |
| changed to use the new `concat' with variable args. |
| |
| * cccp.c: Remove things made redundant by libiberty.h and/or |
| conform to libiberty standards. |
| * cexp.y: Likewise. |
| * collect2.c: Likewise. |
| * config/1750a/1750a.h: Likewise. |
| * cppalloc.c: Likewise. |
| * cppexp.c: Likewise. |
| * cppfiles.c: Likewise. |
| * cpphash.c: Likewise. |
| * cpplib.c: Likewise. |
| * dyn-string.c: Likewise. |
| * fix-header.c: Likewise. |
| * gcc.c: Likewise. |
| * gcov.c: Likewise. |
| * genattr.c: Likewise. |
| * genattrtab.c: Likewise. |
| * gencheck.c: Likewise. |
| * gencodes.c: Likewise. |
| * genconfig.c: Likewise. |
| * genemit.c: Likewise. |
| * genextract.c: Likewise. |
| * genflags.c: Likewise. |
| * gengenrtl.c: Likewise. |
| * genopinit.c: Likewise. |
| * genoutput.c: Likewise. |
| * genpeep.c: Likewise. |
| * genrecog.c: Likewise. |
| * getpwd.c: Likewise. |
| * halfpic.c: Likewise. |
| * hash.c: Likewise. |
| * mips-tdump.c: Likewise. Wrap malloc/realloc/calloc prototypes |
| in NEED_DECLARATION_* macros. |
| |
| * mips-tfile.c: Remove things made redundant by libiberty.h and/or |
| conform to libiberty standards. |
| (fatal): Fix const-ification of variable `format' in |
| !ANSI_PROTOTYPES case. |
| |
| * prefix.c: Remove things made redundant by libiberty.h and/or |
| conform to libiberty standards. |
| |
| * print-rtl.c: Rename variable `spaces' to `xspaces' to avoid |
| conflicting with function `spaces' from libiberty. |
| |
| * profile.c: Remove things made redundant by libiberty.h and/or |
| conform to libiberty standards. |
| * protoize.c: Likewise. |
| * rtl.h: Likewise. |
| * scan.h: Likewise. |
| * tlink.c: Likewise. |
| * toplev.c: Likewise. |
| * toplev.h: Likewise. |
| * tree.h: Likewise. |
| |
| Thu Nov 26 08:38:06 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> |
| |
| * cppfiles.c (simplify_pathname): Un-ANSI-fy function definition. |
| |
| Thu Nov 26 23:45:37 1998 Michael Hayes <m.hayes@elec.canterbury.ac.nz> |
| |
| * README.C4X: Updated URLs. |
| * config/c4x/c4x.c (c4x_address_conflict): Fix typo. |
| (valid_parallel_operands_5): Remove unused variable. |
| |
| Thu Nov 26 23:40:03 1998 Michael Hayes <m.hayes@elec.canterbury.ac.nz> |
| |
| * config/c4x/c4x.h (TARGET_DEFAULT): Fix typo. |
| |
| 1998-11-26 Manfred Hollstein <manfred@s-direktnet.de> |
| |
| * Makefile.in (CONFIG_LANGUAGES): New macro taking all languages |
| which can be configured. |
| (LANGUAGES): Use $(CONFIG_LANGUAGES) instead of @all_languages@ |
| (Makefile): Pass actual LANGUAGES through the environment when |
| re-configuring. |
| (cstamp-h): Likewise. |
| (config.status): Likewise. |
| |
| * configure.in (enable_languages): Add new configuration parameter |
| "--enable-languages=lang1,lang2,...". |
| (${srcdir}/*/config-lang.in): Change handling to configure only |
| those directories, that the user might have enabled; default to |
| "all" existing languages. |
| * configure: Regenerate. |
| |
| Thu Nov 26 00:19:19 1998 Richard Henderson <rth@cygnus.com> |
| |
| * rtlanal.c (regs_set_between_p): New function. |
| * rtl.h (regs_set_between_p): Prototype it. |
| * jump.c (jump_optimize): Use it instead of modified_between_p |
| in the Sep 2 change. |
| |
| Wed Nov 25 23:32:02 1998 Ian Dall <Ian.Dall@dsto.defence.gov.au> |
| Matthias Pfaller <leo@dachau.marco.de> |
| |
| * invoke.texi (Option Summary, NS32K Options): Add description |
| of NS32K specific options. |
| |
| * ns32k.md (tstdf, cmpdf, movdf, truncdfsf2, fixdfqi2, fixdfhi2, |
| fixdfsi2, fixunsdfqi2, fixunsdfhi2, fixunsdfsi2, fix_truncdfqi2, |
| fix_truncdfhi2, fix_truncdfsi2, adddf3, subdf3, muldf3, divdf3, |
| negdf2, absdf2): Use l instead of f since the double class and |
| float class are no longer the same. |
| (cmpsi, truncsiqi2, truncsihi2, addsi3, subsi3, mulsi3, umulsidi3, |
| divsi3, modsi3, andsi3, iorsi3, xorsi3, negsi2, one_cmplsi2, |
| ashlsi3, ashlhi3, ashlqi3, rotlsi3, rotlhi3, rotlqi3, abssi2,...): |
| Use "g" instead of "rmn" since LEGITIMATE_PIC_OPERAND has been |
| fixed. |
| (cmpsi, cmphi, cmpqi): Use general_operand instead of |
| non_immediate_operand. Removes erroneous assumption that can't |
| compare constants. |
| (movsf, movsi, movhi, movqi,...): New register numbering scheme. |
| (movsi, addsi3): Use NS32K_DISPLACEMENT_P instead of hard coded |
| constants. |
| (movstrsi, movstrsi1, movstrsi2): Completely new block move |
| scheme. |
| (...): Patterns to exploit multiply-add instructions. |
| (udivmodsi4, udivmodsi_internal4, udivmodhi4, |
| udivmoddihi4_internal, udivmodqi4, udivmoddiqi4_internal): New |
| patterns to exploit extended divide insns. |
| (udivsi3, udivhi3, udivqi3): Remove since superseded by udivmodsi |
| etc patterns. |
| |
| * ns32k.h (FUNCTION_VALUE, LIBCALL_VALUE): Use f0 for complex |
| float return values as well as simple scalar floats. |
| (TARGET_32381, TARGET_MULT_ADD, TARGET_SWITCHES): |
| Support new flag to denote 32381 fpu. |
| (OVERRIDE_OPTIONS): 32381 is a strict superset of 32081. |
| (CONDITIONAL_REGISTER_USAGE): Disable extra 32381 registers if not |
| compiling for 32381. |
| (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS, CALL_USED_REGISTERS, |
| REGISTER_NAMES, ADDITIONAL_REGISTER_NAMES, OUTPUT_REGISTER_NAMES, |
| REG_ALLOC_ORDER, DBX_REGISTER_NUMBER, R0_REGNUM, F0_REGNUM, |
| L1_REGNUM, STACK_POINTER_REGNUM, FRAME_POINTER_REGNUM, |
| LONG_FP_REGS_P, ARG_POINTER_REGNUM, reg_class, REG_CLASS_NAMES, |
| REG_CLASS_CONTENTS, SUBSET_P,REGNO_REG_CLASS, |
| REG_CLASS_FROM_LETTER, FUNCTION_PROLOGUE, FUNCTION_EPILOGUE, |
| REGNO_OK_FOR_INDEX_P, FP_REG_P, REG_OK_FOR_INDEX_P, |
| REG_OK_FOR_BASE_P, MEM_REG): New register scheme to include 32381 |
| fpu registers and special register classes for new 32381 |
| instructions dotf and polyf. |
| (MODES_TIEABLE_P): Allow all integer modes, notably DI and SI, to |
| be tieable. |
| (INCOMING_RETURN_ADDR_RTX, RETURN_ADDR_RTX, |
| INCOMING_FRAME_SP_OFFSET): New macros in case DWARF support is |
| required. |
| (SMALL_REGISTER_CLASSES): Make dependent on -mmult-add option. |
| (MOVE_RATIO): Set to zero because of smart movstrsi implementation. |
| (REGISTER_MOVE_COST): Move code to register_move_cost function for |
| ease of coding and debugging. |
| (CLASS_LIKELY_SPILLED_P): Under new register scheme class |
| LONG_FLOAT_REGO is likely spilled but not caught by default |
| definition. |
| (CONSTANT_ADDRESS_P, CONSTANT_ADDRESS_NO_LABEL_P): Use macro |
| instead of hard coded numbers in range check. |
| (ASM_OUTPUT_LABELREF_AS_INT): Delete since unused. |
| (...): Add prototypes for functions in ns32k.c but disable because |
| of problems when ns32k.h is included in machine independent files. |
| |
| * ns32k.c: Include "system.h", "tree.h", "expr.h", "flags.h". |
| (ns32k_reg_class_contents, regcass_map, ns32k_out_reg_names, |
| hard_regno_mode_ok, secondary_reload_class, |
| print_operand, print_operand_address): New register scheme to |
| include 32381 fpu registers and special register classes for new |
| 32381 instructions dotf and polyf. |
| (gen_indexed_expr): Make static to keep namespace clean. |
| (check_reg): Remove since never called. |
| (move_tail, expand_block_move): Helper functions for "movstrsi" |
| block move insn. |
| (register_move_cost): Helper function for REGISTER_MOVE_COST macro. |
| Increase cost of moves which go via memory. |
| * netbsd.h (TARGET_DEFAULT): Set (new) 32381 fpu flag. |
| (CPP_PREDEFINES): No longer predefine "unix". |
| |
| * ns32k.md (movsi, movsi, adddi3, subdi3, subsi3, subhi3, subqi3,...): |
| Remove erroneous %$. print_operand() can work out from the rtx is |
| an immediate prefix is required. |
| |
| * ns32k.h (RETURN_POPS_ARGS, VALID_MACHINE_DECL_ATTRIBUTE, |
| VALID_MACHINE_TYPE_ATTRIBUTE, COMP_TYPE_ATTRIBUTES, |
| SET_DEFAULT_TYPE_ATTRIBUTES): Support for -mrtd calling |
| convention. |
| (LEGITIMATE_PIC_OPERAND_P, SYMBOLIC_CONST): Correct handling of |
| pic operands. |
| |
| * ns32k.c (symbolic_reference_mentioned_p, print_operand): |
| Correct handling of pic operands. |
| (ns32k_valid_decl_attribute_p, ns32k_valid_type_attribute_p, |
| ns32k_comp_type_attributes, ns32k_return_pops_args): Support for |
| -mrtd calling convention. |
| |
| Wed Nov 25 23:42:20 1998 Tom Tromey <tromey@cygnus.com> |
| |
| * gcc.c (option_map): Recognize --output-class-directory. |
| |
| Thu Nov 26 18:26:21 1998 Michael Hayes <m.hayes@elec.canterbury.ac.nz> |
| |
| * loop.h (precondition_loop_p): Added new mode argument. |
| * unroll.c (precondition_loop_p): Likewise. |
| (approx_final_value): Function deleted and subsumed |
| into loop_iterations. |
| (loop_find_equiv_value): New function. |
| (loop_iterations): Use loop_find_equiv_value to find increments |
| too large to be immediate constants. Also use it to find terms |
| common to initial and final iteration values that can be removed. |
| |
| Thu Nov 26 18:05:04 1998 Michael Hayes <m.hayes@elec.canterbury.ac.nz> |
| |
| * loop.h (struct loop_info): Define new structure. |
| (precondition_loop_p): Added prototype. |
| (unroll_loop): Added new argument loop_info to prototype. |
| (final_biv_value, final_giv_value): Added new argument n_iterations |
| to prototype. |
| * loop.c (strength_reduce): Declare new structure loop_iteration_info |
| and new pointer loop_info. |
| (loop_n_iterations): Replace global variable by element in |
| loop_info structure. |
| (check_final_value): New argument n_iterations. |
| (insert_bct): New argument loop_info. |
| (loop_unroll_factor): Replace global array by element in |
| loop_info structure. |
| (loop_optimize): Remove code to allocate and initialize |
| loop_unroll_factor_array. |
| * unroll.c (precondition_loop_p): No longer static since |
| used by branch on count optimization. |
| (precondition_loop_p, unroll_loop): New argument loop_info. |
| (final_biv_value, final_giv_value, find_splittable_regs): New |
| argument n_iterations. |
| (loop_iteration_var, loop_initial_value, loop_increment, |
| loop_final_value, loop_comparison_code, loop_unroll_factor): |
| Replaced global variables by loop_info structure. |
| (loop_unroll_factor): Replace global array by element in |
| loop_info structure. |
| |
| Thu Nov 26 17:49:29 1998 Michael Hayes <m.hayes@elec.canterbury.ac.nz> |
| |
| * loop.c (check_dbra_loop): Update JUMP_LABEL field of jump insn |
| when loop reversed. |
| |
| * unroll.c (precondition_loop_p): Return loop_initial_value |
| for initial_value instead of loop_iteration_var. |
| |
| Thu Nov 26 17:15:38 1998 Michael Hayes <m.hayes@elec.canterbury.ac.nz> |
| |
| * config/c4x/c4x.md: Fix minor formatting problems. Update docs. |
| (*b, *b_rev, *b_noov, *b_noov_rev, *db, |
| decrement_and_branch_until_zero, rptb_end): Use c4x_output_cbranch |
| to output the instruction sequences. |
| (rpts): Delete. |
| (rptb_top): Provide alternatives to use any register or memory |
| for loop counter. |
| (rptb_end): Emit use of operands rather than assigning them |
| explicitly to the RS and RE registers. |
| |
| Thu Nov 26 16:37:59 1998 Michael Hayes <m.hayes@elec.canterbury.ac.nz> |
| |
| * config/c4x/c4x.c (c4x_modified_between_p, c4x_mem_set_p, |
| c4x_mem_set_p, c4x_mem_modified_between_p, c4x_insn_moveable_p, |
| c4x_parallel_pack, c4x_parallel_find, c4x_update_info_reg, |
| c4x_update_info_regs, c4x_copy_insn_after, c4x_copy_insns_after, |
| c4x_merge_notes, c4x_parallel_process, |
| c4x_combine_parallel_independent, c4x_combine_parallel_dependent, |
| c4x_combine_parallel): Delete. |
| |
| Thu Nov 26 15:16:05 1998 Michael Hayes <m.hayes@elec.canterbury.ac.nz> |
| |
| * config/c4x/c4x.c (c4x_override_options): For compatibility |
| with old target options clear flag_branch_on_count_reg if |
| -mno-rptb specified and set flag_argument_alias is -mno-aliases |
| specified. |
| (c4x_output_cbranch): Handle a sequence of insns rather than a |
| single insn. |
| (c4x_rptb_insert): Do not emit a RPTB insn if the RC register |
| has not been allocated as the loop counter. |
| (c4x_address_conflict): Do not allow two volatile memory references. |
| (valid_parallel_operands_4, valid_parallel_operands_5, |
| valid_parallel_operands_6): Reject pattern if the register destination |
| of the first set is used as part of an address in the second set. |
| |
| Thu Nov 26 14:56:32 1998 Michael Hayes <m.hayes@elec.canterbury.ac.nz> |
| |
| * config/c4x/c4x.h (TARGET_DEFAULT): Add PARALEL_MPY_FLAG. |
| (TARGET_SMALL_REG_CLASS): Set to 0 so that SMALL_REGISTER_CLASSES |
| is no longer enabled if PARALLEL_MPY_FLAG set. |
| (HARD_REGNO_CALL_CLOBBERED): Add parentheses to remove ambiguity. |
| (REG_CLASS_CONTENTS): Add braces around initializers. |
| (HAVE_MULTIPLE_PACK): Define. |
| (ASM_OUTPUT_BYTE_FLOAT): Use %lf format specifier with |
| REAL_VALUE_TO_DECIMAL. |
| (ASM_OUTPUT_SHORT_FLOAT): Use %lf format specifier with |
| REAL_VALUE_TO_DECIMAL. |
| (ar0_reg_operand): Add prototype. |
| (ar0_mem_operand): Likewise. |
| (ar1_reg_operand): Likewise. |
| (ar1_mem_operand): Likewise. |
| (ar2_reg_operand): Likewise. |
| (ar2_mem_operand): Likewise. |
| (ar3_reg_operand): Likewise. |
| (ar3_mem_operand): Likewise. |
| (ar4_reg_operand): Likewise. |
| (ar4_mem_operand): Likewise. |
| (ar5_reg_operand): Likewise. |
| (ar5_mem_operand): Likewise. |
| (ar6_reg_operand): Likewise. |
| (ar6_mem_operand): Likewise. |
| (ar7_reg_operand): Likewise. |
| (ar7_mem_operand): Likewise. |
| (ir0_reg_operand): Likewise. |
| (ir0_mem_operand): Likewise. |
| (ir1_reg_operand): Likewise. |
| (ir1_mem_operand): Likewise. |
| (group1_reg_operand): Likewise. |
| (group1_mem_operand): Likewise. |
| (ir1_reg_operand): Likewise. |
| (arx_reg_operand): Likewise. |
| (not_rc_reg): Likewise. |
| (not_modify_reg): Likewise. |
| (c4x_group1_reg_operand): Remove prototype. |
| (c4x_group1_mem_operand): Likewise. |
| (c4x_arx_reg_operand): Likewise. |
| |
| Wed Nov 25 19:02:55 1998 (Stephen L Moshier) <moshier@world.std.com> |
| |
| * emit-rtl.c (gen_lowpart_common): Remove earlier change. |
| * real.c (make_nan): Make SIGN arg actually specify the sign bit. |
| |
| Thu Nov 26 14:12:05 1998 Michael Hayes <m.hayes@elec.canterbury.ac.nz> |
| |
| * config/c4x/c4x.md (addqi3): Emit addqi3_noclobber pattern |
| during reload. |
| |
| Wed Nov 25 22:05:28 1998 J"orn Rennecke <amylaar@cygnus.co.uk> |
| |
| * config/sh/lib1funcs.asm (___udivsi3_i4): Don't switch to sz == 1 |
| unless FMOVD_WORKS is defined. |
| |
| Wed Nov 25 20:11:04 1998 J"orn Rennecke <amylaar@cygnus.co.uk> |
| |
| * regclass.c (init_reg_sets): Move code that calculates tables |
| dependent on reg_class_contents from here... |
| (init_reg_sets_1): To here. |
| |
| Wed Nov 25 14:54:46 1998 Zack Weinberg <zack@rabi.phys.columbia.edu> |
| |
| * cpplib.h: Delete struct import_file. Add ihash element to |
| struct cpp_buffer. Delete dont_repeat_files and |
| import_hash_table elements from cpp_reader; change |
| all_include_files to a hash table. Delete all foobar_include |
| / last_foobar_include elements from struct cpp_options; put |
| back four such: quote_include, bracket_include, |
| system_include, after_include. Redo struct file_name_list |
| completely. Add new structure type include_hash. Add |
| prototypes for merge_include_chains and include_hash. Change |
| prototypes for finclude, find_include_file, and |
| append_include_chain to match changes below. |
| |
| * cppfiles.c (simplify_pathname, include_hash, |
| remap_filename, merge_include_chains): New functions. |
| (add_import, lookup_import, open_include_file): Removed. |
| (INO_T_EQ): Define this (copied from cccp.c). |
| (hack_vms_include_specification): Remove all calls and #if 0 |
| out the definition. It was being called incorrectly and at |
| the wrong times. Until a VMSie can look at this, it's better |
| to not pretend to support it. |
| (append_include_chain): Change calling convention; now takes |
| only one directory at a time, and sets up the data structure |
| itself. |
| (redundant_include_p): Rewritten - this is now used for all |
| include redundancy, whether by #ifndef, #import, or #pragma |
| once. Looks up things in the include hash table. |
| (file_cleanup): Decrement pfile->system_include_depth here if |
| it's >0. |
| (find_include_file): Calling convention changed; now passes |
| around a struct include_hash instead of 3 separate parameters. |
| Guts ripped out and replaced with new include_hash mechanism. |
| (finclude): Calling convention changed as for |
| find_include_file. Error exits pulled out-of-line. Reformat. |
| (safe_read): Return a long, not an int. |
| (deps_output): Don't recurse. |
| |
| * cpplib.c (is_system_include): Deleted. |
| (path_include): Fix up call to append_include_chain. |
| (do_include): Fix up calls to find_include_file and finclude. |
| Clean up dependency output a bit. Shorten obnoxiously lengthy |
| #import warning message. Don't decrement |
| pfile->system_include_depth here. |
| (do_pragma): Understand the include_hash structure. Reformat. |
| (do_endif): Correct handling of control macros. Understand |
| the include_hash. |
| (cpp_start_read): Fix up calls to finclude. Call |
| merge_include_chains. |
| (cpp_handle_option): Fix up calls to append_include_chain. |
| Understand the four partial include chains. |
| (cpp_finish): Add debugging code (#if 0-ed out) for the |
| include_hash. |
| (cpp_cleanup): Free the include_hash, not the import hash and |
| the all_include and dont_repeat lists which no longer exist. |
| |
| Wed Nov 25 11:26:19 1998 Jeffrey A Law (law@cygnus.com) |
| |
| * toplev.c (no_new_pseudos): Define. |
| (rest_of_compilation): Set no_new_pseudos as needed. |
| * emit-rtl.c (gen_reg_rtx): Abort if we try to create a new pseudo |
| if no_new_pseudos is set. |
| * rtl.h (no_new_pseudos): Declare it. |
| * reload1.c (reload): Update comments. |
| * md.texi: Corresponding changes. |
| |
| Wed Nov 25 11:26:17 1998 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de> |
| |
| * reload1.c (reg_used_in_insn): Renamed from reg_used_by_pseudo. |
| (choose_reload_regs): Rename it here as well. When computing it, |
| also merge in used hardregs. |
| |
| 1998-11-25 Zack Weinberg <zack@rabi.phys.columbia.edu> |
| |
| * gcc.c: Split out Objective-C specs to... |
| * objc/lang-specs.h: here. (New file.) Make the specs cpplib |
| aware. |
| |
| * c-lex.c (init_parse): Always initialize the filename global. |
| * objc/objc-act.c (lang_init): Always call check_newline at |
| beginning of file. |
| |
| Wed Nov 25 00:48:29 1998 Graham <grahams@rcp.co.uk> |
| |
| * reload1.c (reload): Remove unused variable. |
| (reload_reg_free_for_value_p): Add missing parameter definition. |
| |
| * jump.c (jump_optimize): Remove unused variable. |
| |
| Wed Nov 25 00:07:11 1998 Jeffrey A Law (law@cygnus.com) |
| |
| * Makefile.in (graph.o): Depend on $(RTL_H), not rtl.h. |
| |
| * cse.c (fold_rtx): Make autoincrement addressing mode tests be |
| runtime selectable. |
| * expr.c (move_by_pieces): Similarly. |
| (move_by_pieces_1, clear_by_pieces, clear_by_pieces_1): Similarly. |
| * flow.c (find_auto_inc): Similarly. |
| (try_pre_increment): Similarly. |
| * loop.c (strength_reduce): Similarly. |
| * regclass.c (auto_inc_dec_reg_p): Similarly. |
| * regmove.c (try_auto_increment): Similarly. |
| (fixup_match_1): Similarly. |
| * rtl.h (HAVE_PRE_INCREMENT): Define if not already defined. |
| (HAVE_PRE_DECREMENT): Similarly. |
| (HAVE_POST_INCREMENT, HAVE_POST_DECREMENT): Similarly. |
| * Corresponding changes to all target header files. |
| * tm.texi: Update docs for autoinc addressing modes. |
| |
| Tue Nov 24 20:24:59 1998 Jim Wilson <wilson@cygnus.com> |
| |
| * configure.in (m68020-*-elf*, m68k-*-elf*): New targets. |
| * configure: Rebuild. |
| * config/elfos.h: New file. |
| * config/m68k/m68020-elf.h, config/m68k/m68kelf.h, |
| config/m68k/t-m68kelf: New file. |
| |
| Tue Nov 24 13:40:06 1998 Jeffrey A Law (law@cygnus.com) |
| |
| * Makefile.in (HOST_AR): Define. |
| (HOST_AR_FLAGS, HOST_RANLIB, HOST_RANLIB_TEST): Similarly. |
| (libcpp.a): Use the host tools explicitly. |
| (STAGESTUFF): Add libcpp.a. |
| |
| Tue Nov 24 09:33:49 1998 Nick Clifton <nickc@cygnus.com> |
| |
| * config/m32r/m32r.md (movstrsi_internal): Describe changes made |
| to source and destination registers. |
| |
| Mon Nov 23 20:28:02 1998 Mike Stump <mrs@wrs.com> |
| |
| * libgcc2.c (top_elt): Remove top_elt, it isn't thread safe. |
| The strategy we now use is to pre allocate the top_elt along |
| with the EH context so that each thread has its own top_elt. |
| This is necessary as the dynamic cleanup chain is used on the |
| top element of the stack and each thread MUST have its own. |
| (eh_context_static): Likewise. |
| (new_eh_context): Likewise. |
| (__sjthrow): Likewise. |
| |
| Mon Nov 23 20:25:03 1998 Jason Merrill <jason@yorick.cygnus.com> |
| |
| * i386/linux.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Wrap in do...while. |
| * i386.md (prologue_get_pc): Remove unused variable. |
| |
| Mon Nov 23 17:05:40 1998 Geoffrey Noer <noer@cygnus.com> |
| |
| * i386/xm-cygwin.h: Rename cygwin_ path funcs back to cygwin32_. |
| |
| Mon Nov 23 16:40:00 1998 Ulrich Drepper <drepper@cygnus.com> |
| |
| * Makefile.in (OBJS): Add graph.o. |
| (graph.o): New dependency list. |
| * flags.h: Declare dump_for_graph and define graph_dump_types type. |
| * print-rtl.c (dump_for_graph): Define new variable. |
| (print_rtx): Rewrite to allow use in graph dumping functions. |
| * toplev.c: Declare print_rtl_graph_with_bb, clean_graph_dump_file, |
| finish_graph_dump_file. |
| Define graph_dump_format. |
| (compile_file): If graph dumping is enabled also clear these files. |
| Finish graph dump files. |
| (rest_of_compilation): Also dump graph information if enabled. |
| (main): Recognize -dv to enabled VCG based graph dumping. |
| * graph.c: New file. Graph dumping functions. |
| |
| Mon Nov 23 16:39:04 1998 Richard Henderson <rth@cygnus.com> |
| |
| * configure.in: Look for <sys/stat.h>. |
| * system.h: Include it before substitute S_ISREG definitions. |
| |
| Mon Nov 23 17:40:37 1998 Gavin Romig-Koch <gavin@cygnus.com> |
| |
| * config/mips/abi.h: Use ABI_O64, duplicating ABI_32 usage. |
| * config/mips/iris6.h: Same. |
| * config/mips/mips.md: Same. |
| * config/mips/mips.c: Same; also add "-mabi=o64" option. |
| * config/mips/mips.h: Same; also define ABI_O64. |
| |
| Mon Nov 23 17:02:27 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> |
| |
| * configure.in: Use AC_PREREQ(2.12.1). |
| |
| Mon Nov 23 10:16:38 1998 Melissa O'Neill <oneill@cs.sfu.ca> |
| |
| * cccp.c (S_ISREG, S_ISDIR): Delete defines. |
| * cpplib.c, gcc.c: Likewise. |
| * system.h (S_ISREG, S_ISDIR): Define if not already defined. |
| |
| Mon Nov 23 09:53:44 1998 Richard Henderson <rth@cygnus.com> |
| |
| * local-alloc.c (local_alloc): Use malloc not alloca for |
| reg_qty, reg_offset, ref_next_in_qty. |
| |
| Mon Nov 23 16:46:46 1998 J"orn Rennecke <amylaar@cygnus.co.uk> |
| |
| * caller-save.c (insert_one_insn): Initialize the live_before and |
| live_after register sets. |
| |
| Add SH4 support: |
| |
| * config/sh/lib1funcs.asm (___movstr_i4_even, ___movstr_i4_odd): Define. |
| (___movstrSI12_i4, ___sdivsi3_i4, ___udivsi3_i4): Define. |
| * sh.c (reg_class_from_letter, regno_reg_class): Add DF_REGS. |
| (fp_reg_names, assembler_dialect): New variables. |
| (print_operand_address): Handle SUBREGs. |
| (print_operand): Added 'o' case. |
| Don't use adj_offsettable_operand on PRE_DEC / POST_INC. |
| Name of FP registers depends on mode. |
| (expand_block_move): Emit different code for SH4 hardware. |
| (prepare_scc_operands): Use emit_sf_insn / emit_df_insn as appropriate. |
| (from_compare): Likewise. |
| (add_constant): New argument last_value. Changed all callers. |
| (find_barrier): Don't try HImode load for FPUL_REG. |
| (machine_dependent_reorg): Likewise. |
| (sfunc_uses_reg): A CLOBBER cannot be the address register use. |
| (gen_far_branch): Emit a barrier after the new jump. |
| (barrier_align): Don't trust instruction lengths before |
| fixing up pcloads. |
| (machine_dependent_reorg): Add support for FIRST_XD_REG .. LAST_XD_REG. |
| Use auto-inc addressing for fp registers if doubles need to |
| be loaded in two steps. |
| Set sh_flag_remove_dead_before_cse. |
| (push): Support for TARGET_FMOVD. Use gen_push_fpul for fpul. |
| (pop): Support for TARGET_FMOVD. Use gen_pop_fpul for fpul. |
| (calc_live_regs): Support for TARGET_FMOVD. Don't save FPSCR. |
| Support for FIRST_XD_REG .. LAST_XD_REG. |
| (sh_expand_prologue): Support for FIRST_XD_REG .. LAST_XD_REG. |
| (sh_expand_epilogue): Likewise. |
| (sh_builtin_saveregs): Use DFmode moves for fp regs on SH4. |
| (initial_elimination_offset): Take TARGET_ALIGN_DOUBLE into account. |
| (arith_reg_operand): FPUL_REG is OK for SH4. |
| (fp_arith_reg_operand, fp_extended_operand): New functions. |
| (tertiary_reload_operand, fpscr_operand): Likewise. |
| (commutative_float_operator, noncommutative_float_operator): Likewise. |
| (binary_float_operator, get_fpscr_rtx, emit_sf_insn): Likewise. |
| (emit_df_insn, expand_sf_unop, expand_sf_binop): Likewise. |
| (expand_df_unop, expand_df_binop, expand_fp_branch): Likewise. |
| (emit_fpscr_use, mark_use, remove_dead_before_cse): Likewise. |
| * sh.h (CPP_SPEC): Add support for -m4, m4-single, m4-single-only. |
| (CONDITIONAL_REGISTER_USAGE): Likewise. |
| (HARD_SH4_BIT, FPU_SINGLE_BIT, SH4_BIT, FMOVD_BIT): Define. |
| (TARGET_CACHE32, TARGET_SUPERSCALAR, TARGET_HARWARD): Define. |
| (TARGET_HARD_SH4, TARGET_FPU_SINGLE, TARGET_SH4, TARGET_FMOVD): Define. |
| (target_flag): Add -m4, m4-single, m4-single-only, -mfmovd. |
| (OPTIMIZATION_OPTIONS): If optimizing, set flag_omit_frame_pointer |
| to -1 and sh_flag_remove_dead_before_cse to 1. |
| (ASSEMBLER_DIALECT): Define to assembler_dialect. |
| (assembler_dialect, fp_reg_names): Declare. |
| (OVERRIDE_OPTIONS): Add code for TARGET_SH4. |
| Hide names of registers that are not accessible. |
| (CACHE_LOG): Take TARGET_CACHE32 into account. |
| (LOOP_ALIGN): Take TARGET_HARWARD into account. |
| (FIRST_XD_REG, LAST_XD_REG, FPSCR_REG): Define. |
| (FIRST_PSEUDO_REGISTER: Now 49. |
| (FIXED_REGISTERS, CALL_USED_REGISTERS): Include values for registers. |
| (HARD_REGNO_NREGS): Special treatment of FIRST_XD_REG .. LAST_XD_REG. |
| (HARD_REGNO_MODE_OK): Update. |
| (enum reg_class): Add DF_REGS and FPSCR_REGS. |
| (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REG_ALLOC_ORDER): Likewise. |
| (SECONDARY_OUTPUT_RELOAD_CLASS, SECONDARY_INPUT_RELOAD_CLASS): Update. |
| (CLASS_CANNOT_CHANGE_SIZE, DEBUG_REGISTER_NAMES): Define. |
| (NPARM_REGS): Eight floating point parameter registers on SH4. |
| (BASE_RETURN_VALUE_REG): SH4 also passes double values |
| in floating point registers. |
| (GET_SH_ARG_CLASS): Likewise. |
| Complex float types are also returned in float registers. |
| (BASE_ARG_REG): Complex float types are also passes in float registers. |
| (FUNCTION_VALUE): Change mode like PROMOTE_MODE does. |
| (LIBCALL_VALUE): Remove trailing semicolon. |
| (ROUND_REG): Round when double precision value is passed in floating |
| point register(s). |
| (FUNCTION_ARG_ADVANCE): No change wanted for SH4 when things are |
| passed on the stack. |
| (FUNCTION_ARG): Little endian adjustment for SH4 SFmode. |
| (FUNCTION_ARG_PARTIAL_NREGS): Zero for SH4. |
| (TRAMPOLINE_ALIGNMENT): Take TARGET_HARWARD into account. |
| (INITIALIZE_TRAMPOLINE): Emit ic_invalidate_line for TARGET_HARWARD. |
| (MODE_DISP_OK_8): Not for SH4 DFmode. |
| (GO_IF_LEGITIMATE_ADDRESS): No base reg + index reg for SH4 DFmode. |
| Allow indexed addressing for PSImode after reload. |
| (LEGITIMIZE_ADDRESS): Not for SH4 DFmode. |
| (LEGITIMIZE_RELOAD_ADDRESS): Handle SH3E SFmode. |
| Don't change SH4 DFmode nor PSImode RELOAD_FOR_INPUT_ADDRESS. |
| (DOUBLE_TYPE_SIZE): 64 for SH4. |
| (RTX_COSTS): Add PLUS case. |
| Increase cost of ASHIFT, ASHIFTRT, LSHIFTRT case. |
| (REGISTER_MOVE_COST): Add handling of R0_REGS, FPUL_REGS, T_REGS, |
| MAC_REGS, PR_REGS, DF_REGS. |
| (REGISTER_NAMES): Use fp_reg_names. |
| (enum processor_type): Add PROCESSOR_SH4. |
| (sh_flag_remove_dead_before_cse): Declare. |
| (rtx_equal_function_value_matters, fpscr_rtx, get_fpscr_rtx): Declare. |
| (PREDICATE_CODES): Add binary_float_operator, |
| commutative_float_operator, fp_arith_reg_operand, fp_extended_operand, |
| fpscr_operand, noncommutative_float_operator. |
| (ADJUST_COST): Use different scale for TARGET_SUPERSCALAR. |
| (SH_DYNAMIC_SHIFT_COST): Cheaper for SH4. |
| * sh.md (attribute cpu): Add value sh4. |
| (attrbutes fmovd, issues): Define. |
| (attribute type): Add values dfp_arith, dfp_cmp, dfp_conv, dfdiv. |
| (function units memory, int, mpy, fp): Make dependent on issue rate. |
| (function units issue, single_issue, load_si, load): Define. |
| (function units load_store, fdiv, gp_fpul): Define. |
| (attribute hit_stack): Provide proper default. |
| (use_sfunc_addr+1, udivsi3): Predicated on ! TARGET_SH4. |
| (udivsi3_i4, udivsi3_i4_single, divsi3_i4, divsi3_i4_single): New insns. |
| (udivsi3, divsi3): Emit special patterns for SH4 hardware, |
| (mulsi3_call): Now uses match_operand for function address. |
| (mulsi3): Also emit code for SH1 case. Wrap result in REG_LIBCALL / |
| REG_RETVAL notes. |
| (push, pop, push_e, pop_e): Now define_expands. |
| (push_fpul, push_4, pop_fpul, pop_4, ic_invalidate_line): New expanders. |
| (movsi_ie): Added y/i alternative. |
| (ic_invalidate_line_i, movdf_i4): New insns. |
| (movdf_i4+[123], reload_outdf+[12345], movsi_y+[12]): New splitters. |
| (reload_indf, reload_outdf, reload_outsf, reload_insi): New expanders. |
| (movdf): Add special code for SH4. |
| (movsf_ie, movsf_ie+1, reload_insf, calli): Make use of fpscr visible. |
| (call_valuei, calli, call_value): Likewise. |
| (movsf): Emit no-op move. |
| (mov_nop, movsi_y): New insns. |
| (blt, sge): Generalize to handle DFmode. |
| (return predicate): Call emit_fpscr_use and remove_dead_before_cse. |
| (block_move_real, block_lump_real): Predicate on ! TARGET_HARD_SH4. |
| (block_move_real_i4, block_lump_real_i4, fpu_switch): New insns. |
| (fpu_switch0, fpu_switch1, movpsi): New expanders. |
| (fpu_switch+[12], fix_truncsfsi2_i4_2+1): New splitters. |
| (toggle_sz): New insn. |
| (addsf3, subsf3, mulsf3, divsf3): Now define_expands. |
| (addsf3_i, subsf3_i, mulsf3_i4, mulsf3_ie, divsf3_i): New insns. |
| (macsf3): Make use of fpscr visible. Disable for SH4. |
| (floatsisf2): Make use of fpscr visible. |
| (floatsisf2_i4): New insn. |
| (floatsisf2_ie, fixsfsi, cmpgtsf_t, cmpeqsf_t): Disable for SH4. |
| (ieee_ccmpeqsf_t): Likewise. |
| (fix_truncsfsi2): Emit different code for SH4. |
| (fix_truncsfsi2_i4, fix_truncsfsi2_i4_2, cmpgtsf_t_i4): New insns. |
| (cmpeqsf_t_i4, ieee_ccmpeqsf_t_4): New insns. |
| (negsf2, sqrtsf2, abssf2): Now expanders. |
| (adddf3, subdf3i, muldf2, divdf3, floatsidf2): New expanders. |
| (negsf2_i, sqrtsf2_i, abssf2_i, adddf3_i, subdf3_i): New insns. |
| (muldf3_i, divdf3_i, floatsidf2_i, fix_truncdfsi2_i): New insns. |
| (fix_truncdfsi2, cmpdf, negdf2, sqrtdf2, absdf2): New expanders. |
| (fix_truncdfsi2_i4, cmpgtdf_t, cmpeqdf_t, ieee_ccmpeqdf_t): New insns. |
| (fix_truncdfsi2_i4_2+1): New splitters. |
| (negdf2_i, sqrtdf2_i, absdf2_i, extendsfdf2_i4): New insns. |
| (extendsfdf2, truncdfsf2): New expanders. |
| (truncdfsf2_i4): New insn. |
| * t-sh (LIB1ASMFUNCS): Add _movstr_i4, _sdivsi3_i4, _udivsi3_i4. |
| (MULTILIB_OPTIONS): Add m4-single-only/m4-single/m4. |
| * float-sh.h: When testing for __SH3E__, also test for |
| __SH4_SINGLE_ONLY__ . |
| * va-sh.h (__va_freg): Define to float. |
| (__va_greg, __fa_freg, __gnuc_va_list, va_start): |
| Define for __SH4_SINGLE_ONLY__ like for __SH3E__ . |
| (__PASS_AS_FLOAT, __TARGET_SH4_P): Likewise. |
| (__PASS_AS_FLOAT): Use different definition for __SH4__ and |
| __SH4_SINGLE__. |
| (TARGET_SH4_P): Define. |
| (va_arg): Use it. |
| |
| * sh.md (movdf_k, movsf_i): Tweak the condition so that |
| init_expr_once is satisfied about the existence of load / store insns. |
| |
| * sh.md (movsi_i, movsi_ie, movsi_i_lowpart, movsf_i, movsf_ie): |
| Change m constraint in source operand to mr / mf. |
| |
| * va-sh.h (__va_arg_sh1): Use __asm instead of asm. |
| |
| * (__VA_REEF): Define. |
| (__va_arg_sh1): Use it. |
| |
| * va-sh.h (va_start, va_arg, va_copy): Add parentheses. |
| |
| Sun Nov 22 21:34:02 1998 Jeffrey A Law (law@cygnus.com) |
| |
| * i386/dgux.c (struct option): Add new "description field". |
| * m88k/m88k.c (struct option): Likewise. |
| |
| Sun Nov 22 16:07:57 1998 Jeff Law (law@cygnus.com) |
| |
| * version.c: Bump for snapshot. |
| |
| Sun Nov 22 13:40:02 1998 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de> |
| |
| * regmove.c (regmove_profitable_p): Use return value of find_matches |
| properly. |
| |
| Sun Nov 22 02:47:37 1998 Jeff Law (law@cygnus.com) |
| |
| * version.c: Bump for snapshot. |
| |
| Sat Nov 21 22:12:09 1998 Jeffrey A Law (law@cygnus.com) |
| |
| * reload1.c (eliminate_regs): Do not lose if eliminate_regs is called |
| without reload having been called earlier. |
| |
| * v850.c (ep_memory_operand): Offsets < 0 are not valid for EP |
| addressing modes. |
| (v850_reorg): Similarly. |
| |
| * loop.c (check_dbra_loop): Avoid using gen_add2_insn. |
| |
| Sat Nov 21 02:18:38 1998 J"orn Rennecke <amylaar@cygnus.co.uk> |
| |
| * loop.c (move_movables): Start of libcall might be new loop start. |
| |
| Fri Nov 20 12:14:16 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> |
| |
| * hash.c (hash_table_init_n): Wrap prototype arguments in PARAMS(). |
| |
| Fri Nov 20 08:34:00 1998 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de> |
| |
| * function.c (nonlocal_goto_handler_slots): Renamed from |
| nonlocal_goto_handler_slot; now an EXPR_LIST chain. |
| (push_function_context_to): Adjust for this change. |
| (pop_function_context_from): Likewise. |
| (init_function_start): Likewise. |
| (expand_function_end): Likewise. |
| * function.h (struct function): Likewise. |
| * calls.c (expand_call): Likewise. |
| * explow.c (allocate_dynamic_stack_space): Likewise. |
| * expr.h (nonlocal_goto_handler_slots): Rename its declaration. |
| * stmt.c (declare_nonlocal_label): Make a new handler slot for each |
| label. |
| (expand_goto): When doing a nonlocal goto, find corresponding handler |
| slot for it. Don't put the label address in the static chain register. |
| (expand_end_bindings): Break out nonlocal goto handling code into |
| three new functions. |
| (expand_nl_handler_label, expand_nl_goto_receiver, |
| expand_nl_goto_receivers): New static functions, broken out of |
| expand_end_bindings and adapted to create one handler per nonlocal |
| label. |
| * function.c (delete_handlers): Delete insn if it references any of |
| the nonlocal goto handler slots. |
| * i960.md (nonlocal_goto): Comment out code that modifies |
| static_chain_rtx. |
| * sparc.md (nonlocal_goto): Likewise. |
| (goto_handler_and_restore_v9): Comment out. |
| (goto_handler_and_restore_v9_sp64): Comment out. |
| |
| Thu Nov 19 23:44:38 1998 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de> |
| |
| * expr.c (STACK_BYTES): Delete unused macro. |
| * calls.c: Provide default for PREFERRED_STACK_BOUNDARY. |
| (STACK_BYTES): Use PREFERRED_STACK_BOUNDARY, not STACK_BOUNDARY. |
| (expand_call): Likewise. |
| (emit_library_call): Likewise. |
| (emit_library_call_value): Likewise. |
| * function.c: Provide default for PREFERRED_STACK_BOUNDARY. |
| (STACK_BYTES): Use PREFERRED_STACK_BOUNDARY, not STACK_BOUNDARY. |
| * explow.c: Provide default for PREFERRED_STACK_BOUNDARY. |
| (round_push): Use PREFERRED_STACK_BOUNDARY, not STACK_BOUNDARY. |
| (allocate_dynamic_stack_space): Likewise. |
| * tm.texi (PREFERRED_STACK_BOUNDARY): Document new macro. |
| (STACK_BOUNDARY): Update description to reflect the new situation. |
| |
| Thu Nov 19 22:20:51 1998 Jeffrey A Law (law@cygnus.com) |
| |
| * reorg.c (relax_delay_slots): When optimizing for code size, if a |
| return with a filled delay slot is followed by a return with an |
| unfilled delay slot, delete the first return and reemit the insn |
| that was previously in its delay slot. |
| |
| * i860.c (single_insn_src_p): Add missing parens. |
| * ginclude/math-3300.h: Likewise. |
| |
| Thu Nov 19 20:55:59 1998 H.J. Lu (hjl@gnu.org) |
| |
| * regclass.c (init_reg_sets_1): Add prototype. |
| (init_reg_modes): Likewise. |
| |
| 1998-11-19 Zack Weinberg <zack@rabi.phys.columbia.edu> |
| |
| * c-common.c: Change warning messages to say `comparison is |
| always true' or `comparison is always false' instead of the |
| confusing `is always 0', `is always 1'. |
| |
| Thu Nov 19 19:05:49 1998 Per Bothner <bothner@cygnus.com> |
| |
| * print-tree.c (print_node): After printing BLOCK or BIND_EXPR, |
| break instead of return (which loses closing '>'). |
| |
| Thu Nov 19 19:34:13 1998 Jeffrey A Law (law@cygnus.com) |
| |
| * i386.h (LEGITIMATE_CONSTANT_P): Reject CONST_DOUBLEs that are not |
| standard 387 constants. |
| |
| * i386.md (jump): Explicitly set "memory" attribute. |
| (indirect_jump, prologue_set_stack_ptr): Likewise. |
| (prologue_get_pc_and_set_got, pop): Likewise. |
| (allocate_stack_worder, blockage, return_internal): Likewise. |
| (return_pop_internal, nop): Likewise. |
| (epilogue_set_stack_ptr, leave): Likewise. |
| |
| Thu Nov 19 15:42:54 1998 Nick Clifton <nickc@cygnus.com> |
| |
| * config/arm/coff.h: Set USER_LABEL_PREFIX to "_". |
| |
| Thu Nov 19 23:20:59 1998 J"orn Rennecke <amylaar@cygnus.co.uk> |
| |
| * reload1.c (reload_reg_free_for_value_p): |
| Early auto_inc reloads don't conflict with outputs. |
| |
| Thu Nov 19 12:58:55 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> |
| |
| * configure.in: Don't do AC_CHECK_HEADERS(wait.h sys/wait.h). |
| Instead call AC_HEADER_SYS_WAIT. |
| |
| * collect2.c: Don't provide defaults for sys/wait.h macros. |
| * gcc.c: Likewise. |
| * protoize.c: Likewise. Also, don't include sys/wait.h. |
| |
| * system.h: Include sys/wait.h and provide macro defaults. |
| |
| 1998-11-19 Andreas Schwab <schwab@issan.cs.uni-dortmund.de> |
| |
| * Makefile.in (mandir): Set to @mandir@. |
| (man1dir): New variable to hold the former value of $(mandir). |
| Replace all uses of $(mandir) by $(man1dir). |
| |
| Wed Nov 18 16:31:28 1998 Jim Wilson <wilson@cygnus.com> |
| |
| * reload.c (find_reloads_address_part): If have a CONST_INT, create |
| a new one before passing it to force_const_mem. |
| |
| * reload.c (find_reloads_toplev): Pass &x instead of NULL_PTR in |
| find_reloads_address call. |
| |
| Wed Nov 18 22:13:00 1998 J"orn Rennecke <amylaar@cygnus.co.uk> |
| |
| * expr.c (store_expr): Don't generate load-store pair |
| if TEMP is identical (according to ==) with TARGET. |
| |
| Tue Nov 17 22:25:16 1998 J"orn Rennecke <amylaar@cygnus.co.uk> |
| |
| * reload1.c (reload_reg_free_for_value_p): When considered reload |
| has an output, matching inputs are not sufficient to avoid conflict. |
| |
| Tue Nov 17 11:51:16 1998 Mark Mitchell <mark@markmitchell.com> |
| |
| * hash.h (hash_table_key): New type. |
| (hash_entry): Change `string' field to generic `key'. |
| (hash_table): Add `comp' and `hash' functions. |
| (hash_table_init): Take them as input. |
| (hash_table_init_n): Likewise. |
| (hash_lookup): Modify for generic keys. |
| (hash_newfunc): Likewise. |
| (hash_traverse): Likewise. |
| (string_hash): New function. |
| (string_compare): Likewise. |
| (string_copy): Likewise. |
| * hash.c (hash_table_init_n): Modify for generic keys. |
| (hash_table_init): Likewise. |
| (hash_lookup): Likewise. |
| (hash_newfunc): Likewise. |
| (hash_traverse): Likewise. |
| (string_hash): Split out from hash_lookup. |
| (string_compare): New function. |
| (string_copy): Split out from hash_lookup. |
| * tlink.c (symbol_hash_newfunc): Modify for new interfaces to hash |
| tables. |
| (symbol_hash_lookup): Likewise. |
| (file_hash_newfunc): Likewise. |
| (file_hash_lookup): Likewise. |
| (demangled_hash_newfunc): Likewise. |
| (demangled_hash_lookup): Likewise. |
| (tlink_int): Likewise. |
| (read_repo_file): Likewise. |
| (recompile_files): Likewise. |
| (demangle_new_symbols): Likewise. |
| (scan_linker_output): Likewise. |
| |
| Tue Nov 17 17:13:53 1998 J"orn Rennecke <amylaar@cygnus.co.uk> |
| |
| * flow.c (insn_dead_p): New argument NOTES. Changed all callers. |
| |
| Mon Nov 16 17:56:07 1998 David Edelsohn <edelsohn@gnu.org> |
| |
| * rs6000.c (output_mi_thunk): Improve test for local branch. |
| |
| Mon Nov 16 17:56:07 1998 Franz Sirl <Franz.Sirl-kernel@lauterbach.com> |
| |
| * rs6000.c (output_mi_thunk): Correct test for aggregate values. |
| |
| Mon Nov 16 21:02:52 1998 J"orn Rennecke <amylaar@cygnus.co.uk> |
| |
| * reload1.c (reload_reg_free_before_p): Delete. |
| Changed all callers to use reload_reg_free_for_value_p instead. |
| (reload_reg_free_for_value_p): Handle more reload types. |
| A RELOAD_FOR_INPUT doesn't conflict with its |
| RELOAD_FOR_INPUT_ADDRESS / RELOAD_FOR_INPADDR_ADDRESS. |
| Add special case for OUT == const0_rtx. |
| Added ignore_address_reloads argument. Changed all callers. |
| |
| Mon Nov 16 02:22:29 1998 Jason Merrill <jason@yorick.cygnus.com> |
| |
| * toplev.c (compile_file): Don't pedwarn about undefined static |
| functions just because we passed -Wunused. |
| |
| Mon Nov 16 04:41:41 1998 J"orn Rennecke <amylaar@cygnus.co.uk> |
| |
| * function.c (purge_addressof_1): Unshare rtl created by |
| store_bit_field. |
| |
| Mon Nov 16 04:23:06 1998 J"orn Rennecke <amylaar@cygnus.co.uk> |
| |
| * regmove.c (regmove_optimize): Don't do anything but |
| optimize_reg_copy[123] when flag_regmove is not set. |
| |
| Sat Nov 14 15:05:07 1998 Richard Henderson <rth@cygnus.com> |
| |
| * alpha.md (addsi3, subsi3): Revise 5 Nov change to store DImode |
| value in paradoxical SImode result, rather than truncating midpoint. |
| |
| Fri Nov 13 22:19:23 1998 Richard Henderson <rth@cygnus.com> |
| |
| * alpha.c (reg_not_elim_operand): New. |
| * alpha.h (PREDICATE_CODES): Add it. |
| * alpha.md (s48addq, s48subq patterns): Use it as the predicate |
| for the multiplicand. |
| |
| Fri Nov 13 22:50:37 1998 David Edelsohn <edelsohn@gnu.org> |
| |
| * rs6000.md (movsf): Remove explicit secondary-reload-like |
| functionality. Only truncate SFmode store if in FPR. |
| (movsf splitters): Combine const_double splitters. |
| (movsf_hardfloat): Add GPR support. |
| |
| Fri Nov 13 11:02:11 1998 Stan Cox <scox@cygnus.com> |
| |
| * splet.h (SUBTARGET_OVERRIDE_OPTIONS): New to |
| deprecate -mlive-g0 and -mbroken-saverestore. |
| * t-splet (MULTILIB_OPTIONS): Likewise. |
| |
| * sparc.c (sparc_flat_compute_frame_size): Correctly calc args_size |
| in a leaf function. Clarify total_size/extra_size relationship. |
| |
| Thu Nov 12 19:20:57 1998 Geoffrey Noer <noer@cygnus.com> |
| |
| * i386/cygwin32.asm: Delete. |
| * i386/cygwin.asm: New file, renamed from cygwin32.asm. |
| * i386/cygwin32.h: Delete. |
| * i386/cygwin.h: New file, renamed from cygwin32.h. |
| * i386/t-cygwin32: Delete. |
| * i386/t-cygwin: New file, renamed from t-cygwin32. Include |
| cygwin.asm instead of cygwin32.asm. Remove "32" from comment. |
| * i386/x-cygwin32: Delete. |
| * i386/x-cygwin: New file, renamed from x-cygwin32. |
| * i386/xm-cygwin32: Delete. |
| * i386/xm-cygwin: New file, renamed from xm-cygwin32. Use newly |
| renamed cygwin_ funcs for path translations. |
| * i386/win32.h: Define __CYGWIN__ when -mcygwin given. |
| * i386/winnt.c: Remove "32" from comment about cygwin. |
| * i386/mingw32.h: Fix references to cygwin32.h in light of above. |
| * rs6000/cygwin32.h: Delete. |
| * rs6000/cygwin.h: New file, renamed from cygwin32.h. Add |
| -D__CYGWIN__ to CPP_PREDEFINES. |
| * rs6000/x-cygwin32: Delete. |
| * rs6000/x-cygwin: New file, renamed from x-cygwin32. |
| * rs6000/xm-cygwin32: Delete. |
| * rs6000/xm-cygwin: New file, renamed from xm-cygwin32. |
| |
| * configure.in: Check for cygwin* instead of cygwin32. Account |
| for the rename of cygwin-related config files to lose the "32"s. |
| * configure: Regenerate. |
| |
| * cccp.c, collect2.c, gcc.c, getpwd.c, libgcc2.c, protoize.c, |
| toplev.c: Change all refs to __CYGWIN32__ to __CYGWIN__. |
| |
| Wed Nov 11 12:25:19 1998 Tom Tromey <tromey@cygnus.com> |
| |
| * Makefile.in (JAVAGC): New macro. |
| * configure: Rebuilt. |
| * configure.in: Recognize --enable-java-gc argument. Subst |
| `JAVAGC' variable. |
| |
| Thu Nov 12 03:32:16 1998 J"orn Rennecke <amylaar@cygnus.co.uk> |
| |
| Handle equivalences that have been obscured by gcse: |
| |
| * reload1.c (reload): Handle equivalences set up in multiple places. |
| * local-alloc.c (reg_equiv_init_insns): New variable. |
| (no_equiv): New function. |
| (update_equiv_regs): Handle equivalences set up in multiple places. |
| Don't ignore an insn just because its destination is likely to be |
| spilled. |
| |
| Wed Nov 11 13:46:13 1998 Jim Wilson <wilson@cygnus.com> |
| |
| * except.c (expand_eh_return): Readd force_operand call lost in |
| Sept 15 change. |
| |
| Tue Nov 10 17:04:11 1998 David Edelsohn <edelsohn@gnu.org> |
| |
| * rs6000.h (LEGITIMIZE_ADDRESS): Add missing goto on last case. |
| |
| 1998-11-09 Andreas Schwab <schwab@issan.cs.uni-dortmund.de> |
| |
| * dbxout.c: Check HAVE_STAB_H instead of HAVE_STABS_H. |
| |
| Mon Nov 9 20:15:19 1998 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de> |
| |
| * regmove.c (regmove_optimize): Fix error in last change. |
| |
| Mon Nov 9 16:37:52 1998 Andrew Cagney <cagney@b1.cygnus.com> |
| |
| * mips.c (function_prologue): When TARGET_MIPS16, adjust the register |
| offset in the .mask pseudo to compensate for frame pointer adjustments. |
| (mips16_fp_args, build_mips16_call_stub): For little endian, do not |
| word swap arguments moved to/from FP registers. |
| * mips16.S (DFREVCMP): Reverse arguments to OPCODE. |
| |
| Mon Nov 9 09:47:06 1998 Jeff Law (law@cygnus.com) |
| |
| * version.c: Bump for snapshot. |
| |
| Mon Nov 9 02:14:14 1998 Jeff Law (law@cygnus.com) |
| |
| * version.c: Bump for snapshot. |
| |
| Mon Nov 9 03:06:24 1998 Jeffrey A Law (law@cygnus.com) |
| |
| * reload1.c (delete_output_reload_insn): If a pseudo is set multiple |
| times, then it can not be completely replaced. |
| |
| Mon Nov 9 00:39:02 1998 Richard Henderson <rth@cygnus.com> |
| |
| * alpha.md (call, call_value) [OSF]: Correct alt 3 insn length. |
| |
| Sun Nov 8 17:50:30 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> |
| |
| * gansidecl.h: Prepend a "G" to the macro wrapping this file |
| (to distinguish it from the macro wrapping ansidecl.h.) |
| Include libiberty's ansidecl.h. Remove all redundant definitions. |
| Define the PROTO() style macros in terms of the PARAMS() ones. |
| |
| |
| * calls.c (emit_library_call): Switch on ANSI_PROTOTYPES, not |
| __STDC__, when deciding whether to use ANSI variable args. |
| (emit_library_call_value): Likewise. |
| |
| * cccp.c (error): Likewise. |
| (warning): Likewise. |
| (error_with_line): Likewise. |
| (warning_with_line): Likewise. |
| (pedwarn): Likewise. |
| (pedwarn_with_line): Likewise. |
| (pedwarn_with_file_and_line): Likewise. |
| (fatal): Likewise. |
| |
| * cexp.y (error): Likewise. |
| (pedwarn): Likewise. |
| (warning): Likewise. |
| |
| * collect2.c (fatal_perror): Likewise. |
| (fatal): Likewise. |
| (error): Likewise. |
| |
| * combine.c (gen_rtx_combine): Likewise. |
| |
| * cpperror.c (cpp_message): Likewise. |
| (cpp_fatal): Likewise. |
| |
| * cpplib.c (cpp_error): Likewise. |
| (cpp_warning): Likewise. |
| (cpp_pedwarn): Likewise. |
| (cpp_error_with_line): Likewise. |
| (cpp_warning_with_line): Likewise. |
| (cpp_pedwarn_with_line): Likewise. |
| (cpp_pedwarn_with_file_and_line): Likewise. |
| |
| * cpplib.h: Don't define PARAMS() macro. |
| |
| * demangle.h: Likewise. |
| |
| * doprint.c (checkit): Switch on ANSI_PROTOTYPES, not __STDC__, |
| when deciding whether to use ANSI variable args. |
| |
| * emit-rtl.c (gen_rtx): Likewise. |
| (gen_rtvec): Likewise. |
| |
| * final.c (asm_fprintf): Likewise. |
| |
| * fix-header.c (cpp_message): Likewise. |
| (fatal): Likewise. |
| (cpp_fatal): Likewise. |
| |
| * gcc.c (concat): Likewise. |
| (fatal): Likewise. |
| (error): Likewise. |
| |
| * genattr.c (fatal): Likewise. |
| |
| * genattrtab.c (attr_rtx): Likewise. |
| (attr_printf): Likewise. |
| (fatal): Likewise. |
| |
| * gencodes.c (fatal): Likewise. |
| |
| * genconfig.c (fatal): Likewise. |
| |
| * genemit.c (fatal): Likewise. |
| |
| * genextract.c (fatal): Likewise. |
| |
| * genflags.c (fatal): Likewise. |
| |
| * genopinit.c (fatal): Likewise. |
| |
| * genoutput.c (fatal): Likewise. |
| (error): Likewise. |
| |
| * genpeep.c (fatal): Likewise. |
| |
| * genrecog.c (fatal): Likewise. |
| |
| * halfpic.h: Switch on ANSI_PROTOTYPES, not __STDC__, when |
| deciding whether to declare `tree_node' and `rtx_def'. |
| |
| * hash.h: Don't define stuff we get from gansidecl.h. |
| |
| * mips-tfile.c: Likewise. Define __proto() in terms of PARAMS(). |
| (fatal): Switch on ANSI_PROTOTYPES, not __STDC__, when deciding |
| whether to use ANSI variable args. |
| (error): Likewise. |
| |
| * prefix.c (concat): Likewise. |
| |
| * scan.h: Likewise. |
| |
| * system.h: Likewise. |
| |
| * toplev.c (error_with_file_and_line): Likewise. |
| (error_with_decl): Likewise. |
| (error_for_asm): Likewise. |
| (error): Likewise. |
| (fatal): Likewise. |
| (warning_with_file_and_line): Likewise. |
| (warning_with_decl): Likewise. |
| (warning_for_asm): Likewise. |
| (warning): Likewise. |
| (pedwarn): Likewise. |
| (pedwarn_with_decl): Likewise. |
| (pedwarn_with_file_and_line): Likewise. |
| (sorry): Likewise. |
| (really_sorry): Likewise. |
| |
| * toplev.h: Switch on ANSI_PROTOTYPES, not __STDC__, when deciding |
| whether to declare `tree_node' and `rtx_def'. |
| |
| * tree.c (build): Switch on ANSI_PROTOTYPES, not __STDC__, when |
| deciding whether to use ANSI variable args. |
| (build_nt): Likewise. |
| (build_parse_node): Likewise. |
| |
| Sun Nov 8 13:10:55 1998 Jeff Law (law@cygnus.com) |
| |
| * version.c: Bump for snapshot. |
| |
| Sat Nov 7 23:34:01 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> |
| |
| * Makefile.in (libcpp.a): Check RANLIB_TEST before runing RANLIB. |
| |
| Sat Nov 7 22:26:19 1998 David Edelsohn <edelsohn@gnu.org> |
| |
| * collect2.c (main, case 'b'): Use else if. |
| |
| Sat Nov 7 15:35:25 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> |
| |
| * configure.in (host_xm_file, build_xm_file, xm_file, tm_file): |
| Arrange to include gansidecl.h in {ht}config.h & tm.h just |
| before the config/ directory headers. |
| (tm_file_list, host_xm_file_list, build_xm_file_list): Handle |
| gansidecl.h in the list of dependencies. |
| |
| * Makefile.in (RTL_BASE_H): Don't depend on gansidecl.h. |
| (TREE_H, DEMANGLE_H, RECOG_H, REGS_H, libgcc2.a, stmp-multilib, |
| mbchar.o, collect2.o, pexecute.o, vfprintf.o, splay-tree.o, gcc.o, |
| gencheck.o, choose-temp.o, mkstemp.o, mkstemp.o, prefix.o, |
| dyn-string.o, cexp.o, cccp.o, cppmain.o, cpplib.o, cpperror.o, |
| cppexp.o, cppfiles.o, cpphash.o, cppalloc.o, scan-decls.o): |
| Likewise. |
| |
| * cccp.c: Don't include gansidecl.h. |
| * cexp.y: Likewise. |
| * collect2.c: Likewise. |
| * config/c4x/c4x.c: Likewise. |
| * config/v850/v850.h: Likewise. |
| * cppalloc.c: Likewise. |
| * cpperror.c: Likewise. |
| * cppexp.c: Likewise. |
| * cppfiles.c: Likewise. |
| * cpphash.c: Likewise. |
| * cpplib.c: Likewise. |
| * cppmain.c: Likewise. |
| * cppulp.c: Likewise. |
| * demangle.h: Likewise. |
| * doprint.c: Likewise. |
| * dyn-string.c: Likewise. |
| * eh-common.h: Likewise. |
| * fix-header.c: Likewise. |
| * frame.c: Likewise. |
| * gcc.c: Likewise. |
| * gcov.c: Likewise. |
| * gen-protos.c: Likewise. |
| * gencheck.c: Likewise. |
| * halfpic.h: Likewise. |
| * hash.c: Likewise. |
| * machmode.h: Likewise. |
| * mbchar.c: Likewise. |
| * prefix.c: Likewise. |
| * protoize.c: Likewise. |
| * recog.h: Likewise. |
| * rtl.h: Likewise. |
| * scan-decls.c: Likewise. |
| * tree.h: Likewise. |
| * varray.h: Likewise. |
| |
| Sat Nov 7 11:37:53 1998 Richard Henderson <rth@cygnus.com> |
| |
| * i386.md (call_value_pop): If we're not popping anything, |
| defer to call_value. |
| (call_pop): Likewise defer to call. |
| |
| Sat Nov 7 02:49:56 1998 Richard Henderson <rth@cygnus.com> |
| |
| * function.c (purge_addressof): Clear purge_addressof_replacements |
| only after processing the whole function. |
| |
| Sat Nov 7 00:54:55 1998 Jeffrey A Law (law@cygnus.com) |
| |
| * reload1.c (reload): If we can not perform a particular elimination |
| when we thought we could earlier, then we must always iterate through |
| the loop at least one more time. |
| |
| Fri Nov 6 19:37:33 1998 Richard Henderson <rth@cygnus.com> |
| |
| * alpha.c (add_operand): Simplify the CONST_INT match. |
| (sext_add_operand): Correct typo in comparison by using |
| CONST_OK_FOR_LETTER_P. |
| * alpha.md (s?addq): Use sext_add_operand to allow the negative |
| constant alternatives to be generated. |
| (mulsi3, muldi3, umuldi3_highpart): Loosen constraints to allow |
| small constants, since the hw instructions do. |
| |
| Fri Nov 6 20:15:19 1998 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de> |
| |
| * reload1.c (emit_reload_insns): When rewriting the SET_DEST of a |
| previous insn to store directly into our reload register, make sure |
| that if the source of the previous insn is a reload register, its |
| spill_reg_store and spill_reg_stored_to values are cleared. |
| |
| Fri Nov 6 16:35:10 1998 David Edelsohn <edelsohn@gnu.org> |
| |
| * rs6000.md (floatunssidf2_internal splitter): Use base register |
| operand, not hard-coded SP. |
| |
| Fri Nov 6 04:07:53 1998 David S. Miller <davem@pierdol.cobaltmicro.com> |
| |
| * jump.c (calculate_can_reach_end): Fix thinko. |
| |
| Fri Nov 6 00:16:04 1998 Jeffrey A Law (law@cygnus.com) |
| |
| * reorg.c (fill_simple_delay_slots): Fix typo. |
| |
| * romp.h (LEGITIMIZE_ADDRESS): Fix typo. |
| |
| Fri Nov 6 00:10:00 1998 Jan Hubicka (hubicka@freesoft.cz) |
| |
| * i386.md (extendsidi2): Use # in the output template. |
| (extendsidi splitters): New splitters. |
| |
| Thu Nov 5 11:13:27 1998 Nick Clifton <nickc@cygnus.com> |
| |
| * configure.in: Use unknown-elf.h as tm_file for arm-elf |
| configurations. |
| * configure: Regenerate. |
| |
| Thu Nov 5 07:59:05 1998 David S. Miller <davem@pierdol.cobaltmicro.com> |
| |
| * jump.c (init_label_info, delete_barrier_successors, |
| mark_all_labels, delete_unreferenced_labels, |
| delete_noop_moves, calculate_can_reach_end): New functions broken |
| out of jump_optimize. |
| (jump_optimize): Use them. |
| |
| Thu Nov 5 07:57:45 1998 Andrew MacLeod <amacleod@cygnus.com> |
| |
| * except.c (expand_fixup_region_end): Make sure outer context labels |
| are not issued in an inner context during cleanups. |
| |
| Thu Nov 5 04:03:06 1998 Richard Henderson <rth@cygnus.com> |
| |
| * alpha.md (addsi3, subsi3): No new temporaries once cse is |
| no longer expected. |
| |
| Thu Nov 5 03:29:19 1998 Richard Henderson <rth@cygnus.com> |
| |
| * alpha.md (addsi3, subsi3): Expand to a DImode temporary so as |
| to expose this midpoint to CSE. |
| |
| Thu Nov 5 03:42:54 1998 David S. Miller <davem@pierdol.cobaltmicro.com> |
| |
| * config/sparc/sparc.md (movdf_const_intreg_sp64): Enable again. |
| |
| Thu Nov 5 10:53:01 1998 Andreas Schwab <schwab@issan.cs.uni-dortmund.de> |
| |
| * configure.in: Bring over gcc2 change of Nov 19 1997. |
| |
| Wed Nov 4 23:43:08 1998 Graham <grahams@rcp.co.uk> |
| |
| * toplev.c (output_lang_identify): Make definition dependent on |
| ASM_IDENTIFY_LANGUAGE. |
| |
| * print-rtl.c (spaces): Make static. |
| |
| Wed Nov 4 22:16:36 1998 Hans-Peter Nilsson <hp@axis.se> |
| |
| * extend.texi: Clarify proper uses for register clobbers in asms. |
| |
| Wed Nov 4 22:16:36 1998 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de> |
| |
| * recog.h (enum op_type): Define. |
| (constrain_operands): Adjust prototype. |
| (recog_op_type): Declare new variable. |
| * recog.c (recog_op_type): New variable. |
| (insn_invalid_p): Allow modifying an asm statement after reload. |
| (extract_insn): Set up recog_op_type. |
| (constrain_operands): Lose INSN_CODE_NUM arg. All callers changed. |
| Don't compute operand types, use recog_op_type. |
| Use the information computed by extract_insn instead of the previous |
| method of finding it by insn code number. |
| * caller-save.c (init_caller_save): Use extract_insn, not insn_extract. |
| * reorg.c (fill_slots_from_thread): Likewise. |
| * reload1.c (reload_as_needed): Likewise. |
| (gen_reload): Likewise. |
| (inc_for_reload): Likewise. |
| (reload_cse_simplify_operands): Likewise. |
| Use the information computed by extract_insn instead of the previous |
| method of finding it by insn code number. |
| * genattrtab.c (write_attr_case): Generate call to extract_insn, not |
| insn_extract. |
| * final.c (final_scan_insn): Use extract_insn, not insn_extract. |
| (cleanup_operand_subregs): Use extract_insn, not insn_extract. |
| Use the information computed by extract_insn instead of the previous |
| method of finding it by insn code number. |
| * regmove.c (find_matches): Likewise. Change meaning of the return |
| value to be nonzero if the optimization can be performed, zero if |
| not. All callers changed. |
| Shorten some variable names to fix formatting problems. |
| (regmove_optimize): Shorten some variable names to fix formatting |
| problems. |
| Use the information computed by extract_insn instead of the previous |
| method of finding it by insn code number. |
| * regclass.c (scan_one_insn): Likewise. |
| (record_reg_classes): Don't compute operand types, use recog_op_type. |
| * reload.c (find_reloads): Lose CONSTRAINTS1 variable; use |
| recog_constraints instead. |
| |
| Wed Nov 4 21:37:46 1998 Jeffrey A Law (law@cygnus.com) |
| |
| * rtl.h (flow2_completed): Declare. |
| * flow.c (flow2_completed): Definition. |
| * toplev.c (rest_of_compilation): Set and clear flow2_completed |
| as necessary. |
| |
| Wed Nov 4 19:15:37 1998 Melissa O'Neill <oneill@cs.sfu.ca> |
| |
| * Makefile.in (libcpp.a): Ranlib libcpp.a. |
| |
| * cppulp.c (user_label_prefix): Initialize. |
| |
| Wed Nov 4 19:07:08 1998 John Wehle (john@feith.com) |
| |
| * flow.c (mark_regs_live_at_end): Mark the stack pointer as live |
| at a RETURN if current_function_sp_is_unchanging is set. |
| |
| Wed Nov 4 18:16:29 1998 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl> |
| |
| * emit-rtl.c (try_split): Fixed error in Oct 10 patch. |
| |
| Wed Nov 4 15:11:15 1998 Geoffrey Noer <noer@cygnus.com> |
| |
| * i386/cygwin32.h (MASK_WIN32, MASK_CYGWIN, MASK_WINDOWS, MASK_DLL, |
| TARGET_WIN32, TARGET_CYGWIN, TARGET_WINDOWS, TARGET_DLL): New. |
| (SUBTARGET_SWITCHES): Add -mno-cygwin, -mcygwin, and -mdll options. |
| (CPP_PREDEFINES): Don't define __CYGWIN32__ here. |
| (STARTFILE_SPEC): Handle -mdll, -mno-cygwin options. |
| (CPP_SPEC): Handle -mno-cygwin option. Define __CYWIN__ in addition |
| to __CYGWIN32__. |
| (LIB_SPEC): Handle -mno-cygwin option. |
| (LINK_SPEC): Handle -mdll. |
| |
| Wed Nov 4 22:56:14 1998 J"orn Rennecke <amylaar@cygnus.co.uk> |
| |
| * reload.c (find_reloads): Fix test for usage by other reload |
| to handle secondary reloads properly. |
| |
| Wed Nov 4 17:25:10 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> |
| |
| * reload1.c (ELIMINABLE_REGS, NUM_ELIMINABLE_REGS): Introduce an |
| intermediate structure which has exactly the members provided by |
| ELIMINABLE_REGS. Define NUM_ELIMINABLE_REGS in terms of the |
| static intermediate structure. |
| |
| (init_elim_table): Xmalloc() `reg_eliminate', and initialize it |
| from the intermediate structure. Do the same analogous fix in |
| the case where ELIMINABLE_REGS is not defined. |
| |
| Tue Nov 3 20:50:03 1998 Jeffrey A Law (law@cygnus.com) |
| |
| * pa.h (SELECT_SECTION): Fix thinko. |
| |
| Tue Nov 3 17:51:36 1998 Jim Wilson <wilson@cygnus.com> |
| |
| * dwarf2out.c (output_call_frame_info): Comments on last change. |
| |
| Tue Nov 3 07:51:43 1998 Richard Earnshaw (rearnsha@arm.com) |
| |
| * arm.c (add_constant): When taking the address of an item in the |
| pool, get the mode of the item addressed. |
| |
| * arm.c (final_prescan_insn case INSN): If an insn doesn't |
| contain a SET or a PARALLEL, don't consider it for conditional |
| execution. |
| |
| Restore ABI compatibility for NetBSD. |
| * arm/netbsd.h (DEFAULT_PCC_STRUCT_RETURN): Override setting in |
| arm.h. |
| (RETURN_IN_MEMORY): Likewise. |
| |
| Mon Nov 2 11:46:17 1998 Doug Evans <devans@canuck.cygnus.com> |
| |
| * m32r/m32r.c (m32r_expand_block_move): Fix byte count computations. |
| (m32r_output_block_move): Rewrite bytes < 4 handling. |
| |
| Mon Nov 2 10:10:35 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> |
| |
| * configure.in: Call AC_FUNC_VFORK. |
| |
| * collect2.c: Define VFORK_STRING as a printable string for |
| error messages (either "vfork" or "fork".) If HAVE_VFORK_H is |
| defined, include vfork.h. If VMS is defined, define vfork() |
| appropriately. Remove vfork check on USG, we're using autoconf. |
| (collect_execute): Pass VFORK_STRING to fatal_perror instead of |
| checking locally what string to pass. |
| (scan_prog_file): Likewise. |
| (scan_libraries): Likewise. |
| |
| * gcc.c: Remove vfork check on USG, we're using autoconf. |
| Besides, no calls to vfork/fork occur in this file. |
| |
| * protoize.c: Likewise. |
| |
| Mon Nov 2 07:52:28 1998 Alexandre Oliva <oliva@dcc.unicamp.br> |
| |
| * configure.in (DEFAULT_LINKER): Renamed from LD. |
| (DEFAULT_ASSEMBLER): Renamed from AS; reverted Schwab's patch. |
| (gcc_cv_as): Try $DEFAULT_ASSEMBLER before $AS. |
| * configure: Rebuilt. |
| |
| Mon Nov 2 01:48:10 1998 Alexandre Oliva <oliva@dcc.unicamp.br> |
| |
| * BUGS: Fix the regexp for `more' to find the appropriate node. |
| Reported by Joerg Pietschmann <joerg_pietschmann@zkb.ch> |
| |
| * BUGS: Added link to the WWW FAQ. |
| |
| Sun Nov 1 18:27:15 1998 Jeff Law (law@cygnus.com) |
| |
| * version.c: Bump for snapshot. |
| |
| Sun Nov 1 11:04:32 1998 Jeffrey A Law (law@cygnus.com) |
| |
| * From Christian Gafton: |
| * i386/linux.h (CPP_PREDEFINES): Add -D__i386__. |
| * sparc/linux.h (CPP_PREDEFINES): Add -D__sparc__. |
| * sparc/linux64.h (CPP_PREDEFINES): Add -D__sparc__. |
| |
| Sat Oct 31 21:42:39 1998 Mark Mitchell <mark@markmitchell.com> |
| |
| * c-common.c (c_get_alias_set): Allow all type-punning through |
| unions. Don't get confused about the type of a bit-field, despite |
| the antics of build_modify_expr. |
| |
| Sat Oct 31 22:35:29 1998 Jean-Pierre Radley <jpr@jpr.com> |
| |
| * fixinc.sco: Parameterize #include_next values. |
| * fixinc/fixinc.sco: Likewise. |
| |
| Sat Oct 31 20:39:35 1998 Jeffrey A Law (law@cygnus.com) |
| |
| * toplev.c (rest_of_compilation): No longer set reload_completed. |
| * reload1.c (reload): Set it here. Perform instruction splitting |
| after reload has completed if we will be running the scheduler |
| again. |
| |
| Sat Oct 31 12:30:02 1998 Jeffrey A Law (law@cygnus.com) |
| |
| * jump.c (jump_optimize): Initialize mappings from INSN_UID to |
| EH region if exceptions are enabled and we're performing cross |
| jump optimizations. |
| (find_cross_jump): Exit loop if the insns are in different EH regions. |
| |
| Sat Oct 31 10:02:48 1998 Mark Mitchell <mark@markmitchell.com> |
| |
| * dwarf2out.c (output_call_frame_info): Use |
| ASM_OUTPUT_DWARF_DELTA4 for the CIE offset to match frame.c. |
| |
| Sat Oct 31 10:23:14 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> |
| |
| Reinstall Apr 24th fix, lost during May 6th gcc2 merge: |
| * c-common.c (check_format_info): Don't check for the 'x' |
| format character twice, instead check for 'x' and 'X' |
| |
| Fri Oct 30 14:50:25 1998 Jeffrey A Law (law@cygnus.com) |
| |
| * configure.in (assembler features): Also make gas is configured if |
| we find it in the source tree. |
| |
| Fri Oct 30 13:23:20 1998 Richard Henderson <rth@cygnus.com> |
| |
| * i386.c (i386_comp_type_attributes): Compare whether the |
| attributes are defined, not their tree nodes. |
| |
| Fri Oct 30 11:39:47 1998 Alexandre Oliva <oliva@dcc.unicamp.br> |
| |
| * configure.in (gxx_include_dir): Bitten by autoconf quoting |
| characters. :-( |
| * configure: Rebuilt. |
| |
| Fri Oct 30 10:43:29 1998 Andreas Schwab <schwab@issan.cs.uni-dortmund.de> |
| |
| * configure.in: Ignore non-absolute value in $AS. |
| |
| Fri Oct 30 00:54:25 1998 Peter Jakubek <pjak@snafu.de> |
| |
| * m68k.h (INDIRECTABLE_1_ADDRESS_P): Fix thinko. |
| |
| Fri Oct 30 00:42:34 1998 Mark Elbrecht <snowball3@usa.net> |
| |
| * configure.in (msdosdjgpp): Set exeext and target_alias. |
| |
| Thu Oct 29 23:55:43 1998 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de> |
| |
| * flow.c (XNMALLOC): New macro. |
| (flow_int_list_blocks, basic_block_succ, basic_block_pred): New |
| static variables. |
| (add_edge, add_edge_to_label): New static functions. |
| (free_bb_memory): New function. |
| (flow_delete_insn): Delete function. |
| (basic_block_drops_in): Delete variable. |
| (find_basic_blocks): Allocate and initialize basic_block_head, |
| basic_block_succ. Don't allocate basic_block_drops_in. |
| Call free_bb_memory at the beginning. |
| (find_basic_blocks_1): Don't do multiple passes. |
| Delete code to compute basic_block_drops_in. |
| After calling make_edges, mark blocks reached by current block live. |
| Update test for unreachable live blocks. |
| (mark_label_ref): Delete args X, CHECKDUP. Add PRED arg. All callers |
| changed. |
| Simplify to call add_edge_to_label when a LABEL_REF is found. |
| (make_edges): Simplify to call add_edge_to_label instead of |
| mark_label_ref most of the time. |
| Compute here whether control drops into the next block. |
| (delete_unreachable_blocks): Return void. All callers changed. |
| Delete unreachable blocks in reverse order. |
| After deleting all unreachable blocks, renumber the remaining ones |
| and update n_basic_blocks. |
| (delete_block): Speed up deletion a bit. |
| Don't set basic_block_drops_in for deleted blocks. |
| (free_basic_block_vars): Don't free basic_block_drops_in. |
| (life_analysis_1): Update to use new edge representation. |
| (dump_flow_info): Delete code to print basic block info; call |
| dump_bb_data instead. |
| (compute_preds_succs): Delete code to recompute basic_block_drops_in |
| and uid_block_number. |
| Simply copy the previously computed cfg. |
| (dump_bb_data): New arg LIVE_INFO. All callers changed. |
| Print register lifetime information if LIVE_INFO is nonzero. |
| * basic-block.h (dump_bb_data): Adjust prototype. |
| * gcse.c (gcse_main): Update call to dump_bb_data. |
| * rtl.h (free_bb_memory): Declare. |
| * toplev.c (rest_of_compilation): Call free_bb_memory. |
| |
| * reload1.c (struct elim_table): Delete MAX_OFFSET member. |
| (update_eliminable_offsets): Don't compute it. |
| (set_initial_elim_offsets): Don't initialize it. |
| Break out some code into set_initial_label_offsets so the rest of |
| this function can be called from reload_as_needed. |
| Assume that INITIAL_FRAME_POINTER_OFFSET is defined when |
| ELIMINABLE_REGS isn't. |
| (set_initial_label_offsets): New function, broken out of |
| set_initial_elim_offsets. |
| (set_offsets_for_label): New function, broken out of set_label_offsets |
| and reload_as_needed. |
| (reload): Call the two new functions. |
| (reload_as_needed): Call set_initial_elim_offsets instead of |
| duplicating the code. Likewise for set_offsets_for_label. |
| |
| * reload1.c (choose_reload_regs): Fix typo in Oct 17 change. |
| (emit_reload_insns): Ensure that when we set reg_reloaded_valid for |
| any hard reg, reg_reloaded_dead contains valid data. |
| |
| Thu Oct 29 22:30:54 1998 Marcus Meissner <Marcus.Meissner@informatik.uni-erlangen.de> |
| |
| * i386.c (i386_comp_type_attributes): Return nonzero for mismatched |
| "stdcall" and "cdecl" attributes. |
| |
| Thu Oct 29 19:05:17 1998 Jim Wilson <wilson@cygnus.com> |
| |
| * sched.c (update_flow_info): Add code to ! found_orig_dest case to |
| handle deleted no-op moves of hard registers. |
| * haifa-sched.c (update_flow_info): Likewise. |
| |
| Thu Oct 29 18:07:47 1998 Jeffrey A Law (law@cygnus.com) |
| |
| * mips.md (reload_{in,out}{si,di}): Emit a USE of HILO at the end |
| of the sequences to reload the HILO register which do not actually |
| reference HILO. |
| |
| Thu Oct 29 12:39:35 1998 Jim Wilson <wilson@cygnus.com> |
| |
| * c-common.c (c_get_alias_set): Handle ARRAY_REF of union field. |
| |
| Thu Oct 29 14:10:22 1998 Andrew MacLeod <amacleod@cygnus.com> |
| |
| * except.c (emit_eh_context): Make the EH context register stay alive |
| at -O0 so stupid.c doesn't get confused. |
| |
| 1998-10-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl> |
| |
| * emit-rtl.c (try_split): Do not try to split a BARRIER. |
| |
| Thu Oct 29 01:33:54 1998 Jan Hubicka <hubicka@freesoft.cz> |
| Jeffrey A Law (law@cygnus.com) |
| |
| * i386.md: Change ix86_cpu == PROCESSOR_PENTIUM to TARGET_PENTIUM. |
| (zero_extendsidi2): Use # in output template and handle completely by |
| splits. |
| (zero_extend splitters): New define_splits. |
| (ashiftrt_32): New pattern. |
| |
| Wed Oct 28 22:58:35 1998 Jason Merrill <jason@yorick.cygnus.com> |
| |
| * tree.c (append_random_chars): New fn. |
| (get_file_function_name_long): Use it. |
| |
| Wed Oct 28 22:27:05 1998 Richard Henderson <rth@cygnus.com> |
| |
| * Makefile.in (cc1): Put C_OBJS, and thence @extra_c_objs@ last. |
| (LIBCPP_OBJS): New. Add cppulp.o. |
| (cppmain, fix-header): Depend on and use libcpp.a. |
| * configure.in (extra_c_objs, extra_cxx_objs): Use libcpp.a instead |
| of the individual object files. |
| * objc/Make-lang.in (cc1obj): Put OBJC_OBJS, and thence @extra_c_objs@, |
| last. |
| |
| * cccp.c (user_label_prefix): New. |
| (main): Set it off -f*leading-underscore. |
| (special_symbol): Use it. |
| * cpplib.c (special_symbol): Likewise. |
| (cpp_handle_option): Handle -f*leading-underscore. |
| * cppulp.c: New file. |
| |
| * output.h (user_label_prefix): Declare it. |
| * dwarf2out.c (ASM_NAME_TO_STRING): Prepend user_label_prefix. |
| * toplev.c (f_options, main): Handle -f*leading-underscore. |
| |
| * defaults.h (ASM_OUTPUT_LABELREF): Use asm_fprintf instead of |
| referencing USER_LABEL_PREFIX directly. |
| * config/nextstep.h (ASM_OUTPUT_LABELREF): Likewise. |
| * m32r/m32r.h (ASM_OUTPUT_LABELREF): Likewise. |
| * final.c (asm_fprintf): Use user_label_prefix instead. |
| * arm/thumb.c (thumb_print_operand): Likewise. |
| |
| * gcc.c (default_compilers): Pass -f*leading-underscore on to |
| cpp wherever appropriate. |
| |
| Wed Oct 28 23:09:25 1998 Robert Lipe <robertl@dgii.com> |
| |
| * sco5.h (SUBTARGET_SWITCHES): Add documentation for OpenServer- |
| specific compiler switches. |
| |
| Wed Oct 28 21:05:53 1998 Jeffrey A Law (law@cygnus.com) |
| |
| * Makefile.in (c-common.o): Depend on c-pragma.h. Use $(RTL_H) instead |
| of rtl.h. |
| |
| Wed Oct 28 20:52:47 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> |
| |
| * gcc.c (EXTRA_SPECS, extra_specs): Introduce an intermediate |
| structure which has exactly the members provided by EXTRA_SPECS. |
| Xmalloc() the real `extra_specs', and initialize it from this |
| intermediate structure. |
| |
| * alpha.h (EXTRA_SPECS): Revert change for missing initializers. |
| |
| * mips.h (EXTRA_SPECS): Likewise. |
| |
| * sparc.h (EXTRA_SPECS): Likewise. |
| |
| Wed Oct 28 16:46:07 1998 Andreas Schwab <schwab@issan.cs.uni-dortmund.de> |
| |
| * function.c (purge_addressof_1): Instead of aborting when a |
| bitfield insertion as a replacement for (MEM (ADDRESSOF)) does not |
| work just put the ADDRESSOF on stack. Otherwise remember all such |
| successful replacements, so that exactly the same replacements |
| can be made on the REG_NOTEs. Remove the special case for CALL |
| insns again. |
| (purge_addressof_replacements): New variable. |
| (purge_addressof): Clear it at end. |
| |
| 1998-10-28 Zack Weinberg <zack@rabi.phys.columbia.edu> |
| |
| * c-lang.c: Declare extern char *yy_cur if USE_CPPLIB. |
| (lang_init): Call check_newline always. |
| * c-lex.c (init_parse) [USE_CPPLIB=1]: After calling |
| cpp_start_read, set yy_cur and yy_lim to read from |
| parse_in.token_buffer, so that we'll see the first #line |
| directive. |
| * cpplib.c (cpp_start_read): finclude the main input file |
| before processing -include/-imacros. Process -imacros and |
| -include separately, and handle -include by stacking a |
| buffer for the file in question as if it'd been #included. |
| * toplev.c (documented_lang_options): Recognize -H when |
| USE_CPPLIB is on. |
| |
| 1998-10-28 Zack Weinberg <zack@rabi.phys.columbia.edu> |
| |
| * cpplib.c: Merge do_once into do_pragma. Break file handling |
| code out of do_include. |
| Move append_include_chain, deps_output, |
| file_cleanup, redundant_include_p, import_hash, |
| lookup_import, add_import, read_filename_string, read_name_map, |
| open_include_file, finclude, safe_read to cppfiles.c. |
| Move prototypes for deps_output, append_include_chain, |
| finclude to cpplib.h. Move definition of struct |
| file_name_list there also. |
| |
| * cppfiles.c: New file. Contains all the above functions |
| broken out of cpplib.c; also hack_vms_include_specification |
| from cccp.c and find_include_file, a new function broken out of |
| do_include. |
| |
| * Makefile.in (cppmain): Depend on cppfiles.o. |
| (fix-header): Likewise. |
| (cppfiles.o): New target. |
| * configure.in (--enable-c-cpplib): Add cppfiles.o to |
| extra_c_objs. Add ../cppfiles.o to extra_cxx_objs. |
| |
| Wed Oct 28 14:06:49 1998 Jim Wilson <wilson@cygnus.com> |
| |
| * dwarfout.c (dwarfout_file_scope_decl): If DECL_CONTEXT, don't abort |
| if pending_types is nonzero. |
| (dwarfout_finish): Verify pending_types is zero before finishing. |
| |
| Wed Oct 28 10:29:09 1998 Nick Clifton <nickc@cygnus.com> |
| |
| * expr.c (convert_move): Use shifts to perform the move if a |
| suitable extend pattern cannot be found. Code written by |
| Richard Henderson <rth@cygnus.com>. |
| |
| Wed Oct 28 03:59:29 1998 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de> |
| |
| * regclass.c (renumber, regno_allocated): New static variables, moved |
| out of allocate_reg_info. |
| (allocate_reg_info): Move these two variables outside the function. |
| Move code to free memory into new function free_reg_info. |
| (free_reg_info): New function, broken out of allocate_reg_info. |
| * toplev.c (compile_file): Call free_reg_info, not allocate_reg_info. |
| * rtl.h (allocate_reg_info): Don't declare. |
| (free_reg_info): Declare. |
| |
| * final.c (cleanup_subreg_operands): ASM_INPUTs need no treatment. |
| |
| Wed Oct 28 02:38:12 1998 Jason Merrill <jason@yorick.cygnus.com> |
| |
| * toplev.c (compile_file): Temporarily revert last change. |
| |
| Wed Oct 28 00:00:35 1998 Jason Merrill <jason@yorick.cygnus.com> |
| |
| * c-typeck.c (convert_for_assignment): Parenthesize. |
| |
| 1998-10-28 Andreas Schwab <schwab@issan.cs.uni-dortmund.de> |
| |
| * reload1.c (delete_output_reload): Avoid ambigous else. |
| |
| Wed Oct 28 00:10:35 1998 Jeffrey A Law (law@cygnus.com) |
| |
| * toplev.c (compile_file): Call allocate_reg_info to free register |
| table memory. |
| * rtl.h (allocate_reg_info): Declare. |
| |
| * PROJECTS: Remove entry for local spilling. |
| |
| * final.c (cleanup_subreg_operands): New function. |
| (final_scan_insn): Use it. |
| (alter_subreg): Clear the "used" field when we turn a SUBREG into |
| a REG. |
| * reload1.c (reload): Delete CLOBBER insns and also cleanup SUBREG |
| operands when reload has finished. |
| * reload.h (cleanup_subreg_operands): Declare.. |
| * flow.c (life_analysis_1): No longer delete CLOBBER insns after |
| reload. Handled in reload itself. |
| |
| Tue Oct 27 23:32:34 1998 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de> |
| |
| * reload1.c (verify_initial_offsets): New function. |
| (reload): Call it after reload_as_needed. Also verify that the frame |
| size stays constant during reload_as_needed. |
| * i386.h (CONST_DOUBLE_OK_FOR_LETTER_P): Undo Jul 26 change. |
| |
| * reload.h (struct insn_chain): Add need_operand_change element. |
| * reload1.c (new_insn_chain): Clear it. |
| (calculate_needs_all_insns): Set it; don't overload need_reload. |
| (reload_as_needed): Use it. |
| |
| * reload.c (find_reloads_address): Use BASE_REG_CLASS instead of |
| reload_address_base_reg_class throughout. Similar for INDEX_REG_CLASS |
| and reload_address_index_reg_class. |
| (find_reloads_address_1): Likewise. |
| * reload.h (reload_address_base_reg_class, |
| reload_address_index_reg_class): Don't declare. |
| * reload1.c (reg_old_renumber, pseudo_previous_regs, |
| pseudo_forbidden_regs, bad_spill_regs_global): New static variables. |
| (used_spill_regs): Now static. |
| (reload_address_base_reg_class, reload_address_index_reg_class, |
| regs_explicitly_used, counted_for_groups, counted_for_nongroups, |
| basic_block_needs, max_needs, group_size, group_mode, max_groups, |
| max_nongroups, max_needs_insn, max_groups_insn, max_nongroups_insn, |
| forbidden_regs): |
| Deleted variables. |
| (init_reload): Delete code to compute base/index reg classes. |
| (reload): Delete variable J. |
| Delete code to manage basic_block_needs. |
| Don't compute regs_explicitly_used. |
| Allocate, initialize and free reg_old_renumber, pseudo_forbidden_regs, |
| pseudo_previous_regs. |
| Initialize bad_spill_regs_global. |
| Don't call order_regs_for_reload here. |
| Don't initialize spill_reg_order and n_spills. |
| Don't forbid explicitly used regs to be used for spill regs. |
| Change main loop to infinite loop, with explicit break statements. |
| Make SOMETHING_CHANGED variable local to that loop. |
| Don't initialize max_needs, max_groups, max_nongroups, max_needs_insn, |
| max_groups_insn, max_nongroups_insn, group_size, group_mode. |
| Make sure spilled_pseudos is cleared before calling spill_hard_reg or |
| new_spill_reg. |
| Don't call dump_needs. |
| Delete code to reset potential_reload_regs. |
| Delete code to terminate loop conditional on the global needs variables |
| showing no further needs. |
| (calculate_needs_all_insns): Return void. All callers changed. |
| Initialize something_needs_elimination here, not in reload. |
| Delete avoid_return_reg kludge. |
| (calculate_needs): Lose AVOID_RETURN_REG and GLOBAL args, return void. |
| All callers changed. |
| Initialize the group_mode and group_size elements of the arg CHAIN. |
| Delete code to manage basic_block_needs. |
| Operate on elements of CHAIN instead of global variables. |
| Delete avoid_return_reg kludge. |
| (find_tworeg_group): Lose GLOBAL arg, take CHAIN arg, return void. |
| All callers changed. |
| Operate on elements of CHAIN instead of global variables. |
| Delete special SMALL_REGISTER_CLASSES code. |
| Delete spill_failure code; now in new_spill_reg. |
| (find_group): Lose GLOBAL arg, take CHAIN arg, return void. |
| All callers changed. |
| Operate on elements of CHAIN instead of global variables. |
| (maybe_mark_pseudo_spilled): New static function. |
| (find_reload_regs): Lose GLOBAL arg, take CHAIN arg, return void. |
| All callers changed. |
| Operate on elements of CHAIN instead of global variables. |
| Call order_regs_for_reload here, not in reload. |
| Initialize spill_reg_order and n_spills. |
| Simplify test whether an asm insn is involved. |
| Delete spill_failure code; now in new_spill_reg. |
| Call maybe_mark_pseudo_spilled for everything marked as live in |
| CHAIN. Merge CHAIN's used_spill_regs into the global variable |
| used_spill_regs. |
| (dump_needs): Take CHAIN arg. No longer static, to prevent the |
| compiler from optimizing this function (now unused) away. |
| Operate on elements of CHAIN instead of global variables. |
| (possible_group_p): Lose MAX_GROUPS arg, take CHAIN arg. All callers |
| changed. |
| Operate on elements of CHAIN instead of global variables. |
| (count_possible_groups): Lose GROUP_SIZE, GROUP_MODE, MAX_GROUPS args, |
| take CHAIN arg. All callers changed. |
| Operate on elements of CHAIN instead of global variables. |
| (new_spill_reg): Lose MAX_NEEDS, MAX_NONGROUPS, GLOBAL args, take |
| CHAIN, NONGROUP args. Return void. All callers changed. |
| Verify caller isn't trying to spill a pseudo. |
| Simplify test for illegal reg, just use bad_spill_regs. |
| Generate better error messages. |
| Operate on elements of CHAIN instead of global variables. |
| Mark spilled register in CHAIN's used_spill_regs element. |
| Don't call spill_hard_reg. |
| (spill_hard_reg): Lose GLOBAL arg, return void. All callers changed. |
| Mark spilled hard regs in bad_spill_regs_global. |
| Mark affected pseudos in spilled_pseudos, but don't spill them. |
| (ior_hard_reg_set): New static function. |
| (finish_spills): Return int. All callers changed. |
| Compute spill_reg_order, n_spills and spill_regs here. Also update |
| regs_ever_live for regs used as spills. |
| For every pseudo in spilled_pseudos, spill it and mark the previous |
| hard reg it had in pseudo_previous_regs. Compute which hard regs |
| are used as spills in insns during which it is live, and retry global |
| register allocation. Update all life information in the |
| reload_insn_chain not to include pseudos without hard regs. |
| Call alter_reg for all affected speudos. |
| |
| (scan_paradoxical_subregs): Disable SMALL_REGISTER_CLASSES special |
| case, it's not clear what it's supposed to do. |
| |
| (hard_reg_use_compare): Take bad_spill_regs into account. |
| (pseudos_counted): New static variable. |
| (count_pseudo): New static function. |
| (order_regs_for_reload): Take CHAIN arg. All callers changed. |
| Initialize bad_spill_regs from bad_spill_regs_global, then merge any |
| hard registers explicitly used across the current insn into the set. |
| Compute hard_reg_n_uses taking only pseudos live across this insn |
| into account. |
| Tweak sorting of potential_reload_regs. |
| (compare_spill_regs): Delete function. |
| (reload_as_needed): Don't sort the spill_regs array, it's computed |
| in proper order in finish_spills. |
| Delete avoid_return_reg kludge. |
| Delete code to manage basic_block_needs. |
| (allocate_reload_reg): Minor speed/readability tweaks. |
| Operate on elements of CHAIN instead of global variables. |
| (choose_reload_regs): Lose AVOID_RETURN_REG arg. All callers changed. |
| Delete avoid_return_reg kludge. |
| Initialize reload_reg_used from CHAIN's used_spill_regs element. |
| Delete unused label FAIL. |
| (reload_combine): Replace reload_address_index_reg_class with |
| INDEX_REGS. |
| Don't use used_spill_regs to determine information about lifetime of |
| hard regs. |
| |
| Tue Oct 27 13:15:02 1998 Nick Clifton <nickc@cygnus.com> |
| |
| * toplev.c (display_help): Ignore empty target specific |
| options, and if -W is also specified on the command line then |
| display undocumented options. |
| |
| * config/arm/arm.c: Updated with changes in devo sources. |
| * config/arm/arm.h: Updated with changes in devo sources. |
| * config/arm/lib1funcs.asm: Updated with changes in devo sources. |
| * config/arm/lib1thumb.asm: Add ELF support. |
| |
| Tue Oct 27 16:11:43 1998 David Edelsohn <edelsohn@gnu.org> |
| |
| * collect2.c (aix64_flag): New variable. |
| (main, case 'b'): Parse it. |
| (GCC_CHECK_HDR): Object magic number must match mode. |
| (scan_prog_file): Only check for shared object if valid header. |
| Print debugging if header/mode mismatch. |
| |
| Tue Oct 27 10:15:02 1998 Nick Clifton <nickc@cygnus.com> |
| |
| Added support for arm-elf-linux configuration, submitted by Philip |
| Blundell <pb@nexus.co.uk>, and integrated this with the arm-elf |
| code developed by Catherine Moore <clm@cygnus.com>. The following |
| files are affected: |
| |
| * configure.in: Add arm-*-linux-gnu, armv2-*-linux and arm-*-elf |
| targets. |
| |
| * configure: Regenerated. |
| |
| * config/arm/aout.h: Add default definitions of REGISTER_PREFIX, |
| USER_LABEL_PREFIX and LOCAL_LABEL_PREFIX. Make other macro |
| definitions conditional on their not having been already defined. |
| |
| * config/arm/lin1funcs.asm: Add ELF only macros to generate .size |
| and .type directives, and add "(PLT)" qualification to function |
| calls. |
| |
| * config/arm/linux.h: Deleted. This file is now superseded by |
| either linux-elf.h or linux-aout.h. |
| |
| * config/arm/linux-gas.h: Define `inhibit_libc' if cross-compiling. |
| (CLEAR_INSN_CACHE): New macro, currently disabled (awaiting kernel |
| support). |
| Move definitions from old linux.h file here. |
| |
| * config/arm/elf.h: New file. Generic ARM/ELF support. |
| |
| * config/arm/linux-aout.h: New file. Support for Linux with a.out. |
| |
| * config/arm/linux-elf.h: New file. Support for Linux with ELF. |
| |
| * config/arm/linux-elf26.h: New file. Support for Linux with ELF |
| using the 26bit APCS. |
| |
| * config/arm/unknown-elf.h: New file. Support for OS'es other |
| than Linux with ELF. |
| |
| * config/arm/t-arm-elf: New file. makefile fragment for arm-elf |
| builds. |
| |
| * config/arm/coff.h: Include aout.h for basic assembler macros. |
| Add support for -mstructure_size_boundary=<n> command line option. |
| |
| * config/arm/arm.h: Add support for -mstructure_size_boundary=<n> |
| command line option. Make macro definitions conditional on their |
| not having been already defined. |
| |
| * config/arm/arm.c: Add support for -mstructure_size_boundary=<n> |
| command line option. |
| |
| |
| Tue Oct 27 08:56:46 1998 Andrew MacLeod <amacleod@cygnus.com> |
| |
| * dwarfout.c (ASM_OUTPUT_DWARF_STRING_NEWLINE): ASM_OUTPUT_DWARF_STRING |
| has been changed to not include a newline. Use this macro instead. |
| (output_enumeral_list, const_value_attribute, name_attribute, |
| comp_dir_attribute, prototyped_attribute, producer_attribute, |
| inline_attribute, pure_or_virtual_attribute, output_inheritance_die, |
| dwarfout_file_scope_decl, generate_new_sfname_entry, |
| generate_macinfo_entry, dwarfout_init, dwarfout_finish): Use |
| ASM_OUTPUT_DWARF_STRING_NEWLINE macro. |
| |
| Mon Oct 26 13:35:02 1998 Richard Henderson <rth@cygnus.com> |
| |
| * combine.c (subst): Process the inputs to a parallel asm_operands |
| only once. |
| |
| Mon Oct 26 13:32:31 1998 Richard Henderson <rth@cygnus.com> |
| |
| * stmt.c (expand_asm_operands): Accept `=' or `+' at any position. |
| |
| Mon Oct 26 12:53:14 1998 Jeffrey A Law (law@cygnus.com) |
| |
| * tm.texi (ASM_OUTPUT_MAX_SKIP_ALIGN): Document. |
| |
| Mon Oct 26 00:36:58 1998 Jeff Law (law@cygnus.com) |
| |
| * version.c: Bump for snapshot. |
| |
| Sun Oct 25 23:36:52 1998 Jason Merrill <jason@yorick.cygnus.com> |
| |
| * stmt.c (expand_fixup): Set fixup->before_jump to a |
| NOTE_INSN_DELETED instead of a NOTE_INSN_BLOCK_BEG. |
| |
| Sun Oct 25 15:49:57 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> |
| |
| * Makefile.in (recog.o): Depend on toplev.h. |
| (insn-emit.o): Depend on recog.h. |
| (insn-peep.o): Depend on recog.h and insn-config.h. |
| |
| * combine.c (simplify_set): Remove unused variable `scratches'. |
| |
| * final.c (final_scan_insn): Wrap declaration of variables `vlen' |
| and `idx' in macro conditional controlling their use. |
| |
| * genemit.c (main): Make the generated output file include |
| recog.h. Don't have it declare `insn_operand_constraint', since |
| we get it from recog.h. |
| |
| * genpeep.c (main): Make the generated output file include |
| insn-config.h and recog.h. |
| |
| * recog.c: Include toplev.h. |
| (extract_insn): Remove unused variable `p'. |
| |
| * regclass.c (fix_register): Add missing braces around initializer |
| for `what_option'. |
| (allocate_reg_info): Move variable `i' into the scope where it is |
| used. Change its type to `size_t'. |
| |
| Sun Oct 25 13:10:15 1998 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de> |
| |
| * reload.c (push_reload): When merging reloads, make sure |
| that reload_in_reg and reload_in are from the same reload in |
| all cases. |
| |
| Sun Oct 25 12:07:00 1998 Mumit Khan <khan@xraylith.wisc.edu> |
| |
| * i386/crtdll.h (CPP_PREDEFINES): Fix typo. |
| * i386/mingw32.h (CPP_PREDEFINES): Likewise. |
| |
| Fri Oct 23 23:42:03 1998 David Edelsohn <edelsohn@gnu.org> |
| |
| * loop.c (loop_has_tablejump): New variable. |
| (prescan_loop): Scan for it. |
| (insert_bct): Replace explicit scan with use of it. |
| * regclass.c (regclass): Restore loop variable j. |
| (record_reg_classes): Deterine op_types modifiers and initialize |
| classes[i] before matching constraints. Handle matching |
| constraints 5-9. |
| |
| Fri Oct 23 13:55:48 1998 Jim Wilson <wilson@cygnus.com> |
| |
| * m32r/m32r.c (gen_split_move_double): Call alter_subreg. Delete |
| subreg support. |
| |
| Fri Oct 23 16:19:24 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> |
| |
| * mips.h (EXTRA_SPECS): Add missing initializers. |
| |
| Fri Oct 23 16:08:39 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> |
| |
| * sparc.h (EXTRA_SPECS): Add missing initializers. |
| (sparc_defer_case_vector): Provide a prototype. |
| |
| * svr4.h (ASM_OUTPUT_ASCII): Cast STRING_LIMIT to (long) when |
| comparing it to the result of a pointer subtraction. |
| |
| Fri Oct 23 15:34:14 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> |
| |
| * alpha.c (override_options): Use ISDIGIT(), not isdigit(). Cast |
| the argument to (unsigned char). |
| |
| * alpha.h (EXTRA_SPECS): Add missing initializers. |
| (ASM_GENERATE_INTERNAL_LABEL): Ensure the argument matches the |
| format specifier. |
| |
| Fri Oct 23 13:12:35 1998 Jeffrey A Law (law@cygnus.com) |
| |
| * flow.c (life_analysis_1): Enable "rescan" code after reload. |
| (propagate_block): Delete dead code after reload. |
| |
| * sched.c (update_flow_info): Revert Oct 19, 1998 change. Brings |
| back Oct 15, 1998 change. |
| * haifa-sched.c (update_flow_info): Likewise. |
| * flow.c (life_analysis_1): Delete CLOBBER insns after reload. |
| |
| * mn10200.md (truncated shift): Accept constant inputs too. |
| |
| Fri Oct 23 04:06:57 1998 Richard Earnshaw (rearnsha@arm.com) |
| |
| * machmode.h (mode_mask_array): No longer const. |
| * rtl.c (init_rtl): Fully initialize it if EXTRA_CC_MODES defined. |
| |
| Fri Oct 23 11:19:06 1998 Martin v. Löwis <loewis@informatik.hu-berlin.de> |
| |
| * frame.c: Somewhat explain `FDE'. |
| Suggested by Brendan Kehoe |
| |
| Fri Oct 23 00:56:11 1998 Jason Merrill <jason@yorick.cygnus.com> |
| |
| * expr.c (pending_chain): Move up. |
| (save_expr_status): Do save pending_chain. |
| (restore_expr_status): And restore it. |
| * function.h (struct function): Add pending_chain. |
| |
| 1998-10-23 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl> |
| |
| * reorg.c (relax_delay_slots): Fixed test for mostly_true_jump. The |
| did not match the code. |
| |
| Fri Oct 23 00:07:01 1998 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de> |
| |
| * regclass.c (regclass): Break out some code into new function |
| scan_one_insn, and into regclass_init. |
| (init_cost): New static variable, moved out of regclass. |
| (regclass_init): Initialize it here, not in . |
| (scan_one_insn): New static function, broken out of regclass. |
| * recog.c (apply_change_group): Break out some code into new |
| function insn_invalid_p. |
| (insn_invalid_p): New static fn, broken out of apply_change_group. |
| |
| Thu Oct 22 22:34:42 1998 Jim Wilson <wilson@cygnus.com> |
| |
| * reload1.c (reload_as_needed): When rewrite POST_INC, verify |
| reg_reloaded_contents matches incremented pseudo. |
| |
| * v850/v850.c (v850_reorg): Call alter_subreg. Delete subreg support. |
| |
| Fri Oct 23 11:11:56 1998 Michael Hayes <m.hayes@elec.canterbury.ac.nz> |
| |
| * rtl.def (POST_MODIFY, PRE_MODIFY): New generalized operators for |
| addressing modes with side effects. These are currently |
| placeholders for the C4x target. |
| |
| Thu Oct 22 16:46:35 1998 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de> |
| |
| * loop.c (express_from): Make sure that when generating a PLUS of |
| a PLUS, any constant expression appears on the outermost PLUS. |
| |
| Thu Oct 22 15:46:23 1998 Per Bothner (bothner@cygnus.com) |
| |
| * Makefile.in (distdir-cvs, distdir-start): Clean up so it |
| works if "$(srcdir)" != ".". |
| |
| Wed Oct 21 19:23:59 1998 Jim Wilson <wilson@cygnus.com> |
| |
| * expmed.c (store_bit_field): If need to add a SUBREG, then remove |
| existing SUBREG if we can, otherwise abort. |
| |
| Wed Oct 21 09:58:51 1998 Mark Mitchell <mark@markmitchell.com> |
| |
| * c-common.c (c_apply_type_quals_to_decl): Don't crash when |
| `restrict' is applied to a non-pointer variable. |
| |
| Wed Oct 21 09:18:58 1998 Mark Mitchell <mark@markmitchell.com> |
| |
| * invoke.texi: Document -flang-isoc9x. |
| |
| * Makefile.in (OBJS): Add splay-tree.o. |
| (c-common.o): Depend on rtl.h. |
| (splay-tree.o): List dependencies and provide build rule. |
| |
| * rtl.h (record_alias_subset): New function. |
| * alias.c: Include splay-tree.h. |
| (alias_set_entry): New type. |
| (CHECK_ALIAS_SETS_FOR_CONSISTENCY): Remove. |
| (DIFFERENT_ALIAS_SETS_P): Use mem_in_disjoint_alias_sets_p. |
| (mems_in_disjoin_alias_sets_p): New function. |
| (alias_set_compare): Likewise. |
| (insert_subset_children): Likewise. |
| (get_alias_set_entry): Likewise. |
| |
| * tree.h (TYPE_RESTRICT): New macro. |
| (TYPE_UNQUALIFIED): New manifest constant. |
| (TYPE_QUAL_CONST): Likewise. |
| (TYPE_QUAL_VOLATILE): Likewise. |
| (TYPE_QUAL_RESTRICT): Likewise. |
| (tree_type): Add restrict_flag. Reduce count of free bits. |
| (DECL_POINTER_ALIAS_SET): New macro. |
| (DECL_POINTER_ALIAS_SET_KNOWN_P): Likewise. |
| (tree_decl): Add pointer_alias_set. |
| (build_qualified_type): New function. |
| (build_type_variant): Define in terms of build_qualified_type. |
| * tree.c (set_type_quals): New function. |
| (make_node): Initialize DECL_POINTER_ALIAS_SET. |
| (build_type_attribute_variant): Use build_qualified_type and |
| set_type_quals. |
| (build_type_variant): Rename, and modify, to become... |
| (build_qualified_type): New function. |
| (build_complex_type): Use set_type_quals. |
| |
| * c-tree.h (C_TYPE_OBJECT_P): New macro. |
| (C_TYPE_FUNCTION_P): Likewise. |
| (C_TYPE_INCOMPLETE_P): Likewise. |
| (C_TYPE_OBJECT_OR_INCOMPLETE_P): Likewise. |
| (c_apply_type_quals_to_decl): New function. |
| (c_build_qualified_type): New function. |
| (c_build_type_variant): Define in terms of c_build_qualified_type. |
| (flag_isoc9x): Declare. |
| * c-typeck.c (qualify_type): Use c_build_qualified_type. |
| (common_type): Change to use TYPE_QUALS. |
| (comptypes): Likewise. |
| (convert_for_assignment): Likewise. |
| * c-aux-info.c (gen_type): Likewise. Deal with `restrict'. |
| * c-decl.c (flag_isoc9x): Define. |
| (c_decode_option): Handle -flang-isoc9x. |
| (grokdeclarator): Update to handle restrict. Use TYPE_QUALS, |
| c_build_qualified_type, etc. Use c_apply_type_quals_to_decl. |
| * c-lex.c (init_lex): Deal with restrict. |
| (init_lex): Don't treat restrict as a reserved word in |
| -traditional mode, or without -flang-isoc9x. |
| * c-lex.h (rid): Add RID_RESTRICT. |
| * c-parse.gperf (restrict, __restrict, __restrict__): Make |
| equivalent to RID_RESTRICT. |
| * c-parse.in (TYPE_QUAL): Update comment. |
| * c-common.c: Include rtl.h. |
| (c_find_base_decl): New function. |
| (c_build_type_variant): Rename, and modify, to become ... |
| (c_build_qualified_type): New function. |
| (c_apply_type_quals_to_decl): Likewise. |
| (c_get_alias_set): For INDIRECT_REFs, check to see if we can find |
| a particular alias set for the reference. |
| * toplev.c (documented_lang_options): Add -flang-isoc9x. |
| |
| Wed Oct 21 09:15:06 1998 Nick Clifton <nickc@cygnus.com> |
| |
| * config/arm/arm.h (TARGET_SWITCHES): Document arm specific |
| command line switches. |
| |
| Tue Oct 20 10:04:51 1998 Graham <grahams@rcp.co.uk> |
| |
| * reload.c (loc_mentioned_in_p): Add missing braces to bind |
| else to correct if. |
| |
| Mon Oct 19 16:34:05 1998 Tom Tromey <tromey@cygnus.com> |
| |
| * gcc.c (option_map): Added --classpath and --CLASSPATH. |
| |
| Tue Oct 20 10:59:02 1998 Gavin Romig-Koch <gavin@cygnus.com> |
| |
| * regclass.c (fix_register): Add error message. |
| * invoke.texi (-fcall-used-REG,-fcall-saved-REG): Note the |
| new error message. |
| |
| Tue Oct 20 10:12:17 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> |
| |
| * c-decl.c (warn_missing_noreturn): New global variable. |
| (c_decode_option): Check for new flags -W{no-}missing-noreturn. |
| (finish_function): Implement missing noreturn warning. |
| |
| * c-tree.h (warn_missing_noreturn): Declare extern. |
| |
| * invoke.texi: Document new flags. |
| |
| * toplev.c (documented_lang_options): Add description. |
| |
| Tue Oct 20 22:16:11 1998 Michael Hayes <m.hayes@elec.canterbury.ac.nz> |
| |
| * config/c4x/c4x.c (c4x_parallel_process): Disable until BCT |
| loop optimization stable for the C4x. |
| (c4x_rptb_info_t, c4x_dump, c4x_rptb_in_range, c4x_rptb_unjumped_loop, |
| c4x_rptb_find_comp_and_jump, c4x_rptb_loop_info_get, |
| c4x_rptb_emit_init, c4x_rptb_process): Deleted (superseded by BCT |
| loop optimization). |
| (c4x_address_conflict): Be more paranoid when packing a volatile |
| memref in a parallel load/store. |
| |
| Tue Oct 20 21:56:05 1998 Michael Hayes <m.hayes@elec.canterbury.ac.nz> |
| |
| * config/c4x/c4x.md (repeat_block_top, repeat_block_end, |
| repeat_block_filler): Deleted. |
| (*ashlqi3_set, *ashrqi3_const_set, *ashrqi3_nonconst_clobber): |
| Condition code not set if destination register from 'c' class. |
| (*subbqi3_carry_clobber): Fix typo. |
| |
| 1998-10-18 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl> |
| |
| * reorg.c (steal_delay_list_from_target): Check for insns that |
| modify the condition codes and effect the direction of the jump |
| in the sequence. |
| |
| Sat Oct 17 13:09:09 1998 Graham <grahams@rcp.co.uk> |
| |
| * function.c (purge_addressof_1): Replace call to |
| emit_insns_before() with emit_insn_before(). |
| |
| Mon Oct 19 19:34:03 1998 Mike Stump <mrs@wrs.com> |
| |
| * libgcc2.c (__pure_virtual): Call __terminate instead of _exit. |
| |
| Mon Oct 19 13:26:24 1998 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de> |
| |
| * jump.c (sets_cc0_p): Compile only if HAVE_cc0. |
| |
| Mon Oct 19 11:40:56 1998 Jeffrey A Law (law@cygnus.com) |
| |
| * gcse.c (compute_hash_table): Correctly identify hard regs which are |
| clobbered across calls. |
| |
| * loop.c (scan_loop): Be more selective about what invariants are |
| moved out of a loop. |
| |
| Mon Oct 19 10:46:58 1998 Jeff Law (law@cygnus.com) |
| |
| * version.c: Bump for snapshot. |
| |
| Mon Oct 19 11:40:56 1998 Jeffrey A Law (law@cygnus.com) |
| |
| * libgcc2.c (eh_context_static): Do not call malloc to allocate the |
| static eh_context structure. |
| |
| Mon Oct 19 10:45:40 1998 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de> |
| |
| * combine.c (recog_for_combine): Lose PADDED_SCRATCHES arg. All |
| callers changed. |
| (try_combine): Don't update max_scratch. |
| * flow.c (max_scratch, num_scratch): Delete variables. |
| (life_analysis_1): Don't initialize max_scratch. |
| (propagate_block): Don't update max_scratch. |
| (mark_set_1): Don't increment num_scratch. |
| * regs.h (max_scratch): Delete declaration. |
| |
| Mon Oct 19 10:28:15 1998 Jeffrey A Law (law@cygnus.com) |
| |
| * reload1.c (reload_reg_free_before_p): Hack. Return 0 if EQUIV |
| is nonzero. This is temporary! |
| |
| * sched.c (update_flow_info): Handle death notes made invalid by |
| instruction splitting. Partially reverts Oct 15, 1998 patch. |
| * haifa-sched.c (update_flow_info): Likewise. |
| |
| Sun Oct 18 17:31:26 1998 Jeffrey A Law (law@cygnus.com) |
| |
| * function.c (uninitialized_vars_warning): Do not warn for a VAR_DECL |
| if it has a nonzero DECL_INITIAL. |
| |
| Sat Oct 17 23:18:08 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> |
| |
| * Makefile.in (flow.o): Depend on recog.h. |
| |
| * cpplib.h (directive_table): Add missing initializiers. |
| (finclude): Change type of variable `bsize' to size_t. |
| |
| * cse.c (rtx_cost): Mark parameter `outer_code' with ATTRIBUTE_UNUSED. |
| |
| * dwarfout.h (dwarfout_label): Wrap prototype in macro RTX_CODE. |
| |
| * fix-header.c (lookup_std_proto): Cast the result of `strlen' to |
| `int' when comparing against one. |
| (cpp_file_line_for_message): Mark parameter `pfile' with |
| ATTRIBUTE_UNUSED. |
| (cpp_fatal): Mark parameter `pfile' with ATTRIBUTE_UNUSED. |
| |
| * flow.c: Include recog.h. |
| (sbitmap_copy): Cast arguments 1 & 2 of `bcopy' to (PTR). |
| |
| * function.c (thread_prologue_and_epilogue_insns): Mark parameter |
| `f' with ATTRIBUTE_UNUSED. |
| (reposition_prologue_and_epilogue_notes): Likewise. |
| |
| * genopinit.c (gen_insn): Cast argument of ctype functions to |
| `unsigned char'. |
| |
| * haifa-sched.c: Include recog.h. |
| (blockage_range): Cast result of UNIT_BLOCKED macro to (int) when |
| comparing against one. |
| |
| * libgcc2.a (__throw): Revert ATTRIBUTE_UNUSED change for now. |
| |
| * mips-tfile.c (parse_end): Cast the argument of ctype function to |
| `unsigned char'. |
| (parse_ent): Likewise. |
| (parse_input): Likewise. |
| |
| * optabs.c (init_libfuncs): Likewise. |
| |
| * protoize.c (find_rightmost_formals_list): Likewise. |
| |
| * recog.h (const_double_operand): Fix typo in prototype. |
| |
| * tlink.c (scan_linker_output): Cast the argument of ctype |
| function to `unsigned char'. |
| |
| * toplev.c (check_lang_option): Cast the result of `strlen' to |
| `int' when comparing against one. |
| |
| Sat Oct 17 13:09:09 1998 Graham <grahams@rcp.co.uk> |
| |
| * gcse.c (dump_cuid_table): Correct typo. |
| |
| Sat Oct 17 11:02:47 1998 Nick Clifton <nickc@cygnus.com> |
| |
| * toplev.c (display_help): Prepend '-m' to target specific |
| options. |
| (check_lang_option): Ignore text after end of first word of a |
| language specific option. |
| |
| Sat Oct 17 02:26:03 1998 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de> |
| |
| * reload1.c (reg_used_by_pseudo): New static variable. |
| (choose_reload_regs): Initialize it. |
| Use it instead of testing spill_reg_order to determine whether a |
| pseudo is live in a hard register across the current insn. |
| Fix a typo in a reference to reload_reg_rtx. |
| |
| * flow.c (propagate_block): Replace code that computes and uses |
| regs_sometimes_live with simpler code that just walks the set of |
| currently live registers. |
| |
| * Makefile.in (insn-extract.o): Fix dependencies. |
| * genextract.c (main): Generate includes for insn-config.h and |
| recog.h. |
| Delete generation of declarations which are now in recog.h. |
| * genrecog.c (main): Delete generation of definitions which are |
| now in recog.c. |
| * local-alloc.c (block_alloc): Use extract_insn and the variables |
| it sets up instead of looking up values by insn_code. |
| * recog.c (recog_operand, recog_operand_loc, recog_dup_loc, |
| recog_dup_num): Define here instead of generating the definition in |
| genrecog.c. |
| (recog_n_operands, recog_n_dups, recog_n_alternatives, |
| recog_operand_mode, recog_constraints, recog_operand_address_p): |
| New variables. |
| (extract_insn): New function. |
| * recog.h (extract_insn): Declare function. |
| (which_alternative, recog_n_operands, recog_n_dups, |
| recog_n_alternatives, recog_operand_mode, recog_constraints, |
| recog_operand_address_p): Declare variables. |
| * regclass.c (n_occurrences): New static function. |
| * reload.c (n_occurrences): Delete function. |
| (find_reloads): Use extract_insn. |
| * reload.h (n_occurrences): Delete declaration. |
| |
| Sat Oct 17 01:17:51 1998 Jeffrey A Law (law@cygnus.com) |
| |
| * reload1.c (reload_as_needed): Fix test for when to call |
| update_eliminable_offsets. |
| |
| Fri Oct 16 20:40:50 1998 J"orn Rennecke <amylaar@cygnus.co.uk> |
| |
| Fix consistency problems with reg_equiv_{mem,address}; |
| Improve reload inheritance; |
| |
| * reload.c (reload_out_reg): New variable. |
| (loc_mentioned_in_p, remove_address_replacements): New functions. |
| (remove_replacements): Deleted. |
| (push_reload): Set reload_out_reg[i]. |
| When merging, also set reload_{in,out}_reg[i], and remove |
| duplicate address reloads. |
| (combine_reloads): Copy reload_out_reg[i]. |
| (find_reloads): Do make_memloc substitution also when |
| reg_equiv_memory_loc[regno] and num_not_at_initial_offset |
| are both nonzero. |
| Include *recog_operand_loc in commutativity operand changes. |
| Generate optional output reloads. |
| Delete reference to n_memlocs. Don't set *recog_operand_loc before |
| processing operands. Call make_memloc in reg_equiv_address code. |
| Set *recog_operand_loc only after processing operands, and only |
| if replace is true. Return a value. |
| When changing address reload types for operands that didn't get |
| reloaded, use RELOAD_FOR_OPADDR_ADDRESS for |
| RELOAD_FOR_INPADDR_ADDRESS / RELOAD_FOR_OUTADDR_ADDRESS reloads. |
| Don't emit USEs for pseudo SUBREGs when not replacing. |
| (find_reloads_address): Do make_memloc substitution also when |
| reg_equiv_memory_loc[regno] and num_not_at_initial_offset |
| are both nonzero. |
| (find_reloads_toplev): Likewise. |
| Call make_memloc in reg_equiv_address code. |
| (debug_reload_to_stream): Add code to output reload_out_reg. |
| (make_memloc): Delete local variable i, ifdefed out code, and |
| references to memlocs and n_memlocs. |
| (memlocs, n_memlocs): Delete. |
| (push_secondary_reload): Clear reload_out_reg. |
| (find_reloads_address_1): Provide memrefloc argument to all calls |
| to find_reloads_address. |
| In AUTO_INC code, handle non-directly addressable equivalences properly. |
| * reload.h (reload_out_reg, num_not_at_initial_offset): Declare. |
| (find_reloads): Add return type. |
| (remove_address_replacements, deallocate_reload_reg): Declare. |
| * reload1.c (num_not_at_initial_offset): No longer static. |
| (delete_address_reloads, delete_address_reloads_1): Likewise. |
| (deallocate_reload_reg): New function. |
| (spill_reg_stored_to): New array. |
| (eliminate_regs): Don't substitute from reg_equiv_memory_loc. |
| (eliminate_regs_in_insn): Move assignments of previous_offset and |
| max_offset fields, and recalculation of num_not_at_initial_offset |
| into new static function: |
| (update_eliminable_offsets) . |
| (reload_as_needed): Call update_eliminable_offsets after calling |
| find_reloads. |
| Call forget_old_reloads_1 with contents of reloaded auto_inc |
| expressions if the actual addressing can't be changed to match the |
| auto_inc. |
| (choose_reload_regs): For inheritance, replace |
| reload_reg_free_before_p test with reload_reg_used_at_all test, and |
| remove stand-alone reload_reg_used_at_all test. |
| Use reload_out_reg to determine which reload regs have output reloads. |
| Treat reload_override_in more similar to inherited reloads. |
| Handle (subreg (reg... for inheritance. |
| For flag_expensive_optimizations, add an extra pass to remove |
| unnecessary reloads from known working inheritance. |
| Delete obsolete code for pseudos replaced with MEMs. |
| Handle inheritance from auto_inc expressions. |
| (emit_reload_insns): If reload_in is a MEM, set OLD to |
| reload_in_reg[j]. |
| Don't reload directly from oldequiv; if it's a pseudo with a |
| stack slot, use reload_in[j]. |
| Check that reload_in_reg[j] is a MEM before replacing reload_in |
| from reg_reloaded_contents. |
| Include non-spill registers in reload inheritance processing. |
| Also try to use reload_out_reg to set spill_reg_store / |
| reg_last_reload_reg. |
| In code to set new_spill_reg_store, use single_set to find out if |
| there is a single set. |
| Add code that allows to delete optional output reloads. |
| Add code to allow deletion of output reloads that use no spill reg. |
| At the end, set reload_override_in to oldequiv. |
| Also call delete_output_reload if reload_out_reg is equal to old |
| in oldequiv code. |
| Add code to call delete_output_reload for stores with no matching load. |
| Set / use spill_reg_stored_to. |
| Handle case where secondary output reload uses a temporary, but |
| actual store isn't found. |
| When looking for a store of a value not loaded in order to call |
| delete_output_reload, count_occurrences should return 0 for no |
| loads; but discount inherited input reloadill_reg_stored_to. |
| Do checks for extra uses of REG. Changed all |
| callers. |
| Use delete_address_reloads. |
| (reload): Take return value of find_reloads into account. |
| If a no-op set needs more than one reload, delete it. |
| (reload_reg_free_before_p): RELOAD_FOR_INPUT |
| can ignore RELOAD_FOR_INPUT_ADDRESS / RELOAD_FOR_INPADDR_ADDRESS |
| for the same operand. |
| (clear_reload_reg_in_use): Check for other reloads that keep a |
| register in use. |
| (reload_reg_free_for_value_p): Handle RELOAD_FOR_OPERAND_ADDRESS / |
| RELOAD_FOR_OPADDR_ADDR. |
| Take into account when an address address reload is only needed |
| for the address reload we are considering. |
| (count_occurrences): Use rtx_equal_p for MEMs. |
| (inc_for_reload): Return instruction that stores into RELOADREG. |
| New argument two, IN, and rtx. Changed all callers. |
| (calculate_needs_all_insns, reload_as_needed): |
| Don't clear after_call for a CLOBBER. |
| Keep track of how many hard registers need to be copied from |
| after_call, and don't clear after_call before we have seen |
| that much copies, or we see a different instruction. |
| |
| Fri Oct 16 10:58:23 1998 Jeffrey A Law (law@cygnus.com) |
| |
| * flow.c (find_basic_blocks_1): Do not delete unreachable blocks |
| after reload has completed. |
| |
| Fri Oct 16 17:26:10 1998 Dave Brolley <brolley@cygnus.com> |
| |
| * cpplib.c (cpp_get_token): Replace whitespace that occurs between |
| a macro name and the next token with a single blank if that whitespace |
| is in a macro buffer and the next token is not '('. |
| |
| Fri Oct 16 15:44:02 1998 Dave Brolley <brolley@cygnus.com> |
| |
| * cccp.c (rescan): Handle multibyte characters ending in backslash. |
| (rescan): Likewise. |
| (skip_if_group): Likewise. |
| (skip_to_end_of_comment): Likewise. |
| (macarg1): Likewise. |
| (discard_comments): Likewise. |
| (change_newlines): Likewise. |
| |
| Fri Oct 16 15:26:24 1998 Dave Brolley <brolley@cygnus.com> |
| |
| * c-lex.c (yylex): Fix unaligned access of wchar_t. |
| |
| Fri Oct 16 10:47:53 1998 Nick Clifton <nickc@cygnus.com> |
| |
| * config/arm/arm.h (TARGET_SWITCHES): Add --help documentation. |
| (TARGET_OPTIONS): Add --help documentation. |
| |
| Fri Oct 16 11:49:01 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> |
| |
| * rtl.h (sets_cc0_p): Revert Oct 14 ATTRIBUTE_NORETURN change. |
| |
| Fri Oct 16 07:08:46 1998 Bruce Korb <korb@datadesign.com> |
| |
| * fixinc/* Moved in from ../contrib directory in preparation |
| for integrating it into the normal build process. In particular, |
| fixinc/Makefile.in must be config-ed into the build directory |
| as fixinc/Makefile. Proposed patches to ./Makefile.in and |
| ./configure.in will be "in the mail" momentarily. |
| |
| Fri Oct 16 08:13:46 1998 David S. Miller <davem@pierdol.cobaltnet.com> |
| |
| * cse.c (cse_basic_block): Fixup hash flushing loop so we do not |
| accidently walk into the free list. Comment how that can happen. |
| (invalidate): Fix indentation. |
| |
| Thu Oct 15 23:53:29 1998 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de> |
| Jeffrey A Law (law@cygnus.com) |
| |
| * flow.c (life_analysis_1): Do not clobber regs_ever_live after |
| reload. Never perform rescans of the insn chain after reload. |
| (propagate_block): Do not delete insn or create new autoinc addressing |
| modes after reload. |
| |
| * jump.c (jump_optimize): Unconditionally use the code that was |
| previously conditional on PRESERVE_DEATH_INFO_REGNO_P. |
| * reload1.c (reload): When reloading is finished, delete all |
| REG_DEAD and REG_UNUSED notes. |
| (emit_reload_insns): Delete all code that was conditional on |
| PRESERVE_DEATH_INFO_REGNO_P. |
| (no_longer_dead_regs): Delete variable. |
| (reload_cse_delete_death_notes): Delete function. |
| (reload_cse_no_longer_dead): Delete function. |
| (reload_cse_regs_1): Delete all code to handle deletion of death |
| notes. |
| (reload_cse_noop_set_p): Likewise. |
| (reload_cse_simplify_set): Likewise. |
| (reload_cse_simplify_operands): Likewise. |
| (reload_cse_move2add): Likewise. |
| * reorg.c (used_spill_regs): Delete declaration. |
| (max_label_num_after_reload): Delete declaration. |
| (find_dead_or_set_registers): Don't assume that spill regs are |
| dead at a CODE_LABEL. |
| * rtlanal.c (dead_or_set_regno_p): Death notes are always accurate, |
| even after reload. |
| * sched.c (sched_analyze_insn): Likewise. |
| (update_flow_info): Likewise. |
| * haifa-sched.c (sched_analyze_insn): Likewise. |
| (update_flow_info): Likewise. |
| * tm.texi (PRESERVE_DEATH_INFO_REGNO_P): Delete documentation. |
| * toplev.c (max_label_num_after_reload): Delete variable. |
| (rest_of_compilation): Don't set max_label_num_after_reload. |
| Call life_analysis after reload_cse_regs if optimizing. |
| * config/gmicro/gmicro.h: Delete comment referring to |
| PRESERVE_DEATH_INFO_REGNO_P. |
| * config/i386/i386.h: Likewise. |
| * config/m88k/m88k.h: Likewise. |
| * config/m32r/m32r.h (PRESERVE_DEATH_INFO_REGNO_P): Delete definition. |
| * config/sh/sh.h: Likewise. |
| |
| Thu Oct 15 19:48:41 1998 David Edelsohn <edelsohn@gnu.org> |
| |
| * loop.c (strength_reduce): Restore marking bct_p as |
| ATTRIBUTE_UNUSED. |
| * rs6000.c (optimization_options): Change #ifdef HAIFA to |
| HAVE_decrement_and_branch_on_count. |
| (small_data_operand): Remove TARGET_ELF condition for marking |
| parameters ATTRIBUTE_UNUSED. |
| |
| Thu Oct 15 11:45:51 1998 Robert Lipe <robertl@dgii.com> |
| |
| * config/i386/sco5.h (MAX_OFILE_ALIGNMENT): Define. |
| (SELECT_SECTION): Resync with svr4.h. |
| |
| Thu Oct 15 12:42:13 1998 David Edelsohn <edelsohn@gnu.org> |
| |
| * loop.c (strength_reduce): Undo Oct 14 change marking bct_p |
| ATTRIBUTE_UNUSED. |
| |
| Thu Oct 15 00:57:55 1998 Robert Lipe <robertl@dgii.com> |
| |
| * c-pragma.c (handle_pragma_token): Test for null tree before |
| dereferencing TREE_CODE. |
| |
| Thu Oct 15 17:36:48 1998 Michael Hayes <m.hayes@elec.canterbury.ac.nz> |
| |
| * config/c4x/c4x.c: Convert to use GEN_INT. |
| (c4x_parallel_process): Rework to handle new repeat loop structure. |
| |
| * config/c4x/c4x.md: Convert to use GEN_INT. |
| (rptb_end): Convert to use GE test. Replace uses with clobbers. |
| (decrement_and_branch_on_count): Likewise. |
| |
| * config/c4x/c4x.h (REPEAT_BLOCK_PROCESS): Deleted hook now that |
| loop.c has the desired functionality. |
| (rc_reg_operand): New prototype. |
| |
| * config/c4x/t-c4x: Can now build all front ends. |
| |
| Wed Oct 14 23:27:08 1998 Didier FORT (didier.fort@fedex.com) |
| |
| * fixincludes: Fix up rpc/{clnt,svr,xdr}.h for SunOS. |
| |
| Wed Oct 14 22:13:28 1998 Joel Sherrill (joel@OARcorp.com) |
| |
| * Makefile.in (stmp-fixinc): Do not install assert.h if not desired. |
| * config/t-rtems: Do not install assert.h -- use newlib's. |
| |
| Wed Oct 14 21:57:08 1998 J"orn Rennecke <amylaar@cygnus.co.uk> |
| |
| * combine.c (combine_instructions): When finished, call init_recog. |
| * regmove.c (optimize_reg_copy_3): Reject volatile MEMs. |
| |
| Wed Oct 14 16:10:22 1998 Per Bothner <bothner@cygnus.com> |
| |
| * toplev.c: If flag_syntax_only, don't open or write assembler file. |
| |
| Wed Oct 14 13:26:05 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> |
| |
| * cppalloc.c (memory_full): Mark function prototype with |
| ATTRIBUTE_NORETURN. |
| |
| * demangle.h (collect_exit): Likewise. |
| |
| * fix-header.c (v_fatal, fatal): Likewise. |
| |
| * gcc.c (pfatal_with_name, pfatal_pexecute, fatal, fancy_abort): |
| Likewise. |
| |
| * gcov.c (print_usage): Likewise. |
| |
| * genattr.c (fatal, fancy_abort): Likewise. |
| |
| * genattrtab.c (fatal, fancy_abort): Likewise. |
| |
| * gencodes.c (fatal, fancy_abort): Likewise. |
| |
| * genconfig.c (fatal, fancy_abort): Likewise. |
| |
| * genemit.c (fatal, fancy_abort): Likewise. |
| |
| * genextract.c (fatal, fancy_abort): Likewise. |
| |
| * genflags.c (fatal, fancy_abort): Likewise. |
| |
| * genopinit.c (fatal, fancy_abort): Likewise. |
| |
| * genoutput.c (fatal, fancy_abort): Likewise. |
| |
| * genpeep.c (fatal, fancy_abort): Likewise. |
| |
| * genrecog.c (fatal, fancy_abort): Likewise. |
| |
| * libgcc2.c (__eprintf, __default_terminate, __sjthrow, |
| __sjpopnthrow, __throw): Likewise. |
| |
| * objc/objc-act.c (objc_fatal): Likewise. |
| |
| * protoize.c (usage, aux_info_corrupted, |
| declare_source_confusing): Likewise. |
| |
| * rtl.c (dump_and_abort): Likewise. |
| |
| * rtl.h (sets_cc0_p): Likewise. |
| |
| * toplev.c (float_signal, pipe_closed): Likewise. |
| |
| 1998-10-14 Andreas Schwab <schwab@issan.cs.uni-dortmund.de> |
| |
| * dwarf2out.c (expand_builtin_dwarf_reg_size): Look at all ranges |
| when generating the decision tree for the general case. |
| |
| * config/m68k/m68k.h (HARD_REGNO_MODE_OK): Don't accept modes |
| wider that 12 bytes in fpu regs or wider than 8 byte in fpa regs. |
| |
| Wed Oct 14 11:14:02 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> |
| |
| * Makefile.in (sched.o): Depend on recog.h. |
| |
| * alias.c (REG_BASE_VALUE): Cast the result of REGNO() macro to |
| (unsigned) when comparing against one. |
| (find_base_value): Likewise. |
| (record_base_value): Cast variable `regno' to (unsigned) when |
| comparing against one. Cast the result of REGNO() macro to |
| (unsigned) when comparing against one. |
| (memrefs_conflict_p): Change type of variables `r_x' and `r_y' to |
| unsigned. |
| (init_alias_analysis): Add unsigned variable `ui'. Use it as loop |
| variable where an unsigned index is needed. |
| |
| * caller-save.c (init_caller_save): Cast `-1' to (enum insn_code) |
| before comparing against one. |
| |
| * collect2.c: Add prototypes for functions `error', `fatal' and |
| `fatal_perror'. Make these functions take variable arguments |
| instead of faking it with a fixed number of args. |
| (write_c_file_stat): Cast the argument of ctype macro to (unsigned |
| char). |
| |
| * combine.c (can_combine_p): Mark parameter `pred' with |
| ATTRIBUTE_UNUSED. |
| (find_split_point): Cast variable `src' to (unsigned |
| HOST_WIDE_INT) when comparing against one. |
| (simplify_rtx): Cast 1 to (unsigned HOST_WIDE_INT) in shift. |
| (simplify_logical): Likewise. |
| (force_to_mode): Cast result of INTVAL() macro to (unsigned |
| HOST_WIDE_INT) when comparing against one. Cast 1 to (unsigned |
| HOST_WIDE_INT) in shift. |
| (simplify_and_const_int): Cast result of INTVAL() macro to |
| `unsigned HOST_WIDE_INT' when comparing against one. |
| (merge_outer_ops): Cast variable const0 to `unsigned |
| HOST_WIDE_INT' when comparing against the result of |
| GET_MODE_MASK() macro. |
| (simplify_comparison): Likewise for variable `c0'. Cast variable |
| `const_op' to `unsigned HOST_WIDE_INT' when comparing against |
| one. Cast `1' to `unsigned HOST_WIDE_INT' in shift. Cast the |
| result of `GET_MODE_MASK()/2' to `HOST_WIDE_INT' when comparing |
| against one. Cast `1' to `unsigned HOST_WIDE_INT' in shift. Cast |
| result of INTVAL() macro to `unsigned HOST_WIDE_INT' when |
| comparing against one. |
| (distribute_notes): Wrap variable `cc0_setter' in macro `HAVE_cc0'. |
| |
| config/mips/mips.c (gen_int_relational): Cast result of INTVAL() |
| macro to `unsigned HOST_WIDE_INT' when comparing against one. |
| (output_block_move): Cast `sizeof' expression to (int) when |
| comparing against one. |
| (function_arg): Cast BITS_PER_WORD to `unsigned' when comparing |
| against one. |
| (save_restore_insns): Cast `base_offset' to `long' to match format |
| specifier in fprintf. |
| |
| * config/mips/mips.h (Pmode): Cast the result of `Pmode' macro |
| to `enum machine_mode'. |
| |
| * flow.c (life_analysis_1): Remove unused variable `insn'. |
| |
| * gcc.c (translate_options): Move variables `j' and `k' into the |
| scope in which they are used. Change their types to `size_t'. |
| (set_spec): Cast the argument of ctype macro to `unsigned char'. |
| (read_specs): Likewise. |
| (process_command): Cast `sizeof' to (int) when comparing against one. |
| (do_spec_1): Cast the argument of ctype macro to `unsigned char'. |
| (handle_braces): Cast both sides of `==' expression to `long' to |
| ensure sign matching. |
| (main): Cast variable `i' to `int' when comparing against one. |
| |
| * gcov-io.h (__fetch_long): Change type of parameter `bytes' from |
| int to size_t. Cast variable `i' to size_t when comparing against |
| one. |
| |
| * genattrtab.c (convert_set_attr_alternative): Remove unused |
| parameter `insn_code'. All callers changed. |
| (convert_set_attr): Likewise. |
| |
| * genrecog.c (add_to_sequence): Cast result of XVECLEN() macro to |
| size_t when comparing against one. Likewise for variable `len'. |
| |
| * global.c (global_alloc): Cast variable `max_regno' to size_t |
| when comparing against one. Likewise for variable `max_allocno'. |
| |
| * jump.c (sets_cc0_p): Mark parameter `x' with ATTRIBUTE_UNUSED. |
| |
| * local-alloc.c (validate_equiv_mem_from_store): Mark parameter |
| `set' with ATTRIBUTE_UNUSED. |
| (find_free_reg): Cast `sizeof' expression to (int) when comparing |
| against one. |
| |
| * loop.c (count_loop_regs_set): Remove unused variable `dest'. |
| (strength_reduce): Mark parameter `bct_p' with ATTRIBUTE_UNUSED. |
| (get_condition): Cast variable `const_val' to `unsigned |
| HOST_WIDE_INT' when comparing against one. Cast unsigned |
| expression to HOST_WIDE_INT when comparing against one. |
| (insert_loop_mem): Mark parameter `data' with ATTRIBUTE_UNUSED. |
| (load_mems_and_recount_loop_regs_set): Cast variable `nregs' to |
| `unsigned' when comparing against one. |
| |
| * protoize.c (is_id_char): Change type of parameter `ch' to |
| unsigned char. |
| (munge_compile_params): Cast argument of ctype macro to (const |
| unsigned char). |
| (process_aux_info_file): Cast variable `aux_info_size' to int when |
| comparing against one. |
| (forward_to_next_token_char): Cast argument of ctype macro to |
| `const unsigned char'. |
| (edit_formals_lists): Likewise. |
| (find_rightmost_formals_list): Likewise. |
| (add_local_decl): Likewise. |
| (add_global_decls): Likewise. |
| (edit_fn_definition): Likewise. |
| (do_cleaning): Likewise. |
| (scan_for_missed_items): Likewise. |
| (edit_file): Cast variable `orig_size' to (int) when comparing |
| against one. |
| (main): Cast argument of ctype macro to `const unsigned char'. |
| |
| * recog.c (const_int_operand): Mark parameter `mode' with |
| ATTRIBUTE_UNUSED. |
| |
| * regclass.c (record_reg_classes): Change type of variable `c' to |
| `unsigned char'. Cast `char' array index to `unsigned char'. |
| |
| * reload.c (push_secondary_reload): Cast argument to |
| REG_CLASS_FROM_LETTER() macro to `unsigned char'. |
| |
| * reload1.c (calculate_needs): Cast `char' array index to |
| `unsigned char'. |
| (set_label_offsets): Change type of variable `i' to unsigned int. |
| Cast result of XVECLEN() macro to unsigned when comparing against |
| one. |
| (mark_not_eliminable): Change type of variable `i' to unsigned. |
| (order_regs_for_reload): Likewise. Cast `max_regno' to unsigned |
| when comparing against one. |
| (reload_as_needed): Cast macro NUM_ELIMINABLE_REGS to (int) when |
| comparing against one. |
| (choose_reload_regs): Hide unused label `fail'. |
| (reload_cse_simplify_operands): Cast `char' array index to |
| `unsigned char'. |
| (reload_combine_note_store): Mark parameter `set' with |
| ATTRIBUTE_UNUSED. Cast UNITS_PER_WORD to unsigned when comparing |
| against one. |
| (reload_cse_move2add): Remove unused variable `src2'. |
| |
| * sched.c: Include recog.h. |
| (sched_note_set): Remove unused parameter `b'. All callers |
| changed. |
| (split_hard_reg_notes): Likewise for parameter `orig_insn'. |
| (blockage_range): Cast result of UNIT_BLOCKED() macro to (int) |
| when comparing against one. |
| |
| * stupid.c (stupid_find_reg): Mark parameter `changes_size' with |
| ATTRIBUTE_UNUSED. Cast `sizeof' expression to (int) when |
| comparing against one. |
| |
| * unroll.c (precondition_loop_p): Remove unused parameter |
| `loop_end'. All callers changed. |
| |
| Tue Oct 13 22:12:11 1998 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de> |
| |
| * reload1.c (maybe_fix_stack_asms): New static function. |
| (reload): Call it. |
| |
| * reload.h (compute_use_by_pseudos): Declare. |
| |
| * reload1.c (spilled_pseudos, insns_need_reload): New variables. |
| (something_needs_reloads): Delete variable. |
| (finish_spills): New function. |
| (compute_use_by_pseudos): New function. |
| |
| (delete_caller_save_insns): Lose argument FIRST. All callers changed. |
| Use the reload_insn_chain instead of walking the rtl directly. |
| |
| (reload): Allocate and free spilled_pseudos. |
| Ensure that all calls of spill_hard_reg are followed by a call to |
| finish_spills. |
| Use the insns_need_reload list instead of something_needs_reloads |
| to find out if reload_as_needed must be called. |
| Clear unused_insn_chains at the end. |
| |
| (calculate_needs_all_insns): Lose FIRST parameter. All callers |
| changed. |
| Delete code to keep track of current basic block. |
| Walk reload_insn_chain instead of the rtl structure. Build the |
| insns_need_reload chain. |
| Remember which insns need reloading/elimination by setting the |
| appropriate fields in struct insn_chain, not by putting modes on the |
| insn. |
| |
| (calculate_needs): Lose THIS_BLOCK arg. Accept arg CHAIN instead of |
| arg INSN. All callers changed. |
| Delete declaration of struct needs. |
| Don't set something_needs_reloads. |
| Record insn needs in the CHAIN argument. |
| |
| (spill_hard_reg): Record the affected pseudos in spilled_pseudos. |
| |
| (reload_as_needed): Lose FIRST arg. All callers changed. |
| Walk the reload_insn_chain instead of the rtx structure. |
| Delete code to keep track of current basic block. |
| Rename one of the NEXT variables to OLD_NEXT. |
| |
| (allocate_reload_reg): Accept arg CHAIN instead of arg INSN. All |
| callers changed. |
| (choose_reload_regs): Likewise. |
| |
| (emit_reload_insns): Replace INSN and BB args with arg CHAIN. All |
| callers changed. |
| |
| * caller-save.c (MOVE_MAX_WORDS): New macro. Use it throughout |
| instead of (MOVE_MAX / UNITS_PER_WORD) computation. |
| (hard_regs_live, hard_regs_need_restore): Delete variables. |
| (n_regs_saved): Now static. |
| (referenced_regs, this_insn_sets): New variables. |
| |
| (setup_save_areas): Restructure the code a bit. |
| |
| (restore_referenced_regs): Delete function. |
| (mark_referenced_regs): New function, similar to the old |
| restore_referenced_regs, but mark registers in referenced_regs. |
| |
| (clear_reg_live): Delete function. |
| (mark_set_regs): Renamed from set_reg_live. All callers changed. |
| Only mark registers in this_insn_sets. |
| |
| (save_call_clobbered_regs): Rework this function to walk the |
| reload_insn_chain instead of using the list of instructions directly. |
| Delete code to keep track of register lives, compute live regs on the |
| fly from information in the chain. |
| Instead of calling restore_referenced_regs, use mark_referenced_regs, |
| then walk the set it computes and call insert_restore as appropriate. |
| |
| (insert_restore): Lose INSN and BLOCK args. Add CHAIN arg. All |
| callers changed. |
| Restructure the code a bit. Test hard_regs_saved instead of |
| hard_regs_need_restore. |
| (insert_save): Lose INSN and BLOCK args. Add CHAIN and TO_SAVE |
| args. All callers changed. |
| Restructure the code a bit. Use TO_SAVE to determine which regs to |
| save instead of more complicated test. |
| (insert_one_arg): Lose INSN and BLOCK args. Add CHAIN arg. All |
| callers changed. |
| Create a new insn_chain structure for the new insn and place it |
| into the chain. |
| |
| * rtl.texi: Update documentation to reflect that reload no longer |
| puts modes on the insns. |
| |
| 1998-10-14 Andreas Schwab <schwab@issan.cs.uni-dortmund.de> |
| |
| * function.c (purge_addressof_1): Force the first argument of a |
| CALL insn to memory. |
| |
| Wed Oct 14 00:38:40 1998 Jeffrey A Law (law@cygnus.com) |