Commit Graph

2004 Commits

Author SHA1 Message Date
Djordje Todorovic ca344fdd47 model: Add tests for import-db 2022-09-21 10:10:04 +02:00
Djordje Todorovic a3b44ae65a model: Import idb 2022-09-21 10:10:04 +02:00
Djordje Todorovic 9193618fab model: Add fix-model Pass 2022-09-21 10:10:04 +02:00
Giacomo Vercesi a8af1b9b42 revng.daemon: Fix for ariadne>=0.16 2022-09-20 17:06:28 +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
Pietro Fezzardi ec9a5b0608 Use lexicographical compare for model::Qualifier 2022-09-19 08:34:20 +02:00
Pietro Fezzardi 12ab345848 SubGraph: make getEntryNode more const-correct
GraphTraits<SubGraph<InnerNodeType>>::getEntryNode now takes a const
GraphType &, not just a GraphType &.
2022-09-19 08:33:45 +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
Alessandro Di Federico 137fad57e9 revng-daemon tests: increase verbosity 2022-09-08 09:44:41 +02:00
Alessandro Di Federico fa3ed38f97 Merge branch 'feature/rework-schema-generator' 2022-09-02 16:34:45 +02:00
Giacomo Vercesi 67e970e1e8 Fix revng cli invocation with namespaces
When revng cli was invoked with a bare namespace, e.g. `revng ptml`
it would produce an ugly exception.
Fix this behavior by instead rerunning the command with `--help`
appended.
2022-09-02 03:49:56 +02:00
Giacomo Vercesi c084620ef2 Switch from yarn to npm 2022-09-02 03:49:56 +02:00
Giacomo Vercesi ae5522e861 tuple_tree_generator: minor TypeScript fixes 2022-09-02 03:49:54 +02:00
Alessandro Di Federico ee6d80fa17 Merge branch 'feature/emit-ptml-in-c-backend' 2022-09-01 17:48:25 +02:00
Giacomo Vercesi d68640e2cb upcast: use universal references 2022-09-01 17:48:00 +02:00
Giacomo Vercesi a7eb0a8d59 Ranks.h: introduce additional Ranks 2022-09-01 17:47:55 +02:00
Giacomo Vercesi 37caa91e6d Ranks: fix Rank keys
Use model::Function::Key for the Function rank instead of the naked
MetaAddress as it allows forward-compatibility if the model::Function
key is ever changed.

Use a std::tuple<uint64_t> for TypeField as it's the current type for
{Struct,Enum,Union}Field.key()
2022-09-01 17:46:57 +02:00
Giacomo Vercesi 7cff7737ac Introduce ModelHelpers.h
ModelHelpers contains helper functions that produce the appropiate
edit path for the given elements of the model.
2022-09-01 17:46:40 +02:00
Giacomo Vercesi e443cd3766 YAMLTraits.h: add traits for std::tuple<T>
This commit introduces a YAML trait for `std:tuple`s of a single
scalar that allows their serialization/deserialization generically.
2022-09-01 17:46:35 +02:00
Giacomo Vercesi 8aab66a517 Rank.h: restrict keys to scalars and enums
Rank keys so far could be of any type as long as it was
yaml-serializable, however this would introduce problems down the
line if a Location contained for example array or mapping.
This commit restricts the type of keys to only scalars and enums,
to limit the chance that a key serializes in an invalid location.
2022-09-01 17:46:30 +02:00
Giacomo Vercesi 7d77d388b5 ConstexprString: allow default construction 2022-09-01 17:46:30 +02:00
Giacomo Vercesi a05737696f Introduce revng/Model/ForwardDecls.h 2022-09-01 17:46:25 +02:00
Giacomo Vercesi b7a23dcd4a Rename and improve ptml::TagScope
Renames ptml::TagScope to ScopeTag and fixes issue when Tag.scope
was called with a temporary.
2022-09-01 17:46:10 +02:00
Giacomo Vercesi e1adce0f69 PTMLIndentedOstream: rework write_impl
Previous implementation would write '\n' if the buffer ended with
'\n\n'.
2022-09-01 17:46:04 +02:00
Giacomo Vercesi 07c2457a16 revng.cli: various improvements
This commit introduces some miscellaneous fixes to revng.cli:

