1.1 KiB
1.1 KiB
weight | title | description | icon | date | lastmod |
---|---|---|---|---|---|
100 | Flatten control flow | Control flow flattener | article | 2025-05-01T18:47:58-05:00 | 2025-05-01T18:47:58-05:00 |
This option enables Control Flow Flattening (CFF), restructuring control flow and statements into a dispatch-like state machine. The flattener prioritizes correctness; if flattening a block could cause side effects, it either skips that block or only partially flattens it.
The control flow flattener supports the following branching syntaxes:
if
statementswhile
andrepeat
loops- numeric
for
loops break
andcontinue
statementsfor-in
loops and even support for Luau's generalized iteration
The following child options are available:
Expression Decomposition
: Breaks apart expressions into CFF blocks and temporaries, can kill performance.Wrap CFF blocks
: Will move compatible CFF blocks into their own closure in a lookup table. Can speed up larger flattening targets.Hoist locals
: Will move local storage into a lookup table. Useful to cut down on the number of used locals.