[LLVMdev] Tablegen question
Bob Wilson
bob.wilson at apple.com
Wed Apr 15 10:37:24 PDT 2009
Oops. That was premature. I think your original question was on the
right track. TableGen distinguishes between known and "overloaded"
types (like "llvm_anyfloat_ty" in your example). The overloaded types
are numbered separately, and the argument to LLVMMatchType is an index
into these overloaded types, ignoring the known types. So, in your
case, the first argument is the first overloaded type, so you should
use LLVMMatchType<0> to refer to it.
On Apr 15, 2009, at 10:31 AM, Bob Wilson wrote:
> That's a bug. I'm working on a fix....
>
> On Apr 15, 2009, at 10:16 AM, Villmow, Micah wrote:
>
>> In IntrinsicEmitter::EmitTypeGenerate, called from
>> IntrinsicEmitter::EmitGenerator, here
>> for (unsigned j = 0; j != N; ++j) {
>> OS << " ArgTys.push_back(";
>> EmitTypeGenerate(OS, ParamTys[j], ArgNo);
>> OS << ");\n";
>> }
>> I'm hitting this assertion:
>> if (ArgType->isSubClassOf("LLVMMatchType")) {
>> unsigned Number = ArgType->getValueAsInt("Number");
>> assert(Number < ArgNo && "Invalid matching number!");
>>
>> Where both Number and ArgNo are 1.
>>
>> -----Original Message-----
>> From: llvmdev-bounces at cs.uiuc.edu [mailto:llvmdev-
>> bounces at cs.uiuc.edu]
>> On Behalf Of Bob Wilson
>> Sent: Wednesday, April 15, 2009 9:53 AM
>> To: LLVM Developers Mailing List
>> Subject: Re: [LLVMdev] Tablegen question
>>
>>
>> On Apr 15, 2009, at 9:29 AM, Villmow, Micah wrote:
>>
>>> I have this intrinsic definition for llvm.
>>> def int_opencl_math_fdistance_fast : Intrinsic<[llvm_float_ty],
>>> [llvm_anyfloat_ty, LLVMMatchType<0>]>;
>>>
>>>
>>> Can someone explain what LLVMMatchType does and how to specify it
>>> to match the first argument and not the return value?
>>>
>>> I've tried LLVMMatchType<1> but it fails in IntrinsicEmitter.cpp
>>
>> Can you give some more info about how LLVMMatchType<1> fails? That
>> should do what you want.
>> _______________________________________________
>> LLVM Developers mailing list
>> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>>
>>
>>
>> _______________________________________________
>> LLVM Developers mailing list
>> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
More information about the llvm-dev
mailing list