33 #include <type_traits> 63 static_assert(std::is_standard_layout<randomx_dataset>(),
"randomx_dataset must be a standard-layout struct");
66 #if defined(_MSC_VER) && !defined(__INTEL_COMPILER) && defined(_DEBUG) 68 #define STR(x) TO_STR(x) 69 #pragma message ( __FILE__ "(" STR(__LINE__) ") warning: check std::is_standard_layout<randomx_cache>() is disabled for Debug configuration. JIT mode will crash." ) 73 static_assert(std::is_standard_layout<randomx_cache>(),
"randomx_cache must be a standard-layout struct");
80 template<
class Allocator>
82 if (dataset->
memory !=
nullptr)
86 template<
class Allocator>
Definition: dataset.hpp:46
randomx::CacheInitializeFunc * initialize
Definition: dataset.hpp:50
void() DatasetDeallocFunc(randomx_dataset *)
Definition: common.hpp:191
Definition: allocator.cpp:35
#define RANDOMX_CACHE_ACCESSES
Definition: configuration.h:44
void() DatasetInitFunc(randomx_cache *cache, uint8_t *dataset, uint32_t startBlock, uint32_t endBlock)
Definition: common.hpp:189
void deallocDataset(randomx_dataset *dataset)
Definition: dataset.hpp:81
Definition: dataset.hpp:40
void deallocCache(randomx_cache *cache)
Definition: dataset.cpp:61
Definition: jit_compiler_fallback.hpp:42
::std::string string
Definition: gtest-port.h:1097
Definition: superscalar_program.hpp:37
randomx::DatasetInitFunc * datasetInit
Definition: dataset.hpp:51
randomx::JitCompiler * jit
Definition: dataset.hpp:49
uint8_t * memory
Definition: dataset.hpp:47
unsigned char uint8_t
Definition: stdint.h:124
void initCacheCompile(randomx_cache *cache, const void *key, size_t keySize)
Definition: dataset.cpp:142
randomx_argon2_impl * randomx_argon2_impl_ssse3()
Definition: argon2_ssse3.c:48
static int flags
Definition: mdb_load.c:31
void randomx_argon2_impl(const argon2_instance_t *instance, argon2_position_t position)
Definition: argon2.h:238
Definition: allocator.hpp:36
bool isInitialized()
Definition: dataset.hpp:57
unsigned int uint32_t
Definition: stdint.h:126
uint8_t * memory
Definition: dataset.hpp:41
randomx_argon2_impl * randomx_argon2_impl_avx2()
Definition: argon2_avx2.c:44
randomx_flags
Definition: randomx.h:42
unsigned __int64 uint64_t
Definition: stdint.h:136
void initDatasetItem(randomx_cache *cache, uint8_t *out, uint64_t itemNumber)
Definition: dataset.cpp:164
std::string cacheKey
Definition: dataset.hpp:54
void() CacheInitializeFunc(randomx_cache *, const void *, size_t)
Definition: common.hpp:193
void initDataset(randomx_cache *cache, uint8_t *dataset, uint32_t startItem, uint32_t endItem)
Definition: dataset.cpp:192
constexpr uint64_t DatasetSize
Definition: common.hpp:86
randomx_cache * cache
Definition: tests.cpp:19
randomx::SuperscalarProgram programs[RANDOMX_CACHE_ACCESSES]
Definition: dataset.hpp:52
randomx_argon2_impl * selectArgonImpl(randomx_flags flags)
Definition: dataset.hpp:94
void randomx_argon2_fill_segment_ref(const argon2_instance_t *instance, argon2_position_t position)
Definition: argon2_ref.c:110
void initCache(randomx_cache *cache, const void *key, size_t keySize)
Definition: dataset.cpp:71
randomx::DatasetDeallocFunc * dealloc
Definition: dataset.hpp:42
randomx::CacheDeallocFunc * dealloc
Definition: dataset.hpp:48
randomx_argon2_impl * argonImpl
Definition: dataset.hpp:55
void() CacheDeallocFunc(randomx_cache *)
Definition: common.hpp:192
std::vector< uint64_t > reciprocalCache
Definition: dataset.hpp:53
uint32_t getSize()
Definition: superscalar_program.hpp:46