This is the mail archive of the gcc-patches@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: [RFC, patch] New attribute to create target clones


On 08/20/2015 05:38 PM, Evgeny Stupachenko wrote:
On Mon, Aug 3, 2015 at 9:43 PM, Jeff Law <law@redhat.com> wrote:
On 07/30/2015 04:19 PM, Evgeny Stupachenko wrote:

Hi All,

The patch enables new attribute 'ctarget',
The attribute force compiler to create clones of a function with the
attribute.

For example:
__attribute__((ctarget("avx","arch=slm","arch=core-avx2","default")))

So presumably we're allowing both changing the ISA and the tuning options?
In fact, it looks like we're able to change any -m option, right?

What about something like -mregparm?  I think the docs need to disallow
clones with different ABI requirements.

-mregparm is not allowed now. The
targetm.target_option.valid_attribute_p hook specify which -m option
is allowed for architecture. Here patch reuses Function
Multiversioning methods.
Ah, OK.  That clarifies things.


I could make an argument for either.  Do we have anything to guide us from
other compilers such as ICC that may have a similar capability?


Not sure. However ICC has similar to Function Multiversioning:
__declcpec(cpu_specific(... where "default" is ""generic". I think for
"default" we should do the same as Function Multiversioning - keep
compiler options. That way users will be able to create target
specific minimum by passing corresponding options to command line.
That works for me.

So I think we really need Jan to chime in here.

Jeff


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