- insert_unique(declared_ids, &node, Declaration(id, type_id));
+ declared_ids.insert(make_pair(&node, Declaration(id, type_id)));
+ return id;
+}
+
+SpirVGenerator::Id SpirVGenerator::allocate_forward_id(Node &node)
+{
+ map<Node *, Declaration>::iterator i = declared_ids.find(&node);
+ if(i!=declared_ids.end())
+ return i->second.id;
+
+ Id id = next_id++;
+ declared_ids.insert(make_pair(&node, Declaration(id, 0)));