[PATCH][LTO] Disable streamer debugging by default
Steven Bosscher
stevenb.gcc@gmail.com
Thu Aug 20 17:29:00 GMT 2009
On Thu, Aug 20, 2009 at 6:13 PM, Richard Guenther<rguenther@suse.de> wrote:
> Index: gcc/lto-streamer-out.c
> ===================================================================
> *** gcc/lto-streamer-out.c (revision 150943)
> --- gcc/lto-streamer-out.c (working copy)
> *************** lto_output_tree_header (struct output_bl
> *** 1321,1332 ****
> --- 1321,1335 ----
> output_uleb128 (ob, tree_size (expr));
> output_sleb128 (ob, ix);
>
> + /* The following will cause bootstrap miscomparisons. Enable with care. */
> + #ifdef LTO_STREAMER_DEBUG
> /* This is used mainly for debugging purposes. When the reader
> and the writer do not agree on a streamed node, the pointer
> value for EXPR can be used to track down the differences in
> the debugger. */
> gcc_assert ((HOST_WIDEST_INT) (intptr_t) expr == (intptr_t) expr);
> output_sleb128 (ob, (HOST_WIDEST_INT) (intptr_t) expr);
> + #endif
>
> Index: gcc/lto-streamer-in.c
> ===================================================================
> *** gcc/lto-streamer-in.c (revision 150943)
> --- gcc/lto-streamer-in.c (working copy)
(...)
> *************** lto_materialize_tree (struct lto_input_b
> *** 1722,1732 ****
> --- 1724,1736 ----
> gcc_assert ((int) ix == ix);
> *ix_p = (int) ix;
>
> + #ifdef LTO_STREAMER_DEBUG
> /* Read the word representing the memory address for the tree
> as it was written by the writer. This is useful when
> debugging differences between the writer and reader. */
> orig_address_in_writer = lto_input_sleb128 (ib);
> gcc_assert ((intptr_t) orig_address_in_writer == orig_address_in_writer);
> + #endif
>
> code = lto_tag_to_tree_code (tag);
>
Maybe write out / read in the sleb128 regardless of
LTO_STREAMER_DEBUG, but just not do the gcc_assert? That way, you
should also be able to cmp the output of an
LTO_STREAMER_DEBUG-enabled compiler with the output of an
LTO_STREAMER_DEBUG-disabled compiler?
Ciao!
Steven
More information about the Gcc-patches
mailing list