Ivan Krysak
ac587cbb4f
Model: rename Type into TypeDefinition
2024-06-27 11:05:48 +02:00
Ivan Krysak
b2959e36df
Minor improvements
2024-06-27 11:05:48 +02:00
Alessandro Di Federico
b5f7576573
Rework TupleTreeGenerator tracking
2024-06-20 10:24:50 +02:00
Alessandro Di Federico
b0d897b87d
Minor changes
2024-06-20 10:24:49 +02:00
Massimo Fioravanti
db15f7df9a
Propagate info about inputs and outputs of pipes
...
This comit propagates the deduced info about inputs and outputs of pipes
all the way up to the runner, so that the requested output of a pipe can
be passed to its invocation.
2024-06-20 10:24:49 +02:00
Massimo Fioravanti
43349943a7
Stop serializing the model in the IR
2024-06-20 09:57:36 +02:00
Massimo Fioravanti
7ee8c8000d
Introduce revng pipe
2024-06-20 09:57:36 +02:00
Lauri Vasama
9f7117fe81
Move ModelType test into an .inc file for sharing
2024-05-29 15:42:15 +02:00
Lauri Vasama
3e33a300d5
Introduce RawFunctionType::Architecture
2024-05-29 15:42:15 +02:00
Alessandro Di Federico
31b1b66f44
Reorder model::Binary fields
2024-05-22 10:25:25 +02:00
Alessandro Di Federico
c061f1f971
Make Pipe::checkPrecondition mandatory
2024-05-22 10:25:25 +02:00
Alessandro Di Federico
25c7834b21
Introduce test_adt
...
This should reduce build times.
2024-05-03 21:52:40 +02:00
Alessandro Di Federico
0459b9d084
Introduce RegisterUsageAnalyses
2024-04-19 18:33:00 +02:00
Alessandro Di Federico
a1b0ba752c
GenericGraph: implement Edge::operator==
...
This fixes a subtle bug in GenericGraph. Basically, if the label of an
Edge was the Empty data structure, whose `operator==` always returns
`true`, the comparison between edges was broken.
2024-04-18 17:50:32 +02:00
Alessandro Di Federico
dae9f33544
Minor changes
2024-04-18 17:50:31 +02:00
Ivan Krysak
8ecdd76e68
ABI-tests: improve ABI mismatch error message
2024-03-15 19:05:10 +01:00
Alessandro Di Federico
0da9d1e1a4
Model: fix handling of 0-sized arguments
...
We used to support having a single `void` argument. It was for some
C-compatibility ambitions, but just omitting the argument is perfectly
fine.
Also, the DWARF importer has been fixed to handle typedef'd void as
arguments.
More in general, arguments are now required to always have a size.
2024-03-01 14:53:06 +01:00
Ivan Krysak
b73d4934c8
ABI-tests: extend register comparison
...
It now accounts for endianness.
2024-02-09 15:09:37 +00:00
Ivan Krysak
52c9ae0b4d
ABI-tests: fix vector-less MIPS tests
2024-02-09 15:09:37 +00:00
Ivan Krysak
bd6ab10454
ABI-tests: stop using unsupported primitives
2024-02-09 15:09:37 +00:00
Ivan Krysak
16feb420c3
ABI-tests: handle stack argument offset gracefully
2024-02-09 15:09:37 +00:00
Ivan Krysak
654e0958e9
ABI-tests: remove obsolete abi replacement
...
See the `replace-abi.py` script for how it's done now.
2024-02-09 15:09:37 +00:00
Ivan Krysak
b75406f711
ABI-tests: make ID matching more robust
2024-02-09 15:09:37 +00:00
Ivan Krysak
5fcdfebbaf
ABI-tests: support pointers-to-copy on the stack
2024-02-09 15:09:37 +00:00
Ivan Krysak
24e907525e
ABI-tests: support pointers-to-copy in registers
2024-02-09 15:09:37 +00:00
Ivan Krysak
a1ddbe5d83
ABI-tests: improve reported errors
2024-02-09 15:09:37 +00:00
Ivan Krysak
d1a78d903b
ABI-tests: make tested function set leaner
2024-02-09 15:09:37 +00:00
Ivan Krysak
43c6780baf
ABI-tests: introduce ID list deduplication
2024-02-09 15:09:37 +00:00
Ivan Krysak
f08d1a2f81
ABI-tests: prefer model::Type::Key to RFT *
2024-02-09 15:09:37 +00:00
Ivan Krysak
cf0ce66674
ABI-tests: use updated stdout.yml file format
...
This also allows to simplify the resulting datastructure somewhat.
2024-02-09 15:09:37 +00:00
Ivan Krysak
4a8455e994
ABI-tests: separate value preservation verifier
2024-02-09 15:09:37 +00:00
Ivan Krysak
d13e83163d
Minor improvements
2024-02-09 15:09:37 +00:00
Alessandro Di Federico
03642de797
Standardize unit test names
2024-02-09 10:04:27 +01:00
Alessandro Di Federico
aaa1b26468
AAPCS ABI: drop support for int128_t
2024-02-09 10:04:26 +01:00
Alessandro Di Federico
d9367954a4
Convert all public strings to kebab-case
2024-02-09 10:04:24 +01:00
Alessandro Di Federico
5fbb5ff503
Minor changes
2024-02-09 10:04:17 +01:00
Ivan Krysak
a52243037b
Model: add basic unit tests for TypeBucket
2024-01-29 11:57:54 +02:00
Ivan Krysak
77b1acaf00
Prefer uint64_t to size_t wherever relevant
2024-01-29 11:57:54 +02:00
Ivan Krysak
b25a32de2a
Stop using std:: prefix for std::size_t
2024-01-29 11:57:54 +02:00
Massimo Fioravanti
c276a439b5
Add pipeline invalidation
...
Replace the stub implementation of invalidation with the proper
implementation. A ReadPathCache is added to each global so that it can
keep tracks of what target are associated to which read paths.
2024-01-02 11:14:56 +01:00
Alessandro Di Federico
d648f9b970
s/Layout::returnsAggregateType/Layout::hasSPTAR/
2023-12-12 12:04:34 +01:00
Giacomo Vercesi
8504a96020
RawFunctionType: use NamedTypedRegister for return
...
Use the `NamedTypedRegister` type for return values in
`RawFunctionType`. This allows return values to be renamed at the user's
discretion.
2023-12-11 12:03:45 +01:00
Alessandro Di Federico
10dcb7be11
Fix semantics of model::Types purging passes
...
One of the two passes to purge unused types from the model had a
ill-defined semantics.
This commit simplifies them in two passes: one that purges all the types
unreachable from outside `Binary::Types` and one that does the same but
also preserves types with a `CustomName` or an `OriginalName`.
2023-12-05 16:19:39 +01:00
Pietro Fezzardi
1285c6e7af
Make RawFunctionType::StackArgumentsType a TTR
...
This is homogeneous with all other nullable references to types in the
model, such as the StackFrameType in model::Function, and others.
2023-12-05 16:19:38 +01:00
Giacomo Vercesi
acd498bf25
Pipeline options: restrict to int and strings
...
Restrict the type of pipeline options to integers and strings. Rework
the CLOpt mechanism to avoid parsing the string twice.
2023-11-03 12:13:57 +01:00
Ivan Krysak
f3acdcdef3
ABI: rewrite the testing suite documentation
2023-11-02 17:10:04 +01:00
Ivan Krysak
ca3d3fe5f1
ABI-testing: rework the layout verification
...
Following the switch in the testing approach on the revng-qa side,
the logic here also needed to be updated.
2023-11-02 17:10:04 +01:00
Ivan Krysak
65fa67df84
YAMLTraits: specialize for std::byte
2023-11-02 17:10:04 +01:00
Ivan Krysak
dcc8fd16c5
ABI-testing: rename the parser file
...
Since `artifact` is so ambiguous, a more explicit name was given.
2023-11-02 17:10:04 +01:00
Ivan Krysak
cfe28d8e56
Stop using std:: prefix for u?int\d+_t types
2023-11-02 17:10:03 +01:00