Lauri Vasama
4cadcafa2c
Move operand constraints from C++ to tablegen
2026-04-08 12:30:31 +03:00
Lauri Vasama
d35e54627c
Add Clift ValueType interface
...
Value types is the set of non-array object types. These types are
assignable, can be used as function parameters, and as return types
(along with void), and in other scenarios where the type must have usual
value-like behaviour with no weirdness (such as array decay).
2026-04-08 12:28:45 +03:00
Lauri Vasama
80731d1a10
Migrate users to new Clift type casts
2026-04-08 12:27:32 +03:00
Lauri Vasama
fb3cdbdf38
Rename ValueType to AddressableType
2026-04-08 12:26:18 +03:00
Lauri Vasama
29c935ac90
Replace Clift type category helpers with casts
2026-04-08 12:25:04 +03:00
Lauri Vasama
ecaec9b2f1
Add typedef-unwrapping Clift type casts
...
* `clift::unwrapped_isa`
* `clift::unwrapped_isa_and_present`
* `clift::unwrapped_cast`
* `clift::unwrapped_cast_if_present`
* `clift::unwrapped_dyn_cast`
* `clift::unwrapped_dyn_cast_if_present`
These casts first unwrap typedefs and then behave equivalently to their
usual LLVM counterparts.
2026-04-08 12:23:49 +03:00
Lauri Vasama
db2b57e867
Add Clift ObjectType type interface
2026-04-08 12:22:33 +03:00
Lauri Vasama
92ad229ff0
Move BytecodeClassAttr into a separate file
2026-04-08 12:21:16 +03:00
Lauri Vasama
9ba90e9b81
Replace ValueType with mlir::Type where applicable
...
`mlir::Type` is now used as the default C++ type for representing all
MLIR types, even when `ValueType` would be a valid constraint, unless
doing so provides a clear benefit in that specific context.
2026-04-08 12:20:00 +03:00
Lauri Vasama
f9a4cb6384
Split up clift::dealias
...
* `unwrapTypedefs` matches `dealias(T, /*IgnoreQualifiers=*/true)`.
* `collapseTypedefs` matches `dealias(T)`.
2026-04-08 12:18:42 +03:00
Lauri Vasama
be8351a17d
Split up Clift PrimitiveType
...
* PrimitiveType is now an interface.
* VoidKind is now VoidType.
* FloatKind is now FloatType.
* The integer kinds are now IntegerType with IntegerKind.
2026-04-08 12:18:10 +03:00
Lauri Vasama
a2be1b476a
Split up Clift CastOp
...
* DecayOp - array or function to pointer decay. Not shown in C.
* BitCastOp - bit-preserving conversion. Emitted as bit_cast if
necessary.
* ExtendOp - zero- or sign-extending conversion from any integer type to
any wider integer type.
* TruncateOp - truncating conversion from any integer type to any
narrower integer type.
* PtrResizeOp - resizes a pointer without changing its pointee type.
2026-04-08 12:11:54 +03:00
Lauri Vasama
4cd4de4f83
Improve Clift type tablegen definitions
2026-04-08 11:12:41 +03:00
Lauri Vasama
82ae097c18
Improve Clift operation type constraints
2026-04-08 11:12:41 +03:00
Lauri Vasama
5198af8ba7
Improve Clift free function type property helpers
2026-04-08 11:12:41 +03:00
Lauri Vasama
03c9b2288f
Simplify Clift expression op definitions
2026-04-08 11:12:41 +03:00
Lauri Vasama
fae3bb5788
Remove unnecessary Clift operand type constraints
2026-04-08 11:12:41 +03:00
Lauri Vasama
7b25803333
Remove unused BasicStatementOp default argument
2026-04-08 11:12:41 +03:00
Lauri Vasama
dda0ef6292
Remove unused Clift_AnyLabelType constraint
2026-04-08 11:12:41 +03:00
Lauri Vasama
9e71f608b7
Fix Clift AliasableType description
2026-04-08 11:12:41 +03:00
Ivan Krysak
6f02461948
Clift: fix missed getAttributes methods
...
They are now correctly named `getCAttributes`.
2026-03-27 12:27:16 +00:00
Ivan Krysak
c30f309f5e
Clift: introduce getMutableComment
2026-03-27 08:09:09 +00:00
Ivan Krysak
e34fbcb955
FunctionOp: add noreturn and always_inline
2026-03-27 08:08:08 +00:00
Ivan Krysak
7f66f25253
mlir::clift::ClassAttr: add attribute support
2026-03-27 07:19:27 +00:00
Ivan Krysak
928bcdb118
mlir::clift::FunctionType: add attribute support
2026-03-27 07:19:27 +00:00
Ivan Krysak
8a3a2082b5
CAttributeAttr: enforce argument types
2026-03-27 07:19:27 +00:00
Ivan Krysak
f4e7d50361
Allow C-Attributes to accept integers and types
2026-03-27 07:18:49 +00:00
Lauri Vasama
ad6f6df04e
Improve function arg/result attribute interface
2026-03-27 07:18:49 +00:00
Ivan Krysak
1310b6ab62
Clift: append C to attribute classes we emit
2026-03-25 15:42:13 +00:00
Ivan Krysak
5fdc99c4da
Minor improvements
2026-03-25 15:42:13 +00:00
Lauri Vasama
d37d32e4b2
Add Clift function type to-do
2026-02-13 08:41:39 +02:00
Lauri Vasama
811478771e
Make local op name attributes inherent
...
The handle was already inherent, but was not being used. Discardable
attributes were instead previously used for both handle and name.
2026-02-13 08:41:39 +02:00
Lauri Vasama
47f030248c
Add ExpressionRegionOpInterface
2026-02-13 08:41:39 +02:00
Lauri Vasama
ba9c756d07
Improve StatementRegionOpInterface
2026-02-13 08:41:39 +02:00
Lauri Vasama
f65ca96368
Add clift op interface descriptions
2026-02-11 12:48:33 +02:00
Giacomo Vercesi
3cd011c146
Introduce CliftFunctionMixin
...
In equivalence with `LLVMFunctionMixin`, add a mixin that allows
writing a pipe that instead of defining the `runOnFunction` method it
defines the `runOnCliftFunction` which receives both the
`module::Function` and the `FunctionOp`.
2025-12-10 16:16:14 +01:00
Lauri Vasama
ba945442d6
Add BlockStatementOp
2025-12-05 15:01:14 +02:00
Lauri Vasama
8599cc0c1d
Add StatementRegionOpInterface
...
This interface describes any operation containing statement regions.
2025-12-05 15:01:14 +02:00
Lauri Vasama
adcbdf4524
Add clift::getPrimitiveIntegerType
2025-12-05 15:01:14 +02:00
Lauri Vasama
d5d1734f5c
Add expression usage helpers
2025-11-12 15:28:54 +02:00
Lauri Vasama
cee099c2df
Rename Clift GoToOp to GotoOp
2025-11-12 15:28:54 +02:00
Lauri Vasama
220439dfce
Remove FunctionType::getCliftFunctionType
...
Change FunctionType::getFunctionType to return clift::FunctionType
instead of clift::ValueType.
2025-11-12 15:28:54 +02:00
Lauri Vasama
68436c58d6
StatementOpInterface::isIndirectlyNoFallthrough
2025-11-12 15:28:54 +02:00
Lauri Vasama
121f408bdd
More Clift op helpers
2025-11-12 15:28:54 +02:00
Lauri Vasama
c09862516d
Make Clift operations commutative
2025-11-12 15:28:54 +02:00
Lauri Vasama
a912df4c06
Fix loop label related issues
2025-11-12 15:28:54 +02:00
Lauri Vasama
02d3c82887
Add support for Clift for-loop initializers
2025-10-21 09:15:40 +02:00
Lauri Vasama
bf5adce413
Overhaul Clift loop syntax, add break/continue
2025-10-21 09:15:40 +02:00
Lauri Vasama
16589c935c
Add BranchOpInterface for if and switch
2025-10-21 09:15:40 +02:00
Lauri Vasama
3d9df0f50d
Add then marker for Clift if-statement assembly
2025-10-21 09:15:40 +02:00