fixed liveness analysis