Skip to content

Commit 68a2758

Browse files
committed
[OpenMP][FIX] Do not use InaccessibleMemOrArgMemOnly for barrier and flush
This was reported as PR45635, committed first as 72a9e7c, reverted by 188f5cd, and now recommitted with the test change.
1 parent 2dea3f1 commit 68a2758

File tree

2 files changed

+12
-20
lines changed

2 files changed

+12
-20
lines changed

llvm/include/llvm/Frontend/OpenMP/OMPKinds.def

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -389,24 +389,16 @@ __OMP_ATTRS_SET(SetterAttrs,
389389
#define __OMP_RTL_ATTRS(Name, FnAttrSet, RetAttrSet, ArgAttrSets) \
390390
OMP_RTL_ATTRS(OMPRTL_##Name, FnAttrSet, RetAttrSet, ArgAttrSets)
391391

392-
__OMP_RTL_ATTRS(__kmpc_barrier,
393-
AttributeSet(EnumAttr(InaccessibleMemOrArgMemOnly)),
394-
AttributeSet(), {})
392+
__OMP_RTL_ATTRS(__kmpc_barrier, AttributeSet(), AttributeSet(), {})
395393
__OMP_RTL_ATTRS(__kmpc_cancel,
396394
AttributeSet(EnumAttr(InaccessibleMemOrArgMemOnly)),
397395
AttributeSet(), {})
398-
__OMP_RTL_ATTRS(__kmpc_cancel_barrier,
399-
AttributeSet(EnumAttr(InaccessibleMemOrArgMemOnly)),
400-
AttributeSet(), {})
401-
__OMP_RTL_ATTRS(__kmpc_flush,
402-
AttributeSet(EnumAttr(InaccessibleMemOrArgMemOnly)),
403-
AttributeSet(), {})
396+
__OMP_RTL_ATTRS(__kmpc_cancel_barrier, AttributeSet(), AttributeSet(), {})
397+
__OMP_RTL_ATTRS(__kmpc_flush, AttributeSet(), AttributeSet(), {})
404398
__OMP_RTL_ATTRS(__kmpc_global_thread_num, GetterAttrs, AttributeSet(), {})
405399
__OMP_RTL_ATTRS(__kmpc_fork_call, AttributeSet(EnumAttr(NoUnwind)),
406400
AttributeSet(), {})
407-
__OMP_RTL_ATTRS(__kmpc_omp_taskwait,
408-
AttributeSet(EnumAttr(InaccessibleMemOrArgMemOnly)),
409-
AttributeSet(), {})
401+
__OMP_RTL_ATTRS(__kmpc_omp_taskwait, AttributeSet(), AttributeSet(), {})
410402
__OMP_RTL_ATTRS(__kmpc_omp_taskyield,
411403
AttributeSet(EnumAttr(InaccessibleMemOrArgMemOnly)),
412404
AttributeSet(), {})

llvm/test/Transforms/OpenMP/add_attributes.ll

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -720,26 +720,26 @@ declare void @__kmpc_end_critical(%struct.ident_t*, i32, [8 x i32]*)
720720
; CHECK: ; Function Attrs: nounwind
721721
; CHECK-NEXT: declare dso_local i32 @omp_get_supported_active_levels() #0
722722

723-
; CHECK: Function Attrs: inaccessiblemem_or_argmemonly
724-
; CHECK-NEXT: declare void @__kmpc_barrier(%struct.ident_t*, i32)
723+
; CHECK-NOT: Function Attrs
724+
; CHECK: declare void @__kmpc_barrier(%struct.ident_t*, i32)
725725

726726
; CHECK: Function Attrs: inaccessiblemem_or_argmemonly
727727
; CHECK-NEXT: declare i32 @__kmpc_cancel(%struct.ident_t*, i32, i32)
728728

729-
; CHECK: Function Attrs: inaccessiblemem_or_argmemonly
730-
; CHECK-NEXT: declare i32 @__kmpc_cancel_barrier(%struct.ident_t*, i32)
729+
; CHECK-NOT: Function Attrs
730+
; CHECK: declare i32 @__kmpc_cancel_barrier(%struct.ident_t*, i32)
731731

732-
; CHECK: Function Attrs: inaccessiblemem_or_argmemonly
733-
; CHECK-NEXT: declare void @__kmpc_flush(%struct.ident_t*)
732+
; CHECK-NOT: Function Attrs
733+
; CHECK: declare void @__kmpc_flush(%struct.ident_t*)
734734

735735
; CHECK: Function Attrs: nounwind
736736
; CHECK-NEXT: declare i32 @__kmpc_global_thread_num(%struct.ident_t*)
737737

738738
; CHECK: Function Attrs: nounwind
739739
; CHECK-NEXT: declare void @__kmpc_fork_call(%struct.ident_t*, i32, void (i32*, i32*, ...)*, ...)
740740

741-
; CHECK: Function Attrs: inaccessiblemem_or_argmemonly
742-
; CHECK-NEXT: declare i32 @__kmpc_omp_taskwait(%struct.ident_t*, i32)
741+
; CHECK-NOT: Function Attrs
742+
; CHECK: declare i32 @__kmpc_omp_taskwait(%struct.ident_t*, i32)
743743

744744
; CHECK: Function Attrs: inaccessiblemem_or_argmemonly
745745
; CHECK-NEXT: declare i32 @__kmpc_omp_taskyield(%struct.ident_t*, i32, i32)

0 commit comments

Comments
 (0)