Commit e47b507
[mlir][EmitC] Model lvalues as a type in EmitC (#91475)
This adds an `emitc.lvalue` type which models assignable lvlaues in the
type system. Operations modifying memory are restricted to this type
accordingly.
See also the discussion on
[discourse](https://discourse.llvm.org/t/rfc-separate-variables-from-ssa-values-in-emitc/75224/9).
The most notable changes are as follows.
- `emitc.variable` and `emitc.global` ops are restricted to return
`emitc.array` or `emitc.lvalue` types
- Taking the address of a value is restricted to operands with lvalue
type
- Conversion from lvalues into SSA values is done with the new
`emitc.load` op
- The var operand of the `emitc.assign` op is restricted to lvalue type
- The result of the `emitc.subscript` and `emitc.get_global` ops is a
lvalue type
- The operands and results of the `emitc.member` and
`emitc.member_of_ptr` ops are restricted to lvalue types
---------
Co-authored-by: Matthias Gehre <[email protected]>1 parent 3c53745 commit e47b507
File tree
27 files changed
+810
-382
lines changed- mlir
- include/mlir/Dialect/EmitC/IR
- lib
- Conversion
- MemRefToEmitC
- SCFToEmitC
- Dialect/EmitC/IR
- Target/Cpp
- test
- Conversion
- MemRefToEmitC
- SCFToEmitC
- Dialect/EmitC
- Target/Cpp
27 files changed
+810
-382
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
88 | 88 | | |
89 | 89 | | |
90 | 90 | | |
91 | | - | |
| 91 | + | |
92 | 92 | | |
93 | 93 | | |
94 | 94 | | |
95 | | - | |
| 95 | + | |
96 | 96 | | |
97 | 97 | | |
98 | 98 | | |
99 | 99 | | |
100 | 100 | | |
101 | | - | |
| 101 | + | |
102 | 102 | | |
103 | 103 | | |
104 | 104 | | |
| |||
836 | 836 | | |
837 | 837 | | |
838 | 838 | | |
| 839 | + | |
| 840 | + | |
| 841 | + | |
| 842 | + | |
| 843 | + | |
| 844 | + | |
| 845 | + | |
| 846 | + | |
| 847 | + | |
| 848 | + | |
| 849 | + | |
| 850 | + | |
| 851 | + | |
| 852 | + | |
| 853 | + | |
| 854 | + | |
| 855 | + | |
| 856 | + | |
| 857 | + | |
| 858 | + | |
| 859 | + | |
| 860 | + | |
| 861 | + | |
| 862 | + | |
| 863 | + | |
| 864 | + | |
| 865 | + | |
| 866 | + | |
| 867 | + | |
839 | 868 | | |
840 | 869 | | |
841 | 870 | | |
| |||
918 | 947 | | |
919 | 948 | | |
920 | 949 | | |
921 | | - | |
| 950 | + | |
922 | 951 | | |
923 | 952 | | |
924 | 953 | | |
925 | 954 | | |
926 | 955 | | |
927 | | - | |
| 956 | + | |
928 | 957 | | |
929 | | - | |
| 958 | + | |
930 | 959 | | |
931 | 960 | | |
932 | 961 | | |
| |||
939 | 968 | | |
940 | 969 | | |
941 | 970 | | |
942 | | - | |
| 971 | + | |
| 972 | + | |
943 | 973 | | |
944 | 974 | | |
945 | 975 | | |
946 | 976 | | |
947 | 977 | | |
948 | | - | |
| 978 | + | |
949 | 979 | | |
950 | | - | |
| 980 | + | |
951 | 981 | | |
952 | 982 | | |
953 | 983 | | |
| |||
1031 | 1061 | | |
1032 | 1062 | | |
1033 | 1063 | | |
1034 | | - | |
| 1064 | + | |
1035 | 1065 | | |
1036 | 1066 | | |
1037 | 1067 | | |
1038 | | - | |
| 1068 | + | |
1039 | 1069 | | |
1040 | 1070 | | |
1041 | 1071 | | |
1042 | 1072 | | |
1043 | 1073 | | |
1044 | 1074 | | |
1045 | | - | |
1046 | | - | |
1047 | | - | |
1048 | | - | |
| 1075 | + | |
| 1076 | + | |
| 1077 | + | |
| 1078 | + | |
1049 | 1079 | | |
1050 | 1080 | | |
1051 | 1081 | | |
1052 | 1082 | | |
1053 | 1083 | | |
1054 | 1084 | | |
1055 | | - | |
| 1085 | + | |
| 1086 | + | |
1056 | 1087 | | |
1057 | 1088 | | |
1058 | 1089 | | |
| |||
1118 | 1149 | | |
1119 | 1150 | | |
1120 | 1151 | | |
| 1152 | + | |
1121 | 1153 | | |
1122 | 1154 | | |
1123 | 1155 | | |
1124 | 1156 | | |
1125 | | - | |
| 1157 | + | |
1126 | 1158 | | |
1127 | 1159 | | |
1128 | 1160 | | |
| |||
1172 | 1204 | | |
1173 | 1205 | | |
1174 | 1206 | | |
1175 | | - | |
| 1207 | + | |
1176 | 1208 | | |
1177 | 1209 | | |
1178 | 1210 | | |
1179 | | - | |
| 1211 | + | |
1180 | 1212 | | |
1181 | 1213 | | |
1182 | 1214 | | |
1183 | | - | |
| 1215 | + | |
| 1216 | + | |
| 1217 | + | |
1184 | 1218 | | |
1185 | 1219 | | |
1186 | 1220 | | |
| |||
1276 | 1310 | | |
1277 | 1311 | | |
1278 | 1312 | | |
1279 | | - | |
1280 | | - | |
| 1313 | + | |
| 1314 | + | |
| 1315 | + | |
| 1316 | + | |
1281 | 1317 | | |
1282 | 1318 | | |
1283 | 1319 | | |
| |||
1286 | 1322 | | |
1287 | 1323 | | |
1288 | 1324 | | |
1289 | | - | |
| 1325 | + | |
1290 | 1326 | | |
1291 | 1327 | | |
1292 | 1328 | | |
1293 | | - | |
| 1329 | + | |
| 1330 | + | |
| 1331 | + | |
| 1332 | + | |
| 1333 | + | |
| 1334 | + | |
| 1335 | + | |
1294 | 1336 | | |
1295 | 1337 | | |
1296 | | - | |
1297 | | - | |
| 1338 | + | |
| 1339 | + | |
| 1340 | + | |
| 1341 | + | |
| 1342 | + | |
| 1343 | + | |
| 1344 | + | |
1298 | 1345 | | |
1299 | 1346 | | |
1300 | 1347 | | |
| |||
1338 | 1385 | | |
1339 | 1386 | | |
1340 | 1387 | | |
1341 | | - | |
| 1388 | + | |
1342 | 1389 | | |
1343 | 1390 | | |
1344 | 1391 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
84 | 84 | | |
85 | 85 | | |
86 | 86 | | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
87 | 104 | | |
88 | 105 | | |
89 | 106 | | |
| |||
129 | 146 | | |
130 | 147 | | |
131 | 148 | | |
| 149 | + | |
132 | 150 | | |
133 | 151 | | |
134 | 152 | | |
| |||
158 | 176 | | |
159 | 177 | | |
160 | 178 | | |
| 179 | + | |
| 180 | + | |
| 181 | + | |
| 182 | + | |
| 183 | + | |
| 184 | + | |
| 185 | + | |
| 186 | + | |
| 187 | + | |
161 | 188 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
137 | 137 | | |
138 | 138 | | |
139 | 139 | | |
140 | | - | |
141 | | - | |
142 | | - | |
143 | | - | |
144 | | - | |
145 | | - | |
| 140 | + | |
146 | 141 | | |
147 | 142 | | |
148 | 143 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
63 | 63 | | |
64 | 64 | | |
65 | 65 | | |
| 66 | + | |
66 | 67 | | |
67 | 68 | | |
68 | | - | |
| 69 | + | |
69 | 70 | | |
70 | 71 | | |
71 | 72 | | |
| |||
80 | 81 | | |
81 | 82 | | |
82 | 83 | | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
83 | 92 | | |
84 | 93 | | |
85 | 94 | | |
| |||
126 | 135 | | |
127 | 136 | | |
128 | 137 | | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
129 | 146 | | |
130 | 147 | | |
131 | | - | |
| 148 | + | |
132 | 149 | | |
133 | 150 | | |
134 | 151 | | |
135 | 152 | | |
136 | 153 | | |
137 | | - | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
138 | 158 | | |
139 | 159 | | |
140 | 160 | | |
| |||
174 | 194 | | |
175 | 195 | | |
176 | 196 | | |
177 | | - | |
| 197 | + | |
| 198 | + | |
| 199 | + | |
| 200 | + | |
178 | 201 | | |
179 | 202 | | |
180 | 203 | | |
| |||
212 | 235 | | |
213 | 236 | | |
214 | 237 | | |
215 | | - | |
| 238 | + | |
| 239 | + | |
| 240 | + | |
| 241 | + | |
216 | 242 | | |
217 | 243 | | |
218 | 244 | | |
| |||
0 commit comments