diff options
author | Thomas Schwinge <thomas@codesourcery.com> | 2021-08-31 23:34:23 +0200 |
---|---|---|
committer | Thomas Schwinge <thomas@codesourcery.com> | 2021-11-15 17:56:49 +0100 |
commit | bcebd05720540e257b520737de6e087a328c1f8b (patch) | |
tree | 17b24ac57fd7afb6cb428cb9ebce09a341a46703 /gcc | |
parent | 6c29c9d6a7d80ece7e08eb546ca4a1ba1430a9b3 (diff) | |
download | gcc-bcebd05720540e257b520737de6e087a328c1f8b.zip gcc-bcebd05720540e257b520737de6e087a328c1f8b.tar.gz gcc-bcebd05720540e257b520737de6e087a328c1f8b.tar.bz2 |
Use 'location_hash' for 'seen_locations' in 'gcc/profile.c:branch_prob'
Follow-up to commit 102fcf94e625a2016a65829c73a42bd6c2420376
"Fix GCOV CFG related issues": considering the current
'int_hash <location_t, 0, 2>', per 'libcpp/include/line-map.h':
Actual | Value | Meaning
-----------+-------------------------------+-------------------------------
0x00000000 | UNKNOWN_LOCATION (gcc/input.h)| Unknown/invalid location.
-----------+-------------------------------+-------------------------------
0x00000001 | BUILTINS_LOCATION | The location for declarations
| (gcc/input.h) | in "<built-in>"
-----------+-------------------------------+-------------------------------
0x00000002 | RESERVED_LOCATION_COUNT | The first location to be
| (also | handed out, and the
| ordmap[0]->start_location) | first line in ordmap 0
... this currently uses value '0' ('UNKNOWN_LOCATION') as spare values for
'Empty', and value '2' ('RESERVED_LOCATION_COUNT') as spare values for
'Deleted', which is questionable?
What actually does get put into 'seen_locations' is (mostly...)
restricted/gated by '!RESERVED_LOCATION_P' (which is true unless
'UNKNOWN_LOCATION' or 'BUILTINS_LOCATION'), thus we may simply use
'location_hash'.
gcc/
* profile.c (branch_prob): Use 'location_hash' for
'seen_locations'.
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/profile.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/profile.c b/gcc/profile.c index c33c833..d07002d 100644 --- a/gcc/profile.c +++ b/gcc/profile.c @@ -1375,7 +1375,7 @@ branch_prob (bool thunk) /* Initialize the output. */ output_location (&streamed_locations, NULL, 0, NULL, NULL); - hash_set<int_hash <location_t, 0, 2> > seen_locations; + hash_set<location_hash> seen_locations; FOR_EACH_BB_FN (bb, cfun) { @@ -1385,6 +1385,7 @@ branch_prob (bool thunk) if (bb == ENTRY_BLOCK_PTR_FOR_FN (cfun)->next_bb) { location_t loc = DECL_SOURCE_LOCATION (current_function_decl); + gcc_checking_assert (!RESERVED_LOCATION_P (loc)); seen_locations.add (loc); expanded_location curr_location = expand_location (loc); output_location (&streamed_locations, curr_location.file, |