diff options
author | Jan Hubicka <jh@suse.cz> | 2002-06-04 19:32:59 +0200 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2002-06-04 17:32:59 +0000 |
commit | 63f4a88e2873b14f843f02a0aeb4c8de73c51f57 (patch) | |
tree | 2c86c9a05e23b1ae6c7c454f4735a7512ecc5a18 | |
parent | a5d1f75b65ba49002e3d84312c4b0120f84b4121 (diff) | |
download | gcc-63f4a88e2873b14f843f02a0aeb4c8de73c51f57.tar.gz |
Tue Jun 4 19:29:42 CEST 2002 Jan Hubicka <jh@suse.cz>
* cfglayout.c (duplicate_insn_chain): Kill NOTE_INSN_RANGE notes.
* final.c (final_scan_insn): Likewise.
* ggc-common.c (ggc_mark_rtx_children_1): Likewise; use
NOTE_EXPECTED_VALUE instead of NOTE_RANGE.
* haifa-sched.c (unlink_other_notes): Likeewise.
(reemit_notes): Likewise.
* print-rtl.c (print_rtx): Likewise.
* sched-deps (sched-analyze): Likewise.
* rtl.c (note_insn_name): Likewise.
* rtl.h (NOTE_RANGE_INFO, NOTE_LIVE_INFO): Kill.
(enum insn_note): Kill NOTE_INSN_RANGE_*, NOTE_INSN_LIVE.
(RANGE_*): Kill.
From-SVN: r54250
-rw-r--r-- | gcc/ChangeLog | 15 | ||||
-rw-r--r-- | gcc/cfglayout.c | 2 | ||||
-rw-r--r-- | gcc/final.c | 3 | ||||
-rw-r--r-- | gcc/ggc-common.c | 5 | ||||
-rw-r--r-- | gcc/haifa-sched.c | 25 | ||||
-rw-r--r-- | gcc/print-rtl.c | 10 | ||||
-rw-r--r-- | gcc/rtl.c | 3 | ||||
-rw-r--r-- | gcc/rtl.h | 107 | ||||
-rw-r--r-- | gcc/sched-deps.c | 12 |
9 files changed, 25 insertions, 157 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 14bbfaaa3f2..89defd1d15e 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,18 @@ +Tue Jun 4 19:29:42 CEST 2002 Jan Hubicka <jh@suse.cz> + + * cfglayout.c (duplicate_insn_chain): Kill NOTE_INSN_RANGE notes. + * final.c (final_scan_insn): Likewise. + * ggc-common.c (ggc_mark_rtx_children_1): Likewise; use + NOTE_EXPECTED_VALUE instead of NOTE_RANGE. + * haifa-sched.c (unlink_other_notes): Likeewise. + (reemit_notes): Likewise. + * print-rtl.c (print_rtx): Likewise. + * sched-deps (sched-analyze): Likewise. + * rtl.c (note_insn_name): Likewise. + * rtl.h (NOTE_RANGE_INFO, NOTE_LIVE_INFO): Kill. + (enum insn_note): Kill NOTE_INSN_RANGE_*, NOTE_INSN_LIVE. + (RANGE_*): Kill. + 2002-06-04 Jason Thorpe <thorpej@wasabisystems.com> * varasm.c (mark_constants): Handle RTX format 'B'. diff --git a/gcc/cfglayout.c b/gcc/cfglayout.c index 0c648b65f67..83bc6b71d97 100644 --- a/gcc/cfglayout.c +++ b/gcc/cfglayout.c @@ -779,8 +779,6 @@ duplicate_insn_chain (from, to) reordering is in the progress. */ case NOTE_INSN_EH_REGION_BEG: case NOTE_INSN_EH_REGION_END: - case NOTE_INSN_RANGE_BEG: - case NOTE_INSN_RANGE_END: /* Should never exist at BB duplication time. */ abort (); break; diff --git a/gcc/final.c b/gcc/final.c index 9fe1c11f586..aa4caf19eb7 100644 --- a/gcc/final.c +++ b/gcc/final.c @@ -1995,9 +1995,6 @@ final_scan_insn (insn, file, optimize, prescan, nopeepholes) case NOTE_INSN_LOOP_VTOP: case NOTE_INSN_FUNCTION_END: case NOTE_INSN_REPEATED_LINE_NUMBER: - case NOTE_INSN_RANGE_BEG: - case NOTE_INSN_RANGE_END: - case NOTE_INSN_LIVE: case NOTE_INSN_EXPECTED_VALUE: break; diff --git a/gcc/ggc-common.c b/gcc/ggc-common.c index 978ae96aa0f..b5dad6bbd76 100644 --- a/gcc/ggc-common.c +++ b/gcc/ggc-common.c @@ -215,11 +215,8 @@ ggc_mark_rtx_children_1 (r) case NOTE: switch (NOTE_LINE_NUMBER (r)) { - case NOTE_INSN_RANGE_BEG: - case NOTE_INSN_RANGE_END: - case NOTE_INSN_LIVE: case NOTE_INSN_EXPECTED_VALUE: - ggc_mark_rtx (NOTE_RANGE_INFO (r)); + ggc_mark_rtx (NOTE_EXPECTED_VALUE (r)); break; case NOTE_INSN_BLOCK_BEG: diff --git a/gcc/haifa-sched.c b/gcc/haifa-sched.c index 63a31352a5b..b59f7e1cf92 100644 --- a/gcc/haifa-sched.c +++ b/gcc/haifa-sched.c @@ -1233,8 +1233,6 @@ unlink_other_notes (insn, tail) /* See sched_analyze to see how these are handled. */ if (NOTE_LINE_NUMBER (insn) != NOTE_INSN_LOOP_BEG && NOTE_LINE_NUMBER (insn) != NOTE_INSN_LOOP_END - && NOTE_LINE_NUMBER (insn) != NOTE_INSN_RANGE_BEG - && NOTE_LINE_NUMBER (insn) != NOTE_INSN_RANGE_END && NOTE_LINE_NUMBER (insn) != NOTE_INSN_EH_REGION_BEG && NOTE_LINE_NUMBER (insn) != NOTE_INSN_EH_REGION_END) { @@ -1726,23 +1724,12 @@ reemit_notes (insn, last) { enum insn_note note_type = INTVAL (XEXP (note, 0)); - if (note_type == NOTE_INSN_RANGE_BEG - || note_type == NOTE_INSN_RANGE_END) - { - last = emit_note_before (note_type, last); - remove_note (insn, note); - note = XEXP (note, 1); - NOTE_RANGE_INFO (last) = XEXP (note, 0); - } - else - { - last = emit_note_before (note_type, last); - remove_note (insn, note); - note = XEXP (note, 1); - if (note_type == NOTE_INSN_EH_REGION_BEG - || note_type == NOTE_INSN_EH_REGION_END) - NOTE_EH_HANDLER (last) = INTVAL (XEXP (note, 0)); - } + last = emit_note_before (note_type, last); + remove_note (insn, note); + note = XEXP (note, 1); + if (note_type == NOTE_INSN_EH_REGION_BEG + || note_type == NOTE_INSN_EH_REGION_END) + NOTE_EH_HANDLER (last) = INTVAL (XEXP (note, 0)); remove_note (insn, note); } } diff --git a/gcc/print-rtl.c b/gcc/print-rtl.c index 723fd0d3eb5..da8a0520a05 100644 --- a/gcc/print-rtl.c +++ b/gcc/print-rtl.c @@ -251,16 +251,6 @@ print_rtx (in_rtx) sawclose = 1; break; - case NOTE_INSN_RANGE_BEG: - case NOTE_INSN_RANGE_END: - case NOTE_INSN_LIVE: - indent += 2; - if (!sawclose) - fprintf (outfile, " "); - print_rtx (NOTE_RANGE_INFO (in_rtx)); - indent -= 2; - break; - case NOTE_INSN_BASIC_BLOCK: { basic_block bb = NOTE_BASIC_BLOCK (in_rtx); diff --git a/gcc/rtl.c b/gcc/rtl.c index da753b58428..7b6c0a1f9bd 100644 --- a/gcc/rtl.c +++ b/gcc/rtl.c @@ -214,8 +214,7 @@ const char * const note_insn_name[NOTE_INSN_MAX - NOTE_INSN_BIAS] = "NOTE_INSN_PROLOGUE_END", "NOTE_INSN_EPILOGUE_BEG", "NOTE_INSN_DELETED_LABEL", "NOTE_INSN_FUNCTION_BEG", "NOTE_INSN_EH_REGION_BEG", "NOTE_INSN_EH_REGION_END", - "NOTE_INSN_REPEATED_LINE_NUMBER", "NOTE_INSN_RANGE_BEG", - "NOTE_INSN_RANGE_END", "NOTE_INSN_LIVE", + "NOTE_INSN_REPEATED_LINE_NUMBER", "NOTE_INSN_BASIC_BLOCK", "NOTE_INSN_EXPECTED_VALUE", "NOTE_INSN_PREDICTION" }; diff --git a/gcc/rtl.h b/gcc/rtl.h index 35e1f2fc528..ab03d6bff1b 100644 --- a/gcc/rtl.h +++ b/gcc/rtl.h @@ -754,14 +754,11 @@ extern const char * const reg_note_name[]; line is in. We use the same field to record block numbers temporarily in NOTE_INSN_BLOCK_BEG and NOTE_INSN_BLOCK_END notes. (We avoid lots of casts between ints and pointers if we use a different macro for the block number.) - The NOTE_INSN_RANGE_{START,END} and NOTE_INSN_LIVE notes record their - information as an rtx in the field. */ + */ #define NOTE_SOURCE_FILE(INSN) XCSTR (INSN, 4, NOTE) #define NOTE_BLOCK(INSN) XCTREE (INSN, 4, NOTE) #define NOTE_EH_HANDLER(INSN) XCINT (INSN, 4, NOTE) -#define NOTE_RANGE_INFO(INSN) XCEXP (INSN, 4, NOTE) -#define NOTE_LIVE_INFO(INSN) XCEXP (INSN, 4, NOTE) #define NOTE_BASIC_BLOCK(INSN) XCBBDEF (INSN, 4, NOTE) #define NOTE_EXPECTED_VALUE(INSN) XCEXP (INSN, 4, NOTE) #define NOTE_PREDICTION(INSN) XCINT (INSN, 4, NOTE) @@ -853,14 +850,6 @@ enum insn_note the line containing the inline call from being counted twice in gcov. */ NOTE_INSN_REPEATED_LINE_NUMBER, - /* Start/end of a live range region, where pseudos allocated on the stack - can be allocated to temporary registers. Uses NOTE_RANGE_INFO. */ - NOTE_INSN_RANGE_BEG, - NOTE_INSN_RANGE_END, - - /* Record which registers are currently live. Uses NOTE_LIVE_INFO. */ - NOTE_INSN_LIVE, - /* Record the struct for the following basic block. Uses NOTE_BASIC_BLOCK. */ NOTE_INSN_BASIC_BLOCK, @@ -1261,100 +1250,6 @@ do { \ #define USE_STORE_PRE_DECREMENT(MODE) HAVE_PRE_DECREMENT #endif - -/* Accessors for RANGE_INFO. */ -/* For RANGE_{START,END} notes return the RANGE_START note. */ -#define RANGE_INFO_NOTE_START(INSN) XCEXP (INSN, 0, RANGE_INFO) - -/* For RANGE_{START,END} notes return the RANGE_START note. */ -#define RANGE_INFO_NOTE_END(INSN) XCEXP (INSN, 1, RANGE_INFO) - -/* For RANGE_{START,END} notes, return the vector containing the registers used - in the range. */ -#define RANGE_INFO_REGS(INSN) XCVEC (INSN, 2, RANGE_INFO) -#define RANGE_INFO_REGS_REG(INSN, N) XCVECEXP (INSN, 2, N, RANGE_INFO) -#define RANGE_INFO_NUM_REGS(INSN) XCVECLEN (INSN, 2, RANGE_INFO) - -/* For RANGE_{START,END} notes, the number of calls within the range. */ -#define RANGE_INFO_NCALLS(INSN) XCINT (INSN, 3, RANGE_INFO) - -/* For RANGE_{START,END} notes, the number of insns within the range. */ -#define RANGE_INFO_NINSNS(INSN) XCINT (INSN, 4, RANGE_INFO) - -/* For RANGE_{START,END} notes, a unique # to identify this range. */ -#define RANGE_INFO_UNIQUE(INSN) XCINT (INSN, 5, RANGE_INFO) - -/* For RANGE_{START,END} notes, the basic block # the range starts with. */ -#define RANGE_INFO_BB_START(INSN) XCINT (INSN, 6, RANGE_INFO) - -/* For RANGE_{START,END} notes, the basic block # the range ends with. */ -#define RANGE_INFO_BB_END(INSN) XCINT (INSN, 7, RANGE_INFO) - -/* For RANGE_{START,END} notes, the loop depth the range is in. */ -#define RANGE_INFO_LOOP_DEPTH(INSN) XCINT (INSN, 8, RANGE_INFO) - -/* For RANGE_{START,END} notes, the bitmap of live registers at the start - of the range. */ -#define RANGE_INFO_LIVE_START(INSN) XCBITMAP (INSN, 9, RANGE_INFO) - -/* For RANGE_{START,END} notes, the bitmap of live registers at the end - of the range. */ -#define RANGE_INFO_LIVE_END(INSN) XCBITMAP (INSN, 10, RANGE_INFO) - -/* For RANGE_START notes, the marker # of the start of the range. */ -#define RANGE_INFO_MARKER_START(INSN) XCINT (INSN, 11, RANGE_INFO) - -/* For RANGE_START notes, the marker # of the end of the range. */ -#define RANGE_INFO_MARKER_END(INSN) XCINT (INSN, 12, RANGE_INFO) - -/* Original pseudo register # for a live range note. */ -#define RANGE_REG_PSEUDO(INSN,N) XCINT (XCVECEXP (INSN, 2, N, RANGE_INFO), 0, REG) - -/* Pseudo register # original register is copied into or -1. */ -#define RANGE_REG_COPY(INSN,N) XCINT (XCVECEXP (INSN, 2, N, RANGE_INFO), 1, REG) - -/* How many times a register in a live range note was referenced. */ -#define RANGE_REG_REFS(INSN,N) XINT (XCVECEXP (INSN, 2, N, RANGE_INFO), 2) - -/* How many times a register in a live range note was set. */ -#define RANGE_REG_SETS(INSN,N) XINT (XCVECEXP (INSN, 2, N, RANGE_INFO), 3) - -/* How many times a register in a live range note died. */ -#define RANGE_REG_DEATHS(INSN,N) XINT (XCVECEXP (INSN, 2, N, RANGE_INFO), 4) - -/* Whether the original value is needed to be copied into the range register at - the start of the range. */ -#define RANGE_REG_COPY_FLAGS(INSN,N) XINT (XCVECEXP (INSN, 2, N, RANGE_INFO), 5) - -/* # of insns the register copy is live over. */ -#define RANGE_REG_LIVE_LENGTH(INSN,N) XINT (XCVECEXP (INSN, 2, N, RANGE_INFO), 6) - -/* # of calls the register copy is live over. */ -#define RANGE_REG_N_CALLS(INSN,N) XINT (XCVECEXP (INSN, 2, N, RANGE_INFO), 7) - -/* DECL_NODE pointer of the declaration if the register is a user defined - variable. */ -#define RANGE_REG_SYMBOL_NODE(INSN,N) XTREE (XCVECEXP (INSN, 2, N, RANGE_INFO), 8) - -/* BLOCK_NODE pointer to the block the variable is declared in if the - register is a user defined variable. */ -#define RANGE_REG_BLOCK_NODE(INSN,N) XTREE (XCVECEXP (INSN, 2, N, RANGE_INFO), 9) - -/* EXPR_LIST of the distinct ranges a variable is in. */ -#define RANGE_VAR_LIST(INSN) (XEXP (INSN, 0)) - -/* Block a variable is declared in. */ -#define RANGE_VAR_BLOCK(INSN) (XTREE (INSN, 1)) - -/* # of distinct ranges a variable is in. */ -#define RANGE_VAR_NUM(INSN) (XINT (INSN, 2)) - -/* For a NOTE_INSN_LIVE note, the registers which are currently live. */ -#define RANGE_LIVE_BITMAP(INSN) (XBITMAP (INSN, 0)) - -/* For a NOTE_INSN_LIVE note, the original basic block number. */ -#define RANGE_LIVE_ORIG_BLOCK(INSN) (XINT (INSN, 1)) - /* Determine if the insn is a PHI node. */ #define PHI_NODE_P(X) \ ((X) && GET_CODE (X) == INSN \ diff --git a/gcc/sched-deps.c b/gcc/sched-deps.c index a81b4008c7e..268f58e6cd1 100644 --- a/gcc/sched-deps.c +++ b/gcc/sched-deps.c @@ -1315,17 +1315,7 @@ sched_analyze (deps, head, tail) /* See comments on reemit_notes as to why we do this. ??? Actually, the reemit_notes just say what is done, not why. */ - else if (GET_CODE (insn) == NOTE - && (NOTE_LINE_NUMBER (insn) == NOTE_INSN_RANGE_BEG - || NOTE_LINE_NUMBER (insn) == NOTE_INSN_RANGE_END)) - { - loop_notes = alloc_EXPR_LIST (REG_SAVE_NOTE, NOTE_RANGE_INFO (insn), - loop_notes); - loop_notes = alloc_EXPR_LIST (REG_SAVE_NOTE, - GEN_INT (NOTE_LINE_NUMBER (insn)), - loop_notes); - } - else if (GET_CODE (insn) == NOTE + if (GET_CODE (insn) == NOTE && (NOTE_LINE_NUMBER (insn) == NOTE_INSN_LOOP_BEG || NOTE_LINE_NUMBER (insn) == NOTE_INSN_LOOP_END || NOTE_LINE_NUMBER (insn) == NOTE_INSN_EH_REGION_BEG |