We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent 47b8477 commit 3fb1de7Copy full SHA for 3fb1de7
compiler/lib/structure.ml
@@ -42,10 +42,20 @@ let is_forward g pc pc' = Hashtbl.find g.block_order pc < Hashtbl.find g.block_o
42
let is_merge_node' block_order preds pc =
43
let s = try Hashtbl.find preds pc with Not_found -> Addr.Set.empty in
44
let o = Hashtbl.find block_order pc in
45
- let n =
46
- Addr.Set.fold (fun pc' n -> if Hashtbl.find block_order pc' < o then n + 1 else n) s 0
47
- in
48
- n > 1
+ try
+ ignore
+ (Addr.Set.fold
+ (fun pc' found_first ->
49
+ if Hashtbl.find block_order pc' < o
50
+ then
51
+ if found_first
52
+ then (* Exit early to avoid quadratic behavior *) raise Exit
53
+ else true
54
+ else found_first)
55
+ s
56
+ false);
57
+ false
58
+ with Exit -> true
59
60
let empty_body body =
61
List.for_all
0 commit comments