This double loop is complex. Maybe you could rewrite it as:
```
dead_vars = [var for var,deps in self.use.items() if name in deps] 
self.dead.update(dead_vars)
for var in dead_vars:
  dead_aliases = ...
  self.dead.update(dead_aliases)
```