From 9393894331e9eba97bdafe92454af74550baf6d3 Mon Sep 17 00:00:00 2001 From: Zequan Wu Date: Wed, 23 Jun 2021 19:24:05 -0700 Subject: [PATCH] Revert "ThinLTO: Fix inline assembly references to static functions with CFI" This casues compiler crash: Assertion `materialized_use_empty() && "Uses remain when a value is destroyed!"' This reverts commit e3d24b45b8f808ec66213e134c4ceda5202fbe31. --- .../Transforms/IPO/ThinLTOBitcodeWriter.cpp | 10 ---------- .../cfi-icall-static-inline-asm.ll | 19 ------------------- 2 files changed, 29 deletions(-) delete mode 100644 llvm/test/Transforms/ThinLTOBitcodeWriter/cfi-icall-static-inline-asm.ll diff --git a/llvm/lib/Transforms/IPO/ThinLTOBitcodeWriter.cpp b/llvm/lib/Transforms/IPO/ThinLTOBitcodeWriter.cpp index 009b6e34b783..37329b489555 100644 --- a/llvm/lib/Transforms/IPO/ThinLTOBitcodeWriter.cpp +++ b/llvm/lib/Transforms/IPO/ThinLTOBitcodeWriter.cpp @@ -55,7 +55,6 @@ void promoteInternals(Module &ExportM, Module &ImportM, StringRef ModuleId, } } - std::string OldName = Name.str(); std::string NewName = (Name + ModuleId).str(); if (const auto *C = ExportGV.getComdat()) @@ -70,15 +69,6 @@ void promoteInternals(Module &ExportM, Module &ImportM, StringRef ModuleId, ImportGV->setName(NewName); ImportGV->setVisibility(GlobalValue::HiddenVisibility); } - - if (Function *F = dyn_cast(&ExportGV)) { - // Create a local alias with the original name to avoid breaking - // references from inline assembly. - GlobalAlias *A = GlobalAlias::create( - F->getValueType(), F->getAddressSpace(), GlobalValue::InternalLinkage, - OldName, F, &ExportM); - appendToCompilerUsed(ExportM, A); - } } if (!RenamedComdats.empty()) diff --git a/llvm/test/Transforms/ThinLTOBitcodeWriter/cfi-icall-static-inline-asm.ll b/llvm/test/Transforms/ThinLTOBitcodeWriter/cfi-icall-static-inline-asm.ll deleted file mode 100644 index 70f5322faa52..000000000000 --- a/llvm/test/Transforms/ThinLTOBitcodeWriter/cfi-icall-static-inline-asm.ll +++ /dev/null @@ -1,19 +0,0 @@ -; RUN: opt -thinlto-bc -thinlto-split-lto-unit -o - %s | llvm-modextract -b -n 0 -o - | llvm-dis | FileCheck %s - -; CHECK: @a = internal alias {{.*}}@a.[[HASH:[0-9a-f]+]] - -define void @b() { - %f = alloca void ()*, align 8 - ; CHECK: store{{.*}} @a.[[HASH]],{{.*}} %f - store void ()* @a, void ()** %f, align 8 - ; CHECK: %1 = call void ()* asm sideeffect "leaq a(%rip) - %1 = call void ()* asm sideeffect "leaq a(%rip), $0\0A\09", "=r,~{dirflag},~{fpsr},~{flags}"() - ret void -} - -; CHECK: define{{.*}} @a.[[HASH]](){{.*}} !type -define internal void @a() !type !0 { - ret void -} - -!0 = !{i64 0, !"typeid1"}