If the code could be parallelized it would already have happened. The parallelizer is ``greedy''. It goes parallel the moment it sees a possibility for doing so.
Now we create two entries in the tasks array. Task 0 and task
1. We move all code in
into task 0. This
code is something that succeeds the instruction that we depend upon,
so we put it in a task for itself. Finally we move the current
instruction C into task 1.
This is optimal. All the code in
has
sequential dependencies, so we cannot split that up further. If it
did not have sequential dependencies it would already be parallel.