@@ -402,21 +402,21 @@ ValueCategory MLIRScanner::CallHelper(
402
402
403
403
// / Try to emit SYCL operations before creating a CallOp
404
404
mlir::Operation *op = EmitSYCLOps (expr, args);
405
- if (!op) {
405
+ if (!op)
406
406
op = builder.create <CallOp>(loc, tocall, args);
407
- }
408
407
409
408
if (isArrayReturn) {
410
409
// TODO remedy return
411
410
if (retReference)
412
411
expr->dump ();
413
412
assert (!retReference);
414
413
return ValueCategory (alloc, /* isReference*/ true );
415
- } else if (op->getNumResults ()) {
414
+ }
415
+ if (op->getNumResults ()) {
416
416
return ValueCategory (op->getResult (0 ),
417
417
/* isReference*/ retReference);
418
- } else
419
- return nullptr ;
418
+ }
419
+ return nullptr ;
420
420
llvm::errs () << " do not support indirecto call of " << tocall << " \n " ;
421
421
assert (0 && " no indirect" );
422
422
}
@@ -558,11 +558,10 @@ ValueCategory MLIRScanner::VisitCallExpr(clang::CallExpr *expr) {
558
558
loc, a1.getType (), op, a1, a0,
559
559
std::vector<mlir::Value>({getConstantIndex (0 )})),
560
560
/* isReference*/ false );
561
- else
562
- return ValueCategory (
563
- builder.create <LLVM::AtomicRMWOp>(loc, a1.getType (), lop, a0, a1,
564
- LLVM::AtomicOrdering::acq_rel),
565
- /* isReference*/ false );
561
+ return ValueCategory (
562
+ builder.create <LLVM::AtomicRMWOp>(loc, a1.getType (), lop, a0, a1,
563
+ LLVM::AtomicOrdering::acq_rel),
564
+ /* isReference*/ false );
566
565
}
567
566
}
568
567
@@ -706,19 +705,20 @@ ValueCategory MLIRScanner::VisitCallExpr(clang::CallExpr *expr) {
706
705
} else if (T != val.getType ())
707
706
val = builder.create <LLVM::BitcastOp>(loc, T, val);
708
707
return ValueCategory (val, /* isRef*/ false );
709
- } else {
710
- assert (T.isa <MemRefType>());
711
- if (val.getType ().isa <MemRefType>())
712
- val = builder.create <polygeist::Memref2PointerOp>(
713
- loc,
714
- LLVM::LLVMPointerType::get (
715
- builder.getI8Type (),
716
- val.getType ().cast <MemRefType>().getMemorySpaceAsInt ()),
717
- val);
718
- if (val.getType ().isa <LLVM::LLVMPointerType>())
719
- val = builder.create <polygeist::Pointer2MemrefOp>(loc, T, val);
720
- return ValueCategory (val, /* isRef*/ false );
721
708
}
709
+ assert (T.isa <MemRefType>());
710
+
711
+ if (val.getType ().isa <MemRefType>())
712
+ val = builder.create <polygeist::Memref2PointerOp>(
713
+ loc,
714
+ LLVM::LLVMPointerType::get (
715
+ builder.getI8Type (),
716
+ val.getType ().cast <MemRefType>().getMemorySpaceAsInt ()),
717
+ val);
718
+ if (val.getType ().isa <LLVM::LLVMPointerType>())
719
+ val = builder.create <polygeist::Pointer2MemrefOp>(loc, T, val);
720
+ return ValueCategory (val, /* isRef*/ false );
721
+
722
722
expr->dump ();
723
723
llvm::errs () << " val: " << val << " T: " << T << " \n " ;
724
724
assert (0 && " unhandled builtin addressof" );
@@ -748,10 +748,9 @@ ValueCategory MLIRScanner::VisitCallExpr(clang::CallExpr *expr) {
748
748
return ValueCategory (
749
749
builder.create <LLVM::PowIOp>(loc, mlirType, args[0 ], args[1 ]),
750
750
/* isReference*/ false );
751
- else
752
- return ValueCategory (
753
- builder.create <math::PowFOp>(loc, mlirType, args[0 ], args[1 ]),
754
- /* isReference*/ false );
751
+ return ValueCategory (
752
+ builder.create <math::PowFOp>(loc, mlirType, args[0 ], args[1 ]),
753
+ /* isReference*/ false );
755
754
}
756
755
}
757
756
0 commit comments