Commit Graph

2487 Commits

Author SHA1 Message Date
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
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 8f4590bf00 Outline the cross-relation interface 2022-08-05 21:42:58 +03:00
Ivan Krysak 67bff75b7f Add basic location tests 2022-08-05 21:42:45 +03:00
Ivan Krysak fe04a13a5b Introduce basic location support 2022-08-05 20:42:41 +02:00
Ivan Krysak 1ac6d6ea0d Introduce constexpr string splitter 2022-08-05 21:02:29 +03:00
Ivan Krysak 1b0fb2adfc Introduce constexpr repeat helpers 2022-08-05 20:59:02 +03:00
Ivan Krysak 792da8151e Redesign the rank definition process 2022-08-05 19:58:57 +02:00
Ivan Krysak 44fbe3e18b Rename abi::IsTrait into abi::TraitLike 2022-08-05 17:27:56 +03:00
Ivan Krysak 65d1a016d4 Standardize concept naming across the codebase 2022-08-05 17:27:56 +03:00