digraph ipu_stack_package_partition {
  graph [rankdir=LR, bgcolor="white", fontname="DejaVu Sans", fontsize=17,
         label="ipu_codegen::emitter — 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";
    f16 [label="ipu_codegen::emitter::CodegenOptions::default", shape=box, fillcolor="#d9e8fb", color="#2166ac", tooltip="fn default() -> Self — crates/ipu-codegen/src/emitter.rs:70"];
    f22 [label="ipu_codegen::emitter::TileCode::add_immediate", shape=box, fillcolor="#d9e8fb", color="#2166ac", tooltip="fn add_immediate(&mut self, destination: u8, source: u8, immediate: i32) -> Result<()> — crates/ipu-codegen/src/emitter.rs:758"];
    f23 [label="ipu_codegen::emitter::TileCode::add_unsigned", shape=box, fillcolor="#d9e8fb", color="#2166ac", tooltip="fn add_unsigned(&mut self, register: u8, mut immediate: u32) -> Result<()> — crates/ipu-codegen/src/emitter.rs:764"];
    f17 [label="ipu_codegen::emitter::TileCode::address", shape=box, fillcolor="#d9e8fb", color="#2166ac", tooltip="fn address(&self, base: u32) -> Result<u32> — crates/ipu-codegen/src/emitter.rs:717"];
    f26 [label="ipu_codegen::emitter::TileCode::brz", shape=box, fillcolor="#d9e8fb", color="#2166ac", tooltip="fn brz(&mut self, register: u8, target: u32) -> Result<()> — crates/ipu-codegen/src/emitter.rs:784"];
    f25 [label="ipu_codegen::emitter::TileCode::call", shape=box, fillcolor="#d9e8fb", color="#2166ac", tooltip="fn call(&mut self, target: u32, return_register: u8) -> Result<()> — crates/ipu-codegen/src/emitter.rs:778"];
    f19 [label="ipu_codegen::emitter::TileCode::instruction", shape=box, fillcolor="#d9e8fb", color="#2166ac", tooltip="fn instruction(&mut self, instruction: u32) — crates/ipu-codegen/src/emitter.rs:742"];
    f27 [label="ipu_codegen::emitter::TileCode::jump", shape=box, fillcolor="#d9e8fb", color="#2166ac", tooltip="fn jump(&mut self, target: u32) -> Result<()> — crates/ipu-codegen/src/emitter.rs:789"];
    f20 [label="ipu_codegen::emitter::TileCode::ld32", shape=box, fillcolor="#d9e8fb", color="#2166ac", tooltip="fn ld32(&mut self, destination: u8, base: u8, delta: u8, offset: u16) -> Result<()> — crates/ipu-codegen/src/emitter.rs:746"];
    f24 [label="ipu_codegen::emitter::TileCode::put_special", shape=box, fillcolor="#d9e8fb", color="#2166ac", tooltip="fn put_special(&mut self, special: u8, register: u8) -> Result<()> — crates/ipu-codegen/src/emitter.rs:773"];
    f18 [label="ipu_codegen::emitter::TileCode::setzi", shape=box, fillcolor="#d9e8fb", color="#2166ac", tooltip="fn setzi(&mut self, register: u8, immediate: u32) -> Result<()> — crates/ipu-codegen/src/emitter.rs:726"];
    f21 [label="ipu_codegen::emitter::TileCode::st32", shape=box, fillcolor="#d9e8fb", color="#2166ac", tooltip="fn st32(&mut self, source: u8, base: u8, delta: u8, offset: u16) -> Result<()> — crates/ipu-codegen/src/emitter.rs:752"];
    f1 [label="ipu_codegen::emitter::absolute_u16_copy", shape=box, fillcolor="#d9e8fb", color="#2166ac", tooltip="fn absolute_u16_copy(compute: &ComputeStep) -> Option<(u32, u32)> — crates/ipu-codegen/src/emitter.rs:333"];
    f28 [label="ipu_codegen::emitter::emit", shape=box, fillcolor="#d9e8fb", color="#2166ac", tooltip="pub fn emit( program: &TileProgram, symbols: &BTreeMap<String, u32>, host: &HostProgram, options: &CodegenOptions, ) -> Result<GeneratedProgram> — crates/ipu-codegen/src/emitter.rs:86"];
    f10 [label="ipu_codegen::emitter::emit_address", shape=box, fillcolor="#d9e8fb", color="#2166ac", tooltip="fn emit_address( code: &mut TileCode, register: u8, address: TileAddress, repeat_pointer_count: Option<usize>, ) -> Result<()> — crates/ipu-codegen/src/emitter.rs:554"];
    f9 [label="ipu_codegen::emitter::emit_compute", shape=box, fillcolor="#d9e8fb", color="#2166ac", tooltip="fn emit_compute( code: &mut TileCode, tile: u16, compute: &ComputeStep, symbols: &BTreeMap<String, u32>, repeat_pointer_count: Option<usize>, ) -> Result<()> — crates/ipu-codegen/src/emitter.rs:515"];
    f13 [label="ipu_codegen::emitter::emit_cycle_sample", shape=box, fillcolor="#d9e8fb", color="#2166ac", tooltip="fn emit_cycle_sample( code: &mut TileCode, symbols: &BTreeMap<String, u32>, address: u32, ) -> Result<()> — crates/ipu-codegen/src/emitter.rs:690"];
    f7 [label="ipu_codegen::emitter::emit_exchange_patches", shape=box, fillcolor="#d9e8fb", color="#2166ac", tooltip="fn emit_exchange_patches( code: &mut TileCode, exchange: &ExchangeStep, repeat_count: u32, symbols: &BTreeMap<String, u32>, ) -> Result<()> — crates/ipu-codegen/src/emitter.rs:470"];
    f8 [label="ipu_codegen::emitter::emit_exchange_setup_patch", shape=box, fillcolor="#d9e8fb", color="#2166ac", tooltip="fn emit_exchange_setup_patch( code: &mut TileCode, exchange: &ExchangeStep, patch: &ExchangeSetupPatch, symbols: &BTreeMap<String, u32>, ) -> Result<()> — crates/ipu-codegen/src/emitter.rs:498"];
    f12 [label="ipu_codegen::emitter::emit_host_phases", shape=box, fillcolor="#d9e8fb", color="#2166ac", tooltip="fn emit_host_phases( code: &mut TileCode, symbols: &BTreeMap<String, u32>, phases: &[HostPhase], ) -> Result<()> — crates/ipu-codegen/src/emitter.rs:632"];
    f11 [label="ipu_codegen::emitter::emit_repeat", shape=box, fillcolor="#d9e8fb", color="#2166ac", tooltip="fn emit_repeat( code: &mut TileCode, tile: u16, repeat: &RepeatStep, symbols: &BTreeMap<String, u32>, worker_barrier: Option<u32>, exchange_rows: &mut Vec<PlacedExchangeRow>, code_address: u32, ) -> Result<()> — crates/ipu-codegen/src/emitter.rs:576"];
    f0 [label="ipu_codegen::emitter::emit_steps", shape=box, fillcolor="#d9e8fb", color="#2166ac", tooltip="fn emit_steps( code: &mut TileCode, tile: u16, steps: &[TileStep], symbols: &BTreeMap<String, u32>, worker_barrier: Option<u32>, exchange_rows: &mut Vec<PlacedExchangeRow>, repeat_pointer_count: Option<usize>, repeat_count: Option<u32>, code_address: u32, ) -> Result<()> — crates/ipu-codegen/src/emitter.rs:169"];
    f15 [label="ipu_codegen::emitter::invalid", shape=box, fillcolor="#d9e8fb", color="#2166ac", tooltip="fn invalid(message: impl Into<String>) -> CodegenError — crates/ipu-codegen/src/emitter.rs:706"];
    f2 [label="ipu_codegen::emitter::step_compute_profile", shape=box, fillcolor="#d9e8fb", color="#2166ac", tooltip="fn step_compute_profile(step: &TileStep) -> Option<&StepProfile> — crates/ipu-codegen/src/emitter.rs:343"];
    f14 [label="ipu_codegen::emitter::symbol", shape=box, fillcolor="#d9e8fb", color="#2166ac", tooltip="fn symbol(symbols: &BTreeMap<String, u32>, name: &str) -> Result<u32> — crates/ipu-codegen/src/emitter.rs:699"];
    f3 [label="ipu_codegen::emitter::validate", shape=box, fillcolor="#d9e8fb", color="#2166ac", tooltip="fn validate(program: &TileProgram) -> Result<()> — crates/ipu-codegen/src/emitter.rs:350"];
    f6 [label="ipu_codegen::emitter::validate_address", shape=box, fillcolor="#d9e8fb", color="#2166ac", tooltip="fn validate_address(address: TileAddress, repeat_pointer_count: Option<usize>) -> Result<()> — crates/ipu-codegen/src/emitter.rs:451"];
    f5 [label="ipu_codegen::emitter::validate_exchange_program", shape=box, fillcolor="#d9e8fb", color="#2166ac", tooltip="fn validate_exchange_program(exchange: &ExchangeStep) -> Result<()> — crates/ipu-codegen/src/emitter.rs:418"];
    f4 [label="ipu_codegen::emitter::validate_steps", shape=box, fillcolor="#d9e8fb", color="#2166ac", tooltip="fn validate_steps( steps: &[TileStep], repeat_pointer_count: Option<usize>, repeat_count: Option<u32>, ) -> Result<()> — crates/ipu-codegen/src/emitter.rs:354"];
    t0 [label="ipu_codegen::emitter::CodegenError\n«enum»", shape=ellipse, style="filled,dashed", fillcolor="#d9e8fb", color="#7b8794", tooltip="crates/ipu-codegen/src/emitter.rs:51"];
    t1 [label="ipu_codegen::emitter::CodegenOptions\n«struct»", shape=ellipse, style="filled,dashed", fillcolor="#d9e8fb", color="#7b8794", tooltip="crates/ipu-codegen/src/emitter.rs:61"];
    t3 [label="ipu_codegen::emitter::GeneratedProgram\n«struct»", shape=ellipse, style="filled,dashed", fillcolor="#d9e8fb", color="#7b8794", tooltip="crates/ipu-codegen/src/emitter.rs:81"];
    t2 [label="ipu_codegen::emitter::TileCode\n«struct»", shape=ellipse, style="filled,dashed", fillcolor="#d9e8fb", color="#7b8794", tooltip="crates/ipu-codegen/src/emitter.rs:712"];
  }
  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"];
    xf1 [label="ipu_codegen::low::format", shape=box, fillcolor="#f5f5f5", color="#9aa5b1", style="rounded,filled,dashed", URL="ipu-codegen-low-part-1.svg", target="_top", tooltip="open target partition"];
    xf2 [label="ipu_codegen::mid::format", shape=box, fillcolor="#f5f5f5", color="#9aa5b1", style="rounded,filled,dashed", URL="ipu-codegen-mid.svg", target="_top", tooltip="open target partition"];
    xf6 [label="ipu_exchange::encode_add_m_immediate", shape=box, fillcolor="#f5f5f5", color="#9aa5b1", style="rounded,filled,dashed", URL="ipu-exchange-part-1.svg", target="_top", tooltip="open target partition"];
    xf9 [label="ipu_exchange::encode_br_m", shape=box, fillcolor="#f5f5f5", color="#9aa5b1", style="rounded,filled,dashed", URL="ipu-exchange-part-1.svg", target="_top", tooltip="open target partition"];
    xf8 [label="ipu_exchange::encode_brz_m_immediate", shape=box, fillcolor="#f5f5f5", color="#9aa5b1", style="rounded,filled,dashed", URL="ipu-exchange-part-1.svg", target="_top", tooltip="open target partition"];
    xf10 [label="ipu_exchange::encode_call_m_immediate", shape=box, fillcolor="#f5f5f5", color="#9aa5b1", style="rounded,filled,dashed", URL="ipu-exchange-part-1.svg", target="_top", tooltip="open target partition"];
    xf4 [label="ipu_exchange::encode_ld32_m_immediate", shape=box, fillcolor="#f5f5f5", color="#9aa5b1", style="rounded,filled,dashed", URL="ipu-exchange-part-1.svg", target="_top", tooltip="open target partition"];
    xf3 [label="ipu_exchange::encode_put_special_m", shape=box, fillcolor="#f5f5f5", color="#9aa5b1", style="rounded,filled,dashed", URL="ipu-exchange-part-1.svg", target="_top", tooltip="open target partition"];
    xf11 [label="ipu_exchange::encode_setzi_m", shape=box, fillcolor="#f5f5f5", color="#9aa5b1", style="rounded,filled,dashed", URL="ipu-exchange-part-1.svg", target="_top", tooltip="open target partition"];
    xf7 [label="ipu_exchange::encode_shl_m_immediate", shape=box, fillcolor="#f5f5f5", color="#9aa5b1", style="rounded,filled,dashed", URL="ipu-exchange-part-1.svg", target="_top", tooltip="open target partition"];
    xf5 [label="ipu_exchange::encode_st32_m_immediate", shape=box, fillcolor="#f5f5f5", color="#9aa5b1", style="rounded,filled,dashed", URL="ipu-exchange-part-1.svg", target="_top", tooltip="open target partition"];
    xt0 [label="ipu_codegen::graph::Repeat\n«struct»", shape=ellipse, fillcolor="#f5f5f5", color="#9aa5b1", style="filled,dashed", URL="ipu-codegen-graph.svg", target="_top", tooltip="open defining partition"];
    xt1 [label="ipu_codegen::program::ComputeStep\n«struct»", shape=ellipse, fillcolor="#f5f5f5", color="#9aa5b1", style="filled,dashed", URL="ipu-codegen-program.svg", target="_top", tooltip="open defining partition"];
    xt12 [label="ipu_codegen::program::ExchangeSetupPatch\n«struct»", shape=ellipse, fillcolor="#f5f5f5", color="#9aa5b1", style="filled,dashed", URL="ipu-codegen-program.svg", target="_top", tooltip="open defining partition"];
    xt10 [label="ipu_codegen::program::ExchangeStep\n«struct»", shape=ellipse, fillcolor="#f5f5f5", color="#9aa5b1", style="filled,dashed", URL="ipu-codegen-program.svg", target="_top", tooltip="open defining partition"];
    xt3 [label="ipu_codegen::program::HostPhase\n«struct»", shape=ellipse, fillcolor="#f5f5f5", color="#9aa5b1", style="filled,dashed", URL="ipu-codegen-program.svg", target="_top", tooltip="open defining partition"];
    xt5 [label="ipu_codegen::program::HostProgram\n«struct»", shape=ellipse, fillcolor="#f5f5f5", color="#9aa5b1", style="filled,dashed", URL="ipu-codegen-program.svg", target="_top", tooltip="open defining partition"];
    xt6 [label="ipu_codegen::program::PlacedExchangeRow\n«struct»", shape=ellipse, fillcolor="#f5f5f5", color="#9aa5b1", style="filled,dashed", URL="ipu-codegen-program.svg", target="_top", tooltip="open defining partition"];
    xt8 [label="ipu_codegen::program::RepeatPointer\n«struct»", shape=ellipse, fillcolor="#f5f5f5", color="#9aa5b1", style="filled,dashed", URL="ipu-codegen-program.svg", target="_top", tooltip="open defining partition"];
    xt7 [label="ipu_codegen::program::RepeatStep\n«struct»", shape=ellipse, fillcolor="#f5f5f5", color="#9aa5b1", style="filled,dashed", URL="ipu-codegen-program.svg", target="_top", tooltip="open defining partition"];
    xt2 [label="ipu_codegen::program::StepProfile\n«struct»", shape=ellipse, fillcolor="#f5f5f5", color="#9aa5b1", style="filled,dashed", URL="ipu-codegen-program.svg", target="_top", tooltip="open defining partition"];
    xt9 [label="ipu_codegen::program::TileAddress\n«enum»", shape=ellipse, fillcolor="#f5f5f5", color="#9aa5b1", style="filled,dashed", URL="ipu-codegen-program.svg", target="_top", tooltip="open defining partition"];
    xt11 [label="ipu_codegen::program::TileProgram\n«struct»", shape=ellipse, fillcolor="#f5f5f5", color="#9aa5b1", style="filled,dashed", URL="ipu-codegen-program.svg", target="_top", tooltip="open defining partition"];
    xt4 [label="ipu_codegen::program::TileStep\n«enum»", shape=ellipse, fillcolor="#f5f5f5", color="#9aa5b1", style="filled,dashed", URL="ipu-codegen-program.svg", target="_top", tooltip="open defining partition"];
  }
  f0 -> f1 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f0 -> f2 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f0 -> f7 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f0 -> f8 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f0 -> f9 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f0 -> f11 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f0 -> f13 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f0 -> f14 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f0 -> f15 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f0 -> f18 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f0 -> f19 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f0 -> f24 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f0 -> f25 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f0 -> t2 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f0 -> xt0 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f0 -> xt4 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f0 -> xt6 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f1 -> xt1 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f1 -> xt9 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f2 -> xt0 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f2 -> xt2 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f2 -> xt4 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f3 -> f4 [color="#2166ac", style="dotted", tooltip="source fallback (conservative)"];
  f3 -> xt11 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f4 -> f5 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f4 -> f6 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f4 -> f15 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f4 -> xf1 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f4 -> xf2 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f4 -> xt0 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f4 -> xt4 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f5 -> f15 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f5 -> xt10 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f6 -> f15 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f6 -> xt8 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f6 -> xt9 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f7 -> f14 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f7 -> f15 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f7 -> f18 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f7 -> f20 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f7 -> f25 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f7 -> t2 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f7 -> xt10 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f8 -> f14 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f8 -> f15 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f8 -> f18 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f8 -> f25 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f8 -> t2 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f8 -> xt10 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f8 -> xt12 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f9 -> f10 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f9 -> f15 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f9 -> f18 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f9 -> f25 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f9 -> xf1 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f9 -> xf2 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f9 -> t2 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f9 -> xt1 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f10 -> f15 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f10 -> f18 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f10 -> f20 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f10 -> f23 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f10 -> t2 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f10 -> xt8 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f10 -> xt9 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f11 -> f0 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f11 -> f15 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f11 -> f17 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f11 -> f18 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f11 -> f20 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f11 -> f21 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f11 -> f22 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f11 -> f23 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f11 -> f26 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f11 -> f27 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f11 -> xf8 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f11 -> t2 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f11 -> xt6 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f11 -> xt7 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f12 -> f14 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f12 -> f15 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f12 -> f18 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f12 -> f25 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f12 -> t2 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f12 -> xt3 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f13 -> f14 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f13 -> f18 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f13 -> f25 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f13 -> t2 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f14 -> f15 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f14 -> xf1 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f14 -> xf2 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f15 -> t0 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f17 -> f15 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f18 -> xf6 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f18 -> xf7 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f18 -> xf11 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f20 -> xf4 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f21 -> xf5 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f22 -> xf6 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f23 -> f22 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f24 -> xf3 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f25 -> xf10 [color="#2166ac", style="dotted", tooltip="source fallback (conservative)"];
  f26 -> xf8 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f27 -> f18 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f27 -> xf9 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f28 -> f0 [color="#2166ac", style="dotted", tooltip="source fallback (conservative)"];
  f28 -> f3 [color="#2166ac", style="dotted", tooltip="source fallback (conservative)"];
  f28 -> f12 [color="#2166ac", style="dotted", tooltip="source fallback (conservative)"];
  f28 -> f13 [color="#2166ac", style="dotted", tooltip="source fallback (conservative)"];
  f28 -> f14 [color="#2166ac", style="dotted", tooltip="source fallback (conservative)"];
  f28 -> f15 [color="#2166ac", style="dotted", tooltip="source fallback (conservative)"];
  f28 -> f17 [color="#2166ac", style="dotted", tooltip="source fallback (conservative)"];
  f28 -> f18 [color="#2166ac", style="dotted", tooltip="source fallback (conservative)"];
  f28 -> f20 [color="#2166ac", style="dotted", tooltip="source fallback (conservative)"];
  f28 -> f21 [color="#2166ac", style="dotted", tooltip="source fallback (conservative)"];
  f28 -> f22 [color="#2166ac", style="dotted", tooltip="source fallback (conservative)"];
  f28 -> f26 [color="#2166ac", style="dotted", tooltip="source fallback (conservative)"];
  f28 -> f27 [color="#2166ac", style="dotted", tooltip="source fallback (conservative)"];
  f28 -> xf0 [color="#2166ac", style="dotted", tooltip="source fallback (conservative)"];
  f28 -> xf8 [color="#2166ac", style="dotted", tooltip="source fallback (conservative)"];
  f28 -> t1 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f28 -> t2 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f28 -> t3 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f28 -> xt5 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f28 -> xt6 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f28 -> xt11 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  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"];
}
