[cfe-commits] r160308 - in /cfe/trunk: lib/CodeGen/CGBuiltin.cpp lib/CodeGen/CodeGenFunction.h test/CodeGen/builtins-mips-ovld.c

reed kotler rkotler at mips.com
Tue Jul 17 17:22:03 PDT 2012


I talked to our guy that originally did this work for gcc and thought 
some more.

Essentially we call a different function based on the actual argument:

foo(a) for the given dsp instruction

if the value of a is not known at compile time, then we must use the 
register form of the instruction
if the value of a is known at compile time and small enough to fit in 
the immediate field, then we can use the immediate form;  otherwise we 
must use the register form


On 07/17/2012 01:03 PM, reed kotler wrote:
> On 07/17/2012 01:26 AM, Simon Atanasyan wrote:
>> On Tue, Jul 17, 2012 at 8:15 AM, reed kotler<rkotler at mips.com>   wrote:
>>> Hmmm...
>>>
>>> Seems like any kind of overloading resolution should be done by clang.
>>>
>>> there can be lots of issues regarding implicit conversions and other c++
>>> things.
>> It's not an overloading in the spirit of C++. Here is we select
>> intrinsics based on an argument's value. While C++ overloading uses an
>> argument's type.
>>
>> --
>> Simon
> Register is a different type.
>
> These two inline functions are essentially inline assembly instructions
> and we should give the user what he is asking for.
>
> They have subtly different semantics too.
>
> Reed
>
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits




More information about the cfe-commits mailing list