mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-05-06 01:39:11 +00:00
Don't change the visibility when converting a definition to a declaration.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@242030 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
b3e72a7c9d
commit
94162a044b
@ -176,6 +176,7 @@ namespace {
|
|||||||
(void) llvm::createStraightLineStrengthReducePass();
|
(void) llvm::createStraightLineStrengthReducePass();
|
||||||
(void) llvm::createMemDerefPrinter();
|
(void) llvm::createMemDerefPrinter();
|
||||||
(void) llvm::createFloat2IntPass();
|
(void) llvm::createFloat2IntPass();
|
||||||
|
(void) llvm::createEliminateAvailableExternallyPass();
|
||||||
|
|
||||||
(void)new llvm::IntervalPartition();
|
(void)new llvm::IntervalPartition();
|
||||||
(void)new llvm::ScalarEvolution();
|
(void)new llvm::ScalarEvolution();
|
||||||
|
@ -67,7 +67,6 @@ bool EliminateAvailableExternally::runOnModule(Module &M) {
|
|||||||
}
|
}
|
||||||
I->removeDeadConstantUsers();
|
I->removeDeadConstantUsers();
|
||||||
I->setLinkage(GlobalValue::ExternalLinkage);
|
I->setLinkage(GlobalValue::ExternalLinkage);
|
||||||
I->setVisibility(GlobalValue::DefaultVisibility);
|
|
||||||
NumVariables++;
|
NumVariables++;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -78,7 +77,6 @@ bool EliminateAvailableExternally::runOnModule(Module &M) {
|
|||||||
if (!I->isDeclaration())
|
if (!I->isDeclaration())
|
||||||
// This will set the linkage to external
|
// This will set the linkage to external
|
||||||
I->deleteBody();
|
I->deleteBody();
|
||||||
I->setVisibility(GlobalValue::DefaultVisibility);
|
|
||||||
I->removeDeadConstantUsers();
|
I->removeDeadConstantUsers();
|
||||||
NumFunctions++;
|
NumFunctions++;
|
||||||
}
|
}
|
||||||
@ -91,7 +89,6 @@ bool EliminateAvailableExternally::runOnModule(Module &M) {
|
|||||||
I->setAliasee(nullptr);
|
I->setAliasee(nullptr);
|
||||||
I->removeDeadConstantUsers();
|
I->removeDeadConstantUsers();
|
||||||
I->setLinkage(GlobalValue::ExternalLinkage);
|
I->setLinkage(GlobalValue::ExternalLinkage);
|
||||||
I->setVisibility(GlobalValue::DefaultVisibility);
|
|
||||||
NumAliases++;
|
NumAliases++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -46,6 +46,7 @@ void llvm::initializeIPO(PassRegistry &Registry) {
|
|||||||
initializeStripDeadDebugInfoPass(Registry);
|
initializeStripDeadDebugInfoPass(Registry);
|
||||||
initializeStripNonDebugSymbolsPass(Registry);
|
initializeStripNonDebugSymbolsPass(Registry);
|
||||||
initializeBarrierNoopPass(Registry);
|
initializeBarrierNoopPass(Registry);
|
||||||
|
initializeEliminateAvailableExternallyPass(Registry);
|
||||||
}
|
}
|
||||||
|
|
||||||
void LLVMInitializeIPO(LLVMPassRegistryRef R) {
|
void LLVMInitializeIPO(LLVMPassRegistryRef R) {
|
||||||
|
11
test/Transforms/EliminateAvailableExternally/visibility.ll
Normal file
11
test/Transforms/EliminateAvailableExternally/visibility.ll
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
; RUN: opt -elim-avail-extern -S < %s | FileCheck %s
|
||||||
|
|
||||||
|
; CHECK: declare hidden void @f()
|
||||||
|
define available_externally hidden void @f() {
|
||||||
|
ret void
|
||||||
|
}
|
||||||
|
|
||||||
|
define void @g() {
|
||||||
|
call void @f()
|
||||||
|
ret void
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user