11#ifndef PROTEUS_JITSTOREDCACHE_HPP
12#define PROTEUS_JITSTOREDCACHE_HPP
16#include <llvm/Bitcode/BitcodeWriter.h>
17#include <llvm/IR/Module.h>
18#include <llvm/Support/ErrorHandling.h>
19#include <llvm/Support/MemoryBuffer.h>
20#include <llvm/Support/MemoryBufferRef.h>
22#include <llvm/ADT/StringRef.h>
41 : StorageDirectory(
Config::get().ProteusCacheDir
44 std::filesystem::create_directory(StorageDirectory);
52 StorageDirectory +
"/cache-jit-" + HashValue.
toString();
60 return std::make_unique<CompiledLibrary>(std::move(*
CacheBuf));
63 if (std::filesystem::exists(
Filebase +
".so")) {
65 return std::make_unique<CompiledLibrary>(
76 StorageDirectory +
"/cache-jit-" + HashValue.
toString();
86 StorageDirectory +
"/cache-jit-" + HashValue.
toString();
93 printf(
"JitStorageCache hits %lu total %lu\n", Hits, Accesses);
99 const std::string StorageDirectory;
#define TIMESCOPE(x)
Definition TimeTracing.hpp:64
void saveToFile(llvm::StringRef Filepath, T &&Data)
Definition Utils.h:23
Definition Config.hpp:282
Definition Hashing.hpp:20
std::string toString() const
Definition Hashing.hpp:28
Definition JitStorageCache.hpp:38
void store(HashT &HashValue, MemoryBufferRef ObjBufRef)
Definition JitStorageCache.hpp:72
void storeDynamicLibrary(HashT &HashValue, const SmallString< 128 > &Path)
Definition JitStorageCache.hpp:82
void printStats()
Definition JitStorageCache.hpp:91
JitStorageCache()
Definition JitStorageCache.hpp:40
std::unique_ptr< CompiledLibrary > lookup(HashT &HashValue)
Definition JitStorageCache.hpp:47
Definition BuiltinsCUDA.cpp:4
T getRuntimeConstantValue(void *Arg)
Definition CompilerInterfaceRuntimeConstantInfo.h:114