aboutsummaryrefslogtreecommitdiff
path: root/lib/std/array_list.zig
diff options
context:
space:
mode:
authormlugg <mlugg@mlugg.co.uk>2023-06-24 22:21:43 +0100
committerAndrew Kelley <andrew@ziglang.org>2023-06-27 01:21:32 -0700
commitff37ccd298f0ab28a9d0e0ee1110dadc6db4df1e (patch)
tree8b7b2ad4bc95f8cbbfd277fbfd7dfd30a7222b3a /lib/std/array_list.zig
parentdae516dbdffaf771e072679a76a6d48f3f0aa182 (diff)
downloadzig-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/array_list.zig')
0 files changed, 0 insertions, 0 deletions