[llvm] [LTO] Reset DiscardValueNames in optimize(). (PR #78705)
Florian Hahn via llvm-commits
llvm-commits at lists.llvm.org
Tue Apr 30 03:45:08 PDT 2024
https://github.com/fhahn updated https://github.com/llvm/llvm-project/pull/78705
>From e13d02305c60c89c30bd100cbd9cf56bad31dade Mon Sep 17 00:00:00 2001
From: Florian Hahn <flo at fhahn.com>
Date: Fri, 5 Jan 2024 22:01:21 +0000
Subject: [PATCH] [LTO] Reset DiscardValueNames in optimize().
libLTO parses options late, so re-set them in optimize(). When
LTOCodeGenerator's constructor executes, the options haven't been passed
by the linker to libLTO yet.
Note that we keep the value name of `%add = add..` because when the
module is imported, DiscardValueNames is still set to false (the default
when building wiht assertions).
I tried to improve this in libLTO, but I am not sure if there's a
suitable callback when all options have been set.
---
llvm/lib/LTO/LTOCodeGenerator.cpp | 3 +++
llvm/test/tools/lto/discard-value-names.ll | 3 +--
2 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/llvm/lib/LTO/LTOCodeGenerator.cpp b/llvm/lib/LTO/LTOCodeGenerator.cpp
index 19b6f7e7879238..0611099c4690db 100644
--- a/llvm/lib/LTO/LTOCodeGenerator.cpp
+++ b/llvm/lib/LTO/LTOCodeGenerator.cpp
@@ -572,6 +572,9 @@ bool LTOCodeGenerator::optimize() {
if (!this->determineTarget())
return false;
+ // libLTO parses options late, so re-set them here.
+ Context.setDiscardValueNames(LTODiscardValueNames);
+
auto DiagFileOrErr = lto::setupLLVMOptimizationRemarks(
Context, RemarksFilename, RemarksPasses, RemarksFormat,
RemarksWithHotness, RemarksHotnessThreshold);
diff --git a/llvm/test/tools/lto/discard-value-names.ll b/llvm/test/tools/lto/discard-value-names.ll
index 723b0701ae22ce..04d25eaf6067c5 100644
--- a/llvm/test/tools/lto/discard-value-names.ll
+++ b/llvm/test/tools/lto/discard-value-names.ll
@@ -7,11 +7,10 @@
; The test requires asserts, as it depends on the default value for
; -lto-discard-value-names at the moment.
-; FIXME: -lto-discard-value-names is ignored at the moment.
; REQUIRES: asserts
-; DISCARD: %cmp.i = icmp
+; DISCARD: %{{[0-9]+}} = icmp
; DISCARD: %add = add i32
; KEEP: %cmp.i = icmp
More information about the llvm-commits
mailing list