1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
|
;; FinalizeARC part of assemblyscript/tests/compiler/rc/optimize
(module
(import "rt" "retain" (func $~lib/rt/pure/__retain (param i32) (result i32)))
(import "rt" "release" (func $~lib/rt/pure/__release (param i32)))
(import "rt" "alloc" (func $~lib/rt/tlsf/__alloc (param i32) (param i32) (result i32)))
(func $eliminates.unnecessaryAllocation
(call $~lib/rt/pure/__release
(call $~lib/rt/pure/__retain
(call $~lib/rt/tlsf/__alloc
(i32.const 1)
(i32.const 0)
)
)
)
)
(func $eliminates.unnecessaryPair (param $0 i32)
(call $~lib/rt/pure/__release
(call $~lib/rt/pure/__retain
(local.get $0)
)
)
)
(func $eliminates.unnecessaryStaticPair
(call $~lib/rt/pure/__release
(call $~lib/rt/pure/__retain
(i32.const 272)
)
)
)
(func $eliminates.unnecessaryStaticRetain
(drop
(call $~lib/rt/pure/__retain
(i32.const 272)
)
)
)
(func $eliminates.unnecessaryStaticRelease
(call $~lib/rt/pure/__release
(i32.const 272)
)
)
(func $keeps.dynamicRetain (param $0 i32)
(local.set $0
(call $~lib/rt/pure/__retain
(local.get $0)
)
)
)
(func $keeps.dynamicRelease (param $0 i32)
(call $~lib/rt/pure/__release
(local.get $0)
)
)
)
|