diff options
| author | Andrew Kelley <andrew@ziglang.org> | 2021-01-22 16:45:09 -0700 |
|---|---|---|
| committer | Andrew Kelley <andrew@ziglang.org> | 2021-01-31 21:09:22 -0700 |
| commit | 588171c30b34426fbb07645aa2625e989f369eec (patch) | |
| tree | 254ff4567279c496dd61a4a790c64c64a8d7e763 /lib/std/Thread/Condition.zig | |
| parent | 06bb360dd296288db33844d682188e33116d7ab6 (diff) | |
| download | zig-588171c30b34426fbb07645aa2625e989f369eec.tar.gz zig-588171c30b34426fbb07645aa2625e989f369eec.zip | |
sema: after block gets peer type resolved, insert type coercions
on the break instruction operands. This involves a new TZIR instruction,
br_block_flat, which represents a break instruction where the operand is
the result of a flat block. See the doc comments on the instructions for
more details.
How it works: when adding break instructions in semantic analysis, the
underlying allocation is slightly padded so that it is the size of a
br_block_flat instruction, which allows the break instruction to later
be converted without removing instructions inside the parent body. The
extra type coercion instructions go into the body of the br_block_flat,
and backends are responsible for dispatching the instruction correctly
(it should map to the same function calls for related instructions).
Diffstat (limited to 'lib/std/Thread/Condition.zig')
0 files changed, 0 insertions, 0 deletions
