Change the return type of UpgradeARCRuntimeCalls to void
Nothing is using the function return. llvm-svn: 368367
This commit is contained in:
parent
5b9508396c
commit
3e61ed0299
|
@ -60,7 +60,7 @@ namespace llvm {
|
||||||
|
|
||||||
/// Convert calls to ARC runtime functions to intrinsic calls if the bitcode
|
/// Convert calls to ARC runtime functions to intrinsic calls if the bitcode
|
||||||
/// has the arm64 retainAutoreleasedReturnValue marker.
|
/// has the arm64 retainAutoreleasedReturnValue marker.
|
||||||
bool UpgradeARCRuntimeCalls(Module &M);
|
void UpgradeARCRuntimeCalls(Module &M);
|
||||||
|
|
||||||
void UpgradeSectionAttributes(Module &M);
|
void UpgradeSectionAttributes(Module &M);
|
||||||
|
|
||||||
|
|
|
@ -3854,28 +3854,26 @@ bool llvm::UpgradeRetainReleaseMarker(Module &M) {
|
||||||
return Changed;
|
return Changed;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool llvm::UpgradeARCRuntimeCalls(Module &M) {
|
void llvm::UpgradeARCRuntimeCalls(Module &M) {
|
||||||
auto UpgradeToIntrinsic = [&](const char *OldFunc,
|
auto UpgradeToIntrinsic = [&](const char *OldFunc,
|
||||||
llvm::Intrinsic::ID IntrinsicFunc) {
|
llvm::Intrinsic::ID IntrinsicFunc) {
|
||||||
Function *Fn = M.getFunction(OldFunc);
|
Function *Fn = M.getFunction(OldFunc);
|
||||||
|
|
||||||
if (!Fn)
|
if (!Fn)
|
||||||
return false;
|
return;
|
||||||
|
|
||||||
Function *NewFn = llvm::Intrinsic::getDeclaration(&M, IntrinsicFunc);
|
Function *NewFn = llvm::Intrinsic::getDeclaration(&M, IntrinsicFunc);
|
||||||
Fn->replaceAllUsesWith(NewFn);
|
Fn->replaceAllUsesWith(NewFn);
|
||||||
Fn->eraseFromParent();
|
Fn->eraseFromParent();
|
||||||
return true;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
// Unconditionally convert "clang.arc.use" to "llvm.objc.clang.arc.use".
|
// Unconditionally convert "clang.arc.use" to "llvm.objc.clang.arc.use".
|
||||||
bool Changed =
|
UpgradeToIntrinsic("clang.arc.use", llvm::Intrinsic::objc_clang_arc_use);
|
||||||
UpgradeToIntrinsic("clang.arc.use", llvm::Intrinsic::objc_clang_arc_use);
|
|
||||||
|
|
||||||
// Return if the bitcode doesn't have the arm64 retainAutoreleasedReturnValue
|
// Return if the bitcode doesn't have the arm64 retainAutoreleasedReturnValue
|
||||||
// marker. We don't know for sure that it was compiled with ARC in that case.
|
// marker. We don't know for sure that it was compiled with ARC in that case.
|
||||||
if (!M.getModuleFlag("clang.arc.retainAutoreleasedReturnValueMarker"))
|
if (!M.getModuleFlag("clang.arc.retainAutoreleasedReturnValueMarker"))
|
||||||
return false;
|
return;
|
||||||
|
|
||||||
std::pair<const char *, llvm::Intrinsic::ID> RuntimeFuncs[] = {
|
std::pair<const char *, llvm::Intrinsic::ID> RuntimeFuncs[] = {
|
||||||
{"objc_autorelease", llvm::Intrinsic::objc_autorelease},
|
{"objc_autorelease", llvm::Intrinsic::objc_autorelease},
|
||||||
|
@ -3917,9 +3915,7 @@ bool llvm::UpgradeARCRuntimeCalls(Module &M) {
|
||||||
llvm::Intrinsic::objc_arc_annotation_bottomup_bbend}};
|
llvm::Intrinsic::objc_arc_annotation_bottomup_bbend}};
|
||||||
|
|
||||||
for (auto &I : RuntimeFuncs)
|
for (auto &I : RuntimeFuncs)
|
||||||
Changed |= UpgradeToIntrinsic(I.first, I.second);
|
UpgradeToIntrinsic(I.first, I.second);
|
||||||
|
|
||||||
return Changed;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool llvm::UpgradeModuleFlags(Module &M) {
|
bool llvm::UpgradeModuleFlags(Module &M) {
|
||||||
|
|
Loading…
Reference in New Issue