Commit Graph

32657 Commits

Author SHA1 Message Date
Jeffrey A Law 7bb6fbd1c6 version.c: Bump version to "gcc-3.0.0 970802 experimental".
* version.c: Bump version to "gcc-3.0.0 970802 experimental".

        * gcc.info*: Rebuilt.

        * COPYING.g77, README.g77: New files.
        * real.c (ereal_unto_float, ereal_unto_double): New functions.
        * real.h (ereal_unto_float, ereal_unto_double): Declare them.
        (REAL_VALUE_UNTO_TARGET_DOUBLE, REAL_VALUE_UNTO_TARGET_SINGLE): Define.
Get g77 to work with gcc3.

From-SVN: r14776
1997-08-12 11:13:25 -06:00
Jeff Law 9f31cf0d42 Remove gratuitous changes from the alias analysis patches.
From-SVN: r14771
1997-08-11 22:12:04 -06:00
Jeffrey A Law 8c660648ca * Integrate Haifa instruction scheduler.
* Integrate regmove pass.
See ChangeLog for deatils.

From-SVN: r14770
1997-08-11 22:07:19 -06:00
Jeffrey A Law aa32d84158 * Integrate tlink patch from jason@cygnus.com
* gcc.c (SWITCH_TAKES_ARG): Add 'V', 'B' and 'b'.
        (process_command): Increment n_switches for them.  Don't discard
        their args.  Validate them.
        (main): Escape " marks when creating COLLECT_GCC_OPTIONS.
        From Rohan Lenard.
        (process_command): Set include_prefixes from COMPILER_PATH.
        (main): Set COLLECT_GCC_OPTIONS sooner.
        * confiugre.in: Link ../ld/ld.new to collect-ld rather than real-ld.
        * tlink.c, hash.c, hash.h: New files.
        * Makefile.in (USE_COLLECT2): Always use collect2.
        (collect2): Depend on and link in hash.o and tlink.o.
        (tlink.o, hash.o): Add dependencies.

tlink patches from Jason.

From-SVN: r14769
1997-08-11 14:23:53 -06:00
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