Lauri Vasama
9c5338913d
Add TargetABI field in the model
2026-05-04 10:48:03 +03:00
Alessandro Di Federico
c1b3f23cf5
Uniform Binary::get{Definition,Binary}Reference
2026-04-24 17:54:09 +02:00
Alessandro Di Federico
36a1295a8f
Introduce Binary.getIdentifierBinaryReference
2026-04-23 13:40:43 +02:00
Giacomo Vercesi
27f419c8cd
Fix and ban namespace clobbering
...
Fix an instance where the `std` namespace got clobbered into the global
namespace by accident.
2026-02-16 10:34:38 +01:00
Alessandro Di Federico
250e69fdc7
Introduce MetaAddressRange
2025-12-22 11:34:47 +01:00
Khaled Ismaeel
53a5ff07cf
Remove embedded TUPLE-TREE-YAML
2025-04-30 15:08:45 +02:00
Ivan Krysak
705e4a5955
auto [...] -> auto &&[...]
2025-02-13 13:10:51 +02:00
Ivan Krysak
d4ab801ab7
Rename range_with_value_type into RangeOf
...
Original name was reminiscent of the STL, but there's no such concept
in there, as such it's probably better to use revng naming convention
instead.
2025-02-13 13:09:50 +02:00
Ivan Krysak
8841bc7144
Don't include model::NameBuilder from the binary
2025-02-13 13:09:50 +02:00
Ivan Krysak
288448f009
Never include model::VerifyHelper from headers
2025-02-13 13:09:50 +02:00
Alessandro Di Federico
d2d32b304e
Model: improve documentation
2024-12-11 16:15:09 +01:00
Ivan Krysak
2a5d50630b
Model: adopt name builder in verification
2024-11-06 15:43:13 +02:00
Ivan Krysak
a12f5d9e97
Minor improvements
2024-11-04 18:51:12 +02:00
Ivan Krysak
4a2db0ba4f
UpcastablePointer: streamline empty behavior
2024-06-27 11:05:52 +02:00
Ivan Krysak
776a5cdc52
Model: move path data away from the header
2024-06-27 11:05:51 +02:00
Ivan Krysak
dfa7478685
Adopt reworked model::Type
2024-06-27 11:05:51 +02:00
Ivan Krysak
9e6bf29f74
TTG: pull dump helper into the template
2024-06-27 11:05:49 +02:00
Ivan Krysak
927e8006b9
Model: rename TypePath to DefinitionReference
2024-06-27 11:05:49 +02:00
Ivan Krysak
ac587cbb4f
Model: rename Type into TypeDefinition
2024-06-27 11:05:48 +02:00
Ivan Krysak
7ff1a0f487
Model: remove mostly unused Types.h header
2024-06-27 11:05:48 +02:00
Alessandro Di Federico
47c3dd8f0f
Drop model::Segment::Sections
2024-05-22 10:25:25 +02:00
Alessandro Di Federico
31b1b66f44
Reorder model::Binary fields
2024-05-22 10:25:25 +02:00
Ivan Krysak
371784afbd
Model: introduce basic disassembly configuration
2024-03-18 07:20:41 +00:00
Alessandro Di Federico
456b916bcc
Move TypePath definition
2023-10-05 10:19:44 +02:00
Alessandro Di Federico
bf66ecc389
{,Dynamic}Function::Prototype: support typedefs
2023-10-05 10:19:44 +02:00
Alessandro Di Federico
f51af94e8f
TupleTreeReference::isValid is for assertions only
2023-08-23 16:14:05 +02:00
Alessandro Di Federico
247879f7fc
model::Type::ID: switch to progressive IDs
...
This commit switches `model::Type::ID` from being a GUID to be a
progressive number, in order to make things easier for humans.
On top of this, this commit introduces the following changes:
* TypeCopier: import all the necessary PrimitiveTypes and improve
handling of CustomName.
* Move Kind as the last field of the key of each TupleTree type used in
an `UpcastablePointer`.
* Update the ground truth of tests to ignore the `CustomName` in favor
of focusing on `OriginalName`.
* Increase adoption of `model::Binary::makeType`, equivalent to
`Binary.recordNewType(makeType<model::*Type>())`.
2023-08-23 16:14:04 +02:00
Alessandro Di Federico
e63573ee81
Introduce model::Binary::path
2023-08-23 16:14:04 +02:00
Ivan Krysak
bc98e0079f
Formatting: change PenaltyReturnTypeOnItsOwnLine
...
The new value is 21.
2023-07-02 13:20:49 +02:00
Alessandro Di Federico
52521f8cac
Adopt more standard library's features
2023-04-08 08:42:23 +02:00
Ivan Krysak
07837d9b9b
Model: add model::Binary::recordNewTypes
2023-03-15 10:19:02 +01:00
Ivan Krysak
b0e481cdef
Model: add model::Binary::makeType
2023-03-15 10:19:02 +01:00
Massimo Fioravanti
4dc2e92782
Introduce DocumentError
...
`DocumentError`s are the inteded way of propagating errors from the
pipeline to the frontend when a location is required to inform the user
of the error whereabouts.
2023-02-09 13:42:50 +01:00
Antonio Frighetto
ea0a06a876
revng.daemon: accept no arguments for analysis
...
Let GraphQL accept zero or more parameters for analyses.
2023-02-06 09:37:23 +01:00
Massimo Fioravanti
742e1a0c56
TupleTree: switch from public fields to accessors
2022-12-12 18:36:57 +01:00
Ivan Krysak
c3c3ed4381
Move pointer creation away from model::Binary
2022-11-30 15:06:54 +01: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
Alessandro Di Federico
1d91ed9beb
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 16:20:42 +02:00
Ivan Krysak
de99de78ae
Add key overloads for model::getTypePath
2022-08-05 17:27:56 +03:00
Giacomo Vercesi
09009836a1
PipelineC: expose globals verification
2022-07-28 08:47:46 +02:00
Massimo Fioravanti
f0a5ffe3b3
revng-pipeline: globals, extractOne and analyses
2022-05-24 08:58:48 +02:00
Alessandro Di Federico
92d3b95fba
Model: make more things optional
2022-04-29 17:57:49 +02:00
Alessandro Di Federico
a355a90c7e
model::Binary::getPointerTo(model::QualifiedType)
2022-04-29 17:57:49 +02:00
Antonio Frighetto
9980fc8c67
EFA: support dynamic function calls
...
EarlyFunctionAnalysis now can handle calls to
dynamically linked functions.
2022-04-05 15:37:57 +02:00
Antonio Frighetto
20cdfe668a
EFA: take the control-flow graph out of the model
...
The control-flow graph and all its hierarchy components
have been moved from `model` to `efa`. The CFG is now
serialized onto the LLVM IR module as a metadata.
2022-04-05 15:37:57 +02:00
Alessandro Di Federico
1a57229693
Introduce model::Binary::DefaultPrototype
2022-03-08 15:04:34 +01:00
Alessandro Di Federico
1d1ae3f7d4
Add model::Binary::ExtraCodeAddresses
2022-03-08 15:04:34 +01:00
Alessandro Di Federico
81f21ae21d
Make model::Binary::EntryPoint optional
2022-03-08 12:25:47 +01:00
Ivan Krysak
68129c9221
Add model::Binary::DefaultABI field
2022-02-14 13:35:36 +01:00
Filippo Cremonese
74217b4fe5
Generate C++ model from YAML definition
...
Model classes are now described by a YAML document, which is used to
generate C++ headers containing classes and all the boilerplate
required for YAML serialization/deserialization, usage in
SortedVectors, etc. See the README in include/revng/Model for more
info.
2022-01-13 14:34:11 +01:00