1. 16 Oct, 1999 1 commit
    • flags.h (flag_bounds_check, [...]): New extern decls. · a8aa7975
      * flags.h (flag_bounds_check, flag_bounded_pointers): New extern decls.
      * toplev.c (flag_bounds_check, flag_bounded_pointers): New flags.
      (f_options): Add "bounded-pointers" and "bounds-check" entries.
      * c-lang.c (lang_init_options): Set flag_bounds_check as "unspecified".
      (lang_init): Set default for flag_bounds_check if still "unspecified".
      
      From-SVN: r30035
      Greg McGary committed
  2. 02 Sep, 1999 1 commit
    • flags.h: New variables align_loops... · efa3896a
      * flags.h: New variables align_loops, align_loops_log,
      align_jumps, align_jumps_log, align_labels, align_labels_log,
      align_functions, align_functions_log.
      * toplev.c: Define them.
      (f_options): Handle -falign-* when they have no argument.
      (main): Add logic to set variables for -falign-functions,
      -falign-jumps, -falign-labels, -falign-loops.
      Make it -fsched-verbose=<n> and -finline-limit=<n>.
      (display_help): Change help to match options.
      * final.c (LABEL_ALIGN): Default to align_labels_log.
      (LABEL_ALIGN_MAX_SKIP): Default to align_labels-1.
      (LOOP_ALIGN): Default to align_loops_log.
      (LOOP_ALIGN_MAX_SKIP): Default to align_loops-1.
      (LABEL_ALIGN_AFTER_BARRIER): Default to align_jumps_log.
      (LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Default to align_jumps-1.
      * varasm.c (assemble_start_function): Handle align_functions.
      
      * config/sparc/sparc.h: Don't declare sparc_align_*.
      Don't provide LABEL_ALIGN_AFTER_BARRIER or LOOP_ALIGN.
      (DEFAULT_SPARC_ALIGN_FUNCS): Delete; take functionality into
      sparc.c.
      (FUNCTION_BOUNDARY): Fix incorrect use---it's not just a request,
      it's a promise.
      * config/sparc/sparc.c: Delete sparc_align_loops,
      sparc_align_jumps, sparc_align_funcs and the corresponding string
      variables.
      (sparc_override_options): Default align_functions on ultrasparc.
      Delete -malign-* handling.
      
      * config/mips/mips.c (override_options):  On 64-bit targets,
      try to align code to 64-bit boundaries.
      (print_operand): New substitution, %~,
      which aligns labels to align_labels_log.
      * config/mips/mips.md (div_trap_normal): Use %~.
      (div_trap_mips16): Likewise.
      (abssi): Likewise.
      (absdi2): Likewise.
      (ffssi2): Likewise.
      (ffsdi2): Likewise.
      (ashldi3_internal): Likewise.
      (ashrdi3_internal): Likewise.
      (lshrdi3_internal): Likewise.
      (casesi_internal): Likewise.
      
      Plus corresponding documentation changes.
      
      From-SVN: r29045
      Geoffrey Keating committed
  3. 31 Aug, 1999 1 commit
    • backport: Makefile.in (STAGESTUFF): Add *.peephole2. · ede7cd44
              Merge peephole2 from new_ia32_branch:
              * Makefile.in (STAGESTUFF): Add *.peephole2.
              (mostlyclean): Likewise.
              (recog.o): Depend on resource.h.
      
              * final.c (peephole): Conditionalize decl on HAVE_peephole.
              (final_scan_insn): Likewise for the invocation of peephole.
              * genconfig.c (main): Look for peephole and peephole2 patterns.
              Emit HAVE_peephole* accordingly.
              * genpeep.c (main): Conditionalize entire output on HAVE_peephole.
              * flags.h (flag_peephole2): Declare.
              * toplev.c: New pass peephole2.  New flag -fpeephole2.
      
              * genattrtab.c (main): Count DEFINE_PEEPHOLE2.
              * gencodes.c (main): Likewise.
              * genextract.c (main): Likewise.
              * genoutput.c (main): Likewise.
              * genemit.c (max_operand_1): Look for the max scratch operand.
              (gen_rtx_scratch): New.
              (gen_exp): Use it, and pass on new arg subroutine_type.
              (gen_expand): Take max scratch into account.
              (gen_split): Emit peephole2 functions.
              (output_peephole2_scratch): New.
              (main): Include hard-reg-set.h and resource.h.  Handle peephole2.
              * genrecog.c (routine_type): Add PEEPHOLE2.
              (IS_SPLIT): New.
              (make_insn_sequence): Match outer parallel for peep2.  Discard
              top level scratches and dups.
              (add_to_sequence): New args insn_type and top.  Update all callers.
              Handle toplevel peep2 matching insns.
              (write_subroutine): Handle peep2.
              (write_tree_1): Likewise.
              (write_tree): Likewise.
              (main): Likewise.
              (change_state): New arg afterward.  Update all callers.
              Handle matching separate insns.
              * recog.c (recog_next_insn): New.
              (peephole2_optimize): New.
              * rtl.def (DEFINE_PEEPHOLE2): New.
              * resource.c (find_free_register): New argument last_insn.  Use it
              to find a register available through the entire span.
              * resource.h (find_free_register): Update prototype.
      
      From-SVN: r29015
      Richard Henderson committed
  4. 24 Aug, 1999 1 commit
  5. 18 Aug, 1999 1 commit
    • cse.c (cse_insn): Call never_reached_warning when a jump is changed to be unconditional. · 312f6255
      * cse.c (cse_insn): Call never_reached_warning when a jump is
      changed to be unconditional.
      * flags.h: Declare warn_notreached.
      * flow.c (delete_block): Call never_reached_warning when
      a block is deleted.
      * jump.c (delete_barrier_successors): Call never_reached_warning
      when we delete everything after a BARRIER.
      (never_reached_warning): New function.
      * rtl.h: Declare never_reached_warning.
      * toplev.c (warn_notreached): New variable.
      (lang_independent_options): Set warn_notreached
      when -Wunreachable-code.
      (compile_file): We need line numbers for -Wunreachable-code.
      
      Also modify documentation to suit.
      
      From-SVN: r28747
      Geoff Keating committed
  6. 09 Aug, 1999 1 commit
    • Include function.h in most files. · 49ad7cfa
      Include function.h in most files.  Remove most of the global variables
      duplicated in function.h.  Add accessor macros for them which access
      current_function.  Delete INLINE_HEADER rtx and related code, replace
      with code using struct function to store inlining related data.
      
      From-SVN: r28626
      Bernd Schmidt committed
  7. 18 May, 1999 1 commit
  8. 12 May, 1999 1 commit
  9. 25 Apr, 1999 1 commit
    • flags.h (inline_max_insns): Declare. · f9e814f1
              * flags.h (inline_max_insns): Declare.
              * integrate.c (inline_max_insns): New variable.
              (function_cannot_inline_p): Use it.
              * toplev.c (main): Add the flag -finline-limit-n.
              (display_help): Document -finline-limit-n.
              * invoke.texi: Document -finline-limit-n
      
      From-SVN: r26629
      Theodore Papadopoulo committed
  10. 31 Jan, 1999 1 commit
    • flags.h: Declare flag_no_ident. · be163a70
       
      1999-01-31 17:52 -0500  Zack Weinberg  <zack@midnite.ec.rhno.columbia.edu>
      	* flags.h: Declare flag_no_ident.
      	* toplev.c: Define flag_no_ident.  Process -f(no-)ident here.
      	* c-decl.c: Don't define flag_no_ident.  Don't process
                -f(no-)ident switches here.
      	* ch/decl.c: Likewise.
      	* cp/decl2.c: Likewise.
      	* c-tree.h: Don't declare flag_no_ident.
      	* ch/ch-tree.h: Likewise.
      	* cp/cp-tree.h: Likewise.
      	* config/elfos.h (ASM_FILE_END): Output final .ident directive
                only if !flag_no_ident.
      	* config/ptx4.h: Likewise.
      	* config/svr4.h: Likewise.
      	* config/alpha/elf.h: Likewise.
      	* config/arm/linux-elf.h: Likewise.
      	* config/i386/sco5.h: Likewise.
      	* config/i860/fx2800.h: Likewise.
      	* config/mips/gnu.h: Likewise.
      	* config/i386/osfrose.h: Likewise.
      	* gcc.c (C specs): Map -Qn to -fno-ident.
      	* ch/lang-specs.h: Likewise.
      	* cp/lang-specs.h: Likewise.
      	* f/lang-specs.h: Likewise.
      	* objc/lang-specs.h: Likewise.
      	* java/lang-specs.h: Likewise.
      
      From-SVN: r24943
      Zack Weinberg committed
  11. 27 Jan, 1999 1 commit
  12. 23 Nov, 1998 1 commit
    • Ulrich Drepper <drepper@cygnus.com> · 735a0e33
      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.
      
      From-SVN: r23813
      Ulrich Drepper committed
  13. 08 Oct, 1998 1 commit
  14. 06 Oct, 1998 1 commit
    • Cleanup for -fdump-unnumbered: · b707b450
      	* flags.h (flag_dump_unnumbered): Declare.
      	* toplev.c (flag_dump_unnumbered): Don't declare.
      	* print-rtl.c (flags.h): Include.
      	(print_rtl_single): Add return value.
      	* rtl.h (print_rtl_single): Update declaration.
      	* flow.c (flag_dump_unnumbered): Don't declare.
      	(print_rtl_with_bb): Use return value of print_rtl_single.
      
      From-SVN: r22865
      J"orn Rennecke committed
  15. 28 Sep, 1998 1 commit
    • flags.h: Add flag_data_sections. · 7d0756fb
              * flags.h:  Add flag_data_sections.
              * toplev.c:  Add option -fdata-sections.  Add flag_data_sections.
              (compile_file):  Error if flag_data_sections not supported.
              * varasm.c (assemble_variable):  Handle flag_data_sections.
              * config/svr4.h:  Modify prefixes for UNIQUE_SECTION_NAME.
              * config/mips/elf.h:  Likewise.
              * config/mips/elf64.h:  Likewise.
              * invoke.texi:  Describe -fdata-sections.
      
      From-SVN: r22619
      Catherine Moore committed
  16. 30 Jul, 1998 1 commit
    • Function entry/exit profiling instrumentation: · 07417085
      * expr.h (profile_function_entry_libfunc, profile_function_exit_libfunc):
      Declare new variables.
      * optabs.c: Define them here.
      (init_optabs): Initialize them.
      * tree.h (struct tree_decl): New flag no_instrument_function_entry_exit.
      (DECL_NO_INSTRUMENT_FUNCTION_ENTRY_EXIT): New accessor macro.
      * c-decl.c (duplicate_decls): Merge it.
      * c-common.c (enum attrs): New value A_NO_INSTRUMENT_FUNCTION.
      (init_attributes): Use it for "no_instrument_function".
      (decl_attributes): Handle it, for functions that have not yet been compiled.
      Set decl flag.
      * flags.h (flag_instrument_function_entry_exit): Declare new variable.
      * toplev.c (flag_instrument_function_entry_exit): Define it here.
      (f_options): New option "instrument-functions".
      * function.h (struct function): New field instrument_entry_exit.
      * function.c (current_function_instrument_entry_exit): New variable.
      (push_function_context_to, pop_function_context_from): Save and restore.
      (expand_function_start): Set current_ variable, maybe emit return label and
      entry profile call.
      (expand_function_end): Maybe emit exit profile call.
      Testsuite:
      * gcc.c-torture/special/eeprof-1.c: New test, for -finstrument-functions.
      * gcc.c-torture/special/special.exp: Run it.
      
      From-SVN: r21495
      Ken Raeburn committed
  17. 29 Jun, 1998 1 commit
  18. 25 Jun, 1998 1 commit
    • invoke.texi (-fstrict-aliasing): Document. · 41472af8
      	* invoke.texi (-fstrict-aliasing): Document.
      	* rtl.texi (MEM_ALIAS_SET): Document.
      	* flags.h (flag_strict_aliasing): Declare.
      	* toplev.c (flag_strict_aliasing): Define.
      	(f_options): Add -strict-aliasing.
      	(main): Set flag_strict_aliasing if -O2 or higher.
      	* tree.h (tree_type): Add alias_set field.
      	(TYPE_ALIAS_SET): New macro.
      	(TYPE_ALIAS_SET_KNOWN_P): Likewise.
      	(get_alias_set): Declare.
      	* tree.c (lang_get_alias_set): Define.
      	(make_node): Initialize TYPE_ALIAS_SET.
      	(get_alias_set): New function.
      	* print-tree.c (print_node): Dump the alias set for a type.
      	* c-tree.h (c_get_alias_set): Declare.
      	* c-common.c (c_get_alias_set): New function.
      	* c-decl.c (init_decl_processing): Set lang_get_alias_set.
      	* expr.c (protect_from_queue): Propogage alias sets.
      	(expand_assignment): Calculate alias set for new MEMs.
      	(expand_expr): Likewise.
      	* function.c (put_var_into_stack): Likewise.
      	(put_reg_into_stack): Likewise.
      	(gen_mem_addressof): Likewise.
      	(assign_parms): Likewise.
      	* stmt.c (expand_decl): Likewise.
      	* varasm.c (make_decl_rtl): Eliminate redundant clearing of
      	DECL_RTL.  Calculate alias set for new MEMs.
      	* rtl.def (REG): Add dummy operand.
      	(MEM): Add extra operand to store the MEM_ALIAS_SET.
      	* rtl.h (MEM_ALIAS_SET): New macro.
      	(gen_rtx_MEM): Declare.
      	* emit-rtl.c (gen_rtx_MEM): New function.
      	* gengenrtl.c (sepcial_rtx): Make MEMs special.
      	* alias.c (CHECK_ALIAS_SETS_FOR_CONSISTENCY): New macro.
      	(DIFFERENT_ALIAS_SETS_P): Likewise.
      	(canon_rtx): Propogate the alias set to the new MEM.
      	(true_dependence): Check the alias sets.
      	(anti_dependence): Likewise.
      	(output_dependence): Likewise.
      	* explow.c (stabilize): Progoate alias sets.
      	* integrate.c (copy_rtx_and_substitute): Likewise.
      	* final.c (alter_subreg): Make sure not to leave MEM_IN_STRUCT_P
      	in an unpredictable state.  Propogate alias sets.
      	* reload1.c (reload): Clear MEM_ALIAS_SET for new MEMs about which
      	we have no alias information.
      
      From-SVN: r20719
      Mark Mitchell committed
  19. 08 Jun, 1998 1 commit
    • [multiple changes] · a1622f83
      Thu Jun  8 14:16:15 EDT 1998  Andrew MacLeod  <amacleod@cygnus.com>
      	* eh-common.h: Remove NEW_EH_MODEL compile time flag, and replace with
      	flag_new_exceptions runtime flag.
      	(struct old_exception_table): New struct which represents what
      	the exception table looks like without the new model.
      	(NEW_EH_RUNTIME): New value used as a tag in the exception table to
      	flag that this is a new style table.
      	* except.h: Remove compile time flag NEW_EH_MODEL.
      	(expand_builtin_eh_stub_old): New prototype.
      	* tree.h (enum built_in_function): Add BUILT_IN_EH_STUB_OLD.
      	* expr.c (expand_builtin): New builtin func BUILT_IN_EH_STUB_OLD.
      	* c-decl.c (init_decl_processing): Add new builtin function
      	__builtin_eh_stub_old.
      	* final.c (final_scan_insn): Replace compile time flag NEW_EH_MODEL.
      	* flags.h (flag_new_exceptions): New runtime flag.
      	* toplev.c (flag_new_exceptions): Initialize default to 0,
      	-fnew-exceptions sets to 1.
      	* except.c (output_exception_table_entry): Output New style exception
      	identifier into table, and replace compile time flag NEW_EH_MODEL
      	with runtime flag flag_new_exceptions.
      	(output_exception_table): Replace compile time flag NEW_EH_MODEL.
      	(expand_builtin_eh_stub_old): Duplicates original functionality of
      	expand_builtin_eh_stub.
      	(expand_builtin_eh_stub): Replace compile time flag NEW_EH_MODEL.
      	* libgcc2.c (find_exception_handler): Remove NEW_EH_MODEL #ifdefs.
      	(old_find_exception_handler): New func, same as find_exception_handler
      	except it works on the old style exception table.
      	(__throw): Replace NEW_EH_MODEL. Detect new model based on presence
      	of identifier in the exception table, and call appropriate routines.
      1998-06-08  Andrew MacLeod  <amacleod@cygnus.com>
      	* except.c (init_exception_processing): Remove NEW_EH_MODEL compile
      	time flag.  Call __cp_eh_info instead of __cp_exception_info.
      	* exception.cc (struct cp_eh_info): Remove NEW_EH_MODEL flag.
      	(__cp_exception_info): Return offset into cp_eh_info structure to
      	match what use to be the start of this structure.
      	(__cp_eh_info): New function to return a pointer to cp_eh_info struct.
      	(__cplus_type_matcher, __cp_push_exception): Remove NEW_EH_MODEL
      	compile time flag.
      	(__uncatch_exception, __check_eh_spec, std::uncaught_exception): Call
      	__cp_eh_info instead of __cp_exception_info.
      
      From-SVN: r20336
      Andrew MacLeod committed
  20. 28 Mar, 1998 1 commit
    • basic-block.h (basic_block_computed_jump_target): Declare. · 4d1d8045
      	* basic-block.h (basic_block_computed_jump_target): Declare.
      	* flags.h: (current_function_has_computed_jump): Declare.
      	* flow.c: (basic_block_computed_jump_target): Define.
      	(flow_analysis): Allocate it. Set current_function_has_computed_jump
      	to 0.
      	(find_basic_blocks): Set current_function_has_computed_jump and
      	elements of basic_block_computed_jump_target to 1 as appropriate.
      	* function.c: (current_function_has_computed_jump): Define.
      	* global.c (global_conflicts): Don't allocate pseudos into stack regs
      	at the start of a block that is reachable by a computed jump.
      	* reg-stack.c (stack_reg_life_analysis): If must restart, do so
      	immediately.
      	(subst_stack_regs): Undo change from Sep 4 1997.
      	(uses_reg_or_mem): Now unused, deleted.
      	* stupid.c (stupid_life_analysis): Compute
      	current_function_has_computed_jump.
      	(stupid_find_reg): Don't allocate stack regs if the function has a
      	computed goto.
              * haifa-sched.c (is_cfg_nonregular): Delete code to determine if
              the current function has a computed jump.  Use the global value
              instead.
      
      Co-Authored-By: Jeffrey A Law <law@cygnus.com>
      
      From-SVN: r18860
      Bernd Schmidt committed
  21. 25 Feb, 1998 1 commit
    • flags.h (g_switch_value, [...]): Declare. · bb8ebb7f
              * flags.h (g_switch_value, g_switch_set): Declare.
              * alpha.c (override_options): Set g_switch_value=8 if not set.
              * alpha/elf.h (CC1_SPEC): New.
              (ASM_SPEC): New.
              (LINK_SPEC): Pass along the -G value we were given.
              (LOCAL_ASM_OP): Remove.
              (ASM_OUTPUT_ALIGNED_LOCAL): Output to .bss or .sbss by size.
              (MAX_OFILE_ALIGNMENT): New.
              (BSS_SECTION_ASM_OP, SBSS_SECTION_ASM_OP, SDATA_SECTION_ASM_OP): New.
              (EXTRA_SECTIONS): Add sbss and sdata.
              (SECTION_FUNCTION_TEMPLATE): New.
              (EXTRA_SECTION_FUNCTIONS): Use it.
              (CTORS_SECTION_FUNCTION, DTORS_SECTION_FUNCTION): Remove.
              (SELECT_SECTION): Use sdata when small enough.
              * alpha/linux.h (ASM_SPEC): Remove.
      
      From-SVN: r18225
      Richard Henderson committed
  22. 15 Feb, 1998 1 commit
    • toplev.c (flag_schedule_reverse_before_reload): Delete variable. · 8e7336f8
              * toplev.c (flag_schedule_reverse_before_reload): Delete variable.
              (flag_schedule_reverse_after_reload): Likewise.
              (f_options): Remove reverse scheduling support.
              * flags.h (flag_schedule_reverse_before_reload): Delete declaration.
              (flag_schedule_reverse_after_reload): Likewise.
              * haifa-sched.c (rank_for_schedule): Remove support for reverse
              scheduling.
      Trivial cleanup.
      
      From-SVN: r18020
      Jeffrey A Law committed
  23. 05 Feb, 1998 1 commit
    • regmove.c: Update. · 1230327b
      	* regmove.c: Update.
      	* flags.h (flag_regmove): Declare.
      	* rtl.h (optimize_reg_copy_1, optimize_reg_copy_2): Don't declare.
      	* local-alloc.c (optimize_reg_copy_1, optimize_reg_copy_2):
      	Moved into regmove; changed caller.
      	* toplev.c (rest_of_compilation): Call regmove_optimize also for
      	expensive_optimizations.
      
      From-SVN: r17669
      J"orn Rennecke committed
  24. 26 Jan, 1998 1 commit
    • flags.h: New flag (optimize_size). · c6aded7c
              * flags.h: New flag (optimize_size).
              * toplev.c (main): Parse -Os option and set optimize_space
              accordingly.
              * gcc.c (default_compilers), cp/lang-specs.h, f/lang-specs.h: Define
              __OPTIMIZE_SIZE__ when compiling with -Os.
              * config/dsp16xx/dsp16xx.h, config/i386/i386.h,
              config/i386/dgux.h, config/i960/i960.h, config/pdp11/pdp11.h,
              config/v850/v850.h (OPTIMIZATION_OPTIONS): New SIZE argument
              to macro.
              * config/i386/i386.c (optimization_options): Accept new SIZE argument.
      
      From-SVN: r17497
      Anthony Green committed
  25. 14 Jan, 1998 1 commit
  26. 24 Dec, 1997 1 commit
    • flags.h, [...]: Remove flag_alias_check; optimization is now always enabled. · 6e73e666
              * flags.h, toplev.c, calls.c, alias.c: Remove flag_alias_check;
              optimization is now always enabled.
              * calls.c (expand_call): Recognize C++ operator new as malloc-like
              function.
              * alias.c (memrefs_conflict_p): Eliminate tests now done by
              base_alias_check.
              (*_dependence): Call canon_rtx before base_alias_check.
              (init_alias_once): New function to precompute set of registers which
              can hold Pmode function arguments.
              * rtl.h: Declare init_alias_once.
              * toplev.c (compile_file): Call init_alias_once.
      
      From-SVN: r17226
      John Carr committed
  27. 21 Dec, 1997 1 commit
  28. 09 Nov, 1997 1 commit
  29. 28 Aug, 1997 1 commit
    • flags.h (flag_move_all_movables): Declare. · e5eb27e5
              * flags.h (flag_move_all_movables): Declare.
              (flag_reduce_all_givs): Likewise.
              * loop.c (move_movables): Handle flag_move_all_movables.
              (strength_reduce): Handle flag_reduce_all_givs.
              * toplev.c (flag_move_all_movables): Define.
              (flag_reduce_all_givs): Likewise.
              (f_options): Add -fmove-all-movables and -freduce-all-givs.
              * invoke.texi: Document new options, including alias stuff that
              wasn't included last time.
      Two of the "Tooning" options :-)
      
      From-SVN: r14987
      Jeffrey A Law committed
  30. 12 Aug, 1997 1 commit
  31. 11 Aug, 1997 1 commit
    • * Integrate alias analysis changes from jfc@mit.edu · 9ae8ffe7
              * 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
      Jeffrey A Law committed
  32. 02 Aug, 1997 1 commit
  33. 17 Jul, 1997 1 commit
  34. 01 May, 1997 1 commit
  35. 24 Apr, 1997 1 commit
  36. 23 Apr, 1997 1 commit
  37. 28 Mar, 1997 1 commit
  38. 15 Nov, 1996 1 commit
  39. 03 Jul, 1996 1 commit
  40. 17 May, 1996 1 commit