(schedule_block): Before scheduling, add code to make all
call used regs that are not fixed or global live when we see a
CALL_INSN. During scheduling, change existing code to use same test.
From-SVN: r12913
(sched_analyze_{1,2,insn}): Add new arg to flush_pending_lists.
(sched_analyze): Always flush pending write list for call, even const.
From-SVN: r11200
* sched.c (adjust_priority): Use ADJUST_PRIORITY if its defined.
* pa.h (ADJUST_PRIORITY): Define to keep lifetimes of registers
that will be allocated to %r1 shorter.
From-SVN: r10918
* sched.c (canon_rtx): Recursively look for equivalences;
look for expressions equivalent to MEMs.
(true_dependence): Canonicalize inputs before operating
on their values.
(anti_dependence, output_dependence): Likewise.
* jump.c (follow_jumps): Don't follow an unconditional jump
that is not a simple_jump.
From-SVN: r10793
(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