[PATCH] D102822: [Clang][CodeGen] Set the size of llvm.lifetime to unknown for scalable types.

Sander de Smalen via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Thu Jun 3 00:36:31 PDT 2021


sdesmalen added inline comments.


================
Comment at: clang/lib/CodeGen/CGDecl.cpp:1327
+  if (Size.isScalable())
+    Size = llvm::TypeSize::Fixed(-1);
+
----------------
Instead of updating `Size` here, can you change line 1332 to be:

  llvm::Value *SizeV = llvm::ConstantInt::get(Int64Ty, Size.isScalable() ? -1 : Size.getFixedValue())


================
Comment at: clang/lib/CodeGen/CGDecl.cpp:1332
          "Pointer should be in alloca address space");
   llvm::Value *SizeV = llvm::ConstantInt::get(Int64Ty, Size);
   Addr = Builder.CreateBitCast(Addr, AllocaInt8PtrTy);
----------------
Does `ConstantInt` take `TypeSize Size` as argument?


================
Comment at: clang/lib/CodeGen/CGDecl.cpp:1558
           emission.SizeForLifetimeMarkers =
-              size.isScalable() ? EmitLifetimeStart(-1, AllocaAddr.getPointer())
-                                : EmitLifetimeStart(size.getFixedSize(),
-                                                    AllocaAddr.getPointer());
+              EmitLifetimeStart(size, AllocaAddr.getPointer());
         }
----------------
nit: Given you have to update this line, maybe also to capitalize `size -> Size`?


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D102822/new/

https://reviews.llvm.org/D102822



More information about the cfe-commits mailing list