[PATCH] D75010: [OpenMP] Adding InaccessibleMemOnly and InaccessibleMemOrArgMemOnly for runtime calls.
Stefan Stipanovic via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Sat Feb 22 05:57:11 PST 2020
sstefan1 created this revision.
sstefan1 added a reviewer: jdoerfert.
Herald added subscribers: llvm-commits, guansong.
Herald added a project: LLVM.
Attempt to add more attributes for runtime calls.
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D75010
Files:
llvm/include/llvm/Frontend/OpenMP/OMPKinds.def
Index: llvm/include/llvm/Frontend/OpenMP/OMPKinds.def
===================================================================
--- llvm/include/llvm/Frontend/OpenMP/OMPKinds.def
+++ llvm/include/llvm/Frontend/OpenMP/OMPKinds.def
@@ -249,17 +249,17 @@
__OMP_ATTRS_SET(GetterAttrs,
OptimisticAttributes
? AttributeSet(EnumAttr(NoUnwind), EnumAttr(ReadOnly),
- EnumAttr(NoSync), EnumAttr(NoFree))
+ EnumAttr(NoSync), EnumAttr(NoFree), EnumAttr(InaccessibleMemOnly))
: AttributeSet(EnumAttr(NoUnwind)))
__OMP_ATTRS_SET(GetterArgWriteAttrs,
OptimisticAttributes
? AttributeSet(EnumAttr(NoUnwind), EnumAttr(NoSync),
- EnumAttr(NoFree))
+ EnumAttr(NoFree), EnumAttr(InaccessibleMemOrArgMemOnly))
: AttributeSet(EnumAttr(NoUnwind)))
__OMP_ATTRS_SET(SetterAttrs,
OptimisticAttributes
? AttributeSet(EnumAttr(NoUnwind), EnumAttr(WriteOnly),
- EnumAttr(NoSync), EnumAttr(NoFree))
+ EnumAttr(NoSync), EnumAttr(NoFree), EnumAttr(InaccessibleMemOnly))
: AttributeSet(EnumAttr(NoUnwind)))
#undef __OMP_ATTRS_SET
@@ -272,10 +272,40 @@
#define __OMP_RTL_ATTRS(Name, FnAttrSet, RetAttrSet, ArgAttrSets) \
OMP_RTL_ATTRS(OMPRTL_##Name, FnAttrSet, RetAttrSet, ArgAttrSets)
+__OMP_RTL_ATTRS(__kmpc_barrier,
+ AttributeSet(EnumAttr(InaccessibleMemOrArgMemOnly)),
+ AttributeSet(), {})
+__OMP_RTL_ATTRS(__kmpc_cancel,
+ AttributeSet(EnumAttr(InaccessibleMemOrArgMemOnly)),
+ AttributeSet(), {})
+__OMP_RTL_ATTRS(__kmpc_cancel_barrier,
+ AttributeSet(EnumAttr(InaccessibleMemOrArgMemOnly)),
+ AttributeSet(), {})
+__OMP_RTL_ATTRS(__kmpc_flush,
+ AttributeSet(EnumAttr(InaccessibleMemOrArgMemOnly)),
+ AttributeSet(), {})
+__OMP_RTL_ATTRS(__kmpc_global_thread_num, GetterAttrs, AttributeSet(), {})
__OMP_RTL_ATTRS(__kmpc_fork_call, AttributeSet(EnumAttr(NoUnwind)),
AttributeSet(), {})
+__OMP_RTL_ATTRS(__kmpc_omp_taskwait,
+ AttributeSet(EnumAttr(InaccessibleMemOrArgMemOnly)),
+ AttributeSet(), {})
+__OMP_RTL_ATTRS(__kmpc_omp_taskyield,
+ AttributeSet(EnumAttr(InaccessibleMemOrArgMemOnly)),
+ AttributeSet(), {})
+__OMP_RTL_ATTRS(__kmpc_push_num_threads,
+ AttributeSet(EnumAttr(InaccessibleMemOrArgMemOnly)),
+ AttributeSet(), {})
+__OMP_RTL_ATTRS(__kmpc_push_proc_bind,
+ AttributeSet(EnumAttr(InaccessibleMemOrArgMemOnly)),
+ AttributeSet(), {})
+__OMP_RTL_ATTRS(__kmpc_serialized_parallel,
+ AttributeSet(EnumAttr(InaccessibleMemOrArgMemOnly)),
+ AttributeSet(), {})
+__OMP_RTL_ATTRS(__kmpc_end_serialized_parallel,
+ AttributeSet(EnumAttr(InaccessibleMemOrArgMemOnly)),
+ AttributeSet(), {})
-__OMP_RTL_ATTRS(__kmpc_global_thread_num, GetterAttrs, AttributeSet(), {})
__OMP_RTL_ATTRS(omp_get_thread_num, GetterAttrs, AttributeSet(), {})
__OMP_RTL_ATTRS(omp_get_num_threads, GetterAttrs, AttributeSet(), {})
__OMP_RTL_ATTRS(omp_get_max_threads, GetterAttrs, AttributeSet(), {})
@@ -313,6 +343,22 @@
__OMP_RTL_ATTRS(omp_set_schedule, SetterAttrs, AttributeSet(), {})
__OMP_RTL_ATTRS(omp_set_max_active_levels, SetterAttrs, AttributeSet(), {})
+__OMP_RTL_ATTRS(__kmpc_master,
+ AttributeSet(EnumAttr(InaccessibleMemOrArgMemOnly)),
+ AttributeSet(), {})
+__OMP_RTL_ATTRS(__kmpc_end_master,
+ AttributeSet(EnumAttr(InaccessibleMemOrArgMemOnly)),
+ AttributeSet(), {})
+__OMP_RTL_ATTRS(__kmpc_critical,
+ AttributeSet(EnumAttr(InaccessibleMemOrArgMemOnly)),
+ AttributeSet(), {})
+__OMP_RTL_ATTRS(__kmpc_critical_with_hint,
+ AttributeSet(EnumAttr(InaccessibleMemOrArgMemOnly)),
+ AttributeSet(), {})
+__OMP_RTL_ATTRS(__kmpc_end_critical,
+ AttributeSet(EnumAttr(InaccessibleMemOrArgMemOnly)),
+ AttributeSet(), {})
+
#undef __OMP_RTL_ATTRS
#undef OMP_RTL_ATTRS
#undef AttributeSet
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D75010.246075.patch
Type: text/x-patch
Size: 4440 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200222/c660ba76/attachment.bin>
More information about the llvm-commits
mailing list