Commit Graph

83 Commits

Author SHA1 Message Date
Doug Evans
740a5d9232 sched.c (update_flow_info): Handle REG_EXEC_COUNT and REG_BR_PROB notes.
* sched.c (update_flow_info): Handle REG_EXEC_COUNT and REG_BR_PROB
	notes.

From-SVN: r13822
1997-03-28 22:39:39 +00:00
Jim Wilson
e02fbefc82 (schedule_insns): If there was no first scheduling pass,
split instructions after reload.
(update_flow_info): Tolerate some idiosyncrasies after reload.

From-SVN: r13666
1997-02-19 13:42:25 -08:00
Jim Wilson
a2f2ce96f8 (update_flow_info): When add REG_DEAD notes for dest of
last insn, add check for global_regs.

From-SVN: r13318
1996-12-17 12:02:06 -08:00
Jim Wilson
7c9df1c69c (schedule_block): Before scheduling...
(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
1996-10-07 17:35:03 -07:00
Mike Stump
6adb4e3a29 install EH code
From-SVN: r12549
1996-07-23 20:03:47 +00:00
Jim Wilson
c4a18992ac (true_dependence, anti_dependence, output_dependence):
Likewise.

From-SVN: r12416
1996-07-08 16:19:51 -07:00
Mike Stump
0f41302f47 formatting tweaks
From-SVN: r12390
1996-07-03 22:07:53 +00:00
Richard Kenner
4cf8614f1e (schedule_block): CALL_INSNs don't affect fixed regs.
From-SVN: r11648
1996-03-31 17:59:20 -05:00
Richard Kenner
e6e68157d3 (sched_analyze): Record NOTE_INSN_SETJMP if no CALL_INSN as prev;
preserve CONST_CALL_P bit.
(reemit_notes): Restore CONST_CALL_P.

From-SVN: r11342
1996-02-23 08:47:27 -05:00
Richard Kenner
d536f4236b (flush_pending_lists): Add new arg, ONLY_WRITE.
(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
1996-02-10 09:42:13 -05:00
Doug Evans
7e735d6f44 (add_dependence): Add test for next != CODE_LABEL.
From-SVN: r11192
1996-02-10 05:49:08 +00:00
Doug Evans
9298a6b0eb sched.c (reemit_notes): Add prototype.
* sched.c (reemit_notes): Add prototype.
	(sched_analyze_2): Reorganize comments.  Call prev_nonnote_insn.
	(sched_analyze): Add abort call.
	(schedule_block): Undo last patch.  Call prev_nonnote_insn.
	Move call of reemit_notes to after SCHED_GROUP_P scheduling.
	Set `head' to `last'.

From-SVN: r10998
1996-01-15 21:56:13 +00:00
Jim Wilson
d6837949c3 (schedule_block): Copy RTX_INTEGRATE_P bit when create a new note.
From-SVN: r10975
1996-01-14 15:59:52 -08:00
Doug Evans
ef185f22f2 sched.c (schedule_block): Maintain a valid chain so emit_note_before works.
* sched.c (schedule_block): Maintain a valid chain so
	emit_note_before works.

From-SVN: r10970
1996-01-12 22:47:32 +00:00
Jeff Law
7c4a1f088f sched.c (adjust_priority): Use ADJUST_PRIORITY if its defined.
* 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
1995-12-31 13:48:17 -07:00
Jeff Law
a9cc906124 sched.c (canon_rtx): Recursively look for equivalences; look for expressions equivalent to MEMs.
* 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
1995-12-17 18:31:12 -07:00
Richard Kenner
e9fa0c7c6f Update FSF address.
From-SVN: r9966
1995-06-15 08:29:51 -04:00
Richard Kenner
025cc92388 (attach_deaths): In last change, use find_reg_note instead of
find_regno_note.

From-SVN: r9883
1995-06-05 19:23:02 -04:00
Richard Kenner
7b57d1d317 (attach_deaths): Don't add a REG_DEAD note if a REG_UNUSED note is
already present.

From-SVN: r9871
1995-06-03 22:08:38 -04:00
Jim Wilson
6382ae03d8 (reemit_notes): New function.
(schedule_block): Call reemit_notes twice.  Reorganize code for
handling SCHED_GROUP_P insns, so that reemit_notes works.

From-SVN: r9814
1995-05-24 18:41:18 -07:00
Richard Kenner
9faa82d8c0 Fix typos in comments.
From-SVN: r9712
1995-05-16 08:39:54 -04:00
Richard Kenner
3826a3da7f Update comments.
From-SVN: r8811
1995-01-25 14:40:53 -05:00
Jim Wilson
4480e13f5e (sched_analyze_insn): Parameter loop_note type changed to rtx, and name changed to loop_notes.
(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
1994-09-20 12:57:18 -07:00
Richard Kenner
d90aadbb6d (sched_analyze_insn): Don't set SCHED_GROUP_P for previous INSN a USE
unless it's a USE of a REG.

From-SVN: r8083
1994-09-15 05:29:45 -04:00
Jim Wilson
babfe4370e (attach_deaths): Correct typo, use GET_MODE not GET_CODE.
From-SVN: r8043
1994-09-08 11:40:15 -07:00
Jim Wilson
208dc1d8f1 sched.c (sched_analyze_insn): Add new parameter loop_note.
* 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
1994-08-20 10:31:16 -07:00
Jim Wilson
96cbe26ae9 (attach_deaths): When adding REG_DEAD notes...
(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
1994-08-14 15:59:58 -07:00
Richard Kenner
4c9a05bc55 Cast pointer operands to bzero, bcopy, and bcmp to (char *).
From-SVN: r7472
1994-06-14 18:19:28 -04:00
Richard Kenner
1af0b2da29 (sched_analyze_insn): Fix typo in last change.
From-SVN: r7272
1994-05-11 16:18:08 -04:00
Richard Kenner
b288f2b339 (sched_analyze_insn, attach_deaths_insn): Look at
CALL_INSN_FUNCTION_USAGE.

From-SVN: r7263
1994-05-07 12:16:15 -04:00
Doug Evans
dcfb710401 (attach_deaths): Create partial register dead notes using
register's intrinsic mode.

From-SVN: r7090
1994-04-20 03:40:01 +00:00
Richard Kenner
e02f385ab5 (clear_units): Remove decl of unused variable UNIT.
(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
1994-03-25 14:18:28 -05:00
Richard Kenner
7a3b13d103 (rtx_equal_for_tmemref_p): Commutative operations are identical if the
operands match in the opposite order.

From-SVN: r6732
1994-03-09 15:31:49 -05:00
Jim Wilson
438be795a5 (reg_pending_sets, reg_pending_sets_all): New variables.
(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
1994-02-06 13:26:28 -08:00
Jim Wilson
03217a8b98 (sched_analyze_insn): Add use dependencies for registers
mentioned in REG_DEAD notes.

From-SVN: r6453
1994-01-31 16:23:18 -08:00
Jim Wilson
7ecd5f1a30 (priority): Call insn_cost() for anti- and output-
dependencies as well as for true dependencies.

From-SVN: r6450
1994-01-31 16:13:06 -08:00
Jim Wilson
5124001030 (attach_deaths_insn): Add REG_DEAD notes to CLOBBER if
it is for a MEM.

From-SVN: r6432
1994-01-26 10:56:51 -08:00
Jim Wilson
a18730e12a (new_insn_dead_notes): Compare registers with rtx_equal_p.
From-SVN: r6366
1994-01-10 14:30:44 -08:00
Jim Wilson
489e2090a4 (priority): Handle INSN_DELETED_P insns, in addition to
insns which were deleted by being turned into notes.

From-SVN: r6272
1993-12-22 11:41:47 -08:00
Jim Wilson
38d4236812 (sched_analyze): For CALL_INSN followed by NOTE_INSN_SETJMP note...
(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
1993-12-21 10:58:10 -08:00
Jim Wilson
df5f5124d5 (sched_analyze_2): Make volatile asms depend on all
pseudo registers.

From-SVN: r5621
1993-10-05 16:22:04 -07:00
Jim Wilson
85cc7011a5 Add prototypes for static function.
(add_dependence, remove_dependence, regno_use_in): Now static.
(schedule_insns): Have dummy version also take FILE * parameter.

From-SVN: r5530
1993-09-29 12:04:41 -07:00
Jim Wilson
b5e9625567 (schedule_insns): Don't zero reg_n_calls_crossed for
pseudos live across multiple blocks.

From-SVN: r5515
1993-09-28 15:57:44 -07:00
Doug Evans
cd0ca9ad6d sched.c: (memrefs_conflict_p): We can work out whether references via...
* 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
1993-09-24 19:54:46 +00:00
Richard Kenner
9e1835de3e (schedule_block): Correct type of BIT.
From-SVN: r5275
1993-09-07 14:40:27 -04:00
Jim Wilson
46aea93218 (sched_analyze_insn): Handle USE before a JUMP_INSN just
like a USE before a CALL_INSN.

From-SVN: r5141
1993-08-12 10:45:15 -07:00
Jim Wilson
211b330fd8 (schedule_insns): Don't emit a NOTE at the end of the last basic block if...
(schedule_insns): Don't emit a NOTE at the end of the last
basic block if that would put it between a JUMP_INSN and a BARRIER.

From-SVN: r5121
1993-08-09 12:37:23 -07:00
Jim Wilson
07f64b95a4 (schedule_block): Do not emit line number notes before other notes.
From-SVN: r5020
1993-07-28 10:40:30 -07:00
Jim Wilson
09d6547996 (add_dependence): Reject CODE_LABELs when searching for
last insn of a sched group.

From-SVN: r4667
1993-06-12 10:43:42 -07:00
Jim Wilson
35c7a24d64 (sched_analyze_2): Don't ignore USE insns when creating dependencies.
(sched_analyze): Likewise.

From-SVN: r4656
1993-06-10 09:55:59 -07:00