- 26 Aug, 1992 13 commits
-
-
From-SVN: r1967
Richard Stallman committed -
specification. From-SVN: r1966
Tom Wood committed -
From-SVN: r1965
Richard Stallman committed -
Major rework to have caller-saves emit load/store double insns when possible and to avoid useless resaving of registers restored for source accesses only. * caller-save.c (toplevel): All arrays are multi-dimensional to hold information for multiple save/restore insns. New variable hard_regs_need_restore. (choose_hard_reg_mode): New argument `nregs' indicating how many hard registers are desired. All callers changed. (init_caller_save): Change initialization to handle multiple register saves. A call-used register can not be live across if we can not find a single register mode to save it in. (multiple register saves are optional) (init_save_areas): Change initialization of regno_save_mem to handle multiple register saves. (setup_save_areas): Allocate space for consecutive hard registers in aligned consecutive memory locations. When allocating space for consecutive hard registers, also initialize regno_save_mem for each hard register stored as a single word. (save_call_clobbered_regs): Initialize hard_regs_need_restore. Set hard_regs_need_restore to hard_regs_saved after crossing a call. Also recompute n_regs_saved. At the end of a basic block we need only restore registers in hard_regs_need_restore. (set_reg_live, clear_reg_live): Do the right thing for hard_regs_need_restore and hard_regs_saved. (restore_referenced_regs): Just return if X is a clobber. Test hard_regs_need_restore to determine when to restore a hard register from the save area. (insert_save_restore): Now returns the number of extra registers saved/restored. New argument `maxrestore' which constrains how many hard registers should be restored. All callers changed. Do stores of consecutive registers with double store insns if possible. Else do them with single word insns. Likewise for loads, except constrained by maxrestore. Set hard_regs_saved and hard_regs_need_restore appropriately to minimize useless saves into the save area. Test against hard_regs_need_restore when trying to restore multiple regs and similarly test against hard_regs_saved when storing multiple regs. From-SVN: r1964
Jeff Law committed -
From-SVN: r1963
Richard Stallman committed -
Add #ifdef INSN_SCHEDULING around variables only used by schedule_insns. (INSN_QUEUE_SIZE): Delete default definition. From-SVN: r1962
Jim Wilson committed -
Partially undo Mar 7 change. Only call emit_library_call with no_queue == 1 for const functions. From-SVN: r1961
Jim Wilson committed -
From-SVN: r1960
Richard Stallman committed -
From-SVN: r1959
Richard Stallman committed -
(current_block): New function. (struct binding_level): New field this_block. (poplevel): Use this_block if nonzero, rather than making new BLOCK. (insert_block, delete_block): New functions. From-SVN: r1958
Richard Stallman committed -
(float*, fix*): Rewrite to match hardware; take/put integer input/output from/to fp register instead of memory or general register. Delete 6 now obsolete combiner patterns. From-SVN: r1957
Jim Wilson committed -
From-SVN: r1956
Jim Wilson committed -
(output_floatsisf2, output_floatsidf2, output_floatsitf2): Delete. From-SVN: r1955
Jim Wilson committed
-
- 25 Aug, 1992 15 commits
-
-
From-SVN: r1954
Richard Stallman committed -
invoked after "foo.h" has been included. From-SVN: r1953
Richard Stallman committed -
(struct function_unit_op): Add issue_delay, conflict_exp, and issue_exp fields. Drop busyexp field. (struct function_unit): Add needs_blockage_function, needs_range_function, issue_delay, and max_blockage fields. Drop costexp, and busy delay fields. (enum operator): Add POS_MINUS_OP, EQ_OP, MIN_OP, RANGE_OP. (operate_exp): Implement new ops. (make_internal_attr): Set unsigned_p based on the value of SPECIAL. (write_attr_get): Function is unsigned when unsigned_p is true. (write_attr_valueq): Write hex value of large constants in a comment. (simplify_by_exploding): Check for EXP having no EQ_ATTR expressions and for all values as the default. (find_and_mark_used_attributes): Add TERMS and NTERMS parameters. (max_attr_value): Allow IF_THEN_ELSE. (simplify_knowing, write_complex_function, extend_range): New functions. (gen_unit): Use local variables to name the fields. Change the meaning of busy-delay to issue-delay. (expand_units): Compute issue_exp. Write attributes for computing `<name>_unit_blockage' and `<name>_unit_blockage_range' functions. Compute max_blockage, and the needs_*_function values. (write_function_unit_info): Write blockage function and conflict cost functions using write_complex_function. Write new function_unit_desc fields. (expand_units): Use the normalized values of the unit's CONDEXP and BUSYEXP. From-SVN: r1952
Tom Wood committed -
Pass CLOCK to schedule_insn. Compute the tail in the scheduling loop, not before it. Enable the stall code that advances the insn queue. Select the insn to schedule and block others with schedule_select. (adjust_priority): Renamed from launch_link. (schedule_insn): Renamed from launch_links. (insn_queue): Use INSN_QUEUE_SIZE. (insn_units, insn_blockage, insn_tick, unit_last_insn, unit_tick, unit_n_insns): New variables. (schedule_insns): Allocate and initialize insn_tick, insn_units, and insn_blockage. (insn_unit, blockage_range, clear_units, prepare_unit, schedule_unit, actual_hazard_this_instance, actual_hazard, potential_hazard, schedule_select): New functions. (schedule_block): Add dependencies to force insns to remain in order at the end of a block rather than relying on having the scheduler issue them in priority order. (insn_cost): Add LINK and USED parameters. All callers changed. Supply an ADJUST_COST interface. (insn_cost): Make a dependence from a USE insn free. (priority): Clear the link cost adjustment bits. From-SVN: r1951
Tom Wood committed -
(write_units): Add blockage_function, blockage_range_function, max_blockage and max_issue_delay fields to struct function_unit_desc. Drop max_busy_cost field. Write #defines for min/max blockage, issue delay, multiplicity, and simultaneity and for BLOCKAGE_BITS and INSN_QUEUE_SIZE. (main): Compute the new values. From-SVN: r1950
Tom Wood committed -
From-SVN: r1949
Tom Wood committed -
(unit attribute): Delete. (function units): Correct simultaneity values. Break out independent units. Add conflict matrix for the 88100 load double. From-SVN: r1948
Tom Wood committed -
Merge FP_MUL, FP_DIV, and FP_SQRT into one function unit. From-SVN: r1947
Tom Wood committed -
From-SVN: r1946
Tom Wood committed -
From-SVN: r1945
Tom Wood committed -
(delete_jump): Use delete_computation. From-SVN: r1944
Tom Wood committed -
From-SVN: r1943
Richard Stallman committed -
From-SVN: r1942
Michael Meissner committed -
From-SVN: r1941
Michael Meissner committed -
typo (e.g., `-v-E'); only when it's exactly "-v". From-SVN: r1940
Richard Stallman committed
-
- 24 Aug, 1992 3 commits
-
-
if staticp, but don't clear TREE_CONSTANT. From-SVN: r1939
Richard Stallman committed -
instead of using SUBST due to sharing. (simplify_comparison): Correct test for sign extension when trying to widen comparison. From-SVN: r1938
Richard Kenner committed -
moved down so that it occurs after call to `expand_cleanups'. From-SVN: r1937
Richard Stallman committed
-
- 23 Aug, 1992 3 commits
-
-
From-SVN: r1936
Michael Meissner committed -
From-SVN: r1935
Richard Stallman committed -
From-SVN: r1934
Richard Stallman committed
-
- 22 Aug, 1992 1 commit
-
-
From-SVN: r1933
Tom Wood committed
-
- 21 Aug, 1992 5 commits
-
-
From-SVN: r1932
Richard Kenner committed -
reorg.c (fill_simple_delay_slots): Always try to fill empty delay slots with insns from beyond the delay insn... * reorg.c (fill_simple_delay_slots): Always try to fill empty delay slots with insns from beyond the delay insn, even if optimize_skip was attempted. (fill_simple_delay_slots): When filling with insns from after the delay insn, make sure to always account for sets and references in the delay insn. From-SVN: r1931
Jeff Law committed -
From-SVN: r1930
Richard Stallman committed -
Use TREE_READONLY and TREE_THIS_VOLATILE, not TYPE_... From-SVN: r1929
Richard Stallman committed -
From-SVN: r1928
Richard Stallman committed
-