[llvm-dev] New to LLVM. Need help generating assembly

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",[(set SP, (add SP, 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