Skip to content

Commit d04fd6e

Browse files
authored
[CPU] Fix google-default-arguments clang-tidy remarks (#28772)
### Details: - Fix "google-default-arguments" issues reported by clang-tidy - Enable "google-default-arguments" clang-tidy checks on CI by default - Introduce "emit_code_impl" in JIT emitters to avoid default arguments in virtual methods ### Tickets: - N/A
1 parent 3c2526a commit d04fd6e

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

45 files changed

+192
-157
lines changed

src/common/snippets/include/snippets/emitter.hpp

+24-5
Original file line numberDiff line numberDiff line change
@@ -52,16 +52,21 @@ class Emitter {
5252

5353
/**
5454
* @brief called by generator to generate code to produce target code for a specific operation
55+
* @details
56+
* Avoid passing default arguments to virtual function, but still allow user to call
57+
* emit_code function without "pool" or "gpr"
5558
* @param in vector of vector argument registers
5659
* @param out vector of vector resulting registers
5760
* @param pool optional vector of free vector registers which might be used inside method
58-
* @param gpr vector of free generam puproce registers which might be used inside method
61+
* @param gpr vector of free general purpose registers which might be used inside method
5962
* @return void
6063
*/
61-
virtual void emit_code(const std::vector<size_t>& in,
62-
const std::vector<size_t>& out,
63-
const std::vector<size_t>& pool = {},
64-
const std::vector<size_t>& gpr = {}) const = 0;
64+
void emit_code(const std::vector<size_t>& in,
65+
const std::vector<size_t>& out,
66+
const std::vector<size_t>& pool = {},
67+
const std::vector<size_t>& gpr = {}) const {
68+
emit_code_impl(in, out, pool, gpr);
69+
}
6570

6671
/**
6772
* @brief called by generator to generate data section, if needed for a specific operation
@@ -70,6 +75,20 @@ class Emitter {
7075
virtual void emit_data() const {}
7176

7277
virtual ~Emitter() = default;
78+
79+
private:
80+
/**
81+
* @brief called by generator to generate code to produce target code for a specific operation
82+
* @param in vector of vector argument registers
83+
* @param out vector of vector resulting registers
84+
* @param pool optional vector of free vector registers which might be used inside method
85+
* @param gpr vector of free general purpose registers which might be used inside method
86+
* @return void
87+
*/
88+
virtual void emit_code_impl(const std::vector<size_t>& in,
89+
const std::vector<size_t>& out,
90+
const std::vector<size_t>& pool,
91+
const std::vector<size_t>& gpr) const = 0;
7392
};
7493

7594
} // namespace snippets

src/common/snippets/tests/include/lowering_utils.hpp

+5-4
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,12 @@ using BlockedShapeVector = ov::snippets::op::Subgraph::BlockedShapeVector;
1919
class DummyEmitter : public ov::snippets::Emitter {
2020
public:
2121
DummyEmitter(const std::vector<ov::Node::type_info_t>& custom_opset = {}) : ov::snippets::Emitter() {}
22-
void emit_code(const std::vector<size_t>&,
23-
const std::vector<size_t>&,
24-
const std::vector<size_t>&,
25-
const std::vector<size_t>&) const override {}
2622
void emit_data() const override {}
23+
protected:
24+
void emit_code_impl(const std::vector<size_t>&,
25+
const std::vector<size_t>&,
26+
const std::vector<size_t>&,
27+
const std::vector<size_t>&) const override {}
2728
};
2829

