E6009

E6009 — A statically-shaped tensor placed in a memory space exceeds that space's capacity.

What the compiler reports

E6009 … 16384 bytes

The fragments the test suite holds the compiler to. An ellipsis marks text the test does not constrain; the emitted message also carries a source location.

A program that triggers it

//
// Part of the Vx Project, under the Apache License v2.0 with LLVM Exceptions.
// See LICENSE for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
// A tensor transferred into a memory space must fit that space's declared capacity
// (E6009). Here a 64x64 f32 tile (16 KiB) is transferred into a 1 KiB NPU_HBM.
//

Memory NPU_HBM {
  capacity: 1 KiB
}

fn main() -> i32 {
  let big: Tensor<f32, [64, 64]> = Tensor<f32, [64, 64]>::uninit();
  let staged = transfer(big, Memory::NPU_HBM);
  return 0;
}

From tests/frontend/fail/memory_capacity_exceeded.vx, which asserts this diagnostic on every commit.

Related