[PATCH] D17950: Implement is_always_lock_free
James Y Knight via cfe-commits
cfe-commits at lists.llvm.org
Wed Mar 16 16:33:53 PDT 2016
jyknight added inline comments.
================
Comment at: lib/Frontend/InitPreprocessor.cpp:305
@@ +304,3 @@
+ if (TypeWidth == TypeAlign && (TypeWidth & (TypeWidth - 1)) == 0 &&
+ TypeWidth <= InlineWidth)
+ return Always;
----------------
jfb wrote:
> bcraig wrote:
> > On some targets (like Hexagon), 4-byte values are cheap to inline, but 1-byte values are not. Clang is spotty about checking this, but TargetInfo::hasBuiltinAtomic seems like the right function to ask, if you have access to it.
> You're commenting on:
> ```
> if (TypeWidth == TypeAlign && (TypeWidth & (TypeWidth - 1)) == 0 &&
> TypeWidth <= InlineWidth)
> ```
> ?
>
> Are you asking for a separate change, or for a change to my patch?
That issue in clang's purview in any case; if hexagon wants to lower a 1-byte cmpxchg to a compiler runtime function, it should do so in its backend.
http://reviews.llvm.org/D17950
More information about the cfe-commits
mailing list