[llvm] 70056d0 - Revert "[InstCombine] Don't check for alloc fn before fetching object size"

Nikita Popov via llvm-commits llvm-commits at lists.llvm.org
Thu Jul 21 02:00:56 PDT 2022


Author: Nikita Popov
Date: 2022-07-21T10:59:12+02:00
New Revision: 70056d04e2dc928ece0fbc58a85f3af7d5940b34

URL: https://github.com/llvm/llvm-project/commit/70056d04e2dc928ece0fbc58a85f3af7d5940b34
DIFF: https://github.com/llvm/llvm-project/commit/70056d04e2dc928ece0fbc58a85f3af7d5940b34.diff

LOG: Revert "[InstCombine] Don't check for alloc fn before fetching object size"

This reverts commit c72c22c04df992c95c5912d0075e5263c88f9fec.

This affected an Analysis test that I missed. Reverting for now.

Added: 
    

Modified: 
    llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
    llvm/test/Transforms/InstCombine/deref-alloc-fns.ll

Removed: 
    


################################################################################
diff  --git a/llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp b/llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
index b1106d655535c..6a2cfd63573a4 100644
--- a/llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
+++ b/llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
@@ -2885,7 +2885,7 @@ bool InstCombinerImpl::annotateAnyAllocSite(CallBase &Call,
   // of the respective allocator declaration with generic attributes.
   bool Changed = false;
 
-  if (Call.getType()->isPointerTy()) {
+  if (isAllocationFn(&Call, TLI)) {
     uint64_t Size;
     ObjectSizeOpts Opts;
     if (getObjectSize(&Call, Size, DL, TLI, Opts) && Size > 0) {

diff  --git a/llvm/test/Transforms/InstCombine/deref-alloc-fns.ll b/llvm/test/Transforms/InstCombine/deref-alloc-fns.ll
index 41a2427b683d3..0b529358f6bee 100644
--- a/llvm/test/Transforms/InstCombine/deref-alloc-fns.ll
+++ b/llvm/test/Transforms/InstCombine/deref-alloc-fns.ll
@@ -13,8 +13,6 @@ declare noalias i8* @aligned_alloc(i64, i64)
 declare noalias align 16 i8* @memalign(i64, i64)
 ; new[](unsigned int, align_val_t)
 declare noalias i8* @_ZnajSt11align_val_t(i64 %size, i64 %align)
-declare i8* @my_malloc(i64) allocsize(0)
-declare i8* @my_calloc(i64, i64) allocsize(0, 1)
 
 @.str = private unnamed_addr constant [6 x i8] c"hello\00", align 1
 
@@ -356,20 +354,3 @@ define noalias i8* @op_new_align() {
   ret i8* %call
 }
 
-define i8* @my_malloc_constant_size() {
-; CHECK-LABEL: @my_malloc_constant_size(
-; CHECK-NEXT:    [[CALL:%.*]] = call dereferenceable_or_null(32) i8* @my_malloc(i64 32)
-; CHECK-NEXT:    ret i8* [[CALL]]
-;
-  %call = call i8* @my_malloc(i64 32)
-  ret i8* %call
-}
-
-define i8* @my_calloc_constant_size() {
-; CHECK-LABEL: @my_calloc_constant_size(
-; CHECK-NEXT:    [[CALL:%.*]] = call dereferenceable_or_null(128) i8* @my_calloc(i64 32, i64 4)
-; CHECK-NEXT:    ret i8* [[CALL]]
-;
-  %call = call i8* @my_calloc(i64 32, i64 4)
-  ret i8* %call
-}


        


More information about the llvm-commits mailing list