diff options
author | mingmingl <mingmingl@google.com> | 2025-02-04 11:11:14 -0800 |
---|---|---|
committer | mingmingl <mingmingl@google.com> | 2025-02-04 11:11:14 -0800 |
commit | e91747a92d27ecf799427bf563f9f64f7c4d2447 (patch) | |
tree | 7aa5a8a9170deec293e152bdf2be804399dcd612 /lld/ELF/Writer.cpp | |
parent | 3a8d9337d816aef41c3ca1484be8b933a71a3c46 (diff) | |
parent | 53d6e59b594639417cdbfcfa2d18cea64acb4009 (diff) | |
download | llvm-users/mingmingl-llvm/spr/sdpglobalvariable.zip llvm-users/mingmingl-llvm/spr/sdpglobalvariable.tar.gz llvm-users/mingmingl-llvm/spr/sdpglobalvariable.tar.bz2 |
Merge branch 'main' into users/mingmingl-llvm/spr/sdpglobalvariableusers/mingmingl-llvm/spr/sdpglobalvariable
Diffstat (limited to 'lld/ELF/Writer.cpp')
-rw-r--r-- | lld/ELF/Writer.cpp | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/lld/ELF/Writer.cpp b/lld/ELF/Writer.cpp index 3ba1cdb..4907705 100644 --- a/lld/ELF/Writer.cpp +++ b/lld/ELF/Writer.cpp @@ -9,6 +9,7 @@ #include "Writer.h" #include "AArch64ErrataFix.h" #include "ARMErrataFix.h" +#include "BPSectionOrderer.h" #include "CallGraphSort.h" #include "Config.h" #include "InputFiles.h" @@ -1080,8 +1081,18 @@ static void maybeShuffle(Ctx &ctx, // that don't appear in the order file. static DenseMap<const InputSectionBase *, int> buildSectionOrder(Ctx &ctx) { DenseMap<const InputSectionBase *, int> sectionOrder; - if (!ctx.arg.callGraphProfile.empty()) + if (ctx.arg.bpStartupFunctionSort || ctx.arg.bpFunctionOrderForCompression || + ctx.arg.bpDataOrderForCompression) { + TimeTraceScope timeScope("Balanced Partitioning Section Orderer"); + sectionOrder = runBalancedPartitioning( + ctx, ctx.arg.bpStartupFunctionSort ? ctx.arg.irpgoProfilePath : "", + ctx.arg.bpFunctionOrderForCompression, + ctx.arg.bpDataOrderForCompression, + ctx.arg.bpCompressionSortStartupFunctions, + ctx.arg.bpVerboseSectionOrderer); + } else if (!ctx.arg.callGraphProfile.empty()) { sectionOrder = computeCallGraphProfileOrder(ctx); + } if (ctx.arg.symbolOrderingFile.empty()) return sectionOrder; |