mirror of
https://github.com/intel/compute-runtime.git
synced 2025-12-22 10:17:01 +08:00
Optimize binaries' size by adjusting linkage of constants in headers
When header is included for the first time in translation unit, then preprocessor simply copy-pastes its content. If we define a constant in a header file and this constant has internal linkage then each and every translation unit, which includes this header will have its own copy of this constant. C++17 introduces inline variables, which are meant to allow creation of variables in header files, which do not cause multiple instances. The inline variable has a single instance when: - constexpr is used without static (constexpr implicitly implies inline) - inline is used without static - inline const is used without static (const does not imply internal linkage when used with inline) Signed-off-by: Patryk Wrobel <patryk.wrobel@intel.com>
This commit is contained in:
committed by
Compute-Runtime-Automation
parent
ffe8c75291
commit
c0342a0ab5
@@ -15,29 +15,29 @@
|
||||
|
||||
namespace NEO {
|
||||
namespace CompilerOptions {
|
||||
static constexpr ConstStringRef greaterThan4gbBuffersRequired = "-cl-intel-greater-than-4GB-buffer-required";
|
||||
static constexpr ConstStringRef hasBufferOffsetArg = "-cl-intel-has-buffer-offset-arg";
|
||||
static constexpr ConstStringRef kernelDebugEnable = "-cl-kernel-debug-enable";
|
||||
static constexpr ConstStringRef arch32bit = "-m32";
|
||||
static constexpr ConstStringRef arch64bit = "-m64";
|
||||
static constexpr ConstStringRef debugKernelEnable = "-cl-kernel-debug-enable";
|
||||
static constexpr ConstStringRef optDisable = "-cl-opt-disable";
|
||||
static constexpr ConstStringRef argInfo = "-cl-kernel-arg-info";
|
||||
static constexpr ConstStringRef gtpinRera = "-cl-intel-gtpin-rera";
|
||||
static constexpr ConstStringRef finiteMathOnly = "-cl-finite-math-only";
|
||||
static constexpr ConstStringRef fastRelaxedMath = "-cl-fast-relaxed-math";
|
||||
static constexpr ConstStringRef preserveVec3Type = "-fpreserve-vec3-type";
|
||||
static constexpr ConstStringRef createLibrary = "-create-library";
|
||||
static constexpr ConstStringRef generateDebugInfo = "-g";
|
||||
static constexpr ConstStringRef bindlessMode = "-cl-intel-use-bindless-mode -cl-intel-use-bindless-advanced-mode";
|
||||
static constexpr ConstStringRef uniformWorkgroupSize = "-cl-uniform-work-group-size";
|
||||
static constexpr ConstStringRef forceEmuInt32DivRem = "-cl-intel-force-emu-int32divrem";
|
||||
static constexpr ConstStringRef forceEmuInt32DivRemSP = "-cl-intel-force-emu-sp-int32divrem";
|
||||
static constexpr ConstStringRef allowZebin = "-cl-intel-allow-zebin";
|
||||
static constexpr ConstStringRef enableImageSupport = "-D__IMAGE_SUPPORT__=1";
|
||||
static constexpr ConstStringRef optLevel = "-ze-opt-level=O";
|
||||
static constexpr ConstStringRef excludeIrFromZebin = "-exclude-ir-from-zebin";
|
||||
static constexpr ConstStringRef noRecompiledFromIr = "-Wno-recompiled-from-ir";
|
||||
constexpr ConstStringRef greaterThan4gbBuffersRequired = "-cl-intel-greater-than-4GB-buffer-required";
|
||||
constexpr ConstStringRef hasBufferOffsetArg = "-cl-intel-has-buffer-offset-arg";
|
||||
constexpr ConstStringRef kernelDebugEnable = "-cl-kernel-debug-enable";
|
||||
constexpr ConstStringRef arch32bit = "-m32";
|
||||
constexpr ConstStringRef arch64bit = "-m64";
|
||||
constexpr ConstStringRef debugKernelEnable = "-cl-kernel-debug-enable";
|
||||
constexpr ConstStringRef optDisable = "-cl-opt-disable";
|
||||
constexpr ConstStringRef argInfo = "-cl-kernel-arg-info";
|
||||
constexpr ConstStringRef gtpinRera = "-cl-intel-gtpin-rera";
|
||||
constexpr ConstStringRef finiteMathOnly = "-cl-finite-math-only";
|
||||
constexpr ConstStringRef fastRelaxedMath = "-cl-fast-relaxed-math";
|
||||
constexpr ConstStringRef preserveVec3Type = "-fpreserve-vec3-type";
|
||||
constexpr ConstStringRef createLibrary = "-create-library";
|
||||
constexpr ConstStringRef generateDebugInfo = "-g";
|
||||
constexpr ConstStringRef bindlessMode = "-cl-intel-use-bindless-mode -cl-intel-use-bindless-advanced-mode";
|
||||
constexpr ConstStringRef uniformWorkgroupSize = "-cl-uniform-work-group-size";
|
||||
constexpr ConstStringRef forceEmuInt32DivRem = "-cl-intel-force-emu-int32divrem";
|
||||
constexpr ConstStringRef forceEmuInt32DivRemSP = "-cl-intel-force-emu-sp-int32divrem";
|
||||
constexpr ConstStringRef allowZebin = "-cl-intel-allow-zebin";
|
||||
constexpr ConstStringRef enableImageSupport = "-D__IMAGE_SUPPORT__=1";
|
||||
constexpr ConstStringRef optLevel = "-ze-opt-level=O";
|
||||
constexpr ConstStringRef excludeIrFromZebin = "-exclude-ir-from-zebin";
|
||||
constexpr ConstStringRef noRecompiledFromIr = "-Wno-recompiled-from-ir";
|
||||
|
||||
constexpr size_t nullterminateSize = 1U;
|
||||
constexpr size_t spaceSeparatorSize = 1U;
|
||||
|
||||
Reference in New Issue
Block a user