diff options
Diffstat (limited to 'test/lit/passes/local-cse.wast')
-rw-r--r-- | test/lit/passes/local-cse.wast | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/test/lit/passes/local-cse.wast b/test/lit/passes/local-cse.wast index a5e90adf1..c0e4c9b59 100644 --- a/test/lit/passes/local-cse.wast +++ b/test/lit/passes/local-cse.wast @@ -447,20 +447,17 @@ (global $other-glob (mut i32) (i32.const 1)) ;; CHECK: (func $global - ;; CHECK-NEXT: (local $0 i32) ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (local.tee $0 - ;; CHECK-NEXT: (global.get $glob) - ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (global.get $glob) ;; CHECK-NEXT: ) ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (local.get $0) + ;; CHECK-NEXT: (global.get $glob) ;; CHECK-NEXT: ) ;; CHECK-NEXT: (global.set $other-glob ;; CHECK-NEXT: (i32.const 100) ;; CHECK-NEXT: ) ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (local.get $0) + ;; CHECK-NEXT: (global.get $glob) ;; CHECK-NEXT: ) ;; CHECK-NEXT: (global.set $glob ;; CHECK-NEXT: (i32.const 200) @@ -470,7 +467,11 @@ ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) (func $global - ;; We should optimize redundant global.get operations. + ;; We should not optimize redundant global.get operations: they are of size + ;; 1 (no children), and so we may end up increasing code size here for + ;; unclear benefit. The benefit is unclear since VMs already do GVN/CSE + ;; themselves, and so we focus on things of size 2 and above, where we + ;; definitely reduce code size at least. (drop (global.get $glob)) (drop (global.get $glob)) ;; We can do it past a write to another global |