Module Expr Str ImportFrom alias alias ClassDef bases NameLoad body FunctionDef arguments args NameParam defaults body Assign AttributeStore NameLoad attr NameLoad decorator_list FunctionDef arguments args NameParam NameParam defaults body If CompareIs NameLoad NameLoad body Return If Call NameLoad NameLoad AttributeLoad AttributeLoad NameLoad attr attr body Expr Call Call NameLoad NameLoad AttributeLoad AttributeLoad NameLoad attr attr NameLoad Return For NameStore AttributeLoad NameLoad attr body Expr Call AttributeLoad NameLoad attr Call NameLoad NameLoad NameLoad decorator_list FunctionDef arguments args NameParam NameParam defaults body Expr Call AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr AttributeLoad NameLoad attr decorator_list FunctionDef arguments args NameParam NameParam defaults body For NameStore AttributeLoad NameLoad attr body Expr Call AttributeLoad NameLoad attr NameLoad decorator_list FunctionDef arguments args NameParam NameParam defaults body Expr Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr decorator_list FunctionDef arguments args NameParam NameParam defaults body Expr Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr decorator_list FunctionDef arguments args NameParam NameParam defaults body Expr Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr decorator_list FunctionDef arguments args NameParam NameParam defaults body Expr Call AttributeLoad NameLoad attr AttributeLoad AttributeLoad NameLoad attr attr decorator_list FunctionDef arguments args NameParam NameParam defaults body Expr Call AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr AttributeLoad AttributeLoad NameLoad attr attr decorator_list FunctionDef arguments args NameParam NameParam defaults body If Call NameLoad AttributeLoad NameLoad attr AttributeLoad NameLoad attr body For NameStore AttributeLoad AttributeLoad NameLoad attr attr body If Call NameLoad NameLoad AttributeLoad NameLoad attr body Expr Call AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr AttributeLoad NameLoad attr orelse Expr Call AttributeLoad NameLoad attr NameLoad orelse If Call NameLoad AttributeLoad NameLoad attr AttributeLoad NameLoad attr body Expr Call AttributeLoad SubscriptLoad AttributeLoad NameLoad attr Index Num attr AttributeLoad AttributeLoad NameLoad attr attr orelse Expr Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr Expr Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr decorator_list FunctionDef arguments args NameParam NameParam defaults body Expr Call AttributeLoad NameLoad attr AttributeLoad NameLoad attr For NameStore AttributeLoad NameLoad attr body Expr Call AttributeLoad NameLoad attr NameLoad decorator_list FunctionDef arguments args NameParam NameParam defaults body Expr Call AttributeLoad NameLoad attr SubscriptLoad AttributeLoad NameLoad attr Index Num Expr Call AttributeLoad NameLoad attr SubscriptLoad AttributeLoad NameLoad attr Index Num decorator_list decorator_list FunctionDef arguments args NameParam defaults body Assign NameStore Call NameLoad For TupleStore NameStore NameStore AttributeLoad NameLoad attr body Assign NameStore AttributeLoad AttributeLoad NameLoad attr attr For NameStore AttributeLoad NameLoad attr body Assign NameStore AttributeLoad AttributeLoad NameLoad attr attr Assign NameStore Call AttributeLoad Call AttributeLoad NameLoad attr NameLoad Dict attr Str Dict Assign SubscriptStore NameLoad Index NameLoad Dict Num NameLoad Assign NameStore Call NameLoad Call AttributeLoad NameLoad attr AttributeLoad AttributeLoad NameLoad attr attr For TupleStore NameStore NameStore NameLoad body For TupleStore NameStore NameStore Call NameLoad AttributeLoad NameLoad attr body Assign AttributeStore NameLoad attr TupleLoad Call NameLoad Call NameLoad Expr Call AttributeLoad NameLoad attr NameLoad For NameStore SubscriptLoad AttributeLoad NameLoad attr Index Num body Assign NameStore Call AttributeLoad Call AttributeLoad NameLoad attr NameLoad Dict attr Str Dict Expr Call AttributeLoad Call AttributeLoad NameLoad attr NameLoad Call NameLoad attr NameLoad For NameStore SubscriptLoad AttributeLoad NameLoad attr Index Num body Assign NameStore Call AttributeLoad Call AttributeLoad NameLoad attr NameLoad Dict attr Str Dict Assign SubscriptStore Call AttributeLoad NameLoad attr NameLoad Dict Index NameLoad NameLoad decorator_list
N/A N/A The liveness pass collects data on uses of and assignments to variables,
and stores it in the CFG's ``Block`` objects for easy reference in further
passes.

