[Coroutines] Fix warnings

This patch fixes:

  llvm/include/llvm/Transforms/Coroutines/CoroSplit.h:26:1: note: did
  you mean struct here?

  llvm/lib/Transforms/Coroutines/CoroSplit.cpp:2225:16: error: moving
  a local object in a return statement prevents copy elision
  [-Werror,-Wpessimizing-move]

  llvm/lib/Transforms/Coroutines/CoroSplit.cpp:2236:16: error: moving
  a local object in a return statement prevents copy elision
  [-Werror,-Wpessimizing-move]
diff --git a/llvm/include/llvm/Transforms/Coroutines/CoroSplit.h b/llvm/include/llvm/Transforms/Coroutines/CoroSplit.h
index 74ee948..52b6c49 100644
--- a/llvm/include/llvm/Transforms/Coroutines/CoroSplit.h
+++ b/llvm/include/llvm/Transforms/Coroutines/CoroSplit.h
@@ -23,7 +23,7 @@
 
 namespace coro {
 class BaseABI;
-class Shape;
+struct Shape;
 } // namespace coro
 
 struct CoroSplitPass : PassInfoMixin<CoroSplitPass> {
diff --git a/llvm/lib/Transforms/Coroutines/CoroSplit.cpp b/llvm/lib/Transforms/Coroutines/CoroSplit.cpp
index 6fdead9..4fbda0771 100644
--- a/llvm/lib/Transforms/Coroutines/CoroSplit.cpp
+++ b/llvm/lib/Transforms/Coroutines/CoroSplit.cpp
@@ -2222,7 +2222,7 @@
         std::unique_ptr<coro::BaseABI> ABI =
             CreateNewABI(F, S, coro::isTriviallyMaterializable);
         ABI->init();
-        return std::move(ABI);
+        return ABI;
       }),
       OptimizeFrame(OptimizeFrame) {}
 
@@ -2233,7 +2233,7 @@
     : CreateAndInitABI([=](Function &F, coro::Shape &S) {
         std::unique_ptr<coro::BaseABI> ABI = CreateNewABI(F, S, IsMatCallback);
         ABI->init();
-        return std::move(ABI);
+        return ABI;
       }),
       OptimizeFrame(OptimizeFrame) {}