aboutsummaryrefslogtreecommitdiff
path: root/gcc/reload1.c
AgeCommit message (Collapse)AuthorFilesLines
1994-03-04(emit_reload_insns): Don't call gen_input_reload if src and dest areRichard Kenner1-1/+1
identical. From-SVN: r6692
1994-02-28(eliminate_regs, case MULT): New case, to apply distributive law, whenRichard Kenner1-21/+46
needed. From-SVN: r6676
1994-02-23(choose_reload_regs): If EQUIV is a SUBREG, make a new REG.Richard Kenner1-3/+6
From-SVN: r6612
1994-02-11(gen_input_reload): If reg-reg add is not valid, try copying reg-regRichard Kenner1-1/+21
and adding reg-int. From-SVN: r6530
1994-02-10(emit_reload_insns): Use new vars for secondary reloads and icodes.Richard Kenner1-17/+17
From-SVN: r6523
1994-02-03(eliminate_regs, case INSN_LIST): Properly remake list when we changeRichard Kenner1-2/+2
something further on. From-SVN: r6475
1993-11-10(reload) [SMALL_REGISTER_CLASSES]: Try, at least,Richard Stallman1-0/+28
to avoid 2-groups whose second register is explicitly used. From-SVN: r6047
1993-10-20(reload): Cope when inherited register is larger than one word.Richard Stallman1-3/+8
(choose_reload_regs): Ditto. From-SVN: r5820
1993-10-17reload1.c (eliminate_regs_in_insn): Rerecognize some loads and stores.Jeff Law1-0/+8
* reload1.c (eliminate_regs_in_insn): Rerecognize some loads and stores. From-SVN: r5792
1993-10-12(reload): Fix typo in RELOAD_FOR_INSN case when accounting forRichard Kenner1-1/+1
reloads. From-SVN: r5754
1993-10-01(gen_input_reload): Handle PLUS with MEM operandJim Wilson1-14/+12
exactly the same as a PLUS with a REG operand. From-SVN: r5549
1993-09-28(eliminate_regs): All recursive calls now pass INSN instead of NULL_RTX.Jim Wilson1-17/+20
(eliminate_regs): All recursive calls now pass INSN instead of NULL_RTX. Second assignment to ref_outside_mem changed to be same as first assignment. From-SVN: r5517
1993-09-27(eliminate_regs, SET case): Check for INSN_LIST along with EXPR_LIST.Richard Stallman1-1/+2
From-SVN: r5489
1993-09-25(eliminate_regs): Use new macros LOAD_EXTEND_OP and WORD_REGISTER_OPERATION...Richard Kenner1-1/+1
(eliminate_regs): Use new macros LOAD_EXTEND_OP and WORD_REGISTER_OPERATION instead of BYTE_LOADS_*_EXTEND and LOAD_EXTEND. From-SVN: r5476
1993-09-24reload1.c: (init_reload): use HARD_FRAME_POINTER_REGNUM instead of ↵Doug Evans1-21/+25
FRAME_POINTER_REGNUM. * reload1.c: (init_reload): use HARD_FRAME_POINTER_REGNUM instead of FRAME_POINTER_REGNUM. (reload): Only prohibit elimination of HARD_FRAME_POINTER_REGNUM, not FRAME_POINTER_REGNUM if frame_pointer_needed. Never prohibit elimination of FRAME_POINTER_REGNUM into HARD_FRAME_POINTER_REGNUM. Mark HARD_FRAME_POINTER_REGNUM as live at the start of a block if it is still needed after elimination. (eliminate_regs): For non-local goto's, don't delete stores into the hard frame pointer. (eliminate_regs_in_insn): adjust comment. (mark_not_eliminable): if frame_pointer_rtx and hard_frame_pointer_rtx are not the same, then frame_pointer_rtx is eliminable; hard_frame_pointer_rtx never is if it is set.. (order_regs_for_reload): HARD_FRAME_POINTER_REGNUM is a bad spill reg. (choose_reload_regs): HARD_FRAME_POINTER_REGNUM is a bad choice. From-SVN: r5463
1993-09-24Fix typo in previous change.Richard Stallman1-1/+1
From-SVN: r5448
1993-09-24(eliminate_regs): Specially handle the case where INSN is a note (an ↵Richard Stallman1-5/+13
EXPR_LIST or INSN_LIST). (eliminate_regs): Specially handle the case where INSN is a note (an EXPR_LIST or INSN_LIST). (eliminate_regs_in_insn): Pass the notes as INSN, when calling eliminate_insn to process the notes. From-SVN: r5445
1993-08-04(eliminate_regs_in_insn): Fix typo in last change.Richard Kenner1-1/+1
From-SVN: r5071
1993-08-04(eliminate_regs_in_insn): Always do elimination in REG_NOTES if weRichard Kenner1-4/+9
changed anything in the insn. From-SVN: r5069
1993-07-15(reload): Don't free scratch_list or scratch_block if 0.Richard Stallman1-2/+4
From-SVN: r4925
1993-07-05(emit_reload_insns): Don't use gen_lowpart_common to get reloadRichard Kenner1-3/+6
register into proper mode. From-SVN: r4855
1993-07-02(eliminate_regs): Fix typo in BYTE_LOADS_ZERO_EXTEND.Richard Stallman1-1/+1
From-SVN: r4823
1993-06-26(reload): Use reg_equiv_address for invalid addressesRichard Kenner1-1/+4
of the form (mem (reg)). From-SVN: r4761
1993-06-23(mark_scratch_live): New function.Richard Kenner1-2/+48
(reload): Call it on each SCRATCH. Free scratch list and block. (spill_hard_reg): Reallocate any SCRATCH whose register we want to spill. From-SVN: r4712
1993-06-11(eliminate_regs_in_insn): Don't use a later elimination thanRichard Kenner1-7/+15
eliminate_regs would use. From-SVN: r4663
1993-05-30(reload): If only non-group need is unfilled, see ifRichard Stallman1-0/+29
regs spilled for earlier classes can satisfy it. From-SVN: r4597
1993-05-26(delete_output_reload): Don't delete output reload if cannot_omit_stores is ↵Richard Stallman1-1/+15
set for that pseudo. (delete_output_reload): Don't delete output reload if cannot_omit_stores is set for that pseudo. (reload): Init and clear cannot_omit_stores. (eliminate_regs): Set cannot_omit_stores. From-SVN: r4574
1993-05-24(choose_reload_regs): If inheriting a spill reg,Richard Stallman1-1/+5
and reload_out has a wider mode, just copy from that spill reg, don't use it for the reload. From-SVN: r4555
1993-05-21(choose_reload_regs): Handle earlyclobbersRichard Stallman1-12/+34
when inheriting from reg_last_reload_reg. From-SVN: r4524
1993-05-18(reload): Don't start 2-group unless it could be finished.Richard Stallman1-1/+2
From-SVN: r4492
1993-05-15(reload): Don't start 2-group unless it could be finished.Richard Stallman1-0/+6
From-SVN: r4464
1993-05-06(eliminate_regs, case {PRE,POST}_{INC,DEC}): Account for PUSH_ROUNDING.Richard Kenner1-3/+10
From-SVN: r4375
1993-05-06(forget_old_reloads_1): Accept and ignore 2nd arg.Richard Stallman1-3/+4
(reload_as_needed): Pass that second arg. From-SVN: r4370
1993-05-02(eliminate_regs...Richard Stallman1-1/+11
(eliminate_regs, case SUBREG): Leave the SUBREG when the inner object is a pseudo on machines that extend byte loads (to be consistent with reload.c). From-SVN: r4304
1993-04-23(emit_reload_insns): Advance following_insn if it is a clobber,Doug Evans1-5/+5
not if the next insn is a clobber. From-SVN: r4198
1993-04-16(last_spill_reg): Add missing "int".Richard Kenner1-1/+1
From-SVN: r4166
1993-04-06(emit_reload_insns): Cast enum array index to int.Richard Stallman1-1/+1
From-SVN: r4026
1993-04-03(emit_reload_insns): Don't update the status of a register from anRichard Kenner1-3/+7
input reload if it also has an output reload. From-SVN: r3994
1993-04-02(reload_reg_used_for_inherit): New variable.Richard Kenner1-21/+105
(clear_reload_reg_in_use): New function. (allocate_reload_reg): Don't consider an inherited register as one that we should share in the first pass. Don't mark a register in use until we are sure it will fit. (choose_reload_regs): Mark spill regs used for inheriting. When we decide we can no longer use a register, show it isn't being used. From-SVN: r3991
1993-03-30(init_reload): Don't initialize optabs here.Richard Kenner1-100/+0
From-SVN: r3926
1993-03-30(emit_reload_insns): Properly track what was reloaded into what register when...Richard Kenner1-4/+36
(emit_reload_insns): Properly track what was reloaded into what register when what we reloaded was a hard register group. From-SVN: r3921
1993-03-29Add prototypes for static functions.Richard Kenner1-515/+987
(REGISTER_MOVE_COST, MEMORY_MOVE_COST): Include default definitions. (reload): Count number of registers needed for insn using new reload type information. If mode of insn is DImode, don't change it. Refine the way we handle conflict with the return value register. Don't try to account for needs already covered by previously spilled registers; instead, put them back in the front of potential_reload_regs and let them be allocated again. (order_regs_for_reload): Don't restrict regs explicitly used if we have SMALL_REGISTER_CLASSES defined. (reload_as_needed): Don't need to deactivate optional reloads ever; if they inherit, it must have been safe. Call merge_assigned_reloads if SMALL_REGISTER_CLASSES. (reload_reg_used_*): Refine our tracking of reload reg usage by defining more of these HARD_REG_SETs. (mark_reload_reg_in_use, reload_reg_free_p): Rework to use new method of describing where a reload register is used. (reload_reg_free_before_p, reload_reg_reaches_end_p): Likewise. (allocate_reload_reg): Pass new reload descriptions. (choose_reload_regs): Likewise. Save and restore the new HARD_REG_SETs. Remove now-redundant code to prevent conflicts. (merge_assigned_reloads): New function. (emit_reload_insns): Output each reload type into its own sequence, then output the sequences in the proper order. Put our output reloads after a CLOBBER made by find_reloads. Pass ALL_REGS to find_equiv_regs; nothing special about GENERAL_REGS. Don't use an old equivalence if doing so would be more expensive. Clean up tracking of values still in reload regs using reload description info to see if the reload reaches the end of the insn. (gen_input_reload): Pass reload description and emit insns to end of current sequence. (inc_for_reload): Return void; no longer need INSN as operand. Emit insns to end of current sequence. From-SVN: r3910
1993-03-22(eliminate_regs): Eliminate regs within a CLOBBER.James Van Artsdalen1-0/+3
From-SVN: r3826
1993-03-14(choose_reload_regs): Verify reload_out[j != 0Richard Stallman1-1/+1
before comparing with relaod_earlyclobber elements. From-SVN: r3731
1993-03-06(choose_reload_regs): Handle SUBREG in reload_earlyclobberRichard Stallman1-2/+8
when matching output reloads for setting reload_when_needed. From-SVN: r3670
1993-01-23(reload): After calling count_possible_groups, see if we have to proceed ↵Richard Kenner1-5/+11
with allocating a group. (reload): After calling count_possible_groups, see if we have to proceed with allocating a group. (count_possible_groups): Use HARD_REG_SET, not a char array, for consistency. From-SVN: r3309
1993-01-13(reload): Clear reload_in_progress even if reloading fails.Richard Stallman1-2/+2
From-SVN: r3215
1993-01-11(reload): Delete unused variable inc_groups.Jim Wilson1-1/+0
From-SVN: r3197
1993-01-10(reload_as_needed): Test for whether to callRichard Stallman1-1/+1
forget_old_reloads_1 for a REG_INC note was backwards. From-SVN: r3177
1993-01-07(reload) [SMALL_REGISTER_CLASSES]: When adding an extra need if the insn ↵Richard Stallman1-6/+4
uses the function value return register... (reload) [SMALL_REGISTER_CLASSES]: When adding an extra need if the insn uses the function value return register, likewise add an extra single-reg need for each class in which the insn needs a group. From-SVN: r3141