[llvm-dev] New to LLVM. Need help generating assembly (original) (raw)

m m via llvm-dev llvm-dev at lists.llvm.org
Thu Dec 6 10:48:39 PST 2018


Swapping the order of SP and $amount in the pattern did not work. I checked the output of the compiler with the -print-after-all option and the instruction is present in the last IR dump.

I noticed that in GenAsmWriter.inc, there is this line of code in the case of my ADS instruction printOperand(MI, 0, O);

If I manually change it to printOperand(MI, 1, O);, then it fixes the problem.

How can I make tablegen generate a 1 as the 2nd argument of printOperand for this specific instruction?


From: daniel_l_sanders at apple.com <daniel_l_sanders at apple.com> on behalf of Daniel Sanders <daniel_l_sanders at apple.com> Sent: Thursday, December 6, 2018 9:31 AM To: tstellar at redhat.com Cc: m m; llvm-dev at lists.llvm.org Subject: Re: [llvm-dev] New to LLVM. Need help generating assembly

On Dec 5, 2018, at 22:15, Tom Stellard via llvm-dev <llvm-dev at lists.llvm.org<mailto:llvm-dev at lists.llvm.org>> wrote:

On 12/05/2018 07:22 PM, m m via llvm-dev wrote: Hi, I'm new to LLVM and need some help. I defined an instruction to increment the stack pointer by 'amount' (i.e. sp = sp + amount). During assembly generation, the string that gets emitted is "ADS $SP" rather than "ADS 10", for example, if I want to increment it by 10.

Can somebody show me what I'm doing wrong? Thanks.

def ADS: F_J<0b100001,(outs),(ins i32imm:$amount),"ADS amount",[(setSP,(addSP,i32imm:amount",[(set SP, (add SP, i32imm:amount",[(setSP,(addSP,i32imm:amount))] > {

   bits<10> amount;

   let Inst{9-0} = amount;
   let isReMaterializable = 1;
   let mayLoad = 0;
   let mayStore = 0;
   let Defs = [SP];
   let Uses = [SP];

}

What does the MCInst dump of this instruction look like? Have you looked at YourTargetGenAsmWriter.inc to see which print methods are being called for this instruction?

-Tom

It's also worth checking the output of the compiler with the -print-after-all option to see if your instruction is present in the last IR dump. It's possible that another instruction is being selected instead of this one.


LLVM Developers mailing list llvm-dev at lists.llvm.org<mailto:llvm-dev at lists.llvm.org> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev


LLVM Developers mailing list llvm-dev at lists.llvm.org<mailto:llvm-dev at lists.llvm.org> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev

-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20181206/dea616f1/attachment-0001.html>



More information about the llvm-dev mailing list