2014-03-04 Richard Biener <rguenther@suse.de>
+ PR lto/60405
+ * lto-streamer-in.c (lto_read_body): Remove LTO bytecode version
+ check.
+ (lto_input_toplevel_asms): Likewise.
+ * lto-section-in.c (lto_get_section_data): Instead do it here
+ for every section.
+
+2014-03-04 Richard Biener <rguenther@suse.de>
+
PR tree-optimization/60382
* tree-vect-loop.c (vect_is_simple_reduction_1): Do not consider
dead PHIs a reduction.
/* FIXME lto: WPA mode does not write compressed sections, so for now
suppress uncompression if flag_ltrans. */
- if (flag_ltrans)
- return data;
-
- /* Create a mapping header containing the underlying data and length,
- and prepend this to the uncompression buffer. The uncompressed data
- then follows, and a pointer to the start of the uncompressed data is
- returned. */
- header = (struct lto_data_header *) xmalloc (header_length);
- header->data = data;
- header->len = *len;
-
- buffer.data = (char *) header;
- buffer.length = header_length;
-
- stream = lto_start_uncompression (lto_append_data, &buffer);
- lto_uncompress_block (stream, data, *len);
- lto_end_uncompression (stream);
+ if (!flag_ltrans)
+ {
+ /* Create a mapping header containing the underlying data and length,
+ and prepend this to the uncompression buffer. The uncompressed data
+ then follows, and a pointer to the start of the uncompressed data is
+ returned. */
+ header = (struct lto_data_header *) xmalloc (header_length);
+ header->data = data;
+ header->len = *len;
+
+ buffer.data = (char *) header;
+ buffer.length = header_length;
+
+ stream = lto_start_uncompression (lto_append_data, &buffer);
+ lto_uncompress_block (stream, data, *len);
+ lto_end_uncompression (stream);
+
+ *len = buffer.length - header_length;
+ data = buffer.data + header_length;
+ }
- *len = buffer.length - header_length;
- return buffer.data + header_length;
+ lto_check_version (((lto_header *)data)->major_version,
+ ((lto_header *)data)->minor_version);
+ return data;
}
data_in = lto_data_in_create (file_data, data + string_offset,
header->string_size, vNULL);
- /* Make sure the file was generated by the exact same compiler. */
- lto_check_version (header->lto_header.major_version,
- header->lto_header.minor_version);
-
if (section_type == LTO_section_function_body)
{
struct lto_in_decl_state *decl_state;
data_in = lto_data_in_create (file_data, data + string_offset,
header->string_size, vNULL);
- /* Make sure the file was generated by the exact same compiler. */
- lto_check_version (header->lto_header.major_version,
- header->lto_header.minor_version);
-
while ((str = streamer_read_string_cst (data_in, &ib)))
{
struct asm_node *node = add_asm_node (str);