Pietro Fezzardi
d520fd5aea
Cache TTRs in Model tools
2022-10-29 16:46:19 +02:00
Pietro Fezzardi
fff0fbd874
LoadModelPass: cache TTRs on getReadOnlyModel
...
The cache is evicted on the next call to getWritableModel.
2022-10-29 16:46:19 +02:00
Pietro Fezzardi
f371be4271
Cache TTRs on getModelFromContext
...
The cache is evicted on getWritableModelFromContext.
2022-10-29 16:46:19 +02:00
Pietro Fezzardi
d04e2e73d3
TupleTree: caching methods for TupleTreeReferences
2022-10-29 16:46:19 +02:00
Pietro Fezzardi
0795c7e331
TupleTreeReference: cache target pointers
2022-10-29 16:46:19 +02:00
Pietro Fezzardi
7eb94c6646
QualifiedType: add operator<=>
2022-10-29 16:46:19 +02:00
Pietro Fezzardi
cf3103d3d7
TupleTree{Path,Reference}: add operator<=>
2022-10-29 16:46:19 +02:00
Pietro Fezzardi
8e9170eb60
Enforce that TTRs in TupleTree are mutable
2022-10-29 16:46:19 +02:00
Pietro Fezzardi
6173d154a3
TupleTree: visitReferences with non-const visitors
2022-10-29 16:46:19 +02:00
Pietro Fezzardi
5f8dab184d
Move ConstOrNot to Concepts.h
2022-10-29 16:46:19 +02:00
Giacomo Vercesi
232a28ae69
FileContainer: handle case where Path is empty
...
When requesting a `cloneFiltered` the Path attribute of the
FileContainer might be empty, and this will lead to an abort. Fix this
situation by checking if the Path is empty.
2022-10-24 14:25:02 +02:00
Massimo Fioravanti
d55aa9b9e6
Pipeline: remove * from targets
...
Now * is just a pipeline frontend shorthand.
2022-10-20 14:20:12 +02:00
Giacomo Vercesi
025f6d5580
Assembly & CFG: fix MIME type
...
Change the MIME type of the assembly artifact and the svg graphs to the
new naming convention.
2022-10-11 17:11:04 +02:00
Giacomo Vercesi
677fe190be
Ranks: split TypeField
...
Split the TypeField Rank in 3 more specific ranks: StructField,
UnionField and EnumMember.
2022-10-11 17:10:46 +02:00
Ivan Krysak
b94c23cf52
Yield/ControlFlow: stop accounting for footer
2022-10-11 17:09:39 +02:00
Giacomo Vercesi
d7265ff160
PipelineC: allow signal masking
...
Some users of PipelineC might be interested in preserving
pre-existing signals, this commits adds this functionality.
2022-10-04 14:13:56 +02:00
Giacomo Vercesi
7fda1ef459
PipelineC: drop AbortHook
...
Handle crashes via signal handlers. Switch python's revng.api from
a normal python function to faulthandler, which works also in the
case of harsher interruptions (e.g. SIGABRT).
2022-10-04 14:13:56 +02:00
Massimo Fioravanti
049ba69d43
Pipeline: containers can now enumerate their kinds
2022-09-29 15:55:30 +02:00
Massimo Fioravanti
dc23473d85
Introduce Loader::getRegistered{Pipes,Analyses}
2022-09-29 15:55:16 +02:00
Massimo Fioravanti
445bc2aa8c
Pipeline: introduce registry for container types
2022-09-29 15:52:26 +02:00
Massimo Fioravanti
9363bbd70a
Pipeline: every container type has now a C++ type
2022-09-29 15:51:17 +02:00
Giacomo Vercesi
bf4122ed0a
Introduce v2 of revng-check-conventions
2022-09-29 15:21:59 +02:00
Alessandro Di Federico
02c69b0421
TemporaryFile: use RemoveFileOnSignal
2022-09-26 18:05:38 +02:00
Ivan Krysak
6724b6d9cd
revng/Yield/Pipes: streamline file naming
2022-09-26 12:10:47 +02:00
Ivan Krysak
bb37d48dad
Yield: introduce YieldCallGraphSlicePipe
2022-09-26 12:09:28 +02:00
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
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