Because local types are inferred and
because no variable declarations are required,
finding the assignments that dominate any given use of a variable
isn't completely trivial.
While we can simply store pointers on the stack in many cases
during code generation in order to leave analysis to LLVM,
all the analyses we have to do
still need somewhat accurate data on variable usage.
 N/A ast util Analyzer N/A object N/A __init__ N/A N/A self N/A N/A N/A N/A self vars None N/A visit N/A N/A self node N/A N/A N/A N/A node None N/A N/A N/A N/A hasattr self N/A N/A node __class__ __name__ N/A N/A N/A N/A getattr self N/A N/A node __class__ __name__ node N/A N/A k N/A node fields N/A N/A N/A N/A self visit N/A getattr node k N/A Name N/A N/A self node N/A N/A N/A N/A N/A N/A N/A self vars N/A 0 add N/A node name N/A Tuple N/A N/A self node N/A N/A N/A n N/A node values N/A N/A N/A N/A self visit n N/A Attrib N/A N/A self node N/A N/A N/A N/A N/A self visit N/A node obj N/A SetAttr N/A N/A self node N/A N/A N/A N/A N/A self visit N/A node obj N/A As N/A N/A self node N/A N/A N/A N/A N/A self visit N/A node left N/A LoopSetup N/A N/A self node N/A N/A N/A N/A N/A self visit N/A N/A node loop source N/A LoopHeader N/A N/A self node N/A N/A N/A N/A N/A N/A N/A self vars N/A 1 add N/A N/A node lvar name N/A Assign N/A N/A self node N/A N/A N/A N/A isinstance N/A node left N/A ast Tuple N/A N/A n N/A N/A node left values N/A N/A N/A isinstance n N/A ast Name N/A N/A N/A N/A N/A N/A self vars N/A 1 add N/A n name N/A N/A N/A N/A self visit n N/A N/A N/A isinstance N/A node left N/A ast Name N/A N/A N/A N/A N/A N/A self vars N/A 1 add N/A N/A node left name N/A N/A N/A N/A self visit N/A node left N/A N/A N/A self visit N/A node right N/A Call N/A N/A self node N/A N/A N/A N/A N/A self visit N/A node name N/A arg N/A node args N/A N/A N/A N/A self visit arg N/A Phi N/A N/A self node N/A N/A N/A N/A N/A self visit N/A N/A node left N/A 1 N/A N/A N/A self visit N/A N/A node right N/A 1 N/A N/A liveness N/A N/A mod N/A N/A N/A analyzer N/A Analyzer N/A N/A fname code N/A mod code N/A N/A vars N/A N/A code flow vars N/A arg N/A code args N/A N/A name N/A N/A arg name name N/A sets N/A N/A N/A N/A vars setdefault name N/A setdefault sets N/A N/A N/A sets N/A None N/A -1 None N/A blocks N/A sorted N/A N/A util items N/A N/A code flow blocks N/A N/A id bl blocks N/A N/A N/A i step N/A enumerate N/A bl steps N/A N/A N/A analyzer vars N/A N/A set N/A set N/A N/A N/A analyzer visit step N/A name N/A N/A analyzer vars N/A 0 N/A N/A uses N/A N/A N/A N/A vars setdefault name N/A setdefault uses N/A N/A N/A N/A N/A N/A uses setdefault id N/A set add i N/A name N/A N/A analyzer vars N/A 1 N/A N/A sets N/A N/A N/A N/A vars setdefault name N/A setdefault sets N/A N/A N/A N/A N/A sets setdefault id N/A N/A i None N/A