diff options
author | Jan Hubicka <jh@suse.cz> | 2020-05-25 14:41:33 +0200 |
---|---|---|
committer | Jan Hubicka <jh@suse.cz> | 2020-05-25 14:41:33 +0200 |
commit | a746f952abb78af9db28a7f3bce442e113877c9c (patch) | |
tree | b7eb8047093027d31c4d5f5becab23088c81df83 /gcc/tree-streamer-in.c | |
parent | 67bfbda18f4e6d0d30ad8f8790f1d0d4653131ed (diff) | |
download | gcc-a746f952abb78af9db28a7f3bce442e113877c9c.zip gcc-a746f952abb78af9db28a7f3bce442e113877c9c.tar.gz gcc-a746f952abb78af9db28a7f3bce442e113877c9c.tar.bz2 |
Do not stream redundant stuff
as discussed on IRC this adds knob to disable stuff we stream "just for fun"
(or to make it easier to debug streamer desychnonization).
Te size of .o files in gcc subdirectory is reduced form 506MB to 492MB
gcc/
* lto-streamer-out.c (lto_output_tree): Add streamer_debugging check.
* lto-streamer.h (streamer_debugging): New constant
* tree-streamer-in.c (streamer_read_tree_bitfields): Add
streamer_debugging check.
(streamer_get_pickled_tree): Likewise.
* tree-streamer-out.c (pack_ts_base_value_fields): Likewise.
Diffstat (limited to 'gcc/tree-streamer-in.c')
-rw-r--r-- | gcc/tree-streamer-in.c | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/gcc/tree-streamer-in.c b/gcc/tree-streamer-in.c index 450f40d..d2e45e3 100644 --- a/gcc/tree-streamer-in.c +++ b/gcc/tree-streamer-in.c @@ -487,9 +487,13 @@ streamer_read_tree_bitfields (class lto_input_block *ib, /* The first word in BP contains the code of the tree that we are about to read. */ - code = (enum tree_code) bp_unpack_value (&bp, 16); - lto_tag_check (lto_tree_code_to_tag (code), - lto_tree_code_to_tag (TREE_CODE (expr))); + if (streamer_debugging) + { + code = (enum tree_code) bp_unpack_value (&bp, 16); + lto_tag_check (lto_tree_code_to_tag (code), + lto_tree_code_to_tag (TREE_CODE (expr))); + } + code = TREE_CODE (expr); /* Note that all these functions are highly sensitive to changes in the types and sizes of each of the fields being packed. */ @@ -1107,11 +1111,14 @@ streamer_get_pickled_tree (class lto_input_block *ib, class data_in *data_in) enum LTO_tags expected_tag; ix = streamer_read_uhwi (ib); - expected_tag = streamer_read_enum (ib, LTO_tags, LTO_NUM_TAGS); - result = streamer_tree_cache_get_tree (data_in->reader_cache, ix); - gcc_assert (result - && TREE_CODE (result) == lto_tag_to_tree_code (expected_tag)); + + if (streamer_debugging) + { + expected_tag = streamer_read_enum (ib, LTO_tags, LTO_NUM_TAGS); + gcc_assert (result + && TREE_CODE (result) == lto_tag_to_tree_code (expected_tag)); + } return result; } |