[dynarmic] Refactoring to reduce latency hit from recompilation #358

Open
Lizzie wants to merge 22 commits from liz-dynarmic-latency-improvments into master
Showing only changes of commit 76607f6686 - Show all commits

View file

@ -12,6 +12,7 @@
#include <functional> #include <functional>
#include <optional> #include <optional>
#include "boost/container/small_vector.hpp"
#include "dynarmic/common/common_types.h" #include "dynarmic/common/common_types.h"
#include <xbyak/xbyak.h> #include <xbyak/xbyak.h>
#include <boost/container/static_vector.hpp> #include <boost/container/static_vector.hpp>
@ -83,7 +84,7 @@ public:
void EmitVerboseDebuggingOutput(BlockOfCode* code, size_t host_loc_index) const noexcept; void EmitVerboseDebuggingOutput(BlockOfCode* code, size_t host_loc_index) const noexcept;
private: private:
//non trivial //non trivial
std::vector<IR::Inst*> values; //24 boost::container::small_vector<IR::Inst*, 3> values; //24
// Block state // Block state
uint16_t total_uses = 0; //8 uint16_t total_uses = 0; //8
//sometimes zeroed //sometimes zeroed
@ -96,7 +97,7 @@ private:
uint8_t max_bit_width = 0; //Valid values: 1,2,4,8,16,32,128 uint8_t max_bit_width = 0; //Valid values: 1,2,4,8,16,32,128
bool is_scratch : 1 = false; //1 bool is_scratch : 1 = false; //1
bool is_set_last_use : 1 = false; //1 bool is_set_last_use : 1 = false; //1
alignas(16) uint8_t lru_counter = 0; //1 uint8_t lru_counter = 0; //1
friend class RegAlloc; friend class RegAlloc;
}; };
static_assert(sizeof(HostLocInfo) == 64); static_assert(sizeof(HostLocInfo) == 64);