From b89059a31347dd09b55a96b99b3dbe38d7749908 Mon Sep 17 00:00:00 2001 From: Sriraman Tallam Date: Tue, 22 Sep 2020 12:12:21 -0700 Subject: [PATCH] Revert "The wrong placement of add pass with optimizations led to -funique-internal-linkage-names being disabled." This reverts commit 6950db36d33d85d18e3241ab6c87494c05ebe0fb. --- clang/lib/CodeGen/BackendUtil.cpp | 17 ++++++++++++----- clang/test/CodeGen/unique-internal-linkage-names.cpp | 10 ++-------- 2 files changed, 14 insertions(+), 13 deletions(-) diff --git a/clang/lib/CodeGen/BackendUtil.cpp b/clang/lib/CodeGen/BackendUtil.cpp index 07c4762..01f7e23 100644 --- a/clang/lib/CodeGen/BackendUtil.cpp +++ b/clang/lib/CodeGen/BackendUtil.cpp @@ -1262,6 +1262,12 @@ void EmitAssemblyHelper::EmitAssemblyWithNewPassManager( if (LangOpts.Sanitize.has(SanitizerKind::LocalBounds)) MPM.addPass(createModuleToFunctionPassAdaptor(BoundsCheckingPass())); + // Add UniqueInternalLinkageNames Pass which renames internal linkage + // symbols with unique names. + if (CodeGenOpts.UniqueInternalLinkageNames) { + MPM.addPass(UniqueInternalLinkageNamesPass()); + } + // Lastly, add semantically necessary passes for LTO. if (IsLTO || IsThinLTO) { MPM.addPass(CanonicalizeAliasesPass()); @@ -1357,6 +1363,12 @@ void EmitAssemblyHelper::EmitAssemblyWithNewPassManager( MPM.addPass(InstrProfiling(*Options, false)); }); + // Add UniqueInternalLinkageNames Pass which renames internal linkage + // symbols with unique names. + if (CodeGenOpts.UniqueInternalLinkageNames) { + MPM.addPass(UniqueInternalLinkageNamesPass()); + } + if (IsThinLTO) { MPM = PB.buildThinLTOPreLinkDefaultPipeline( Level, CodeGenOpts.DebugPassManager); @@ -1373,11 +1385,6 @@ void EmitAssemblyHelper::EmitAssemblyWithNewPassManager( } } - // Add UniqueInternalLinkageNames Pass which renames internal linkage - // symbols with unique names. - if (CodeGenOpts.UniqueInternalLinkageNames) - MPM.addPass(UniqueInternalLinkageNamesPass()); - if (CodeGenOpts.MemProf) { MPM.addPass(createModuleToFunctionPassAdaptor(MemProfilerPass())); MPM.addPass(ModuleMemProfilerPass()); diff --git a/clang/test/CodeGen/unique-internal-linkage-names.cpp b/clang/test/CodeGen/unique-internal-linkage-names.cpp index 6bef338..271d30e 100644 --- a/clang/test/CodeGen/unique-internal-linkage-names.cpp +++ b/clang/test/CodeGen/unique-internal-linkage-names.cpp @@ -1,10 +1,8 @@ // This test checks if internal linkage symbols get unique names with // -funique-internal-linkage-names option. // RUN: %clang_cc1 -triple x86_64 -x c++ -S -emit-llvm -o - < %s | FileCheck %s --check-prefix=PLAIN -// RUN: %clang_cc1 -triple x86_64 -x c++ -O0 -S -emit-llvm -funique-internal-linkage-names -o - < %s | FileCheck %s --check-prefix=UNIQUE -// RUN: %clang_cc1 -triple x86_64 -x c++ -O1 -S -emit-llvm -funique-internal-linkage-names -o - < %s | FileCheck %s --check-prefix=UNIQUEO1 -// RUN: %clang_cc1 -triple x86_64 -x c++ -O0 -S -emit-llvm -fexperimental-new-pass-manager -funique-internal-linkage-names -o - < %s | FileCheck %s --check-prefix=UNIQUE -// RUN: %clang_cc1 -triple x86_64 -x c++ -O1 -S -emit-llvm -fexperimental-new-pass-manager -funique-internal-linkage-names -o - < %s | FileCheck %s --check-prefix=UNIQUEO1 +// RUN: %clang_cc1 -triple x86_64 -x c++ -S -emit-llvm -funique-internal-linkage-names -o - < %s | FileCheck %s --check-prefix=UNIQUE +// RUN: %clang_cc1 -triple x86_64 -x c++ -S -emit-llvm -fexperimental-new-pass-manager -funique-internal-linkage-names -o - < %s | FileCheck %s --check-prefix=UNIQUE static int glob; static int foo() { @@ -61,7 +59,3 @@ int mver_call() { // UNIQUE: define weak_odr i32 ()* @_ZL4mverv.resolver() // UNIQUE: define internal i32 @_ZL4mverv.{{[0-9a-f]+}}() // UNIQUE: define internal i32 @_ZL4mverv.sse4.2.{{[0-9a-f]+}} -// UNIQUEO1: define internal i32 @_ZL3foov.{{[0-9a-f]+}}() -// UNIQUEO1: define weak_odr i32 ()* @_ZL4mverv.resolver() -// UNIQUEO1: define internal i32 @_ZL4mverv.{{[0-9a-f]+}}() -// UNIQUEO1: define internal i32 @_ZL4mverv.sse4.2.{{[0-9a-f]+}} -- 2.7.4