Ivan Krysak
bac670a38a
monotone_framework_lattice: move generation notice
...
It made it look like the template was autogenerated.
2022-02-14 10:57:20 +01:00
Alessandro Di Federico
ec6d4dbe74
Ensure all files end with a newline
2022-02-14 10:56:15 +01:00
Massimo Fioravanti
ef1b59158f
revng-translate: propagate arguments after --
2022-02-11 18:45:13 +01:00
Alessandro Di Federico
8f73438a8b
Ban tabs and spaces at end of lines
2022-02-08 17:54:07 +01:00
Massimo Fioravanti
d696197597
scripts/revng: adopt revng-pipeline
...
The revng-translate tool is now a driver for revng-pipeline to perform
the translation.
This commit also drops computing the `-load` "roots". It shouldn't
really be necessary.
2022-02-08 00:05:03 +01:00
Massimo Fioravanti
fe9686be03
revng-pipeline: introduce C API
2022-02-08 00:05:03 +01:00
Alessandro Di Federico
0f084ed620
Minor changes
2022-02-07 16:55:46 +01:00
Alessandro Di Federico
60b2dbab72
revng: support model subcommands
2022-01-31 16:28:26 +01:00
Alessandro Di Federico
78be0e9268
Explode TupleTree.h
2022-01-31 16:28:26 +01:00
Alessandro Di Federico
c0f8110e4e
s/revng-compare-yaml/revng-model-compare/
2022-01-31 16:28:17 +01:00
Alessandro Di Federico
0d7decccb3
s/revng-dump-model/revng-model-to-json/
2022-01-31 16:28:17 +01:00
Alessandro Di Federico
f3634e165f
Introduce model::Type::localCompare
2022-01-27 11:51:03 +01:00
Alessandro Di Federico
54fcc1d7fe
struct_impl.cpp.tpl: include headers in any case
2022-01-27 11:51:03 +01:00
Alessandro Di Federico
0a0b546bdc
Speed up Python dependency checks
...
Checking Python dependencies has significantly slown down CMake
configuration phase.
We were using `pip show` for each dependency, we now do everything in a
single invocation `pip list`.
2022-01-27 11:51:03 +01:00
Alessandro Di Federico
7ea55326e1
tuple_tree_generator: use all_optional_fields
2022-01-27 11:50:37 +01:00
Filippo Cremonese
31354a4cd6
metaschema.yml: actually enforce validation
...
Previously, we didn't specify the type of the root object, which led to
accept any input.
2022-01-21 18:05:52 +01:00
Filippo Cremonese
f10bc1a410
Check pyparsing version at configure time
...
Otherwise, people will get obscure error messages.
2022-01-21 18:05:51 +01:00
Alessandro Di Federico
3ab32cd2ef
tuple_tree_generator: make fully standalone
2022-01-21 18:05:51 +01:00
Filippo Cremonese
c7a0d05379
tuple_tree_generator: remove unused include
2022-01-21 18:05:49 +01:00
Filippo Cremonese
610d5112c7
tuple_tree_generator: fix type lookup
2022-01-21 18:03:07 +01:00
Filippo Cremonese
0a70383e12
tuple_tree_generator: Jinja2 compatibility issue
...
This commit fixes a compatibility issue with Jinja2 2.10.
2022-01-17 16:35:01 +01:00
Filippo Cremonese
6e7439ad6d
Check Python requirements at configure time
2022-01-13 14:34:11 +01:00
Filippo Cremonese
74217b4fe5
Generate C++ model from YAML definition
...
Model classes are now described by a YAML document, which is used to
generate C++ headers containing classes and all the boilerplate
required for YAML serialization/deserialization, usage in
SortedVectors, etc. See the README in include/revng/Model for more
info.
2022-01-13 14:34:11 +01:00
Alessandro Di Federico
6073133545
CodeGenerator: drop IR emission duties
2021-12-22 17:47:54 +01:00
Alessandro Di Federico
777adcbd45
model::Binary: add segments and imported libraries
...
Now, `scripts/revng` uses the model and we no longer need to emit
.li.csv and .need.csv.
2021-12-22 17:47:54 +01:00
Alessandro Di Federico
1ad2522240
Minor changes
2021-12-22 13:47:21 +01:00
Alessandro Di Federico
f1ce1f9980
compare-yaml: handle - as stdin
2021-12-17 18:50:57 +01:00
Alessandro Di Federico
c64223a80c
mv scripts/{,revng-}compare-yaml
2021-12-17 18:50:49 +01:00
Alessandro Di Federico
7cc2e914d7
compare-yaml: switch to grandiso.find_motifs
...
We need to use the `interestingness` in order to have good performance.
2021-12-17 18:50:41 +01:00
Alessandro Di Federico
101e7f7e09
compare-yaml: add attribute for references
2021-12-17 18:50:33 +01:00
Alessandro Di Federico
fd08154452
compare-yaml: support negation
2021-12-17 18:50:25 +01:00
Alessandro Di Federico
786598d633
compare-yaml: ignore classes upon deserialization
2021-12-17 18:50:16 +01:00
Alessandro Di Federico
8ead934c8e
Improve scripts/compare-yaml
...
* Rename from compare-json.py to compare-yaml
* Handle YAML
* Support certain characteristics of the model
* Use subgraph matching to perform comparisons
* Introduce some testing
* Drop Python 2 support
* Reformat
2021-12-17 18:49:01 +01:00
Qian Matteo Chen
886e58553b
Introduce new ABIAnalyses
...
Architecture-agnostic and ABI-independent data-flow analyses that
traverse the recovered functions in order to detect arguments and
return values registers.
2021-12-15 18:03:30 +01:00
Alessandro Di Federico
f4d09bc5ff
Improve scripts/compare-yaml
...
* Rename from compare-json.py to compare-yaml
* Handle YAML
* Support certain characteristics of the model
* Use subgraph matching to perform comparisons
* Introduce some testing
* Drop Python 2 support
* Reformat
2021-12-15 18:03:30 +01:00
Alessandro Di Federico
1d8e274dcd
Do not by pass HARD flags
2021-12-15 18:03:28 +01:00
Alessandro Di Federico
d3cee7611d
revng-dump-model: consider generic MetaAddress too
2021-11-19 10:12:23 +01:00
Alessandro Di Federico
54573608fe
revng-dump-model: consume all the input
2021-11-19 10:12:23 +01:00
Alessandro Di Federico
e1dadae08d
revng-dump-model: ignore YAML tags
2021-11-19 10:12:23 +01:00
Alessandro Di Federico
9b61ad1772
scripts/revng: fix typo in ASan handling
2021-11-08 16:18:27 +01:00
Alessandro Di Federico
93b93a3908
scripts/revng: fix computation of libs dependencies
2021-10-21 15:02:01 +02:00
Andrea Gussoni
cd9e4b5df1
check-revng-conventions: improve c files exclusion
2021-10-21 15:02:01 +02:00
Alessandro Di Federico
fe2e9427c1
scripts/revng: use gdb -q
2021-10-18 20:44:58 +02:00
Alessandro Di Federico
d40c8d4589
scripts/revng: use 4 spaces to indent
2021-10-18 20:44:58 +02:00
Ivan Krysak
5d66973d18
Allow lines to start with .
...
This rule, even if it prevents weird line-breaks, prevents us to take
full advantage of both designated initializers and method-chaining
idiom.
2021-09-01 16:36:41 +02:00
Alessandro Di Federico
6d10581163
Whitespace and other minor changes
2021-07-15 13:30:25 +02:00
Ivan Krysak
bc8c8f82d2
Prevent separation of 'main' headers into group 0
...
The prevention mechanism uses a dummy suffix:
'_THIS_SEQUENCE_IS_NEVER_GOING_TO_HAPPEN'.
2021-06-09 18:05:20 +02:00
Ivan Krysak
2e214bc661
Add an include category for Qt headers
2021-06-08 17:03:58 +02:00
Alessandro Di Federico
2b9cbb98ec
Introduce --invoke-isolated-functions
...
This commit ensures that FunctionIsolation and EnforceABI do only
thing. This means that they no longer modify `root`.
Instead, we have a new pass, `invoke-isolated-functions` that needs to
be run after them and replaces the entry point of the functions with
invokes to the isolated functions, possibly with the appropriate
arguments.
2021-04-22 14:45:52 +02:00
Alessandro Di Federico
c11065c7fd
scripts/revng: handle same library multiple times
...
The `revng` script looks in several paths for analysis
libraries. However, before this commit, in case multiple versions of the
same library were available, you'd get unpredictable results.
This commit ensures that each library is considered at most once, in the
right order.
2021-04-22 14:45:52 +02:00