testing
diff --git a/test/passes/inlining-optimizing_optimize-level=3.txt b/test/passes/inlining-optimizing_optimize-level=3.txt
index fdc59bc..a6e1969 100644
--- a/test/passes/inlining-optimizing_optimize-level=3.txt
+++ b/test/passes/inlining-optimizing_optimize-level=3.txt
@@ -1045,11 +1045,12 @@
(i32.const 224)
)
)
- (local.set $5
- (i32.add
- (local.get $3)
- (i32.const 120)
+ (if
+ (i32.ge_s
+ (global.get $STACKTOP)
+ (global.get $STACK_MAX)
)
+ (call $abort)
)
(local.set $8
(i32.add
@@ -1070,12 +1071,11 @@
(i32.const 136)
)
)
- (if
- (i32.ge_s
- (global.get $STACKTOP)
- (global.get $STACK_MAX)
+ (local.set $5
+ (i32.add
+ (local.get $3)
+ (i32.const 120)
)
- (call $abort)
)
(loop $do-in
(i32.store
@@ -2179,10 +2179,17 @@
(i32.const 624)
)
)
- (local.set $21
+ (if
+ (i32.ge_s
+ (global.get $STACKTOP)
+ (global.get $STACK_MAX)
+ )
+ (call $abort)
+ )
+ (local.set $33
(i32.add
(local.get $13)
- (i32.const 16)
+ (i32.const 528)
)
)
(local.set $37
@@ -2251,10 +2258,10 @@
(i32.const 0)
)
)
- (local.set $33
+ (local.set $21
(i32.add
(local.get $13)
- (i32.const 528)
+ (i32.const 16)
)
)
(local.set $44
@@ -2263,13 +2270,6 @@
(local.get $34)
)
)
- (if
- (i32.ge_s
- (global.get $STACKTOP)
- (global.get $STACK_MAX)
- )
- (call $abort)
- )
(local.set $41
(local.tee $29
(i32.add
@@ -3661,18 +3661,18 @@
)
)
)
- (i32.store offset=4
- (local.get $13)
- (local.tee $7
- (global.get $tempRet0)
- )
- )
(local.set $9
(i32.const 4091)
)
(local.set $8
(i32.const 1)
)
+ (i32.store offset=4
+ (local.get $13)
+ (local.tee $7
+ (global.get $tempRet0)
+ )
+ )
(br $__rjti$4)
)
)
@@ -4027,6 +4027,12 @@
)
)
)
+ (local.set $11
+ (i32.or
+ (local.get $27)
+ (i32.const 2)
+ )
+ )
(if
(i32.eq
(local.tee $5
@@ -4101,12 +4107,6 @@
(i32.const 15)
)
)
- (local.set $11
- (i32.or
- (local.get $27)
- (i32.const 2)
- )
- )
(local.set $16
(i32.lt_s
(local.get $6)
diff --git a/test/passes/sort-blocks.txt b/test/passes/sort-blocks.txt
new file mode 100644
index 0000000..a96782c
--- /dev/null
+++ b/test/passes/sort-blocks.txt
@@ -0,0 +1,69 @@
+(module
+ (type $0 (func))
+ (func $func1 (; 0 ;) (type $0)
+ (drop
+ (i32.const 0)
+ )
+ (drop
+ (i32.const 2)
+ )
+ (drop
+ (i32.const 1)
+ )
+ )
+ (func $func2 (; 1 ;) (type $0)
+ (drop
+ (i32.const 0)
+ )
+ (drop
+ (i32.const 2)
+ )
+ (drop
+ (i32.const 1)
+ )
+ )
+ (func $func3 (; 2 ;) (type $0)
+ (drop
+ (i32.const 0)
+ )
+ (drop
+ (i32.const 2)
+ )
+ (drop
+ (i32.const 1)
+ )
+ )
+ (func $func4 (; 3 ;) (type $0)
+ (drop
+ (i32.const 0)
+ )
+ (drop
+ (i32.const 2)
+ )
+ (drop
+ (i32.const 1)
+ )
+ )
+ (func $func5 (; 4 ;) (type $0)
+ (drop
+ (i32.const 0)
+ )
+ (drop
+ (i32.const 2)
+ )
+ (drop
+ (i32.const 1)
+ )
+ )
+ (func $func6 (; 5 ;) (type $0)
+ (drop
+ (i32.const 2)
+ )
+ (drop
+ (i32.const 0)
+ )
+ (drop
+ (i32.const 1)
+ )
+ )
+)
diff --git a/test/passes/sort-blocks.wast b/test/passes/sort-blocks.wast
new file mode 100644
index 0000000..3eb2ca8
--- /dev/null
+++ b/test/passes/sort-blocks.wast
@@ -0,0 +1,33 @@
+(module
+ (func $func1
+ (drop (i32.const 0))
+ (drop (i32.const 1))
+ (drop (i32.const 2))
+ )
+ (func $func2
+ (drop (i32.const 0))
+ (drop (i32.const 2))
+ (drop (i32.const 1))
+ )
+ (func $func3
+ (drop (i32.const 1))
+ (drop (i32.const 0))
+ (drop (i32.const 2))
+ )
+ (func $func4
+ (drop (i32.const 1))
+ (drop (i32.const 2))
+ (drop (i32.const 0))
+ )
+ (func $func5
+ (drop (i32.const 2))
+ (drop (i32.const 0))
+ (drop (i32.const 1))
+ )
+ (func $func6
+ (drop (i32.const 2))
+ (drop (i32.const 1))
+ (drop (i32.const 0))
+ )
+)
+