24 lines · plain
1; RUN: opt -passes=print-memderefs -S < %s -disable-output -use-dereferenceable-at-point-semantics 2>&1 | FileCheck %s --check-prefixes=CHECK2 3target datalayout = "e-i32:32:64"4 5; For the abstract machine model (before RS4GC), gc managed objects6; conceptually live forever. But there may be non-managed objects which are7; freed.8; CHECK-LABEL: 'abstract_model'9; CHECK: %gc_ptr10; CHECK-NOT: %other_ptr11; FIXME: Can infer the gc pointer case12define void @abstract_model(ptr addrspace(1) dereferenceable(8) %gc_ptr,13 ptr dereferenceable(8) %other_ptr)14 gc "statepoint-example" {15entry:16 call void @mayfree()17 load i32, ptr addrspace(1) %gc_ptr18 load i32, ptr %other_ptr19 ret void20}21 22; Can free any object accessible in memory23declare void @mayfree()24