[llvm] [llvm][EmbedBitcodePass] Pre-commit test for using WPD with FatLTO (PR #139998)

Paul Kirth via llvm-commits llvm-commits at lists.llvm.org
Thu May 29 10:45:03 PDT 2025


https://github.com/ilovepi updated https://github.com/llvm/llvm-project/pull/139998

>From d46e516513e5ad13c9d77d1f34ac0dc37f500417 Mon Sep 17 00:00:00 2001
From: Paul Kirth <paulkirth at google.com>
Date: Wed, 14 May 2025 20:37:58 -0700
Subject: [PATCH] [llvm][EmbedBitcodePass] Pre-commit test for using WPD with
 FatLTO

This is a reduced test case from #139440.
---
 .../test/Transforms/EmbedBitcode/embed-wpd.ll | 32 +++++++++++++++++++
 1 file changed, 32 insertions(+)
 create mode 100644 llvm/test/Transforms/EmbedBitcode/embed-wpd.ll

diff --git a/llvm/test/Transforms/EmbedBitcode/embed-wpd.ll b/llvm/test/Transforms/EmbedBitcode/embed-wpd.ll
new file mode 100644
index 0000000000000..f1f7712f54039
--- /dev/null
+++ b/llvm/test/Transforms/EmbedBitcode/embed-wpd.ll
@@ -0,0 +1,32 @@
+; RUN: opt --mtriple x86_64-unknown-linux-gnu < %s -passes="embed-bitcode<thinlto>" -S | FileCheck %s
+
+; CHECK-NOT: $_ZTV3Foo = comdat any
+$_ZTV3Foo = comdat any
+
+$_ZTI3Foo = comdat any
+
+; CHECK: @_ZTV3Foo = external hidden unnamed_addr constant { [5 x ptr] }, align 8
+; CHECK: @_ZTI3Foo = linkonce_odr hidden constant { ptr, ptr, ptr } { ptr getelementptr inbounds (ptr, ptr @_ZTVN10__cxxabiv120__si_class_type_infoE, i64 2), ptr @_ZTS3Foo, ptr @_ZTISt13runtime_error }, comdat, align 8
+; CHECK: @llvm.embedded.object = private constant {{.*}}, section ".llvm.lto", align 1
+; CHECK: @llvm.compiler.used = appending global [1 x ptr] [ptr @llvm.embedded.object], section "llvm.metadata"
+ at _ZTV3Foo = linkonce_odr hidden unnamed_addr constant { [5 x ptr] } { [5 x ptr] [ptr null, ptr @_ZTI3Foo, ptr @_ZN3FooD2Ev, ptr @_ZN3FooD0Ev, ptr @_ZNKSt13runtime_error4whatEv] }, comdat, align 8, !type !0, !type !1, !type !2, !type !3, !type !4, !type !5
+ at _ZTI3Foo = linkonce_odr hidden constant { ptr, ptr, ptr } { ptr getelementptr inbounds (ptr, ptr @_ZTVN10__cxxabiv120__si_class_type_infoE, i64 2), ptr @_ZTS3Foo, ptr @_ZTISt13runtime_error }, comdat, align 8
+ at _ZTVN10__cxxabiv120__si_class_type_infoE = external global [0 x ptr]
+ at _ZTS3Foo = constant [5 x i8] c"3Foo\00"
+ at _ZTISt13runtime_error = external constant ptr
+
+declare void @_ZN3FooD2Ev()
+
+declare void @_ZN3FooD0Ev()
+
+declare ptr @_ZNKSt13runtime_error4whatEv()
+
+!llvm.module.flags = !{!6}
+
+!0 = !{i64 16, !"_ZTS3Foo"}
+!1 = !{i64 32, !"_ZTSM3FooKDoFPKcvE.virtual"}
+!2 = !{i64 16, !"_ZTSSt13runtime_error"}
+!3 = !{i64 32, !"_ZTSMSt13runtime_errorKDoFPKcvE.virtual"}
+!4 = !{i64 16, !"_ZTSSt9exception"}
+!5 = !{i64 32, !"_ZTSMSt9exceptionKDoFPKcvE.virtual"}
+!6 = !{i32 1, !"EnableSplitLTOUnit", i32 1}



More information about the llvm-commits mailing list