summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2016-01-31 18:32:53 -0800
committerAlon Zakai <alonzakai@gmail.com>2016-01-31 18:32:53 -0800
commit6defea9c1b451051714cabbcdd8fbe22872c78c9 (patch)
tree52e8010b460517c9d7a0831f26a90df0179bd3ce /test
parent36df20b097e074c3f37a6a2b2bc0bb3b174cdd30 (diff)
downloadbinaryen-6defea9c1b451051714cabbcdd8fbe22872c78c9.tar.gz
binaryen-6defea9c1b451051714cabbcdd8fbe22872c78c9.tar.bz2
binaryen-6defea9c1b451051714cabbcdd8fbe22872c78c9.zip
optimize load offsets from emscripten output
Diffstat (limited to 'test')
-rw-r--r--test/emcc_O2_hello_world.fromasm731
-rw-r--r--test/emcc_hello_world.fromasm132
-rw-r--r--test/passes/post-emscripten.txt29
-rw-r--r--test/passes/post-emscripten.wast42
4 files changed, 330 insertions, 604 deletions
diff --git a/test/emcc_O2_hello_world.fromasm b/test/emcc_O2_hello_world.fromasm
index 574759517..ab2634757 100644
--- a/test/emcc_O2_hello_world.fromasm
+++ b/test/emcc_O2_hello_world.fromasm
@@ -831,42 +831,36 @@
)
)
(set_local $i10
- (i32.load align=4
- (i32.add
- (i32.const 480)
- (i32.shl
- (i32.add
+ (i32.load offset=480 align=4
+ (i32.shl
+ (i32.add
+ (i32.or
(i32.or
(i32.or
(i32.or
- (i32.or
- (get_local $i8)
- (get_local $i4)
- )
- (get_local $i15)
+ (get_local $i8)
+ (get_local $i4)
)
- (get_local $i7)
+ (get_local $i15)
)
- (get_local $i5)
- )
- (i32.shr_u
- (get_local $i3)
- (get_local $i5)
+ (get_local $i7)
)
+ (get_local $i5)
+ )
+ (i32.shr_u
+ (get_local $i3)
+ (get_local $i5)
)
- (i32.const 2)
)
+ (i32.const 2)
)
)
)
(set_local $i5
(i32.sub
(i32.and
- (i32.load align=4
- (i32.add
- (get_local $i10)
- (i32.const 4)
- )
+ (i32.load offset=4 align=4
+ (get_local $i10)
)
(i32.const -8)
)
@@ -881,11 +875,8 @@
)
(loop $while-out$3 $while-in$4
(set_local $i10
- (i32.load align=4
- (i32.add
- (get_local $i3)
- (i32.const 16)
- )
+ (i32.load offset=16 align=4
+ (get_local $i3)
)
)
(if_else
@@ -895,11 +886,8 @@
)
(block
(set_local $i15
- (i32.load align=4
- (i32.add
- (get_local $i3)
- (i32.const 20)
- )
+ (i32.load offset=20 align=4
+ (get_local $i3)
)
)
(if_else
@@ -928,11 +916,8 @@
(set_local $i10
(i32.sub
(i32.and
- (i32.load align=4
- (i32.add
- (get_local $i23)
- (i32.const 4)
- )
+ (i32.load offset=4 align=4
+ (get_local $i23)
)
(i32.const -8)
)
@@ -990,19 +975,13 @@
(call_import $_abort)
)
(set_local $i5
- (i32.load align=4
- (i32.add
- (get_local $i22)
- (i32.const 24)
- )
+ (i32.load offset=24 align=4
+ (get_local $i22)
)
)
(set_local $i12
- (i32.load align=4
- (i32.add
- (get_local $i22)
- (i32.const 12)
- )
+ (i32.load offset=12 align=4
+ (get_local $i22)
)
)
(block $do-once$5
@@ -1150,11 +1129,8 @@
)
(block
(set_local $i14
- (i32.load align=4
- (i32.add
- (get_local $i22)
- (i32.const 8)
- )
+ (i32.load offset=8 align=4
+ (get_local $i22)
)
)
(if
@@ -1216,11 +1192,8 @@
(get_local $i5)
(block
(set_local $i12
- (i32.load align=4
- (i32.add
- (get_local $i22)
- (i32.const 28)
- )
+ (i32.load offset=28 align=4
+ (get_local $i22)
)
)
(set_local $i7
@@ -1333,11 +1306,8 @@
(get_local $i5)
)
(set_local $i7
- (i32.load align=4
- (i32.add
- (get_local $i22)
- (i32.const 16)
- )
+ (i32.load offset=16 align=4
+ (get_local $i22)
)
)
(block $do-once$9
@@ -1370,11 +1340,8 @@
)
)
(set_local $i7
- (i32.load align=4
- (i32.add
- (get_local $i22)
- (i32.const 20)
- )
+ (i32.load offset=20 align=4
+ (get_local $i22)
)
)
(if
@@ -1774,13 +1741,10 @@
)
)
(set_local $i4
- (i32.load align=4
- (i32.add
- (i32.const 480)
- (i32.shl
- (get_local $i32)
- (i32.const 2)
- )
+ (i32.load offset=480 align=4
+ (i32.shl
+ (get_local $i32)
+ (i32.const 2)
)
)
)
@@ -1839,11 +1803,8 @@
(loop $while-out$10 $while-in$11
(set_local $i16
(i32.and
- (i32.load align=4
- (i32.add
- (get_local $i17)
- (i32.const 4)
- )
+ (i32.load offset=4 align=4
+ (get_local $i17)
)
(i32.const -8)
)
@@ -1898,11 +1859,8 @@
)
)
(set_local $i9
- (i32.load align=4
- (i32.add
- (get_local $i17)
- (i32.const 20)
- )
+ (i32.load offset=20 align=4
+ (get_local $i17)
)
)
(set_local $i17
@@ -2120,31 +2078,28 @@
)
)
(set_local $i42
- (i32.load align=4
- (i32.add
- (i32.const 480)
- (i32.shl
- (i32.add
+ (i32.load offset=480 align=4
+ (i32.shl
+ (i32.add
+ (i32.or
(i32.or
(i32.or
(i32.or
- (i32.or
- (get_local $i4)
- (get_local $i14)
- )
- (get_local $i2)
+ (get_local $i4)
+ (get_local $i14)
)
- (get_local $i3)
+ (get_local $i2)
)
- (get_local $i8)
- )
- (i32.shr_u
- (get_local $i7)
- (get_local $i8)
+ (get_local $i3)
)
+ (get_local $i8)
+ )
+ (i32.shr_u
+ (get_local $i7)
+ (get_local $i8)
)
- (i32.const 2)
)
+ (i32.const 2)
)
)
)
@@ -2195,11 +2150,8 @@
(set_local $i8
(i32.sub
(i32.and
- (i32.load align=4
- (i32.add
- (get_local $i38)
- (i32.const 4)
- )
+ (i32.load offset=4 align=4
+ (get_local $i38)
)
(i32.const -8)
)
@@ -2227,11 +2179,8 @@
)
)
(set_local $i7
- (i32.load align=4
- (i32.add
- (get_local $i38)
- (i32.const 16)
- )
+ (i32.load offset=16 align=4
+ (get_local $i38)
)
)
(if
@@ -2253,11 +2202,8 @@
)
)
(set_local $i38
- (i32.load align=4
- (i32.add
- (get_local $i38)
- (i32.const 20)
- )
+ (i32.load offset=20 align=4
+ (get_local $i38)
)
)
(if_else
@@ -2333,19 +2279,13 @@
(call_import $_abort)
)
(set_local $i3
- (i32.load align=4
- (i32.add
- (get_local $i44)
- (i32.const 24)
- )
+ (i32.load offset=24 align=4
+ (get_local $i44)
)
)
(set_local $i7
- (i32.load align=4
- (i32.add
- (get_local $i44)
- (i32.const 12)
- )
+ (i32.load offset=12 align=4
+ (get_local $i44)
)
)
(block $do-once$14
@@ -2493,11 +2433,8 @@
)
(block
(set_local $i2
- (i32.load align=4
- (i32.add
- (get_local $i44)
- (i32.const 8)
- )
+ (i32.load offset=8 align=4
+ (get_local $i44)
)
)
(if
@@ -2559,11 +2496,8 @@
(get_local $i3)
(block
(set_local $i7
- (i32.load align=4
- (i32.add
- (get_local $i44)
- (i32.const 28)
- )
+ (i32.load offset=28 align=4
+ (get_local $i44)
)
)
(set_local $i15
@@ -2676,11 +2610,8 @@
(get_local $i3)
)
(set_local $i15
- (i32.load align=4
- (i32.add
- (get_local $i44)
- (i32.const 16)
- )
+ (i32.load offset=16 align=4
+ (get_local $i44)
)
)
(block $do-once$18
@@ -2713,11 +2644,8 @@
)
)
(set_local $i15
- (i32.load align=4
- (i32.add
- (get_local $i44)
- (i32.const 20)
- )
+ (i32.load offset=20 align=4
+ (get_local $i44)
)
)
(if
@@ -3129,11 +3057,8 @@
(if
(i32.eq
(i32.and
- (i32.load align=4
- (i32.add
- (get_local $i7)
- (i32.const 4)
- )
+ (i32.load offset=4 align=4
+ (get_local $i7)
)
(i32.const -8)
)
@@ -3796,11 +3721,8 @@
)
)
(set_local $i50
- (i32.load align=4
- (i32.add
- (get_local $i50)
- (i32.const 8)
- )
+ (i32.load offset=8 align=4
+ (get_local $i50)
)
)
(if
@@ -4328,11 +4250,8 @@
)
)
(set_local $i63
- (i32.load align=4
- (i32.add
- (get_local $i63)
- (i32.const 8)
- )
+ (i32.load offset=8 align=4
+ (get_local $i63)
)
)
(br_if
@@ -4352,11 +4271,8 @@
)
(i32.eq
(i32.and
- (i32.load align=4
- (i32.add
- (get_local $i67)
- (i32.const 12)
- )
+ (i32.load offset=12 align=4
+ (get_local $i67)
)
(i32.const 8)
)
@@ -4517,11 +4433,8 @@
)
)
(set_local $i63
- (i32.load align=4
- (i32.add
- (get_local $i63)
- (i32.const 8)
- )
+ (i32.load offset=8 align=4
+ (get_local $i63)
)
)
(if
@@ -4546,11 +4459,8 @@
(if_else
(i32.eq
(i32.and
- (i32.load align=4
- (i32.add
- (get_local $i70)
- (i32.const 12)
- )
+ (i32.load offset=12 align=4
+ (get_local $i70)
)
(i32.const 8)
)
@@ -4709,11 +4619,8 @@
)
)
(set_local $i62
- (i32.load align=4
- (i32.add
- (get_local $i43)
- (i32.const 4)
- )
+ (i32.load offset=4 align=4
+ (get_local $i43)
)
)
(if_else
@@ -4745,19 +4652,13 @@
)
(block
(set_local $i54
- (i32.load align=4
- (i32.add
- (get_local $i43)
- (i32.const 24)
- )
+ (i32.load offset=24 align=4
+ (get_local $i43)
)
)
(set_local $i55
- (i32.load align=4
- (i32.add
- (get_local $i43)
- (i32.const 12)
- )
+ (i32.load offset=12 align=4
+ (get_local $i43)
)
)
(block $do-once$33
@@ -4905,11 +4806,8 @@
)
(block
(set_local $i5
- (i32.load align=4
- (i32.add
- (get_local $i43)
- (i32.const 8)
- )
+ (i32.load offset=8 align=4
+ (get_local $i43)
)
)
(if
@@ -4974,11 +4872,8 @@
$label$break$L331
)
(set_local $i55
- (i32.load align=4
- (i32.add
- (get_local $i43)
- (i32.const 28)
- )
+ (i32.load offset=28 align=4
+ (get_local $i43)
)
)
(set_local $i5
@@ -5129,11 +5024,8 @@
)
)
(set_local $i45
- (i32.load align=4
- (i32.add
- (get_local $i5)
- (i32.const 4)
- )
+ (i32.load offset=4 align=4
+ (get_local $i5)
)
)
(br_if
@@ -5172,19 +5064,13 @@
)
(block
(set_local $i45
- (i32.load align=4
- (i32.add
- (get_local $i43)
- (i32.const 8)
- )
+ (i32.load offset=8 align=4
+ (get_local $i43)
)
)
(set_local $i55
- (i32.load align=4
- (i32.add
- (get_local $i43)
- (i32.const 12)
- )
+ (i32.load offset=12 align=4
+ (get_local $i43)
)
)
(set_local $i54
@@ -5215,11 +5101,8 @@
)
(br_if
(i32.eq
- (i32.load align=4
- (i32.add
- (get_local $i45)
- (i32.const 12)
- )
+ (i32.load offset=12 align=4
+ (get_local $i45)
)
(get_local $i43)
)
@@ -5722,11 +5605,8 @@
(if
(i32.eq
(i32.and
- (i32.load align=4
- (i32.add
- (get_local $i62)
- (i32.const 4)
- )
+ (i32.load offset=4 align=4
+ (get_local $i62)
)
(i32.const -8)
)
@@ -5970,11 +5850,8 @@
(set_local $i53
(i32.add
(get_local $i63)
- (i32.load align=4
- (i32.add
- (get_local $i71)
- (i32.const 4)
- )
+ (i32.load offset=4 align=4
+ (get_local $i71)
)
)
)
@@ -5993,11 +5870,8 @@
)
)
(set_local $i71
- (i32.load align=4
- (i32.add
- (get_local $i71)
- (i32.const 8)
- )
+ (i32.load offset=8 align=4
+ (get_local $i71)
)
)
(br $while-in$45)
@@ -6591,11 +6465,8 @@
(if
(i32.eq
(i32.and
- (i32.load align=4
- (i32.add
- (get_local $i62)
- (i32.const 4)
- )
+ (i32.load offset=4 align=4
+ (get_local $i62)
)
(i32.const -8)
)
@@ -7244,19 +7115,13 @@
)
(block
(set_local $i7
- (i32.load align=4
- (i32.add
- (get_local $i8)
- (i32.const 8)
- )
+ (i32.load offset=8 align=4
+ (get_local $i8)
)
)
(set_local $i10
- (i32.load align=4
- (i32.add
- (get_local $i8)
- (i32.const 12)
- )
+ (i32.load offset=12 align=4
+ (get_local $i8)
)
)
(set_local $i14
@@ -7286,11 +7151,8 @@
)
(if
(i32.ne
- (i32.load align=4
- (i32.add
- (get_local $i7)
- (i32.const 12)
- )
+ (i32.load offset=12 align=4
+ (get_local $i7)
)
(get_local $i8)
)
@@ -7388,19 +7250,13 @@
)
)
(set_local $i7
- (i32.load align=4
- (i32.add
- (get_local $i8)
- (i32.const 24)
- )
+ (i32.load offset=24 align=4
+ (get_local $i8)
)
)
(set_local $i10
- (i32.load align=4
- (i32.add
- (get_local $i8)
- (i32.const 12)
- )
+ (i32.load offset=12 align=4
+ (get_local $i8)
)
)
(block $do-once$1
@@ -7548,11 +7404,8 @@
)
(block
(set_local $i11
- (i32.load align=4
- (i32.add
- (get_local $i8)
- (i32.const 8)
- )
+ (i32.load offset=8 align=4
+ (get_local $i8)
)
)
(if
@@ -7613,11 +7466,8 @@
(get_local $i7)
(block
(set_local $i10
- (i32.load align=4
- (i32.add
- (get_local $i8)
- (i32.const 28)
- )
+ (i32.load offset=28 align=4
+ (get_local $i8)
)
)
(set_local $i11
@@ -7784,11 +7634,8 @@
)
)
(set_local $i14
- (i32.load align=4
- (i32.add
- (get_local $i11)
- (i32.const 4)
- )
+ (i32.load offset=4 align=4
+ (get_local $i11)
)
)
(if_else
@@ -8013,19 +7860,13 @@
)
(block
(set_local $i21
- (i32.load align=4
- (i32.add
- (get_local $i6)
- (i32.const 24)
- )
+ (i32.load offset=24 align=4
+ (get_local $i6)
)
)
(set_local $i22
- (i32.load align=4
- (i32.add
- (get_local $i6)
- (i32.const 12)
- )
+ (i32.load offset=12 align=4
+ (get_local $i6)
)
)
(block $do-once$6
@@ -8175,11 +8016,8 @@
)
(block
(set_local $i19
- (i32.load align=4
- (i32.add
- (get_local $i6)
- (i32.const 8)
- )
+ (i32.load offset=8 align=4
+ (get_local $i6)
)
)
(if
@@ -8242,11 +8080,8 @@
(get_local $i21)
(block
(set_local $i22
- (i32.load align=4
- (i32.add
- (get_local $i6)
- (i32.const 28)
- )
+ (i32.load offset=28 align=4
+ (get_local $i6)
)
)
(set_local $i9
@@ -8399,11 +8234,8 @@
)
)
(set_local $i8
- (i32.load align=4
- (i32.add
- (get_local $i9)
- (i32.const 4)
- )
+ (i32.load offset=4 align=4
+ (get_local $i9)
)
)
(if
@@ -8440,19 +8272,13 @@
)
(block
(set_local $i8
- (i32.load align=4
- (i32.add
- (get_local $i6)
- (i32.const 8)
- )
+ (i32.load offset=8 align=4
+ (get_local $i6)
)
)
(set_local $i22
- (i32.load align=4
- (i32.add
- (get_local $i6)
- (i32.const 12)
- )
+ (i32.load offset=12 align=4
+ (get_local $i6)
)
)
(set_local $i21
@@ -8484,11 +8310,8 @@
)
(if
(i32.ne
- (i32.load align=4
- (i32.add
- (get_local $i8)
- (i32.const 12)
- )
+ (i32.load offset=12 align=4
+ (get_local $i8)
)
(get_local $i6)
)
@@ -8944,11 +8767,8 @@
(if
(i32.eq
(i32.and
- (i32.load align=4
- (i32.add
- (get_local $i2)
- (i32.const 4)
- )
+ (i32.load offset=4 align=4
+ (get_local $i2)
)
(i32.const -8)
)
@@ -9457,11 +9277,8 @@
)
)
(set_local $i18
- (i32.load align=4
- (i32.add
- (get_local $i12)
- (i32.const 4)
- )
+ (i32.load offset=4 align=4
+ (get_local $i12)
)
)
(if_else
@@ -9527,11 +9344,8 @@
(get_local $i23)
)
(set_local $i19
- (i32.load align=4
- (i32.add
- (get_local $i12)
- (i32.const 12)
- )
+ (i32.load offset=12 align=4
+ (get_local $i12)
)
)
(set_local $i20
@@ -9602,11 +9416,8 @@
)
(i32.add
(get_local $i13)
- (i32.load align=4
- (i32.add
- (get_local $i1)
- (i32.const 48)
- )
+ (i32.load offset=48 align=4
+ (get_local $i1)
)
)
)
@@ -9666,11 +9477,8 @@
(set_local $i24
(i32.sub
(get_local $i3)
- (i32.load align=4
- (i32.add
- (get_local $i16)
- (i32.const 4)
- )
+ (i32.load offset=4 align=4
+ (get_local $i16)
)
)
)
@@ -9777,11 +9585,8 @@
(call_indirect $FUNCSIG$iiii
(i32.add
(i32.and
- (i32.load align=4
- (i32.add
- (get_local $i3)
- (i32.const 36)
- )
+ (i32.load offset=36 align=4
+ (get_local $i3)
)
(i32.const 7)
)
@@ -9798,11 +9603,8 @@
(block $label$break$L10
(if_else
(i32.gt_s
- (i32.load8_s align=1
- (i32.add
- (get_local $i3)
- (i32.const 75)
- )
+ (i32.load8_s offset=75 align=1
+ (get_local $i3)
)
(i32.const -1)
)
@@ -9865,11 +9667,8 @@
(call_indirect $FUNCSIG$iiii
(i32.add
(i32.and
- (i32.load align=4
- (i32.add
- (get_local $i3)
- (i32.const 36)
- )
+ (i32.load offset=36 align=4
+ (get_local $i3)
)
(i32.const 7)
)
@@ -9964,11 +9763,8 @@
(block
(if
(i32.le_s
- (i32.load align=4
- (i32.add
- (get_local $i1)
- (i32.const 76)
- )
+ (i32.load offset=76 align=4
+ (get_local $i1)
)
(i32.const -1)
)
@@ -10054,11 +9850,8 @@
(loop $while-out$1 $while-in$2
(if_else
(i32.gt_s
- (i32.load align=4
- (i32.add
- (get_local $i3)
- (i32.const 76)
- )
+ (i32.load offset=76 align=4
+ (get_local $i3)
)
(i32.const -1)
)
@@ -10073,17 +9866,11 @@
)
(if_else
(i32.gt_u
- (i32.load align=4
- (i32.add
- (get_local $i3)
- (i32.const 20)
- )
+ (i32.load offset=20 align=4
+ (get_local $i3)
)
- (i32.load align=4
- (i32.add
- (get_local $i3)
- (i32.const 28)
- )
+ (i32.load offset=28 align=4
+ (get_local $i3)
)
)
(set_local $i8
@@ -10105,11 +9892,8 @@
)
)
(set_local $i3
- (i32.load align=4
- (i32.add
- (get_local $i3)
- (i32.const 56)
- )
+ (i32.load offset=56 align=4
+ (get_local $i3)
)
)
(if_else
@@ -10455,11 +10239,8 @@
)
(i32.ne
(get_local $i11)
- (i32.load8_s align=1
- (i32.add
- (get_local $i1)
- (i32.const 75)
- )
+ (i32.load8_s offset=75 align=1
+ (get_local $i1)
)
)
)
@@ -10488,11 +10269,8 @@
(call_indirect $FUNCSIG$iiii
(i32.add
(i32.and
- (i32.load align=4
- (i32.add
- (get_local $i1)
- (i32.const 36)
- )
+ (i32.load offset=36 align=4
+ (get_local $i1)
)
(i32.const 7)
)
@@ -10556,11 +10334,8 @@
(call_indirect $FUNCSIG$iiii
(i32.add
(i32.and
- (i32.load align=4
- (i32.add
- (get_local $i1)
- (i32.const 36)
- )
+ (i32.load offset=36 align=4
+ (get_local $i1)
)
(i32.const 7)
)
@@ -10613,11 +10388,8 @@
(call_indirect $FUNCSIG$iiii
(i32.add
(i32.and
- (i32.load align=4
- (i32.add
- (get_local $i1)
- (i32.const 40)
- )
+ (i32.load offset=40 align=4
+ (get_local $i1)
)
(i32.const 7)
)
@@ -10968,11 +10740,8 @@
)
(if_else
(i32.gt_s
- (i32.load align=4
- (i32.add
- (get_local $i2)
- (i32.const 76)
- )
+ (i32.load offset=76 align=4
+ (get_local $i2)
)
(i32.const -1)
)
@@ -11001,11 +10770,8 @@
(if
(if_else
(i32.ne
- (i32.load8_s align=1
- (i32.add
- (get_local $i2)
- (i32.const 75)
- )
+ (i32.load8_s offset=75 align=1
+ (get_local $i2)
)
(i32.const 10)
)
@@ -11023,11 +10789,8 @@
)
(i32.lt_u
(get_local $i6)
- (i32.load align=4
- (i32.add
- (get_local $i2)
- (i32.const 16)
- )
+ (i32.load offset=16 align=4
+ (get_local $i2)
)
)
)
@@ -11107,11 +10870,8 @@
)
(i32.store align=4
(get_local $i5)
- (i32.load align=4
- (i32.add
- (get_local $i1)
- (i32.const 60)
- )
+ (i32.load offset=60 align=4
+ (get_local $i1)
)
)
(i32.store align=4
@@ -11227,11 +10987,8 @@
(i32.const 0)
)
(set_local $i2
- (i32.load align=4
- (i32.add
- (get_local $i1)
- (i32.const 44)
- )
+ (i32.load offset=44 align=4
+ (get_local $i1)
)
)
(i32.store align=4
@@ -11255,11 +11012,8 @@
)
(i32.add
(get_local $i2)
- (i32.load align=4
- (i32.add
- (get_local $i1)
- (i32.const 48)
- )
+ (i32.load offset=48 align=4
+ (get_local $i1)
)
)
)
@@ -11296,11 +11050,8 @@
)
(if_else
(i32.gt_s
- (i32.load align=4
- (i32.add
- (get_local $i4)
- (i32.const 76)
- )
+ (i32.load offset=76 align=4
+ (get_local $i4)
)
(i32.const -1)
)
@@ -11401,11 +11152,8 @@
(block
(i32.store align=4
(get_local $i5)
- (i32.load align=4
- (i32.add
- (get_local $i1)
- (i32.const 60)
- )
+ (i32.load offset=60 align=4
+ (get_local $i1)
)
)
(i32.store align=4
@@ -11472,11 +11220,8 @@
)
(i32.const 1)
)
- (i32.load8_s align=1
- (i32.add
- (get_local $i1)
- (i32.const 1)
- )
+ (i32.load8_s offset=1 align=1
+ (get_local $i1)
)
)
(i32.store8 align=1
@@ -11486,11 +11231,8 @@
)
(i32.const 2)
)
- (i32.load8_s align=1
- (i32.add
- (get_local $i1)
- (i32.const 2)
- )
+ (i32.load8_s offset=2 align=1
+ (get_local $i1)
)
)
(i32.store8 align=1
@@ -11500,11 +11242,8 @@
)
(i32.const 3)
)
- (i32.load8_s align=1
- (i32.add
- (get_local $i1)
- (i32.const 3)
- )
+ (i32.load8_s offset=3 align=1
+ (get_local $i1)
)
)
(i32.store8 align=1
@@ -11514,11 +11253,8 @@
)
(i32.const 4)
)
- (i32.load8_s align=1
- (i32.add
- (get_local $i1)
- (i32.const 4)
- )
+ (i32.load8_s offset=4 align=1
+ (get_local $i1)
)
)
(i32.store8 align=1
@@ -11528,11 +11264,8 @@
)
(i32.const 5)
)
- (i32.load8_s align=1
- (i32.add
- (get_local $i1)
- (i32.const 5)
- )
+ (i32.load8_s offset=5 align=1
+ (get_local $i1)
)
)
(i32.store8 align=1
@@ -11542,11 +11275,8 @@
)
(i32.const 6)
)
- (i32.load8_s align=1
- (i32.add
- (get_local $i1)
- (i32.const 6)
- )
+ (i32.load8_s offset=6 align=1
+ (get_local $i1)
)
)
(i32.store8 align=1
@@ -11556,11 +11286,8 @@
)
(i32.const 7)
)
- (i32.load8_s align=1
- (i32.add
- (get_local $i1)
- (i32.const 7)
- )
+ (i32.load8_s offset=7 align=1
+ (get_local $i1)
)
)
)
@@ -11586,11 +11313,8 @@
)
(i32.store align=4
(get_local $i3)
- (i32.load align=4
- (i32.add
- (get_local $i1)
- (i32.const 60)
- )
+ (i32.load offset=60 align=4
+ (get_local $i1)
)
)
(set_local $i1
@@ -11623,11 +11347,8 @@
)
(i32.const 1)
)
- (i32.load8_s align=1
- (i32.add
- (get_local $i1)
- (i32.const 1)
- )
+ (i32.load8_s offset=1 align=1
+ (get_local $i1)
)
)
(i32.store8 align=1
@@ -11637,11 +11358,8 @@
)
(i32.const 2)
)
- (i32.load8_s align=1
- (i32.add
- (get_local $i1)
- (i32.const 2)
- )
+ (i32.load8_s offset=2 align=1
+ (get_local $i1)
)
)
(i32.store8 align=1
@@ -11651,11 +11369,8 @@
)
(i32.const 3)
)
- (i32.load8_s align=1
- (i32.add
- (get_local $i1)
- (i32.const 3)
- )
+ (i32.load8_s offset=3 align=1
+ (get_local $i1)
)
)
)
@@ -11741,11 +11456,8 @@
(i32.const 60)
)
(set_local $i1
- (i32.load align=4
- (i32.add
- (call_import $_pthread_self)
- (i32.const 60)
- )
+ (i32.load offset=60 align=4
+ (call_import $_pthread_self)
)
)
)
@@ -11799,11 +11511,8 @@
(func $_cleanup_418 (param $i1 i32)
(if
(i32.eq
- (i32.load align=4
- (i32.add
- (get_local $i1)
- (i32.const 68)
- )
+ (i32.load offset=68 align=4
+ (get_local $i1)
)
(i32.const 0)
)
diff --git a/test/emcc_hello_world.fromasm b/test/emcc_hello_world.fromasm
index bc32b67e4..bf8602fea 100644
--- a/test/emcc_hello_world.fromasm
+++ b/test/emcc_hello_world.fromasm
@@ -148,11 +148,8 @@
)
(i32.const 1)
)
- (i32.load8_s align=1
- (i32.add
- (get_local $ptr)
- (i32.const 1)
- )
+ (i32.load8_s offset=1 align=1
+ (get_local $ptr)
)
)
(i32.store8 align=1
@@ -162,11 +159,8 @@
)
(i32.const 2)
)
- (i32.load8_s align=1
- (i32.add
- (get_local $ptr)
- (i32.const 2)
- )
+ (i32.load8_s offset=2 align=1
+ (get_local $ptr)
)
)
(i32.store8 align=1
@@ -176,11 +170,8 @@
)
(i32.const 3)
)
- (i32.load8_s align=1
- (i32.add
- (get_local $ptr)
- (i32.const 3)
- )
+ (i32.load8_s offset=3 align=1
+ (get_local $ptr)
)
)
)
@@ -200,11 +191,8 @@
)
(i32.const 1)
)
- (i32.load8_s align=1
- (i32.add
- (get_local $ptr)
- (i32.const 1)
- )
+ (i32.load8_s offset=1 align=1
+ (get_local $ptr)
)
)
(i32.store8 align=1
@@ -214,11 +202,8 @@
)
(i32.const 2)
)
- (i32.load8_s align=1
- (i32.add
- (get_local $ptr)
- (i32.const 2)
- )
+ (i32.load8_s offset=2 align=1
+ (get_local $ptr)
)
)
(i32.store8 align=1
@@ -228,11 +213,8 @@
)
(i32.const 3)
)
- (i32.load8_s align=1
- (i32.add
- (get_local $ptr)
- (i32.const 3)
- )
+ (i32.load8_s offset=3 align=1
+ (get_local $ptr)
)
)
(i32.store8 align=1
@@ -242,11 +224,8 @@
)
(i32.const 4)
)
- (i32.load8_s align=1
- (i32.add
- (get_local $ptr)
- (i32.const 4)
- )
+ (i32.load8_s offset=4 align=1
+ (get_local $ptr)
)
)
(i32.store8 align=1
@@ -256,11 +235,8 @@
)
(i32.const 5)
)
- (i32.load8_s align=1
- (i32.add
- (get_local $ptr)
- (i32.const 5)
- )
+ (i32.load8_s offset=5 align=1
+ (get_local $ptr)
)
)
(i32.store8 align=1
@@ -270,11 +246,8 @@
)
(i32.const 6)
)
- (i32.load8_s align=1
- (i32.add
- (get_local $ptr)
- (i32.const 6)
- )
+ (i32.load8_s offset=6 align=1
+ (get_local $ptr)
)
)
(i32.store8 align=1
@@ -284,11 +257,8 @@
)
(i32.const 7)
)
- (i32.load8_s align=1
- (i32.add
- (get_local $ptr)
- (i32.const 7)
- )
+ (i32.load8_s offset=7 align=1
+ (get_local $ptr)
)
)
)
@@ -388,12 +358,9 @@
)
)
(set_local $$1
- (i32.load align=4
- (i32.add
- (i32.load align=4
- (i32.const 24)
- )
- (i32.const 4)
+ (i32.load offset=4 align=4
+ (i32.load align=4
+ (i32.const 24)
)
)
)
@@ -8899,12 +8866,9 @@
)
)
(set_local $$183
- (i32.load align=4
- (i32.add
- (i32.load align=4
- (i32.const 24)
- )
- (i32.const 4)
+ (i32.load offset=4 align=4
+ (i32.load align=4
+ (i32.const 24)
)
)
)
@@ -9005,12 +8969,9 @@
)
)
(set_local $$186
- (i32.load align=4
- (i32.add
- (i32.load align=4
- (i32.const 24)
- )
- (i32.const 4)
+ (i32.load offset=4 align=4
+ (i32.load align=4
+ (i32.const 24)
)
)
)
@@ -25976,11 +25937,8 @@
(get_local $$add$ptr14$i$i)
(i32.const 4)
)
- (i32.load align=4
- (i32.add
- (i32.const 624)
- (i32.const 4)
- )
+ (i32.load offset=4 align=4
+ (i32.const 624)
)
)
(i32.store align=4
@@ -25988,11 +25946,8 @@
(get_local $$add$ptr14$i$i)
(i32.const 8)
)
- (i32.load align=4
- (i32.add
- (i32.const 624)
- (i32.const 8)
- )
+ (i32.load offset=8 align=4
+ (i32.const 624)
)
)
(i32.store align=4
@@ -26000,11 +25955,8 @@
(get_local $$add$ptr14$i$i)
(i32.const 12)
)
- (i32.load align=4
- (i32.add
- (i32.const 624)
- (i32.const 12)
- )
+ (i32.load offset=12 align=4
+ (i32.const 624)
)
)
(i32.store align=4
@@ -31345,11 +31297,8 @@
(get_local $$1$0)
)
(i32.xor
- (i32.load align=4
- (i32.add
- (get_local $$rem)
- (i32.const 4)
- )
+ (i32.load offset=4 align=4
+ (get_local $$rem)
)
(get_local $$1$1)
)
@@ -31473,11 +31422,8 @@
)
(i32.store align=4
(i32.const 168)
- (i32.load align=4
- (i32.add
- (get_local $$rem)
- (i32.const 4)
- )
+ (i32.load offset=4 align=4
+ (get_local $$rem)
)
)
(i32.load align=4
diff --git a/test/passes/post-emscripten.txt b/test/passes/post-emscripten.txt
new file mode 100644
index 000000000..567a8b849
--- /dev/null
+++ b/test/passes/post-emscripten.txt
@@ -0,0 +1,29 @@
+(module
+ (memory 16777216 16777216)
+ (func $b0 (param $x i32)
+ (i32.load offset=1
+ (get_local $x)
+ )
+ (i32.load offset=8
+ (get_local $x)
+ )
+ (i32.load offset=1023
+ (get_local $x)
+ )
+ (i32.load
+ (i32.add
+ (get_local $x)
+ (i32.const 1024)
+ )
+ )
+ (i32.load
+ (i32.add
+ (get_local $x)
+ (i32.const 2048)
+ )
+ )
+ (i32.load offset=4
+ (get_local $x)
+ )
+ )
+)
diff --git a/test/passes/post-emscripten.wast b/test/passes/post-emscripten.wast
new file mode 100644
index 000000000..df56817a7
--- /dev/null
+++ b/test/passes/post-emscripten.wast
@@ -0,0 +1,42 @@
+(module
+ (memory 16777216 16777216)
+ (func $b0 (param $x i32)
+ (i32.load
+ (i32.add
+ (get_local $x)
+ (i32.const 1)
+ )
+ )
+ (i32.load
+ (i32.add
+ (get_local $x)
+ (i32.const 8)
+ )
+ )
+ (i32.load
+ (i32.add
+ (get_local $x)
+ (i32.const 1023)
+ )
+ )
+ (i32.load
+ (i32.add
+ (get_local $x)
+ (i32.const 1024)
+ )
+ )
+ (i32.load
+ (i32.add
+ (get_local $x)
+ (i32.const 2048)
+ )
+ )
+ (i32.load
+ (i32.add
+ (i32.const 4)
+ (get_local $x)
+ )
+ )
+ )
+)
+