[llvm-dev] Can't find symbol from llvm backend

n3v3rm03 via llvm-dev llvm-dev at lists.llvm.org
Fri Jan 18 23:02:20 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!

On Sat, Jan 19, 2019 at 3:52 PM n3v3rm03 <n3v3rm03 at gmail.com> wrote:

> 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/fd29b51a/attachment.html>


More information about the llvm-dev mailing list