@@ -6410,7 +6410,7 @@ class AtomicExpr : public Expr {
6410
6410
enum AtomicOp {
6411
6411
#define BUILTIN (ID, TYPE, ATTRS )
6412
6412
#define ATOMIC_BUILTIN (ID, TYPE, ATTRS ) AO ## ID,
6413
- #include " clang/Basic/Builtins.def "
6413
+ #include " clang/Basic/Builtins.inc "
6414
6414
// Avoid trailing comma
6415
6415
BI_First = 0
6416
6416
};
@@ -6476,7 +6476,7 @@ class AtomicExpr : public Expr {
6476
6476
#define ATOMIC_BUILTIN (ID, TYPE, ATTRS ) \
6477
6477
case AO##ID: \
6478
6478
return #ID;
6479
- #include " clang/Basic/Builtins.def "
6479
+ #include " clang/Basic/Builtins.inc "
6480
6480
}
6481
6481
llvm_unreachable (" not an atomic operator?" );
6482
6482
}
@@ -6505,8 +6505,8 @@ class AtomicExpr : public Expr {
6505
6505
}
6506
6506
6507
6507
bool isOpenCL () const {
6508
- return getOp () >= AO__opencl_atomic_init &&
6509
- getOp () <= AO__opencl_atomic_fetch_max ;
6508
+ return getOp () >= AO__opencl_atomic_compare_exchange_strong &&
6509
+ getOp () <= AO__opencl_atomic_store ;
6510
6510
}
6511
6511
6512
6512
SourceLocation getBuiltinLoc () const { return BuiltinLoc; }
@@ -6531,11 +6531,14 @@ class AtomicExpr : public Expr {
6531
6531
// / \return empty atomic scope model if the atomic op code does not have
6532
6532
// / scope operand.
6533
6533
static std::unique_ptr<AtomicScopeModel> getScopeModel (AtomicOp Op) {
6534
- if (Op >= AO__opencl_atomic_load && Op <= AO__opencl_atomic_fetch_max)
6534
+ // FIXME: Allow grouping of builtins to be able to only check >= and <=
6535
+ if (Op >= AO__opencl_atomic_compare_exchange_strong &&
6536
+ Op <= AO__opencl_atomic_store && Op != AO__opencl_atomic_init)
6535
6537
return AtomicScopeModel::create (AtomicScopeModelKind::OpenCL);
6536
- else if (Op >= AO__hip_atomic_load && Op <= AO__hip_atomic_fetch_max)
6538
+ if (Op >= AO__hip_atomic_compare_exchange_strong &&
6539
+ Op <= AO__hip_atomic_store)
6537
6540
return AtomicScopeModel::create (AtomicScopeModelKind::HIP);
6538
- else if (Op >= AO__scoped_atomic_load && Op <= AO__scoped_atomic_fetch_max )
6541
+ if (Op >= AO__scoped_atomic_add_fetch && Op <= AO__scoped_atomic_xor_fetch )
6539
6542
return AtomicScopeModel::create (AtomicScopeModelKind::Generic);
6540
6543
return AtomicScopeModel::create (AtomicScopeModelKind::None);
6541
6544
}
0 commit comments