digraph ipu_stack_package_partition {
  graph [rankdir=LR, bgcolor="white", fontname="DejaVu Sans", fontsize=17,
         label="ipu_codegen::exchange — 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";
    f19 [label="ipu_codegen::exchange::MaterializedSchedule::append", shape=box, fillcolor="#d9e8fb", color="#2166ac", tooltip="fn append( &mut self, topology: &Topology, pending: &[PendingTransfer], incoming_bases: &[u32], receive_counts: &[usize], index: usize, dependency_ready: u32, validate_encoding: bool, last_transfer: &mut [TilePredecessor], ) -> Result<u32, ExchangeLoweringError> — crates/ipu-codegen/src/exchange.rs:2253"];
    f22 [label="ipu_codegen::exchange::MaterializedSchedule::finish_horizon", shape=box, fillcolor="#d9e8fb", color="#2166ac", tooltip="fn finish_horizon(&mut self) — crates/ipu-codegen/src/exchange.rs:2407"];
    f18 [label="ipu_codegen::exchange::MaterializedSchedule::new", shape=box, fillcolor="#d9e8fb", color="#2166ac", tooltip="fn new(tile_count: u16, transfer_count: usize) -> Self — crates/ipu-codegen/src/exchange.rs:2239"];
    f45 [label="ipu_codegen::exchange::PendingTransfer::refresh_source_elements", shape=box, fillcolor="#d9e8fb", color="#2166ac", tooltip="fn refresh_source_elements(&mut self) — crates/ipu-codegen/src/exchange.rs:947"];
    f44 [label="ipu_codegen::exchange::PendingTransfer::tiles", shape=box, fillcolor="#d9e8fb", color="#2166ac", tooltip="fn tiles(&self) -> impl Iterator<Item = u16> + '_ — crates/ipu-codegen/src/exchange.rs:942"];
    f43 [label="ipu_codegen::exchange::PhaseDiagnostics::emit", shape=box, fillcolor="#d9e8fb", color="#2166ac", tooltip="fn emit( &self, phase: u32, provenance: &crate::WorkProvenance, horizon: u32, tile_availability: &[TileAvailability], builder: &PhaseProgramBuilder, ) — crates/ipu-codegen/src/exchange.rs:801"];
    f41 [label="ipu_codegen::exchange::PhaseDiagnostics::new", shape=box, fillcolor="#d9e8fb", color="#2166ac", tooltip="fn new(tile_count: u16) -> Self — crates/ipu-codegen/src/exchange.rs:752"];
    f42 [label="ipu_codegen::exchange::PhaseDiagnostics::record", shape=box, fillcolor="#d9e8fb", color="#2166ac", tooltip="fn record( &mut self, source: u16, source_address: u32, destinations: &[TransferEndpoint], words: u32, start: u32, end: u32, blocking_tile: u16, ) — crates/ipu-codegen/src/exchange.rs:763"];
    f16 [label="ipu_codegen::exchange::PhysicalTransfer::item_count", shape=box, fillcolor="#d9e8fb", color="#2166ac", tooltip="fn item_count(&self) -> Result<u32, ExchangeLoweringError> — crates/ipu-codegen/src/exchange.rs:211"];
    f11 [label="ipu_codegen::exchange::PhysicalTransfer::source_address", shape=box, fillcolor="#d9e8fb", color="#2166ac", tooltip="pub fn source_address(&self) -> u32 — crates/ipu-codegen/src/exchange.rs:200"];
    f14 [label="ipu_codegen::exchange::TransferScheduler::complete", shape=box, fillcolor="#d9e8fb", color="#2166ac", tooltip="fn complete(&mut self, index: usize, completion: u32) — crates/ipu-codegen/src/exchange.rs:2079"];
    f15 [label="ipu_codegen::exchange::TransferScheduler::is_complete", shape=box, fillcolor="#d9e8fb", color="#2166ac", tooltip="fn is_complete(&self) -> bool — crates/ipu-codegen/src/exchange.rs:2104"];
    f10 [label="ipu_codegen::exchange::TransferScheduler::new", shape=box, fillcolor="#d9e8fb", color="#2166ac", tooltip="fn new(transfers: &'a [PendingTransfer], tile_count: u16) -> Self — crates/ipu-codegen/src/exchange.rs:1990"];
    f13 [label="ipu_codegen::exchange::TransferScheduler::next", shape=box, fillcolor="#d9e8fb", color="#2166ac", tooltip="fn next(&mut self, tile_availability: &[TileAvailability]) -> Option<(usize, u32)> — crates/ipu-codegen/src/exchange.rs:2053"];
    f12 [label="ipu_codegen::exchange::TransferScheduler::push_ready", shape=box, fillcolor="#d9e8fb", color="#2166ac", tooltip="fn push_ready(&mut self, index: usize, earliest_start: u32) — crates/ipu-codegen/src/exchange.rs:2032"];
    f21 [label="ipu_codegen::exchange::TransferWidth::item_count", shape=box, fillcolor="#d9e8fb", color="#2166ac", tooltip="fn item_count(self, words: u32) -> Result<u32, ExchangeLoweringError> — crates/ipu-codegen/src/exchange.rs:231"];
    f20 [label="ipu_codegen::exchange::TransferWidth::item_words", shape=box, fillcolor="#d9e8fb", color="#2166ac", tooltip="fn item_words(self) -> u32 — crates/ipu-codegen/src/exchange.rs:225"];
    f34 [label="ipu_codegen::exchange::append_transfer", shape=box, fillcolor="#d9e8fb", color="#2166ac", tooltip="fn append_transfer( topology: &Topology, memory_accesses: &[TileMemorySchedule], incoming_bases: &[u32], receive_counts: &[usize], transfer: ScheduledTransfer<'_>, builder: &mut PhaseProgramBuilder, validate_encoding: bool, ) -> Result<PhaseTransferTiming, ExchangeLoweringError> — crates/ipu-codegen/src/exchange.rs:3005"];
    f46 [label="ipu_codegen::exchange::attach_repeat_source_addresses", shape=box, fillcolor="#d9e8fb", color="#2166ac", tooltip="fn attach_repeat_source_addresses( pending: &mut [PendingTransfer], repeat_inputs: &BTreeMap<LowShardId, Vec<LowShardId>>, placement: &Placement, ) -> Result<(), ExchangeLoweringError> — crates/ipu-codegen/src/exchange.rs:959"];
    f31 [label="ipu_codegen::exchange::augment_ready_matching", shape=box, fillcolor="#d9e8fb", color="#2166ac", tooltip="fn augment_ready_matching( source: usize, pending: &[PendingTransfer], adjacency: &[Vec<usize>], source_edges: &mut [Option<usize>], destination_sources: &mut [Option<usize>], distances: &mut [usize], ) -> bool — crates/ipu-codegen/src/exchange.rs:2756"];
    f9 [label="ipu_codegen::exchange::coalesce_pending_transfers", shape=box, fillcolor="#d9e8fb", color="#2166ac", tooltip="/// Combines physically contiguous source and destination spans into one /// hardware message. Separate SEND messages require separate receive events, /// even when they select the same source tile. fn coalesce_pending_transfers(transfers: Vec<PendingTransfer>) -> Vec<PendingTransfer> — crates/ipu-codegen/src/exchange.rs:1909"];
    f33 [label="ipu_codegen::exchange::critical_neighborhood_order", shape=box, fillcolor="#d9e8fb", color="#2166ac", tooltip="fn critical_neighborhood_order( pending: &[PendingTransfer], tile_count: u16, incumbent: &MaterializedSchedule, ) -> Vec<usize> — crates/ipu-codegen/src/exchange.rs:2847"];
    f3 [label="ipu_codegen::exchange::critical_transfer_indices", shape=box, fillcolor="#d9e8fb", color="#2166ac", tooltip="fn critical_transfer_indices(schedule: &MaterializedSchedule) -> BTreeSet<usize> — crates/ipu-codegen/src/exchange.rs:1253"];
    f4 [label="ipu_codegen::exchange::diagnose_exchange_tile", shape=box, fillcolor="#d9e8fb", color="#2166ac", tooltip="pub fn diagnose_exchange_tile( phase: &PhysicalExchangePhase, tile: u16, row_address: u32, ) -> Result<ExchangeTileDiagnostic, ExchangeLoweringError> — crates/ipu-codegen/src/exchange.rs:125"];
    f36 [label="ipu_codegen::exchange::effective_memory_elements", shape=box, fillcolor="#d9e8fb", color="#2166ac", tooltip="fn effective_memory_elements(address: u32, words: u32) -> Vec<ExchangeMemoryElement> — crates/ipu-codegen/src/exchange.rs:3184"];
    f28 [label="ipu_codegen::exchange::endpoint_work_lower_bound", shape=box, fillcolor="#d9e8fb", color="#2166ac", tooltip="fn endpoint_work_lower_bound(pending: &[PendingTransfer], tile_count: u16) -> u32 — crates/ipu-codegen/src/exchange.rs:2531"];
    f8 [label="ipu_codegen::exchange::improve_pending_schedule", shape=box, fillcolor="#d9e8fb", color="#2166ac", tooltip="fn improve_pending_schedule( topology: &Topology, pending: &[PendingTransfer], incoming_bases: &[u32], receive_counts: &[usize], tile_count: u16, mut schedule: MaterializedSchedule, initial_kind: &'static str, ) -> Result<OptimizedSchedule, ExchangeLoweringError> — crates/ipu-codegen/src/exchange.rs:1513"];
    f37 [label="ipu_codegen::exchange::inactive_exchange_program", shape=box, fillcolor="#d9e8fb", color="#2166ac", tooltip="pub fn inactive_exchange_program() -> Vec<u32> — crates/ipu-codegen/src/exchange.rs:3206"];
    f38 [label="ipu_codegen::exchange::lower_exchanges", shape=box, fillcolor="#d9e8fb", color="#2166ac", tooltip="pub fn lower_exchanges( program: &LowProgram, placement: &Placement, topology: &Topology, options: ExchangeLoweringOptions, ) -> Result<LoweredExchanges, ExchangeLoweringError> — crates/ipu-codegen/src/exchange.rs:320"];
    f39 [label="ipu_codegen::exchange::lower_static_exchanges", shape=box, fillcolor="#d9e8fb", color="#2166ac", tooltip="fn lower_static_exchanges( program: &LowProgram, placement: &Placement, topology: &Topology, options: ExchangeLoweringOptions, ) -> Result<LoweredExchanges, ExchangeLoweringError> — crates/ipu-codegen/src/exchange.rs:329"];
    f23 [label="ipu_codegen::exchange::materialize_greedy_schedule", shape=box, fillcolor="#d9e8fb", color="#2166ac", tooltip="fn materialize_greedy_schedule( topology: &Topology, pending: &[PendingTransfer], incoming_bases: &[u32], receive_counts: &[usize], tile_count: u16, ) -> Result<MaterializedSchedule, ExchangeLoweringError> — crates/ipu-codegen/src/exchange.rs:2412"];
    f24 [label="ipu_codegen::exchange::materialize_greedy_schedule_impl", shape=box, fillcolor="#d9e8fb", color="#2166ac", tooltip="fn materialize_greedy_schedule_impl( topology: &Topology, pending: &[PendingTransfer], incoming_bases: &[u32], receive_counts: &[usize], tile_count: u16, validate_encoding: bool, ) -> Result<MaterializedSchedule, ExchangeLoweringError> — crates/ipu-codegen/src/exchange.rs:2444"];
    f25 [label="ipu_codegen::exchange::materialize_schedule_order", shape=box, fillcolor="#d9e8fb", color="#2166ac", tooltip="fn materialize_schedule_order( topology: &Topology, pending: &[PendingTransfer], incoming_bases: &[u32], receive_counts: &[usize], tile_count: u16, order: &[usize], ) -> Result<MaterializedSchedule, ExchangeLoweringError> — crates/ipu-codegen/src/exchange.rs:2473"];
    f6 [label="ipu_codegen::exchange::materialize_width_selection", shape=box, fillcolor="#d9e8fb", color="#2166ac", tooltip="fn materialize_width_selection( topology: &Topology, ordinary: &[PendingTransfer], alternatives: &[Option<PendingTransfer>], selected: &[usize], incoming_bases: &[u32], receive_counts: &[usize], tile_count: u16, order: &[usize], ) -> Result<(Vec<PendingTransfer>, MaterializedSchedule), ExchangeLoweringError> — crates/ipu-codegen/src/exchange.rs:1452"];
    f30 [label="ipu_codegen::exchange::maximum_ready_matching", shape=box, fillcolor="#d9e8fb", color="#2166ac", tooltip="fn maximum_ready_matching( pending: &[PendingTransfer], adjacency: &[Vec<usize>], source_order: &[usize], tile_count: usize, ) -> Vec<usize> — crates/ipu-codegen/src/exchange.rs:2698"];
    f17 [label="ipu_codegen::exchange::memory_dependencies", shape=box, fillcolor="#d9e8fb", color="#2166ac", tooltip="/// Preserves the original order of overlapping accesses while allowing the /// scheduler to reorder transfers whose tile-memory effects are independent. fn memory_dependencies(transfers: &[PendingTransfer], tile_count: u16) -> BTreeSet<(usize, usize)> — crates/ipu-codegen/src/exchange.rs:2123"];
    f35 [label="ipu_codegen::exchange::memory_safe_transfer_offset", shape=box, fillcolor="#d9e8fb", color="#2166ac", tooltip="fn memory_safe_transfer_offset( memory_accesses: &[TileMemorySchedule], source: u16, destinations: &[TransferEndpoint], source_elements: &[ExchangeMemoryElement], words: u32, payload_start: u32, payload_end: u32, receiver_intervals: &[(u32, u32)], schedule_offset: u32, ) -> Result<u32, ExchangeLoweringError> — crates/ipu-codegen/src/exchange.rs:3118"];
    f2 [label="ipu_codegen::exchange::optimize_owned_pending", shape=box, fillcolor="#d9e8fb", color="#2166ac", tooltip="fn optimize_owned_pending( topology: &Topology, pending: Vec<PendingTransfer>, tile_count: u16, ) -> Result<ScheduledPending, ExchangeLoweringError> — crates/ipu-codegen/src/exchange.rs:1232"];
    f7 [label="ipu_codegen::exchange::optimize_pending_schedule", shape=box, fillcolor="#d9e8fb", color="#2166ac", tooltip="fn optimize_pending_schedule( topology: &Topology, pending: &[PendingTransfer], incoming_bases: &[u32], receive_counts: &[usize], tile_count: u16, ) -> Result<OptimizedSchedule, ExchangeLoweringError> — crates/ipu-codegen/src/exchange.rs:1486"];
    f47 [label="ipu_codegen::exchange::paired_transfer_alternatives", shape=box, fillcolor="#d9e8fb", color="#2166ac", tooltip="fn paired_transfer_alternatives( pending: &[PendingTransfer], topology: &Topology, tile_count: u16, ) -> Result<Vec<Option<PendingTransfer>>, ExchangeLoweringError> — crates/ipu-codegen/src/exchange.rs:988"];
    f29 [label="ipu_codegen::exchange::point_to_point_matching_wave_order", shape=box, fillcolor="#d9e8fb", color="#2166ac", tooltip="/// Orders a balanced point-to-point phase as maximum-cardinality waves over /// its send and receive buses. The result remains only a candidate: the exact /// row builder decides whether it improves the incumbent schedule. fn point_to_point_matching_wave_order( pending: &[PendingTransfer], tile_count: u16, incumbent_order: &[usize], ) -> Option<Vec<usize>> — crates/ipu-codegen/src/exchange.rs:2559"];
    f40 [label="ipu_codegen::exchange::prepare_transfer", shape=box, fillcolor="#d9e8fb", color="#2166ac", tooltip="fn prepare_transfer( program: &LowProgram, placement: &Placement, transfer: &LogicalExchange, ) -> Result<Vec<PendingTransfer>, ExchangeLoweringError> — crates/ipu-codegen/src/exchange.rs:599"];
    f1 [label="ipu_codegen::exchange::receive_configuration", shape=box, fillcolor="#d9e8fb", color="#2166ac", tooltip="fn receive_configuration( pending: &[PendingTransfer], tile_count: u16, ) -> Result<(Vec<usize>, Vec<u32>), ExchangeLoweringError> — crates/ipu-codegen/src/exchange.rs:1187"];
    f32 [label="ipu_codegen::exchange::repair_ready", shape=box, fillcolor="#d9e8fb", color="#2166ac", tooltip="fn repair_ready( index: usize, pending: &[PendingTransfer], availability: &[TileAvailability], next_receive_address: &[Option<u32>], word_pressure: &[u64], rank: &[usize], epoch_width: usize, neighborhood: &[bool], ) -> RepairReady — crates/ipu-codegen/src/exchange.rs:2798"];
    f26 [label="ipu_codegen::exchange::schedule_encoding_is_valid", shape=box, fillcolor="#d9e8fb", color="#2166ac", tooltip="fn schedule_encoding_is_valid( schedule: &MaterializedSchedule, ) -> Result<bool, ExchangeLoweringError> — crates/ipu-codegen/src/exchange.rs:2517"];
    f0 [label="ipu_codegen::exchange::schedule_problem", shape=box, fillcolor="#d9e8fb", color="#2166ac", tooltip="fn schedule_problem(phase: u32, pending: &[PendingTransfer]) -> ExchangeScheduleProblem — crates/ipu-codegen/src/exchange.rs:1065"];
    f27 [label="ipu_codegen::exchange::schedule_score", shape=box, fillcolor="#d9e8fb", color="#2166ac", tooltip="fn schedule_score(schedule: &MaterializedSchedule) -> u32 — crates/ipu-codegen/src/exchange.rs:2527"];
    f5 [label="ipu_codegen::exchange::select_transfer_widths", shape=box, fillcolor="#d9e8fb", color="#2166ac", tooltip="fn select_transfer_widths( phase: u32, topology: &Topology, ordinary_pending: Vec<PendingTransfer>, tile_count: u16, ) -> Result<ScheduledPending, ExchangeLoweringError> — crates/ipu-codegen/src/exchange.rs:1283"];
    t9 [label="ipu_codegen::exchange::AccessFrontier\n«struct»", shape=ellipse, style="filled,dashed", fillcolor="#d9e8fb", color="#7b8794", tooltip="crates/ipu-codegen/src/exchange.rs:2119"];
    t27 [label="ipu_codegen::exchange::ExchangeActivity\n«struct»", shape=ellipse, style="filled,dashed", fillcolor="#d9e8fb", color="#7b8794", tooltip="crates/ipu-codegen/src/exchange.rs:49"];
    t30 [label="ipu_codegen::exchange::ExchangeActivityDiagnostic\n«struct»", shape=ellipse, style="filled,dashed", fillcolor="#d9e8fb", color="#7b8794", tooltip="crates/ipu-codegen/src/exchange.rs:76"];
    t28 [label="ipu_codegen::exchange::ExchangeActivityKind\n«enum»", shape=ellipse, style="filled,dashed", fillcolor="#d9e8fb", color="#7b8794", tooltip="crates/ipu-codegen/src/exchange.rs:62"];
    t25 [label="ipu_codegen::exchange::ExchangeLoweringError\n«enum»", shape=ellipse, style="filled,dashed", fillcolor="#d9e8fb", color="#7b8794", tooltip="crates/ipu-codegen/src/exchange.rs:296"];
    t2 [label="ipu_codegen::exchange::ExchangeLoweringOptions\n«struct»", shape=ellipse, style="filled,dashed", fillcolor="#d9e8fb", color="#7b8794", tooltip="crates/ipu-codegen/src/exchange.rs:166"];
    t29 [label="ipu_codegen::exchange::ExchangeMemoryElement\n«struct»", shape=ellipse, style="filled,dashed", fillcolor="#d9e8fb", color="#7b8794", tooltip="crates/ipu-codegen/src/exchange.rs:70"];
    t26 [label="ipu_codegen::exchange::ExchangeRowPatch\n«struct»", shape=ellipse, style="filled,dashed", fillcolor="#d9e8fb", color="#7b8794", tooltip="crates/ipu-codegen/src/exchange.rs:43"];
    t4 [label="ipu_codegen::exchange::ExchangeScheduleProblem\n«struct»", shape=ellipse, style="filled,dashed", fillcolor="#d9e8fb", color="#7b8794", tooltip="crates/ipu-codegen/src/exchange.rs:183"];
    t3 [label="ipu_codegen::exchange::ExchangeScheduleSnapshot\n«struct»", shape=ellipse, style="filled,dashed", fillcolor="#d9e8fb", color="#7b8794", tooltip="crates/ipu-codegen/src/exchange.rs:176"];
    t31 [label="ipu_codegen::exchange::ExchangeTileDiagnostic\n«struct»", shape=ellipse, style="filled,dashed", fillcolor="#d9e8fb", color="#7b8794", tooltip="crates/ipu-codegen/src/exchange.rs:83"];
    t20 [label="ipu_codegen::exchange::LoweredExchanges\n«struct»", shape=ellipse, style="filled,dashed", fillcolor="#d9e8fb", color="#7b8794", tooltip="crates/ipu-codegen/src/exchange.rs:251"];
    t17 [label="ipu_codegen::exchange::MaterializedSchedule\n«struct»", shape=ellipse, style="filled,dashed", fillcolor="#d9e8fb", color="#7b8794", tooltip="crates/ipu-codegen/src/exchange.rs:2226"];
    t14 [label="ipu_codegen::exchange::MaterializedTiming\n«struct»", shape=ellipse, style="filled,dashed", fillcolor="#d9e8fb", color="#7b8794", tooltip="crates/ipu-codegen/src/exchange.rs:2207"];
    t15 [label="ipu_codegen::exchange::MemoryAccess\n«struct»", shape=ellipse, style="filled,dashed", fillcolor="#d9e8fb", color="#7b8794", tooltip="crates/ipu-codegen/src/exchange.rs:2215"];
    t0 [label="ipu_codegen::exchange::OptimizedSchedule\n«struct»", shape=ellipse, style="filled,dashed", fillcolor="#d9e8fb", color="#7b8794", tooltip="crates/ipu-codegen/src/exchange.rs:1217"];
    t32 [label="ipu_codegen::exchange::PendingTransfer\n«struct»", shape=ellipse, style="filled,dashed", fillcolor="#d9e8fb", color="#7b8794", tooltip="crates/ipu-codegen/src/exchange.rs:933"];
    t24 [label="ipu_codegen::exchange::PhaseDiagnostics\n«struct»", shape=ellipse, style="filled,dashed", fillcolor="#d9e8fb", color="#7b8794", tooltip="crates/ipu-codegen/src/exchange.rs:284"];
    t19 [label="ipu_codegen::exchange::PhysicalExchangePhase\n«struct»", shape=ellipse, style="filled,dashed", fillcolor="#d9e8fb", color="#7b8794", tooltip="crates/ipu-codegen/src/exchange.rs:24"];
    t5 [label="ipu_codegen::exchange::PhysicalTransfer\n«struct»", shape=ellipse, style="filled,dashed", fillcolor="#d9e8fb", color="#7b8794", tooltip="crates/ipu-codegen/src/exchange.rs:189"];
    t6 [label="ipu_codegen::exchange::ReadyTransfer\n«struct»", shape=ellipse, style="filled,dashed", fillcolor="#d9e8fb", color="#7b8794", tooltip="crates/ipu-codegen/src/exchange.rs:1966"];
    t23 [label="ipu_codegen::exchange::RepairReady\n«struct»", shape=ellipse, style="filled,dashed", fillcolor="#d9e8fb", color="#7b8794", tooltip="crates/ipu-codegen/src/exchange.rs:2789"];
    t1 [label="ipu_codegen::exchange::ScheduledPending\n«struct»", shape=ellipse, style="filled,dashed", fillcolor="#d9e8fb", color="#7b8794", tooltip="crates/ipu-codegen/src/exchange.rs:1225"];
    t10 [label="ipu_codegen::exchange::ScheduledTransfer\n«struct»", shape=ellipse, style="filled,dashed", fillcolor="#d9e8fb", color="#7b8794", tooltip="crates/ipu-codegen/src/exchange.rs:2186"];
    t22 [label="ipu_codegen::exchange::ScheduledTransferDiagnostic\n«struct»", shape=ellipse, style="filled,dashed", fillcolor="#d9e8fb", color="#7b8794", tooltip="crates/ipu-codegen/src/exchange.rs:274"];
    t12 [label="ipu_codegen::exchange::TileAvailability\n«struct»", shape=ellipse, style="filled,dashed", fillcolor="#d9e8fb", color="#7b8794", tooltip="crates/ipu-codegen/src/exchange.rs:2195"];
    t16 [label="ipu_codegen::exchange::TileMemorySchedule\n«struct»", shape=ellipse, style="filled,dashed", fillcolor="#d9e8fb", color="#7b8794", tooltip="crates/ipu-codegen/src/exchange.rs:2222"];
    t13 [label="ipu_codegen::exchange::TilePredecessor\n«struct»", shape=ellipse, style="filled,dashed", fillcolor="#d9e8fb", color="#7b8794", tooltip="crates/ipu-codegen/src/exchange.rs:2201"];
    t21 [label="ipu_codegen::exchange::TilePressure\n«struct»", shape=ellipse, style="filled,dashed", fillcolor="#d9e8fb", color="#7b8794", tooltip="crates/ipu-codegen/src/exchange.rs:265"];
    t8 [label="ipu_codegen::exchange::TransferAccess\n«struct»", shape=ellipse, style="filled,dashed", fillcolor="#d9e8fb", color="#7b8794", tooltip="crates/ipu-codegen/src/exchange.rs:2111"];
    t18 [label="ipu_codegen::exchange::TransferEndpoint\n«struct»", shape=ellipse, style="filled,dashed", fillcolor="#d9e8fb", color="#7b8794", tooltip="crates/ipu-codegen/src/exchange.rs:242"];
    t7 [label="ipu_codegen::exchange::TransferScheduler\n«struct»", shape=ellipse, style="filled,dashed", fillcolor="#d9e8fb", color="#7b8794", tooltip="crates/ipu-codegen/src/exchange.rs:1974"];
    t11 [label="ipu_codegen::exchange::TransferWidth\n«enum»", shape=ellipse, style="filled,dashed", fillcolor="#d9e8fb", color="#7b8794", tooltip="crates/ipu-codegen/src/exchange.rs:218"];
  }
  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"];
    xf2 [label="ipu_codegen::low::ExchangePhaseId::index", shape=box, fillcolor="#f5f5f5", color="#9aa5b1", style="rounded,filled,dashed", URL="ipu-codegen-low-part-1.svg", target="_top", tooltip="open target partition"];
    xf1 [label="ipu_codegen::low::LowShardId::index", shape=box, fillcolor="#f5f5f5", color="#9aa5b1", style="rounded,filled,dashed", URL="ipu-codegen-low-part-1.svg", target="_top", tooltip="open target partition"];
    xf3 [label="ipu_codegen::storage::logical_view_byte_spans", shape=box, fillcolor="#f5f5f5", color="#9aa5b1", style="rounded,filled,dashed", URL="ipu-codegen-storage.svg", target="_top", tooltip="open target partition"];
    xf4 [label="ipu_codegen::storage::view_byte_spans", shape=box, fillcolor="#f5f5f5", color="#9aa5b1", style="rounded,filled,dashed", URL="ipu-codegen-storage.svg", target="_top", tooltip="open target partition"];
    xf21 [label="ipu_exchange::PhaseProgramBuilder::active_tile_count", shape=box, fillcolor="#f5f5f5", color="#9aa5b1", style="rounded,filled,dashed", URL="ipu-exchange-part-1.svg", target="_top", tooltip="open target partition"];
    xf24 [label="ipu_exchange::PhaseProgramBuilder::append_transfer_at", shape=box, fillcolor="#f5f5f5", color="#9aa5b1", style="rounded,filled,dashed", URL="ipu-exchange-part-1.svg", target="_top", tooltip="open target partition"];
    xf22 [label="ipu_exchange::PhaseProgramBuilder::earliest_transfer_offset", shape=box, fillcolor="#f5f5f5", color="#9aa5b1", style="rounded,filled,dashed", URL="ipu-exchange-part-1.svg", target="_top", tooltip="open target partition"];
    xf23 [label="ipu_exchange::PhaseProgramBuilder::earliest_transfer_offset_deferred", shape=box, fillcolor="#f5f5f5", color="#9aa5b1", style="rounded,filled,dashed", URL="ipu-exchange-part-1.svg", target="_top", tooltip="open target partition"];
    xf20 [label="ipu_exchange::PhaseProgramBuilder::event_cycles", shape=box, fillcolor="#f5f5f5", color="#9aa5b1", style="rounded,filled,dashed", URL="ipu-exchange-part-1.svg", target="_top", tooltip="open target partition"];
    xf26 [label="ipu_exchange::PhaseProgramBuilder::finish", shape=box, fillcolor="#f5f5f5", color="#9aa5b1", style="rounded,filled,dashed", URL="ipu-exchange-part-1.svg", target="_top", tooltip="open target partition"];
    xf16 [label="ipu_exchange::PhaseProgramBuilder::new", shape=box, fillcolor="#f5f5f5", color="#9aa5b1", style="rounded,filled,dashed", URL="ipu-exchange-part-1.svg", target="_top", tooltip="open target partition"];
    xf18 [label="ipu_exchange::PhaseProgramBuilder::tile_count", shape=box, fillcolor="#f5f5f5", color="#9aa5b1", style="rounded,filled,dashed", URL="ipu-exchange-part-1.svg", target="_top", tooltip="open target partition"];
    xf19 [label="ipu_exchange::PhaseProgramBuilder::tile_event_cycles", shape=box, fillcolor="#f5f5f5", color="#9aa5b1", style="rounded,filled,dashed", URL="ipu-exchange-part-1.svg", target="_top", tooltip="open target partition"];
    xf25 [label="ipu_exchange::PhaseProgramBuilder::transfer_timing_at", 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::PhaseTransferTiming::payload_completion", 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::Topology::multicast", 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::Topology::paired_logical", 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::Topology::paired_multicast", shape=box, fillcolor="#f5f5f5", color="#9aa5b1", style="rounded,filled,dashed", URL="ipu-exchange-part-1.svg", target="_top", tooltip="open target partition"];
    xf6 [label="ipu_exchange::Topology::physical", 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::Topology::point_to_point", 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::diagnostic::diagnose_plan_program", shape=box, fillcolor="#f5f5f5", color="#9aa5b1", style="rounded,filled,dashed", URL="ipu-exchange-diagnostic.svg", target="_top", tooltip="open target partition"];
    xf17 [label="ipu_exchange::finalize_point_receiver", shape=box, fillcolor="#f5f5f5", color="#9aa5b1", style="rounded,filled,dashed", URL="ipu-exchange-part-1.svg", target="_top", tooltip="open target partition"];
    xf15 [label="ipu_exchange::patch_receiver_address", shape=box, fillcolor="#f5f5f5", color="#9aa5b1", style="rounded,filled,dashed", URL="ipu-exchange-part-1.svg", target="_top", tooltip="open target partition"];
    xf12 [label="ipu_exchange::patch_sender_address", shape=box, fillcolor="#f5f5f5", color="#9aa5b1", style="rounded,filled,dashed", URL="ipu-exchange-part-1.svg", target="_top", tooltip="open target partition"];
    xf13 [label="ipu_exchange::patch_sender_instruction", shape=box, fillcolor="#f5f5f5", color="#9aa5b1", style="rounded,filled,dashed", URL="ipu-exchange-part-1.svg", target="_top", tooltip="open target partition"];
    xf14 [label="ipu_exchange::sender_address_instruction_groups", shape=box, fillcolor="#f5f5f5", color="#9aa5b1", style="rounded,filled,dashed", URL="ipu-exchange-part-1.svg", target="_top", tooltip="open target partition"];
    xt1 [label="ipu_codegen::low::ExchangeOrder\n«enum»", shape=ellipse, fillcolor="#f5f5f5", color="#9aa5b1", style="filled,dashed", URL="ipu-codegen-low-part-2.svg", target="_top", tooltip="open defining partition"];
    xt0 [label="ipu_codegen::low::LogicalExchange\n«struct»", shape=ellipse, fillcolor="#f5f5f5", color="#9aa5b1", style="filled,dashed", URL="ipu-codegen-low-part-2.svg", target="_top", tooltip="open defining partition"];
    xt4 [label="ipu_codegen::low::LowProgram\n«struct»", shape=ellipse, fillcolor="#f5f5f5", color="#9aa5b1", style="filled,dashed", URL="ipu-codegen-low-part-2.svg", target="_top", tooltip="open defining partition"];
    xt3 [label="ipu_codegen::low::LowShardId\n«struct»", shape=ellipse, fillcolor="#f5f5f5", color="#9aa5b1", style="filled,dashed", URL="ipu-codegen-low-part-2.svg", target="_top", tooltip="open defining partition"];
    xt5 [label="ipu_codegen::low::ShardDefinition\n«enum»", shape=ellipse, fillcolor="#f5f5f5", color="#9aa5b1", style="filled,dashed", URL="ipu-codegen-low-part-2.svg", target="_top", tooltip="open defining partition"];
    xt2 [label="ipu_codegen::low::WorkProvenance\n«struct»", shape=ellipse, fillcolor="#f5f5f5", color="#9aa5b1", style="filled,dashed", URL="ipu-codegen-low-part-2.svg", target="_top", tooltip="open defining partition"];
    xt6 [label="ipu_codegen::place::Placement\n«struct»", shape=ellipse, fillcolor="#f5f5f5", color="#9aa5b1", style="filled,dashed", URL="ipu-codegen-place.svg", target="_top", tooltip="open defining partition"];
    xt9 [label="ipu_exchange::ExchangeError\n«enum»", shape=ellipse, fillcolor="#f5f5f5", color="#9aa5b1", style="filled,dashed", URL="ipu-exchange-part-2.svg", target="_top", tooltip="open defining partition"];
    xt7 [label="ipu_exchange::MulticastPlan\n«struct»", shape=ellipse, fillcolor="#f5f5f5", color="#9aa5b1", style="filled,dashed", URL="ipu-exchange-part-2.svg", target="_top", tooltip="open defining partition"];
    xt10 [label="ipu_exchange::PhaseProgramBuilder\n«struct»", shape=ellipse, fillcolor="#f5f5f5", color="#9aa5b1", style="filled,dashed", URL="ipu-exchange-part-2.svg", target="_top", tooltip="open defining partition"];
    xt11 [label="ipu_exchange::PhaseTransferTiming\n«struct»", shape=ellipse, fillcolor="#f5f5f5", color="#9aa5b1", style="filled,dashed", URL="ipu-exchange-part-2.svg", target="_top", tooltip="open defining partition"];
    xt8 [label="ipu_exchange::Topology\n«struct»", shape=ellipse, fillcolor="#f5f5f5", color="#9aa5b1", style="filled,dashed", URL="ipu-exchange-part-2.svg", target="_top", tooltip="open defining partition"];
  }
  f0 -> t4 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f0 -> t32 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f1 -> t18 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f1 -> t25 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f1 -> t32 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f2 -> f1 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f2 -> f7 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f2 -> t1 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f2 -> t25 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f2 -> t32 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f2 -> xt8 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f3 -> t17 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f4 -> f36 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f4 -> xf5 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f4 -> t19 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f4 -> t25 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f4 -> t30 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f4 -> t31 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f5 -> f1 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f5 -> f2 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f5 -> f3 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f5 -> f6 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f5 -> f8 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f5 -> f25 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f5 -> f47 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f5 -> t1 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f5 -> t25 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f5 -> t32 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f5 -> xt8 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f6 -> f25 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f6 -> t17 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f6 -> t25 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f6 -> t32 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f6 -> xt8 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f7 -> f8 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f7 -> f23 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f7 -> t0 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f7 -> t25 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f7 -> t32 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f7 -> xt8 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f8 -> f25 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f8 -> f27 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f8 -> f28 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f8 -> f29 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f8 -> f33 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f8 -> t0 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f8 -> t17 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f8 -> t25 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f8 -> t32 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f8 -> xt8 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f9 -> t18 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f9 -> t32 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f10 -> f12 [color="#2166ac", style="dotted", tooltip="source fallback (conservative)"];
  f10 -> f17 [color="#2166ac", style="dotted", tooltip="source fallback (conservative)"];
  f10 -> f44 [color="#2166ac", style="dotted", tooltip="source fallback (conservative)"];
  f10 -> t32 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f12 -> f16 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f12 -> f44 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f12 -> t6 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f13 -> f12 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f13 -> t12 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f13 -> t18 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f14 -> f12 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f14 -> f16 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f14 -> f44 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f16 -> t25 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f17 -> t8 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f17 -> t9 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f17 -> t18 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f17 -> t32 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f18 -> xf0 [color="#2166ac", style="dotted", tooltip="source fallback (conservative)"];
  f18 -> xf16 [color="#2166ac", style="dotted", tooltip="source fallback (conservative)"];
  f18 -> t12 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f18 -> t16 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f18 -> xt10 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f19 -> f11 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f19 -> f34 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f19 -> f36 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f19 -> xf11 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f19 -> t10 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f19 -> t13 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f19 -> t14 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f19 -> t15 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f19 -> t18 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f19 -> t25 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f19 -> t27 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f19 -> t28 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f19 -> t32 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f19 -> xt8 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f21 -> f20 [color="#2166ac", style="dotted", tooltip="source fallback (conservative)"];
  f21 -> t25 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f22 -> xf20 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f23 -> f24 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f23 -> f26 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f23 -> t17 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f23 -> t25 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f23 -> t32 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f23 -> xt8 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f24 -> f10 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f24 -> f13 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f24 -> f14 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f24 -> f15 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f24 -> f18 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f24 -> f19 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f24 -> f22 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f24 -> t7 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f24 -> t13 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f24 -> t17 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f24 -> t25 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f24 -> t32 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f24 -> xt8 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f25 -> f17 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f25 -> f18 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f25 -> f19 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f25 -> f22 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f25 -> f26 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f25 -> t13 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f25 -> t17 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f25 -> t25 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f25 -> t32 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f25 -> xt8 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f25 -> xt9 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f26 -> xf26 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f26 -> t17 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f26 -> t25 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f26 -> xt9 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f27 -> t17 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f28 -> f16 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f28 -> t18 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f28 -> t32 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f29 -> f16 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f29 -> f17 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f29 -> f30 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f29 -> t32 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f30 -> f31 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f30 -> t32 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f31 -> t32 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f32 -> f44 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f32 -> t12 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f32 -> t18 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f32 -> t23 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f32 -> t32 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f33 -> f16 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f33 -> f17 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f33 -> f32 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f33 -> f44 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f33 -> t12 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f33 -> t17 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f33 -> t18 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f33 -> t32 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f34 -> f21 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f34 -> f35 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f34 -> xf6 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f34 -> xf7 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f34 -> xf8 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f34 -> xf9 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f34 -> xf10 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f34 -> xf12 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f34 -> xf15 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f34 -> xf17 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f34 -> xf22 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f34 -> xf23 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f34 -> xf24 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f34 -> xf25 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f34 -> t10 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f34 -> t11 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f34 -> t16 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f34 -> t18 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f34 -> t25 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f34 -> xt7 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f34 -> xt8 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f34 -> xt10 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f34 -> xt11 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f35 -> f36 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f35 -> t16 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f35 -> t18 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f35 -> t25 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f35 -> t29 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f36 -> t29 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f38 -> f39 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f38 -> t2 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f38 -> t20 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f38 -> t25 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f38 -> xt4 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f38 -> xt6 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f38 -> xt8 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f39 -> f0 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f39 -> f5 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f39 -> f7 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f39 -> f9 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f39 -> f11 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f39 -> f40 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f39 -> f41 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f39 -> f42 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f39 -> f43 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f39 -> f45 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f39 -> f46 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f39 -> xf2 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f39 -> xf13 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f39 -> xf14 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f39 -> xf26 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f39 -> t0 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f39 -> t1 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f39 -> t2 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f39 -> t3 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f39 -> t17 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f39 -> t18 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f39 -> t19 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f39 -> t20 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f39 -> t24 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f39 -> t25 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f39 -> t26 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f39 -> t32 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f39 -> xt3 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f39 -> xt4 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f39 -> xt6 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f39 -> xt8 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f40 -> f36 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f40 -> xf1 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f40 -> xf3 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f40 -> xf4 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f40 -> t5 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f40 -> t11 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f40 -> t25 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f40 -> t32 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f40 -> xt0 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f40 -> xt1 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f40 -> xt4 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f40 -> xt5 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f40 -> xt6 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f41 -> t21 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f42 -> t18 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f42 -> t22 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f43 -> xf18 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f43 -> xf19 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f43 -> xf21 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f43 -> t12 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f43 -> xt2 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f43 -> xt10 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f45 -> f36 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f46 -> f11 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f46 -> f45 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f46 -> t25 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f46 -> t32 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f46 -> xt3 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f46 -> xt6 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f47 -> xf6 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f47 -> xf7 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f47 -> xf8 [color="#2166ac", style="solid", tooltip="rustc MIR call edge"];
  f47 -> t11 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f47 -> t18 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f47 -> t25 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f47 -> t32 [style=dashed, color="#9aa5b1", arrowhead=none, constraint=false, tooltip="uses workspace type"];
  f47 -> xt8 [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"];
}
