Commit 3c10662
[dart2wasm] Remove special casing of noSuchMethod in dispatch table builder
So far we force-included the `noSuchMethod` selector in the dispatch
table, making us have an entry for each class id (i.e. a dense row).
This is wasteful for most cases, because there may be few (if any)
overrides of `noSuchMethod`.
So instead we use the same policy on how to call `noSuchMethod` as
with all the other selectors, namely if there's only a single target
we call it directly, if there's a few we may use a static polymorphic
dispatcher function and otherwise use dispatch table.
Change-Id: I5067fb54908d905396c3b93b824bf251dc73ff50
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/428521
Reviewed-by: Ömer Ağacan <[email protected]>
Commit-Queue: Martin Kustermann <[email protected]>1 parent f725026 commit 3c10662
File tree
3 files changed
+67
-54
lines changed- pkg/dart2wasm/lib
3 files changed
+67
-54
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1953 | 1953 | | |
1954 | 1954 | | |
1955 | 1955 | | |
1956 | | - | |
1957 | | - | |
1958 | | - | |
1959 | | - | |
1960 | | - | |
1961 | | - | |
1962 | | - | |
1963 | | - | |
1964 | | - | |
1965 | | - | |
1966 | | - | |
1967 | | - | |
1968 | | - | |
1969 | | - | |
1970 | | - | |
1971 | | - | |
1972 | | - | |
1973 | | - | |
1974 | | - | |
1975 | | - | |
1976 | | - | |
| 1956 | + | |
| 1957 | + | |
| 1958 | + | |
| 1959 | + | |
| 1960 | + | |
| 1961 | + | |
| 1962 | + | |
| 1963 | + | |
| 1964 | + | |
| 1965 | + | |
| 1966 | + | |
| 1967 | + | |
| 1968 | + | |
| 1969 | + | |
| 1970 | + | |
| 1971 | + | |
| 1972 | + | |
1977 | 1973 | | |
| 1974 | + | |
| 1975 | + | |
| 1976 | + | |
| 1977 | + | |
| 1978 | + | |
| 1979 | + | |
| 1980 | + | |
| 1981 | + | |
| 1982 | + | |
| 1983 | + | |
| 1984 | + | |
| 1985 | + | |
1978 | 1986 | | |
1979 | | - | |
1980 | | - | |
1981 | 1987 | | |
1982 | 1988 | | |
1983 | 1989 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
61 | 61 | | |
62 | 62 | | |
63 | 63 | | |
64 | | - | |
65 | | - | |
66 | | - | |
67 | | - | |
68 | | - | |
69 | 64 | | |
70 | 65 | | |
71 | 66 | | |
| |||
88 | 83 | | |
89 | 84 | | |
90 | 85 | | |
91 | | - | |
92 | 86 | | |
93 | 87 | | |
94 | 88 | | |
| |||
100 | 94 | | |
101 | 95 | | |
102 | 96 | | |
103 | | - | |
104 | 97 | | |
105 | 98 | | |
106 | 99 | | |
| |||
118 | 111 | | |
119 | 112 | | |
120 | 113 | | |
121 | | - | |
122 | 114 | | |
123 | 115 | | |
124 | 116 | | |
| |||
132 | 124 | | |
133 | 125 | | |
134 | 126 | | |
135 | | - | |
| 127 | + | |
136 | 128 | | |
137 | 129 | | |
138 | 130 | | |
| |||
484 | 476 | | |
485 | 477 | | |
486 | 478 | | |
| 479 | + | |
| 480 | + | |
| 481 | + | |
| 482 | + | |
| 483 | + | |
487 | 484 | | |
488 | 485 | | |
489 | | - | |
490 | | - | |
491 | | - | |
492 | | - | |
493 | | - | |
| 486 | + | |
494 | 487 | | |
495 | | - | |
496 | | - | |
| 488 | + | |
497 | 489 | | |
498 | 490 | | |
499 | 491 | | |
| |||
872 | 864 | | |
873 | 865 | | |
874 | 866 | | |
875 | | - | |
876 | | - | |
877 | | - | |
878 | | - | |
879 | | - | |
880 | | - | |
881 | 867 | | |
882 | | - | |
883 | | - | |
884 | | - | |
885 | | - | |
| 868 | + | |
886 | 869 | | |
887 | 870 | | |
888 | 871 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
782 | 782 | | |
783 | 783 | | |
784 | 784 | | |
| 785 | + | |
| 786 | + | |
| 787 | + | |
| 788 | + | |
| 789 | + | |
| 790 | + | |
| 791 | + | |
| 792 | + | |
| 793 | + | |
| 794 | + | |
| 795 | + | |
| 796 | + | |
785 | 797 | | |
786 | 798 | | |
787 | 799 | | |
788 | 800 | | |
| 801 | + | |
| 802 | + | |
| 803 | + | |
| 804 | + | |
789 | 805 | | |
790 | 806 | | |
791 | 807 | | |
| |||
817 | 833 | | |
818 | 834 | | |
819 | 835 | | |
820 | | - | |
821 | | - | |
822 | | - | |
823 | | - | |
824 | | - | |
| 836 | + | |
| 837 | + | |
| 838 | + | |
| 839 | + | |
| 840 | + | |
| 841 | + | |
| 842 | + | |
| 843 | + | |
| 844 | + | |
| 845 | + | |
| 846 | + | |
| 847 | + | |
| 848 | + | |
825 | 849 | | |
826 | 850 | | |
827 | 851 | | |
| |||
0 commit comments