16
16
#include " CIRGenModule.h"
17
17
#include " CIRGenOpenMPRuntime.h"
18
18
#include " TargetInfo.h"
19
- #include " UnimplementedFeatureGuarding.h"
20
19
#include " clang/AST/ASTContext.h"
21
20
#include " clang/AST/StmtVisitor.h"
22
21
#include " clang/CIR/Dialect/IR/CIRAttrs.h"
23
22
#include " clang/CIR/Dialect/IR/CIRDataLayout.h"
24
23
#include " clang/CIR/Dialect/IR/CIRDialect.h"
25
24
#include " clang/CIR/Dialect/IR/CIROpsEnums.h"
26
25
#include " clang/CIR/Dialect/IR/CIRTypes.h"
26
+ #include " clang/CIR/MissingFeatures.h"
27
27
#include " clang/CodeGen/CGFunctionInfo.h"
28
28
#include " clang/Frontend/FrontendDiagnostic.h"
29
29
#include " llvm/Support/ErrorHandling.h"
@@ -440,7 +440,7 @@ static void buildAtomicOp(CIRGenFunction &CGF, AtomicExpr *E, Address Dest,
440
440
mlir::Value IsWeak, mlir::Value FailureOrder,
441
441
uint64_t Size , mlir::cir::MemOrder Order,
442
442
uint8_t Scope) {
443
- assert (!UnimplementedFeature ::syncScopeID ());
443
+ assert (!MissingFeatures ::syncScopeID ());
444
444
StringRef Op;
445
445
446
446
auto &builder = CGF.getBuilder ();
@@ -487,7 +487,7 @@ static void buildAtomicOp(CIRGenFunction &CGF, AtomicExpr *E, Address Dest,
487
487
case AtomicExpr::AO__scoped_atomic_load: {
488
488
auto *load = builder.createLoad (loc, Ptr ).getDefiningOp ();
489
489
// FIXME(cir): add scope information.
490
- assert (!UnimplementedFeature ::syncScopeID ());
490
+ assert (!MissingFeatures ::syncScopeID ());
491
491
load->setAttr (" mem_order" , orderAttr);
492
492
if (E->isVolatile ())
493
493
load->setAttr (" is_volatile" , mlir::UnitAttr::get (builder.getContext ()));
@@ -512,7 +512,7 @@ static void buildAtomicOp(CIRGenFunction &CGF, AtomicExpr *E, Address Dest,
512
512
case AtomicExpr::AO__scoped_atomic_store_n: {
513
513
auto loadVal1 = builder.createLoad (loc, Val1);
514
514
// FIXME(cir): add scope information.
515
- assert (!UnimplementedFeature ::syncScopeID ());
515
+ assert (!MissingFeatures ::syncScopeID ());
516
516
builder.createStore (loc, loadVal1, Ptr , E->isVolatile (),
517
517
/* alignment=*/ mlir::IntegerAttr{}, orderAttr);
518
518
return ;
@@ -685,15 +685,15 @@ static void buildAtomicOp(CIRGenFunction &CGF, AtomicExpr *Expr, Address Dest,
685
685
// LLVM atomic instructions always have synch scope. If clang atomic
686
686
// expression has no scope operand, use default LLVM synch scope.
687
687
if (!ScopeModel) {
688
- assert (!UnimplementedFeature ::syncScopeID ());
688
+ assert (!MissingFeatures ::syncScopeID ());
689
689
buildAtomicOp (CGF, Expr, Dest, Ptr , Val1, Val2, IsWeak, FailureOrder, Size ,
690
690
Order, /* FIXME(cir): LLVM default scope*/ 1 );
691
691
return ;
692
692
}
693
693
694
694
// Handle constant scope.
695
695
if (getConstOpIntAttr (Scope)) {
696
- assert (!UnimplementedFeature ::syncScopeID ());
696
+ assert (!MissingFeatures ::syncScopeID ());
697
697
llvm_unreachable (" NYI" );
698
698
return ;
699
699
}
@@ -1289,7 +1289,7 @@ void CIRGenFunction::buildAtomicStore(RValue rvalue, LValue dest,
1289
1289
store.setIsVolatile (true );
1290
1290
1291
1291
// DecorateInstructionWithTBAA
1292
- assert (!UnimplementedFeature ::tbaa ());
1292
+ assert (!MissingFeatures ::tbaa ());
1293
1293
return ;
1294
1294
}
1295
1295
0 commit comments