This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: interest for ARM/thumb multiversionning ?



On 04/29/2015 05:36 PM, Ramana Radhakrishnan wrote:
> 
> 
> On 29/04/2015 09:24, Christian Bruel wrote:
>> Hi Ramana, Richard
>>
>> After playing with the attritute ((target ("[thumb,arm]")), during the
>> pending review, I added the "default" selector to neutralize
>> -mflip-thumb for the setjmp/longjmp based tests.
>>
>> I was wondering it there would be an interest leverage on this to
>> implement multiprocessing, like on the x86 ?
>>
> 
> You mean multiversioning ? How would the dispatcher work in this case ?

not sure what you mean, the fonction's name will need to be mangled with
the target specialization. The dispatching would be made based on the
caller mode.

Could it  be also a direction to help LTOization with the proper FPU
flags (follow bz target/65837) given at link time.

My concern is that this is limited to C++ for x86. I haven't checked the
details, just ideas.

Cheers

Christian

> Ramana
> 
>> something that would allow (from the x86 doc)
>>
>> __attribute__ ((target ("default")))
>> int foo ()
>> {
>>    asm("...");
>> return 0;
>> }
>>
>> __attribute__ ((target ("thumb")))
>> int foo ()
>> {
>>    asm("...");
>> }
>>
>> int main ()
>> {
>> int (*p)() = &foo;
>> assert ((*p) () == foo ());
>> return 0;
>> }
>>
>> I had initially not planned to do it, but this is a simple extension of
>> the attribute target, if someone find a use for this I can implement it
>> on the fly.
>>
>> Best Regards,
>>
>> Christian
>>


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]