n3v3rm03 via llvm-dev
2019-Jan-18 10:57 UTC
[llvm-dev] Can't find symbol from llvm backend
Hi, I am new to llvm.
I create a global variable called "test_llvm_var" in the front end
function
pass like this:
new GlobalVariable(*m, tmp->getType(), true,
llvm::GlobalValue::ExternalLinkage, tmp, "test_llvm_var");
where tmp is a function.
Then I tried to access this global variable in the back end
MachineFunctionPass like this:
MCContext& MCC = MF.getContext();
MCSymbol* MCS = MCC.lookupSymbol("test_llvm_var");
if (MCS == NULL) {
errs() << ">>> MCSymbol is null\n";
}
else {
MCS->dump();
}
(MF is a MachineFunction).
However I always get MCS==NULL, there is no symbol called test_llvm_var in
the backend.
Am I doing something wrong? What I would like to do is to modify the global
variable's value from the backend pass.
Any help would be appreciated.
Thank you!
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
<http://lists.llvm.org/pipermail/llvm-dev/attachments/20190118/348aad8e/attachment.html>
Do you have a use of the new variable as well? If not, it might be optimized
out between the point where you create it and your MachineFunction pass.
--paulr
From: llvm-dev [mailto:llvm-dev-bounces at lists.llvm.org] On Behalf Of n3v3rm03
via llvm-dev
Sent: Friday, January 18, 2019 5:57 AM
To: llvm-dev at lists.llvm.org
Subject: [llvm-dev] Can't find symbol from llvm backend
Hi, I am new to llvm.
I create a global variable called "test_llvm_var" in the front end
function pass like this:
new GlobalVariable(*m, tmp->getType(), true,
llvm::GlobalValue::ExternalLinkage, tmp, "test_llvm_var");
where tmp is a function.
Then I tried to access this global variable in the back end MachineFunctionPass
like this:
MCContext& MCC = MF.getContext();
MCSymbol* MCS = MCC.lookupSymbol("test_llvm_var");
if (MCS == NULL) {
errs() << ">>> MCSymbol is null\n";
}
else {
MCS->dump();
}
(MF is a MachineFunction).
However I always get MCS==NULL, there is no symbol called test_llvm_var in the
backend.
Am I doing something wrong? What I would like to do is to modify the global
variable's value from the backend pass.
Any help would be appreciated.
Thank you!
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
<http://lists.llvm.org/pipermail/llvm-dev/attachments/20190118/190931f1/attachment-0001.html>
n3v3rm03 via llvm-dev
2019-Jan-19 06:52 UTC
[llvm-dev] Can't find symbol from llvm backend
No, I don't. But I’m sure it is not optimized because I can see this variable in the final binary file emitted. Do you mean if I don’t refer to this variable in the front end, then I can’t see it in the backend? (although it’s in the final binary file) Thank you! 2019年1月19日(土) 2:00 <paul.robinson at sony.com>:> Do you have a use of the new variable as well? If not, it might be > optimized out between the point where you create it and your > MachineFunction pass. > > --paulr > > > > *From:* llvm-dev [mailto:llvm-dev-bounces at lists.llvm.org] *On Behalf Of *n3v3rm03 > via llvm-dev > *Sent:* Friday, January 18, 2019 5:57 AM > *To:* llvm-dev at lists.llvm.org > *Subject:* [llvm-dev] Can't find symbol from llvm backend > > > > Hi, I am new to llvm. > > I create a global variable called "test_llvm_var" in the front end > function pass like this: > > > > new GlobalVariable(*m, tmp->getType(), true, > llvm::GlobalValue::ExternalLinkage, tmp, "test_llvm_var"); > > > > where tmp is a function. > > > > Then I tried to access this global variable in the back end > MachineFunctionPass like this: > > > > MCContext& MCC = MF.getContext(); > MCSymbol* MCS = MCC.lookupSymbol("test_llvm_var"); > if (MCS == NULL) { > errs() << ">>> MCSymbol is null\n"; > } > else { > MCS->dump(); > } > > > > (MF is a MachineFunction). > > > > However I always get MCS==NULL, there is no symbol called test_llvm_var in > the backend. > > > > Am I doing something wrong? What I would like to do is to modify the > global variable's value from the backend pass. > > > > Any help would be appreciated. > > Thank you! >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20190119/9b0ae764/attachment.html>