brintos

brintos / llvm-project-archived public Read only

0
0
Text · 786 B · 4b63c03 Raw
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