digraph ipu_stack_package_partition {
  graph [rankdir=LR, bgcolor="white", fontname="DejaVu Sans", fontsize=17,
         label="ipu_package — 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];
  build_entry [label="package build entry", shape=octagon, fillcolor="#cfe2ff", penwidth=1.4];
  run_entry [label="ipu_cli::main\nCommand::HostRun arm", shape=octagon, fillcolor="#d5f5e3", penwidth=1.4];
  subgraph cluster_primary { label="primary nodes"; color="#f7e8ae"; style="rounded";
    f12 [label="ipu_package::AddressRegion::contains", shape=box, fillcolor="#f7e8ae", color="#2166ac", tooltip="pub const fn contains(self, other: Self) -> bool — crates/ipu-package/src/lib.rs:336"];
    f11 [label="ipu_package::AddressRegion::is_empty", shape=box, fillcolor="#f7e8ae", color="#2166ac", tooltip="pub const fn is_empty(self) -> bool — crates/ipu-package/src/lib.rs:332"];
    f9 [label="ipu_package::AddressRegion::new", shape=box, fillcolor="#f7e8ae", color="#2166ac", tooltip="pub const fn new(start: u32, end: u32) -> Self — crates/ipu-package/src/lib.rs:321"];
    f10 [label="ipu_package::AddressRegion::size", shape=box, fillcolor="#f7e8ae", color="#7d3c98", tooltip="pub const fn size(self) -> u32 — crates/ipu-package/src/lib.rs:328"];
    f13 [label="ipu_package::Application::default", shape=box, fillcolor="#f7e8ae", color="#7d3c98", tooltip="fn default() -> Self — crates/ipu-package/src/lib.rs:473"];
    f16 [label="ipu_package::Application::read", shape=box, fillcolor="#f7e8ae", color="#238b45", tooltip="pub fn read(mut input: impl Read) -> Result<Self, PackageError> — crates/ipu-package/src/lib.rs:727"];
    f17 [label="ipu_package::Application::tile_image", shape=box, fillcolor="#f7e8ae", color="#238b45", tooltip="pub fn tile_image(&self, physical_tile: u32) -> Result<Vec<u8>, PackageError> — crates/ipu-package/src/lib.rs:816"];
    f14 [label="ipu_package::Application::validate", shape=box, fillcolor="#f7e8ae", color="#7d3c98", tooltip="pub fn validate(&self) -> Result<(), PackageError> — crates/ipu-package/src/lib.rs:491"];
    f15 [label="ipu_package::Application::write", shape=box, fillcolor="#f7e8ae", color="#2166ac", tooltip="pub fn write(&self, mut output: impl Write) -> Result<(), PackageError> — crates/ipu-package/src/lib.rs:654"];
    f8 [label="ipu_package::capnp_reader_options", shape=box, fillcolor="#f7e8ae", color="#238b45", tooltip="fn capnp_reader_options() -> message::ReaderOptions — crates/ipu-package/src/lib.rs:17"];
    f1 [label="ipu_package::read_bindings", shape=box, fillcolor="#f7e8ae", color="#238b45", tooltip="fn read_bindings( input: capnp::struct_list::Reader<'_, application_capnp::binding::Owned>, ) -> Result<Vec<Binding>, PackageError> — crates/ipu-package/src/lib.rs:1030"];
    f6 [label="ipu_package::read_host_exchange", shape=box, fillcolor="#f7e8ae", color="#238b45", tooltip="fn read_host_exchange( input: application_capnp::host_exchange::Reader<'_>, ) -> Result<HostExchange, PackageError> — crates/ipu-package/src/lib.rs:1240"];
    f7 [label="ipu_package::read_host_slices", shape=box, fillcolor="#f7e8ae", color="#238b45", tooltip="fn read_host_slices( input: capnp::struct_list::Reader<'_, application_capnp::host_slice::Owned>, ) -> Vec<HostSlice> — crates/ipu-package/src/lib.rs:1275"];
    f3 [label="ipu_package::read_profile_tiles", shape=box, fillcolor="#f7e8ae", color="#238b45", tooltip="fn read_profile_tiles( input: capnp::struct_list::Reader<'_, application_capnp::tile_profile_plan::Owned>, ) -> Result<Vec<TileProfilePlan>, PackageError> — crates/ipu-package/src/lib.rs:1108"];
    f20 [label="ipu_package::read_tiles", shape=box, fillcolor="#f7e8ae", color="#238b45", tooltip="fn read_tiles( input: capnp::struct_list::Reader<'_, application_capnp::tile_image::Owned>, ) -> Result<Vec<TileImage>, PackageError> — crates/ipu-package/src/lib.rs:979"];
    f18 [label="ipu_package::validate_host_batch_ends", shape=box, fillcolor="#f7e8ae", color="#7d3c98", tooltip="fn validate_host_batch_ends( call: &HostCall, direction: &str, ends: &[u32], slice_count: usize, ) -> Result<(), PackageError> — crates/ipu-package/src/lib.rs:932"];
    f0 [label="ipu_package::write_bindings", shape=box, fillcolor="#f7e8ae", color="#2166ac", tooltip="fn write_bindings( mut output: capnp::struct_list::Builder<'_, application_capnp::binding::Owned>, bindings: &[Binding], ) — crates/ipu-package/src/lib.rs:1007"];
    f4 [label="ipu_package::write_host_exchange", shape=box, fillcolor="#f7e8ae", color="#2166ac", tooltip="fn write_host_exchange( mut output: application_capnp::host_exchange::Builder<'_>, host: &HostExchange, ) — crates/ipu-package/src/lib.rs:1178"];
    f5 [label="ipu_package::write_host_slices", shape=box, fillcolor="#f7e8ae", color="#2166ac", tooltip="fn write_host_slices( mut output: capnp::struct_list::Builder<'_, application_capnp::host_slice::Owned>, slices: &[HostSlice], ) — crates/ipu-package/src/lib.rs:1227"];
    f2 [label="ipu_package::write_profile_tiles", shape=box, fillcolor="#f7e8ae", color="#2166ac", tooltip="fn write_profile_tiles( mut output: capnp::struct_list::Builder<'_, application_capnp::tile_profile_plan::Owned>, tiles: &[TileProfilePlan], ) — crates/ipu-package/src/lib.rs:1055"];
    f19 [label="ipu_package::write_tiles", shape=box, fillcolor="#f7e8ae", color="#2166ac", tooltip="fn write_tiles( mut output: capnp::struct_list::Builder<'_, application_capnp::tile_image::Owned>, tiles: &[TileImage], ) — crates/ipu-package/src/lib.rs:958"];
    t3 [label="ipu_package::AddressRegion\n«struct»", shape=ellipse, style="filled,dashed", fillcolor="#f7e8ae", color="#7b8794", tooltip="crates/ipu-package/src/lib.rs:315"];
    t17 [label="ipu_package::Application\n«struct»", shape=ellipse, style="filled,dashed", fillcolor="#f7e8ae", color="#7b8794", tooltip="crates/ipu-package/src/lib.rs:458"];
    t6 [label="ipu_package::Binding\n«struct»", shape=ellipse, style="filled,dashed", fillcolor="#f7e8ae", color="#7b8794", tooltip="crates/ipu-package/src/lib.rs:376"];
    t16 [label="ipu_package::DebugRegion\n«struct»", shape=ellipse, style="filled,dashed", fillcolor="#f7e8ae", color="#7b8794", tooltip="crates/ipu-package/src/lib.rs:450"];
    t14 [label="ipu_package::DebugSymbol\n«struct»", shape=ellipse, style="filled,dashed", fillcolor="#f7e8ae", color="#7b8794", tooltip="crates/ipu-package/src/lib.rs:444"];
    t12 [label="ipu_package::DeviceConfigWrite\n«struct»", shape=ellipse, style="filled,dashed", fillcolor="#f7e8ae", color="#7b8794", tooltip="crates/ipu-package/src/lib.rs:430"];
    t11 [label="ipu_package::EntryPoint\n«struct»", shape=ellipse, style="filled,dashed", fillcolor="#f7e8ae", color="#7b8794", tooltip="crates/ipu-package/src/lib.rs:422"];
    t15 [label="ipu_package::Err\n«type»", shape=ellipse, style="filled,dashed", fillcolor="#f7e8ae", color="#7b8794", tooltip="crates/ipu-package/src/lib.rs:44"];
    t9 [label="ipu_package::HostCall\n«struct»", shape=ellipse, style="filled,dashed", fillcolor="#f7e8ae", color="#7b8794", tooltip="crates/ipu-package/src/lib.rs:398"];
    t10 [label="ipu_package::HostExchange\n«struct»", shape=ellipse, style="filled,dashed", fillcolor="#f7e8ae", color="#7b8794", tooltip="crates/ipu-package/src/lib.rs:412"];
    t7 [label="ipu_package::HostPage\n«struct»", shape=ellipse, style="filled,dashed", fillcolor="#f7e8ae", color="#7b8794", tooltip="crates/ipu-package/src/lib.rs:384"];
    t8 [label="ipu_package::HostSlice\n«struct»", shape=ellipse, style="filled,dashed", fillcolor="#f7e8ae", color="#7b8794", tooltip="crates/ipu-package/src/lib.rs:390"];
    t1 [label="ipu_package::PackageError\n«enum»", shape=ellipse, style="filled,dashed", fillcolor="#f7e8ae", color="#7b8794", tooltip="crates/ipu-package/src/lib.rs:292"];
    t19 [label="ipu_package::ProfileExchangeActivity\n«struct»", shape=ellipse, style="filled,dashed", fillcolor="#f7e8ae", color="#7b8794", tooltip="crates/ipu-package/src/lib.rs:65"];
    t18 [label="ipu_package::ProfileExchangeActivityKind\n«enum»", shape=ellipse, style="filled,dashed", fillcolor="#f7e8ae", color="#7b8794", tooltip="crates/ipu-package/src/lib.rs:58"];
    t21 [label="ipu_package::ProfileMetadata\n«struct»", shape=ellipse, style="filled,dashed", fillcolor="#f7e8ae", color="#7b8794", tooltip="crates/ipu-package/src/lib.rs:87"];
    t20 [label="ipu_package::ProfileStep\n«struct»", shape=ellipse, style="filled,dashed", fillcolor="#f7e8ae", color="#7b8794", tooltip="crates/ipu-package/src/lib.rs:74"];
    t0 [label="ipu_package::ProfileStepKind\n«enum»", shape=ellipse, style="filled,dashed", fillcolor="#f7e8ae", color="#7b8794", tooltip="crates/ipu-package/src/lib.rs:25"];
    t5 [label="ipu_package::RegionSlice\n«struct»", shape=ellipse, style="filled,dashed", fillcolor="#f7e8ae", color="#7b8794", tooltip="crates/ipu-package/src/lib.rs:368"];
    t2 [label="ipu_package::Segment\n«struct»", shape=ellipse, style="filled,dashed", fillcolor="#f7e8ae", color="#7b8794", tooltip="crates/ipu-package/src/lib.rs:306"];
    t4 [label="ipu_package::TileImage\n«struct»", shape=ellipse, style="filled,dashed", fillcolor="#f7e8ae", color="#7b8794", tooltip="crates/ipu-package/src/lib.rs:359"];
    t13 [label="ipu_package::TileProfilePlan\n«struct»", shape=ellipse, style="filled,dashed", fillcolor="#f7e8ae", color="#7b8794", tooltip="crates/ipu-package/src/lib.rs:436"];
  }
  subgraph cluster_external { label="outgoing references — click to open target partition"; color="#d9d9d9"; style="rounded,dashed";
    xf0 [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::LoweringState::get", shape=box, fillcolor="#f5f5f5", color="#9aa5b1", style="rounded,filled,dashed", URL="ipu-codegen-mid.svg", target="_top", tooltip="open target partition"];
    xf1 [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"];
    xt0 [label="ipu_codegen::exchange::ExchangeActivityKind\n«enum»", shape=ellipse, fillcolor="#f5f5f5", color="#9aa5b1", style="filled,dashed", URL="ipu-codegen-exchange.svg", target="_top", tooltip="open defining partition"];
  }
  run_entry -> f16 [color="#238b45", penwidth=1.4];
  build_entry -> f15 [color="#2166ac", penwidth=1.4];
  f0 -> t6 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f1 -> t1 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f1 -> t5 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f1 -> t6 [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 -> t0 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f2 -> t13 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f2 -> t18 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f3 -> xt0 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f3 -> 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"];
  f3 -> t13 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f3 -> t18 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f3 -> t19 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f3 -> t20 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f3 -> t21 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f4 -> f5 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f4 -> t10 [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 -> f7 [color="#238b45", style="solid", tooltip="rustc MIR call edge"];
  f6 -> t1 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f6 -> t7 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f6 -> t9 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f6 -> t10 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f7 -> t8 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f13 -> t10 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f14 -> xf0 [color="#7d3c98", style="solid", tooltip="rustc MIR call edge"];
  f14 -> xf1 [color="#7d3c98", style="solid", tooltip="rustc MIR call edge"];
  f14 -> f18 [color="#7d3c98", style="solid", tooltip="rustc MIR call edge"];
  f14 -> t1 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f14 -> t15 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f15 -> xf2 [color="#2166ac", style="dotted", tooltip="source fallback (conservative)"];
  f15 -> f0 [color="#2166ac", style="dotted", tooltip="source fallback (conservative)"];
  f15 -> f2 [color="#2166ac", style="dotted", tooltip="source fallback (conservative)"];
  f15 -> f4 [color="#2166ac", style="dotted", tooltip="source fallback (conservative)"];
  f15 -> f14 [color="#2166ac", style="dotted", tooltip="source fallback (conservative)"];
  f15 -> f19 [color="#2166ac", style="dotted", tooltip="source fallback (conservative)"];
  f15 -> t1 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f16 -> f1 [color="#238b45", style="dotted", tooltip="source fallback (conservative)"];
  f16 -> f3 [color="#238b45", style="dotted", tooltip="source fallback (conservative)"];
  f16 -> f6 [color="#238b45", style="dotted", tooltip="source fallback (conservative)"];
  f16 -> f8 [color="#238b45", style="dotted", tooltip="source fallback (conservative)"];
  f16 -> f13 [color="#238b45", style="dotted", tooltip="source fallback (conservative)"];
  f16 -> f14 [color="#238b45", style="dotted", tooltip="source fallback (conservative)"];
  f16 -> f20 [color="#238b45", style="dotted", tooltip="source fallback (conservative)"];
  f16 -> t1 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f16 -> t11 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f16 -> t12 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f16 -> t14 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f16 -> t15 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f16 -> t16 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f16 -> t17 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f17 -> xf0 [color="#238b45", style="solid", tooltip="rustc MIR call edge"];
  f17 -> xf1 [color="#238b45", style="solid", tooltip="rustc MIR call edge"];
  f17 -> t1 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f18 -> xf0 [color="#7d3c98", style="solid", tooltip="rustc MIR call edge"];
  f18 -> xf1 [color="#7d3c98", style="solid", tooltip="rustc MIR call edge"];
  f18 -> t1 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f18 -> t9 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f18 -> t15 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f19 -> t4 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f20 -> t1 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f20 -> t2 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f20 -> t4 [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"];
}