* Remove useless subclasses in pipeline_tools.py;
* Improve type annotations in _commands/ptml and fix a help string;
* Add some extra type annotations for `Command`;
* Remove useless namespaces in `commands_registry` and add help text
  for the ones in use;
2022-09-01 17:45:44 +02:00
Giacomo Vercesi bbbcbd080a revng ptml cat: add C highlighting 2022-09-01 15:49:44 +02:00
Giacomo Vercesi 84e29d6b96 Fix linkage of Tag::scope in Tag.h 2022-09-01 15:49:44 +02:00
Alessandro Di Federico b0bfa5db4a CollectCFG: nop if root is absent 2022-09-01 14:58:50 +02:00
Alessandro Di Federico 40f1e06135 CFGAnalyzer, opaque_true: use inaccessiblememonly
This prevents EarlyCSE from deduplicating calls to this functions with
the same arguments, which has unintend effects and leads to loss of
code.
2022-09-01 11:32:42 +02:00
Alessandro Di Federico df34095721 Minor changes 2022-09-01 11:32:12 +02:00
Ivan Krysak 4c08f2153d install_pattern: do not use git ls-files 2022-08-31 19:42:35 +02:00
Alessandro Di Federico ed2672d12f Merge branch 'feature/pipeline-analysis-args' 2022-08-31 18:08:00 +02:00
Massimo Fioravanti 9a4e97d8ea Pipeline: handle having 0 functions 2022-08-31 18:07:47 +02:00
Alessandro Di Federico 712585be48 CodeGenerator: handle PTC translation failure 2022-08-31 18:07:47 +02:00
Alessandro Di Federico d8230c3e9a revng-pipeline: improve error reporting 2022-08-31 18:07:47 +02:00
Alessandro Di Federico b14b40b1eb revng: do not print failing command 2022-08-31 18:07:47 +02:00
Alessandro Di Federico f93eefda66 replaceAll: move to STLExtras.h 2022-08-31 18:07:47 +02:00
Djordje Todorovic 2abd250ae0 model: Skip nameless dyn functions in PE 2022-08-31 18:07:47 +02:00
Alessandro Di Federico cd7429d100 pipes::Lift: fail if Architecture is Invalid 2022-08-29 15:13:25 +02:00
Massimo Fioravanti 9ce7b1e527 Drop Pipe suffix from pipe names 2022-08-29 14:45:45 +02:00
Massimo Fioravanti 633f49c1ef Introduce dedicated namespace for kinds and ranks 2022-08-29 14:44:53 +02:00
Massimo Fioravanti 915c083661 Pipes: reorganize who defines pipes 2022-08-29 14:44:35 +02:00
Massimo Fioravanti a8a8eda9ac Pipeline/Invokable.h: split 2022-08-29 14:44:20 +02:00
Massimo Fioravanti 2a996ef666 Pipeline: allow analyses to fail 2022-08-29 14:44:10 +02:00
Massimo Fioravanti 7e75a1a4b8 Pipeline: introduce preconditions for pipes 2022-08-29 14:44:02 +02:00
Massimo Fioravanti 6b099c57e8 Pipeline: introduce options for analyses 2022-08-29 14:43:25 +02:00
Alessandro Di Federico c6c66e70f4 revng.cfg-svg: use one-per-architecture 2022-08-26 18:12:23 +02:00
Alessandro Di Federico b4c5d3d37e Merge branch 'feature/import-binary-as-analysis' 2022-08-26 10:42:09 +02:00
Alessandro Di Federico ef3d24eb08 test.py: get ephemeral port, drop psutil 2022-08-26 09:50:42 +02:00