Thank you Mr. Tim. I was wondering if you can tell me in which file 'get()' is defined. I am having trouble using this function. For example if I write 'get(AArch64::LDRXui)' then there is an error generated which says: use of undeclared identifier 'get'. Thanks again !! On Fri, Oct 3, 2014 at 9:56 PM, Tim Northover <t.p.northover at gmail.com> wrote:> Hi Sachin, > > On 3 October 2014 13:24, sachin arora <sachin345678 at gmail.com> wrote: > > Thank you Mr. Tim. Is "AArch64" a namespace? Because when I tried > > "X86::MOV", it gave me an error saying that first define X86 namespace. > > Sorry if I sound stupid but I am new to LLVM. Thank you again. > > Yes, AArch64 is the namespace. X86 should work too. There are 2 > possible issues: most simply, you need to include X86InstrInfo.h > directly or indirectly for these enumerators to be defined; if that's > not it, you're probably getting an error because X86::MOV doesn't > exist as a single opcode. > > LLVM has many different MOV instructions to model x86's different > addressing modes, and you're going to have to find out which ones you > need to deal with by looking at their definitions in the .td files. > > Cheers. > > Tim. >-- Regards, Sachin -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20141008/ca04c7ea/attachment.html>
On 8 October 2014 10:18, sachin arora <sachin345678 at gmail.com> wrote:> Thank you Mr. Tim. I was wondering if you can tell me in which file 'get()' > is defined. I am having trouble using this function. For example if I write > 'get(AArch64::LDRXui)' then there is an error generated which says: use of > undeclared identifier 'get'.It's defined in the MCInstrInfo class, usually accessed via a TargetInstrInfo instance (so you often see "TII.get(Whatever)" if it's used outside a TargetInstrInfo subclass). Cheers. Tim.
Hello Mr. Tim, Thanks to you and others from 'llvmdev-list', I have successfully implemented the MachineFunctionPass. But when I examine the output using 'hexedit' I see that only some portion of the .text section is effected by my pass. I was expecting the pass to modify large portion of the .text section. Kindly tell me if a MachineFunctionPass runs only on some selected portions of the .text section. Is there a way to make it run on larger portion of the .text section? The skeleton of my code is: *bool MyPass::runOnMachineFunction(MachineFunction &FNC)for (MachineFunction::iterator MFN = FNC.begin(), End = FNC.end(); MFN != End; ++MFN) for (MachineBasicBlock::iterator I = MFN->begin(); I !MFN->end(); ) { MachineBasicBlock::iterator NewI std::next(I); **Do the Stuff* * I = NewI; } * On Wed, Oct 8, 2014 at 12:24 PM, sachin arora <sachin345678 at gmail.com> wrote:> Awesome. Thanks a lot :) > > On Wed, Oct 8, 2014 at 12:23 PM, Tim Northover <t.p.northover at gmail.com> > wrote: > >> On 8 October 2014 10:18, sachin arora <sachin345678 at gmail.com> wrote: >> > Thank you Mr. Tim. I was wondering if you can tell me in which file >> 'get()' >> > is defined. I am having trouble using this function. For example if I >> write >> > 'get(AArch64::LDRXui)' then there is an error generated which says: use >> of >> > undeclared identifier 'get'. >> >> It's defined in the MCInstrInfo class, usually accessed via a >> TargetInstrInfo instance (so you often see "TII.get(Whatever)" if it's >> used outside a TargetInstrInfo subclass). >> >> Cheers. >> >> Tim. >> > > > > -- > Regards, > Sachin >-- Regards, Sachin -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20141011/e5d6b3f8/attachment.html>
Hi Sachin,> Kindly tell me if a MachineFunctionPass runs only on some selected > portions of the .text section. Is there a way to make it run on larger > portion of the .text section?Your pass should have access to the vast majority of what LLVM puts in the text section: every function compiled by LLVM. The linker may put more things in there (either entire libraries if you're linking statically, or possibly stubs otherwise). I'm afraid it's impossible to say exactly what's going on in your case without more details of what you're seeing and why that differs from what you expect to see though. Cheers. Tim.