[PATCH] D71261: [ThinLTO] upgrade IR symtab in parallel ahead of time

Fangrui Song via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Sun May 17 11:11:11 PDT 2020


MaskRay added a comment.

Just to confirm. @ychen Do you have lots of bitcode files with different versions which require upgrade in LTO?

I tested with an internal program and there seems to be 1% improvement on time, minor cost on memory usage. I need to collect a bit more applications for benchmark.
Loading LazyObjFile and ArchiveFile eagerly may potentially accelerate "Parse input files". (Our Bazel builds use very file archives (we don't use `--nostart_end_lib`))
There is a proposal in 2019-04 http://lists.llvm.org/pipermail/llvm-dev/2019-April/131902.html making the scheme more generic.

@ruiu Is this proposal unfinished yet? I think we can at least add an option to opt in that mode (parsing LazyObjFile (and probably ArchiveFile) eagerly). This bitcode parsing may need a dependency on that mode.



================
Comment at: lld/ELF/InputFiles.cpp:510
+    driver->addFile(path->first, /*withLOption=*/path->second);
   else
     error(toString(f) +
----------------
Why is the change?


================
Comment at: lld/ELF/InputFiles.cpp:1527
 
+  if (config->dependentLibraries && irSymTabCache) {
+    std::vector<std::string> filesToUpgrade;
----------------
This logic requires a test.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D71261/new/

https://reviews.llvm.org/D71261





More information about the llvm-commits mailing list