From 0247c6a09d5c97cae80d3d98543b6be39d0111a5 Mon Sep 17 00:00:00 2001 From: Michael Woerister Date: Tue, 25 Oct 2022 11:13:29 +0200 Subject: [PATCH] Experiment: Don't merge vtables. --- compiler/rustc_codegen_llvm/src/consts.rs | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/compiler/rustc_codegen_llvm/src/consts.rs b/compiler/rustc_codegen_llvm/src/consts.rs index dd3c43ba5ca7c..9c69c358f33f6 100644 --- a/compiler/rustc_codegen_llvm/src/consts.rs +++ b/compiler/rustc_codegen_llvm/src/consts.rs @@ -241,7 +241,14 @@ impl<'ll> CodegenCx<'ll, '_> { }; llvm::LLVMSetInitializer(gv, cv); set_global_alignment(self, gv, align); - llvm::SetUnnamedAddress(gv, llvm::UnnamedAddr::Global); + + // Experiment: What's the impact of making vtables unmergable? + if kind == Some("vtable") { + llvm::SetUnnamedAddress(gv, llvm::UnnamedAddr::No); + } else { + llvm::SetUnnamedAddress(gv, llvm::UnnamedAddr::Global); + } + gv } }