Commit d1f1cc6a by Richard Henderson Committed by Richard Henderson

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
parent 55ae9079
2002-08-14 Richard Henderson <rth@redhat.com> 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. * calls.c: Include target.h.
* Makefile.in (calls.o): Update. * Makefile.in (calls.o): Update.
......
...@@ -163,13 +163,18 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA ...@@ -163,13 +163,18 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
#define NUM_EXTRA_ORDERS ARRAY_SIZE (extra_order_size_table) #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 /* 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* 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. */ thing you need to do to add a new special allocation size. */
static const size_t extra_order_size_table[] = { static const size_t extra_order_size_table[] = {
sizeof (struct tree_decl), 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. */ /* The total number of orders. */
......
...@@ -566,22 +566,24 @@ DEF_RTL_EXPR(JUMP_INSN, "jump_insn", "iuuBteiee0", 'i') ...@@ -566,22 +566,24 @@ DEF_RTL_EXPR(JUMP_INSN, "jump_insn", "iuuBteiee0", 'i')
DEF_RTL_EXPR(CALL_INSN, "call_insn", "iuuBteieee", 'i') DEF_RTL_EXPR(CALL_INSN, "call_insn", "iuuBteieee", 'i')
/* A marker that indicates that control will not flow through. */ /* 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. /* Holds a label that is followed by instructions.
Operand: Operand:
4: is used in jump.c for the use-count of the label. 5: 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 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 a number that is unique in the entire compilation.
7: is the user-given name of the label, if any. */ 8: is the user-given name of the label, if any. */
DEF_RTL_EXPR(CODE_LABEL, "code_label", "iuuB00is", 'x') DEF_RTL_EXPR(CODE_LABEL, "code_label", "iuuB00is", 'x')
/* Say where in the code a source line starts, for symbol table's sake. /* Say where in the code a source line starts, for symbol table's sake.
Operand: Operand:
4: filename, if line number > 0, note-specific data otherwise. 5: filename, if line number > 0, note-specific data otherwise.
5: line number if > 0, enum note_insn otherwise. 6: line number if > 0, enum note_insn otherwise.
6: unique number if line number == note_insn_deleted_label. */ 7: unique number if line number == note_insn_deleted_label.
DEF_RTL_EXPR(NOTE, "note", "iuuB0ni", 'x') 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. Top level constituents of INSN, JUMP_INSN and CALL_INSN.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment