From 79363f7c8e41b14c8c2b6bab388d476cb9ea7b87 Mon Sep 17 00:00:00 2001 From: Shuhei Kadowaki Date: Tue, 10 Sep 2024 18:47:05 +0900 Subject: [PATCH] remove `add_loops!` --- src/codeedges.jl | 25 ------------------------- 1 file changed, 25 deletions(-) diff --git a/src/codeedges.jl b/src/codeedges.jl index eb1cfd6..8a1ec0b 100644 --- a/src/codeedges.jl +++ b/src/codeedges.jl @@ -649,7 +649,6 @@ function lines_required!(isrequired::AbstractVector{Bool}, objs, src::CodeInfo, changed |= add_named_dependencies!(isrequired, edges, objs, norequire) # Add control-flow - changed |= add_loops!(isrequired, cfg) changed |= add_control_flow!(isrequired, src, cfg, postdomtree) # So far, everything is generic graph traversal. Now we add some domain-specific information @@ -731,30 +730,6 @@ end ## Add control-flow -# Mark loops that contain evaluated statements -function add_loops!(isrequired, cfg) - changed = false - for (ibb, bb) in enumerate(cfg.blocks) - needed = false - for ibbp in bb.preds - # Is there a backwards-pointing predecessor, and if so are there any required statements between the two? - ibbp > ibb || continue # not a loop-block predecessor - r, rp = rng(bb), rng(cfg.blocks[ibbp]) - r = first(r):first(rp)-1 - needed |= any(view(isrequired, r)) - end - if needed - # Mark the final statement of all predecessors - for ibbp in bb.preds - rp = rng(cfg.blocks[ibbp]) - changed |= !isrequired[last(rp)] - isrequired[last(rp)] = true - end - end - end - return changed -end - using Core: CodeInfo using Core.Compiler: CFG, BasicBlock, compute_basic_blocks