[gcc/devel/c++-coroutines] lto: Remove stream_input_location_now

Iain D Sandoe iains@gcc.gnu.org
Fri Sep 4 19:48:58 GMT 2020


https://gcc.gnu.org/g:b898878032a5bbba0d1a981db6399664181531e9

commit b898878032a5bbba0d1a981db6399664181531e9
Author: Jakub Jelinek <jakub@redhat.com>
Date:   Fri Sep 4 11:55:13 2020 +0200

    lto: Remove stream_input_location_now
    
    As discussed yesterday, stream_input_location_now has been used in 3
    remaining places.  For ERT_MUST_NOT_THROW, I believe the failure_loc
    location is stable at least until the apply_cache after the bbs are all
    read, and the locations do not include BLOCK, so we can use normal
    stream_input_location, and the two input_struct_function_base also
    shouldn't include BLOCK and are stable at least until that same apply_cache
    after reading all bbs, so again we can use the location cache.
    
    2020-09-04  Jakub Jelinek  <jakub@redhat.com>
    
            * lto-streamer.h (stream_input_location_now): Remove declaration.
            * lto-streamer-in.c (stream_input_location_now): Remove.
            (input_eh_region, input_struct_function_base): Use
            stream_input_location instead of stream_input_location_now.

Diff:
---
 gcc/lto-streamer-in.c | 21 ++++-----------------
 gcc/lto-streamer.h    |  2 --
 2 files changed, 4 insertions(+), 19 deletions(-)

diff --git a/gcc/lto-streamer-in.c b/gcc/lto-streamer-in.c
index 478125aed19..783ecc064a9 100644
--- a/gcc/lto-streamer-in.c
+++ b/gcc/lto-streamer-in.c
@@ -351,19 +351,6 @@ lto_input_location (location_t *loc, struct bitpack_d *bp,
   data_in->location_cache.input_location (loc, bp, data_in);
 }
 
-/* Read location and return it instead of going through location caching.
-   This should be used only when the resulting location is not going to be
-   discarded.  */
-
-location_t
-stream_input_location_now (struct bitpack_d *bp, class data_in *data_in)
-{
-  location_t loc;
-  stream_input_location (&loc, bp, data_in);
-  data_in->location_cache.apply_location_cache ();
-  return loc;
-}
-
 /* Read a reference to a tree node from DATA_IN using input block IB.
    TAG is the expected node that should be found in IB, if TAG belongs
    to one of the indexable trees, expect to read a reference index to
@@ -527,8 +514,8 @@ input_eh_region (class lto_input_block *ib, class data_in *data_in, int ix)
 	  r->type = ERT_MUST_NOT_THROW;
 	  r->u.must_not_throw.failure_decl = stream_read_tree (ib, data_in);
 	  bitpack_d bp = streamer_read_bitpack (ib);
-	  r->u.must_not_throw.failure_loc
-	   = stream_input_location_now (&bp, data_in);
+	  stream_input_location (&r->u.must_not_throw.failure_loc,
+	  			 &bp, data_in);
 	}
 	break;
 
@@ -1059,8 +1046,8 @@ input_struct_function_base (struct function *fn, class data_in *data_in,
   fn->last_clique = bp_unpack_value (&bp, sizeof (short) * 8);
 
   /* 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);
+  stream_input_location (&fn->function_start_locus, &bp, data_in);
+  stream_input_location (&fn->function_end_locus, &bp, data_in);
 
   /* Restore the instance discriminators if present.  */
   int instance_number = bp_unpack_value (&bp, 1);
diff --git a/gcc/lto-streamer.h b/gcc/lto-streamer.h
index 470f6fbe0b7..1ca13ed7f68 100644
--- a/gcc/lto-streamer.h
+++ b/gcc/lto-streamer.h
@@ -854,8 +854,6 @@ extern class data_in *lto_data_in_create (struct lto_file_decl_data *,
 extern void lto_data_in_delete (class data_in *);
 extern void lto_input_data_block (class lto_input_block *, void *, size_t);
 void lto_input_location (location_t *, struct bitpack_d *, class data_in *);
-location_t stream_input_location_now (struct bitpack_d *bp,
-				      class data_in *data);
 tree lto_input_tree_ref (class lto_input_block *, class data_in *,
 			 struct function *, enum LTO_tags);
 void lto_tag_check_set (enum LTO_tags, int, ...);


More information about the Gcc-cvs mailing list