Files
compute-runtime/core/program/program_info.h
Jaroslaw Chodor a53e26342a Program refactor
* Decouple binary program handling from Program object
* Add binary formats multiplexer
* Improve Elf format support

Change-Id: Ic22aff40173532e14825d70b82ec53fcc5fa9fdf
2020-02-08 13:03:29 +01:00

49 lines
1.1 KiB
C++

/*
* Copyright (C) 2020 Intel Corporation
*
* SPDX-License-Identifier: MIT
*
*/
#pragma once
#include "core/compiler_interface/linker.h"
#include <cstddef>
#include <memory>
#include <vector>
namespace NEO {
struct KernelInfo;
struct ProgramInfo {
ProgramInfo() = default;
ProgramInfo(ProgramInfo &&) = default;
ProgramInfo &operator=(ProgramInfo &&) = default;
ProgramInfo(const ProgramInfo &) = delete;
ProgramInfo &operator=(const ProgramInfo &) = delete;
~ProgramInfo();
struct GlobalSurfaceInfo {
const void *initData = nullptr;
size_t size = 0U;
};
void prepareLinkerInputStorage() {
if (this->linkerInput == nullptr) {
this->linkerInput = std::make_unique<LinkerInput>();
}
}
GlobalSurfaceInfo globalConstants;
GlobalSurfaceInfo globalVariables;
std::unique_ptr<LinkerInput> linkerInput;
std::vector<KernelInfo *> kernelInfos;
};
size_t getMaxInlineSlmNeeded(const ProgramInfo &programInfo);
bool requiresLocalMemoryWindowVA(const ProgramInfo &programInfo);
} // namespace NEO