Skip to content

Incremental ThinLTO doesn't reuse unchanged CGUs originating form upstream crates #158955

Description

@bjorn3

When rustc is in incremental mode, cg_llvm is supposed to ask ThinLTO for every CGU if it needs to be re-optimized or if the artifacts from the previous compilation session can be re-used. This works fine for local CGUs, but for CGUs originating from upstream crates we incorrectly recompile them unconditionally:

Somewhat verbose logs
$ echo 'fn main() {}' | RUSTC_LOG=rustc_codegen_llvm::back rustc - -Cincremental=i -Clto=thin
warning: some trace filter directives would enable traces that are disabled statically
 | `rustc_codegen_llvm::back=trace` would enable the TRACE level for the `rustc_codegen_llvm::back` target
 = note: the static max level is `info`
 = help: to enable DEBUG logging, remove the `max_level_info` feature from the `tracing` crate
  INFO rustc_codegen_llvm::back::lto adding bitcode from std-97ad18f5ff73ac59.std.eb0a984909e3e9db-cgu.0.rcgu.o
  INFO rustc_codegen_llvm::back::lto adding bitcode from panic_unwind-6d74918d8c9fc8eb.panic_unwind.2c8f5aefaa401768-cgu.0.rcgu.o
  INFO rustc_codegen_llvm::back::lto adding bitcode from object-93fe4a6732f49df4.object.23ed47b63b254e1f-cgu.0.rcgu.o
  INFO rustc_codegen_llvm::back::lto adding bitcode from memchr-6d799c7a867f65ec.memchr.9857587667506101-cgu.0.rcgu.o
  INFO rustc_codegen_llvm::back::lto adding bitcode from addr2line-25929983526f04fa.addr2line.c0ce80aede3d4387-cgu.0.rcgu.o
  INFO rustc_codegen_llvm::back::lto adding bitcode from gimli-45b43a86c98f869a.gimli.4bcf315d396003be-cgu.0.rcgu.o
  INFO rustc_codegen_llvm::back::lto adding bitcode from cfg_if-3367568ca42d58f6.cfg_if.24f6f58b1e6c0512-cgu.0.rcgu.o
  INFO rustc_codegen_llvm::back::lto adding bitcode from rustc_demangle-917b4137dcc16c1a.rustc_demangle.faed9c870cf8c981-cgu.0.rcgu.o
  INFO rustc_codegen_llvm::back::lto adding bitcode from std_detect-89da0f264c038cfd.std_detect.3472883a54d5ea88-cgu.0.rcgu.o
  INFO rustc_codegen_llvm::back::lto adding bitcode from hashbrown-708d53ebeba09f31.hashbrown.75685bee96dce093-cgu.0.rcgu.o
  INFO rustc_codegen_llvm::back::lto adding bitcode from rustc_std_workspace_alloc-e9dc45f98c8ec199.rustc_std_workspace_alloc.2a9edd1fe8ec284e-cgu.0.rcgu.o
  INFO rustc_codegen_llvm::back::lto adding bitcode from miniz_oxide-ed184832220c0641.miniz_oxide.aa3c4a081c6dccb-cgu.0.rcgu.o
  INFO rustc_codegen_llvm::back::lto adding bitcode from adler2-336aefd7b842107c.adler2.17cc26489f12f344-cgu.0.rcgu.o
  INFO rustc_codegen_llvm::back::lto adding bitcode from unwind-d8feb668298a034e.unwind.4ba8e0ce54b89e2a-cgu.0.rcgu.o
  INFO rustc_codegen_llvm::back::lto adding bitcode from libc-93b6ac19591830f2.libc.5723d27d479e3139-cgu.0.rcgu.o
  INFO rustc_codegen_llvm::back::lto adding bitcode from rustc_std_workspace_core-5d9a775410d678c7.rustc_std_workspace_core.38ed106ace1adde5-cgu.0.rcgu.o
  INFO rustc_codegen_llvm::back::lto adding bitcode from alloc-63de78ca4b0f7b13.alloc.c8499e84c8ebed9c-cgu.0.rcgu.o
  INFO rustc_codegen_llvm::back::lto adding bitcode from core-0b74e43f28b113df.core.65ad41b0d205847a-cgu.0.rcgu.o
  INFO rustc_codegen_llvm::back::lto going for that thin, thin LTO
  INFO rustc_codegen_llvm::back::lto local module: 0 - 6lae4cjdhmree6e3dytjzcywj
  INFO rustc_codegen_llvm::back::lto upstream or cached module "std-97ad18f5ff73ac59.std.eb0a984909e3e9db-cgu.0.rcgu.o"
  INFO rustc_codegen_llvm::back::lto upstream or cached module "panic_unwind-6d74918d8c9fc8eb.panic_unwind.2c8f5aefaa401768-cgu.0.rcgu.o"
  INFO rustc_codegen_llvm::back::lto upstream or cached module "object-93fe4a6732f49df4.object.23ed47b63b254e1f-cgu.0.rcgu.o"
  INFO rustc_codegen_llvm::back::lto upstream or cached module "memchr-6d799c7a867f65ec.memchr.9857587667506101-cgu.0.rcgu.o"
  INFO rustc_codegen_llvm::back::lto upstream or cached module "addr2line-25929983526f04fa.addr2line.c0ce80aede3d4387-cgu.0.rcgu.o"
  INFO rustc_codegen_llvm::back::lto upstream or cached module "gimli-45b43a86c98f869a.gimli.4bcf315d396003be-cgu.0.rcgu.o"
  INFO rustc_codegen_llvm::back::lto upstream or cached module "cfg_if-3367568ca42d58f6.cfg_if.24f6f58b1e6c0512-cgu.0.rcgu.o"
  INFO rustc_codegen_llvm::back::lto upstream or cached module "rustc_demangle-917b4137dcc16c1a.rustc_demangle.faed9c870cf8c981-cgu.0.rcgu.o"
  INFO rustc_codegen_llvm::back::lto upstream or cached module "std_detect-89da0f264c038cfd.std_detect.3472883a54d5ea88-cgu.0.rcgu.o"
  INFO rustc_codegen_llvm::back::lto upstream or cached module "hashbrown-708d53ebeba09f31.hashbrown.75685bee96dce093-cgu.0.rcgu.o"
  INFO rustc_codegen_llvm::back::lto upstream or cached module "rustc_std_workspace_alloc-e9dc45f98c8ec199.rustc_std_workspace_alloc.2a9edd1fe8ec284e-cgu.0.rcgu.o"
  INFO rustc_codegen_llvm::back::lto upstream or cached module "miniz_oxide-ed184832220c0641.miniz_oxide.aa3c4a081c6dccb-cgu.0.rcgu.o"
  INFO rustc_codegen_llvm::back::lto upstream or cached module "adler2-336aefd7b842107c.adler2.17cc26489f12f344-cgu.0.rcgu.o"
  INFO rustc_codegen_llvm::back::lto upstream or cached module "unwind-d8feb668298a034e.unwind.4ba8e0ce54b89e2a-cgu.0.rcgu.o"
  INFO rustc_codegen_llvm::back::lto upstream or cached module "libc-93b6ac19591830f2.libc.5723d27d479e3139-cgu.0.rcgu.o"
  INFO rustc_codegen_llvm::back::lto upstream or cached module "rustc_std_workspace_core-5d9a775410d678c7.rustc_std_workspace_core.38ed106ace1adde5-cgu.0.rcgu.o"
  INFO rustc_codegen_llvm::back::lto upstream or cached module "alloc-63de78ca4b0f7b13.alloc.c8499e84c8ebed9c-cgu.0.rcgu.o"
  INFO rustc_codegen_llvm::back::lto upstream or cached module "core-0b74e43f28b113df.core.65ad41b0d205847a-cgu.0.rcgu.o"
  INFO rustc_codegen_llvm::back::lto upstream or cached module "c70u0a76x19t4gww0jvj6yao8"
  INFO rustc_codegen_llvm::back::lto upstream or cached module "chne6zhcy9x85cp0h2x5aqu0m"
  INFO rustc_codegen_llvm::back::lto upstream or cached module "18jjsdd37c3gq3h2osg79u26t"
  INFO rustc_codegen_llvm::back::lto upstream or cached module "d8ox0gwb3a4do5jzgumfggb4p"
  INFO rustc_codegen_llvm::back::lto upstream or cached module "cjc4ymmspqlie6c93a6aq3hdm"
  INFO rustc_codegen_llvm::back::lto thin LTO data created
  INFO rustc_codegen_llvm::back::lto thin LTO cache key map loaded
  INFO rustc_codegen_llvm::back::lto prev_key_map: Some(
     ThinLTOKeysMap {
         keys: {
             "18jjsdd37c3gq3h2osg79u26t": "1A07C247D9E640DDB4C6A4C3768F0A91B6076465",
             "6lae4cjdhmree6e3dytjzcywj": "F1EDCCF55AABA8D5D1973CEF29B2460EACED894A",
             "addr2line-25929983526f04fa.addr2line.c0ce80aede3d4387-cgu.0.rcgu.o": "58BD95A74B698B630367B8D9C8003AFCBFA41B06",
             "adler2-336aefd7b842107c.adler2.17cc26489f12f344-cgu.0.rcgu.o": "D1359BD89B4B7F6DFBED758F4F8803183970EC04",
             "alloc-63de78ca4b0f7b13.alloc.c8499e84c8ebed9c-cgu.0.rcgu.o": "296C7F99478A15A1BFE17A7B96827D30EAB8272E",
             "c70u0a76x19t4gww0jvj6yao8": "C73EA2E7CAC6B5C328B89BE28B317C845A7756F2",
             "cfg_if-3367568ca42d58f6.cfg_if.24f6f58b1e6c0512-cgu.0.rcgu.o": "B94F0408A018DEFB82E2ADBE52ADB9A3973C1A84",
             "chne6zhcy9x85cp0h2x5aqu0m": "3EE6A4F3F7D88032ADAFA4A6EAEE161ABC76CE8F",
             "cjc4ymmspqlie6c93a6aq3hdm": "E672F1DB0CBBDC0E3AE6D54360B2203847B5DA89",
             "core-0b74e43f28b113df.core.65ad41b0d205847a-cgu.0.rcgu.o": "726553BB6C60FF201B5516502FF256FD9FC7D924",
             "d8ox0gwb3a4do5jzgumfggb4p": "5313E5DEF9C845E41259478DA6CE8BE9D67B8B6A",
             "gimli-45b43a86c98f869a.gimli.4bcf315d396003be-cgu.0.rcgu.o": "F336E621AE74B9F2AE13E23FC3DACF15FF1F17C8",
             "hashbrown-708d53ebeba09f31.hashbrown.75685bee96dce093-cgu.0.rcgu.o": "36C19A9D0EB535EE0E9DC12AD424312E9B3A34C6",
             "libc-93b6ac19591830f2.libc.5723d27d479e3139-cgu.0.rcgu.o": "AEC2BF1AC99E3536ACECD3E33E5E9608DD5FEB0A",
             "memchr-6d799c7a867f65ec.memchr.9857587667506101-cgu.0.rcgu.o": "F09F9EC99D94A8ECE980A2CC8C6950A701D712EA",
             "miniz_oxide-ed184832220c0641.miniz_oxide.aa3c4a081c6dccb-cgu.0.rcgu.o": "41433802828A60FEEDE0A7D9E7D1F3051097416B",
             "object-93fe4a6732f49df4.object.23ed47b63b254e1f-cgu.0.rcgu.o": "389CBB69C7A8769E499E97ECF9AFF0E58460D865",
             "panic_unwind-6d74918d8c9fc8eb.panic_unwind.2c8f5aefaa401768-cgu.0.rcgu.o": "0C1456DF798DA045B018BC714EC1E7B7D7A80AF2",
             "rustc_demangle-917b4137dcc16c1a.rustc_demangle.faed9c870cf8c981-cgu.0.rcgu.o": "A09E27B2414E8104906E8DD8B85D24CA46441FC5",
             "rustc_std_workspace_alloc-e9dc45f98c8ec199.rustc_std_workspace_alloc.2a9edd1fe8ec284e-cgu.0.rcgu.o": "2DA83DC76E47D24DCB43BE759CCC56CCD5DDA312",
             "rustc_std_workspace_core-5d9a775410d678c7.rustc_std_workspace_core.38ed106ace1adde5-cgu.0.rcgu.o": "0BA0C636CC5F9DB300FD3715B2330C6F4B9AA074",
             "std-97ad18f5ff73ac59.std.eb0a984909e3e9db-cgu.0.rcgu.o": "534E18DF0ED9E1B7311A57313B1A4AF5237D27CA",
             "std_detect-89da0f264c038cfd.std_detect.3472883a54d5ea88-cgu.0.rcgu.o": "9AF87D9E47AD3C1CB15D036C9FCB07A48CE68D70",
             "unwind-d8feb668298a034e.unwind.4ba8e0ce54b89e2a-cgu.0.rcgu.o": "7F2936A470B7EE86B6E04DA189E9CFB137D29DED",
         },
     },
 )
  INFO rustc_codegen_llvm::back::lto curr_key_map: ThinLTOKeysMap {
     keys: {
         "18jjsdd37c3gq3h2osg79u26t": "1A07C247D9E640DDB4C6A4C3768F0A91B6076465",
         "6lae4cjdhmree6e3dytjzcywj": "F1EDCCF55AABA8D5D1973CEF29B2460EACED894A",
         "addr2line-25929983526f04fa.addr2line.c0ce80aede3d4387-cgu.0.rcgu.o": "58BD95A74B698B630367B8D9C8003AFCBFA41B06",
         "adler2-336aefd7b842107c.adler2.17cc26489f12f344-cgu.0.rcgu.o": "D1359BD89B4B7F6DFBED758F4F8803183970EC04",
         "alloc-63de78ca4b0f7b13.alloc.c8499e84c8ebed9c-cgu.0.rcgu.o": "296C7F99478A15A1BFE17A7B96827D30EAB8272E",
         "c70u0a76x19t4gww0jvj6yao8": "C73EA2E7CAC6B5C328B89BE28B317C845A7756F2",
         "cfg_if-3367568ca42d58f6.cfg_if.24f6f58b1e6c0512-cgu.0.rcgu.o": "B94F0408A018DEFB82E2ADBE52ADB9A3973C1A84",
         "chne6zhcy9x85cp0h2x5aqu0m": "3EE6A4F3F7D88032ADAFA4A6EAEE161ABC76CE8F",
         "cjc4ymmspqlie6c93a6aq3hdm": "E672F1DB0CBBDC0E3AE6D54360B2203847B5DA89",
         "core-0b74e43f28b113df.core.65ad41b0d205847a-cgu.0.rcgu.o": "726553BB6C60FF201B5516502FF256FD9FC7D924",
         "d8ox0gwb3a4do5jzgumfggb4p": "5313E5DEF9C845E41259478DA6CE8BE9D67B8B6A",
         "gimli-45b43a86c98f869a.gimli.4bcf315d396003be-cgu.0.rcgu.o": "F336E621AE74B9F2AE13E23FC3DACF15FF1F17C8",
         "hashbrown-708d53ebeba09f31.hashbrown.75685bee96dce093-cgu.0.rcgu.o": "36C19A9D0EB535EE0E9DC12AD424312E9B3A34C6",
         "libc-93b6ac19591830f2.libc.5723d27d479e3139-cgu.0.rcgu.o": "AEC2BF1AC99E3536ACECD3E33E5E9608DD5FEB0A",
         "memchr-6d799c7a867f65ec.memchr.9857587667506101-cgu.0.rcgu.o": "F09F9EC99D94A8ECE980A2CC8C6950A701D712EA",
         "miniz_oxide-ed184832220c0641.miniz_oxide.aa3c4a081c6dccb-cgu.0.rcgu.o": "41433802828A60FEEDE0A7D9E7D1F3051097416B",
         "object-93fe4a6732f49df4.object.23ed47b63b254e1f-cgu.0.rcgu.o": "389CBB69C7A8769E499E97ECF9AFF0E58460D865",
         "panic_unwind-6d74918d8c9fc8eb.panic_unwind.2c8f5aefaa401768-cgu.0.rcgu.o": "0C1456DF798DA045B018BC714EC1E7B7D7A80AF2",
         "rustc_demangle-917b4137dcc16c1a.rustc_demangle.faed9c870cf8c981-cgu.0.rcgu.o": "A09E27B2414E8104906E8DD8B85D24CA46441FC5",
         "rustc_std_workspace_alloc-e9dc45f98c8ec199.rustc_std_workspace_alloc.2a9edd1fe8ec284e-cgu.0.rcgu.o": "2DA83DC76E47D24DCB43BE759CCC56CCD5DDA312",
         "rustc_std_workspace_core-5d9a775410d678c7.rustc_std_workspace_core.38ed106ace1adde5-cgu.0.rcgu.o": "0BA0C636CC5F9DB300FD3715B2330C6F4B9AA074",
         "std-97ad18f5ff73ac59.std.eb0a984909e3e9db-cgu.0.rcgu.o": "534E18DF0ED9E1B7311A57313B1A4AF5237D27CA",
         "std_detect-89da0f264c038cfd.std_detect.3472883a54d5ea88-cgu.0.rcgu.o": "9AF87D9E47AD3C1CB15D036C9FCB07A48CE68D70",
         "unwind-d8feb668298a034e.unwind.4ba8e0ce54b89e2a-cgu.0.rcgu.o": "7F2936A470B7EE86B6E04DA189E9CFB137D29DED",
     },
 }
  INFO rustc_codegen_llvm::back::lto checking which modules can be-reused and which have to be re-optimized.
  INFO rustc_codegen_llvm::back::lto  - 6lae4cjdhmree6e3dytjzcywj: re-compiled
  INFO rustc_codegen_llvm::back::lto  - std-97ad18f5ff73ac59.std.eb0a984909e3e9db-cgu.0.rcgu.o: re-compiled
  INFO rustc_codegen_llvm::back::lto  - panic_unwind-6d74918d8c9fc8eb.panic_unwind.2c8f5aefaa401768-cgu.0.rcgu.o: re-compiled
  INFO rustc_codegen_llvm::back::lto  - object-93fe4a6732f49df4.object.23ed47b63b254e1f-cgu.0.rcgu.o: re-compiled
  INFO rustc_codegen_llvm::back::lto  - memchr-6d799c7a867f65ec.memchr.9857587667506101-cgu.0.rcgu.o: re-compiled
  INFO rustc_codegen_llvm::back::lto  - addr2line-25929983526f04fa.addr2line.c0ce80aede3d4387-cgu.0.rcgu.o: re-compiled
  INFO rustc_codegen_llvm::back::lto  - gimli-45b43a86c98f869a.gimli.4bcf315d396003be-cgu.0.rcgu.o: re-compiled
  INFO rustc_codegen_llvm::back::lto  - cfg_if-3367568ca42d58f6.cfg_if.24f6f58b1e6c0512-cgu.0.rcgu.o: re-compiled
  INFO rustc_codegen_llvm::back::lto  - rustc_demangle-917b4137dcc16c1a.rustc_demangle.faed9c870cf8c981-cgu.0.rcgu.o: re-compiled
  INFO rustc_codegen_llvm::back::lto  - std_detect-89da0f264c038cfd.std_detect.3472883a54d5ea88-cgu.0.rcgu.o: re-compiled
  INFO rustc_codegen_llvm::back::lto  - hashbrown-708d53ebeba09f31.hashbrown.75685bee96dce093-cgu.0.rcgu.o: re-compiled
  INFO rustc_codegen_llvm::back::lto  - rustc_std_workspace_alloc-e9dc45f98c8ec199.rustc_std_workspace_alloc.2a9edd1fe8ec284e-cgu.0.rcgu.o: re-compiled
  INFO rustc_codegen_llvm::back::lto  - miniz_oxide-ed184832220c0641.miniz_oxide.aa3c4a081c6dccb-cgu.0.rcgu.o: re-compiled
  INFO rustc_codegen_llvm::back::lto  - adler2-336aefd7b842107c.adler2.17cc26489f12f344-cgu.0.rcgu.o: re-compiled
  INFO rustc_codegen_llvm::back::lto  - unwind-d8feb668298a034e.unwind.4ba8e0ce54b89e2a-cgu.0.rcgu.o: re-compiled
  INFO rustc_codegen_llvm::back::lto  - libc-93b6ac19591830f2.libc.5723d27d479e3139-cgu.0.rcgu.o: re-compiled
  INFO rustc_codegen_llvm::back::lto  - rustc_std_workspace_core-5d9a775410d678c7.rustc_std_workspace_core.38ed106ace1adde5-cgu.0.rcgu.o: re-compiled
  INFO rustc_codegen_llvm::back::lto  - alloc-63de78ca4b0f7b13.alloc.c8499e84c8ebed9c-cgu.0.rcgu.o: re-compiled
  INFO rustc_codegen_llvm::back::lto  - core-0b74e43f28b113df.core.65ad41b0d205847a-cgu.0.rcgu.o: re-compiled
  INFO rustc_codegen_llvm::back::lto  - c70u0a76x19t4gww0jvj6yao8: re-used
  INFO rustc_codegen_llvm::back::lto  - chne6zhcy9x85cp0h2x5aqu0m: re-used
  INFO rustc_codegen_llvm::back::lto  - 18jjsdd37c3gq3h2osg79u26t: re-used
  INFO rustc_codegen_llvm::back::lto  - d8ox0gwb3a4do5jzgumfggb4p: re-used
  INFO rustc_codegen_llvm::back::lto  - cjc4ymmspqlie6c93a6aq3hdm: re-used
  INFO rustc_codegen_llvm::back::lto running thin lto passes over adler2-336aefd7b842107c.adler2.17cc26489f12f344-cgu.0.rcgu.o
  INFO rustc_codegen_llvm::back::lto running thin lto passes over libc-93b6ac19591830f2.libc.5723d27d479e3139-cgu.0.rcgu.o
  INFO rustc_codegen_llvm::back::lto running thin lto passes over hashbrown-708d53ebeba09f31.hashbrown.75685bee96dce093-cgu.0.rcgu.o
  INFO rustc_codegen_llvm::back::lto running thin lto passes over rustc_std_workspace_core-5d9a775410d678c7.rustc_std_workspace_core.38ed106ace1adde5-cgu.0.rcgu.o
  INFO rustc_codegen_llvm::back::lto running thin lto passes over rustc_std_workspace_alloc-e9dc45f98c8ec199.rustc_std_workspace_alloc.2a9edd1fe8ec284e-cgu.0.rcgu.o
  INFO rustc_codegen_llvm::back::lto running thin lto passes over cfg_if-3367568ca42d58f6.cfg_if.24f6f58b1e6c0512-cgu.0.rcgu.o
  INFO rustc_codegen_llvm::back::lto running thin lto passes over unwind-d8feb668298a034e.unwind.4ba8e0ce54b89e2a-cgu.0.rcgu.o
  INFO rustc_codegen_llvm::back::lto running thin lto passes over std_detect-89da0f264c038cfd.std_detect.3472883a54d5ea88-cgu.0.rcgu.o
  INFO rustc_codegen_llvm::back::lto running thin lto passes over miniz_oxide-ed184832220c0641.miniz_oxide.aa3c4a081c6dccb-cgu.0.rcgu.o
  INFO rustc_codegen_llvm::back::lto running thin lto passes over memchr-6d799c7a867f65ec.memchr.9857587667506101-cgu.0.rcgu.o
  INFO rustc_codegen_llvm::back::lto running thin lto passes over object-93fe4a6732f49df4.object.23ed47b63b254e1f-cgu.0.rcgu.o
  INFO rustc_codegen_llvm::back::lto running thin lto passes over rustc_demangle-917b4137dcc16c1a.rustc_demangle.faed9c870cf8c981-cgu.0.rcgu.o
  INFO rustc_codegen_llvm::back::lto running thin lto passes over 6lae4cjdhmree6e3dytjzcywj
  INFO rustc_codegen_llvm::back::lto running thin lto passes over panic_unwind-6d74918d8c9fc8eb.panic_unwind.2c8f5aefaa401768-cgu.0.rcgu.o
  INFO rustc_codegen_llvm::back::lto running thin lto passes over addr2line-25929983526f04fa.addr2line.c0ce80aede3d4387-cgu.0.rcgu.o
  INFO rustc_codegen_llvm::back::lto running thin lto passes over gimli-45b43a86c98f869a.gimli.4bcf315d396003be-cgu.0.rcgu.o
  INFO rustc_codegen_llvm::back::lto running thin lto passes over alloc-63de78ca4b0f7b13.alloc.c8499e84c8ebed9c-cgu.0.rcgu.o
  INFO rustc_codegen_llvm::back::lto running thin lto passes over core-0b74e43f28b113df.core.65ad41b0d205847a-cgu.0.rcgu.o
  INFO rustc_codegen_llvm::back::lto running thin lto passes over std-97ad18f5ff73ac59.std.eb0a984909e3e9db-cgu.0.rcgu.o

The cause for this is that we don't load WorkProducts for upstream modules before starting ThinLTO and don't track if the pre-lto module was unchanged and thus don't know what artifacts we can copy.

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-LLVMArea: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues.A-LTOArea: Link-time optimization (LTO)A-incr-compArea: Incremental compilationC-bugCategory: This is a bug.needs-triageThis issue may need triage. Remove it if it has been sufficiently triaged.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions