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
Alessandro Di Federico
ebc9a41044
CMake: fix regeneration of TypeScript code
...
In `add_custom_command` is one of the entries of `DEPENDS` is not a file
(i.e., it's a custom command), the dependency is only an ordering
dependency. This means that the command is not actually re-run when its
dependencies are invalidated.
2022-08-11 11:16:04 +02:00
Alessandro Di Federico
033aca5d9d
Merge branch 'feature/pipeline-cl-reworking'
2022-08-10 09:49:53 +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
42b623db06
Pipeline: rework CLI organization
2022-08-10 09:49:24 +02:00
Massimo Fioravanti
5894867786
revng-pipeline: s/-p/--resume/
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
aa36cb7127
LLVMContainer: deduplicate linkage-related code
2022-08-10 09:49:24 +02:00
Massimo Fioravanti
84d6c2a4a8
revng-pipeline: drop redundant Logger
2022-08-10 09:49:24 +02:00
Giacomo Vercesi
e23d238e85
revng.cli: explicitly initialize Commands
...
Commands now require a `setup` function, where the will register the
command instance manually
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
Massimo Fioravanti
14d71289fc
Minor changes
2022-08-10 09:49:16 +02:00
Alessandro Di Federico
62a77fcdda
Merge branch 'feature/rework-efa'
2022-08-09 08:52:16 +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
Alessandro Di Federico
a844589739
ProgramCounterHandler: align PC address
...
ProgramCounterHandler now emits code masked with an alignment mask to
ease the job of various analyses.
2022-08-08 13:55:26 +02:00
Alessandro Di Federico
cf9a0bc3fc
getPrototype: don't fail on indirect calls
2022-08-08 13:55:26 +02:00
Alessandro Di Federico
562bb9959d
Reimplement GCBI::getBlocksGeneratedByPC
...
GCBI::getBlocksGeneratedByPC has been reimplemented using recursive
coroutines. Caching dominator trees was very error-prone.
2022-08-08 13:55:26 +02:00
Alessandro Di Federico
ff8ca0aaff
AVI: relax allowed operations on symbol
...
It is now legal to `and` and `bswap` the address of a symbol.
2022-08-08 13:55:26 +02:00
Alessandro Di Federico
f2bd49d562
defaultPrototype: set FinalStackOffset
2022-08-08 13:55:26 +02:00
Alessandro Di Federico
f236a490c3
GCBI::getSuccessors: make .Other additive
...
Previously, if `.Other` was set, all the other fields where unset.
2022-08-08 13:55:25 +02:00
Alessandro Di Federico
4eb70b0e35
Reimplement exitTBCleanup
2022-08-08 13:55:25 +02:00
Alessandro Di Federico
4d69437548
Split moveBlocksInto off moveToNewFunctionType
2022-08-08 13:55:25 +02:00
Alessandro Di Federico
40f672ead9
EFA debug passes: raw_{fd_,}ostream
2022-08-08 13:55:25 +02:00
Alessandro Di Federico
b07d134b73
Introduce CanonicalRegisterValues in the model
...
These canonical values ease certain analysis that can assume their value
at function entry.
2022-08-08 13:55:25 +02:00
Alessandro Di Federico
45d563bc15
revng: use ld.so --preload instead of LD_PRELOAD
2022-08-08 13:55:25 +02:00
Alessandro Di Federico
0566381ecf
ELFImporter: make importing more robust
2022-08-08 13:55:25 +02:00
Alessandro Di Federico
e0e8b4e5b6
ELFImporter.cpp: s/Log/ELFImporterLog/
2022-08-08 13:55:25 +02:00
Alessandro Di Federico
82771be9b5
revng-model-dump: emit YAML
2022-08-08 13:55:25 +02:00
Alessandro Di Federico
6d0fd9ada5
Make abi::FunctionType::Layout::Layout() public
2022-08-08 13:55:25 +02:00
Alessandro Di Federico
6f93a7503f
tuple_tree_generator: more informative errors
2022-08-08 13:55:25 +02:00
Alessandro Di Federico
bdfcbdd8d9
Implement std::set intersection
2022-08-08 13:55:23 +02:00
Alessandro Di Federico
2088a65fa0
Implement SuccessorsList::operator==
2022-08-08 13:54:41 +02:00
Alessandro Di Federico
c4ca2e5d14
Introduce MetaAddress::isIn
2022-08-08 13:54:41 +02:00
Alessandro Di Federico
8e358d6609
Introduce additional assertions
2022-08-08 13:54:41 +02:00
Alessandro Di Federico
81c2a93add
Normalize FilePortion
2022-08-08 13:54:41 +02:00
Alessandro Di Federico
c2f16b0907
Minor changes
2022-08-08 13:54:40 +02:00
Alessandro Di Federico
9a3c238b3f
Merge branch 'feature/revng-binary-location'
2022-08-08 13:53:22 +02:00
Ivan Krysak
b3f9ce7cc2
Use locations in PTML exporter
2022-08-05 21:47:05 +03:00
Ivan Krysak
7b7c4c25b9
Standardize the pipe names to use CamelCase
2022-08-05 21:46:46 +03:00
Ivan Krysak
dff7c5f37d
Move yield pipes into revngYield
2022-08-05 21:46:28 +03:00