[llvm-dev] Memory scope proposal
Sameer Sahasrabuddhe via llvm-dev
llvm-dev at lists.llvm.org
Sun Jul 10 01:05:40 PDT 2016
On Mon, Jul 4, 2016 at 5:09 AM, Philip Reames via llvm-dev <
llvm-dev at lists.llvm.org> wrote:
> I will comment - as one of the few people actually working on llvm's
> atomic implementation with any regularity - that I am opposed to extending
> the instructions without a strong motivating case. I don't care anywhere
> near as much about metadata based schemes, but extending the instruction
> semantics imposes a much larger burden on the rest of the community. That
> burden has to be well justified and supported.
In OpenCL 2.x, two atomic operations on the same atomic object need to have
the same scope to prevent a data race. This derives from the definition of
"inclusive scope" in OpenCL 2.x. Encoding OpenCL 2.x scope as metadata in
LLVM IR would be a problem because there cannot be a "safe default value"
to be used when the metadata is dropped. If the "largest" scope is used as
the default, then the optimizer must guarantee that the metadata is dropped
from every atomic operation in the whole program, or not dropped at all.
Hence the original attempt to extend LLVM atomic instructions with a
broader scope field.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the llvm-dev