Task task = stack.pop();
if (liveVars[task.block].get(task.var) || !dominates(definitions[task.var], task.block)) {
continue;
}
liveVars[task.block].set(task.var, true);
for (int pred : cfg.incomingEdges(task.block)) {
Task nextTask = new Task();
nextTask.block = pred;
nextTask.var = task.var;
stack.push(nextTask);
}