[llvm] 6e6dee9 - [llvm][Coroutines] Avoid Type::getPointerTo() (NFC) (#110520)

via llvm-commits llvm-commits at lists.llvm.org
Mon Sep 30 10:03:01 PDT 2024


Author: Youngsuk Kim
Date: 2024-09-30T13:02:58-04:00
New Revision: 6e6dee944b6c980b35bfa6ccf0a999cbbb5e2779

URL: https://github.com/llvm/llvm-project/commit/6e6dee944b6c980b35bfa6ccf0a999cbbb5e2779
DIFF: https://github.com/llvm/llvm-project/commit/6e6dee944b6c980b35bfa6ccf0a999cbbb5e2779.diff

LOG: [llvm][Coroutines] Avoid Type::getPointerTo() (NFC) (#110520)

`llvm::Type::getPointerTo()` is to be deprecated & removed soon.

In `Lowerer::lowerCoroDone`, also remove the no-op bitcast (1st
parameter of `llvm::coro::done` intrinsic is `ptr`).

Added: 
    

Modified: 
    llvm/lib/Transforms/Coroutines/CoroEarly.cpp

Removed: 
    


################################################################################
diff  --git a/llvm/lib/Transforms/Coroutines/CoroEarly.cpp b/llvm/lib/Transforms/Coroutines/CoroEarly.cpp
index 5f8efd1a8f32ea..093a81648c92e1 100644
--- a/llvm/lib/Transforms/Coroutines/CoroEarly.cpp
+++ b/llvm/lib/Transforms/Coroutines/CoroEarly.cpp
@@ -34,9 +34,7 @@ class Lowerer : public coro::LowererBase {
 public:
   Lowerer(Module &M)
       : LowererBase(M), Builder(Context),
-        AnyResumeFnPtrTy(FunctionType::get(Type::getVoidTy(Context), Int8Ptr,
-                                           /*isVarArg=*/false)
-                             ->getPointerTo()) {}
+        AnyResumeFnPtrTy(PointerType::getUnqual(Context)) {}
   void lowerEarlyIntrinsics(Function &F);
 };
 }
@@ -91,11 +89,9 @@ void Lowerer::lowerCoroDone(IntrinsicInst *II) {
   static_assert(coro::Shape::SwitchFieldIndex::Resume == 0,
                 "resume function not at offset zero");
   auto *FrameTy = Int8Ptr;
-  PointerType *FramePtrTy = FrameTy->getPointerTo();
 
   Builder.SetInsertPoint(II);
-  auto *BCI = Builder.CreateBitCast(Operand, FramePtrTy);
-  auto *Load = Builder.CreateLoad(FrameTy, BCI);
+  auto *Load = Builder.CreateLoad(FrameTy, Operand);
   auto *Cond = Builder.CreateICmpEQ(Load, NullPtr);
 
   II->replaceAllUsesWith(Cond);
@@ -128,10 +124,9 @@ void Lowerer::lowerCoroNoop(IntrinsicInst *II) {
 
     // Create a noop.frame struct type.
     StructType *FrameTy = StructType::create(C, "NoopCoro.Frame");
-    auto *FramePtrTy = FrameTy->getPointerTo();
-    auto *FnTy = FunctionType::get(Type::getVoidTy(C), FramePtrTy,
+    auto *FnTy = FunctionType::get(Type::getVoidTy(C), Builder.getPtrTy(0),
                                    /*isVarArg=*/false);
-    auto *FnPtrTy = FnTy->getPointerTo();
+    auto *FnPtrTy = Builder.getPtrTy(0);
     FrameTy->setBody({FnPtrTy, FnPtrTy});
 
     // Create a Noop function that does nothing.


        


More information about the llvm-commits mailing list