Commit Graph

13936 Commits

Author SHA1 Message Date
Jeffrey A Law 9ae8ffe751 * Integrate alias analysis changes from jfc@mit.edu
* 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-08-11 14:07:24 -06:00
Jeff Law 5fa39bfeb7 * Integrate reload bugfix from Wilson which enables the PA port
to bootstrap again.
        * reload1.c (reload): Sum needs for both OPADDR_ADDR and and
        OPERAND_ADDRESS when computing how many registers an insn needs.
        (reload_reg_free_p): OPADDR_ADDR and OPERAND_ADDRESS reloads do
        conflict.
        (reload_reg_free_before_p): Treat OPERAND_ADDRESS reloads just like
        OPADDR_ADDR reload.
        (reload_reg_reaches_end_p): For RELOAD_FOR_OPADDR_ADDR insns, registers
        in reload_reg_use_in_op_addr do not reach the end.
        do not reach the end.
        (reloads_conflict): RELOAD_FOR_OPADDR_ADDR conflicts with
        RELOAD_FOR_OPERAND_ADDRESS.



Start a new ChangeLog for gcc3.

From-SVN: r14767
1997-08-11 13:31:10 -06:00
Jeff Law 861bb6c1b0 Initial revision
From-SVN: r14764
1997-08-11 09:56:58 -06:00
Jeff Law 737cee66f2 Initial revision
From-SVN: r14727
1997-08-07 10:29:49 -06:00
Jeff Law 89045fd128 Initial revision
From-SVN: r14676
1997-08-06 13:57:47 -06:00
Jeff Law d7194dd690 Initial revision
From-SVN: r14671
1997-08-05 10:26:36 -06:00
Richard Kenner 50eb43cabc (store_one_arg): Allow stack_slot to be SP in ARGS_GROW_DOWNWARD case.
From-SVN: r14639
1997-08-02 19:22:18 -04:00
Richard Kenner 293facbcd4 parmlist_tags_warning): Only suppress warning on union if anonymous.
From-SVN: r14638
1997-08-02 19:06:27 -04:00
Richard Kenner ae0a3dfbf4 (int_fits_type_p): Negative ints never fit unsigned types, and
unsigned ints with top-bit-set never fit signed types.

From-SVN: r14637
1997-08-02 18:50:39 -04:00
Richard Kenner 272e2587a2 (_trampoline): Rework last change; both getpagesize and mprotect are
in cygwin32.

From-SVN: r14636
1997-08-02 18:27:33 -04:00
Richard Kenner b080c137d7 (reload): Add IN_ADDR to IN_ADDR_ADDR when computing needs since they conflict.
From-SVN: r14635
1997-08-02 17:46:08 -04:00
Richard Kenner 505923a0ad (debug_reload): Rework to make output more compact.
From-SVN: r14634
1997-08-02 17:29:22 -04:00
Richard Kenner 1d79197a77 (indent): Move to file level; was static in print_rtx.
(print_inline_rtx): New function.

From-SVN: r14633
1997-08-02 17:29:08 -04:00
Per Bothner a0c94d6d68 * objc/Make-lang.in (OBJC_CCOMMON): Removed.
From-SVN: r14632
1997-08-02 14:06:25 -07:00
Per Bothner 3cb8856545 Makefile.in (EXTRA_C_OBJS): Removed.
* Makefile.in (EXTRA_C_OBJS): Removed.
(C_AND_OBJC_OBJS):  New.  Subsumes EXTRA_C_OBJS and OBJC_CCOMMON.

From-SVN: r14631
1997-08-02 13:59:17 -07:00
Doug Evans 296e46bd9b configure.in: Build .gdbinit for top level build dir here.
* configure.in: Build .gdbinit for top level build dir here.
	(AC_OUTPUT): Pass oldstyle_subdirs to configure.lang.

From-SVN: r14630
1997-08-02 20:10:47 +00:00
Doug Evans 4caa6262f7 * configure.lang: Fix building of .gdbinit for oldstyle lang subdirs.
From-SVN: r14629
1997-08-02 20:10:15 +00:00
Richard Kenner bc28c45bb5 (gen_compile_unit_die): Add support for Pascal.
From-SVN: r14628
1997-08-02 14:34:12 -04:00
Richard Kenner 7532a0fbfa (output_compile_unit_die): Add support for Pascal.
From-SVN: r14627
1997-08-02 14:33:42 -04:00
Richard Kenner cff9c40790 (lvalue_p, case BIND_EXPR, RTL_EXPR): Return 1 if array.
From-SVN: r14626
1997-08-02 14:15:29 -04:00
Richard Kenner 5a03c8c401 (cse_insn): Ignore paradoxical SUBREGs unless we are looking for such.
From-SVN: r14625
1997-08-02 13:48:13 -04:00
Richard Kenner eadceb598a (sparc_builtin_saveregs): If -fcheck-memory-usage, set rights of saved
registers.

From-SVN: r14624
1997-08-02 13:25:31 -04:00
Richard Kenner 5e32727ccc (hppa_builtin_saveregs): f -fcheck-memory-usage, set rights of saved
registers.

From-SVN: r14623
1997-08-02 13:24:48 -04:00
Richard Kenner 4e264c3fbf (m88k_builtin_saveregs): If -fcheck-memory-usage, set rights of saved
registers.

From-SVN: r14622
1997-08-02 13:23:45 -04:00
Richard Kenner e72f998d69 (clipper_builtin_saveregs): If -fcheck-memory-usage, set rights of
saved registers.

From-SVN: r14621
1997-08-02 13:22:50 -04:00
Richard Kenner 5b838011fe (alpha_builtin_saveregs): If -fcheck-memory-usage, set rights of saved
registers.

