+2011-06-01 Diego Novillo <dnovillo@google.com>
+
+ * lto-streamer-out.c (lto_output_ts_decl_with_vis_tree_pointers): Call
+ output_record_start with LTO_null instead of output_zero.
+ (lto_output_ts_binfo_tree_pointers): Likewise.
+ (lto_output_tree): Likewise.
+ (output_eh_try_list): Likewise.
+ (output_eh_region): Likewise.
+ (output_eh_lp): Likewise.
+ (output_eh_regions): Likewise.
+ (output_bb): Likewise.
+ (output_function): Likewise.
+ (output_unreferenced_globals): Likewise.
+ * lto-streamer.h (enum LTO_tags): Reserve MAX_TREE_CODES
+ instead of NUM_TREE_CODES.
+ (lto_tag_is_tree_code_p): Check max value against MAX_TREE_CODES.
+ (lto_output_int_in_range): Change << to >> when shifting VAL.
+
2011-06-01 Diego Novillo <dnovillo@google.com>
* lto-streamer-out.c (lto_output_ts_decl_non_common_tree_pointers):
if (DECL_ASSEMBLER_NAME_SET_P (expr))
lto_output_tree_or_ref (ob, DECL_ASSEMBLER_NAME (expr), ref_p);
else
- output_zero (ob);
+ output_record_start (ob, LTO_null);
lto_output_tree_or_ref (ob, DECL_SECTION_NAME (expr), ref_p);
lto_output_tree_or_ref (ob, DECL_COMDAT_GROUP (expr), ref_p);
is needed to build the empty BINFO node on the reader side. */
FOR_EACH_VEC_ELT (tree, BINFO_BASE_BINFOS (expr), i, t)
lto_output_tree_or_ref (ob, t, ref_p);
- output_zero (ob);
+ output_record_start (ob, LTO_null);
lto_output_tree_or_ref (ob, BINFO_OFFSET (expr), ref_p);
lto_output_tree_or_ref (ob, BINFO_VTABLE (expr), ref_p);
if (expr == NULL_TREE)
{
- output_zero (ob);
+ output_record_start (ob, LTO_null);
return;
}
lto_output_tree_ref (ob, n->label);
}
- output_zero (ob);
+ output_record_start (ob, LTO_null);
}
if (r == NULL)
{
- output_zero (ob);
+ output_record_start (ob, LTO_null);
return;
}
{
if (lp == NULL)
{
- output_zero (ob);
+ output_record_start (ob, LTO_null);
return;
}
}
}
- /* The 0 either terminates the record or indicates that there are no
- eh_records at all. */
- output_zero (ob);
+ /* The LTO_null either terminates the record or indicates that there
+ are no eh_records at all. */
+ output_record_start (ob, LTO_null);
}
output_sleb128 (ob, region);
}
else
- output_zero (ob);
+ output_record_start (ob, LTO_null);
}
- output_zero (ob);
+ output_record_start (ob, LTO_null);
for (bsi = gsi_start_phis (bb); !gsi_end_p (bsi); gsi_next (&bsi))
{
output_phi (ob, phi);
}
- output_zero (ob);
+ output_record_start (ob, LTO_null);
}
}
output_bb (ob, bb, fn);
/* The terminator for this function. */
- output_zero (ob);
+ output_record_start (ob, LTO_null);
output_cfg (ob, fn);
}
symbol_alias_set_destroy (defined);
- output_zero (ob);
+ output_record_start (ob, LTO_null);
produce_asm (ob, NULL);
destroy_output_block (ob);
Conversely, to map between LTO tags and tree/gimple codes, the
reverse operation must be applied. */
- LTO_bb0 = 1 + NUM_TREE_CODES + LAST_AND_UNUSED_GIMPLE_CODE,
+ LTO_bb0 = 1 + MAX_TREE_CODES + LAST_AND_UNUSED_GIMPLE_CODE,
LTO_bb1,
/* EH region holding the previous statement. */
static inline bool
lto_tag_is_tree_code_p (enum LTO_tags tag)
{
- return tag > LTO_null && (unsigned) tag <= NUM_TREE_CODES;
+ return tag > LTO_null && (unsigned) tag <= MAX_TREE_CODES;
}
val -= min;
lto_output_1_stream (obs, val & 255);
if (range >= 0xff)
- lto_output_1_stream (obs, (val << 8) & 255);
+ lto_output_1_stream (obs, (val >> 8) & 255);
if (range >= 0xffff)
- lto_output_1_stream (obs, (val << 16) & 255);
+ lto_output_1_stream (obs, (val >> 16) & 255);
if (range >= 0xffffff)
- lto_output_1_stream (obs, (val << 24) & 255);
+ lto_output_1_stream (obs, (val >> 24) & 255);
}
/* Input VAL into OBS and verify it is in range MIN...MAX that is supposed