@@ -415,15 +415,15 @@ function find_ssavalue_uses(body::Vector{Any}, nvals::Int)
415415 if isa (e, SSAValue)
416416 push! (uses[e. id], line)
417417 elseif isa (e, Expr)
418- find_ssavalue_uses (e, uses, line)
418+ find_ssavalue_uses! (e, uses, line)
419419 elseif isa (e, PhiNode)
420- find_ssavalue_uses (e, uses, line)
420+ find_ssavalue_uses! (e, uses, line)
421421 end
422422 end
423423 return uses
424424end
425425
426- function find_ssavalue_uses (e:: Expr , uses:: Vector{BitSet} , line:: Int )
426+ function find_ssavalue_uses! (e:: Expr , uses:: Vector{BitSet} , line:: Int )
427427 head = e. head
428428 is_meta_expr_head (head) && return
429429 skiparg = (head === :(= ))
@@ -433,13 +433,16 @@ function find_ssavalue_uses(e::Expr, uses::Vector{BitSet}, line::Int)
433433 elseif isa (a, SSAValue)
434434 push! (uses[a. id], line)
435435 elseif isa (a, Expr)
436- find_ssavalue_uses (a, uses, line)
436+ find_ssavalue_uses! (a, uses, line)
437437 end
438438 end
439439end
440440
441- function find_ssavalue_uses (e:: PhiNode , uses:: Vector{BitSet} , line:: Int )
442- for val in e. values
441+ function find_ssavalue_uses! (e:: PhiNode , uses:: Vector{BitSet} , line:: Int )
442+ values = e. values
443+ for i = 1 : length (values)
444+ isassigned (values) || continue
445+ val = values[i]
443446 if isa (val, SSAValue)
444447 push! (uses[val. id], line)
445448 end
0 commit comments