Djordje Todorovic
961f9e5461
Model: search debug info locally upon import
...
Also find prototypes in Models of dynamic libs for both PE and ELF.
2022-12-13 11:26:54 +01:00
Djordje Todorovic
cad68a9876
Instroduce LDDTree
2022-12-13 11:26:25 +01:00
Djordje Todorovic
809ea798a6
Introduce revng import debug-info
...
It supports both PDB and DWARF formats.
We get rid of `import dwarf` tool.
2022-12-13 11:25:46 +01:00
Massimo Fioravanti
742e1a0c56
TupleTree: switch from public fields to accessors
2022-12-12 18:36:57 +01:00
Alessandro Di Federico
b83edd61c0
DwarfImport: fix handling of local functions
2022-11-30 15:06:54 +01:00
Alessandro Di Federico
98bea7dcec
Minor changes
2022-11-30 15:06:54 +01:00
Massimo Fioravanti
0bfb73fe95
FunctionMetadata: introduce cache
...
FunctionMetadata was being deserialized every time they were
inspected. This commit introduces a cache structure to prevent this
excessive deserializations.
2022-11-22 14:15:00 +01:00
Massimo Fioravanti
e24fdbd446
revng-artifact: handle binaries with 0 functions
...
When revng-artifact is requested to produce the functions of a binary
that had 0 functions, it crashed. This commit fixes it by checking if
something has been actually being produced.
2022-11-02 10:47:33 +01:00
Giacomo Vercesi
0b80801b2b
TupleTreeDiff: applyDiff uses ErrorList
...
Change how TupleTreeDiff and Visitor work so they can populate an
ErrorList in case the deserialization/apply of a diff fails.
2022-10-30 09:13:44 +01:00
Giacomo Vercesi
81d25f9805
PipelineC: expose invalidation logic
2022-10-30 09:13:14 +01:00
Pietro Fezzardi
d520fd5aea
Cache TTRs in Model tools
2022-10-29 16:46:19 +02:00
Massimo Fioravanti
6a869735a9
Pipeline: fix driver for targetless invocation
2022-10-21 11:18:33 +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
bf4122ed0a
Introduce v2 of revng-check-conventions
2022-09-29 15:21:59 +02:00
Alessandro Di Federico
cf62e6dce7
Minor changes
2022-09-22 17:43:55 +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
Davide Depau
286a9fe2d3
revng-analyze: add InitRevng to entrypoint
2022-09-19 08:32:02 +02:00
Davide Depau
42e932ad39
revng-artifact: add InitRevng to entrypoint
2022-09-19 08:31:55 +02:00
Massimo Fioravanti
633f49c1ef
Introduce dedicated namespace for kinds and ranks
2022-08-29 14:44:53 +02:00
Massimo Fioravanti
6b099c57e8
Pipeline: introduce options for analyses
2022-08-29 14:43:25 +02:00
Alessandro Di Federico
1d91ed9beb
tuple_tree_generator: make C++ just a regular backend
...
The `tuple_tree_generator` component was still heavily treating C++ as a
special citizen.
This commit normalizes the situation.
2022-08-11 16:20:42 +02:00
Massimo Fioravanti
55b2e42139
revng-pipeline: introduce --apply-model-diff
2022-08-10 09:49:24 +02:00
Massimo Fioravanti
bf39373f87
revng-invalidate: drop superfluous dependency
2022-08-10 09:49:24 +02:00
Massimo Fioravanti
d250d43ee4
revng-pipeline: factor out common CLI options
...
Common CLI options that were used by multiple tools and have now been
isolated into a single include file to be used before declaring main.
2022-08-10 09:49:24 +02:00
Massimo Fioravanti
261a114d6d
Pipeline: corner-case fix in backward deduction
2022-08-10 09:49:24 +02:00
Massimo Fioravanti
b49062b2d6
revng-pipeline: introduce --produce-all-single
2022-08-10 09:49:24 +02:00
Massimo Fioravanti
0bb115a4f3
revng-pipeline: rework syntax for targets
...
Was: step:container:p/a/t/h:kind
Now: step/container/p/a/t/h:kind
2022-08-10 09:49:24 +02:00
Massimo Fioravanti
4cd5abe2b0
revng-pipeline: introduce --produce and --analyze
2022-08-10 09:49:24 +02:00
Massimo Fioravanti
9c13f8dbdd
Introduce revng-artifact
2022-08-10 09:49:24 +02:00
Massimo Fioravanti
96bd5835d8
revng-pipeline: rework file-to-container syntax
2022-08-10 09:49:24 +02:00
Massimo Fioravanti
85a9c9637f
revng-pipeline: rework logging
2022-08-10 09:49:24 +02:00
Massimo Fioravanti
84d6c2a4a8
revng-pipeline: drop redundant Logger
2022-08-10 09:49:24 +02:00
Alessandro Di Federico
6a6cd939db
Rework EarlyFunctionAnalysis
2022-08-08 13:55:34 +02:00
Djordje Todorovic
a36e22729f
Model: Add PDB support
2022-07-28 14:52:50 +02:00
Davide Depau
8d89be44fc
Add initialization utility to all main functions
2022-07-22 21:04:03 +02:00
Massimo Fioravanti
1527a8667b
Introduce revng pipeline --analyze-all
2022-06-22 18:11:32 +02:00
Alessandro Di Federico
f4684e244d
Switch to new testsuite
2022-06-20 19:04:18 +02:00
Ivan Krysak
04efcb8ed8
Drop the revng yield .* tools
2022-06-14 18:55:59 +03:00
Massimo Fioravanti
f8ad4e634d
Replace pipeline -load using LLVM -load mechanism
...
`revng -load` mechanism did not allow to specify arguments for loaded
libraries, the new LLVM mechanism allow to do so.
2022-06-13 18:30:08 +02:00
Massimo Fioravanti
f0a5ffe3b3
revng-pipeline: globals, extractOne and analyses
2022-05-24 08:58:48 +02:00
Pietro Fezzardi
ca566a76f0
Rename StringMapContainer to FunctionStringMap
...
This new naming more closely describes the fact that each element in the
map must be associated with a model::Function
2022-05-11 16:16:32 +02:00
Pietro Fezzardi
bce0bd70b1
StringMapContainer: fix enumeration for * target
2022-05-11 14:52:22 +02:00
Ivan Krysak
8a07e67767
Add revng yield assembly tool
2022-05-06 18:51:47 +02:00
Ivan Krysak
2a6a7943f4
Fix a couple of minor typos
2022-05-06 18:51:47 +02:00
Massimo Fioravanti
3d752f6c7f
Introduce revng pipeline --invalidate-all
2022-04-15 15:18:28 +02:00
Massimo Fioravanti
eef9ba74da
Introduce ModelInvalidationEvent
2022-04-15 15:17:58 +02:00
Massimo Fioravanti
c4aa92694c
Introduce revng model apply
2022-04-15 15:15:41 +02:00
Massimo Fioravanti
bf1de27239
revng model diff: keep output
2022-04-15 15:14:41 +02:00
Massimo Fioravanti
44720eedbd
Redesign TupleTreeDiff
...
`TupleTreeDiff` is now type-safe and owns the changes.
2022-04-15 15:14:13 +02:00
Antonio Frighetto
dddd8ecbcb
Update EFA tests to support CFG out of the model
2022-04-05 15:37:57 +02:00