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

via llvm-dev llvm-dev at lists.llvm.org
Fri Jan 18 09:00:30 PST 2019


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>


More information about the llvm-dev mailing list