aboutsummaryrefslogtreecommitdiff
path: root/gcc/rtl.c
AgeCommit message (Collapse)AuthorFilesLines
1999-08-19rtl.def (NOTE): Change format to "iuu0n".Zack Weinberg1-2/+6
1999-08-19 14:44 -0700 Zack Weinberg <zack@bitmover.com> * rtl.def (NOTE): Change format to "iuu0n". (ADDR_DIFF_VEC): Change format to "eEee0". (ADDRESSOF): Change format to "eit". * rtl.h (rtvec): Make "elem" an array of rtx, not rtunion. (RTVEC_ELT): Change to match. (XVECEXP): Use XVEC and RTVEC_ELT. (INSN_UID, INSN_CODE, CODE_LABEL_NUMBER, NOTE_LINE_NUMBER, ADDRESSOF_REGNO, REGNO, SUBREG_WORD): Use XINT. (PREV_INSN, NEXT_INSN, PATTERN, REG_NOTES, CALL_INSN_FUNCTION_USAGE, SUBREG_REG, SET_SRC, SET_DEST, TRAP_CONDITION, TRAP_CODE): Use XEXP. (INTVAL): Use XWINT. (ADDRESSOF_DECL): Use XTREE. (SET_ADDRESSOF_DECL): Delete. (NOTE_DECL_NAME, NOTE_DECL_CODE, NOTE_DECL_RTL, NOTE_DECL_IDENTIFIER, NOTE_DECL_TYPE): Kill. These have been ifdefed out since 2.6 at least. (gen_rtvec_vv): Delete prototype. * rtl.h (rtvec_alloc): rt->elem is now an array of rtx, not rtunion. (copy_most_rtx): Handle 't' format letter. * emit-rtl.c (gen_rtvec_v): rt_val->elem is an array of rtx. (gen_rtvec_vv): Delete function. All callers changed to use gen_rtvec_v instead. * print-rtl.c (print_rtx): Move special casing of NOTEs to the '0' format letter. * function.c (gen_mem_addressof): Don't use SET_ADDRESSOF_DECL; provide `decl' to gen_rtx_ADDRESSOF instead. * integrate.c (copy_rtx_and_substitute): Likewise. Copy 't' slots with XTREE. (subst_constants): Treat 't' slots like '[swi]' slots. * cse.c (canon_hash, exp_equiv_p): Treat 't' slots like '0' slots. * jump.c (rtx_equal_for_thread_p): Likewise. * rtlanal.c (rtx_equal_p): Likewise. * stmt.c (expand_end_case): gen_rtx_ADDR_DIFF_VEC now takes only four arguments. * gengenrtl.c (type_from_format): Provide correct types for 'b' and 't' slots. * tree.h [ENABLE_CHECKING] (TREE_CHECK, TREE_CLASS_CHECK): If a recent gcc is in use (always in stage2 and beyond), use statement expressions, so we don't make a function call unless the check fails. Evaluate arguments exactly once. (CHAIN_CHECK, DO_CHECK, DO_CHECK1, TREE_CHECK1, TREE_CLASS_CHECK1, TYPE_CHECK1, DECL_CHECK1, CST_CHECK1): Delete. (CST_OR_CONSTRUCTOR_CHECK, EXPR_CHECK): Redefine such that they evaluate their arguments exactly once, irrespective of the compiler in use. * tree.c [ENABLE_CHECKING]: Define whichever set of functions is used by the currently-enabled check macros. This is: (tree_check_failed, tree_class_check_failed): For gcc. (tree_check, tree_class_check, cst_or_constructor_check, expr_check): For other compilers. * gencheck.c: Do not define any *_CHECK1 macros. From-SVN: r28769
1999-08-04Warning fixes:Kaveh R. Ghazi1-1/+0
* builtins.c (expand_builtin_memcmp, expand_builtin_strcmp): Wrap prototypes in macro HAVE_cmpstrsi. * cpplib.c (cpp_get_token): Remove unused label `op3'. * emit-rtl.c (operand_subword): Remove unused variable `bits_per_word'. * rtl.c (shallow_copy_rtx): Remove unused variable `format_ptr'. * tree.c (chainon): Wrap variable `t2' in macro ENABLE_CHECKING. From-SVN: r28514
1999-03-22rtl.h (shallow_copy_rtx): Declare.J"orn Rennecke1-0/+22
* rtl.h (shallow_copy_rtx): Declare. * rtl.c (shallow_copy_rtx): New function. * reload.c (find_reloads_toplev): Use shallow_copy_rtx instead of copy_rtx. From-SVN: r25897
1999-03-19Warning fixes:Kaveh R. Ghazi1-1/+1
* cccp.c (create_definition): Cast to U_CHAR* when assigning to one. * cppfiles.c (read_and_prescan): Likewise. Start a #define in column 0. * cpplib.c (cpp_define): Cast to U_CHAR* when assigning to one. (cpp_push_buffer): Likewise for cpp_buffer*. (do_include): Change the type of `fbeg' and `fend' to unsigned char*. (do_endif): Cast to char* when assigning to one. (do_assert): Likewise. (do_unassert): Likewise. (cpp_read_check_assertion): Change the type of `name' to U_CHAR*. Don't do unnecessary cast to char* anymore. * genrecog.c (make_insn_sequence): Cast to char** when assigning to one. Cast the first argument of bzero to PTR. * loop.c (strength_reduce): Remove unused variable `note'. * reload1.c (new_insn_chain): Cast to struct insn_chain* when assigning to one. * rtl.c (copy_rtx): Use memcpy instead of bcopy. From-SVN: r25860
1999-02-25Flow rewrite to use basic block structures and edge lists.Richard Henderson1-1/+2
From-SVN: r25450
1999-02-22cse.c (dump_class): New function.Mark Mitchell1-5/+18
* cse.c (dump_class): New function. (invalidate_memory): Fix typo in comment. * function.c (temp_slot): Add an alias set field. (assign_stack_temp): Only reuse slots if they will have the same alias set as before. (combine_temp_slots): Don't combine if -fstrict-aliasing; that's unsafe. * rtl.c (copy_rtx): Copy all the flags (in particular, MEM_SCALAR_P). From-SVN: r25372
1999-01-11* rtl.c (rtx_alloc): Use memset instead of inline loop.Richard Henderson1-3/+1
From-SVN: r24632
1999-01-06More copyright fixes. Oh what fun.Jeff Law1-1/+1
From-SVN: r24536
1998-12-08See ChangeLog..Andrew MacLeod1-1/+2
Tue Dec 8 15:32:56 EST 1998 Andrew MacLeod <amacleod@cygnus.com> See ChangeLog.. These are the files that were changed: * 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. * 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'. * except.c (create_rethrow_ref): New function to create a single * flow.c (make_edges): Add different edges for rethrow calls, * integrate.c (save_for_inline_eh_labelmap): New callback routine to * libgcc2.c (find_exception_handler): Generalize to enable it to * cp/except.c * cp/exception.cc From-SVN: r24194
1998-10-23machmode.h (mode_mask_array): No longer const.Richard Earnshaw1-1/+2
* machmode.h (mode_mask_array): No longer const. * rtl.c (init_rtl): Fully initialize it if EXTRA_CC_MODES defined. From-SVN: r23245
1998-10-14Add ATTRIBUTE_NORETURN in a bunch of places:Kaveh R. Ghazi1-1/+1
* 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. From-SVN: r23084
1998-10-01dwarf2out.c (expand_builtin_dwarf_reg_size): Fix to work with more than ↵John Carr1-7/+18
three size ranges. * dwarf2out.c (expand_builtin_dwarf_reg_size): Fix to work with more than three size ranges. * flow.c (sbitmap_copy): Use bcopy to copy bitmap. * rtl.c (mode_name): Add a null string at the end of the array. (mode_wider_mode): Change type to unsigned char. (mode_mask_array): New variable. (init_rtl): Update for mode_wider_mode type change. * rtl.h (mode_wider_mode): Change type to unsigned char. (mode_mask_array): Declare. (GET_MODE_MASK): Use mode_mask_array. From-SVN: r22717
1998-09-05rtl.h (enum reg_note): Add REG_FRAME_RELATED_EXPR.Richard Henderson1-1/+2
* rtl.h (enum reg_note): Add REG_FRAME_RELATED_EXPR. * rtl.c (reg_note_name): Likewise. * rtl.texi (REG_NOTES): Likewise. * dwarf2out.c (dwarf2out_frame_debug): Use it. Recognize a store without an offset. From-SVN: r22273
1998-05-13Makefile.in (HOST_RTL): Add $(HOST_PREFIX)bitmap.o.Michael Meissner1-2/+18
* Makefile.in (HOST_RTL): Add $(HOST_PREFIX)bitmap.o. (rtl.o, emit-rtl.o): Add dependency on bitmap.h. ($(HOST_PREFIX_1)rtl.o): Likewise. ($(HOST_PREFIX_1)bitmap.o): New host object. * emit-rtl.c (toplevel): Include bitmap.h. (gen_rtx): Handle 't' and 'b' nodes. * print-rtl.c (print_rtx): Handle printing NOTE_INSN_LIVE notes. Print block number for block begin/end notes. Print 't' type nodes as a pointer. Know that the 3rd argument of live range start/stop notes is really a range_info rtx. If type is 'b', print out argument as a bitmap. * rtl.c: Include bitmap.c. (copy_rtx): Copy tree nodes as is. Copy bitmaps if type is 'b'. (note_insn_name): Add NOTE_INSN_RANGE_{START,END}, NOTE_INSN_LIVE. * rtl.def (RANGE_LIVE): New node to hold live information while we recalculate the basic blocks. (RANGE_REG, RANGE_INFO): New rtl types for live range splitting. (RANGE_VAR): New node, to hold information saved in symbol node for New communicating live range information to the debug output functions. * rtl.h (rtunion_def): Add rttree and rtbit fields. (XBITMAP, XTREE): New accessor macros. (NOTE_LIVE_INFO): Overload NOTE_SOURCE_FILE for NOTE_INSN_LIVE notes. (NOTE_RANGE_INFO): Similarly for NOTE_INSN_RANGE_{START,END} notes. (NOTE_BLOCK_LIVE_RANGE_BLOCK): Define. (NOTE_INSN_RANGE_START, NOTE_INSN_RANGE_END, NOTE_INSN_LIVE): New notes. (RANGE_LIVE_{BITMAP,ORIG_BLOCK}): New accessor macros. (RANGE_REG_{SYMBOL,BLOCK}_NODE, RANGE_VAR_*): New accessor macros. (RANGE_INFO_*): Likewise. * sched.c (sched_analyze): Keep live range start/stop notes. (unlink_other_notes): Likewise. * haifa-sched.c (sched_analyze): Keep live range start/stop notes. (unlink_other_notes): Likewise. * tree.h (BLOCK_LIVE_RANGE_{START,END,VAR_FLAG}): New accessor macros. (BLOCK_LIVE_RANGE_FLAG): Likewise. (DECL_LIVE_RANGE_RTL): Likewise. (struct tree_block): Add live_range_flag, live_range_var_flag, live_range_start and live_range_end. (struct tree_decl): Add live_range_rtl field. * gengenrtl.c (type_from_format): Handle 'b' and 't'. (accessor_from_format): Likewise. Co-Authored-By: Jeffrey A Law <law@cygnus.com> From-SVN: r19727
1998-05-06c-common.c: Convert to using ctype macros defined in system.h.Kaveh R. Ghazi1-2/+2
* c-common.c: Convert to using ctype macros defined in system.h. * c-lex.c: Likewise. * cccp.c: Likewise. * collect2.c: Likewise. * rs6000.c: Likewise. * cpplib.c: Likewise. * fix-header.c: Likewise. * gcc.c: Likewise. * gen-protos.c: Likewise. * pexecute.c: Likewise. * protoize.c: Likewise. * rtl.c: Likewise. * scan.c: Likewise. * stmt.c: Likewise. * tlink.c: Likewise. * toplev.c: Likewise. From-SVN: r19579
1998-05-06The isascii check is needed by system.h.Kaveh R. Ghazi1-4/+0
* configure.in (AC_CHECK_FUNCS): Add isascii. (GCC_NEED_DECLARATIONS): Add atof. * system.h: Provide prototypes for abort, atof, atol and sbrk here. * rtl.c, rtl.h, toplev.c, tree.h: Not here. From-SVN: r19572
1998-04-10Prevent going into an infinite loop upon encountering an enuterminated comment.Nick Clifton1-2/+3
From-SVN: r19082
1998-03-20Major cutover to using system.h:Kaveh R. Ghazi1-5/+1
* Makefile.in (alias.o, bitmap.o, c-aux-info.o, c-common.o, c-decl.o, c-iterate.o, c-lang.o, c-lex.o, c-pragma.o, c-typeck.o, caller-save.o, calls.o, collect2.o, combine.o, cse.o, dbxout.o, dwarf2out.o, dwarfout.o, emit-rtl.o, except.o, explow.o, expmed.o, expr.o, final.o, flow.o, function.o, getpwd.o, global.o, integrate.o, jump.o, local-alloc.o, loop.o, optabs.o, pexecute.o, prefix.o, print-rtl.o, print-tree.o, profile.o, real.o, recog.o, reg-stack.o, regclass.o, regmove.o, reload.o, reload1.o, reorg.o, rtl.o, rtlanal.o, sdbout.o, stmt.o, stor-layout.o, stupid.o, tlink.o, toplev.o, tree.o, unroll.o, varasm.o, xcoffout.o): Depend on system.h. * alias.c, bitmap.c, c-aux-info.c, c-common.c, c-decl.c, c-iterate.c, c-lang.c, c-lex.c, c-pragma.c, c-typeck.c, caller-save.c, calls.c, collect2.c, combine.c, cse.c, dbxout.c, dwarf2out.c, dwarfout.c, emit-rtl.c, except.c, explow.c, expmed.c, expr.c, final.c, flow.c, function.c, gcc.c, getpwd.c, global.c, integrate.c, jump.c, local-alloc.c, loop.c, optabs.c, pexecute.c, prefix.c, print-rtl.c, print-tree.c, profile.c, real.c, recog.c, reg-stack.c, regclass.c, regmove.c, reload.c, reload1.c, reorg.c, rtl.c, rtlanal.c, sched.c, sdbout.c, stmt.c, stor-layout.c, stupid.c, tlink.c, toplev.c, tree.c, unroll.c, varasm.c, xcoffout.c: Include system.h. Organize include ordering so that stdarg/varargs comes before other system headers. Remove spurious casts of functions assured of a prototype in system.h. From-SVN: r18726
1998-03-18rtl.c (read_rtx): Fall back on homebrew atoll if HOST_WIDE_INT is large...Richard Henderson1-3/+40
* rtl.c (read_rtx): Fall back on homebrew atoll if HOST_WIDE_INT is large, and the system doesn't provide atoll or atoq. (atoll): New. * alpha/xm-vms.h (HAVE_ATOLL): Define. Reported by Klaus Kaempf <kkaempf@progis.de>. From-SVN: r18657
1998-01-30Forgot to commit these...Jeff Law1-0/+6
From-SVN: r17555
1998-01-28rtl.c (read_rtx): Use atol/atoq based upon disposition of HOST_WIDE_INT.Jeff Law1-0/+4
* rtl.c (read_rtx): Use atol/atoq based upon disposition of HOST_WIDE_INT. * genattrtab.c (write_test_expr): Use HOST_WIDE_INT_PRINT_DEC as needed. * genemit.c (gen_exp): Likewise. * genpeep.c (match_rtx): Likewise. * genrecog.c (write_tree_1): Likewise. * c-lex.c (yyprint): Use proper format string based upon disposition of HOST_BITS_PER_WIDE_INT. (yylex): Put casts in right place for args to build_int_2. * combine.c: Fix typos in Jan27 changes. From-SVN: r17544
1998-01-17acconifg.h (NEED_DECLARATION_ATOL): New declaration to check for.Jeffrey A Law1-1/+1
* acconifg.h (NEED_DECLARATION_ATOL): New declaration to check for. * rtl.c (atol): Only provide the declaration if NEED_DECLARATION_ATOL. From-SVN: r17404
1998-01-17* rtl.c (read_rtx): Initialize list_rtx to NULL, not NULL_RTX.Jeffrey A Law1-1/+1
From-SVN: r17400
1997-12-20bitmap.c (bitmap_clear): Ensure `inline' is at the beginning of the declaration.Kaveh R. Ghazi1-3/+6
* bitmap.c (bitmap_clear): Ensure `inline' is at the beginning of the declaration. * c-decl.c (finish_decl): Use parentheses around && within ||. * rtl.c: Include stdlib.h. (read_skip_spaces): Add parentheses around assignments used as truth values. (read_rtx): Initialize list_rtx. * cppexp.c (parse_number): Use || when operands are truth values. * alias.c (find_base_value): Add default case. (memrefs_conflict): Likewise. * combine.c (sets_function_arg_p): Likewise. * genemit.c (gen_exp): Likewise. * local-alloc.c (contains_replace_regs): Likewise. * rtlanal.c (jmp_uses_reg_or_mem): Likewise. * fold-const.c (fold_convert): Use "&&" for truth values. (fold): Add default case. * sdbout.c (sdbout_field_types): Fix typo in declaration. (sdbout_one_type): Add default case. * alpha.c (alpha_sa_mask): Prototype only if OPEN_VMS. (some_operand): Add default case. (input_operand): Likewise. (signed_comparison_operator): Likewise. (divmod_operator): Likewise. (alpha_set_memflags_1): Likewise. * reload1.c (reload_cse_simplify_operands): Ensure function always returns a value. * scan-decls.c (scan_decls): Likewise. * c-lex.c (skip_white_space): Fix typo in declaraion. * c-typeck.c (comp_target_types): Add parentheses around assignment used as truth value. (print_spelling): Likewise. (constructor_implicit, constructor_result): Remove unused variables. * collect2.c (scan_library): Protect prototype with #ifdef SCAN_LIBRARIES. * emit-rtl.c (find_line_note): Fix typo in declaration. * final.c (asm_insn_count): Protect prototype with #ifdef HAVE_ATTR_length. * flow.c (find_auto_inc): Protect prototype with #ifdef AUTO_INC_DEC. (try_pre_increment_1, try_pre_increment): Likewise. * regclass.c (auto_inc_dec_reg_p): Protect prototype with #ifdef FORBIDDEN_INC_DEC_CLASSES. Make return type explicit. * gcov-io.h (__store_long, __write_long, __read_long): Fix unsigned/signed comparisons. * gcov.c (read_files): Remove unused "first_type" variable. (scan _for_source_files): Initialize s_ptr. (function_summary): Eliminate "%lf" formatting, use %ld for longs. (output_data): Initialize branch_probs and last_line_num. Eliminate "%lf" formatting, use "%ld" for longs. Co-Authored-By: Jeffrey A Law <law@cygnus.com> From-SVN: r17158
1997-12-11[multiple changes]Teemu Torma1-1/+1
Thu Dec 11 20:42:18 1997 Teemu Torma <tot@trema.com> Thread-safe EH support for pthreads, DCE threads and Solaris threads. * integrate.c (expand_inline_function): If the inline fn uses eh context, make sure that the current fn has one. * toplev.c (rest_of_compilation): Call emit_eh_context. * except.c (use_eh_context): New fn. (get_eh_context_once): New fn. (call_get_eh_context): New fn. (emit_eh_context): New fn. (get_eh_context): Call either get_eh_context_once or call_get_eh_context, depending on what we have. (get_dynamic_handler_chain): Call get_eh_context_once. * except.h: Prototypes for fns above. * optabs.c (get_eh_context_libfunc): Removed. (init_optabs): Don't initialize it. * expr.h (get_eh_context_libfunc): Removed. * rtl.h, rtl.c: New reg_note REG_EH_CONTEXT. * config/pa/pa.h (CPP_SPEC): Support for -threads. * config/pa/pa-hpux10.h (LIB_SPEC): Ditto. * config/pa/t-pa (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): New multilib for -threads. * config/sparc/t-sol2: Added multilibs for -threads and made -pthreads alias to it. * config/sparc/sol2.h (CPP_SPEC, LIB_SPEC): Added -threads and -pthreads options. * libgcc-thr.h: New file. * libgcc2.c: (__get_cpp_eh_context): Removed. (struct cpp_eh_context): Removed. (struct eh_context): Replaced cpp_eh_context with generic language specific pointer. (__get_eh_info): New function. (__throw): Check eh_context::info. (__sjthrow): Ditto. * libgcc2.c: Include libgcc-thr.h. (new_eh_context, __get_eh_context, eh_pthread_initialize, eh_context_initialize, eh_context_static, eh_context_specific, eh_context_free): New functions. (get_eh_context, eh_context_key): New variables. (__sjthrow, __sjpopnthrow, __eh_pcnthrow, __throw): Use get_eh_context to get the context. (longjmp): Move the declaration inside #ifdef DONT_USE_BUILTIN_SETJMP. * frame.c: Include libgcc-thr.h. (object_mutex): Mutex to protect the object list. (find_fde, __register_frame, __register_frame_table, __deregister_frame): Hold the lock while accessing objects. * except.h (get_eh_context): Declare. * except.c (current_function_ehc): Define. (current_function_dhc, current_function_dcc): Removed. (get_eh_context): New function. (get_dynamic_handler_chain): Use get_eh_context. (get_saved_pc_ref): Ditto. (get_dynamic_cleanup_chain): Removed references to current_function_dcc. (save_eh_status, restore_eh_status): Save and restore current_function_ehc instead. * optabs.c (get_eh_context_libfunc): New variable. (init_optabs): Initialize it. * expr.h: Declare get_eh_context_libfunc. * function.h (struct function): Replaced dhc and dcc with ehc. * except.c (get_saved_pc_ref): New functions. (eh_saved_pc_rtx, eh_saved_pc): Deleted. (expand_internal_throw_indirect): Use get_saved_pc_ref() instead of eh_saved_pc. (end_eh_unwinder): Likewise. (init_eh): Remove initialization of eh_saved_pc. * optabs.c (get_saved_pc_libfunc): New variable. (init_optabs): Initialize it. * expr.h: Declare get_saved_pc_libfunc. * except.h (eh_saved_pc_rtx): Deleted. (get_saved_pc_ref): Declared. From Scott Snyder <snyder@d0sgif.fnal.gov>: * libgcc2.c (__get_saved_pc): New. (__eh_type, __eh_pc): Deleted. (__eh_pcnthrow): Use __get_saved_pc() instead of __eh_pc. (__get_dynamic_handler_chain): Move __dynamic_handler_chain inside this fcn. cp/: Thu Dec 11 20:43:33 1997 Teemu Torma <tot@trema.com> * decl.c (ptr_ptr_type_node): Define. (init_decl_processing): Initialize it. * cp-tree.h: Declare it. * exception.cc (__cp_exception_info): Use __get_eh_info. (__cp_push_exception): Ditto. (__cp_pop_exception): Ditto. From Scott Snyder <snyder@d0sgif.fnal.gov>: * except.c (expand_builtin_throw): Use get_saved_pc_ref instead of saved_pc. (init_exception_processing): Removed saved_pc initialization. From-SVN: r17052
1997-12-06Merge from gcc-2.8Jeff Law1-11/+3
From-SVN: r16987
1997-11-02Update mainline egcs to gcc2 snapshot 971021.Jeff Law1-0/+6
From-SVN: r16278
1997-09-23reorg.c (dbr_schedule): At end of this pass...David S. Miller1-1/+2
* reorg.c (dbr_schedule): At end of this pass, add REG_BR_PRED note holding get_jump_flags() calculation to all JUMP_INSNs. * rtl.h (enum reg_note): New note types REG_BR_PRED and REG_SAVE_AREA. * rtl.c (reg_note_name): Add new note types. From-SVN: r15670
1997-08-11* Integrate alias analysis changes from jfc@mit.eduJeffrey A Law1-1/+1
* Makefile.in (OBJS): Add alias.o (alias.o): Add dependencies. * alias.c: New file. * sched.c: Remove alias analysis code. It lives in alias.c now. (reg_last_uses_size): Declare. (sched_analyze_2): Add new arguments to true_dependence. (sched_analyze_insn): Use reg_last_uses_size instead of max_reg. (schedule_block): Initialize reg_last_uses_size. (schedule_insns): Always call init_alias_analysis. * calls.c (expand_call): Note calls to malloc, calloc, and realloc; mark return value from such functions as a pointer and keep track of them for alias analysis. If a return value from a function is a pointer, mark it as such. * combine.c (distribute_notes): Handle REG_NOALIAS. * cse.c (struct write_data): Delete. No longer needed. (invalidate): Don't call set_nonvarying_address_components anymore. Use true_dependence to decide if an entry should be removed from the hash table. (invalidate_memory): Remove WRITES argument, simplify appropriately. Fix all callers. (note_mem_written): Similarly for WRITE_PTR argument. (invalidate_from_clobbers): Similarly for W argument. (invalidate_for_call): Remove memory elements from the hash table. (refers_to_mem_p, cse_rtx_addr_varies_p): Deleted. (cse_rtx_varies_p): New function. Derived from old cse_rtx_addr_varies_p. (cse_insn): Remove WRITES_MEMORY and INIT variables and all references. Don't call note_mem_written anymore. Stack pushes invalidate the stack pointer if PUSH_ROUNDING is defined. No longer need to call cse_rtx_addr_varies_p to decide if a MEM should be invalidated. (skipped_writes_memory): Remove variable. (invalidate_skipped_set): Simplify and wewrite to use invalidate_memory. (invalidate_skipped_block): Simplify for new alias analysis code. (cse_set_around_loop): Likewise. (cse_main): Call init_alias_analysis. * flags.h (flag_alias_check, flag_argument_noalias): Declare. * toplev.c (flag_alias_check, flag_argument_noalias): Define. (f_options): Add new alias checking arguments. (main): Set flag_alias_check when optimizing. * local_alloc (validate_equiv_mem_from_store): Add new arguments to true_dependence. (memref_referenced_p): Likewise. * loop.c (NUM_STORES): Increase to 30. (prescan_loop): Only non-constant calls set unknown_address_altered. (invariant_p): Add new arguments to true_dependence. (record_giv): Initialize unrolled and shared fields. (emit_iv_add_mult): Call record_base_value as needed. * loop.h (struct induction): Add unrolled and shared fields. * unroll.c (unroll_loop): Call record_base_value as needed. (copy_loop_body): Likewise. (final_biv_value): Likewise. (final_giv_value): Likewise. (find_splittable_regs): Likewise. Only create one new pseudo if we have multiple address GIVs that were combined with the same dst_reg GIV. Note when a new register is created due to unrolling. * rtl.c (reg_note_name): Add REG_NOALIAS. * rtl.h (enum reg_note): Similarly. (rtx_varies_p, may_trap_p, side_effects_p): Declare. (volatile_refs_p, volatile_insn_p, remove_note): Likewise. (note_stores, refers_to_regno_p, reg_overlap_mentioned_p): Likewise. (true_dependence, read_dependence, anti_dependence): Likewise. (output_dependence, init_alias_analysis, end_alias_analysis): Likewise. (mark_user_reg, mark_reg_pointer): Likewise. jfc's alias analysis code. From-SVN: r14768
1997-03-28rtl.c (note_insn_name): Add NOTE_REPEATED_LINE_NUMBER.Doug Evans1-3/+5
* rtl.c (note_insn_name): Add NOTE_REPEATED_LINE_NUMBER. (reg_note_name): Add REG_BR_PROB and REG_EXEC_COUNT. From-SVN: r13821
1996-11-15(rtvec_alloc): Clear rtwint instead of rtvec.Richard Kenner1-3/+4
From-SVN: r13172
1996-07-23install EH codeMike Stump1-1/+2
From-SVN: r12548
1996-07-03formatting tweaksMike Stump1-1/+1
From-SVN: r12390
1995-06-15Update FSF address.Richard Kenner1-1/+2
From-SVN: r9964
1994-03-25(read_rtx): Remove decl of unused variable STRINGBUFSIZE.Richard Kenner1-2/+1
From-SVN: r6891
1993-10-07Move initialization of byte_mode and word_mode to emit-rtl.cIan Lance Taylor1-19/+1
From-SVN: r5661
1993-09-19(rtx_free): New function.Richard Stallman1-0/+9
From-SVN: r5366
1993-05-17(init_rtl): Correct number of 'w's in CONST_DOUBLE format.Richard Stallman1-2/+3
From-SVN: r4490
1993-04-26(NOTE_INSN_FUNCTION_BEG): Make non-zero.Doug Evans1-2/+2
From-SVN: r4226
1993-03-31Include real.h to get the definition of REAL_VALUE_TYPE.Richard Stallman1-0/+1
From-SVN: r3940
1993-01-14(copy_rtx): A MEM with constant address is not sharable.Jim Wilson1-4/+4
Undo Dec 27 change. From-SVN: r3231
1993-01-03(rtx_alloc): Clear common area of rtx in a portable manner.Richard Kenner1-1/+8
From-SVN: r3074
1992-12-27(copy_rtx): A CONST can be shared if it contains a SYMBOL_REF.Richard Kenner1-0/+16
A SCRATCH must be shared. A MEM may be shared if it is at a constant address. From-SVN: r2924
1992-09-19(note_insn_name): Fix typo: had NOT_INSN_DELETED_LABEL.Richard Kenner1-1/+1
From-SVN: r2183
1992-09-15(ftell): Declaration deleted.Richard Stallman1-2/+0
From-SVN: r2122
1992-07-06entered into RCSCharles Hannum1-5/+48
From-SVN: r1476
1992-07-05*** empty log message ***Richard Stallman1-1/+2
From-SVN: r1438
1992-06-29*** empty log message ***Tom Wood1-1/+2
From-SVN: r1336
1992-06-28*** empty log message ***Richard Kenner1-2/+0
From-SVN: r1318
1992-06-27*** empty log message ***Richard Kenner1-0/+8
From-SVN: r1310