A loop prelude for-each loops computes, derefs, & dealiases the given initializer, possibly allocs space for the named-binding, deconstructs the tuples & generates a binding, & saves an initial index. The loop-header for such loops meanwhile branches out when we reach the end of the array, generates a store & possibly load for the loop variable, & increments the index. The "afterthought" also does an increment.
As for iterator-loops...
3/5?