Massimo Fioravanti
f11ed394d1
Rework yield and efa cross relations
...
Yield and efa shared the same namespace, this commits splits them and
introduces tuple tree containers as well.
2023-01-31 10:48:30 +01:00
Massimo Fioravanti
742e1a0c56
TupleTree: switch from public fields to accessors
2022-12-12 18:36:57 +01:00
Alessandro Di Federico
974dd0c680
yield::Function: do not use efa::BasicBlock
...
This change introduces some duplication but ensures an important
property of `tuple_tree_generate`d: data structures: all the leaves are
scalars. Previously, yield::Function was using efa::BasicBlock, making
things more difficult under certain conditions.
Specifically, we can rely on the fact that, when generating a visit to
the TupleTree, we know everything about all non-scalars.
2022-12-09 10:11:27 +01:00
Alessandro Di Federico
66b12ad540
Yield: move CrossRelation into its own directory
...
Also, use ROOT_TYPE.
2022-12-09 10:11:27 +01:00
Giacomo Vercesi
4d0f72548a
ControlFlow/SVG: switch to simple tree layouter
2022-10-11 17:10:06 +02:00
Ivan Krysak
b94c23cf52
Yield/ControlFlow: stop accounting for footer
2022-10-11 17:09:39 +02:00
Ivan Krysak
3cd801dbac
SVG: introduce slices-to-SVG converter
2022-09-26 12:09:03 +02:00
Ivan Krysak
15f0c816c6
SVG Exporter: adopt ptml::Tag
2022-09-26 12:08:47 +02:00
Ivan Krysak
63019a3850
Yield: add a Graph keyword to SVG emitters
2022-09-26 12:08:22 +02:00
Ivan Krysak
cf5c010a7c
Layouter: introduce simple tree specialization
2022-09-26 10:33:43 +02:00
Ivan Krysak
b267868356
CFG: fix calculateViewBox for entryless graphs
2022-09-26 10:33:43 +02:00
Ivan Krysak
0c7785bc38
Layouter & SVG: improve handling of empty graphs
2022-09-26 10:33:43 +02:00
Ivan Krysak
c90a49ec56
SVG Exporter: introduce call graph flavour
2022-09-26 10:33:43 +02:00
Ivan Krysak
7037be8b90
SVG Exporter: improve arrow head customizability
2022-09-26 10:33:43 +02:00
Giacomo Vercesi
3e9058393e
Rework YieldAssemblyHTML to output PTML
2022-07-28 08:47:34 +02:00
Ivan Krysak
71115c8062
Implement SVG control flow exporter
2022-06-15 16:04:44 +03:00
Ivan Krysak
7591788620
Implement node size calculation
2022-06-15 16:04:44 +03:00
Ivan Krysak
840a34c0a4
Implement CFG extraction
2022-06-15 16:04:44 +03:00
Ivan Krysak
b19663e439
Implement labeled block detection
2022-06-15 16:03:45 +03:00
Ivan Krysak
de9861815a
Move fallthrough detection to yield::cfg
2022-06-15 16:02:44 +03:00
Ivan Krysak
80e9243e06
Add a basic CFG pipeline
2022-06-15 15:52:26 +03:00