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