Files
intel-graphics-compiler/visa/BinaryEncodingIGA.h
Wei Chen edaaefc019 (NFC) More cleanup for vISA memory management
Continue to clean up legacy code's memory allocation practices. Changes include
-- Several classes were holding reference to a vISA memory manager but not
   performing any allocation. Remove such references and any resulting dead
   allocators.
-- Have each class (RA, SWSB, DebugInfo, etc.) create its own memory manager
   instaed of passing the kernel's memory manager in. This should reduce vISA
   memory footprint as such class object's allocations will now be freed at the
   end of their lifetime.
-- Avoid creating variable names in non-debug build for the spill manager, as
   the variable names are only used when dumping IR.
-- Give unique names for each class's memory manager to make searching their
   uses easier.
2023-01-04 00:39:56 +01:00

44 lines
1.3 KiB
C++

/*========================== begin_copyright_notice ============================
Copyright (C) 2017-2021 Intel Corporation
SPDX-License-Identifier: MIT
============================= end_copyright_notice ===========================*/
#ifndef _BINARYENCODINGIGA_H_
#define _BINARYENCODINGIGA_H_
#include "FlowGraph.h"
#include "G4_IR.hpp"
#include "iga/IGALibrary/IR/Types.hpp"
#include <string>
namespace vISA {
// NOTE: IGA internals should be minimally leaked into vISA/G4
// Encodes a G4_Kernel via the IGA assembler
struct EncodeResult {
void *binary;
size_t binaryLen;
std::string error; // in case of error
};
EncodeResult EncodeKernelIGA(G4_Kernel &k, const std::string &fname);
bool InstSupportsSaturationIGA(TARGET_PLATFORM p, const G4_INST &i,
const IR_Builder &builder);
bool InstSupportsSrcModifierIGA(TARGET_PLATFORM p, const G4_INST &i,
const IR_Builder &builder);
///////////////////////////////////////////////////////////////////////////
// TODO: remove these in step 2
// const iga::Model *GetModelIGA(TARGET_PLATFORM p);
//
// std::pair<const iga::OpSpec*,iga::Subfunction> GetOpInfoIGA(
// const G4_INST *inst, iga::Platform p, bool allowUnknownOp);
} // namespace vISA
#endif //_BINARYENCODINGIGA_H_