Lines Matching defs:elem
998 static struct rnndelem *copydelem (struct rnndelem *elem, char *file) {
1000 res->type = elem->type;
1001 res->name = elem->name;
1002 res->width = elem->width;
1003 res->access = elem->access;
1004 res->offset = elem->offset;
1005 res->length = elem->length;
1006 res->stride = elem->stride;
1007 res->varinfo = elem->varinfo;
1009 copytypeinfo(&res->typeinfo, &elem->typeinfo, file);
1011 for (i = 0; i < elem->subelemsnum; i++)
1012 ADDARRAY(res->subelems, copydelem(elem->subelems[i], file));
1013 for (i = 0; i < elem->offsetsnum; i++)
1014 ADDARRAY(res->offsets, elem->offsets[i]);
1243 static void prepdelem(struct rnndb *db, struct rnndelem *elem, char *prefix, struct rnnvarinfo *parvi, int width) {
1244 if (elem->type == RNN_ETYPE_USE_GROUP) {
1248 if (!strcmp(db->groups[i]->name, elem->name)) {
1254 ADDARRAY(elem->subelems, copydelem(gr->subelems[i], elem->file));
1256 rnn_err(db, "group %s not found!\n", elem->name);
1258 elem->type = RNN_ETYPE_STRIPE;
1259 elem->length = 1;
1260 elem->name = 0;
1262 if (elem->name)
1263 elem->fullname = catstr(prefix, elem->name);
1264 prepvarinfo (db, elem->fullname?elem->fullname:prefix, &elem->varinfo, parvi);
1265 if (elem->varinfo.dead)
1267 if (elem->length != 1 && !elem->stride) {
1268 if (elem->type != RNN_ETYPE_REG) {
1269 rnn_err(db, "%s has non-1 length, but no stride!\n", elem->fullname);
1271 elem->stride = elem->width/width;
1274 preptypeinfo(db, &elem->typeinfo, elem->name?elem->fullname:prefix, &elem->varinfo, elem->file);
1277 for (i = 0; i < elem->subelemsnum; i++)
1278 prepdelem(db, elem->subelems[i], elem->name?elem->fullname:prefix, &elem->varinfo, width);
1279 if (elem->varinfo.prefix && elem->name)
1280 elem->fullname = catstr(elem->varinfo.prefix, elem->fullname);