summaryrefslogtreecommitdiff
path: root/gcc/ChangeLog
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/ChangeLog')
-rw-r--r--gcc/ChangeLog68
1 files changed, 67 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index b23e8050002..cdf71eb59d8 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,6 +1,72 @@
Mon Aug 11 10:04:49 1997 Jeffrey A Law (law@cygnus.com)
- * Integrate reload bugfix from Wilson which enables the PA port
+ * 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.
+
+
+ * Integrate reload bugfix from Wilon 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.