mirror of
https://github.com/intel/intel-graphics-compiler.git
synced 2025-11-04 08:21:06 +08:00
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.
44 lines
1.3 KiB
C++
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_
|