options, lto: Optimize streaming of optimization nodes
authorJakub Jelinek <jakub@redhat.com>
Wed, 16 Sep 2020 08:04:32 +0000 (10:04 +0200)
committerJakub Jelinek <jakub@redhat.com>
Wed, 16 Sep 2020 08:04:32 +0000 (10:04 +0200)
commitd29a7cd6f4d4e9cf91987464fd080de79a0c7d31
tree55434d3f2026efd4f598ca607da8a703b171ebeb
parentbd909071ac04e94f4b6f0baab64d0687ec55681d
options, lto: Optimize streaming of optimization nodes

When working on the previous patch, I've noticed that all cl_optimization
fields appart from strings are streamed with bp_pack_value (..., 64); so we
waste quite a lot of space, given that many of the options are just booleans
or char options and there are 450-ish of them.

Fixed by streaming the number of bits the corresponding fields have.
While for char fields we have also range information, except for 3
it is either -128, 127 or 0, 255, so it didn't seem worth it to bother
with using range-ish packing.

2020-09-16  Jakub Jelinek  <jakub@redhat.com>

* optc-save-gen.awk: In cl_optimization_stream_out use
bp_pack_var_len_{int,unsigned} instead of bp_pack_value.  In
cl_optimization_stream_in use bp_unpack_var_len_{int,unsigned}
instead of bp_unpack_value.  Formatting fix.
gcc/optc-save-gen.awk