📄 changelog.1
字号:
* tree.c (function_maybepermanent_obstack): Make a separate saveable obstack for each nested function level. (init_tree): Init this variable. (save_tree_status, restore_tree_status): Save and restore it. Create and free a new obstack for the purpose. (temporary_allocation, resume_temporary_allocation): Use this var. (preserve_data, preserve_initializer): Use this var. (make_node): Use this var for PARM_DECL nodes. * tree.c (push_obstacks): New name for push_obstack. Additional arg specifies saveable_obstack. All calls changed. (pop_obstacks): New name for pop_obstack. All calls changed. * config.gcc: Add `3300'. (genix): Fix typo in name of makevar file. * tm-mot3300.h, xm-mot3300.h: New files. * math-3300.h: New file. * output.h: Fix typo in SDB_DEBUGGING_INFO. * tm-sun386i.h (LINK_SPEC): Moved here, and -static handled. * xm-sun386i.h: Moved from here. * tm-alliant.h (LINK_SPEC): Moved here, from xm-alliant.h. * tm-convex.h, tm-i860.h, tm-spur.h, tm-vax.h, tm-tahoe.h, tm-pyr.h: Delete FIX_FRAME_POINTER_ADDRESS. * tm-sparc.h, tm-m88k.h: Turn off FIX_FRAME_POINTER_ADDRESS. INITIAL_FRAME_POINTER_OFFSET could be written later. * tm-m68k.h, tm-ns32k.h, tm-alliant.h, tm-i386.h, tm-mips.h: Define INITIAL_FRAME_POINTER_OFFSET. * toplev.c (compile_file): Remove .m and .cc suffixes, like .c. * final.c (end_final): For basic block profiling, don't output source file name. Instead, append ".d", and remove ".c". * gnulib2.c (__bb_init_func): New name for __bb_init_function. Conditionalize on mc68000, not m68k. Fix other typos.Wed Mar 28 16:07:15 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) * c-decl.c, cplus-decl.c (duplicate_decls): Preserve DECL_FRAME_SIZE from definition past subsequent declarations. * c-decl.c (xref_tag): If global_binding_level, make nodes permanent. * expmed.c (init_expmed): Set up mult_is_very_cheap. (expand_mult): Never use shifts if mult_is_very_cheap. * expr.c (store_expr): When copying through new temporary, allocate temporary first and use as target. * tm-m68k.h (HARD_REGNO_MODE_OK): Abort on VOIDmode. * reload1.c (fix_frame_pointer_address): New function. (alter_frame_pointer_addresses): New arg INSN. Calls changed. Use that function instead of macro FIX_FRAME_POINTER_ADDRESS which is now obsolete. (eliminate_frame_pointer): Use macro INITIAL_FRAME_POINTER_OFFSET to initialize depth. Abort if that macro is missing. * expmed.c (store_bit_field): If loading MEM into a reg, use the mode of the MEM if that is not BLKmode. (extract_bit_field): Likewise. * tm-mips.h (STRUCTURE_SIZE_BOUNDARY): Changed from 16 to 8. * calls.c (expand_call): Handle STACK_BOUNDARY when using push insns. * function.c (assign_parms): Note how PUSH_ROUNDING affects stack parm size.Tue Mar 27 19:40:11 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) * c-decl.c (poplevel): Output inline nested functions if needed. * cplus-decl.c: Likewise. * i386.md (insv): New pattern added for the moment.Tue Mar 27 17:47:35 1990 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) * function.c (lookup_outer_static_chain): Deleted, no longer used. (trampoline_address): RTL for trampoline, rather than its address, is stored in trampoline list. Just add entry to list; don't fill in the trampoline here. (expand_function_end): Fill in any required trampolines here. (expand_function_start): Move tail recursion entry to after creation of display list; size computations come next.Tue Mar 27 14:09:31 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) * m68k.md (movsi, movhi, movstricthi, movqi, movstrictqi): Avoid both clr and st on volatile mem, but only on 68000. (SImode store 0 recognizer): Likewise. * stor-layout.c (agg_mode): Don't consider PSImode, etc.Mon Mar 26 21:12:16 1990 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) * local-alloc.c (combine_regs): Only set suggested bit for first register if multi-word quantity. (find_free_reg): Look at suggested regs for first in set, then use all available for subsequent regs.Mon Mar 26 15:01:02 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) * c-decl.c (start_enum): Don't lay out the type. (finish_enum): Always lay it out, and always set the precision. Change the type of the enumerators if int is too narrow. * tm-m68k.h (NOTICE_UPDATE_CC): addq and subq do update cc's even if destination is an address register. * c-parse.y, objc-parse.y (check_newline): Call HANDLE_PRAGMA if def. * out-next.c: New file. (handle_pragma): New function. * tm-next.h (HANDLE_PRAGMA): Define it. * Makefile.in (GNULIB2): New variable. (gnulib2): Use it. (gnulib2.portable): New name for old rule. (install-headers): Split out part of install rule. (INSTALL_HEADERS): New variable. * make-next: New file. * function.c (assign_parms): Get type from proper place. internal_arg_pointer is now an arg. Compute arg_pointer_copied from that. Fix typos. (expand_function_start): Compute internal_arg_pointer here. Fix typos handling incoming struct value address. * cccp.c (do_include): Ignore null strings found in stackp. * cccp.c (discard_comments): Handle backslash-newline.Mon Mar 26 07:18:58 1990 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) * function.h (temp_slot, temp_slot_level): Now saved by function.c. * function.c (struct temp_slot): Move from stmt.c. (push_function_context, pop_function_context): Save/restore temp slots. (assign_parms): Pass type to locate_and_pad_parms. (locate_and_pad_parms): Accept TYPE. Don't need STACK_OFFSET. (expand_function_start): Pass type to locate_and_pad_parms. (init_function_start): Initialize temp_slot info. * stmt.c (temp_slot, init_stmt_for_function, save_stmt_status, restore_stmt_status): Delete temp_slot stuff from here.Sun Mar 25 20:21:58 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) * expr.c (emit_move_insn): Turn memory address checking back on, but allow push_operand for x. * ns32k.md (movstrsi): If UTEK_ASM, output $0 operand in movsd. (movsi): Handle UTEK_ASM like GNX_V3. * out-ns32k.c (print_operand_address): Add UTEK_ASM conditionals. * tm-merlin.h: New file. * tm-ns32k.h (FUNCTION_PROLOGUE, FUNCTION_EPILOGUE): Use save and restore insns if no frame pointer. * cccp.c (handle_directive): Discard backslash-newline within <...>.Sat Mar 24 13:23:52 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) * gcc.c (default_compilers): Add entry for .m files, for Objective C. Always pass some -lang... option to cpp. * cccp.c (do_include): Support #import as well as #include. (lookup_import, add_import, import_hash): New functions. (main): Handle options -lang-c++ and -lang-objc and -lang-c. Set variables cplusplus and objc. (enum node_type, directive_table): Add #import. (handle_directive): Treat #import as undefined unless objc is nonzero. (initialize_builtins): If objc, define __OBJC__. * Makefile.in (lang-objc, cc1obj): New targets. (objc-parse.o, objc-parse.c, objc-actions.o): New targets. (C_OBJS): Add c-lang.o. * objc.gperf: New file. * objc-parse.y, objc-actions.c, objc-actions.h: New files. * c-lang.c: New file. * c-decl.c (c_decode_option): New name for lang_decode_option. Used from c-lang.c and objc-actions.c. * toplev.c (compile_file): Call lang_init and lang_finish. * c-lang.c, objc-actions.c, cplus-decl.c: Define those functions. * c-typeck.c (comptypes): Call maybe_objc_comptypes for record types. * c-lang.c, objc-actions.c (maybe_objc_comptypes): New functions. * c-decl.c (implicitly_declare, finish_decl, finish_struct): Call maybe_objc_check_decl before rest_of_decl_compilation. * c-lang.c, objc-actions.c (maybe_objc_check_decl): New functions. * function.c (assign_stack_local): Align each slot only as needed. Normally don't round size up, just align first. New argument ALIGN specifies alignment, or 0 for that of MODE. All callers changed. (assign_outer_stack_local): Likewise. * final.c (final_start_function): Round frame size to STACK_BOUNDARY. * function.c (assign_stack_temp, preserve_temp_slots): (free_temp_slots): Moved from stmt.c. * stmt.c (expand_decl): Use convert_units to avoid overflow.Fri Mar 23 00:52:34 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) * c-decl.c (grokdeclarator): Warn if array element is incomplete. * varasm.c (assemble_variable): Use convert_units to compute size in bytes. (output_constructor): Likewise, for non-bit fields. * c-typeck.c (check_format, my_strchr): New functions. (build_function_call): Call check_format. * c-decl.c (lang_decode_options): Handle -Wformat. * c-tree.h (warn_format): New flag. * xm-hp9k320.h (USE_C_ALLOCA): Define if not compiling with GCC.Thu Mar 22 23:35:33 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) * c-decl.c (get_parm_info): Void parm is special only if no name. * loop.c (may_not_optimize): Static var replaces local `may_not_move'. (strength_reduce): Don't accept those regs as givs.Thu Mar 22 06:45:16 1990 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) * integrate.c (expand_inline_function): Compute delta to frame from the address at which it was allocated.Wed Mar 21 17:36:40 1990 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) * recog.c: Increase number of changes saved for validate_change. (validate_change): If INSN == 0 and in group, add to group; if not, always OK. (apply_change_group): If INSN == 0, change is always OK. * cse.c (cse_basic_block): If extending block, don't call cse_end_of_basic_block with null insn if we got to end of function.Wed Mar 21 14:08:35 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) * calls.c (expand_call): Don't reuse pending_stack_adjust for argblock if inhibit_defer_pop. * expr.c (push_block): New argument EXTRA. All callers changed. (emit_push_insn): Use that for the padding when using push_block. * tm-sparc.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Only word-aligned BLKmodes can go in registers. (FUNCTION_ARG_PARTIAL_NREGS): Likewise. * tm-spur.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Likewise. * expr.c (expand_call): If encounter a stack parm before offset gets up to zero, make it zero. * function.c (assign_parms): Likewise. * ns32k.md (stack adjust insn): Don't use cmpd or cmpqd on Sequent. * tm-sequent.h (SEQUENT_ADJUST_STACK): Define this. * make-hp9k320g (AR): Define it. * Makefile.in (gnulib): Use OLDAR. (OLDAR): New variable. * make-iris: New file. * xm-iris.h: Undef alloca before defining it. * Makefile.in (stage1, ...): Always copy gnulib, never link. * cccp.c (main): Use -d...M... as option for macro dump. * gcc.c (default_compilers): Pass -d* to cpp.Tue Mar 20 01:41:49 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) * c-parse.y (datadef): Error message fix. * cplus-parse.y: Likewise.Mon Mar 19 15:26:27 1990 Richard Stallman (rms at sugar-bombs.ai.mit.edu) * integrate.c (expand_inline_function): Save static chain value. (copy_rtx_and_substitute): Substitute it where called function copies its static chain. * emit-rtl.c (init_emit_once): Make static_chain_incoming_rtx distinct. * function.c (current_function_contains_functions): New variable. (init_function_start): Initialize it. (pop_function_context): Set it to 1. * integrate.c (function_cannot_inline_p): Don't inline fn with nested fns. * integrate.c (copy_rtx_and_substitute): Don't replace fp as destination of assignment. * assert.h (__assert) [not __GNUC__]: Rename arg to avoid stringify. * function.c (expand_function_start): If struct_value_incoming_rtx is 0, get the address from first parm reg or first stack slot. (assign_parms): In that case, skip the space it occupies. * calls.c (expand_call): If STRUCT_VALUE is 0, pass address as parm even if that means using a register.Mon Mar 19 07:43:46 1990 Richard Kenner (kenner at vlsi1.ultra.nyu.edu) * integrate.c (function_cannot_inline_p): Check for non-ANSI varargs as well as ANSI varargs. Allow inlining of functions with large frames now that we can share them between inlined functions. (expand_inline_function): Save static vars in case we were called recursively. Make sure we don't free temporary stack slot used for argument. * tree.def: Add new code types '<', '1', and '2
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -