digraph ipu_stack_package_partition {
  graph [rankdir=LR, bgcolor="white", fontname="DejaVu Sans", fontsize=17,
         label="ipu_exchange — part 2/2 — 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="#d8f0dd"; style="rounded";
    f7 [label="ipu_exchange::time_to_mux", shape=box, fillcolor="#d8f0dd", color="#2166ac", tooltip="fn time_to_mux(source: u32, destination: u32) -> i32 — crates/ipu-exchange/src/lib.rs:3016"];
    f6 [label="ipu_exchange::validate_count", shape=box, fillcolor="#d8f0dd", color="#2166ac", tooltip="fn validate_count(count: u32) -> Result<(), ExchangeError> — crates/ipu-exchange/src/lib.rs:2968"];
    f5 [label="ipu_exchange::validate_host_tile", shape=box, fillcolor="#d8f0dd", color="#2166ac", tooltip="fn validate_host_tile(physical_tile: u16) -> Result<(), ExchangeError> — crates/ipu-exchange/src/lib.rs:2239"];
    f8 [label="ipu_exchange::validate_receive_events", shape=box, fillcolor="#d8f0dd", color="#2166ac", tooltip="fn validate_receive_events(events: &[ReceiveEvent]) -> Result<(), ExchangeError> — crates/ipu-exchange/src/lib.rs:858"];
    f4 [label="ipu_exchange::wrap_combined_host_operation", shape=box, fillcolor="#d8f0dd", color="#2166ac", tooltip="pub fn wrap_combined_host_operation( physical_tile: u16, operation: &[u32], xreq_packet_address: u32, ) -> Result<Vec<u32>, ExchangeError> — crates/ipu-exchange/src/lib.rs:2173"];
    f1 [label="ipu_exchange::wrap_host_operation", shape=box, fillcolor="#d8f0dd", color="#2166ac", tooltip="fn wrap_host_operation( physical_tile: u16, operation: &[u32], entry_sync: u32, ) -> Result<Vec<u32>, ExchangeError> — crates/ipu-exchange/src/lib.rs:2136"];
    f3 [label="ipu_exchange::wrap_host_target_operation", shape=box, fillcolor="#d8f0dd", color="#2166ac", tooltip="pub fn wrap_host_target_operation( physical_tile: u16, operation: &[u32], ) -> Result<Vec<u32>, ExchangeError> — crates/ipu-exchange/src/lib.rs:2166"];
    f2 [label="ipu_exchange::wrap_host_xreq_operation", shape=box, fillcolor="#d8f0dd", color="#2166ac", tooltip="pub fn wrap_host_xreq_operation( physical_tile: u16, operation: &[u32], ) -> Result<Vec<u32>, ExchangeError> — crates/ipu-exchange/src/lib.rs:2159"];
    f0 [label="ipu_exchange::zero_byte_read_packet", shape=box, fillcolor="#d8f0dd", color="#2166ac", tooltip="pub fn zero_byte_read_packet( physical_tile: u16, dummy_tile_address: u32, ) -> Result<HostPacketHeader, ExchangeError> — crates/ipu-exchange/src/lib.rs:2019"];
    t9 [label="ipu_exchange::ExchangeError\n«enum»", shape=ellipse, style="filled,dashed", fillcolor="#d8f0dd", color="#7b8794", tooltip="crates/ipu-exchange/src/lib.rs:1957"];
    t5 [label="ipu_exchange::HostHierarchy\n«struct»", shape=ellipse, style="filled,dashed", fillcolor="#d8f0dd", color="#7b8794", tooltip="crates/ipu-exchange/src/lib.rs:1818"];
    t2 [label="ipu_exchange::HostPacketHeader\n«struct»", shape=ellipse, style="filled,dashed", fillcolor="#d8f0dd", color="#7b8794", tooltip="crates/ipu-exchange/src/lib.rs:1798"];
    t6 [label="ipu_exchange::HostPacketSize\n«enum»", shape=ellipse, style="filled,dashed", fillcolor="#d8f0dd", color="#7b8794", tooltip="crates/ipu-exchange/src/lib.rs:1940"];
    t3 [label="ipu_exchange::HostTransferChunk\n«struct»", shape=ellipse, style="filled,dashed", fillcolor="#d8f0dd", color="#7b8794", tooltip="crates/ipu-exchange/src/lib.rs:1804"];
    t7 [label="ipu_exchange::MulticastPlan\n«struct»", shape=ellipse, style="filled,dashed", fillcolor="#d8f0dd", color="#7b8794", tooltip="crates/ipu-exchange/src/lib.rs:1946"];
    t14 [label="ipu_exchange::PhaseProgramBuilder\n«struct»", shape=ellipse, style="filled,dashed", fillcolor="#d8f0dd", color="#7b8794", tooltip="crates/ipu-exchange/src/lib.rs:260"];
    t16 [label="ipu_exchange::PhasePrograms\n«struct»", shape=ellipse, style="filled,dashed", fillcolor="#d8f0dd", color="#7b8794", tooltip="crates/ipu-exchange/src/lib.rs:287"];
    t15 [label="ipu_exchange::PhaseTransferTiming\n«struct»", shape=ellipse, style="filled,dashed", fillcolor="#d8f0dd", color="#7b8794", tooltip="crates/ipu-exchange/src/lib.rs:265"];
    t10 [label="ipu_exchange::PlanRow\n«type»", shape=ellipse, style="filled,dashed", fillcolor="#d8f0dd", color="#7b8794", tooltip="crates/ipu-exchange/src/lib.rs:211"];
    t19 [label="ipu_exchange::ReceiveEvent\n«struct»", shape=ellipse, style="filled,dashed", fillcolor="#d8f0dd", color="#7b8794", tooltip="crates/ipu-exchange/src/lib.rs:847"];
    t17 [label="ipu_exchange::ReceiveEventKind\n«enum»", shape=ellipse, style="filled,dashed", fillcolor="#d8f0dd", color="#7b8794", tooltip="crates/ipu-exchange/src/lib.rs:818"];
    t18 [label="ipu_exchange::ReceiveMode\n«enum»", shape=ellipse, style="filled,dashed", fillcolor="#d8f0dd", color="#7b8794", tooltip="crates/ipu-exchange/src/lib.rs:841"];
    t20 [label="ipu_exchange::ReceiveRowTiming\n«struct»", shape=ellipse, style="filled,dashed", fillcolor="#d8f0dd", color="#7b8794", tooltip="crates/ipu-exchange/src/lib.rs:876"];
    t12 [label="ipu_exchange::ReceiveStream\n«struct»", shape=ellipse, style="filled,dashed", fillcolor="#d8f0dd", color="#7b8794", tooltip="crates/ipu-exchange/src/lib.rs:245"];
    t21 [label="ipu_exchange::ScheduledReceiverWindow\n«struct»", shape=ellipse, style="filled,dashed", fillcolor="#d8f0dd", color="#7b8794", tooltip="crates/ipu-exchange/src/lib.rs:890"];
    t13 [label="ipu_exchange::ScheduledSenderRow\n«struct»", shape=ellipse, style="filled,dashed", fillcolor="#d8f0dd", color="#7b8794", tooltip="crates/ipu-exchange/src/lib.rs:253"];
    t1 [label="ipu_exchange::ScheduledSenderTiming\n«struct»", shape=ellipse, style="filled,dashed", fillcolor="#d8f0dd", color="#7b8794", tooltip="crates/ipu-exchange/src/lib.rs:1187"];
    t0 [label="ipu_exchange::SenderRowTiming\n«struct»", shape=ellipse, style="filled,dashed", fillcolor="#d8f0dd", color="#7b8794", tooltip="crates/ipu-exchange/src/lib.rs:1179"];
    t11 [label="ipu_exchange::TileProgramSchedule\n«struct»", shape=ellipse, style="filled,dashed", fillcolor="#d8f0dd", color="#7b8794", tooltip="crates/ipu-exchange/src/lib.rs:237"];
    t4 [label="ipu_exchange::TileToHostProgram\n«struct»", shape=ellipse, style="filled,dashed", fillcolor="#d8f0dd", color="#7b8794", tooltip="crates/ipu-exchange/src/lib.rs:1812"];
    t8 [label="ipu_exchange::Topology\n«struct»", shape=ellipse, style="filled,dashed", fillcolor="#d8f0dd", color="#7b8794", tooltip="crates/ipu-exchange/src/lib.rs:1952"];
  }
  subgraph cluster_external { label="outgoing references — click to open target partition"; color="#d9d9d9"; style="rounded,dashed";
    xf6 [label="ipu_exchange::encode_send", shape=box, fillcolor="#f5f5f5", color="#9aa5b1", style="rounded,filled,dashed", URL="ipu-exchange-part-1.svg", target="_top", tooltip="open target partition"];
    xf2 [label="ipu_exchange::host_mux_for_tile", 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::host_route_word0", 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::host_route_word1", shape=box, fillcolor="#f5f5f5", color="#9aa5b1", style="rounded,filled,dashed", URL="ipu-exchange-part-1.svg", target="_top", tooltip="open target partition"];
    xf1 [label="ipu_exchange::put_special_from_m8", 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::receive_events_can_share_instruction", 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::route_displacement", shape=box, fillcolor="#f5f5f5", color="#9aa5b1", style="rounded,filled,dashed", URL="ipu-exchange-part-1.svg", target="_top", tooltip="open target partition"];
    xf0 [label="ipu_exchange::setzi_m", shape=box, fillcolor="#f5f5f5", color="#9aa5b1", style="rounded,filled,dashed", URL="ipu-exchange-part-1.svg", target="_top", tooltip="open target partition"];
  }
  f0 -> f5 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f0 -> xf3 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f0 -> xf4 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f0 -> t2 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f0 -> t9 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f1 -> xf0 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f1 -> xf1 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f1 -> xf2 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f1 -> t9 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f2 -> f1 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f2 -> t9 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f3 -> f1 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f3 -> t9 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f4 -> xf0 [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 -> xf6 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f4 -> t9 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f5 -> t9 [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"];
  f7 -> xf5 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f8 -> xf7 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f8 -> t9 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f8 -> t19 [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"];
}
