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

--- Comment #10 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
I see another issue.  When we stream in OPTIMIZATION_NODE/TARGET_OPTIONS_NODE,
we don't use build_optimization_node/build_target_option_node and thus we don't
merge identical nodes by hashing them together in between different streamed in
TUs (or does it happen somehow else)?  If it doesn't happen, then it
unnecessarily slows down lto1, because it needs to reinitialize the backend
more often and switch in between different target options even when they are
effectively the same.
Though, of course, if we'd hash them together, we'd need to call some target
hook to resync the streamed in options with the global state before hashing
them together, because they can't be changed while they are in the hash table.

Reply via email to