11#ifndef PROTEUS_JITCACHE_HPP
12#define PROTEUS_JITCACHE_HPP
23#include <llvm/ADT/DenseMap.h>
24#include <llvm/ADT/SmallVector.h>
25#include <llvm/ADT/StringRef.h>
26#include <llvm/Config/llvm-config.h>
38 auto It = CacheMap.find(HashValue);
39 if (
It == CacheMap.end())
42 It->second.NumExecs++;
45 return It->second.FunctionPtr;
51 if (CacheMap.count(HashValue))
68 printf(
"JitCache hits %lu total %lu\n", Hits, Accesses);
69 for (
const auto &[HashValue,
JCE] : CacheMap) {
70 std::cout <<
"HashValue " << HashValue.toString() <<
" NumExecs "
71 <<
JCE.NumExecs <<
" NumHits " <<
JCE.NumHits;
82 struct JitCacheEntry {
89 std::unordered_map<HashT, JitCacheEntry> CacheMap;
#define PROTEUS_FATAL_ERROR(x)
Definition Error.h:7
#define TIMESCOPE(x)
Definition TimeTracing.hpp:64
static Config & get()
Definition Config.hpp:304
bool ProteusDebugOutput
Definition Config.hpp:320
Definition Hashing.hpp:20
Definition JitCache.hpp:32
void insert(HashT &HashValue, Function_t FunctionPtr, StringRef FnName)
Definition JitCache.hpp:48
Function_t lookup(HashT &HashValue)
Definition JitCache.hpp:34
void printStats()
Definition JitCache.hpp:65
JitCache()
Definition JitCache.hpp:79
Definition BuiltinsCUDA.cpp:4
T getRuntimeConstantValue(void *Arg)
Definition CompilerInterfaceRuntimeConstantInfo.h:114