diff --git a/hercules_opt/src/fork_transforms.rs b/hercules_opt/src/fork_transforms.rs index cbb09bbfe3a1dd9e0359ee05376a40481fa4b5f1..190dbd2519c54342b917b119816ffd02f97d8da9 100644 --- a/hercules_opt/src/fork_transforms.rs +++ b/hercules_opt/src/fork_transforms.rs @@ -725,8 +725,13 @@ pub fn chunk_fork_unguarded( ) -> () { // tid_dim_idx = tid_dim_idx * tile_size + tid_(dim_idx + 1) + let Node::Fork { control: old_control, factors: ref old_factors} = *editor.node(fork) else {return}; + if dim_idx >= old_factors.len() { + return; // FIXME Error here? + } + let mut new_factors: Vec<_> = old_factors.to_vec(); let fork_users: Vec<_> = editor.get_users(fork).map(|f| (f, editor.node(f).clone())).collect();