(sched_analyze_insn): Parameter loop_note type changed
to rtx, and name changed to loop_notes. Code adding it to
REG_NOTES modified to account for type change.
(sched_analyze): Variable loop_note type changed to rtx, and name
changed to loop_notes. Store LOOP_* REG_DEAD notes in it instead
of LOOP_* NOTE_LINE_NUMBER.
(schedule_block): Pass last not insn to emit_note_before call.
From-SVN: r8099
* sched.c (sched_analyze_insn): Add new parameter loop_note.
If loop_note set, then serialize on this insn.
(sched_analyze): New variable loop_note. Pass to
sched_analyze_insn. Set it if we pass a NOTE_INSN_LOOP_BEG or
NOTE_INSN_LOOP_END.
(unlink_notes): Don't save away NOTE_INSN_LOOP_BEG or
NOTE_INSN_LOOP_END notes.
(schedule_block): Generalize code that looks for magic REG_DEAD
notes and converts them to notes.
From-SVN: r7956
(attach_deaths): When adding REG_DEAD notes, check for
the case where a multiple register hard reg overlaps a register
set by the insn.
From-SVN: r7919
(actual_hazard_this_instance): Remove decl of unused variable I.
(actual_hazard): Remove two block-scope decls of unused variable BEST.
(sched_analyze_1): Remove decls of unused variables OFFSET and BIT.
(sched_analyze): Remove decl of unused variable DEST.
(sched_note_set): Remove decl of unused variable J.
(create_reg_dead_note): Remove decl of unused variable BACKLINK.
(new_sometimes_live): Remove decl of unused variable I.
(schedule_block): Remove decls of unused variables LAST_NOTE and REGNO.
(schedule_insns): Remove decls of unused variables I and INSNS.
From-SVN: r6893
(sched_analyze_1): Set reg_pending_sets instead of reg_last_sets.
(sched_analyze_2): Set reg_pending_sets or reg_pending_sets_all
instead of reg_last_sets.
(sched_analyze_insn): Use reg_pending_sets and
reg_pending_sets_all to set reg_last_sets. Set
reg_pending_sets_all instead of reg_last_sets.
(schedule_block): Allocate and clear reg_pending_sets.
From-SVN: r6492
(sched_analyze): For CALL_INSN followed by
NOTE_INSN_SETJMP note, make it depend on all registers not just
hard registers, and add a REG_DEAD -1 note.
(unlink_notes): Don't save away NOTE_INSN_SETJMP notes.
(schedule_block): After scheduling CALL_INSN, check for REG_DEAD
-1 note. If find it, delete it, and output a NOTE_INSN_SETJMP note.
From-SVN: r6254
* sched.c: (memrefs_conflict_p): We can work out whether references
via hard_frame_pointer_rtx are likely to conflict.
(attach_deaths, case REG): Don't add death notes for
HARD_FRAME_POINTER_REGNUM.
From-SVN: r5466
(split_hard_reg_notes): Handle 0th sub register, and
multiple register kills.
(update_flow_info): For multi-word hard regs, use
split_hard_reg_notes to add all REG_DEAD notes, instead of just
the additional ones due to splitting.
From-SVN: r4460
(create_reg_dead_note): Rewrite so as to conserve
registers killed not number of REG_DEAD notes.
(schedule_block): Change comments about dead_notes variable.
From-SVN: r4222
(init_alias_analysis): Allocate and compute reg_known_equiv_p.
(sched_analyze_1): Reenable code for REG_EQUIV notes, using
reg_known_equiv_p so that it is only used on REG_EQUIV notes.
(sched_analyze_2): Likewise. Only pass memory addresses to the
sched_analyze_2 call.
From-SVN: r3746
(sched_analyze_2): Remove an explicit dependence between an insn
that uses CC0 and the immediately previous insn.
(SCHED_GROUP_P represents the dependence.)
(schedule_block): Only check sets_cc0_p on an insn.
From-SVN: r2010
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