[LLVMdev] non-standard machine value types

Matt Arsenault arsenm2 at gmail.com
Thu Jun 4 00:06:58 PDT 2015


> On Jun 3, 2015, at 11:48 PM, Volodymyr Arbatov <gm.ivlad at gmail.com> wrote:
> 
> Hi all.
> 
> I'm looking for a ways of defining register files with non-standard machine value type in tablegen. The value types not covered by SimpleValueType enum. For example (from the top of my head) 25 bit integers, or 8 way 18 bit integers. These types going to be used with intrinsics so I also need appropriate C custom types defined. 
> 
> I wonder if I can describe those in tablegen files or do I need to extend llvm. What is the right way of supporting such types?
> 
> I'm not familiar will llvm internals so far, so any help and pointers appreciated.
> 
> Thanks,
> Volodymyr.
> ___________________

You would need an MVT type defined for every legal type you have, so you would need to add those. However, LLVM has a pretty widely spread assumption of 8-bit bytes, so that will be far more problematic for your target. Fixing that would be a large project.

-Matt
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20150604/b64f1a80/attachment.html>


More information about the llvm-dev mailing list