[all-commits] [llvm/llvm-project] dc85d5: [CGData][ThinLTO] Global Outlining with Two-CodeGe...
Kyungwoo Lee via All-commits
all-commits at lists.llvm.org
Wed Oct 9 15:38:02 PDT 2024
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: dc85d5263ed5e416cb4ddf405611472f4ef12fd3
https://github.com/llvm/llvm-project/commit/dc85d5263ed5e416cb4ddf405611472f4ef12fd3
Author: Kyungwoo Lee <kyulee at meta.com>
Date: 2024-10-09 (Wed, 09 Oct 2024)
Changed paths:
M clang/lib/CodeGen/BackendUtil.cpp
M llvm/include/llvm/CGData/CodeGenData.h
M llvm/include/llvm/CGData/CodeGenDataReader.h
M llvm/include/llvm/LTO/LTO.h
M llvm/include/llvm/LTO/LTOBackend.h
M llvm/lib/CGData/CMakeLists.txt
M llvm/lib/CGData/CodeGenData.cpp
M llvm/lib/CGData/CodeGenDataReader.cpp
M llvm/lib/LTO/CMakeLists.txt
M llvm/lib/LTO/LTO.cpp
M llvm/lib/LTO/LTOBackend.cpp
A llvm/test/ThinLTO/AArch64/cgdata-two-rounds-caching.ll
A llvm/test/ThinLTO/AArch64/cgdata-two-rounds.ll
A llvm/test/ThinLTO/AArch64/lit.local.cfg
Log Message:
-----------
[CGData][ThinLTO] Global Outlining with Two-CodeGen Rounds (#90933)
This feature is enabled by `-codegen-data-thinlto-two-rounds`, which
effectively runs the `-codegen-data-generate` and `-codegen-data-use` in
two rounds to enable global outlining with ThinLTO.
1. The first round: Run both optimization + codegen with a scratch
output.
Before running codegen, we serialize the optimized bitcode modules to a
temporary path.
2. From the scratch object files, we merge them into the codegen data.
3. The second round: Read the optimized bitcode modules and start the
codegen only this time.
Using the codegen data, the machine outliner effectively performs the
global outlining.
Depends on #90934, #110461 and #110463.
This is a patch for
https://discourse.llvm.org/t/rfc-enhanced-machine-outliner-part-2-thinlto-nolto/78753.
To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications
More information about the All-commits
mailing list