Ivan Krysak
81190634df
ABI: drop unused interfaces
2026-06-15 17:28:22 +02:00
Ivan Krysak
4c6fe97059
abi::getDataModel: introduce
2026-06-15 11:47:41 +02:00
Alessandro Di Federico
51526e9777
ABI/Layout: move YAML traits to header
...
The YAML traits for Layout (and friends) move into Layout.h so callers
can serialize a Layout directly without pulling in Layout.cpp's
internals. As a result StackSpan gains default-initialized fields and
its operator+ is hoisted to a free function (with the symmetric
uint64+StackSpan overload) so it works with the YAML mapping.
2026-06-11 17:39:53 +02:00
Alessandro Di Federico
fbe825d66a
ABI/Clifter: drop SPTAR special case in returns
...
Drop the SPTAR-specific special case in layoutToLLVMFunctionType: all
ModelAggregate-returning functions now use the same array-of-i8 return
type. Clifter is updated accordingly to treat any aggregate return the
same way, removing the SPTAR-specific branches that were just dead
code after the type unification.
2026-06-11 17:39:53 +02:00
Andrea Gussoni
530ce317c1
ABI: use llvm::alignToPowerOf2
...
`llvm::alignToPowerOf2` covers the same semantics of the dropped
`alignedOffset` method, including the power of 2 assertion.
2026-05-29 17:12:35 +02:00
Lauri Vasama
0ab9f769dd
Add CDataModel in ABI definition
2026-05-02 17:21:47 +03:00
Alessandro Di Federico
c1b3f23cf5
Uniform Binary::get{Definition,Binary}Reference
2026-04-24 17:54:09 +02:00
Giacomo Vercesi
8804092b90
Add ConvertFunctionsToRaw analysis to pypeline
2026-03-04 14:58:02 +01: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
4d5183a0ac
Make layoutToLLVMFunctionType self-contained
...
`layoutToLLVMFunctionType` no longer needs to know the old return type.
2025-12-22 11:34:47 +01:00
Alessandro Di Federico
0bf97a9e68
getPointerSizedInteger: use model::Architecture
...
No need to get model::Binary.
2025-12-22 11:34:47 +01:00
Alessandro Di Federico
a1f9bd2d16
Minor changes
2025-12-22 11:34:46 +01:00
Giacomo Vercesi
e35f5750de
Add ConvertFunctionsToCABI analysis to pypeline
2025-12-10 16:16:14 +01:00
Ivan Krysak
52e556f53e
ABI: set default values where viable
2025-10-13 18:33:10 +03:00
Ivan Krysak
cc57e57fd1
TTG: remove support for optional: true fields
...
After this commit, every non-key field is treated as if it was optional
while every key field (plus every auto-generated `Kind` field) - as if
it was required.
2025-10-13 18:33:10 +03:00
Ivan Krysak
f391392fe9
Use explicit separator strings
2025-07-23 11:38:52 +02:00
Giacomo Vercesi
d62b7b6b1a
TTG: inline root type in schema
...
Move the root type inside the schema definition, as it is a property of
it and not of the generator.
2025-06-25 15:40:13 +02:00
Pietro Fezzardi
a4d45d0788
Add abi::FunctionType::Layout::argumentTypes
2025-05-28 17:11:11 +02:00
Pietro Fezzardi
7aab7ba843
Add abi::FunctionType::Layout::returnValueTypes
2025-05-28 17:11:11 +02:00
Khaled Ismaeel
383af5b6b0
Add the version field to schemas YAML
...
Here we start restructuring the the schemas YAML such that it
contains a top-level `version` field. In this commit we only modify
the YAML, the build system changes will come later, to avoid
enormous commits.
2025-04-30 15:08:45 +02:00
Khaled Ismaeel
53a5ff07cf
Remove embedded TUPLE-TREE-YAML
2025-04-30 15:08:45 +02:00
Khaled Ismaeel
f384b10435
Check schemas into the codebase
...
These schema files are currently generated at build time by
collecting various TUPLE-TREE-YAML comments using the
`extract_yaml.py` script. In this commit we move them to the codebase
but we don't use them yet, this will be done at a later commit for
the sake of readability.
2025-04-30 15:08:40 +02:00
Ivan Krysak
f494ae5f5f
Standardize comment formatting
...
Use `*something*` instead of `_something_` when adding emphasis.
2025-02-13 13:09:50 +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
288448f009
Never include model::VerifyHelper from headers
2025-02-13 13:09:50 +02:00
Ivan Krysak
a93ffd3760
Rename UnusedStackArgumentBytes
...
Old name was `StackBytesAllocatedForRegisterArguments`.
2025-02-12 16:43:19 +02:00
Alessandro Di Federico
143c315196
Merge revng-c into revng
2024-11-21 10:50:55 +01:00
Ivan Krysak
672ee5df50
Replace std::string_view with llvm::StringRef
2024-11-06 15:43:13 +02:00
Ivan Krysak
724f8bfb59
ABI: streamline terminology
...
"packed" is used instead of "unnaturally aligned".
2024-10-08 13:53:53 +02:00
Ivan Krysak
ce11f37334
abi::Definition: move documentation out
2024-10-08 13:53:53 +02:00
Ivan Krysak
6d44a4b1c2
ABI: introduce UseStrictAggregateAlignmentRules
2024-10-08 13:53:52 +02:00
Ivan Krysak
7dfd669bde
ABI: introduce a new configuration option:
...
`StackArgumentsUseRegularStructAlignmentRules`.
2024-10-08 13:53:52 +02:00
Ivan Krysak
b20bcbe1d4
ABI: introduce BigArgumentsUsePointersToCopy
2024-10-08 13:53:52 +02:00
Ivan Krysak
e4d8ead973
ABI: make MinimumStackArgumentSize explicit
2024-10-08 13:53:52 +02:00
Ivan Krysak
d5d1a7da99
ABI: introduce ReturnValueLocationIsReturned
2024-10-08 13:53:51 +02:00
Ivan Krysak
df4bf51c75
ABI: improve the type filtering helper
...
It now supports specifying a list of types to ignore.
2024-08-16 16:33:39 +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
927e8006b9
Model: rename TypePath to DefinitionReference
2024-06-27 11:05:49 +02:00
Ivan Krysak
d3a6fd8b5b
Layout: simplify aggregate return type logic
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
4676c951a0
ABI: update outdated comments
2024-06-27 11:05:48 +02:00
Ivan Krysak
b2959e36df
Minor improvements
2024-06-27 11:05:48 +02:00
Alessandro Di Federico
2925b11f6a
Model: adopt getConst where appropriate
2024-06-20 10:24:49 +02:00
Alessandro Di Federico
0459b9d084
Introduce RegisterUsageAnalyses
2024-04-19 18:33:00 +02:00
Ivan Krysak
dc16217f6d
Layout: introduce usedRegisters helper
2024-03-18 19:32:34 +01:00
Ivan Krysak
408c37caf2
Layout: introduce finalStackOffset helper
2024-03-18 19:32:34 +01:00
Ivan Krysak
54fd2295ac
Layout: introduce calleeSavedRegisters helper
2024-03-18 19:32:34 +01:00
Ivan Krysak
58e5fffb14
Layout: rework dump
2024-03-18 19:32:34 +01:00
Ivan Krysak
116510cd13
Layout: clean ArgumentKind enum up
2024-03-18 19:32:34 +01:00