diff options
author | Richard Henderson <rth@redhat.com> | 2002-08-14 18:03:43 -0700 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 2002-08-14 18:03:43 -0700 |
commit | d1f1cc6a0fbea6eafd29bf13a02705ccb9e4f45e (patch) | |
tree | 98f95ebf444eb6c313ed44d7aaf8dfa76160648b /gcc | |
parent | 55ae9079933065d00adfac121e8b5b6a18b61939 (diff) | |
download | gcc-d1f1cc6a0fbea6eafd29bf13a02705ccb9e4f45e.zip gcc-d1f1cc6a0fbea6eafd29bf13a02705ccb9e4f45e.tar.gz gcc-d1f1cc6a0fbea6eafd29bf13a02705ccb9e4f45e.tar.bz2 |
ggc-page.c (RTL_SIZE): New.
* ggc-page.c (RTL_SIZE): New.
(extra_order_size_table): Add specializations for 2 and 10 rtl slots.
* rtl.def (BARRIER, NOTE): Pad to 9 slots.
From-SVN: r56337
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/ggc-page.c | 7 | ||||
-rw-r--r-- | gcc/rtl.def | 20 |
3 files changed, 23 insertions, 10 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 145f869..709fbf5 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,11 @@ 2002-08-14 Richard Henderson <rth@redhat.com> + * ggc-page.c (RTL_SIZE): New. + (extra_order_size_table): Add specializations for 2 and 10 rtl slots. + * rtl.def (BARRIER, NOTE): Pad to 9 slots. + +2002-08-14 Richard Henderson <rth@redhat.com> + * calls.c: Include target.h. * Makefile.in (calls.o): Update. diff --git a/gcc/ggc-page.c b/gcc/ggc-page.c index 0f59153..9a5644a 100644 --- a/gcc/ggc-page.c +++ b/gcc/ggc-page.c @@ -163,13 +163,18 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA #define NUM_EXTRA_ORDERS ARRAY_SIZE (extra_order_size_table) +#define RTL_SIZE(NSLOTS) \ + (sizeof (struct rtx_def) + ((NSLOTS) - 1) * sizeof (rtunion)) + /* The Ith entry is the maximum size of an object to be stored in the Ith extra order. Adding a new entry to this array is the *only* thing you need to do to add a new special allocation size. */ static const size_t extra_order_size_table[] = { sizeof (struct tree_decl), - sizeof (struct tree_list) + sizeof (struct tree_list), + RTL_SIZE (2), /* REG, MEM, PLUS, etc. */ + RTL_SIZE (10), /* INSN, CALL_INSN, JUMP_INSN */ }; /* The total number of orders. */ diff --git a/gcc/rtl.def b/gcc/rtl.def index 2934188..5608676 100644 --- a/gcc/rtl.def +++ b/gcc/rtl.def @@ -566,22 +566,24 @@ DEF_RTL_EXPR(JUMP_INSN, "jump_insn", "iuuBteiee0", 'i') DEF_RTL_EXPR(CALL_INSN, "call_insn", "iuuBteieee", 'i') /* A marker that indicates that control will not flow through. */ -DEF_RTL_EXPR(BARRIER, "barrier", "iuu", 'x') +DEF_RTL_EXPR(BARRIER, "barrier", "iuu000000", 'x') /* Holds a label that is followed by instructions. Operand: - 4: is used in jump.c for the use-count of the label. - 5: is used in flow.c to point to the chain of label_ref's to this label. - 6: is a number that is unique in the entire compilation. - 7: is the user-given name of the label, if any. */ + 5: is used in jump.c for the use-count of the label. + 6: is used in flow.c to point to the chain of label_ref's to this label. + 7: is a number that is unique in the entire compilation. + 8: is the user-given name of the label, if any. */ DEF_RTL_EXPR(CODE_LABEL, "code_label", "iuuB00is", 'x') /* Say where in the code a source line starts, for symbol table's sake. Operand: - 4: filename, if line number > 0, note-specific data otherwise. - 5: line number if > 0, enum note_insn otherwise. - 6: unique number if line number == note_insn_deleted_label. */ -DEF_RTL_EXPR(NOTE, "note", "iuuB0ni", 'x') + 5: filename, if line number > 0, note-specific data otherwise. + 6: line number if > 0, enum note_insn otherwise. + 7: unique number if line number == note_insn_deleted_label. + 8-9: padding so that notes and insns are the same size, and thus + allocated from the same page ordering. */ +DEF_RTL_EXPR(NOTE, "note", "iuuB0ni00", 'x') /* ---------------------------------------------------------------------- Top level constituents of INSN, JUMP_INSN and CALL_INSN. |