Martin J. O'Riordan via llvm-dev
2016-Mar-05 22:26 UTC
[llvm-dev] Adding 'v16f16' to tablegen
I have been able to adapt the main LLVM sources to work with vectors of 16 x
FP16 values and I have introduced the 'v16f16' data type to CLang and
LLVM,
but I am stumped on how to get TableGen to recognise this type. At the
moment I am trying to optimise the calling convention code, and whenever I
refer to 'v16f16' I get a crash in TableGen (unrecognised type).
Unfortunately I haven't got my head around the innards of TableGen yet, so I
am asking if anyone has any advice on how to add a new vector data type to
TableGen?
The main reason I need this is that OpenCL supports vectors with 16 elements
for all supported scalar types, and the SHAVE processor does support FP16
(aka 'half') data types. Although we don't natively support 16 x
FP16, I
would like to optimise how values of this type are passed and returned; so
any advice is appreciated.
I have the same problem with 'v16f64', although this type does not occur
in
any real code that I have found outside the OpenCL test-suite.
Thanks,
MartinO
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
<http://lists.llvm.org/pipermail/llvm-dev/attachments/20160305/9b56a0da/attachment.html>
Did you add the type to include llvm/CodeGen/ValueTypes.td and utils/TableGen/CodeGenTarget.cpp? On Sat, Mar 5, 2016 at 2:26 PM, Martin J. O'Riordan via llvm-dev < llvm-dev at lists.llvm.org> wrote:> I have been able to adapt the main LLVM sources to work with vectors of 16 > x FP16 values and I have introduced the ‘v16f16’ data type to CLang and > LLVM, but I am stumped on how to get TableGen to recognise this type. At > the moment I am trying to optimise the calling convention code, and > whenever I refer to ‘v16f16’ I get a crash in TableGen (unrecognised > type). Unfortunately I haven’t got my head around the innards of TableGen > yet, so I am asking if anyone has any advice on how to add a new vector > data type to TableGen? > > > > The main reason I need this is that OpenCL supports vectors with 16 > elements for all supported scalar types, and the SHAVE processor does > support FP16 (aka ‘half’) data types. Although we don’t natively support > 16 x FP16, I would like to optimise how values of this type are passed and > returned; so any advice is appreciated. > > > > I have the same problem with ‘v16f64’, although this type does not occur > in any real code that I have found outside the OpenCL test-suite. > > > > Thanks, > > > > MartinO > > > > _______________________________________________ > LLVM Developers mailing list > llvm-dev at lists.llvm.org > http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev > >-- ~Craig -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20160305/c278e585/attachment.html>
Martin J. O'Riordan via llvm-dev
2016-Mar-06 09:17 UTC
[llvm-dev] Adding 'v16f16' to tablegen
Thanks Craig.
I have ‘v16f16’ added to ‘ValueTypes.td’ just before ‘v1f32’ and then the values
of the following enumerates increased by one to correspond to this insertion.
And also changed ‘include/llvm/CodeGen/MachineValueType.h’ to match this change.
However, I have not changed ‘utils/TableGen/CodeGenTarget.cpp’ so I will try
that out.
Thanks for this insight,
MartinO
From: Craig Topper [mailto:craig.topper at gmail.com]
Sent: 06 March 2016 02:06
To: Martin.ORiordan at movidius.com
Cc: LLVM Developers <llvm-dev at lists.llvm.org>
Subject: Re: [llvm-dev] Adding 'v16f16' to tablegen
Did you add the type to include llvm/CodeGen/ValueTypes.td and
utils/TableGen/CodeGenTarget.cpp?
On Sat, Mar 5, 2016 at 2:26 PM, Martin J. O'Riordan via llvm-dev
<llvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org> >
wrote:
I have been able to adapt the main LLVM sources to work with vectors of 16 x
FP16 values and I have introduced the ‘v16f16’ data type to CLang and LLVM, but
I am stumped on how to get TableGen to recognise this type. At the moment I am
trying to optimise the calling convention code, and whenever I refer to ‘v16f16’
I get a crash in TableGen (unrecognised type). Unfortunately I haven’t got my
head around the innards of TableGen yet, so I am asking if anyone has any advice
on how to add a new vector data type to TableGen?
The main reason I need this is that OpenCL supports vectors with 16 elements for
all supported scalar types, and the SHAVE processor does support FP16 (aka
‘half’) data types. Although we don’t natively support 16 x FP16, I would like
to optimise how values of this type are passed and returned; so any advice is
appreciated.
I have the same problem with ‘v16f64’, although this type does not occur in any
real code that I have found outside the OpenCL test-suite.
Thanks,
MartinO
_______________________________________________
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
--
~Craig
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
<http://lists.llvm.org/pipermail/llvm-dev/attachments/20160306/cf21d4a0/attachment.html>