[llvm] e1f9433 - Revert "[InlineCost] isKnownNonNullInCallee - handle also dereferenceable attribute"

Dávid Bolvanský via llvm-commits llvm-commits at lists.llvm.org
Thu Apr 6 07:54:40 PDT 2023


Author: Dávid Bolvanský
Date: 2023-04-06T16:54:26+02:00
New Revision: e1f94336e94e505a2562d508d48dc692fa57df75

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

LOG: Revert "[InlineCost] isKnownNonNullInCallee - handle also dereferenceable attribute"

This reverts commit 3b5ff3a67c1f0450a100dca34d899ecd3744cb36.

Added: 
    

Modified: 
    llvm/lib/Analysis/InlineCost.cpp
    llvm/test/Transforms/Inline/nonnull.ll

Removed: 
    


################################################################################
diff  --git a/llvm/lib/Analysis/InlineCost.cpp b/llvm/lib/Analysis/InlineCost.cpp
index 1eb4f2efb5a38..6877e44813f56 100644
--- a/llvm/lib/Analysis/InlineCost.cpp
+++ b/llvm/lib/Analysis/InlineCost.cpp
@@ -1732,7 +1732,7 @@ bool CallAnalyzer::isKnownNonNullInCallee(Value *V) {
   // parameter attribute, but that's a less interesting case because hopefully
   // the callee would already have been simplified based on that.
   if (Argument *A = dyn_cast<Argument>(V))
-    if (paramHasAttr(A, Attribute::NonNull) || paramHasAttr(A, Attribute::Dereferenceable))
+    if (paramHasAttr(A, Attribute::NonNull))
       return true;
 
   // Is this an alloca in the caller?  This is distinct from the attribute case

diff  --git a/llvm/test/Transforms/Inline/nonnull.ll b/llvm/test/Transforms/Inline/nonnull.ll
index 658ae47954ee1..5f8af7f78fde7 100644
--- a/llvm/test/Transforms/Inline/nonnull.ll
+++ b/llvm/test/Transforms/Inline/nonnull.ll
@@ -99,11 +99,10 @@ define void @caller3(ptr %arg) {
   ret void
 }
 
-; Positive test - arg is known non null
 define void @caller4(ptr dereferenceable(8) %arg) {
 ; CHECK-LABEL: define void @caller4
 ; CHECK-SAME: (ptr dereferenceable(8) [[ARG:%.*]]) {
-; CHECK-NEXT:    call void @bar()
+; CHECK-NEXT:    call void @callee(ptr dereferenceable(8) [[ARG]])
 ; CHECK-NEXT:    ret void
 ;
   call void @callee(ptr dereferenceable(8) %arg)
@@ -123,24 +122,7 @@ define void @caller5(ptr dereferenceable(8) %arg) {
 define void @caller6(ptr %arg) {
 ; CHECK-LABEL: define void @caller6
 ; CHECK-SAME: (ptr [[ARG:%.*]]) {
-; CHECK-NEXT:    [[CMP_I:%.*]] = icmp eq ptr [[ARG]], null
-; CHECK-NEXT:    br i1 [[CMP_I]], label [[EXPENSIVE_I:%.*]], label [[DONE_I:%.*]]
-; CHECK:       expensive.i:
-; CHECK-NEXT:    call void @foo()
-; CHECK-NEXT:    call void @foo()
-; CHECK-NEXT:    call void @foo()
-; CHECK-NEXT:    call void @foo()
-; CHECK-NEXT:    call void @foo()
-; CHECK-NEXT:    call void @foo()
-; CHECK-NEXT:    call void @foo()
-; CHECK-NEXT:    call void @foo()
-; CHECK-NEXT:    call void @foo()
-; CHECK-NEXT:    call void @foo()
-; CHECK-NEXT:    br label [[CALLEE_EXIT:%.*]]
-; CHECK:       done.i:
-; CHECK-NEXT:    call void @bar()
-; CHECK-NEXT:    br label [[CALLEE_EXIT]]
-; CHECK:       callee.exit:
+; CHECK-NEXT:    call void @callee(ptr dereferenceable(8) [[ARG]])
 ; CHECK-NEXT:    ret void
 ;
   call void @callee(ptr dereferenceable(8) %arg)


        


More information about the llvm-commits mailing list