Commit c910678
committed
perf(jit): expose singleton lists to MIR cons optimization
Lower List(0) to nil and List(1) to an explicit cons with nil cdr, so
temporary singleton lists use existing escape analysis and precise
reconstruction. Keep wider lists on the adapter and retain real objects
when identity, mutation, callbacks or outgoing edges require them.
Cover zero-allocation loops, heap-valued deopt frames and AOT sidecars.
Core suite: 10,331 passed, 54 skipped; all 46 MIR tests pass under GC
stress and partition verification. The singleton loop improves 4.67x
against the preceding build; whole-workload and compilation controls
show no material regression. Benchmark artifacts are in tmp.1 parent 9896e64 commit c910678
4 files changed
Lines changed: 112 additions & 35 deletions
File tree
- crates/neovm-core/src/emacs_core/runtime/jit
- compile
- tests
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1876 | 1876 | | |
1877 | 1877 | | |
1878 | 1878 | | |
| 1879 | + | |
| 1880 | + | |
| 1881 | + | |
| 1882 | + | |
| 1883 | + | |
| 1884 | + | |
1879 | 1885 | | |
1880 | 1886 | | |
1881 | 1887 | | |
| |||
1911 | 1917 | | |
1912 | 1918 | | |
1913 | 1919 | | |
| 1920 | + | |
| 1921 | + | |
| 1922 | + | |
1914 | 1923 | | |
1915 | 1924 | | |
1916 | 1925 | | |
| |||
1924 | 1933 | | |
1925 | 1934 | | |
1926 | 1935 | | |
1927 | | - | |
| 1936 | + | |
| 1937 | + | |
| 1938 | + | |
| 1939 | + | |
| 1940 | + | |
1928 | 1941 | | |
1929 | 1942 | | |
1930 | 1943 | | |
| |||
1939 | 1952 | | |
1940 | 1953 | | |
1941 | 1954 | | |
1942 | | - | |
| 1955 | + | |
1943 | 1956 | | |
1944 | 1957 | | |
1945 | | - | |
| 1958 | + | |
| 1959 | + | |
| 1960 | + | |
| 1961 | + | |
1946 | 1962 | | |
1947 | 1963 | | |
1948 | 1964 | | |
| |||
Lines changed: 5 additions & 8 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3172 | 3172 | | |
3173 | 3173 | | |
3174 | 3174 | | |
3175 | | - | |
3176 | | - | |
3177 | | - | |
3178 | | - | |
3179 | | - | |
3180 | | - | |
3181 | | - | |
3182 | | - | |
| 3175 | + | |
| 3176 | + | |
| 3177 | + | |
| 3178 | + | |
| 3179 | + | |
3183 | 3180 | | |
3184 | 3181 | | |
3185 | 3182 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
606 | 606 | | |
607 | 607 | | |
608 | 608 | | |
609 | | - | |
| 609 | + | |
610 | 610 | | |
611 | 611 | | |
612 | 612 | | |
| |||
726 | 726 | | |
727 | 727 | | |
728 | 728 | | |
| 729 | + | |
| 730 | + | |
| 731 | + | |
| 732 | + | |
| 733 | + | |
| 734 | + | |
| 735 | + | |
| 736 | + | |
| 737 | + | |
| 738 | + | |
729 | 739 | | |
730 | 740 | | |
731 | 741 | | |
| |||
Lines changed: 77 additions & 23 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
107 | 107 | | |
108 | 108 | | |
109 | 109 | | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
110 | 119 | | |
111 | | - | |
112 | | - | |
113 | | - | |
114 | | - | |
115 | | - | |
116 | | - | |
117 | | - | |
118 | | - | |
119 | | - | |
120 | | - | |
121 | | - | |
122 | | - | |
123 | | - | |
124 | | - | |
125 | | - | |
126 | | - | |
127 | | - | |
128 | | - | |
129 | | - | |
130 | | - | |
131 | | - | |
132 | | - | |
133 | | - | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
134 | 144 | | |
135 | 145 | | |
136 | 146 | | |
| |||
170 | 180 | | |
171 | 181 | | |
172 | 182 | | |
| 183 | + | |
| 184 | + | |
| 185 | + | |
| 186 | + | |
| 187 | + | |
173 | 188 | | |
174 | 189 | | |
175 | 190 | | |
| |||
253 | 268 | | |
254 | 269 | | |
255 | 270 | | |
| 271 | + | |
256 | 272 | | |
257 | 273 | | |
258 | 274 | | |
259 | 275 | | |
260 | 276 | | |
261 | 277 | | |
262 | 278 | | |
| 279 | + | |
| 280 | + | |
| 281 | + | |
| 282 | + | |
| 283 | + | |
| 284 | + | |
| 285 | + | |
| 286 | + | |
| 287 | + | |
| 288 | + | |
| 289 | + | |
| 290 | + | |
| 291 | + | |
| 292 | + | |
| 293 | + | |
| 294 | + | |
| 295 | + | |
| 296 | + | |
| 297 | + | |
| 298 | + | |
| 299 | + | |
| 300 | + | |
| 301 | + | |
| 302 | + | |
| 303 | + | |
| 304 | + | |
| 305 | + | |
| 306 | + | |
| 307 | + | |
| 308 | + | |
| 309 | + | |
| 310 | + | |
| 311 | + | |
| 312 | + | |
| 313 | + | |
| 314 | + | |
| 315 | + | |
| 316 | + | |
0 commit comments