worklist = {} for bb in func{ for inst in bb { if (inst not in worklist) worklist.push(inst) } }
while(!worklist.empty()) { inst = worklist.pop() if( inst is pure && inst.num_users()== 0 ){ // dead instruction for(op in inst.operands()){ inst.remove(op)
if class(op) == instruction and isDead(op) { worklist.insert(op) } } } }