@@ -58,19 +58,34 @@ def fir_FortranVariableFlagsAttr : fir_Attr<"FortranVariableFlags"> {
58
58
"::fir::FortranVariableFlagsAttr::get($_builder.getContext(), $0)";
59
59
}
60
60
61
- def CUDAconstant : I32EnumAttrCase<"Constant", 0, "constant">;
62
- def CUDAdevice : I32EnumAttrCase<"Device", 1, "device">;
63
- def CUDAmanaged : I32EnumAttrCase<"Managed", 2, "managed">;
64
- def CUDApinned : I32EnumAttrCase<"Pinned", 3, "pinned">;
65
- def CUDAshared : I32EnumAttrCase<"Shared", 4, "shared">;
66
- def CUDAunified : I32EnumAttrCase<"Unified", 5, "unified">;
67
- // Texture is omitted since it is obsolete and rejected by semantic.
61
+ def fir_BoxFieldAttr : I32EnumAttr<
62
+ "BoxFieldAttr", "",
63
+ [
64
+ I32EnumAttrCase<"base_addr", 0>,
65
+ I32EnumAttrCase<"derived_type", 1>
66
+ ]> {
67
+ let cppNamespace = "fir";
68
+ }
69
+
70
+ // mlir::SideEffects::Resource for modelling operations which add debugging information
71
+ def DebuggingResource : Resource<"::fir::DebuggingResource">;
72
+
73
+ //===----------------------------------------------------------------------===//
74
+ // CUDA Fortran specific attributes
75
+ //===----------------------------------------------------------------------===//
68
76
69
77
def fir_CUDADataAttribute : I32EnumAttr<
70
78
"CUDADataAttribute",
71
79
"CUDA Fortran variable attributes",
72
- [CUDAconstant, CUDAdevice, CUDAmanaged, CUDApinned, CUDAshared,
73
- CUDAunified]> {
80
+ [
81
+ I32EnumAttrCase<"Constant", 0, "constant">,
82
+ I32EnumAttrCase<"Device", 1, "device">,
83
+ I32EnumAttrCase<"Managed", 2, "managed">,
84
+ I32EnumAttrCase<"Pinned", 3, "pinned">,
85
+ I32EnumAttrCase<"Shared", 4, "shared">,
86
+ I32EnumAttrCase<"Unified", 5, "unified">,
87
+ // Texture is omitted since it is obsolete and rejected by semantic.
88
+ ]> {
74
89
let genSpecializedAttr = 0;
75
90
let cppNamespace = "::fir";
76
91
}
@@ -80,17 +95,22 @@ def fir_CUDADataAttributeAttr :
80
95
let assemblyFormat = [{ ```<` $value `>` }];
81
96
}
82
97
83
- def fir_BoxFieldAttr : I32EnumAttr<
84
- "BoxFieldAttr ", "",
98
+ def fir_CUDAProcAttribute : I32EnumAttr<
99
+ "CUDAProcAttribute ", "CUDA Fortran procedure attributes ",
85
100
[
86
- I32EnumAttrCase<"base_addr", 0>,
87
- I32EnumAttrCase<"derived_type", 1>
101
+ I32EnumAttrCase<"Host", 0, "host">,
102
+ I32EnumAttrCase<"Device", 1, "device">,
103
+ I32EnumAttrCase<"HostDevice", 2, "host_device">,
104
+ I32EnumAttrCase<"Global", 3, "global">,
105
+ I32EnumAttrCase<"GridGlobal", 4, "grid_global">,
88
106
]> {
89
- let cppNamespace = "fir";
107
+ let genSpecializedAttr = 0;
108
+ let cppNamespace = "::fir";
90
109
}
91
110
92
-
93
- // mlir::SideEffects::Resource for modelling operations which add debugging information
94
- def DebuggingResource : Resource<"::fir::DebuggingResource">;
111
+ def fir_CUDAProcAttributeAttr :
112
+ EnumAttr<fir_Dialect, fir_CUDAProcAttribute, "cuda_proc"> {
113
+ let assemblyFormat = [{ ```<` $value `>` }];
114
+ }
95
115
96
116
#endif // FIR_DIALECT_FIR_ATTRS
0 commit comments