Alessandro Di Federico
ade0603d3f
Add docs for artifacts and analyses
2024-12-11 16:15:10 +01:00
Alessandro Di Federico
d2d32b304e
Model: improve documentation
2024-12-11 16:15:09 +01:00
Alessandro Di Federico
5b7703aff3
Minor changes
2024-12-11 16:15:09 +01:00
Andrea Gussoni
fa69bd24e5
ScopeGraph: introduce the ScopeGraph
...
Introduce the `ScopeCloser` and `GotoTarget` annotations in the IR, and
the relative necessary machinery, needed to handle scope closer and goto
edges for the new backend.
A specialization of the `llvm::GraphTraits`, called `ScopeGraph`, that
is able to handle both the above mentioned annotations is provided.
For the `llvm::GraphTraits` implementation, we introduce the
`GeneratorIterator` class, which uses a coroutine to store the status of
the iteration.
A debug logger pass is added, so that we are able to test the
functionality with `FileCheck`.
2024-12-05 15:43:57 +01:00
Alessandro Di Federico
cfcbd3e5f9
Introduce model::Register::canonicalArchitecture
...
This commit fixes the fact that mipsel had apparently no registers due
to the fact that its registers were associated to mips.
2024-12-04 09:45:37 +01:00
Alessandro Di Federico
035e8e99a2
Minor changes
2024-12-03 12:12:44 +01: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
686083bdab
Remove mentions to revng-c
2024-11-21 15:54:23 +01: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
8e3c9c0788
Model: remove obsolete name methods
2024-11-06 15:43:13 +02:00
Ivan Krysak
a67ba96644
Adopt name builder across the model users
2024-11-06 15:43:13 +02:00
Ivan Krysak
2a5d50630b
Model: adopt name builder in verification
2024-11-06 15:43:13 +02:00
Ivan Krysak
2be6f4aebb
TypeSystemPrinter: adopt name builder
2024-11-06 15:43:13 +02:00
Ivan Krysak
ad868f57ad
Model: introduce name builder
2024-11-06 15:43:13 +02:00
Ivan Krysak
c101770c72
ModelTypeTests: pass the binary to the verifier
2024-11-06 15:42:44 +02:00
Ivan Krysak
0a3628e6fe
Model: introduce naming configuration
2024-11-06 15:42:44 +02:00
Ivan Krysak
1eb80ecd2d
Introduce an error creation helper
2024-11-06 15:20:37 +02:00
Ivan Krysak
a12f5d9e97
Minor improvements
2024-11-04 18:51:12 +02:00
Alessandro Di Federico
f9fad18cb4
EFA, Yield: handle blockless functions
2024-10-31 17:19:51 +01:00
Alessandro Di Federico
bd84bd7f2e
Rework --analyze and --analyses-list
2024-10-31 17:19:51 +01:00
Alessandro Di Federico
8e6942451e
Import revng-c's Kinds.h
2024-10-31 17:19:51 +01:00
Alessandro Di Federico
d633b414e1
Import revng-c's Ranks.h
2024-10-31 17:19:51 +01:00
Alessandro Di Federico
ac31e804fe
Import revng-c's STLExtras.h
2024-10-31 17:19:51 +01:00
Alessandro Di Federico
16e01f43d6
Import revng-c's FunctionTags.h
2024-10-31 17:19:51 +01:00
Alessandro Di Federico
d72f6413f0
Import revng-c's Support/IRHelpers.h
2024-10-31 17:19:51 +01:00
Alessandro Di Federico
36c344fc62
OpaqueFunctionsPool: improve assertion
2024-10-31 17:19:51 +01:00
Alessandro Di Federico
c97438c5e4
DynamicHierarchy: ensure we call init last
2024-10-31 17:19:51 +01:00
Giacomo Vercesi
8e65716ad8
Use zstd compression in pipeline
...
Use the zstd compression for:
* The `LLVMContainer` when serializing
* The invalidation cache when writing to disk
2024-10-30 21:57:55 +01:00
Giacomo Vercesi
3fc9bbf8fc
Uniform GzipStream
...
Uniform the functions/classes in GzipStream with the ones in ZstdStream.
2024-10-30 21:57:55 +01:00
Giacomo Vercesi
5b200df81a
Implement ZstdStream
...
Implement the `zstdCompress` and `zstdDecompress` functions. Also
implement the `ZstdCompressedOstream` which is a `llvm::raw_ostream`
which compresses data on the fly.
2024-10-30 21:57:55 +01:00
Alessandro Di Federico
9c47c92af2
Target::PathComponents: use SmallVector<1>
2024-10-30 19:30:04 +01:00
Alessandro Di Federico
e9e9a958e6
PathTargetBimap: drop ReverseMap
2024-10-30 17:54:48 +01:00
Ivan Krysak
99e966f6e8
ptml::TagBuilder: rename GenerateTagLessPTML
...
The new name is `IsInTaglessMode`.
This also makes it public, since their no point of keeping a const
option private.
2024-10-15 09:12:55 +02:00
Ivan Krysak
43f0304cb2
Pipeline: toString -> locationString
2024-10-15 09:12:55 +02:00
Ivan Krysak
c057ba335e
ptml::IndentedOstream: accept a builder reference
...
This avoids the need to have duplicated builders in cases were we
already have one at the cost of always having to manually create one.
2024-10-15 09:12:55 +02:00
Ivan Krysak
9ebe98e5c8
PTMLIndentedOstream: rename into IndentedOstream
2024-10-15 09:12:55 +02:00
Ivan Krysak
ec19b26ee9
PTMLBuilder: rename into ptml::MarkupBuilder
2024-10-15 09:12:55 +02:00
Alessandro Di Federico
a0c670652c
Improve usages of Expected<T>
2024-10-10 14:50:26 +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
4bdc7f83b5
ABI: drop incomplete pascal support
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
99e016f120
ABI: reorganize default ABI helpers
2024-10-08 13:53:52 +02:00
Ivan Krysak
fb06320154
ABI: introduce Microsoft_AAPCS64
2024-10-08 13:53:52 +02:00
Ivan Krysak
e92c0b68bb
ABI: introduce Apple_AAPCS64
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