rust-lang / rust-lang/rust

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

Open
#158,955 5 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

A-incr-comp A-LLVM A-LTO C-bug needs-triage
Dominant language
Rust
Stars
119k
Forks
16.1k
PR merge metrics
PR metrics pending

Description

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.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start in the rustc_codegen_llvm:🔙:lto entry points shown by the logs and reproduce the issue with incremental compilation, -Clto=thin, and RUSTC_LOG=rustc_codegen_llvm::back. Trace how unchanged upstream CGUs are checked against the ThinLTO cache; done means those CGUs are reused rather than recompiled on a subsequent compilation.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
compilers
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.