Ivan Krysak
de31315cd7
Model: rename Inline into AlwaysInline
2026-03-27 08:16:21 +00:00
Giacomo Vercesi
6ec9f9a952
TupleTree: overhaul reference caching
...
Overhaul the logic and method names involved in enabling and disabling
reference caching in `TupleTree<T>`. `TupleTreeReference<T, U>` now
lazily caches the target and will traverse the path only when needed.
Also expose and use these functions in the new pipeline, which should
provide some speedup when executing a `Schedule`.
2026-03-04 14:58:02 +01:00
Alessandro Di Federico
d9123fcd49
PECOFFImporter: fix handling of relocations
...
This commit ensures relocations imported from PE/COFF binaries have
generic `Address`. The fact that this was not the case lead to not
detecting dynamic calls.
The commit also improves logging and fixes the handling of maximum depth
visit of the PDB importer.
2025-12-19 14:44:07 +01:00
Giacomo Vercesi
265af3768f
Binary importers: fix debug info detection
...
Fix the behavior of binary importers by propagating the path of the
input binary from revng2 downwards, allowing finding `.debug` files in
the correct paths.
2025-12-19 10:28:29 +01:00
Alessandro Di Federico
5820908675
Remove and ban \file
2025-12-16 17:41:55 +01:00
Giacomo Vercesi
47038d46ec
Add ParseBinaryAnalysis to pypeline
2025-12-10 15:05:53 +01:00
Alessandro Di Federico
c883bed765
Drop Logger's StaticEnabled feature
2025-10-31 17:25:03 +01:00
Ivan Krysak
9bf93d3a30
Importers: add TODOs on diagnostic candidates
2025-10-13 10:26:41 +03:00
Ivan Krysak
c4f071dfe3
Importers: adopt primitive typedef flattening
2025-04-17 11:19:17 +03:00
Ivan Krysak
433af9ef6e
Adopt the new name deduplication pass
2025-04-17 11:19:17 +03:00
Ivan Krysak
f070f1f1e1
Model: sunset double name system
2025-04-17 11:19:17 +03:00
Ivan Krysak
705e4a5955
auto [...] -> auto &&[...]
2025-02-13 13:10:51 +02:00
Alessandro Di Federico
832840c307
Importers: ignore unmapped code
...
This commit ensures that parts of the model that must point to code
(specifically `Binary::EntryPoint`, `Binary::ExtraCodeAddresses` and
`Function::Entry`) actually point to a segment mapped as +x.
2024-11-28 15:22:10 +01:00
Alessandro Di Federico
278c6f625c
Importers: first of all, Segments
...
This commit makes sure that before setting EntryPoint, adding
ExtraCodeAddresses or Function entry points, we completed the processing
of Segments.
2024-11-28 14:04:36 +01:00
Alessandro Di Federico
d1252046ce
Importers: do not set EntryPoint, if absent
2024-11-28 13:58:29 +01:00
Alessandro Di Federico
1e2a55e372
Minor changes
2024-11-28 13:58:28 +01:00
Ivan Krysak
1eb80ecd2d
Introduce an error creation helper
2024-11-06 15:20:37 +02:00
Alessandro Di Federico
a0c670652c
Improve usages of Expected<T>
2024-10-10 14:50:26 +02:00
Ivan Krysak
8c313a73af
Model: make sure segments use generic addresses
2024-10-08 13:53:52 +02:00
Ivan Krysak
99e016f120
ABI: reorganize default ABI helpers
2024-10-08 13:53:52 +02:00
Alessandro Di Federico
2cdedc71f4
s/serialize/toString/
...
We keep serialize for method dealing with streams.
If it returns a `std::string`, let's use `toString`.
2024-09-27 12:07:17 +02:00
Alessandro Di Federico
d3b945c6c2
PECOFFImporter: use Generic Segment::StartAddress
2024-08-05 18:00:27 +02:00
Ivan Krysak
4a2db0ba4f
UpcastablePointer: streamline empty behavior
2024-06-27 11:05:52 +02:00
Ivan Krysak
dfa7478685
Adopt reworked model::Type
2024-06-27 11:05:51 +02:00
Ivan Krysak
ac587cbb4f
Model: rename Type into TypeDefinition
2024-06-27 11:05:48 +02:00
Alessandro Di Federico
47c3dd8f0f
Drop model::Segment::Sections
2024-05-22 10:25:25 +02:00
Ivan Krysak
77b1acaf00
Prefer uint64_t to size_t wherever relevant
2024-01-29 11:57:54 +02:00
Pietro Fezzardi
48b27af795
Make Segment::Type a TupleTreeReference
...
This is homogeneous with all other nullable reference to types in the
model, like the StackFrameType in model::Function, and others.
2023-12-05 16:19:38 +01:00
Alessandro Di Federico
2cbf3a8313
TypeCopier: minor rework
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
Ivan Krysak
7d235f4fd0
Enforce licence header consistency
...
Also do some basic cleanup: capitalize first letters, add `.`
at the end of the sentences, and so on.
2023-07-03 15:23:10 +00:00
Ivan Krysak
9f1d9fd5d0
Use Container::contains() where appropriate
2023-07-02 15:06:11 +00:00
Ivan Krysak
bc98e0079f
Formatting: change PenaltyReturnTypeOnItsOwnLine
...
The new value is 21.
2023-07-02 13:20:49 +02:00
Giacomo Vercesi
31cd2b53f9
rcc: add codespell
...
Add codespell to the list of checks performed by
revng-check-conventions. This should reduce the amount of typos present
in the revng codebase.
2023-05-11 10:05:32 +02:00
Alessandro Di Federico
f562d0373f
Importers: fix usage of BaseAddress
...
This commit ensure the BaseAddress is propagate as appropriate to all
levels of the importers and that it is ignored for executables
(non-PIC).
This was a recurring source of importing the same function twice, once
relocated, once not.
2023-05-10 09:20:40 +02:00
Alessandro Di Federico
73fb1a31c9
Outline TypeCopier
...
This commit also drop the suggestion that it should be used for copying
prototypes only.
2023-05-10 09:20:15 +02:00
Ivan Krysak
64856306c4
BinaryImporter: rework command line interface
2023-03-15 10:19:03 +01:00
Ivan Krysak
34b532c754
BinaryImporter: always promote original name
2023-03-15 10:19:03 +01:00
Djordje Todorovic
24a5705e12
Importer: Attach attributes when copying types
2023-02-16 11:07:52 +01:00
Antonio Frighetto
ab36efca8d
Model: import data objects in Segment.Type
2023-02-06 12:08:18 +01:00
Djordje Todorovic
83905cf5ed
Fix the level for FetchDebugInfo
2023-01-27 17:53:47 +01:00
Djordje Todorovic
961f9e5461
Model: search debug info locally upon import
...
Also find prototypes in Models of dynamic libs for both PE and ELF.
2022-12-13 11:26:54 +01:00
Massimo Fioravanti
742e1a0c56
TupleTree: switch from public fields to accessors
2022-12-12 18:36:57 +01:00
Alessandro Di Federico
b83edd61c0
DwarfImport: fix handling of local functions
2022-11-30 15:06:54 +01:00
Djordje Todorovic
2abd250ae0
model: Skip nameless dyn functions in PE
2022-08-31 18:07:47 +02:00
Alessandro Di Federico
6a6cd939db
Rework EarlyFunctionAnalysis
2022-08-08 13:55:34 +02:00
Djordje Todorovic
a36e22729f
Model: Add PDB support
2022-07-28 14:52:50 +02:00
Djordje Todorovic
9efb9cb55f
Model: Add parsing of delay dyn syms to PECOFF
...
This parses dedicated symbols similar to ELF's lazy linking.
2022-07-28 14:52:02 +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