digraph ipu_stack_package_partition {
  graph [rankdir=LR, bgcolor="white", fontname="DejaVu Sans", fontsize=17,
         label="ipu_codegen::graph — package build/run detail", labelloc=t, labeljust=l, pad=0.2, nodesep=0.3, ranksep=0.75, newrank=true, overlap=false, splines=polyline, outputorder=edgesfirst];
  node [fontname="DejaVu Sans", fontsize=9, style="rounded,filled", color="#52606d", penwidth=0.8];
  edge [fontname="DejaVu Sans", fontsize=7, color="#52606d", arrowsize=0.55, penwidth=0.8];
  subgraph cluster_primary { label="primary nodes"; color="#d9e8fb"; style="rounded";
    f0 [label="ipu_codegen::graph::AttentionScale::as_value", shape=box, fillcolor="#d9e8fb", color="#2166ac", tooltip="pub fn as_value(self) -> Option<f32> — crates/ipu-codegen/src/graph.rs:158"];
    f1 [label="ipu_codegen::graph::ComputeGraph::inputs", shape=box, fillcolor="#d9e8fb", color="#2166ac", tooltip="pub fn inputs(&self) -> &[GraphInput] — crates/ipu-codegen/src/graph.rs:253"];
    f3 [label="ipu_codegen::graph::ComputeGraph::operations", shape=box, fillcolor="#d9e8fb", color="#2166ac", tooltip="pub fn operations(&self) -> &[Operation] — crates/ipu-codegen/src/graph.rs:261"];
    f4 [label="ipu_codegen::graph::ComputeGraph::outputs", shape=box, fillcolor="#d9e8fb", color="#2166ac", tooltip="pub fn outputs(&self) -> &[ValueId] — crates/ipu-codegen/src/graph.rs:265"];
    f2 [label="ipu_codegen::graph::ComputeGraph::sequences", shape=box, fillcolor="#d9e8fb", color="#2166ac", tooltip="pub fn sequences(&self) -> &[ValueSequence] — crates/ipu-codegen/src/graph.rs:257"];
    f5 [label="ipu_codegen::graph::ComputeGraph::value_shapes", shape=box, fillcolor="#d9e8fb", color="#2166ac", tooltip="pub fn value_shapes(&self) -> &BTreeMap<ValueId, TensorShape> — crates/ipu-codegen/src/graph.rs:273"];
    f8 [label="ipu_codegen::graph::OperationId::index", shape=box, fillcolor="#d9e8fb", color="#2166ac", tooltip="pub const fn index(self) -> u32 — crates/ipu-codegen/src/graph.rs:57"];
    f7 [label="ipu_codegen::graph::TensorShape::elements", shape=box, fillcolor="#d9e8fb", color="#2166ac", tooltip="pub fn elements(&self) -> u64 — crates/ipu-codegen/src/graph.rs:46"];
    f6 [label="ipu_codegen::graph::TensorShape::new", shape=box, fillcolor="#d9e8fb", color="#2166ac", tooltip="pub fn new(dimensions: impl IntoIterator<Item = u32>) -> Self — crates/ipu-codegen/src/graph.rs:43"];
    f9 [label="ipu_codegen::graph::ValueSequenceId::index", shape=box, fillcolor="#d9e8fb", color="#2166ac", tooltip="pub const fn index(self) -> u32 — crates/ipu-codegen/src/graph.rs:80"];
    t5 [label="ipu_codegen::graph::ComputeGraph\n«struct»", shape=ellipse, style="filled,dashed", fillcolor="#d9e8fb", color="#7b8794", tooltip="crates/ipu-codegen/src/graph.rs:209"];
    t3 [label="ipu_codegen::graph::GemmOptions\n«struct»", shape=ellipse, style="filled,dashed", fillcolor="#d9e8fb", color="#7b8794", tooltip="crates/ipu-codegen/src/graph.rs:126"];
    t10 [label="ipu_codegen::graph::GraphInput\n«struct»", shape=ellipse, style="filled,dashed", fillcolor="#d9e8fb", color="#7b8794", tooltip="crates/ipu-codegen/src/graph.rs:92"];
    t9 [label="ipu_codegen::graph::GraphInputKind\n«enum»", shape=ellipse, style="filled,dashed", fillcolor="#d9e8fb", color="#7b8794", tooltip="crates/ipu-codegen/src/graph.rs:86"];
    t1 [label="ipu_codegen::graph::Operation\n«struct»", shape=ellipse, style="filled,dashed", fillcolor="#d9e8fb", color="#7b8794", tooltip="crates/ipu-codegen/src/graph.rs:107"];
    t7 [label="ipu_codegen::graph::OperationId\n«struct»", shape=ellipse, style="filled,dashed", fillcolor="#d9e8fb", color="#7b8794", tooltip="crates/ipu-codegen/src/graph.rs:54"];
    t2 [label="ipu_codegen::graph::OperationKind\n«enum»", shape=ellipse, style="filled,dashed", fillcolor="#d9e8fb", color="#7b8794", tooltip="crates/ipu-codegen/src/graph.rs:115"];
    t4 [label="ipu_codegen::graph::Repeat\n«struct»", shape=ellipse, style="filled,dashed", fillcolor="#d9e8fb", color="#7b8794", tooltip="crates/ipu-codegen/src/graph.rs:179"];
    t6 [label="ipu_codegen::graph::TensorShape\n«struct»", shape=ellipse, style="filled,dashed", fillcolor="#d9e8fb", color="#7b8794", tooltip="crates/ipu-codegen/src/graph.rs:40"];
    t8 [label="ipu_codegen::graph::ValueId\n«struct»", shape=ellipse, style="filled,dashed", fillcolor="#d9e8fb", color="#7b8794", tooltip="crates/ipu-codegen/src/graph.rs:67"];
    t0 [label="ipu_codegen::graph::ValueSequence\n«struct»", shape=ellipse, style="filled,dashed", fillcolor="#d9e8fb", color="#7b8794", tooltip="crates/ipu-codegen/src/graph.rs:100"];
  }
  subgraph cluster_external { label="outgoing references — click to open target partition"; color="#d9d9d9"; style="rounded,dashed";
    xf0 [label="ipu_codegen::host::collect", shape=box, fillcolor="#f5f5f5", color="#9aa5b1", style="rounded,filled,dashed", URL="ipu-codegen-host.svg", target="_top", tooltip="open target partition"];
  }
  f1 -> t10 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f2 -> t0 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f3 -> t1 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f4 -> t8 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f5 -> t6 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f5 -> t8 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f6 -> xf0 [color="#2166ac", style="dotted", tooltip="source fallback (conservative)"];
  legend [shape=note, style="filled", fillcolor="#ffffff", color="#9aa5b1", fontsize=8,
          label="Solid: MIR-resolved call   Dotted: source fallback\nDashed, no arrow: uses type   Dashed node: link to another partition\nBlue: build   Green: run   Purple: shared"];
}
