[clang] 0481682 - [CFE][Codegen][In-progress] Remove CodeGenFunction::InitTempAlloca()

via cfe-commits cfe-commits at lists.llvm.org
Fri Oct 8 20:54:19 PDT 2021


Author: hsmahesha
Date: 2021-10-09T09:23:14+05:30
New Revision: 04816829968cf8aad0c71e8dc27a4a1e88c493a8

URL: https://github.com/llvm/llvm-project/commit/04816829968cf8aad0c71e8dc27a4a1e88c493a8
DIFF: https://github.com/llvm/llvm-project/commit/04816829968cf8aad0c71e8dc27a4a1e88c493a8.diff

LOG: [CFE][Codegen][In-progress] Remove CodeGenFunction::InitTempAlloca()

CodeGenFunction::InitTempAlloca() inits the static alloca within the
entry block which may *not* necessarily be correct always.

For example, the current instruction insertion point (pointed by the
instruction builder) could be a program point which is hit multiple
times during the program execution, and it is expected that the static
alloca is initialized every time the program point is hit.

Hence remove CodeGenFunction::InitTempAlloca(), and initialize the
static alloca where the instruction insertion point is at the moment.

This patch, as a starting attempt, removes the calls to
CodeGenFunction::InitTempAlloca() which do not have any side effect on
the lit tests.

Reviewed By: rjmccall

Differential Revision: https://reviews.llvm.org/D111293

Added: 
    

Modified: 
    clang/lib/CodeGen/CodeGenFunction.cpp

Removed: 
    


################################################################################
diff  --git a/clang/lib/CodeGen/CodeGenFunction.cpp b/clang/lib/CodeGen/CodeGenFunction.cpp
index 13bc366b6c2f..0b336d410a07 100644
--- a/clang/lib/CodeGen/CodeGenFunction.cpp
+++ b/clang/lib/CodeGen/CodeGenFunction.cpp
@@ -981,7 +981,8 @@ void CodeGenFunction::StartFunction(GlobalDecl GD, QualType RetTy,
   // precise source location of the checked return statement.
   if (requiresReturnValueCheck()) {
     ReturnLocation = CreateDefaultAlignTempAlloca(Int8PtrTy, "return.sloc.ptr");
-    InitTempAlloca(ReturnLocation, llvm::ConstantPointerNull::get(Int8PtrTy));
+    Builder.CreateStore(llvm::ConstantPointerNull::get(Int8PtrTy),
+                        ReturnLocation);
   }
 
   // Emit subprogram debug descriptor.


        


More information about the cfe-commits mailing list