Ivan Krysak
3cd801dbac
SVG: introduce slices-to-SVG converter
2022-09-26 12:09:03 +02:00
Ivan Krysak
63019a3850
Yield: add a Graph keyword to SVG emitters
2022-09-26 12:08:22 +02:00
Ivan Krysak
2e9269caf8
Yield: implement pipes::*::getContract in .h
2022-09-26 12:07:54 +02:00
Ivan Krysak
6638055ecf
TupleTreeCompatible: drop NotTupleTreeCompatible
2022-09-26 12:01:56 +02:00
Ivan Krysak
fd994728bd
Yield: introduce call graph slicing
2022-09-26 12:01:43 +02:00
Ivan Krysak
cf5c010a7c
Layouter: introduce simple tree specialization
2022-09-26 10:33:43 +02:00
Ivan Krysak
7e051e3a23
Layouter: improve configuration documentation
2022-09-26 10:33:43 +02:00
Pietro Fezzardi
c7105cda4d
GraphAlgorithms: generic entry point detection
2022-09-26 10:33:43 +02:00
Massimo Fioravanti
3ed1ce9902
Read-only containers: support multiple readers
2022-09-26 10:33:43 +02:00
Ivan Krysak
ed8279fe08
Pipes: introduce a call graph emitting pipe
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
db406a8835
PTML: introduce function links
2022-09-26 10:33:43 +02:00
Ivan Krysak
8b01cb0da1
Layouter: increase configuration options
2022-09-26 10:33:43 +02:00
Ivan Krysak
53ae25bcde
MetaAddress: improve constexpr-friendliness
2022-09-26 10:33:43 +02:00
Ivan Krysak
9e098d2c9b
GenericGraph: fix trait ordering and add inverse
2022-09-26 10:33:43 +02:00
Ivan Krysak
909042a13d
AVI: rename ::Edge to avoids name collision
2022-09-26 10:33:43 +02:00
Ivan Krysak
00dc8dd477
PTMLTag: fix addListAttribute's requires clause
2022-09-26 10:33:43 +02:00
Alessandro Di Federico
cf62e6dce7
Minor changes
2022-09-22 17:43:55 +02:00
Djordje Todorovic
5559d8431b
Introduce fix-model model pass
2022-09-21 18:37:36 +02:00
Alvise de Faveri
999df25246
Add revng model export type-graph tool
...
This tools dumps a type, a function or an entire type-system to a
dot file,representing dependencies between types as edges.
2022-09-19 08:35:06 +02:00
Pietro Fezzardi
ec9a5b0608
Use lexicographical compare for model::Qualifier
2022-09-19 08:34:20 +02:00
Pietro Fezzardi
695c1529db
dla::LayoutTypeSystem add eraseEdge method
2022-09-12 17:52:50 +02:00
Pietro Fezzardi
38e4658762
Add LayoutTypeSystem::NeighborIterator type
2022-09-12 12:28:48 +02:00
Pietro Fezzardi
3ec19a4a93
Add dla::OffsetExpression::append() static method
2022-09-12 12:14:52 +02:00
Pietro Fezzardi
fb652dedb8
Add dla::OffsetExpression::verify()
2022-09-12 12:14:52 +02:00
Pietro Fezzardi
f5ef671ecc
Enforce revng check-conventions
2022-09-12 12:14:52 +02:00
Giacomo Vercesi
d68640e2cb
upcast: use universal references
2022-09-01 17:48:00 +02:00
Giacomo Vercesi
a7eb0a8d59
Ranks.h: introduce additional Ranks
2022-09-01 17:47:55 +02:00
Giacomo Vercesi
37caa91e6d
Ranks: fix Rank keys
...
Use model::Function::Key for the Function rank instead of the naked
MetaAddress as it allows forward-compatibility if the model::Function
key is ever changed.
Use a std::tuple<uint64_t> for TypeField as it's the current type for
{Struct,Enum,Union}Field.key()
2022-09-01 17:46:57 +02:00
Giacomo Vercesi
7cff7737ac
Introduce ModelHelpers.h
...
ModelHelpers contains helper functions that produce the appropiate
edit path for the given elements of the model.
2022-09-01 17:46:40 +02:00
Giacomo Vercesi
e443cd3766
YAMLTraits.h: add traits for std::tuple<T>
...
This commit introduces a YAML trait for `std:tuple`s of a single
scalar that allows their serialization/deserialization generically.
2022-09-01 17:46:35 +02:00
Giacomo Vercesi
8aab66a517
Rank.h: restrict keys to scalars and enums
...
Rank keys so far could be of any type as long as it was
yaml-serializable, however this would introduce problems down the
line if a Location contained for example array or mapping.
This commit restricts the type of keys to only scalars and enums,
to limit the chance that a key serializes in an invalid location.
2022-09-01 17:46:30 +02:00
Giacomo Vercesi
7d77d388b5
ConstexprString: allow default construction
2022-09-01 17:46:30 +02:00
Giacomo Vercesi
a05737696f
Introduce revng/Model/ForwardDecls.h
2022-09-01 17:46:25 +02:00
Giacomo Vercesi
b7a23dcd4a
Rename and improve ptml::TagScope
...
Renames ptml::TagScope to ScopeTag and fixes issue when Tag.scope
was called with a temporary.
2022-09-01 17:46:10 +02:00
Giacomo Vercesi
8e996d2394
Output PTML in revng-c
...
Change the output of the backend of revng-c to PTML
2022-09-01 16:59:29 +02:00
Giacomo Vercesi
84e29d6b96
Fix linkage of Tag::scope in Tag.h
2022-09-01 15:49:44 +02:00
Massimo Fioravanti
9a4e97d8ea
Pipeline: handle having 0 functions
2022-08-31 18:07:47 +02:00
Alessandro Di Federico
f93eefda66
replaceAll: move to STLExtras.h
2022-08-31 18:07:47 +02:00
Massimo Fioravanti
9ce7b1e527
Drop Pipe suffix from pipe names
2022-08-29 14:45:45 +02:00
Massimo Fioravanti
633f49c1ef
Introduce dedicated namespace for kinds and ranks
2022-08-29 14:44:53 +02:00
Massimo Fioravanti
915c083661
Pipes: reorganize who defines pipes
2022-08-29 14:44:35 +02:00
Massimo Fioravanti
a8a8eda9ac
Pipeline/Invokable.h: split
2022-08-29 14:44:20 +02:00
Massimo Fioravanti
2a996ef666
Pipeline: allow analyses to fail
2022-08-29 14:44:10 +02:00
Massimo Fioravanti
7e75a1a4b8
Pipeline: introduce preconditions for pipes
2022-08-29 14:44:02 +02:00
Massimo Fioravanti
6b099c57e8
Pipeline: introduce options for analyses
2022-08-29 14:43:25 +02:00
Alessandro Di Federico
178b58b9d5
ImportBinary: turn into an analysis
2022-08-26 09:50:42 +02:00
Alessandro Di Federico
38d91a793b
AddPrimitiveTypes: turn into an analysis
2022-08-26 09:50:42 +02:00
Alessandro Di Federico
d81fc9a5f6
getAcceptedKinds: introduce new assertion
2022-08-26 09:50:42 +02:00
Massimo Fioravanti
14d4d4e11a
Rename pipes contained in namespace pipes
2022-08-25 18:17:46 +02:00