diff --git a/zjit/src/hir_effect/gen_hir_effect.rb b/zjit/src/hir_effect/gen_hir_effect.rb index 51cc712febe4d1..5d13ebafa2e185 100644 --- a/zjit/src/hir_effect/gen_hir_effect.rb +++ b/zjit/src/hir_effect/gen_hir_effect.rb @@ -24,20 +24,20 @@ def subeffect name end # Helper to generate graphviz. -def to_graphviz_rec effect +def to_graphviz_rec effect, f effect.subeffects.each {|subeffect| - puts effect.name + "->" + subeffect.name + ";" + f.puts effect.name + "->" + subeffect.name + ";" } - effect.subeffect.each {|subeffect| - to_graphviz_rec subeffect + effect.subeffects.each {|subeffect| + to_graphviz_rec subeffect, f } end # Generate graphviz. -def to_graphviz effect - puts "digraph G {" - to_graphviz_rec effect - puts "}" +def to_graphviz effect, f + f.puts "digraph G {" + to_graphviz_rec effect, f + f.puts "}" end # ===== Start generating the effect DAG ===== @@ -117,3 +117,8 @@ def to_graphviz effect puts " pub const #{effect_name}: Effect = Effect::promote(abstract_heaps::#{effect_name});" } puts "}" + +File.open("zjit_effects.dot", "w") do |f| + to_graphviz(any, f) +end +