2930
struct DummyCompiledSnippet : public ov::snippets::CompiledSnippet {

src/plugins/intel_cpu/src/.clang-tidy

-1
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,6 @@ Checks: >
4545
-cppcoreguidelines-narrowing-conversions,
4646
-cppcoreguidelines-pro-bounds-pointer-arithmetic,
4747
-google-build-using-namespace,
48-
-google-default-arguments,
4948
-google-explicit-constructor,
5049
-google-readability-casting,
5150
-google-readability-todo,

src/plugins/intel_cpu/src/cpu_memory.h

+4-4
Original file line numberDiff line numberDiff line change
@@ -188,7 +188,7 @@ class IMemory {
188188
// Caution!!! This action invalidates the previous data layout. The old data may become unreachable.
189189
virtual void redefineDesc(MemoryDescPtr desc) = 0;
190190

191-
virtual void load(const IMemory& src, bool ftz = true) const = 0;
191+
virtual void load(const IMemory& src, bool ftz) const = 0;
192192

193193
virtual MemoryBlockPtr getMemoryBlock() const = 0;
194194

@@ -260,7 +260,7 @@ class StaticMemory final : public IMemory {
260260
// Always throws since a static memory descriptor should not be modified
261261
void redefineDesc(MemoryDescPtr desc) override;
262262

263-
void load(const IMemory& src, bool ftz = true) const override;
263+
void load(const IMemory& src, bool ftz) const override;
264264

265265
MemoryBlockPtr getMemoryBlock() const override;
266266

@@ -315,7 +315,7 @@ class Memory : public IMemory {
315315

316316
void redefineDesc(MemoryDescPtr desc) override;
317317

318-
void load(const IMemory& src, bool ftz = true) const override;
318+
void load(const IMemory& src, bool ftz) const override;
319319
void nullify() override;
320320

321321
dnnl::engine getEngine() const {
@@ -421,7 +421,7 @@ class StringMemory : public IMemory {
421421

422422
void redefineDesc(MemoryDescPtr desc) override;
423423

424-
void load(const IMemory& src, bool ftz = false) const override;
424+
void load(const IMemory& src, bool ftz) const override;
425425

426426
MemoryBlockPtr getMemoryBlock() const override;
427427

src/plugins/intel_cpu/src/cpu_tensor.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ class Tensor : public ITensor {
2727

2828
const ov::Strides& get_strides() const override;
2929

30-
void* data(const element::Type& type = {}) const override;
30+
void* data(const element::Type& type) const override;
3131

3232
MemoryPtr get_memory() {
3333
return m_memptr;

src/plugins/intel_cpu/src/dnnl_postops_composer.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -659,7 +659,7 @@ static MemoryPtr prepackDecompressionParams(const MemoryCPtr& paramsPtr,
659659
srcFormat);
660660
auto srcMem = std::make_shared<Memory>(engine, srcMemoryDesc, paramsPtr->getData());
661661

662-
dstMem->load(*srcMem);
662+
dstMem->load(*srcMem, true);
663663
return dstMem;
664664
}
665665

src/plugins/intel_cpu/src/emitters/plugin/aarch64/jit_emitter.cpp

+4-4
Original file line numberDiff line numberDiff line change
@@ -43,10 +43,10 @@ const std::vector<size_t> jit_emitter::store_gpr_regs = {
4343
static const std::vector<size_t> vec_regs = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
4444
16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31};
4545

46-
void jit_emitter::emit_code(const std::vector<size_t>& in_idxs,
47-
const std::vector<size_t>& out_idxs,
48-
const std::vector<size_t>& pool_vec_idxs,
49-
const std::vector<size_t>& pool_gpr_idxs) const {
46+
void jit_emitter::emit_code_impl(const std::vector<size_t>& in_idxs,
47+
const std::vector<size_t>& out_idxs,
48+
const std::vector<size_t>& pool_vec_idxs,
49+
const std::vector<size_t>& pool_gpr_idxs) const {
5050
emitter_preamble(in_idxs, out_idxs, pool_vec_idxs, pool_gpr_idxs);
5151

5252
emit_impl(in_idxs, out_idxs);

src/plugins/intel_cpu/src/emitters/plugin/aarch64/jit_emitter.hpp

+5-5
Original file line numberDiff line numberDiff line change
@@ -48,11 +48,6 @@ class jit_emitter : public ov::snippets::Emitter {
4848
p_table(0),
4949
l_table(new Xbyak_aarch64::Label()) {}
5050

51-
void emit_code(const std::vector<size_t>& in_idxs,
52-
const std::vector<size_t>& out_idxs,
53-
const std::vector<size_t>& pool_vec_idxs = {},
54-
const std::vector<size_t>& pool_gpr_idxs = {}) const override;
55-
5651
void emit_data() const override;
5752

5853
virtual size_t get_inputs_count() const = 0;
@@ -84,6 +79,11 @@ class jit_emitter : public ov::snippets::Emitter {
8479
virtual void prepare_table();
8580
virtual void register_table_entries() {}
8681

82+
void emit_code_impl(const std::vector<size_t>& in_idxs,
83+
const std::vector<size_t>& out_idxs,
84+
const std::vector<size_t>& pool_vec_idxs,
85+
const std::vector<size_t>& pool_gpr_idxs) const override;
86+
8787
void load_table_addr() const {
8888
h->adr(p_table, *l_table.get());
8989
}

src/plugins/intel_cpu/src/emitters/plugin/x64/jit_dnnl_emitters.cpp

+4-4
Original file line numberDiff line numberDiff line change
@@ -65,10 +65,10 @@ size_t jit_dnnl_emitter::get_inputs_num() const {
6565
return 1;
6666
}
6767

68-
void jit_dnnl_emitter::emit_code(const std::vector<size_t>& in_vec_idxs,
69-
const std::vector<size_t>& out_vec_idxs,
70-
const std::vector<size_t>& pool_vec_idxs,
71-
const std::vector<size_t>& pool_gpr_idxs) const {
68+
void jit_dnnl_emitter::emit_code_impl(const std::vector<size_t>& in_vec_idxs,
69+
const std::vector<size_t>& out_vec_idxs,
70+
const std::vector<size_t>& pool_vec_idxs,
71+
const std::vector<size_t>& pool_gpr_idxs) const {
7272
if (host_isa_ == cpu::x64::sse41) {
7373
if (out_vec_idxs[0] != in_vec_idxs[0]) {
7474
h->uni_vmovups(Xmm(out_vec_idxs[0]), Xmm(in_vec_idxs[0]));

src/plugins/intel_cpu/src/emitters/plugin/x64/jit_dnnl_emitters.hpp

+5-5
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,6 @@ namespace ov::intel_cpu {
1212

1313
class jit_dnnl_emitter : public jit_emitter {
1414
public:
15-
void emit_code(const std::vector<size_t>& in_vec_idxs,
16-
const std::vector<size_t>& out_vec_idxs,
17-
const std::vector<size_t>& pool_vec_idxs,
18-
const std::vector<size_t>& pool_gpr_idxs) const override;
19-
2015
void emit_data() const override;
2116

2217
void emit_impl(const std::vector<size_t>& in_idxs, const std::vector<size_t>& out_idxs) const override{};
@@ -37,6 +32,11 @@ class jit_dnnl_emitter : public jit_emitter {
3732
ov::element::Type exec_prc = ov::element::f32);
3833
void set_injector();
3934

35+
void emit_code_impl(const std::vector<size_t>& in_vec_idxs,
36+
const std::vector<size_t>& out_vec_idxs,
37+
const std::vector<size_t>& pool_vec_idxs,
38+
const std::vector<size_t>& pool_gpr_idxs) const override;
39+
4040
dnnl_alg_kind_t kind{dnnl_alg_kind_undef};
4141
float alpha{0.f};
4242
float beta{0.f};

src/plugins/intel_cpu/src/emitters/plugin/x64/jit_emitter.cpp

+4-4
Original file line numberDiff line numberDiff line change
@@ -247,10 +247,10 @@ void jit_emitter::prepare_table() {
247247
}
248248
}
249249

250-
void jit_emitter::emit_code(const std::vector<size_t>& in_idxs,
251-
const std::vector<size_t>& out_idxs,
252-
const std::vector<size_t>& pool_vec_idxs,
253-
const std::vector<size_t>& pool_gpr_idxs) const {
250+
void jit_emitter::emit_code_impl(const std::vector<size_t>& in_idxs,
251+
const std::vector<size_t>& out_idxs,
252+
const std::vector<size_t>& pool_vec_idxs,
253+
const std::vector<size_t>& pool_gpr_idxs) const {
254254
emitter_preamble(in_idxs, out_idxs, pool_vec_idxs, pool_gpr_idxs);
255255

256256
emit_impl(in_idxs, out_idxs);

src/plugins/intel_cpu/src/emitters/plugin/x64/jit_emitter.hpp

+5-4
Original file line numberDiff line numberDiff line change
@@ -46,10 +46,6 @@ class jit_emitter : public ov::snippets::Emitter {
4646
k_mask = Xbyak::Opmask(1); // FIXME: in general case we need preserve k_mask state as well
4747
}
4848

49-
void emit_code(const std::vector<size_t>& in_idxs,
50-
const std::vector<size_t>& out_idxs,
51-
const std::vector<size_t>& pool_vec_idxs = {},
52-
const std::vector<size_t>& pool_gpr_idxs = {}) const override;
5349
void emit_data() const override;
5450

5551
virtual size_t get_inputs_num() const = 0;
@@ -84,6 +80,11 @@ class jit_emitter : public ov::snippets::Emitter {
8480
ov::element::Type exec_prc_;
8581
Xbyak::Opmask k_mask;
8682

83+
void emit_code_impl(const std::vector<size_t>& in_idxs,
84+
const std::vector<size_t>& out_idxs,
85+
const std::vector<size_t>& pool_vec_idxs,
86+
const std::vector<size_t>& pool_gpr_idxs) const override;
87+
8788
virtual void prepare_table();
8889
virtual void register_table_entries() {}
8990

src/plugins/intel_cpu/src/emitters/snippets/aarch64/jit_kernel_emitter.cpp

+4-4
Original file line numberDiff line numberDiff line change
@@ -101,10 +101,10 @@ jit_kernel_emitter::jit_kernel_emitter(jit_generator* h,
101101
data_ptr_regs_idx = snippets::utils::transform_snippets_regs_to_idxs(data_ptr_regs, snippets::RegType::gpr);
102102
}
103103

104-
void jit_kernel_emitter::emit_code(const std::vector<size_t>& in,
105-
const std::vector<size_t>& out,
106-
const std::vector<size_t>& pool_vec_idxs,
107-
const std::vector<size_t>& pool_gpr_idxs) const {
104+
void jit_kernel_emitter::emit_code_impl(const std::vector<size_t>& in,
105+
const std::vector<size_t>& out,
106+
const std::vector<size_t>& pool_vec_idxs,
107+
const std::vector<size_t>& pool_gpr_idxs) const {
108108
validate_arguments(in, out);
109109
aux_vec_idxs = pool_vec_idxs;
110110
aux_gpr_idxs = pool_gpr_idxs;

src/plugins/intel_cpu/src/emitters/snippets/aarch64/jit_kernel_emitter.hpp

+5-4
Original file line numberDiff line numberDiff line change
@@ -36,10 +36,6 @@ class jit_kernel_emitter : public jit_emitter {
3636
size_t get_inputs_count() const override {
3737
return 0;
3838
}
39-
void emit_code(const std::vector<size_t>& in_idxs,
40-
const std::vector<size_t>& out_idxs,
41-
const std::vector<size_t>& pool_vec_idxs,
42-
const std::vector<size_t>& pool_gpr_idxs) const override;
4339

4440
protected:
4541
void validate_arguments(const std::vector<size_t>& in, const std::vector<size_t>& out) const override;
@@ -54,6 +50,11 @@ class jit_kernel_emitter : public jit_emitter {
5450
virtual void init_data_pointers(const std::vector<Xbyak_aarch64::XReg>& arg_regs,
5551
const std::vector<Xbyak_aarch64::XReg>& data_ptr_regs) const = 0;
5652

53+
void emit_code_impl(const std::vector<size_t>& in_idxs,
54+
const std::vector<size_t>& out_idxs,
55+
const std::vector<size_t>& pool_vec_idxs,
56+
const std::vector<size_t>& pool_gpr_idxs) const override;
57+
5758
void emit_impl(const std::vector<size_t>& in, const std::vector<size_t>& out) const override;
5859

5960
jit_snippets_compile_args jcp;

src/plugins/intel_cpu/src/emitters/snippets/aarch64/jit_loop_emitters.cpp

+5-5
Original file line numberDiff line numberDiff line change
@@ -39,10 +39,10 @@ void jit_loop_begin_emitter::validate_arguments(const std::vector<size_t>& in, c
3939
OV_CPU_JIT_EMITTER_ASSERT(loop_begin_label != nullptr, "has not inited label!");
4040
}
4141

42-
void jit_loop_begin_emitter::emit_code(const std::vector<size_t>& in,
43-
const std::vector<size_t>& out,
44-
const std::vector<size_t>& pool_vec_idxs,
45-
const std::vector<size_t>& pool_gpr_idxs) const {
42+
void jit_loop_begin_emitter::emit_code_impl(const std::vector<size_t>& in,
43+
const std::vector<size_t>& out,
44+
const std::vector<size_t>& pool_vec_idxs,
45+
const std::vector<size_t>& pool_gpr_idxs) const {
4646
validate_arguments(in, out);
4747
emit_impl(in, out);
4848
}
@@ -123,7 +123,7 @@ void jit_loop_end_emitter::validate_arguments(const std::vector<size_t>& in, con
123123
OV_CPU_JIT_EMITTER_ASSERT(loop_begin_label != nullptr, "has not inited begin label!");
124124
}
125125

126-
void jit_loop_end_emitter::emit_code(const std::vector<size_t>& in,
126+
void jit_loop_end_emitter::emit_code_impl(const std::vector<size_t>& in,
127127
const std::vector<size_t>& out,
128128
const std::vector<size_t>& pool_vec_idxs,
129129
const std::vector<size_t>& pool_gpr_idxs) const {

src/plugins/intel_cpu/src/emitters/snippets/aarch64/jit_loop_emitters.hpp

+8-9
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,6 @@ class jit_loop_begin_emitter : public jit_emitter {
2020
size_t get_inputs_count() const override {
2121
return 0;
2222
}
23-
24-
void emit_code(const std::vector<size_t>& in_idxs,
25-
const std::vector<size_t>& out_idxs,
26-
const std::vector<size_t>& pool_vec_idxs = {},
27-
const std::vector<size_t>& pool_gpr_idxs = {}) const override;
28-
2923
std::shared_ptr<const Xbyak_aarch64::Label> get_begin_label() {
3024
return loop_begin_label;
3125
}
@@ -34,6 +28,11 @@ class jit_loop_begin_emitter : public jit_emitter {
3428
void validate_arguments(const std::vector<size_t>& in, const std::vector<size_t>& out) const override;
3529
void emit_impl(const std::vector<size_t>& in, const std::vector<size_t>& out) const override;
3630

31+
void emit_code_impl(const std::vector<size_t>& in_idxs,
32+
const std::vector<size_t>& out_idxs,
33+
const std::vector<size_t>& pool_vec_idxs,
34+
const std::vector<size_t>& pool_gpr_idxs) const override;
35+
3736
std::shared_ptr<Xbyak_aarch64::Label> loop_begin_label;
3837
size_t work_amount = 0;
3938
int64_t wa_increment = 0;
@@ -54,10 +53,10 @@ class jit_loop_end_emitter : public jit_emitter {
5453
return 0;
5554
}
5655

57-
void emit_code(const std::vector<size_t>& in_idxs,
56+
void emit_code_impl(const std::vector<size_t>& in_idxs,
5857
const std::vector<size_t>& out_idxs,
59-
const std::vector<size_t>& pool_vec_idxs = {},
60-
const std::vector<size_t>& pool_gpr_idxs = {}) const override;
58+
const std::vector<size_t>& pool_vec_idxs,
59+
const std::vector<size_t>& pool_gpr_idxs) const override;
6160

6261
protected:
6362
void validate_arguments(const std::vector<size_t>& in, const std::vector<size_t>& out) const override;

src/plugins/intel_cpu/src/emitters/snippets/x64/jit_debug_emitter.cpp

+4-4
Original file line numberDiff line numberDiff line change
@@ -59,10 +59,10 @@ void jit_debug_emitter::emit_impl(const std::vector<size_t>& in_idxs, const std:
5959
m_target_emitter->emit_impl(in_idxs, out_idxs);
6060
}
6161

62-
void jit_debug_emitter::emit_code(const std::vector<size_t>& in_idxs,
63-
const std::vector<size_t>& out_idxs,
64-
const std::vector<size_t>& pool_vec_idxs,
65-
const std::vector<size_t>& pool_gpr_idxs) const {
62+
void jit_debug_emitter::emit_code_impl(const std::vector<size_t>& in_idxs,
63+
const std::vector<size_t>& out_idxs,
64+
const std::vector<size_t>& pool_vec_idxs,
65+
const std::vector<size_t>& pool_gpr_idxs) const {
6666
if (m_decorator_emit_loc == EmissionLocation::preamble || m_decorator_emit_loc == EmissionLocation::both) {
6767
m_decorator_emitter->emit_code(in_idxs, out_idxs, pool_vec_idxs, pool_gpr_idxs);
6868
}

src/plugins/intel_cpu/src/emitters/snippets/x64/jit_debug_emitter.hpp

+5-4
Original file line numberDiff line numberDiff line change
@@ -28,10 +28,6 @@ class jit_debug_emitter : public jit_emitter {
2828
prepare_table();
2929
}
3030

31-
void emit_code(const std::vector<size_t>& in_idxs,
32-
const std::vector<size_t>& out_idxs,
33-
const std::vector<size_t>& pool_vec_idxs = {},
34-
const std::vector<size_t>& pool_gpr_idxs = {}) const override;
3531
void emit_data() const override;
3632

3733
size_t get_inputs_num() const override;
@@ -45,6 +41,11 @@ class jit_debug_emitter : public jit_emitter {
4541

4642
void emit_impl(const std::vector<size_t>& in_idxs, const std::vector<size_t>& out_idxs) const override;
4743

44+
void emit_code_impl(const std::vector<size_t>& in_idxs,
45+
const std::vector<size_t>& out_idxs,
46+
const std::vector<size_t>& pool_vec_idxs,
47+
const std::vector<size_t>& pool_gpr_idxs) const override;
48+
4849
void emitter_preamble(const std::vector<size_t>& in_idxs,
4950
const std::vector<size_t>& out_idxs,
5051
const std::vector<size_t>& pool_vec_idxs,

src/plugins/intel_cpu/src/emitters/snippets/x64/jit_kernel_emitter.cpp

+4-4
Original file line numberDiff line numberDiff line change
@@ -49,10 +49,10 @@ jit_kernel_emitter::jit_kernel_emitter(jit_generator* h,
4949
data_ptr_regs_idx = snippets::utils::transform_snippets_regs_to_idxs(data_ptr_regs, snippets::RegType::gpr);
5050
}
5151

52-
void jit_kernel_emitter::emit_code(const std::vector<size_t>& in,
53-
const std::vector<size_t>& out,
54-
const std::vector<size_t>& pool_vec_idxs,
55-
const std::vector<size_t>& pool_gpr_idxs) const {
52+
void jit_kernel_emitter::emit_code_impl(const std::vector<size_t>& in,
53+
const std::vector<size_t>& out,
54+
const std::vector<size_t>& pool_vec_idxs,
55+
const std::vector<size_t>& pool_gpr_idxs) const {
5656
validate_arguments(in, out);
5757
aux_vec_idxs = pool_vec_idxs;
5858
aux_gpr_idxs = pool_gpr_idxs;

0 commit comments

Comments
 (0)