Dan Klishch
e1a1f4ed1a
JSSpecCompiler: Parse lists in xspec mode
2024-02-24 15:03:08 -07:00
Dan Klishch
0aeb7a26e9
JSSpecCompiler: Prepare for building SSA
...
This commit introduces NamedVariableDeclaration and
SSAVariableDeclaration and allows storing both of them in Variable node.
Also, it adds additional structures in FunctionDefinition and
BasicBlock, which will be used to store SSA form related information.
2024-01-04 12:06:56 -07:00
Dan Klishch
12072dbac5
JSSpecCompiler: Add control flow graph simplification pass
...
It removes empty `BasicBlock`s with an unconditional jump continuation
and then removes unreferenced blocks from the graph.
2024-01-04 12:06:56 -07:00
Dan Klishch
14a86c8fd6
JSSpecCompiler: Elide nested TreeList
nodes
2023-10-02 21:15:08 +02:00
Dan Klishch
326bac19d9
JSSpecCompiler: Make nodes inherit from Statement or Expression
...
The distinction between them will become important during CFG building.
2023-09-17 16:04:42 -06:00
Dan Klishch
4c4e1e1aed
JSSpecCompiler: Add if branch merging pass
...
It merges standalone IfBranch/ElseIfBranch nodes into IfElseIfChain
nodes. This will ease CFG generation later.
2023-09-09 11:20:43 -06:00
Dan Klishch
092ed1cc8a
JSSpecCompiler: Allow storing NullableTree
s in nodes
...
And use this in ElseIfBranch node.
2023-09-09 11:20:43 -06:00
Dan Klishch
198591cc20
JSSpecCompiler: Add infrastructure to run compiler passes on AST
2023-09-02 19:57:06 +02:00