diff options
author | Alexandre Oliva <oliva@adacore.com> | 2018-07-31 21:19:25 +0000 |
---|---|---|
committer | Alexandre Oliva <aoliva@gcc.gnu.org> | 2018-07-31 21:19:25 +0000 |
commit | b348c78aa4ab72ea533a01ad24311f45b0b4f4cb (patch) | |
tree | 9077f5e87e913aebb0359956c2af7b904205d824 /gcc/lto-streamer-in.c | |
parent | fa6fd7b7afece6e0cfe197c9419ea3346d3c60b2 (diff) | |
download | gcc-b348c78aa4ab72ea533a01ad24311f45b0b4f4cb.zip gcc-b348c78aa4ab72ea533a01ad24311f45b0b4f4cb.tar.gz gcc-b348c78aa4ab72ea533a01ad24311f45b0b4f4cb.tar.bz2 |
Save discriminator info for LTO
for gcc/ChangeLog
* gimple-streamer-in.c (input_bb): Restore BB discriminator.
* gimple-streamer-out.c (output_bb): Save it.
* lto-streamer-in.c (input_struct_function_base): Restore
instance discriminator if available. Create map on demand.
* lto-streamer-out.c (output_struct_function_base): Save it if
available.
* final.c (decl_to_instance_map): Document LTO strategy.
From-SVN: r263183
Diffstat (limited to 'gcc/lto-streamer-in.c')
-rw-r--r-- | gcc/lto-streamer-in.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/gcc/lto-streamer-in.c b/gcc/lto-streamer-in.c index 8529c82..4ddcc8f 100644 --- a/gcc/lto-streamer-in.c +++ b/gcc/lto-streamer-in.c @@ -1013,6 +1013,14 @@ input_struct_function_base (struct function *fn, struct data_in *data_in, /* Input the function start and end loci. */ fn->function_start_locus = stream_input_location_now (&bp, data_in); fn->function_end_locus = stream_input_location_now (&bp, data_in); + + /* Restore the instance discriminators if present. */ + int instance_number = bp_unpack_value (&bp, 1); + if (instance_number) + { + instance_number = bp_unpack_value (&bp, sizeof (int) * CHAR_BIT); + maybe_create_decl_to_instance_map ()->put (fn->decl, instance_number); + } } |