summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJacob <jacob.denbeaux@shopify.com>2026-02-06 22:27:20 -0500
committerGitHub <noreply@github.com>2026-02-07 03:27:20 +0000
commit96d00640978d78ede1f5b2b63e422cfd1e849891 (patch)
tree93a992991092fb8672f3811b3ea7ea514ecee84c
parentff55280320efd350432e2862cc52e4d84f893936 (diff)
ZJIT: Fix graphviz generation (#16053)
Print to a file and fix a bug.
-rw-r--r--zjit/src/hir_effect/gen_hir_effect.rb21
1 files changed, 13 insertions, 8 deletions
diff --git a/zjit/src/hir_effect/gen_hir_effect.rb b/zjit/src/hir_effect/gen_hir_effect.rb
index 51cc712feb..5d13ebafa2 100644
--- a/zjit/src/hir_effect/gen_hir_effect.rb
+++ b/zjit/src/hir_effect/gen_hir_effect.rb
@@ -24,20 +24,20 @@ class Effect
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 @@ $bits.keys.sort.map {|effect_name|
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
+