more better cff docs
This commit is contained in:
parent
51b55b3d32
commit
57adc08610
@ -7,7 +7,7 @@ date: "2025-05-01T18:47:58-05:00"
|
||||
lastmod: "2025-05-01T18:47:58-05:00"
|
||||
---
|
||||
|
||||
This option will enable the Control Flow Flattener (CFF). This feature is conservative in it's estimates of what can be flattened, if a block can't be flattened without side effects, it will be discarded from the flattening queue. CFF is applied recursively to failed blocks, meaning if a block is discarded from the flattening queue, its children may be flattened individually.
|
||||
This option enables Control Flow Flattening (CFF), restructuring code a dispatch-like state machine. The flattener prioritizes correctness; if flattening a block could cause side effects, it either skips that block or partially flattens it. Failed blocks are re-evaluated recursively, allowing their sub-blocks to be flattened individually.
|
||||
|
||||
The control flow flattener supports the following branching syntaxes:
|
||||
- `if` statements
|
||||
@ -18,6 +18,6 @@ The control flow flattener supports the following branching syntaxes:
|
||||
|
||||
The following child options are available:
|
||||
|
||||
- `Expression Decomposition`: Breaks apart expressions into CFF blocks, can kill performance.
|
||||
- `Wrap CFF blocks`: This will move some 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 for CFF blocks. Useful to cut down on the number of used locals.
|
||||
- `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.
|
Loading…
x
Reference in New Issue
Block a user