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.
This commit is contained in:
Jakub Jelinek 2020-09-04 11:55:13 +02:00
parent 70d8d9bd93
commit b898878032
2 changed files with 4 additions and 19 deletions

View File

@ -351,19 +351,6 @@ lto_input_location (location_t *loc, struct bitpack_d *bp,
data_in->location_cache.input_location (loc, bp, data_in); 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. /* 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 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 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->type = ERT_MUST_NOT_THROW;
r->u.must_not_throw.failure_decl = stream_read_tree (ib, data_in); r->u.must_not_throw.failure_decl = stream_read_tree (ib, data_in);
bitpack_d bp = streamer_read_bitpack (ib); bitpack_d bp = streamer_read_bitpack (ib);
r->u.must_not_throw.failure_loc stream_input_location (&r->u.must_not_throw.failure_loc,
= stream_input_location_now (&bp, data_in); &bp, data_in);
} }
break; 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); fn->last_clique = bp_unpack_value (&bp, sizeof (short) * 8);
/* Input the function start and end loci. */ /* Input the function start and end loci. */
fn->function_start_locus = stream_input_location_now (&bp, data_in); stream_input_location (&fn->function_start_locus, &bp, data_in);
fn->function_end_locus = stream_input_location_now (&bp, data_in); stream_input_location (&fn->function_end_locus, &bp, data_in);
/* Restore the instance discriminators if present. */ /* Restore the instance discriminators if present. */
int instance_number = bp_unpack_value (&bp, 1); int instance_number = bp_unpack_value (&bp, 1);

View File

@ -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_data_in_delete (class data_in *);
extern void lto_input_data_block (class lto_input_block *, void *, size_t); 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 *); 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 *, tree lto_input_tree_ref (class lto_input_block *, class data_in *,
struct function *, enum LTO_tags); struct function *, enum LTO_tags);
void lto_tag_check_set (enum LTO_tags, int, ...); void lto_tag_check_set (enum LTO_tags, int, ...);