[llvm] 69fae50 - [test] precommit another test for point-in-time deref semantics

Philip Reames via llvm-commits llvm-commits at lists.llvm.org
Mon Mar 22 19:11:25 PDT 2021


Author: Philip Reames
Date: 2021-03-22T19:11:19-07:00
New Revision: 69fae504bb9c008460e36419dfd2302e43a417ca

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

LOG: [test] precommit another test for point-in-time deref semantics

Added: 
    llvm/test/Analysis/ValueTracking/deref-abstract-gc.ll

Modified: 
    

Removed: 
    


################################################################################
diff  --git a/llvm/test/Analysis/ValueTracking/deref-abstract-gc.ll b/llvm/test/Analysis/ValueTracking/deref-abstract-gc.ll
new file mode 100644
index 000000000000..bfa1f48797f2
--- /dev/null
+++ b/llvm/test/Analysis/ValueTracking/deref-abstract-gc.ll
@@ -0,0 +1,25 @@
+; RUN: opt -print-memderefs -analyze -S < %s -enable-new-pm=0 -use-dereferenceable-at-point-semantics=1 | FileCheck %s --check-prefixes=CHECK
+; RUN: opt -passes=print-memderefs -S < %s -disable-output  -use-dereferenceable-at-point-semantics=1 2>&1 | FileCheck %s --check-prefixes=CHECK
+
+target datalayout = "e-i32:32:64"
+
+; For the abstract machine model (before RS4GC), gc managed objects
+; conceptually live forever.  But there may be non-managed objects which are
+; freed.
+; CHECK-LABEL: 'abstract_model'
+; CHECK-NOT: %gc_ptr
+; CHECK-NOT: %other_ptr
+; FIXME: Can infer the gc pointer case
+define void @abstract_model(i32 addrspace(1)* dereferenceable(8) %gc_ptr,
+                            i32* dereferenceable(8) %other_ptr)
+    gc "statepoint-example" {
+; CHECK: The following are dereferenceable:
+entry:
+  call void @mayfree()
+  load i32, i32 addrspace(1)* %gc_ptr
+  load i32, i32* %other_ptr
+  ret void
+}
+
+; Can free any object accessible in memory
+declare void @mayfree()


        


More information about the llvm-commits mailing list