[llvm-dev] Can't find symbol from llvm backend
n3v3rm03 via llvm-dev
llvm-dev at lists.llvm.org
Fri Jan 18 22:52:27 PST 2019
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>
More information about the llvm-dev
mailing list