mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-23 03:02:36 +01:00
[PGO] Delete dead comdat renaming code related to GlobalAlias. NFC
A GlobalAlias is an address-taken user of its aliased function. canRenameComdatFunc has excluded such cases. Reviewed By: davidxl Differential Revision: https://reviews.llvm.org/D85597
This commit is contained in:
parent
072343a35a
commit
a32bcc8260
@ -693,7 +693,7 @@ static bool canRenameComdat(
|
||||
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 @@ static bool canRenameComdat(
|
||||
// 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 @@ void FuncPGOInstrumentation<Edge, BBInfo>::renameComdatFunction() {
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -10,6 +10,14 @@ define linkonce_odr void @f() comdat($f) {
|
||||
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
|
||||
}
|
||||
@f_alias = alias void (), void ()* @f_with_alias
|
||||
|
||||
; Not rename Comdat with right linkage.
|
||||
$nf = comdat any
|
||||
; CHECK: $nf = comdat any
|
||||
|
Loading…
Reference in New Issue
Block a user