Commit 95d8876
authored
[NFC] Skip parsing instructions in first parser pass (#8601)
The first parser pass is responsible for two things: finding the
locations of definitions of top-level module items like globals and
functions and finding the locations of implicit function type
definitions. It previously accomplished the latter by fully parsing
every instruction in each function. But the IR is not constructed in
this phase of parsing, so fully parsing every instruction was largely
wasted work. Optimize the parser by parsing only the instructions that
might have implicit type definitions and otherwise just blindly match
parentheses to skip the function body. Combined with #8597, this speeds
up parsing by 30-40%.1 parent 2fa35d6 commit 95d8876
4 files changed
+48
-11
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
15 | 15 | | |
16 | 16 | | |
17 | 17 | | |
| 18 | + | |
18 | 19 | | |
19 | 20 | | |
20 | 21 | | |
| |||
302 | 303 | | |
303 | 304 | | |
304 | 305 | | |
| 306 | + | |
| 307 | + | |
| 308 | + | |
| 309 | + | |
| 310 | + | |
| 311 | + | |
| 312 | + | |
| 313 | + | |
| 314 | + | |
| 315 | + | |
| 316 | + | |
| 317 | + | |
| 318 | + | |
| 319 | + | |
| 320 | + | |
| 321 | + | |
| 322 | + | |
| 323 | + | |
| 324 | + | |
| 325 | + | |
| 326 | + | |
| 327 | + | |
| 328 | + | |
| 329 | + | |
| 330 | + | |
| 331 | + | |
| 332 | + | |
| 333 | + | |
| 334 | + | |
| 335 | + | |
| 336 | + | |
| 337 | + | |
305 | 338 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1074 | 1074 | | |
1075 | 1075 | | |
1076 | 1076 | | |
| 1077 | + | |
| 1078 | + | |
1077 | 1079 | | |
1078 | 1080 | | |
1079 | 1081 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
82 | 82 | | |
83 | 83 | | |
84 | 84 | | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
85 | 94 | | |
86 | 95 | | |
87 | 96 | | |
| |||
155 | 164 | | |
156 | 165 | | |
157 | 166 | | |
158 | | - | |
159 | | - | |
160 | | - | |
161 | | - | |
162 | | - | |
163 | | - | |
164 | | - | |
165 | | - | |
166 | | - | |
167 | 167 | | |
168 | 168 | | |
169 | 169 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3491 | 3491 | | |
3492 | 3492 | | |
3493 | 3493 | | |
| 3494 | + | |
3494 | 3495 | | |
3495 | 3496 | | |
3496 | 3497 | | |
| |||
3505 | 3506 | | |
3506 | 3507 | | |
3507 | 3508 | | |
3508 | | - | |
| 3509 | + | |
| 3510 | + | |
3509 | 3511 | | |
3510 | 3512 | | |
3511 | 3513 | | |
3512 | 3514 | | |
3513 | 3515 | | |
3514 | | - | |
| 3516 | + | |
3515 | 3517 | | |
3516 | 3518 | | |
3517 | 3519 | | |
| |||
0 commit comments