mirror of
https://github.com/intel/compute-runtime.git
synced 2026-01-08 14:02:58 +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
@@ -17,7 +17,7 @@
|
||||
|
||||
namespace NEO {
|
||||
|
||||
static const size_t maxFlushSubrangeCount = 126;
|
||||
inline const size_t maxFlushSubrangeCount = 126;
|
||||
struct L3Range {
|
||||
static constexpr uint64_t minAlignment = MemoryConstants::pageSize;
|
||||
static constexpr uint64_t minAlignmentMask = minAlignment - 1ULL;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2018-2021 Intel Corporation
|
||||
* Copyright (C) 2018-2022 Intel Corporation
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
@@ -9,8 +9,8 @@
|
||||
#include <cstdint>
|
||||
|
||||
namespace NEO {
|
||||
const uint32_t pipelineSelectEnablePipelineSelectMaskBits = 0x3;
|
||||
const uint32_t pipelineSelectMediaSamplerDopClockGateMaskBits = 0x10;
|
||||
const uint32_t pipelineSelectMediaSamplerPowerClockGateMaskBits = 0x40;
|
||||
const uint32_t pipelineSelectSystolicModeEnableMaskBits = 0x80;
|
||||
constexpr uint32_t pipelineSelectEnablePipelineSelectMaskBits = 0x3;
|
||||
constexpr uint32_t pipelineSelectMediaSamplerDopClockGateMaskBits = 0x10;
|
||||
constexpr uint32_t pipelineSelectMediaSamplerPowerClockGateMaskBits = 0x40;
|
||||
constexpr uint32_t pipelineSelectSystolicModeEnableMaskBits = 0x80;
|
||||
} // namespace NEO
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2018-2021 Intel Corporation
|
||||
* Copyright (C) 2018-2022 Intel Corporation
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
@@ -9,12 +9,12 @@
|
||||
#include <cstddef>
|
||||
#include <cstdint>
|
||||
|
||||
static const int ptrGarbageContent[16] = {
|
||||
inline const int ptrGarbageContent[16] = {
|
||||
0x0131, 0x133, 0xA, 0xEF,
|
||||
0x0131, 0x133, 0xA, 0xEF,
|
||||
0x0131, 0x133, 0xA, 0xEF,
|
||||
0x0131, 0x133, 0xA, 0xEF};
|
||||
static const auto ptrGarbage = (void *)ptrGarbageContent;
|
||||
inline const auto ptrGarbage = (void *)ptrGarbageContent;
|
||||
|
||||
template <typename T>
|
||||
inline T ptrOffset(T ptrBefore, size_t offset) {
|
||||
|
||||
Reference in New Issue
Block a user