@@ -415,15 +415,15 @@ function find_ssavalue_uses(body::Vector{Any}, nvals::Int)
415
415
if isa (e, SSAValue)
416
416
push! (uses[e. id], line)
417
417
elseif isa (e, Expr)
418
- find_ssavalue_uses (e, uses, line)
418
+ find_ssavalue_uses! (e, uses, line)
419
419
elseif isa (e, PhiNode)
420
- find_ssavalue_uses (e, uses, line)
420
+ find_ssavalue_uses! (e, uses, line)
421
421
end
422
422
end
423
423
return uses
424
424
end
425
425
426
- function find_ssavalue_uses (e:: Expr , uses:: Vector{BitSet} , line:: Int )
426
+ function find_ssavalue_uses! (e:: Expr , uses:: Vector{BitSet} , line:: Int )
427
427
head = e. head
428
428
is_meta_expr_head (head) && return
429
429
skiparg = (head === :(= ))
@@ -433,13 +433,16 @@ function find_ssavalue_uses(e::Expr, uses::Vector{BitSet}, line::Int)
433
433
elseif isa (a, SSAValue)
434
434
push! (uses[a. id], line)
435
435
elseif isa (a, Expr)
436
- find_ssavalue_uses (a, uses, line)
436
+ find_ssavalue_uses! (a, uses, line)
437
437
end
438
438
end
439
439
end
440
440
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]
443
446
if isa (val, SSAValue)
444
447
push! (uses[val. id], line)
445
448
end
0 commit comments