This revision was automatically updated to reflect the committed changes. Closed by commit rG6950db36d33d: The wrong placement of add pass with optimizations led to -funique-internal… (authored by tmsriram). Herald added a project: clang. Herald added a subscriber: cfe-commits.
Changed prior to commit: https://reviews.llvm.org/D87921?vs=292852&id=293208#toc Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D87921/new/ https://reviews.llvm.org/D87921 Files: clang/lib/CodeGen/BackendUtil.cpp clang/test/CodeGen/unique-internal-linkage-names.cpp Index: clang/test/CodeGen/unique-internal-linkage-names.cpp =================================================================== --- clang/test/CodeGen/unique-internal-linkage-names.cpp +++ clang/test/CodeGen/unique-internal-linkage-names.cpp @@ -1,8 +1,10 @@ // 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++ -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 +// 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 static int glob; static int foo() { @@ -59,3 +61,7 @@ // 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]+}} Index: clang/lib/CodeGen/BackendUtil.cpp =================================================================== --- clang/lib/CodeGen/BackendUtil.cpp +++ clang/lib/CodeGen/BackendUtil.cpp @@ -1262,12 +1262,6 @@ 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()); @@ -1363,12 +1357,6 @@ 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); @@ -1385,6 +1373,11 @@ } } + // 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());
Index: clang/test/CodeGen/unique-internal-linkage-names.cpp =================================================================== --- clang/test/CodeGen/unique-internal-linkage-names.cpp +++ clang/test/CodeGen/unique-internal-linkage-names.cpp @@ -1,8 +1,10 @@ // 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++ -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 +// 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 static int glob; static int foo() { @@ -59,3 +61,7 @@ // 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]+}} Index: clang/lib/CodeGen/BackendUtil.cpp =================================================================== --- clang/lib/CodeGen/BackendUtil.cpp +++ clang/lib/CodeGen/BackendUtil.cpp @@ -1262,12 +1262,6 @@ 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()); @@ -1363,12 +1357,6 @@ 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); @@ -1385,6 +1373,11 @@ } } + // 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());
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits