mirror of
https://github.com/carbon-language/carbon-lang.git
synced 2026-09-24 19:30:12 +01:00
These were defined inline in headers reached by most of the toolchain, and as non-template functions their bodies -- including some very expensive template instantiations -- are compiled in every including TU even though they are only cold debug/dump paths: - BundleStore's YAML output entry points instantiate IdAndKind::Dispatch over all ~50 ID kinds (two ~365ms instantiations per TU) plus Yaml::OutputScalar/std::function machinery; moved to a new bundle.cpp. - TypeStore, ConstantValueStore, NameStoreWrapper, and SharedValueStores OutputYaml bodies wrap capturing lambdas in std::function via Yaml::OutputMapping; moved to their existing .cpp files. This change appears to be worth another 10% compile time reduction. Assisted-by: Claude