[PATCH] D85597: [PGO] Delete dead comdat renaming code related to GlobalAlias. NFC
Fangrui Song via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Sat Aug 8 21:23:30 PDT 2020
MaskRay created this revision.
MaskRay added reviewers: davidxl, xur.
Herald added subscribers: llvm-commits, hiraditya.
Herald added a project: LLVM.
MaskRay requested review of this revision.
A GlobalAlias is an address-taken user of its aliased function.
canRenameComdatFunc has excluded such cases.
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D85597
Files:
llvm/lib/Transforms/Instrumentation/PGOInstrumentation.cpp
llvm/test/Transforms/PGOProfile/comdat_rename.ll
Index: llvm/test/Transforms/PGOProfile/comdat_rename.ll
===================================================================
--- llvm/test/Transforms/PGOProfile/comdat_rename.ll
+++ llvm/test/Transforms/PGOProfile/comdat_rename.ll
@@ -10,6 +10,14 @@
ret void
}
+; Not rename Comdat with an alias (an alias is an address-taken user).
+$f_with_alias = comdat any
+; CHECK: $f_with_alias = comdat any
+define linkonce_odr void @f_with_alias() comdat {
+ ret void
+}
+ at f_alias = alias void (), void ()* @f_with_alias
+
; Not rename Comdat with right linkage.
$nf = comdat any
; CHECK: $nf = comdat any
Index: llvm/lib/Transforms/Instrumentation/PGOInstrumentation.cpp
===================================================================
--- llvm/lib/Transforms/Instrumentation/PGOInstrumentation.cpp
+++ llvm/lib/Transforms/Instrumentation/PGOInstrumentation.cpp
@@ -693,7 +693,7 @@
return false;
// FIXME: Current only handle those Comdat groups that only containing one
- // function and function aliases.
+ // function.
// (1) For a Comdat group containing multiple functions, we need to have a
// unique postfix based on the hashes for each function. There is a
// non-trivial code refactoring to do this efficiently.
@@ -701,8 +701,7 @@
// group including global vars.
Comdat *C = F.getComdat();
for (auto &&CM : make_range(ComdatMembers.equal_range(C))) {
- if (dyn_cast<GlobalAlias>(CM.second))
- continue;
+ assert(!isa<GlobalAlias>(CM.second));
Function *FM = dyn_cast<Function>(CM.second);
if (FM != &F)
return false;
@@ -742,18 +741,8 @@
NewComdat->setSelectionKind(OrigComdat->getSelectionKind());
for (auto &&CM : make_range(ComdatMembers.equal_range(OrigComdat))) {
- if (GlobalAlias *GA = dyn_cast<GlobalAlias>(CM.second)) {
- // For aliases, change the name directly.
- assert(dyn_cast<Function>(GA->getAliasee()->stripPointerCasts()) == &F);
- std::string OrigGAName = GA->getName().str();
- GA->setName(Twine(GA->getName() + "." + Twine(FunctionHash)));
- GlobalAlias::create(GlobalValue::WeakAnyLinkage, OrigGAName, GA);
- continue;
- }
// Must be a function.
- Function *CF = dyn_cast<Function>(CM.second);
- assert(CF);
- CF->setComdat(NewComdat);
+ cast<Function>(CM.second)->setComdat(NewComdat);
}
}
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D85597.284166.patch
Type: text/x-patch
Size: 2353 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200809/06c530d9/attachment.bin>
More information about the llvm-commits
mailing list