+2012-10-12 Richard Biener <rguenther@suse.de>
+
+ * tree-streamer-out.c (pack_ts_target_option): Rename from ...
+ (write_ts_target_option): ... this.
+ (pack_ts_optimization): Rename from ...
+ (write_ts_optimization): ... this.
+ (streamer_pack_tree_bitfields): Pack them in the bitfield section ...
+ (streamer_write_tree_body): ... not here.
+ * tree-streamer-in.c (unpack_ts_target_option): Rename from ...
+ (lto_input_ts_target_option): ... this.
+ (unpack_ts_optimization): Rename from ...
+ (lto_input_ts_optimization): ... this.
+ (unpack_value_fields): Unpack them from the bitfield section ...
+ (streamer_read_tree_body): ... not from here.
+
2012-10-12 Uros Bizjak <ubizjak@gmail.com>
* config/alpha/alpha.md (vecmodesuffix): New mode attribute.
{
}
+/* Unpack a TS_TARGET_OPTION tree from BP into EXPR. */
+
+static void
+unpack_ts_target_option (struct bitpack_d *bp, tree expr)
+{
+ unsigned i, len;
+ struct cl_target_option *t = TREE_TARGET_OPTION (expr);
+
+ len = sizeof (struct cl_target_option);
+ for (i = 0; i < len; i++)
+ ((unsigned char *)t)[i] = bp_unpack_value (bp, 8);
+ if (bp_unpack_value (bp, 32) != 0x12345678)
+ fatal_error ("cl_target_option size mismatch in LTO reader and writer");
+}
+
+/* Unpack a TS_OPTIMIZATION tree from BP into EXPR. */
+
+static void
+unpack_ts_optimization (struct bitpack_d *bp, tree expr)
+{
+ unsigned i, len;
+ struct cl_optimization *t = TREE_OPTIMIZATION (expr);
+
+ len = sizeof (struct cl_optimization);
+ for (i = 0; i < len; i++)
+ ((unsigned char *)t)[i] = bp_unpack_value (bp, 8);
+ if (bp_unpack_value (bp, 32) != 0x12345678)
+ fatal_error ("cl_optimization size mismatch in LTO reader and writer");
+}
+
+
/* Unpack all the non-pointer fields in EXPR into a bit pack. */
static void
if (CODE_CONTAINS_STRUCT (code, TS_TRANSLATION_UNIT_DECL))
unpack_ts_translation_unit_decl_value_fields (bp, expr);
+
+ if (CODE_CONTAINS_STRUCT (code, TS_TARGET_OPTION))
+ unpack_ts_target_option (bp, expr);
+
+ if (CODE_CONTAINS_STRUCT (code, TS_OPTIMIZATION))
+ unpack_ts_optimization (bp, expr);
}
}
-/* Input a TS_TARGET_OPTION tree from IB into EXPR. */
-
-static void
-lto_input_ts_target_option (struct lto_input_block *ib, tree expr)
-{
- unsigned i, len;
- struct bitpack_d bp;
- struct cl_target_option *t = TREE_TARGET_OPTION (expr);
-
- bp = streamer_read_bitpack (ib);
- len = sizeof (struct cl_target_option);
- for (i = 0; i < len; i++)
- ((unsigned char *)t)[i] = bp_unpack_value (&bp, 8);
- if (bp_unpack_value (&bp, 32) != 0x12345678)
- fatal_error ("cl_target_option size mismatch in LTO reader and writer");
-}
-
-/* Input a TS_OPTIMIZATION tree from IB into EXPR. */
-
-static void
-lto_input_ts_optimization (struct lto_input_block *ib, tree expr)
-{
- unsigned i, len;
- struct bitpack_d bp;
- struct cl_optimization *t = TREE_OPTIMIZATION (expr);
-
- bp = streamer_read_bitpack (ib);
- len = sizeof (struct cl_optimization);
- for (i = 0; i < len; i++)
- ((unsigned char *)t)[i] = bp_unpack_value (&bp, 8);
- if (bp_unpack_value (&bp, 32) != 0x12345678)
- fatal_error ("cl_optimization size mismatch in LTO reader and writer");
-}
-
/* Input a TS_TRANSLATION_UNIT_DECL tree from IB and DATA_IN into EXPR. */
static void
if (CODE_CONTAINS_STRUCT (code, TS_CONSTRUCTOR))
lto_input_ts_constructor_tree_pointers (ib, data_in, expr);
- if (CODE_CONTAINS_STRUCT (code, TS_TARGET_OPTION))
- lto_input_ts_target_option (ib, expr);
-
- if (CODE_CONTAINS_STRUCT (code, TS_OPTIMIZATION))
- lto_input_ts_optimization (ib, expr);
-
if (CODE_CONTAINS_STRUCT (code, TS_TRANSLATION_UNIT_DECL))
lto_input_ts_translation_unit_decl_tree_pointers (ib, data_in, expr);
}
{
}
+/* Pack a TS_TARGET_OPTION tree in EXPR to BP. */
+
+static void
+pack_ts_target_option (struct bitpack_d *bp, tree expr)
+{
+ struct cl_target_option *t = TREE_TARGET_OPTION (expr);
+ unsigned i, len;
+
+ /* The cl_target_option is target specific and generated by the options
+ awk script, so we just recreate a byte-by-byte copy here. */
+
+ len = sizeof (struct cl_target_option);
+ for (i = 0; i < len; i++)
+ bp_pack_value (bp, ((unsigned char *)t)[i], 8);
+ /* Catch struct size mismatches between reader and writer. */
+ bp_pack_value (bp, 0x12345678, 32);
+}
+
+/* Pack a TS_OPTIMIZATION tree in EXPR to BP. */
+
+static void
+pack_ts_optimization (struct bitpack_d *bp, tree expr)
+{
+ struct cl_optimization *t = TREE_OPTIMIZATION (expr);
+ unsigned i, len;
+
+ /* The cl_optimization is generated by the options
+ awk script, so we just recreate a byte-by-byte copy here. */
+
+ len = sizeof (struct cl_optimization);
+ for (i = 0; i < len; i++)
+ bp_pack_value (bp, ((unsigned char *)t)[i], 8);
+ /* Catch struct size mismatches between reader and writer. */
+ bp_pack_value (bp, 0x12345678, 32);
+}
+
/* Pack all the bitfields in EXPR into a bit pack. */
if (CODE_CONTAINS_STRUCT (code, TS_TRANSLATION_UNIT_DECL))
pack_ts_translation_unit_decl_value_fields (bp, expr);
+
+ if (CODE_CONTAINS_STRUCT (code, TS_TARGET_OPTION))
+ pack_ts_target_option (bp, expr);
+
+ if (CODE_CONTAINS_STRUCT (code, TS_OPTIMIZATION))
+ pack_ts_optimization (bp, expr);
}
}
}
-/* Write a TS_TARGET_OPTION tree in EXPR to OB. */
-
-static void
-write_ts_target_option (struct output_block *ob, tree expr)
-{
- struct cl_target_option *t = TREE_TARGET_OPTION (expr);
- struct bitpack_d bp;
- unsigned i, len;
-
- /* The cl_target_option is target specific and generated by the options
- awk script, so we just recreate a byte-by-byte copy here. */
-
- bp = bitpack_create (ob->main_stream);
- len = sizeof (struct cl_target_option);
- for (i = 0; i < len; i++)
- bp_pack_value (&bp, ((unsigned char *)t)[i], 8);
- /* Catch struct size mismatches between reader and writer. */
- bp_pack_value (&bp, 0x12345678, 32);
- streamer_write_bitpack (&bp);
-}
-
-/* Write a TS_OPTIMIZATION tree in EXPR to OB. */
-
-static void
-write_ts_optimization (struct output_block *ob, tree expr)
-{
- struct cl_optimization *t = TREE_OPTIMIZATION (expr);
- struct bitpack_d bp;
- unsigned i, len;
-
- /* The cl_optimization is generated by the options
- awk script, so we just recreate a byte-by-byte copy here. */
-
- bp = bitpack_create (ob->main_stream);
- len = sizeof (struct cl_optimization);
- for (i = 0; i < len; i++)
- bp_pack_value (&bp, ((unsigned char *)t)[i], 8);
- /* Catch struct size mismatches between reader and writer. */
- bp_pack_value (&bp, 0x12345678, 32);
- streamer_write_bitpack (&bp);
-}
-
/* Write a TS_TRANSLATION_UNIT_DECL tree in EXPR to OB. */
static void
if (CODE_CONTAINS_STRUCT (code, TS_CONSTRUCTOR))
write_ts_constructor_tree_pointers (ob, expr, ref_p);
- if (CODE_CONTAINS_STRUCT (code, TS_TARGET_OPTION))
- write_ts_target_option (ob, expr);
-
- if (CODE_CONTAINS_STRUCT (code, TS_OPTIMIZATION))
- write_ts_optimization (ob, expr);
-
if (CODE_CONTAINS_STRUCT (code, TS_TRANSLATION_UNIT_DECL))
write_ts_translation_unit_decl_tree_pointers (ob, expr);
}