Commit Graph

41 Commits

Author SHA1 Message Date
Alessandro Di Federico ba1baf6609 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 11:18:02 +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 96bd5835d8 revng-pipeline: rework file-to-container syntax 2022-08-10 09:49:24 +02:00
Alessandro Di Federico 74eab89e35 CMake: unset GIT_DIR before git ls-files 2022-08-10 09:49:20 +02:00
Alessandro Di Federico 1cf9a06009 EnforceABI: use read-only model 2022-08-08 13:55:36 +02:00
Alessandro Di Federico fab6b4133b Tests for ARM, i386, x86-64 and MIPS dynamic calls 2022-08-08 13:55:35 +02:00
Alessandro Di Federico 6a6cd939db Rework EarlyFunctionAnalysis 2022-08-08 13:55:34 +02:00
Ivan Krysak 7b7c4c25b9 Standardize the pipe names to use CamelCase 2022-08-05 21:46:46 +03:00
Massimo Fioravanti c97187fd0e Add cross relations role 2022-08-05 21:45:19 +03:00
Ivan Krysak 191fc99c1c Add a pipe for call-graph processing 2022-08-05 20:45:16 +02:00
Ivan Krysak 792da8151e Redesign the rank definition process 2022-08-05 19:58:57 +02:00
Djordje Todorovic ee686ef158 import-pe: Add more tests for type system 2022-07-28 15:04:26 +02:00
Djordje Todorovic d69020745d import-pe: Add tests 2022-07-28 15:02:49 +02:00
Giacomo Vercesi 3e9058393e Rework YieldAssemblyHTML to output PTML 2022-07-28 08:47:34 +02:00
Giacomo Vercesi 930bac9bca daemon test: filter out environment variables
When running `revng daemon` for tests, remove a selection of
environment variables that could negatively impact the correct
execution of the tests.
2022-07-22 14:56:15 +02:00
Giacomo Vercesi 80afd71721 Add singleTargetFilename to pipelines
A step's artifacts now include singleTargetFilename, which gives a
suggested filename to use when a single element is extracted from the
underlying container.
2022-06-29 14:50:58 +02:00
Giacomo Vercesi 30ef77e6fa GraphQL: introduce queries to retrieve globals
Change the schema to allow introspection of context globals.
2022-06-29 14:50:58 +02:00
Giacomo Vercesi 62e9baeddb GraphQL: rework schema to be camelCase
GraphQL conventions, encourage the use of camelCase for query fields
and PascalCase for types, as detailed here:

    https://graphql-rules.com/rules/naming-fields-args
2022-06-29 14:50:58 +02:00
Giacomo Vercesi ffab18ee48 revng daemon: identify valid port
This commit resolves a non-deterministic test failure in `revng daemon`.

When running daemon tests, `randint` was used for selecting the listen
port, this caused test failures when the same port number was used for
reused. This has been replaced with the use of port 0 that guarantees
the use of an unused port and psutil to find the port number once it has
been bound by the daemon process.
2022-06-29 14:50:58 +02:00
Giacomo Vercesi a741e39f76 revng-check-conventions: introduce prettier
Adds the formatting tool prettier to allow formatting JS, TS, JSON,
YAML and HTML files.
2022-06-28 15:29:09 +02:00
Alessandro Di Federico 867c68078a Drop superfluous f"..." 2022-06-21 18:36:59 +02:00
Alessandro Di Federico bee6872414 Fix CMake formatting 2022-06-21 18:24:43 +02:00
Alessandro Di Federico 7c44328a49 Introduce YAML license notice 2022-06-21 18:19:06 +02:00
Alessandro Di Federico f4684e244d Switch to new testsuite 2022-06-20 19:04:18 +02:00
Ivan Krysak 80e9243e06 Add a basic CFG pipeline 2022-06-15 15:52:26 +03:00
Ivan Krysak f536ba46f0 Separate process-assembly from yield-assembly 2022-06-15 15:52:25 +03:00
Massimo Fioravanti 22bce466b1 revng-pipeline: support handles multiple branches
This commit introduces the possibility to have multiple pipeline
branches in a single YAML pipeline file.
2022-06-13 18:34:03 +02:00
Massimo Fioravanti f0a5ffe3b3 revng-pipeline: globals, extractOne and analyses 2022-05-24 08:58:48 +02:00
Ivan Krysak 282b4e238d Add yield-assembly pipeline 2022-05-06 18:51:47 +02:00
Giacomo Vercesi 4445a841b2 revng-pipeline: introduce artifacts
Add a new key to a Step, named Artifacts. If present, it indicates that
the step has a "default" Kind and Container that can be easily retrieved
without explicitly specifying either when producing an artifact.
2022-04-26 15:59:35 +02:00
Giacomo Vercesi d81dc49809 revng-check-conventions: license check 2022-04-20 09:55:18 +02:00
Pietro Fezzardi 7f65b1117a New AddPrimitiveTypesPipe
This pipe is executed during the Lift step and populates the model with
all the required primitive types.
2022-04-12 16:40:27 +02:00
Antonio Frighetto d6a1611c0a EFA: full ABI analysis or CFG collection only
EarlyFunctionAnalysis now can be invoked to schedule a full
ABI analysis over the collected functions via `--detect-abi`
option, or it can limit itself to simply recover the CFG and
serialize it onto the LLVM IR via `--collect-cfg` option.
2022-04-05 15:37:57 +02:00
Antonio Frighetto cbe1891ec1 Revise isolate-translate.yml opt pipeline 2022-04-05 15:37:57 +02:00
Alessandro Di Federico 581eab5a28 YAML pipeline: s/module/module.ll/ 2022-03-28 12:17:05 +02:00
Massimo Fioravanti c05b5dbb28 Steps now represent the *end* of a step
A special "begin" step has been introduced.
2022-03-28 12:17:05 +02:00
Massimo Fioravanti 58768aca42 YAML pipelines: rename pipe "Name" to pass "Type" 2022-03-28 12:17:05 +02:00
Alessandro Di Federico 6832698e5b Introduce revng llvm pipeline
This is a wrapper to `revng-pipeline` designed to make the adoption of
pipelines easier for places where we are now using `revng opt`.
2022-03-17 16:46:02 +01:00
Alessandro Di Federico 00ce580362 Introduce EnforceABI and PromoteCSV pipes 2022-03-17 14:10:50 +01:00
Alessandro Di Federico 997e7f60cb scripts/renvg: handle revng pipeline
Let `scripts/revng` intercept `revng-pipeline` invocations and add, not
only -load, but `-P` (pipelines) too.
2022-03-16 22:10:15 +01:00