summaryrefslogtreecommitdiff
path: root/test/passes/post-assemblyscript-finalize.wast
blob: 6de35b471d0a74c27191936981a02be5208b8281 (plain)
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)
  )
 )
)