Alessandro Di Federico
7dce356df3
Uniform Binary::get{Definition,Binary}Reference
2026-04-23 13:40:43 +02:00
Alessandro Di Federico
ee3bb0dfb0
Introduce ImportPrototypesFromDatabase
...
This commit introduces an analysis to import prototypes from a SQLite
database of well-known prototypes, typically built from debug info of
operating systems.
This analysis supersedes import-well-known-models.
2026-04-23 13:40:43 +02:00
Alessandro Di Federico
09dfccec91
Implement platform roots support
...
Refactor the binary import and dependency resolution infrastructure to
support multiple platforms (Linux, Windows, macOS) via a
configuration-driven root system.
Major changes:
* Overhaul PDB and DWARF importers for platform-aware debug info
loading.
* Refactor LDDTree into a template-based architecture with
platform-specific implementations (ELF, PE/COFF).
* Mostly rewrite the PDB importer, which had significant limitations.
2026-04-23 13:40:43 +02:00
Alessandro Di Federico
4a51b67700
TypeCopier: improve performance
...
This commit refactors `TypeCopier`. Among other things, it ensures we
invoke `initializeReferences` only in `finalize`, as opposed to every
time we invoke `copyTypeInto`.
2026-04-23 13:40:43 +02:00
Alessandro Di Federico
36a1295a8f
Introduce Binary.getIdentifierBinaryReference
2026-04-23 13:40:43 +02:00
Alessandro Di Federico
eb9e82477a
Introduce WindowsApiSetSchemaParser
2026-04-23 13:40:43 +02:00
Alessandro Di Federico
f1ab2f7544
Introduce getConfigDirectory
2026-04-23 13:40:43 +02:00
Alessandro Di Federico
0385e4c652
Introduce revng::Configuration
2026-04-23 13:40:43 +02:00
Alessandro Di Federico
5417f8d880
model-schema.yml: move Type fields at the end
...
It's preferable to have one-line fields at the beginning in the YAML
representation.
2026-04-23 13:40:43 +02:00
Alessandro Di Federico
5b43a23060
BinaryIdentifier: s/.Name/.CanonicalPath/g
2026-04-23 13:40:42 +02:00
Alessandro Di Federico
7b3a80155e
Model: introduce OperatingSystem and PlatformName
...
These are going to be used to select the correct root.
2026-04-23 13:40:42 +02:00
Alessandro Di Federico
e928664380
Introduce ImportLogger
...
`ImportLogger` is a simple support class to report on how many elements
have been imported in the model between the start and the end of its
lifetime.
2026-04-23 13:40:42 +02:00
Alessandro Di Federico
675884b5c9
Introduce sqlite::Database
2026-04-23 13:40:42 +02:00
Alessandro Di Federico
80657806da
Introduce findPathCaseInsensitive
2026-04-23 13:40:42 +02:00
Alessandro Di Federico
63851e2f57
Introduce IndexedVector
2026-04-23 13:40:42 +02:00
Alessandro Di Federico
6e5462b3c9
replaceAll: return true if changes are made
2026-04-23 13:40:42 +02:00
Alessandro Di Federico
ee9c77b719
appendTo: move to STLExtras.h
2026-04-23 13:40:42 +02:00
Alessandro Di Federico
456595551a
YAMLTraits: improve error reporting
...
Adopt the proper mechanism for reporting errors, which include line and
column number.
2026-04-23 13:40:42 +02:00
Alessandro Di Federico
15816c7559
TupleTree.h: drop DisableTracking
...
Not needed, no tracking takes place on a non-`const` object.
2026-04-23 13:40:42 +02:00
Alessandro Di Federico
53c4c047d0
AArch64: adopt relocations with addend
...
This commit fixes a serious bug with AArch64 preventing us from detect
calls to dynamic functions.
2026-04-23 13:40:41 +02:00
Alessandro Di Federico
fd16a6afc6
TupleTreeDiff: s/detail::/revng::detail::/g
2026-04-23 13:40:41 +02:00
Alessandro Di Federico
7049f61baa
Minor changes
2026-04-23 13:40:41 +02:00
Ivan Krysak
71845dcbbb
CliftEmitC: stop using mlir::clift namespace
2026-04-22 08:19:47 +00:00
Ivan Krysak
31b2609ca3
verifyCSemantics: add a TODO
2026-04-22 08:19:35 +00:00
Ivan Krysak
2a401ceb3f
DoxygenEmitter: prevent indentation highlighting
2026-04-22 08:19:35 +00:00
Ivan Krysak
5f511d8e17
verify-against-model: split into two
...
The resulting pipes are:
1. binary-granularity one with the name unchanged
2. function-granularity one called `verify-function-against-model`.
2026-04-22 08:19:30 +00:00
Ivan Krysak
e693cdbd53
model-verify-clift -> verify-against-model
2026-04-22 08:19:30 +00:00
Ivan Krysak
3de5b009e7
Clift: introduce simple passes for header tests
2026-04-22 08:19:29 +00:00
Ivan Krysak
c5130ce689
Clift: factor common ptml pass options out
2026-04-22 08:19:28 +00:00
Ivan Krysak
458cb1f3fe
CAttributeListBuilder: expose append method
2026-04-22 08:19:27 +00:00
Ivan Krysak
74fa16dd13
Introduce helper header emitter
2026-04-22 08:19:25 +00:00
Ivan Krysak
7ab3d590e0
Introduce type and global header emitter
2026-04-22 08:18:52 +00:00
Ivan Krysak
280d66a441
CTokenEmitter: wrap everything into a <div>
2026-04-22 06:33:56 +00:00
Ivan Krysak
c704aac1c5
CEmitter: add emitCategoryComment helper
2026-04-22 06:33:56 +00:00
Ivan Krysak
3bd8879948
CEmitter: Introduce doxygen emission helpers
2026-04-22 06:33:56 +00:00
Ivan Krysak
8c3cbcca23
DoxygenEmitter: add internal indentation support
2026-04-22 06:33:56 +00:00
Ivan Krysak
8e456cbca9
CDoxygenEmitter: add one-shot comment helpers
2026-04-22 06:33:56 +00:00
Ivan Krysak
30e8f4e53e
CDoxygenEmitter: introduce in-place factories
2026-04-22 06:33:56 +00:00
Ivan Krysak
141bddb241
CDoxygenEmitter: pull factories in as methods
2026-04-22 06:33:56 +00:00
Ivan Krysak
995a94877d
CDoxygenEmitter: factor configuration out
2026-04-22 06:33:56 +00:00
Ivan Krysak
d3e22a2b05
CTokenEmitter: add #pragma once helper
2026-04-22 06:33:56 +00:00
Ivan Krysak
6d76908858
Introduce TypeDefinitionEmitter
2026-04-22 06:33:38 +00:00
Ivan Krysak
d327cd3be5
emitCAttributes: introduce an array overload
2026-04-22 06:14:52 +00:00
Ivan Krysak
539a8370c6
CAttributeListBuilder: allow chaining the methods
...
This lets callees do stuff like:
```cpp
CAttributeListBuilder{Context}
.setOrUpdate<"_MY_ATTRIBUTE_1">()
.setOrUpdate<"_MY_ATTRIBUTE_2">()
.setOrUpdate<"_MY_ATTRIBUTE_3">()
.get()
```
2026-04-22 06:14:52 +00:00
Ivan Krysak
0189089930
Introduce TypeEmitterConfiguration
2026-04-22 06:14:52 +00:00
Ivan Krysak
f69a0345b7
CTokenEmitter: introduce Commentable region
2026-04-22 06:14:52 +00:00
Ivan Krysak
ac3df7460d
Introduce clift::ClassType::getCAttributes
2026-04-22 06:14:52 +00:00
Ivan Krysak
f1739e1a0f
IndentingEmitter: drop emitNewline
2026-04-22 06:14:50 +00:00
Ivan Krysak
f3df0e20b9
Minor improvements
2026-04-21 07:54:50 +00:00
Andrea Gussoni
4e3af009fe
Expressions: fold x[0] into *x
...
Implement a DDR rewriting for folding the `x[0]` into `*x`, in order
to avoid a useless verbose syntax. Due to concatenation of rewrites, we
will get `&(x[0])` transformed into `x`, which is the rewriting we are
aiming to.
2026-04-14 09:52:07 +02:00