diff options
author | Alon Zakai <azakai@google.com> | 2023-04-11 10:47:30 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-04-11 17:47:30 +0000 |
commit | 18898347e7c4ceb86988bdb8594160883f7886f0 (patch) | |
tree | ad934605a71cc8a3638b5388ae72c57cce08165f /test/lit/passes/monomorphize.wast | |
parent | 160dda0aa5ecc8252c5862cd937157296d9015cb (diff) | |
download | binaryen-18898347e7c4ceb86988bdb8594160883f7886f0.tar.gz binaryen-18898347e7c4ceb86988bdb8594160883f7886f0.tar.bz2 binaryen-18898347e7c4ceb86988bdb8594160883f7886f0.zip |
Add a name hint to getValidName() (#5653)
Without the hint, we always look for a valid name using name$0, $1, $2, etc.,
starting from 0, and in some cases that can lead to quadratic behavior.
Noticed on a testcase in the fuzzer that runs for over 24 seconds (I gave up at
that point) but takes only 2 seconds with this.
Diffstat (limited to 'test/lit/passes/monomorphize.wast')
-rw-r--r-- | test/lit/passes/monomorphize.wast | 34 |
1 files changed, 17 insertions, 17 deletions
diff --git a/test/lit/passes/monomorphize.wast b/test/lit/passes/monomorphize.wast index 43c647a0a..d171291e2 100644 --- a/test/lit/passes/monomorphize.wast +++ b/test/lit/passes/monomorphize.wast @@ -35,10 +35,10 @@ ;; ALWAYS-NEXT: (call $refinable ;; ALWAYS-NEXT: (struct.new_default $A) ;; ALWAYS-NEXT: ) - ;; ALWAYS-NEXT: (call $refinable_0 + ;; ALWAYS-NEXT: (call $refinable_4 ;; ALWAYS-NEXT: (struct.new_default $B) ;; ALWAYS-NEXT: ) - ;; ALWAYS-NEXT: (call $refinable_0 + ;; ALWAYS-NEXT: (call $refinable_4 ;; ALWAYS-NEXT: (struct.new_default $B) ;; ALWAYS-NEXT: ) ;; ALWAYS-NEXT: ) @@ -115,7 +115,7 @@ ) -;; ALWAYS: (func $refinable_0 (type $ref|$B|_=>_none) (param $ref (ref $B)) +;; ALWAYS: (func $refinable_4 (type $ref|$B|_=>_none) (param $ref (ref $B)) ;; ALWAYS-NEXT: (drop ;; ALWAYS-NEXT: (local.get $ref) ;; ALWAYS-NEXT: ) @@ -142,7 +142,7 @@ ;; ALWAYS: (type $ref|$B|_=>_none (func (param (ref $B)))) ;; ALWAYS: (func $calls (type $none_=>_none) - ;; ALWAYS-NEXT: (call $refinable_0 + ;; ALWAYS-NEXT: (call $refinable_2 ;; ALWAYS-NEXT: (struct.new_default $B) ;; ALWAYS-NEXT: ) ;; ALWAYS-NEXT: ) @@ -186,7 +186,7 @@ ) -;; ALWAYS: (func $refinable_0 (type $ref|$B|_=>_none) (param $ref (ref $B)) +;; ALWAYS: (func $refinable_2 (type $ref|$B|_=>_none) (param $ref (ref $B)) ;; ALWAYS-NEXT: (local $unref (ref $A)) ;; ALWAYS-NEXT: (local $2 (ref $A)) ;; ALWAYS-NEXT: (local.set $2 @@ -231,7 +231,7 @@ ;; ALWAYS-NEXT: (call $refinable1 ;; ALWAYS-NEXT: (struct.new_default $A) ;; ALWAYS-NEXT: ) - ;; ALWAYS-NEXT: (call $refinable1_0 + ;; ALWAYS-NEXT: (call $refinable1_4 ;; ALWAYS-NEXT: (struct.new_default $B) ;; ALWAYS-NEXT: ) ;; ALWAYS-NEXT: ) @@ -253,10 +253,10 @@ ) ;; ALWAYS: (func $calls2 (type $none_=>_none) - ;; ALWAYS-NEXT: (call $refinable1_1 + ;; ALWAYS-NEXT: (call $refinable1_5 ;; ALWAYS-NEXT: (struct.new_default $C) ;; ALWAYS-NEXT: ) - ;; ALWAYS-NEXT: (call $refinable2_0 + ;; ALWAYS-NEXT: (call $refinable2_6 ;; ALWAYS-NEXT: (struct.new_default $B) ;; ALWAYS-NEXT: ) ;; ALWAYS-NEXT: ) @@ -306,19 +306,19 @@ ) ) -;; ALWAYS: (func $refinable1_0 (type $ref|$B|_=>_none) (param $ref (ref $B)) +;; ALWAYS: (func $refinable1_4 (type $ref|$B|_=>_none) (param $ref (ref $B)) ;; ALWAYS-NEXT: (drop ;; ALWAYS-NEXT: (local.get $ref) ;; ALWAYS-NEXT: ) ;; ALWAYS-NEXT: ) -;; ALWAYS: (func $refinable1_1 (type $ref|$C|_=>_none) (param $ref (ref $C)) +;; ALWAYS: (func $refinable1_5 (type $ref|$C|_=>_none) (param $ref (ref $C)) ;; ALWAYS-NEXT: (drop ;; ALWAYS-NEXT: (local.get $ref) ;; ALWAYS-NEXT: ) ;; ALWAYS-NEXT: ) -;; ALWAYS: (func $refinable2_0 (type $ref|$B|_=>_none) (param $ref (ref $B)) +;; ALWAYS: (func $refinable2_6 (type $ref|$B|_=>_none) (param $ref (ref $B)) ;; ALWAYS-NEXT: (drop ;; ALWAYS-NEXT: (local.get $ref) ;; ALWAYS-NEXT: ) @@ -364,10 +364,10 @@ ;; ALWAYS-NEXT: (call $refinable ;; ALWAYS-NEXT: (struct.new_default $A) ;; ALWAYS-NEXT: ) - ;; ALWAYS-NEXT: (call $refinable_0 + ;; ALWAYS-NEXT: (call $refinable_3 ;; ALWAYS-NEXT: (struct.new_default $B) ;; ALWAYS-NEXT: ) - ;; ALWAYS-NEXT: (call $refinable_0 + ;; ALWAYS-NEXT: (call $refinable_3 ;; ALWAYS-NEXT: (struct.new_default $B) ;; ALWAYS-NEXT: ) ;; ALWAYS-NEXT: ) @@ -378,10 +378,10 @@ ;; CAREFUL-NEXT: (call $refinable ;; CAREFUL-NEXT: (struct.new_default $A) ;; CAREFUL-NEXT: ) - ;; CAREFUL-NEXT: (call $refinable_0 + ;; CAREFUL-NEXT: (call $refinable_3 ;; CAREFUL-NEXT: (struct.new_default $B) ;; CAREFUL-NEXT: ) - ;; CAREFUL-NEXT: (call $refinable_0 + ;; CAREFUL-NEXT: (call $refinable_3 ;; CAREFUL-NEXT: (struct.new_default $B) ;; CAREFUL-NEXT: ) ;; CAREFUL-NEXT: ) @@ -503,7 +503,7 @@ ) ) -;; ALWAYS: (func $refinable_0 (type $ref|$B|_=>_none) (param $ref (ref $B)) +;; ALWAYS: (func $refinable_3 (type $ref|$B|_=>_none) (param $ref (ref $B)) ;; ALWAYS-NEXT: (local $x (ref $A)) ;; ALWAYS-NEXT: (call $import ;; ALWAYS-NEXT: (ref.cast $B @@ -534,7 +534,7 @@ ;; ALWAYS-NEXT: ) ;; ALWAYS-NEXT: ) -;; CAREFUL: (func $refinable_0 (type $ref|$B|_=>_none) (param $0 (ref $B)) +;; CAREFUL: (func $refinable_3 (type $ref|$B|_=>_none) (param $0 (ref $B)) ;; CAREFUL-NEXT: (local $1 (ref $B)) ;; CAREFUL-NEXT: (call $import ;; CAREFUL-NEXT: (local.get $0) |