On Tue, 2019-01-22 at 13:18 +0100, Richard Biener wrote: > > Yeah, I would even suggest to use a target hook multilib_ABI_active_p > (const char *) > for this ... (where the hook should diagnose unknown multilib specifiers). > > Richard.
I wonder if we even need to pass a string to the target hook. Instead of: !GCC$ builtin (cos) attributes simd (notinbranch) if('x86_64-linux-gnu') We just have: !GCC$ builtin (cos) attributes simd (notinbranch) if_allowed When we see if_allowed we call a target function like multilib_ABI_active_p and it can use whatever criteria it wants to use to determine if the simd attribute should be honored. Or, if we are going this far, how about leaving out the if altogher and everytime we see a simd attribute in Fortran we call a target function to determine if it should or should not be honored. The default function can just return true, target specific versions could look at the ABI and return true or false as needed. It might also be worth passing the function (cos) as an argument to the target function, then we could have different ABI's enabling different functions and not have to have them all on or all off based on the ABI. Steve Ellcey sell...@marvell.com