]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
ggc-page.c (RTL_SIZE): New.
authorRichard Henderson <rth@redhat.com>
Thu, 15 Aug 2002 01:03:43 +0000 (18:03 -0700)
committerRichard Henderson <rth@gcc.gnu.org>
Thu, 15 Aug 2002 01:03:43 +0000 (18:03 -0700)
        * 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

gcc/ChangeLog
gcc/ggc-page.c
gcc/rtl.def

index 145f869ad16407a665bc83e2f9e7fd36405a576a..709fbf54363a2fc4c19800e59d281c2fdf0b5bca 100644 (file)
@@ -1,3 +1,9 @@
+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.
index 0f59153ad36e700c96aea199032602b2286ff82f..9a5644a323261f64f9ae23e1eb14ae54280d39d1 100644 (file)
@@ -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.  */
index 2934188c70b255fabf05c8e4b9afcb67a036f1e5..5608676f205e30074dcb23ecd8a0109ed12a770e 100644 (file)
@@ -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.