namespace iree;

// Bitfield indicating which executable features are compiled into a particular
// executable.
enum ExecutableFeature : uint (bit_flags) {
  // Executable supports debugging.
  // This may not mean that it'll be the best debugging (for example an -O3
  // executable could still support debugging, just not well).
  kDebugging = 0,
  // Executable supports coverage recording.
  kCoverage = 1,
  // Executable supports profile recording.
  kProfiling = 2,
}

// A set of one or more executables that can be dispatched at runtime.
//
// Executables may contain multiple entry points to allow devices to more
// efficiently share preparation results. It is expected that all executables
// representing the same dispatchable code have the same number of entry points
// with the same meaning.
table ExecutableDef {
  // ExecutableFormat 4CC used to match on device support.
  format:uint;

  // Bitfield indicating which executable features are supported.
  // Multiple executables with the same format but differing supported features
  // may be present, for example to enable both optimized and debugger-friendly
  // versions in the same module.
  supported_features:ExecutableFeature;

  // Executable contents.
  // Opaque and left to individual device implementations as to how this is
  // loaded and processed at runtime.
  contents:[ubyte];
}

root_type ExecutableDef;
