Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
1e9509b
Initial implementation for StackAllocator
lohika-denis-kotov Sep 16, 2022
0d7da02
Created StackAllocatorTest
lohika-denis-kotov Sep 17, 2022
784ec1a
Added StackAllocator::Reg<> for simplifing saving registers on stack
lohika-denis-kotov Sep 22, 2022
6105e80
Added tests for new StackAllocator::Reg<> class
lohika-denis-kotov Sep 22, 2022
4b46bb8
Added alignment for StackAllocator
lohika-denis-kotov Oct 7, 2022
88c0ec3
Added saving data from stack to register
lohika-denis-kotov Oct 7, 2022
7d368b0
Update tests for StackAllocator
lohika-denis-kotov Oct 8, 2022
b9ad902
Added Transaction class
lohika-denis-kotov Oct 9, 2022
35611b5
Updated stack_allocator test for Transaction
lohika-denis-kotov Oct 9, 2022
a663f94
Updated tests for StackAllocator for Transaction
lohika-denis-kotov Oct 9, 2022
53aa9b5
Made StackAllocator::Address not copiable and movable
lohika-denis-kotov Oct 9, 2022
d5c1aaa
Changed names of variables in tests for StackAllocator
lohika-denis-kotov Oct 9, 2022
eab4433
Fixed name of types for IsaParam
lohika-denis-kotov Oct 9, 2022
c0c8ffb
Added tests for StackAllocator::Reg<Xbyak::Xmm> and StackAllocator::R…
lohika-denis-kotov Oct 10, 2022
fbcd84e
Renamed some tests to describe what it is doing
lohika-denis-kotov Oct 10, 2022
8ada8c3
Pass StackAllocator to Transaction, Address and Reg<> by reference
lohika-denis-kotov Oct 10, 2022
ca48ab3
Made StackAllocator::Address isInitialized() public and added explici…
lohika-denis-kotov Oct 13, 2022
cf0f3c6
Fix CI issue with redefinition of struct IsaParam
lohika-denis-kotov Oct 13, 2022
0ad37f9
Remove using using namespace dnnl::impl::cpu; and changed it to alias
lohika-denis-kotov Nov 1, 2022
3533b5d
StackAllocator::Reg is renamed to StackAllocator::RegAddress
Nov 2, 2022
a31d6a6
Add jit_generator alias to StackAllocator class
Nov 2, 2022
fca2e48
Fix macos compile-time issues
lohika-denis-kotov Nov 2, 2022
cc3e6e9
Fix dnnl::impl::cpu::x64::avx2 resolution compile issue
Nov 3, 2022
7546c42
Workaround for clang casting of jit_ker() to func pointer
Nov 4, 2022
f625300
Merge branch 'master' into feature/dekotov_stack_allocator
ceciliapeng2011 Nov 15, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 9 additions & 2 deletions src/plugins/intel_cpu/src/nodes/kernels/registers_pool.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,12 @@
#include "ie_common.h"
#include "utils/cpu_utils.hpp"
#include <utility>
#include "stack_allocator.hpp"

namespace ov {
namespace intel_cpu {

using namespace dnnl::impl::cpu;
namespace x64 = dnnl::impl::cpu::x64;

/**
* The RegistersPool is the base class for the IsaRegistersPool template:
Expand Down Expand Up @@ -49,16 +50,22 @@ class RegistersPool {
Reg(const RegistersPool::Ptr& regPool) { initialize(regPool); }
Reg(const RegistersPool::Ptr& regPool, int requestedIdx) { initialize(regPool, requestedIdx); }
~Reg() { release(); }
Reg(Reg&& other) noexcept {
this->operator=(std::move(other));
}
Reg& operator=(Reg&& other) noexcept {
release();
reg = other.reg;
regPool = std::move(other.regPool);
return *this;
}
Reg(Reg&& other) noexcept : reg(other.reg), regPool(std::move(other.regPool)) {}
operator TReg&() { ensureValid(); return reg; }
operator const TReg&() const { ensureValid(); return reg; }
operator Xbyak::RegExp() const { ensureValid(); return reg; }
Reg& operator=(const StackAllocator::Address& addr) {
stack_mov(*this, addr);
return *this;
}
int getIdx() const { ensureValid(); return reg.getIdx(); }
friend Xbyak::RegExp operator+(const Reg& lhs, const Xbyak::RegExp& rhs) {
lhs.ensureValid();
Expand Down
Loading