diff options
author | Bjorn Pettersson <bjorn.a.pettersson@ericsson.com> | 2023-08-01 18:56:19 +0200 |
---|---|---|
committer | Bjorn Pettersson <bjorn.a.pettersson@ericsson.com> | 2023-08-03 22:54:33 +0200 |
commit | 2bdc86484d03234f5155b0865f33009d0da74da9 (patch) | |
tree | eb3c1f501cff59213afa15727136bfbeb2a79cbe /clang/lib/CodeGen/CGBlocks.cpp | |
parent | deec9e76747c7acee6264593fb2af626dec06644 (diff) | |
download | llvm-2bdc86484d03234f5155b0865f33009d0da74da9.zip llvm-2bdc86484d03234f5155b0865f33009d0da74da9.tar.gz llvm-2bdc86484d03234f5155b0865f33009d0da74da9.tar.bz2 |
[clang][CodeGen] Drop some typed pointer bitcasts
Differential Revision: https://reviews.llvm.org/D156911
Diffstat (limited to 'clang/lib/CodeGen/CGBlocks.cpp')
-rw-r--r-- | clang/lib/CodeGen/CGBlocks.cpp | 13 |
1 files changed, 4 insertions, 9 deletions
diff --git a/clang/lib/CodeGen/CGBlocks.cpp b/clang/lib/CodeGen/CGBlocks.cpp index 2023be8..a35bae9 100644 --- a/clang/lib/CodeGen/CGBlocks.cpp +++ b/clang/lib/CodeGen/CGBlocks.cpp @@ -942,7 +942,7 @@ llvm::Value *CodeGenFunction::EmitBlockLiteral(const CGBlockInfo &blockInfo) { if (CI.isNested()) byrefPointer = Builder.CreateLoad(src, "byref.capture"); else - byrefPointer = Builder.CreateBitCast(src.getPointer(), VoidPtrTy); + byrefPointer = src.getPointer(); // Write that void* into the capture field. Builder.CreateStore(byrefPointer, blockField); @@ -1667,7 +1667,6 @@ struct CallBlockRelease final : EHScopeStack::Cleanup { llvm::Value *BlockVarAddr; if (LoadBlockVarAddr) { BlockVarAddr = CGF.Builder.CreateLoad(Addr); - BlockVarAddr = CGF.Builder.CreateBitCast(BlockVarAddr, CGF.VoidPtrTy); } else { BlockVarAddr = Addr.getPointer(); } @@ -1975,9 +1974,7 @@ CodeGenFunction::GenerateCopyHelperFunction(const CGBlockInfo &blockInfo) { } case BlockCaptureEntityKind::BlockObject: { llvm::Value *srcValue = Builder.CreateLoad(srcField, "blockcopy.src"); - srcValue = Builder.CreateBitCast(srcValue, VoidPtrTy); - llvm::Value *dstAddr = - Builder.CreateBitCast(dstField.getPointer(), VoidPtrTy); + llvm::Value *dstAddr = dstField.getPointer(); llvm::Value *args[] = { dstAddr, srcValue, llvm::ConstantInt::get(Int32Ty, flags.getBitMask()) }; @@ -2774,10 +2771,8 @@ void CodeGenFunction::emitByrefStructureInit(const AutoVarEmission &emission) { void CodeGenFunction::BuildBlockRelease(llvm::Value *V, BlockFieldFlags flags, bool CanThrow) { llvm::FunctionCallee F = CGM.getBlockObjectDispose(); - llvm::Value *args[] = { - Builder.CreateBitCast(V, Int8PtrTy), - llvm::ConstantInt::get(Int32Ty, flags.getBitMask()) - }; + llvm::Value *args[] = {V, + llvm::ConstantInt::get(Int32Ty, flags.getBitMask())}; if (CanThrow) EmitRuntimeCallOrInvoke(F, args); |