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

Daniel Sanders via llvm-dev llvm-dev at lists.llvm.org
Thu Dec 6 09:31:25 PST 2018



> On Dec 5, 2018, at 22:15, Tom Stellard via llvm-dev <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 <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 <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/a96b5e2e/attachment.html>


More information about the llvm-dev mailing list