Implement SPRX precompilation

Automatically precompile firmware modules
Add "Create LLVM Cache" menu (for games)
Reimplement jit_compiler::cpu as static method
This commit is contained in:
Nekotekina 2018-03-17 20:41:35 +03:00
parent 9d961f620b
commit 19944eeed0
8 changed files with 214 additions and 37 deletions

View file

@ -403,10 +403,10 @@ public:
}
};
jit_compiler::jit_compiler(const std::unordered_map<std::string, u64>& _link, std::string _cpu)
: m_link(_link)
, m_cpu(std::move(_cpu))
std::string jit_compiler::cpu(const std::string& _cpu)
{
std::string m_cpu = _cpu;
if (m_cpu.empty())
{
m_cpu = llvm::sys::getHostCPUName();
@ -426,6 +426,13 @@ jit_compiler::jit_compiler(const std::unordered_map<std::string, u64>& _link, st
}
}
return m_cpu;
}
jit_compiler::jit_compiler(const std::unordered_map<std::string, u64>& _link, const std::string& _cpu)
: m_link(_link)
, m_cpu(cpu(_cpu))
{
std::string result;
if (m_link.empty())

View file

@ -40,7 +40,7 @@ class jit_compiler final
std::string m_cpu;
public:
jit_compiler(const std::unordered_map<std::string, u64>& _link, std::string _cpu);
jit_compiler(const std::unordered_map<std::string, u64>& _link, const std::string& _cpu);
~jit_compiler();
// Get LLVM context
@ -65,10 +65,7 @@ public:
static std::unordered_map<std::string, u64> add(std::unordered_map<std::string, std::string>);
// Get CPU info
const std::string& cpu() const
{
return m_cpu;
}
static std::string cpu(const std::string& _cpu);
// Check JIT purpose
bool is_primary() const