20
20
#include " ../../test/lib/Dialect/Test/TestAttributes.h"
21
21
#include " ../../test/lib/Dialect/Test/TestDialect.h"
22
22
#include " ../../test/lib/Dialect/Test/TestTypes.h"
23
+ #include " mlir/IR/OwningOpRef.h"
23
24
24
25
using namespace mlir ;
25
26
using namespace test ;
@@ -291,24 +292,25 @@ TEST(InterfaceAttachment, Operation) {
291
292
MLIRContext context;
292
293
293
294
// Initially, the operation doesn't have the interface.
294
- auto moduleOp = ModuleOp::create (UnknownLoc::get (&context));
295
- ASSERT_FALSE (isa<TestExternalOpInterface>(moduleOp. getOperation ()));
295
+ OwningOpRef<ModuleOp> moduleOp = ModuleOp::create (UnknownLoc::get (&context));
296
+ ASSERT_FALSE (isa<TestExternalOpInterface>(moduleOp-> getOperation ()));
296
297
297
298
// We can attach an external interface and now the operaiton has it.
298
299
ModuleOp::attachInterface<TestExternalOpModel>(context);
299
- auto iface = dyn_cast<TestExternalOpInterface>(moduleOp. getOperation ());
300
+ auto iface = dyn_cast<TestExternalOpInterface>(moduleOp-> getOperation ());
300
301
ASSERT_TRUE (iface != nullptr );
301
302
EXPECT_EQ (iface.getNameLengthPlusArg (10 ), 24u );
302
303
EXPECT_EQ (iface.getNameLengthTimesArg (3 ), 42u );
303
304
EXPECT_EQ (iface.getNameLengthPlusArgTwice (18 ), 50u );
304
305
EXPECT_EQ (iface.getNameLengthMinusArg (5 ), 9u );
305
306
306
307
// Default implementation can be overridden.
307
- auto funcOp = FuncOp::create (UnknownLoc::get (&context), " function" ,
308
- FunctionType::get (&context, {}, {}));
309
- ASSERT_FALSE (isa<TestExternalOpInterface>(funcOp.getOperation ()));
308
+ OwningOpRef<FuncOp> funcOp =
309
+ FuncOp::create (UnknownLoc::get (&context), " function" ,
310
+ FunctionType::get (&context, {}, {}));
311
+ ASSERT_FALSE (isa<TestExternalOpInterface>(funcOp->getOperation ()));
310
312
FuncOp::attachInterface<TestExternalOpOverridingModel>(context);
311
- iface = dyn_cast<TestExternalOpInterface>(funcOp. getOperation ());
313
+ iface = dyn_cast<TestExternalOpInterface>(funcOp-> getOperation ());
312
314
ASSERT_TRUE (iface != nullptr );
313
315
EXPECT_EQ (iface.getNameLengthPlusArg (10 ), 22u );
314
316
EXPECT_EQ (iface.getNameLengthTimesArg (0 ), 42u );
@@ -317,8 +319,9 @@ TEST(InterfaceAttachment, Operation) {
317
319
318
320
// Another context doesn't have the interfaces registered.
319
321
MLIRContext other;
320
- auto otherModuleOp = ModuleOp::create (UnknownLoc::get (&other));
321
- ASSERT_FALSE (isa<TestExternalOpInterface>(otherModuleOp.getOperation ()));
322
+ OwningOpRef<ModuleOp> otherModuleOp =
323
+ ModuleOp::create (UnknownLoc::get (&other));
324
+ ASSERT_FALSE (isa<TestExternalOpInterface>(otherModuleOp->getOperation ()));
322
325
}
323
326
324
327
template <class ConcreteOp >
@@ -346,16 +349,16 @@ TEST(InterfaceAttachment, OperationDelayedContextConstruct) {
346
349
MLIRContext context (registry);
347
350
context.loadDialect <test::TestDialect>();
348
351
349
- ModuleOp module = ModuleOp::create (UnknownLoc::get (&context));
350
- OpBuilder builder (module );
352
+ OwningOpRef< ModuleOp> module = ModuleOp::create (UnknownLoc::get (&context));
353
+ OpBuilder builder (module -> getBody (), module -> getBody ()-> begin () );
351
354
auto opJ =
352
355
builder.create <test::OpJ>(builder.getUnknownLoc (), builder.getI32Type ());
353
356
auto opH =
354
357
builder.create <test::OpH>(builder.getUnknownLoc (), opJ.getResult ());
355
358
auto opI =
356
359
builder.create <test::OpI>(builder.getUnknownLoc (), opJ.getResult ());
357
360
358
- EXPECT_TRUE (isa<TestExternalOpInterface>(module . getOperation ()));
361
+ EXPECT_TRUE (isa<TestExternalOpInterface>(module -> getOperation ()));
359
362
EXPECT_TRUE (isa<TestExternalOpInterface>(opJ.getOperation ()));
360
363
EXPECT_TRUE (isa<TestExternalOpInterface>(opH.getOperation ()));
361
364
EXPECT_FALSE (isa<TestExternalOpInterface>(opI.getOperation ()));
@@ -373,23 +376,23 @@ TEST(InterfaceAttachment, OperationDelayedContextAppend) {
373
376
MLIRContext context;
374
377
context.loadDialect <test::TestDialect>();
375
378
376
- ModuleOp module = ModuleOp::create (UnknownLoc::get (&context));
377
- OpBuilder builder (module );
379
+ OwningOpRef< ModuleOp> module = ModuleOp::create (UnknownLoc::get (&context));
380
+ OpBuilder builder (module -> getBody (), module -> getBody ()-> begin () );
378
381
auto opJ =
379
382
builder.create <test::OpJ>(builder.getUnknownLoc (), builder.getI32Type ());
380
383
auto opH =
381
384
builder.create <test::OpH>(builder.getUnknownLoc (), opJ.getResult ());
382
385
auto opI =
383
386
builder.create <test::OpI>(builder.getUnknownLoc (), opJ.getResult ());
384
387
385
- EXPECT_FALSE (isa<TestExternalOpInterface>(module . getOperation ()));
388
+ EXPECT_FALSE (isa<TestExternalOpInterface>(module -> getOperation ()));
386
389
EXPECT_FALSE (isa<TestExternalOpInterface>(opJ.getOperation ()));
387
390
EXPECT_FALSE (isa<TestExternalOpInterface>(opH.getOperation ()));
388
391
EXPECT_FALSE (isa<TestExternalOpInterface>(opI.getOperation ()));
389
392
390
393
context.appendDialectRegistry (registry);
391
394
392
- EXPECT_TRUE (isa<TestExternalOpInterface>(module . getOperation ()));
395
+ EXPECT_TRUE (isa<TestExternalOpInterface>(module -> getOperation ()));
393
396
EXPECT_TRUE (isa<TestExternalOpInterface>(opJ.getOperation ()));
394
397
EXPECT_TRUE (isa<TestExternalOpInterface>(opH.getOperation ()));
395
398
EXPECT_FALSE (isa<TestExternalOpInterface>(opI.getOperation ()));
0 commit comments