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
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
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
14d71289fc
Minor changes
2022-08-10 09:49:16 +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
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
6d0fd9ada5
Make abi::FunctionType::Layout::Layout() public
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
c2f16b0907
Minor changes
2022-08-08 13:54:40 +02: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
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
Ivan Krysak
4ee2835d52
Fix a trait inheritance problem
2022-08-05 17:27:56 +03:00
Ivan Krysak
409486609c
Add EqualityComparable concept
2022-08-05 17:27:56 +03:00
Ivan Krysak
240f334d78
Fix minor wording issues
2022-08-05 17:27:56 +03:00
Ivan Krysak
9610051df9
Fix yaml traits to correctly [de]serialize scalars
2022-08-05 17:27:56 +03:00
Ivan Krysak
de99de78ae
Add key overloads for model::getTypePath
2022-08-05 17:27:56 +03:00
Ivan Krysak
165964bde1
Add a ConstexprString container to ADT
2022-08-05 17:27:56 +03:00
Ivan Krysak
8305e020b0
Move ranks into their own namespace
2022-08-05 17:27:56 +03:00
Ivan Krysak
c21d8398e6
Move ranks into a separate header
2022-08-05 17:27:56 +03:00
Djordje Todorovic
1243d1061c
Introduce revng model hard-purge
...
In addition, introduce a new model Pass:
revng model opt -prune-unsused-types
2022-07-28 15:02:55 +02:00
Djordje Todorovic
a36e22729f
Model: Add PDB support
2022-07-28 14:52:50 +02:00
Djordje Todorovic
098f864d8d
Model: Add parsing of dyn syms to PECOFFImporter
...
This parses symbols similar to ELF's .dynsym.
2022-07-28 14:52:02 +02:00
Giacomo Vercesi
09009836a1
PipelineC: expose globals verification
2022-07-28 08:47:46 +02:00
Giacomo Vercesi
3e9058393e
Rework YieldAssemblyHTML to output PTML
2022-07-28 08:47:34 +02:00
Giacomo Vercesi
efc2d36a14
Introduce ptml namespace
...
The `ptml` namespace contains utilities for easier PTML manipulation.
These include:
* A few constants (e.g. standard attributes) available in
`revng/PTML/Constants.h`
* The `Tag` class to easily construct html/xml tags with attributes
without having to use format strings.
* The `PTMLIndentedOstream`, a llvm::raw_ostream wrapper that
automatically adds tagged indentation to the output
2022-07-28 08:47:17 +02:00
Giacomo Vercesi
08c53ecdde
FunctionControlFlowGraphSVG is now a FunctionKind
2022-07-28 08:43:07 +02:00