Ivan Krysak
36ce22cd4e
STLExtras: change notNull to return a reference
2025-07-23 11:38:51 +02:00
Ivan Krysak
fd1ed20852
Ranks: update local variables and goto labels
...
Then now use corresponding model keys instead of raw names.
2025-07-23 11:38:51 +02:00
Ivan Krysak
554ffa376a
model::Function: introduce GotoLabels field
2025-07-23 11:38:51 +02:00
Ivan Krysak
1ebeb8f493
model::Function: introduce LocalVariables field
2025-07-23 11:38:50 +02:00
Ivan Krysak
4e3c6cccd0
Model: introduce LocalIdentifier struct
2025-07-23 11:38:50 +02:00
Ivan Krysak
3c9aa5f4b2
Pipes: pull tryExtractAddress up
2025-07-23 11:38:50 +02:00
Ivan Krysak
8dff23d586
MetaAddress: pull addressesToString up
2025-07-23 11:38:50 +02:00
Ivan Krysak
b982ae68d0
NamingConfiguration: add UnnamedGotoLabelPrefix
2025-07-23 11:38:50 +02:00
Ivan Krysak
031c4dfa2f
Introduce ptml::CTypeBuilder::getFreeFormComment
2025-07-23 11:38:50 +02:00
Ivan Krysak
04b751dafc
TrackingContainer: add a missing Other access
...
This ensures `operator==` correctly registers the fact that *both*
of the containers were accesses.
2025-07-23 11:38:50 +02:00
Ivan Krysak
d11b524f14
TrackingContainer: introduce operator<=>
2025-07-23 11:38:50 +02:00
Ivan Krysak
83a3843d8a
SortedVector: introduce operator<=>
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
c060f07ecd
ScopeGraph: add scope-graph-output cl::opt
2025-07-23 11:34:13 +02:00
Andrea Gussoni
1faa781e6a
CommandLine: drop pathToStream
...
Remove `pathToStream` in favour of `llvm::ToolOutputFile`.
2025-07-23 11:34:13 +02:00
Giacomo Vercesi
29d7f2d8a8
artifacts: allow parsing the recompilable archive
...
Allow the artifacts machinery to parse, via `pycparser`, the
recompilable archive provided by revng via the
`emit-recompilable-archive` artifact.
2025-07-18 09:30:56 +02:00
Lauri Vasama
28550f2f57
Add explicit pointer size support in old backend
...
When `Configuration.ExplicitTargetPointerSize` is set, the backend uses
explicit pointer type sizes (e.g. `pointer32_t(T)`).
2025-07-17 16:45:03 +02:00
Lauri Vasama
780e774b20
Add Clift legalization pipe
2025-07-17 16:45:03 +02:00
Lauri Vasama
9fda9f955d
Add NoMemoryEffect on Clift operations
...
This allows unused expressions to be automatically pruned during
transforms.
2025-07-17 16:45:03 +02:00
Lauri Vasama
4e17287cfc
Add LLVM-to-Clift import
2025-07-17 16:45:03 +02:00
Lauri Vasama
b9ce0a87df
Add Clift model verification
2025-07-17 16:45:03 +02:00
Lauri Vasama
d70c9404f3
Add a helper for LLVM IR lookup by meta-address
2025-07-17 16:45:03 +02:00
Lauri Vasama
8c3d774978
Implement MetaAddress DenseMap support
2025-07-17 16:45:03 +02:00
Lauri Vasama
74588ae684
Rename MLIRFunctionKind to CliftFunction
2025-07-17 16:45:03 +02:00
Lauri Vasama
237d246665
Factor out the default C target implementation
...
This commit also adds size 16 -> extended integer kind mapping.
While we are hardcoding this for now, some maintenance (as above) is
needed, so it's best to hardcode it only in one place and share that
definition.
2025-07-17 16:45:03 +02:00
Lauri Vasama
ee38ac933c
Make comparison op assembly syntax more explicit
...
```
// Old syntax:
// Argument types are !int32_t.
// The boolean result type is implicitly !int32_t.
clift.eq %0, %1 : !int32_t
// New syntax:
// The boolean result type must be specified explicitly.
clift.eq %0, %1 : !int32_t -> !int32_t
```
2025-07-17 16:45:03 +02:00
Lauri Vasama
c92f34b409
Add FunctionOp::getCliftReturnType
2025-07-17 16:45:03 +02:00
Lauri Vasama
50a96527cd
Add PtrAdd/PtrSub operand helpers
2025-07-17 16:45:03 +02:00
Lauri Vasama
fc682383e9
Implement Clift bytecode
...
Fixes bytecode emission of class types with very large trees of members.
See the new unit test: union-with-large-tree.mlir .
2025-07-17 16:45:03 +02:00
Lauri Vasama
d2e83b30a1
Add clift::getPointerType
2025-07-17 16:45:03 +02:00
Lauri Vasama
50c3c8f95a
Fix Clift union recursion parsing issue
2025-07-17 16:45:03 +02:00
Giacomo Vercesi
79d20d343b
FilePath: fix addExtension
...
When working with `stdin` and `stdout`, the `addExtension` function
should return std::nullopt, since concatenating files is undesirable.
This fixes a bug where the output of the `StringMap` container would
have the index file appended to it, rendering an invalid tar.
2025-06-27 17:12:18 +02:00
Andrea Gussoni
a93b8b7044
RegionCFGTree: introduce soft failure
...
Soft fail for `inflate`.
2025-06-26 12:02:38 +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
Andrea Gussoni
82c66fd4ca
BeautifyGHAST: early return failure handling
2025-06-23 12:00:59 +02:00
Andrea Gussoni
6a6db9e00f
GenerateAST: introduce soft failure
...
Soft fail for `createSwitchTile`.
2025-06-23 12:00:59 +02:00
Andrea Gussoni
a521b9d760
RegionCFGTree: introduce soft failure
...
Soft fail for `insertBulkNodes`.
2025-06-20 13:38:05 +02:00
Andrea Gussoni
7550753081
ASTTree: introduce soft failure
...
Soft fail for `copyASTNodesFrom`.
2025-06-20 10:29:04 +02:00
Andrea Gussoni
e2c7404218
RegionCFGTree: introduce soft failure
...
Soft fail for `purgeIfTrivialDummy`.
2025-06-20 10:15:46 +02:00
Andrea Gussoni
12bf4e7db0
RestructureCFG: fail on unexpected dummy purge
...
When attempting to simplify away a dummy that simply connects a
Predecessor and a Successor, fail if Predecessor and Successor are
already connected.
In order to handle such failure, we need to decorate a lot of function
on the stack trace in order to be able to propagate the failure code.
2025-06-19 11:36:49 +02:00
Andrea Gussoni
da31adc83c
ASTTree: clear internal fields on constructor
2025-06-19 09:48:39 +02:00
Andrea Gussoni
333903e86e
ScopeGraph: ScopeGraphBuilder const methods
2025-06-12 15:31:38 +02:00
Lauri Vasama
4bf1d8fe99
Remove Clift backend transform and model option
2025-06-04 15:13:47 +02:00
Lauri Vasama
7c9031bd98
Change MLIRContainer to focus on Clift, rename
2025-06-04 15:13:47 +02:00
Lauri Vasama
cc94e2d290
Constrain returnable types
2025-06-04 15:13:47 +02:00
Lauri Vasama
047511b1ed
Remove Clift break and continue ops
2025-06-04 15:13:47 +02:00
Lauri Vasama
3e065cb23d
Remove local and label names
2025-06-04 15:13:47 +02:00
Lauri Vasama
fdbc7b57fb
Add SwitchOp::getCaseRegions
2025-06-04 15:13:47 +02:00
Lauri Vasama
a0ec1305f1
Move ReturnOp type verification to FunctionOp
2025-06-04 15:13:47 +02:00