+ std::string GetNewAnonymousName();
+
+ // IterRecord: Map an iterator name to a value.
+ struct IterRecord {
+ VarInit *IterVar;
+ Init *IterValue;
+ IterRecord(VarInit *Var, Init *Val) : IterVar(Var), IterValue(Val) {}
+ };
+
+ // IterSet: The set of all iterator values at some point in the
+ // iteration space.
+ typedef std::vector<IterRecord> IterSet;
+
+ bool ProcessForeachDefs(Record *CurRec, SMLoc Loc);
+ bool ProcessForeachDefs(Record *CurRec, SMLoc Loc, IterSet &IterVals);
+