From 926fb685deadfed2042163145ac52311914bf5c2 Mon Sep 17 00:00:00 2001 From: Mehdi Amini Date: Mon, 12 Aug 2019 19:12:42 -0700 Subject: Express ownership transfer in PassManager API through std::unique_ptr (NFC) Since raw pointers are always passed around for IR construct without implying any ownership transfer, it can be error prone to have implicit ownership transferred the same way. For example this code can seem harmless: Pass *pass = .... pm.addPass(pass); pm.addPass(pass); pm.run(module); PiperOrigin-RevId: 263053082 --- mlir/lib/Transforms/LoopUnrollAndJam.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'mlir/lib/Transforms/LoopUnrollAndJam.cpp') diff --git a/mlir/lib/Transforms/LoopUnrollAndJam.cpp b/mlir/lib/Transforms/LoopUnrollAndJam.cpp index 7650db1ce27..362aa8683cc 100644 --- a/mlir/lib/Transforms/LoopUnrollAndJam.cpp +++ b/mlir/lib/Transforms/LoopUnrollAndJam.cpp @@ -82,8 +82,9 @@ struct LoopUnrollAndJam : public FunctionPass { }; } // end anonymous namespace -FunctionPassBase *mlir::createLoopUnrollAndJamPass(int unrollJamFactor) { - return new LoopUnrollAndJam( +std::unique_ptr +mlir::createLoopUnrollAndJamPass(int unrollJamFactor) { + return llvm::make_unique( unrollJamFactor == -1 ? None : Optional(unrollJamFactor)); } -- cgit v1.2.3