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)ifclass(op)== instruction and isDead(op){ worklist.insert(op)}}}}