diff options
| author | mlugg <mlugg@mlugg.co.uk> | 2023-06-24 22:21:43 +0100 |
|---|---|---|
| committer | Andrew Kelley <andrew@ziglang.org> | 2023-06-27 01:21:32 -0700 |
| commit | ff37ccd298f0ab28a9d0e0ee1110dadc6db4df1e (patch) | |
| tree | 8b7b2ad4bc95f8cbbfd277fbfd7dfd30a7222b3a /lib/std/Build/Step/CheckObject.zig | |
| parent | dae516dbdffaf771e072679a76a6d48f3f0aa182 (diff) | |
| download | zig-ff37ccd298f0ab28a9d0e0ee1110dadc6db4df1e.tar.gz zig-ff37ccd298f0ab28a9d0e0ee1110dadc6db4df1e.zip | |
Air: store interned values in Air.Inst.Ref
Previously, interned values were represented as AIR instructions using
the `interned` tag. Now, the AIR ref directly encodes the InternPool
index. The encoding works as follows:
* If the ref matches one of the static values, it corresponds to the same InternPool index.
* Otherwise, if the MSB is 0, the ref corresponds to an InternPool index.
* Otherwise, if the MSB is 1, the ref corresponds to an AIR instruction index (after removing the MSB).
Note that since most static InternPool indices are low values (the
exceptions being `.none` and `.var_args_param_type`), the first rule is
almost a nop.
Diffstat (limited to 'lib/std/Build/Step/CheckObject.zig')
0 files changed, 0 insertions, 0 deletions
