[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