'Iterate over the payload\'s entries.  Yield a SetLoop.'

@contextlib.contextmanager
def _iterate(self, start=None):

    context = self._context
    builder = self._builder
    intp_t = context.get_value_type(types.intp)
    one = ir.Constant(intp_t, 1)
    size = builder.add(self.mask, one)
    with cgutils.for_range(builder, size, start=start) as range_loop:
        entry = self.get_entry(range_loop.index)
        is_used = is_hash_used(context, builder, entry.hash)
        with builder.if_then(is_used):
            loop = SetLoop(index=range_loop.index, entry=entry, do_break=range_loop.do_break)
            (yield loop)
