# stage2 parser performance/API improvements · gitcafe/zig

[View on GitCafe](https://git.cafe/gitcafe/zig/commit/d37b81d43bc52daa94dd1ad1631018ea0cd11f77)

Repository: [gitcafe/zig](https://git.cafe/gitcafe/zig)

Visibility: public

Requested revision: d37b81d43bc52daa94dd1ad1631018ea0cd11f77

Requested commit: d37b81d43bc52daa94dd1ad1631018ea0cd11f77

Commit: d37b81d43bc52daa94dd1ad1631018ea0cd11f77

Tree: 349db74ec5b830aabfe5d36ffd3acc182ed73a0d

Author: Andrew Kelley

Committer: Andrew Kelley

## Message

```
stage2 parser performance/API improvements

 * Extract Call ast node tag out of SuffixOp; parameters go in memory
   after Call.
 * Demote AsmInput and AsmOutput from AST nodes to structs inside the
   Asm node.
 * The following ast nodes get their sub-node lists directly following
   them in memory:
   - ErrorSetDecl
   - Switch
   - BuiltinCall
 * ast.Node.Asm gets slices for inputs, outputs, clobbers instead of
   singly linked lists

Performance changes:

throughput: 72.7 MiB/s => 74.0 MiB/s
maxrss: 72 KB => 69 KB (nice)

```

## Parents

- [32ecb416f3acc49b80268711562f2c4133a828b9](https://git.cafe/gitcafe/zig/commit/32ecb416f3acc49b80268711562f2c4133a828b9?format=markdown)

[Source at this commit](https://git.cafe/gitcafe/zig/tree/d37b81d43bc52daa94dd1ad1631018ea0cd11f77?format=markdown)
