This patch adds the nosync attribute to the __kmpc_alloc_shared and
__kmpc_free_shared runtime library calls. This allows code analysis to
know that these functins dont contain any barriers. This will help
optimizations reason about the CFG of blocks containing these calls.
Details
Details
Diff Detail
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
Comment Actions
This patch adds the nosync attribute to the kmpc_alloc_shared and
kmpc_free_shared runtime library calls. This allows code analysis to
know that these functins dont contain any barriers. This will help
optimizations reason about the CFG of blocks containing these calls.
Technically they do contain synchronization events but neither the user nor we use them to synchronize
things not inside the functions. So, from the outside perspective they are nosync.
LG
llvm/include/llvm/Frontend/OpenMP/OMPKinds.def | ||
---|---|---|
545 | AttributeSet()? |
llvm/include/llvm/Frontend/OpenMP/OMPKinds.def | ||
---|---|---|
545 | We want this without optimistic attributes set. Optimistic attributes will be the default soon anyway. |
AttributeSet()?