https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65536

--- Comment #47 from Jan Hubicka <hubicka at gcc dot gnu.org> ---
Author: hubicka
Date: Fri Mar 27 06:58:59 2015
New Revision: 221720

URL: https://gcc.gnu.org/viewcvs?rev=221720&root=gcc&view=rev
Log:

    PR lto/65536
    * lto-streamer.h (class lto_location_cache): New.
    (struct data_in): Add location_cache.
    (lto_input_location): Update prototype.
    (stream_input_location_now): New.
    * streamer-hooks.h (struct streamer_hooks): Make input_location to take
    pointer to location.
    (stream_input_location): Update.
    * ipa-devirt.c: Include streamer-hooks.h and lto-streamer.h
    (warn_odr): Apply location cache before warning.
    (lto_input_location): Update prototype.
    * gimple-streamer-in.c (input_phi, input_gimple_stmt):
    Use stream_input_location_now.
    * lto/lto.c (unify_scc): Revert location cache when unification
    suceeded.
    (lto_read_decls): Accept location cache after sucess;
    apply location cache before calling debug hooks.
    * lto-streamer-in.c (lto_location_cache::current_cache): New static
    variable.
    (lto_location_cache::cmp_loc): New function.
    (lto_location_cache::apply_location_cache): New function.
    (lto_location_cache::accept_location_cache): New function.
    (lto_location_cache::revert_location_cache): New function.
    (lto_location_cache::input_location): New function.
    (lto_input_location): Do location caching.
    (stream_input_location_now): New function.
    (input_eh_region, input_struct_function_base): Use
    stream_input_location_now.
    (lto_data_in_create): use new.
    (lto_data_in_delete): Use delete.
    * tree-streamer-in.c (unpack_ts_block_value_fields,
    unpack_ts_omp_clause_value_fields, streamer_read_tree_bitfields,
    lto_input_ts_exp_tree_pointers): Update for cached location api.

Modified:
    trunk/gcc/gimple-streamer-in.c
    trunk/gcc/ipa-devirt.c
    trunk/gcc/lto-streamer-in.c
    trunk/gcc/lto-streamer.h
    trunk/gcc/lto/ChangeLog
    trunk/gcc/lto/lto.c
    trunk/gcc/streamer-hooks.h
    trunk/gcc/tree-streamer-in.c

Reply via email to