1. A method for control flow on a heterogeneous computer system, the method comprising: a first processor of a first type requesting a first kernel be executed on a second processor of a second and different type to process first work items; the second processor executing the first kernel to process the first work items, wherein the first kernel generates second work items; the second processor determining to execute the generated second work items; and the second processor executing a second kernel to process the generated second work items.