[llvm-dev] dumb question about tblgen

Quentin Colombet via llvm-dev llvm-dev at lists.llvm.org
Wed May 25 17:24:51 PDT 2016


Hi Peter,

I would recommend looking into the implementation of the matcher if you want to add more builtin types:
utils/TableGen//DAGISelMatcherGen.cpp

That being said, you can define your own types without having to go through that hassle.
E.g., from AArch64
def simm9 : Operand<i64>, ImmLeaf<i64, [{ return Imm >= -256 && Imm < 256; }]> {
  let ParserMatchClass = SImm9Operand;
}

Wouldn’t that work for you?

Cheers,
-Quentin

> On May 25, 2016, at 5:06 PM, Lawrence, Peter via llvm-dev <llvm-dev at lists.llvm.org> wrote:
> 
> Dumb question about llvm-tblgen for “XyzGenInstrInfo.inc”
>  
> If I have a pattern in my dot-td-file like this
>  
>                 [(set i32:$dst   (add i32:$rs1,  i32:$rs2))]
>  
> The question is where does the token “i32” come from,
> I don’t see any definitions for i1, i8, i16, i32, …  in
>                 include/llvm/Target/*.td
>  
> while I do see definitions for tokens like “set”, “add”, …
> coming from
>                 include/llvm/Target/TargetSelectionDAG.td
>  
> presumably these tokens are related to the enum in
>                 include/llvm/CodeGen/MachineValueType.h
> but how does  tblgen know about them,
>  
>  
> To put the question into context, if I add an item to the enum in “MachineValueType.h”
> What do I do about
>                 “error: Variable not defined:”
> Coming from tblgen when I try to use it in my dot-td-file,
> I’ve already tried re-building tblgen, but that didn’t help.
>  
>  
>  
> thanks,
> --Peter Lawrence.
> _______________________________________________
> 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/20160525/eb2c833b/attachment.html>


More information about the llvm-dev mailing list