Giacomo Vercesi
85998b1bd9
Fix S3 storage test
...
Fix the storage test by converting it from bash to python and also
testing all the occasions where a save should be triggered.
2025-03-28 10:24:10 +01:00
Giacomo Vercesi
6a88dc3d6a
Implement S3Synchronizer
...
Implement a downstream load/save handler in `revng.internal.api.Manager`
class which handles loading and saving files from a local directory to
a s3 server.
2025-03-28 10:24:10 +01:00
Giacomo Vercesi
1aa9c61c31
LocalStorageClient: save filelist
...
When saving to disk, `LocalStorageClient` will also save a file named
`file_list.yml` which will list the list of files, which is needed for
downstream save handlers to efficently save.
2025-03-27 12:45:29 +01:00
Giacomo Vercesi
f99aee6cf6
StorageClient: disable S3StorageClient
...
Disable creation of `S3StorageClient` from
`StorageClient::fromPathOrURL`.
2025-03-26 16:36:20 +01:00
Pietro Fezzardi
7821d9330c
Merge branch 'feature/clift-changes'
2025-03-24 15:34:37 +01:00
Lauri Vasama
3ca3653333
Convert Clift type handles to use locations
2025-03-24 09:27:57 +02:00
Lauri Vasama
d6a2ee387e
Add aliases for Clift types without handles
2025-03-24 09:26:43 +02:00
Lauri Vasama
e9c329e51d
Rename Clift unique handle to handle
2025-03-24 09:26:43 +02:00
Lauri Vasama
1325c75979
Move Clift op custom parsers out of header
2025-03-24 09:26:43 +02:00
Lauri Vasama
5479a5de88
Add special handling of aggregate initializers
2025-03-24 09:26:43 +02:00
Lauri Vasama
c85275cc70
Add expression region utilities in CliftOps.h
2025-03-24 09:26:43 +02:00
Lauri Vasama
2f64025dc9
Fix Clift backend double negation emission
2025-03-24 09:26:43 +02:00
Lauri Vasama
b97c55980b
Change Clift type constraints to ValueType
...
clift.indirection %p : <8 to !int32_t>
The concrete type kinds would cause types in the assembly to be emitted
without type mnemonics. See the example above.
2025-03-24 09:26:43 +02:00
Lauri Vasama
5f475739ef
Rename reinterpret, add convert cast
2025-03-24 09:26:43 +02:00
Lauri Vasama
f884642f59
Overhaul clift.struct, clift.union assembly syntax
...
Old syntax:
```
unique_handle = "/model-type/1",
name = "my_struct",
size = 2,
fields = [
<
offset = 0
name = "",
type = !t
>,
<
offset = 1,
name = "my_field",
type = !t
>
]
>
unique_handle = "/model-type/1",
name = "my_union",
fields = [
<
offset = 0,
name = "",
type = !t
>,
<
offset = 0,
name = "my_field",
type = !t
>
]
>
```
New syntax:
```
"/model-type/1" as "my_struct" : size(1) {
offset(0) : !t,
offset(1) as "my_field" : !t
}
>
"/model-type/1" as "my_union" : {
!t,
"my_field" : !t
}
>
```
2025-03-24 09:26:43 +02:00
Lauri Vasama
5bd481ae5a
Overhaul clift.function assembly syntax
...
Old syntax:
```
unique_handle = "/model-type/1",
name = "my_function",
return_type = !t,
argument_types = [
!t
]
>
```
New syntax:
```
"/model-type/1" as "my_function" : !t(!t)
>
```
* Rename clift.function mnemonic to clift.func.
2025-03-24 09:26:43 +02:00
Lauri Vasama
281bf283e2
Overhaul clift.typedef assembly syntax
...
Old syntax:
```
unique_handle = "/model-type/1",
name = "my_typedef",
underlying_type = !t
>
```
New syntax:
```
"/model-type/1" as "my_typedef" : !t
>
```
2025-03-24 09:26:43 +02:00
Lauri Vasama
ea78766f10
Overhaul clift.enum assembly syntax
...
Old syntax:
```
unique_handle = "/model-type/1",
name = "my_enum",
underlying_type = !t,
fields = [
<
name = "my_enumerator",
raw_value = 42
>
]
>
```
New syntax:
```
"/model-type/1" as "my_enum" : !t {
42 as "my_enumerator"
}
>
```
2025-03-24 09:26:43 +02:00
Lauri Vasama
8482bcbf90
Overhaul clift.defined assembly syntax
...
Old syntax:
```
!clift.defined<#t>
!clift.defined<is_const = true, #t>
```
New syntax:
```
!clift.defined<#t>
!clift.defined<const #t>
```
2025-03-24 09:26:43 +02:00
Lauri Vasama
64fc21e9dd
Overhaul clift.pointer assembly syntax
...
Old syntax:
```
!clift.pointer<pointer_size = 8, pointee_type = !t>
!clift.pointer<is_const = true, pointer_size = 8, pointee_type = !t>
```
New syntax:
```
!clift.ptr<8 to !t>
!clift.ptr<const 8 to !t>
```
2025-03-24 09:26:43 +02:00
Lauri Vasama
872b157774
Overhaul clift.array assembly syntax
...
Old syntax:
```
!clift.array<elements_count = 42, element_type = !t>
```
New syntax:
```
!clift.array<42 x !t>
```
2025-03-24 09:26:43 +02:00
Lauri Vasama
eaf1bf35aa
Overhaul clift.primitive assembly syntax
...
Old syntax:
```
!clift.primitive<SignedKind 8>
!clift.primitive<is_const = true, SignedKind 8>
```
New syntax:
```
!clift.primitive<signed 8>
!clift.primitive<const signed 8>
```
2025-03-24 09:26:43 +02:00
Lauri Vasama
e2f4af30e9
Add custom builder for Clift FunctionOp
2025-03-24 09:26:43 +02:00
Lauri Vasama
8f44ebe12d
Improve Clift type constraint error messages
2025-03-24 09:26:43 +02:00
Lauri Vasama
e08a8e766b
Set register set type name in Clift import
2025-03-24 09:26:43 +02:00
Lauri Vasama
20cb57a105
Fix redundant cast parentheses in Clift backend
2025-03-24 09:26:42 +02:00
Lauri Vasama
a9727e198c
Fix return statement emission in Clift backend
2025-03-24 09:25:30 +02:00
Lauri Vasama
0df1056fe8
Add Clift backend support for UndefOp
2025-03-24 09:25:30 +02:00
Lauri Vasama
23b47f825e
Add Clift AggregateOp
2025-03-24 09:17:38 +02:00
Lauri Vasama
bf625c631a
Improve Clift CallOp syntax
2025-03-24 09:17:36 +02:00
Lauri Vasama
1b63797640
Add Clift TernaryOp
2025-03-19 12:57:22 +02:00
Lauri Vasama
747a792f0f
Add Clift pointer arithmetic ops
2025-03-19 12:57:22 +02:00
Lauri Vasama
66246218b7
Add Clift StringOp
2025-03-19 12:57:21 +02:00
Lauri Vasama
ee3deb5d3f
Add model verification in clift-opt
2025-03-19 12:57:21 +02:00
Lauri Vasama
8163933eb4
Add linefeeds in clift-opt emit-c
2025-03-19 12:57:21 +02:00
Lauri Vasama
888d529d93
Fix Clift return type verification
2025-03-19 12:57:20 +02:00
Lauri Vasama
df2003efb8
Add clift::removeConst in CliftTypes.h
2025-03-19 12:57:20 +02:00
Lauri Vasama
da9df369fc
Loosen Clift logical op type constraints
2025-03-19 12:57:20 +02:00
Lauri Vasama
4a334bef7b
Move Clift type helpers to CliftTypes.h
2025-03-19 12:57:19 +02:00
Lauri Vasama
c472dd3cae
Move ScopedExchange to revng/ADT/
2025-03-19 12:57:19 +02:00
Lauri Vasama
eec882dac1
Add clift::GlobalOpInterface
2025-03-19 12:57:19 +02:00
Lauri Vasama
44c9388930
Rename Clift comparison operations
2025-03-19 12:57:18 +02:00
Lauri Vasama
08c2c0a477
Remove ScalarTupleType
...
After converting type IDs to unique handles it was decided to remove
scalar tuple types in favour of generated structs with non-model unique
handles.
2025-03-19 12:57:18 +02:00
Lauri Vasama
386efffb2f
Convert TypeDefinitionAttr ID to UniqueHandle
2025-03-19 12:57:17 +02:00
Lauri Vasama
86126db366
Fix Clift composite type verify on parsing
2025-03-19 12:57:17 +02:00
Lauri Vasama
4648fe672f
Allow commit message ending with backticks
2025-03-19 12:57:14 +02:00
Alessandro Di Federico
8cd571335b
Merge branch 'feature/fix-32-bit-pointer-masks'
2025-03-17 08:51:55 +01:00
Alessandro Di Federico
c5b9728289
LocalVariableBuilder: add pointer size assumption
...
This commit further centralizes the creation of allocas + ptrtoint. The
creation of these pair of instructions is problematic when the size of a
pointer in the input and target architecture differ.
In fact, in such cases, LLVM turns trunc into masking the integer to
suppresse the high bits. This results in problematic code.
This commit introduces an assumption that ensures LLVM does not do that.
2025-03-17 08:51:29 +01:00
Alessandro Di Federico
86f3dcf1ae
Minor changes
2025-03-14 17:25:05 +01:00
Alessandro Di Federico
6465a7523d
Merge branch 'feature/ui-qa-2025-03-04'
2025-03-14 15:18:43 +01:00