Giacomo Vercesi
e57442fafe
Introduce Tar.h
...
Split off the `GzipTarReader` into `Tar.h`, include a normal
`TarWriter` class which leverages libarchive to generate the tar file.
2025-10-16 16:08:05 +02:00
Giacomo Vercesi
2f83d8f5c9
Introduce CUniquePtr
...
Add a helper using of `std::unique_ptr` that allows easier wrapping of
C pointer with destructors.
2025-10-16 16:08:05 +02:00
Giacomo Vercesi
ca0f312b1e
Pipebox: remove const from ArrayRef
...
Remove the `const` from `ArrayRef<const char>` as the `ArrayRef` already
implies the underlying type will be accessed only in `const`.
2025-10-16 16:07:09 +02:00
Giacomo Vercesi
d92f4cdca3
ObjectID: introduce byte (de)serialization
...
Add the `to_bytes` and `from_bytes` to `ObjectID`. This allows
serializing an `ObjectID` instance to raw bytes with a specific binary
format.
2025-10-15 11:58:41 +02:00
Giacomo Vercesi
bb0709effc
Introduce compile_time::callWithIndexSequence
...
Add a helper function that given a `size_t` or a tuple-like type, allows
calling a lambda with the expanded sequence pack. This avoids having to
manually create the index sequence and defining the lambda accepting it.
2025-10-15 11:58:41 +02:00
Ivan Krysak
25538385c8
Avoid using !! unless necessary
...
The only necessary place is when passing it into the `BOOST_TEST`
macro, which doesn't convert its argument to `bool` internally.
2025-10-13 10:26:41 +03:00
Ivan Krysak
e56f543b1a
Split module.bc.zstd
2025-10-13 10:26:41 +03:00
Ivan Krysak
a88747cf99
Drop unused includes
2025-10-08 12:22:34 +03:00
Lauri Vasama
375d40fc59
Move CTarget.h under revng/Support
2025-09-29 18:05:54 +03:00
Andrea Gussoni
92e8ec3982
ScopeGraphUtils: improve isDAG check
...
We now ensure that even in case of blocks disconnected from the entry,
the `isDAG` function still search for loops in such parts of the graph.
This is achieved by instantiating multiple `scc_iterator` on the blocks
composing the underlying `Graph`.
2025-09-26 10:39:09 +02:00
Andrea Gussoni
08781ab2a6
GraphAlgorithms: hasUnreachableBlocks helper
...
Introduce the `hasUnreachableBlocks`, which can be used to test that
blocks disconnected from the entry of the `GraphT` do not exists.
2025-09-24 15:51:06 +02:00
Andrea Gussoni
817c5c0e23
GraphAlgorithms: propagate template arguments
2025-09-24 15:51:02 +02:00
Giacomo Vercesi
448f70e7dc
Add trace runner
...
Add the tool `pypeline-trace-runner` which allows reading a serialized
pypeline schedule and execute it purely in C++.
2025-09-17 14:09:16 +02:00
Giacomo Vercesi
c68b7f1ab6
TupleTreeGenerator: make all keys hashable
...
Make all `Key` structs generated by TupleTreeGenerator have a
`std::hash` specicialization.
2025-09-17 14:02:40 +02:00
Ivan Krysak
385cbfb13a
Introduce ModuleSlotTracker-aware dumpToString
2025-09-10 17:44:02 +02:00
Ivan Krysak
4d35551f14
Introduce a debug information preservation style
...
It's guarded behind the
`EnableStrictDebugInformationPreservationStyle`
option.
2025-09-10 17:44:02 +02:00
Ivan Krysak
2ad2cbda6f
setInsertPointToFirstNonAlloca: preserve DebugLoc
2025-09-10 17:44:01 +02:00
Ivan Krysak
c6a175a1b9
Rename _START_AT -> _STARTS_AT
2025-08-29 14:00:29 +03:00
Ivan Krysak
a285ad2785
IRHelperRegister: get a comment from Description
2025-07-23 11:38:53 +02:00
Ivan Krysak
97aa3c8247
std::string: use implicit default constructor
2025-07-23 11:38:53 +02:00
Ivan Krysak
f391392fe9
Use explicit separator strings
2025-07-23 11:38:52 +02:00
Ivan Krysak
f4e86b37b8
OpaqueFunctionsPool: leave a TODO
2025-07-23 11:38:51 +02:00
Ivan Krysak
8dff23d586
MetaAddress: pull addressesToString up
2025-07-23 11:38:50 +02:00
Ivan Krysak
96be1a9979
MetaAddress: introduce operator<=>
2025-07-23 11:38:50 +02:00
Ivan Krysak
b5337d78da
Minor Improvements
2025-07-23 11:38:50 +02:00
Andrea Gussoni
1faa781e6a
CommandLine: drop pathToStream
...
Remove `pathToStream` in favour of `llvm::ToolOutputFile`.
2025-07-23 11:34:13 +02:00
Lauri Vasama
8c3d774978
Implement MetaAddress DenseMap support
2025-07-17 16:45:03 +02:00
Lauri Vasama
a7eb86174b
Add revng/Support/Identifier.h for id validation
2025-06-04 15:13:47 +02:00
Ivan Krysak
c7bba8c1b9
Prevent Support headers from depending on PTML
2025-05-08 15:42:01 +02:00
Ivan Krysak
fa2f243f12
PTML: avoid auto in constexpr string literals
2025-05-08 15:42:00 +02:00
Giacomo Vercesi
f4a1d5bba6
OnQuit: clean up
...
Split the handlers in `OnQuit` between the repeatable and non-repeatable
ones. Trigger the non-repeatable ones only on program exit.
2025-05-07 16:42:20 +02:00
Giacomo Vercesi
fede2f2090
ProgramRunner: allow redirection of streams
...
Change ProgramRunner's API to allow to optionally provide stdin and
capture stdout/stderr.
2025-05-05 17:28:48 +02:00
Giacomo Vercesi
ec3231d7e6
TemporaryFile: fix move assignment
...
Fix the move assignment operator of `TemporaryFile`, which would behave
incorrectly if the object was moved into itself.
2025-05-05 16:02:40 +02:00
Giacomo Vercesi
cf08ae41be
Drop usage of llvm::ErrorOr<T>
...
Remove the last two remaining classes in revng which used the
`llvm::ErrorOr` class, replace them with `llvm::Expected`.
2025-05-05 16:02:40 +02:00
Khaled Ismaeel
a52f1f17c2
Add automatic migrations in PipelineManager
2025-04-30 15:08:45 +02:00
Giacomo Vercesi
9ff471409e
Remove some asserts from YAMLTraits
...
More soft-fails instead.
2025-04-28 12:58:27 +02:00
Ivan Krysak
1bce76f511
Bring name mangling out into a support helper
2025-04-24 13:22:14 +02:00
Ivan Krysak
79964eac74
Avoid ' misuse in error messages and comments
2025-04-17 16:41:21 +02:00
Ivan Krysak
c6e38cd485
Return to using constant name builders
...
Because of how name builders used to lazy gather namespaces on the first
requested name, the objects were self mutating. As such only non-const
references could be used to pass them around.
Since that is no longer the case, this restores most of lost const
qualifiers.
2025-04-17 11:19:17 +03:00
Ivan Krysak
48a7822923
FunctionTags: adopt helper registry
2025-04-17 11:19:17 +03:00
Ivan Krysak
24b96e4480
IRHelpers: introduce a const callers helper
2025-04-17 11:19:17 +03:00
Ivan Krysak
76a2bffc94
Introduce an IR helper registry
2025-04-17 11:19:17 +03:00
Ivan Krysak
6a6b34b831
Introduce a general static registry helper
2025-04-17 11:19:17 +03:00
Ivan Krysak
aa15d8ca21
Standardize abort-like function usage
2025-04-17 11:19:17 +03:00
Ivan Krysak
7b04cb99ae
ptml::Annotations: introduce isMacro helper
2025-04-17 11:19:17 +03:00
Ivan Krysak
795a84dfe6
MetaAddressType: introduce a prefix consumer
2025-04-15 16:35:42 +03:00
Ivan Krysak
2e85653873
MetaAddressType: introduce Count
2025-04-15 16:35:42 +03:00
Ivan Krysak
3ff5b2cd3a
Support: introduce unwrapError
2025-04-15 16:35:42 +03:00
Ivan Krysak
169383daa8
MetaAddress: introduce toIdentifier() method
...
It's equivalent to the existing `toString()` except for the fact that
it uses an identifier-friendly separator (`_`).
2025-04-15 16:35:42 +03:00
Ivan Krysak
3edb6cbb9b
Minor improvements
2025-04-15 16:35:42 +03:00