Ivan Krysak
7d235f4fd0
Enforce licence header consistency
...
Also do some basic cleanup: capitalize first letters, add `.`
at the end of the sentences, and so on.
2023-07-03 15:23:10 +00:00
Ivan Krysak
9f1d9fd5d0
Use Container::contains() where appropriate
2023-07-02 15:06:11 +00:00
Ivan Krysak
bc98e0079f
Formatting: change PenaltyReturnTypeOnItsOwnLine
...
The new value is 21.
2023-07-02 13:20:49 +02:00
Djordje Todorovic
286eb4d734
c-backend: Introduce PTMLCBuilder
...
This will be used to generate plain C.
2023-06-09 15:40:23 +02:00
Giacomo Vercesi
a4ad571e61
rcc: Fix typos
...
Fix the typos detected by `codespell`
2023-05-11 10:04:32 +02:00
Alessandro Di Federico
4b2e067574
rcc: ban functions we wrap
2023-04-28 14:34:52 +02:00
Alessandro Di Federico
8b3f641a29
Rename LLVMGlobalKindBase to LLVMKind
2023-04-28 14:34:49 +02:00
Alessandro Di Federico
f68185abc9
Push ParseCommandLineOptions into InitRevng
2023-04-28 14:34:35 +02:00
Alessandro Di Federico
0f2b35a632
Adopt new InitRevng signature
2023-04-28 13:54:12 +02:00
Alessandro Di Federico
0e6344ce44
Minor changes
2023-04-28 13:33:08 +02:00
Massimo Fioravanti
254dc99fcb
TupleTreeGenerator: emit tracking machinery
2023-04-21 17:50:16 +02:00
Giacomo Vercesi
a2b7d0e0bf
PipelineC: add tracing
...
Add support for tracing onto the PipelineC. This is done by:
1. Creating wrapper functions for each PipelineC function with the
script in `scripts/PipelineC_add_tracing.py`. These will call a
special function called `wrap` which will ultimately call a method
with a `_` prepended to the name
2. Conversion of all PipelineC methods in `PipelineC.cpp` to `static`
and their rename with a `_` in front, in order for them to work with
the wrapper function in (1)
3. Generation of 2 additional include files, one for types and one for
functions, to be used by users of tracing files in order to have
introspection.
These steps allow the creation of a trace file with the use of the
`REVNG_C_API_TRACE_PATH` environment variable. The traces can then be
used in conjunction with the `revng trace run` and `revng trace
inspect` commands.
2023-04-20 14:43:13 +02:00
Giacomo Vercesi
2e96e09f63
Drop analyze-all
...
Drop all the uses of analyzeAll and swap its use with the invocation of
the appropriate analysesList
2023-03-22 17:50:02 +01:00
Giacomo Vercesi
a926ca8fcb
revng: make cmd tools analysesList-aware
...
Add the possibility to use analyses lists on tools where the use of
analyses names is allowed
2023-03-22 17:31:46 +01:00
Ivan Krysak
64856306c4
BinaryImporter: rework command line interface
2023-03-15 10:19:03 +01:00
Ivan Krysak
0b0aab2161
ImportDebugInfo: explicitly depend on libABI
2023-03-15 10:19:02 +01:00
Ivan Krysak
a06d9fedbd
STLExtras: extend revng::find family
2023-03-15 10:19:01 +01:00
Massimo Fioravanti
4dc2e92782
Introduce DocumentError
...
`DocumentError`s are the inteded way of propagating errors from the
pipeline to the frontend when a location is required to inform the user
of the error whereabouts.
2023-02-09 13:42:50 +01:00
Massimo Fioravanti
9432399254
Introduce ApplyDiffAnalysis
2023-02-06 09:37:23 +01:00
Antonio Frighetto
ea0a06a876
revng.daemon: accept no arguments for analysis
...
Let GraphQL accept zero or more parameters for analyses.
2023-02-06 09:37:23 +01:00
Alessandro Di Federico
bf20a83268
revng-pipeline: reduce dependencies
2023-01-21 18:56:22 +01:00
Pietro Fezzardi
97883844d3
Fix initialization of FunctionTags
2023-01-17 11:11:46 +01:00
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
335d402245
Change signatures to forward metadata cache.
2022-11-22 12:27:02 +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
Pietro Fezzardi
73210ab4ae
Adopt TupleTreeReference caching
2022-10-31 09:08:17 +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
Alessandro Di Federico
48656584ce
Drop PrintStackTraceOnErrorSignal
...
InitLLVM, and therefore, InitRevng does that.
2022-10-28 16:03:15 +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
Massimo Fioravanti
f1852166ab
Pipeline: reworked cpp container types
2022-10-03 14:26:06 +02:00
Giacomo Vercesi
7e80a509ab
Sync rcc v2 fixes
2022-09-29 17:34:10 +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
Massimo Fioravanti
370b081c0e
Moved kinds to kinds namespace
2022-08-25 17:09:15 +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