From d7dce787ebe0df76e9811d3565ad3ce113bfee78 Mon Sep 17 00:00:00 2001 From: Jan Hubicka Date: Fri, 23 Nov 2018 00:00:43 +0100 Subject: lto.c (cmp_type_location): Remove. * lto.c (cmp_type_location): Remove. (lto_read_decls): Do not allocate odr_types. From-SVN: r266395 --- gcc/lto/ChangeLog | 5 +++++ gcc/lto/lto.c | 42 +----------------------------------------- 2 files changed, 6 insertions(+), 41 deletions(-) (limited to 'gcc/lto') diff --git a/gcc/lto/ChangeLog b/gcc/lto/ChangeLog index 4731e3f..56f8a98 100644 --- a/gcc/lto/ChangeLog +++ b/gcc/lto/ChangeLog @@ -1,3 +1,8 @@ +2018-11-22 Jan Hubicka + + * lto.c (cmp_type_location): Remove. + (lto_read_decls): Do not allocate odr_types. + 2018-11-19 Martin Liska PR lto/88077 diff --git a/gcc/lto/lto.c b/gcc/lto/lto.c index 2d52d4a..a5195fd 100644 --- a/gcc/lto/lto.c +++ b/gcc/lto/lto.c @@ -1712,36 +1712,6 @@ unify_scc (struct data_in *data_in, unsigned from, } -/* Compare types based on source file location. */ - -static int -cmp_type_location (const void *p1_, const void *p2_) -{ - tree *p1 = (tree*)(const_cast(p1_)); - tree *p2 = (tree*)(const_cast(p2_)); - if (*p1 == *p2) - return 0; - - tree tname1 = TYPE_NAME (*p1); - tree tname2 = TYPE_NAME (*p2); - expanded_location xloc1 = expand_location (DECL_SOURCE_LOCATION (tname1)); - expanded_location xloc2 = expand_location (DECL_SOURCE_LOCATION (tname2)); - - const char *f1 = lbasename (xloc1.file); - const char *f2 = lbasename (xloc2.file); - int r = strcmp (f1, f2); - if (r == 0) - { - int l1 = xloc1.line; - int l2 = xloc2.line; - if (l1 != l2) - return l1 - l2; - return xloc1.column - xloc2.column; - } - else - return r; -} - /* Read all the symbols from buffer DATA, using descriptors in DECL_DATA. RESOLUTIONS is the set of symbols picked by the linker (read from the resolution file when the linker plugin is being used). */ @@ -1758,7 +1728,6 @@ lto_read_decls (struct lto_file_decl_data *decl_data, const void *data, unsigned int i; const uint32_t *data_ptr, *data_end; uint32_t num_decl_states; - auto_vec odr_types; lto_input_block ib_main ((const char *) data + main_offset, header->main_size, decl_data->mode_table); @@ -1828,7 +1797,7 @@ lto_read_decls (struct lto_file_decl_data *decl_data, const void *data, if (!TYPE_CANONICAL (t)) gimple_register_canonical_type (t); if (TYPE_MAIN_VARIANT (t) == t && odr_type_p (t)) - odr_types.safe_push (t); + register_odr_type (t); } /* Link shared INTEGER_CSTs into TYPE_CACHED_VALUEs of its type which is also member of this SCC. */ @@ -1890,15 +1859,6 @@ lto_read_decls (struct lto_file_decl_data *decl_data, const void *data, *slot = state; } - /* Sort types for the file before registering in ODR machinery. */ - if (lto_location_cache::current_cache) - lto_location_cache::current_cache->apply_location_cache (); - odr_types.qsort (cmp_type_location); - - /* Register ODR types. */ - for (unsigned i = 0; i < odr_types.length (); i++) - register_odr_type (odr_types[i]); - if (data_ptr != data_end) internal_error ("bytecode stream: garbage at the end of symbols section"); -- cgit v1.1