From-SVN: r14620
1997-08-02 13:22:01 -04:00
Richard Kenner 7c6d412013 (make_function_rtl, make_decl_rtl): Add a prefix when flag_prefix_function_name_usage is set.
(make_function_rtl, make_decl_rtl): Add a prefix when
flag_prefix_function_name_usage is set.
(assemble_name): Strip the CHKR_PREFIX.

From-SVN: r14619
1997-08-02 13:21:32 -04:00
Richard Kenner 0844ee7f63 (built_in_function): Add BUILT_IN_AGGREGATE_INCOMING_ADDRESS.
From-SVN: r14618
1997-08-02 13:20:58 -04:00
Richard Kenner f602c208ab (flag_check_memory_usage, flag_prefix_function_name): New variable.
(f_options): Add `check-memory-usage' and `prefix_function_name'.
(main): Disable `-fomit-frame-pointer' if `-fcheck-memory-usage' is set
and the machine can't debug without the frame pointer.

From-SVN: r14617
1997-08-02 13:20:21 -04:00
Richard Kenner 17f5f329ca (expand_computed_goto): If -fcheck-memory-usage, check that computed address of a goto is executable.
(expand_computed_goto): If -fcheck-memory-usage, check that computed address
of a goto is executable.
(expand_asm, expand_asm_operands): If -fcheck-memory-usage, disallow
asm statments.

From-SVN: r14616
1997-08-02 13:19:38 -04:00
Richard Kenner 8960ab1a98 (chkr_{check_addr,set_right}_libfunc): New definitions.
(chkr_{copy_bitmap,check_exec}_libfunc): Likewise.
(init_optabs): Initialize these chkr_*_libfunc.

From-SVN: r14615
1997-08-02 13:18:49 -04:00
Richard Kenner 86fa911a16 (put_var_into_stack, assign_parms): If -fcheck-memory-usage, set the
rights of pushed variable.

From-SVN: r14614
1997-08-02 13:18:18 -04:00
Richard Kenner 151b783bca (flag_check_memory_usage, flag_prefix_function_name): New declaration.
From-SVN: r14613
1997-08-02 13:17:58 -04:00
Richard Kenner 99b5da0823 Add expand_modifier flags.
(chkr_*_libfunc): New decls.
(memory_use_mode): New declaration.

From-SVN: r14612
1997-08-02 13:17:40 -04:00
Richard Kenner 921b3427bc (expand_builtin, case BUILT_IN_AGGREGATE_INCOMING_ADDRESS): New case.
(expand_assignment, expand_expr, emit_push_insn, store_expr):
Insert calls to chkr_check_addr, chkr_set_right, and chkr_copy_bitmap
when -fcheck-memory-usage.
(get_push_address, get_memory_usage_from_modifier): New functions.

From-SVN: r14611
1997-08-02 13:17:17 -04:00
Richard Kenner 8fbea4dc1a (expr_size): Call expand_expr with appropriate flag.
From-SVN: r14610
1997-08-02 13:16:45 -04:00
Richard Kenner 18989c57d3 (init_decl_processing): Add __builtin_aggregate_incoming_address.
From-SVN: r14609
1997-08-02 13:15:09 -04:00
Richard Kenner 7815214ef7 (expand_call): If -fcheck-memory-usage...
(expand_call): If -fcheck-memory-usage, use pseudo-register, check
indirectly called function is executable, and set rights of memory for
aggregate as write only.
(store_one_arg): If -fcheck-memory-usage, set rights for pushed stack
argument.

From-SVN: r14608
1997-08-02 13:14:33 -04:00
Richard Kenner ca20456a33 (OBJC_OBJC): Delete from here.
From-SVN: r14607
1997-08-02 09:09:23 -04:00
Richard Kenner f163668c0d (compare_constant_1, case STRING_CST): Compare TYPE_MODE.
(record_constant_1, case STRING_CST): Record TYPE_MODE.

From-SVN: r14606
1997-08-02 08:11:40 -04:00
Richard Kenner 2cde2255e0 (expand_expr, case PLACEHOLDER_EXPR): Find innermost matching and
don't check contains_placeholder_p.

From-SVN: r14605
1997-08-02 08:01:10 -04:00
Richard Kenner cc3c7c1329 (contains_this_placeholder_p): Delete.
(contains_placeholder_p): Now contains code from above function.
(contains_placeholder_p, case 'r'): Don't look at offset info.

From-SVN: r14604
1997-08-02 08:00:52 -04:00
Per Bothner 40365c9252 * c-lang.c (lang_init): Restore, but add #if !USE_CPPLIB.
From-SVN: r14603
1997-08-01 14:18:54 -07:00
Per Bothner 736c628948 * c-lex.c (lang_init): Remove (recently moved here).
From-SVN: r14602
1997-08-01 14:18:54 -07:00
Per Bothner dbbade7444 * objc/objc-act.c (lang_init): Don't check_newline #if USE_CPPLIB.
From-SVN: r14601
1997-08-01 14:17:44 -07:00
Jason Merrill ec045ab46e x
From-SVN: r14600
1997-08-01 18:48:18 +00:00
Richard Stallman 58a1b05a2f Translate -svr4 to -sysv4 and -unixware to -sysv4.2uw.
From-SVN: r14578
1997-08-01 18:09:30 +00:00
Jeff Law 29763968ff * pa.c (pa_reorg): Explode ADDR_DIFF_VEC insns too.
From-SVN: r14577
1997-08-01 11:23:22 -06:00
Mike Stump 8dff10278c 92th Cygnus<->FSF quick merge
From-SVN: r14576
1997-08-01 17:21:46 +00:00
Paul Eggert 5e5b9f6950 Initial revision
From-SVN: r14572
1997-08-01 13:06:04 +00:00