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: [patch] Provide a can_compare_and_swap_p target hook.


On 11/04/2014 12:57 PM, Richard Henderson wrote:
On 11/04/2014 06:56 PM, Andrew MacLeod wrote:
On 11/04/2014 12:25 PM, Richard Henderson wrote:
On 11/04/2014 05:28 PM, Andrew MacLeod wrote:
+ bool
+ default_can_compare_and_swap_p (machine_mode mode, bool allow_libcall)
+ {
+   return can_compare_and_swap_p (mode, allow_libcall);
+ }
This is silly.  I think the problem you point out can be better fixed by moving
the can_compare_and_swap_p prototype elsewhere.

yeah, except it uses some of the optab table stuff that is static to
optabs.c...   so the basic functionality remains there.
I said move the prototype.  Of course the implementation remains where it is.

prototype is in optabs.h where it belongs since its defined in optabs.c. :-)

I'm not sure why this is much different than something like the targhook for builtin_support_vector_misalignment(), other than we are calling the routine in optabs.c rather than putting the actual code in targhooks.c.

from targhooks.c:
bool
default_builtin_support_vector_misalignment (machine_mode mode, const_tree type, <...>)
 {
  if (optab_handler (movmisalign_optab, mode) != CODE_FOR_nothing)
    return true;
  return false;
}

the idea is to move all the functionality that front ends need into well defined and controlled places so we can increase the separation. "can perform a compare_and_swap operation" is clearly a target specific question isn't it?

Andrew







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