Files
triton/lib/cl/lazy_compiler.cpp
2015-01-27 16:19:50 -05:00

37 lines
862 B
C++

#include "atidlas/cl/lazy_compiler.h"
namespace atidlas
{
namespace cl_ext
{
lazy_compiler::lazy_compiler(cl::Context const & ctx, std::string const & name, std::string const & src, bool force_recompilation) :
context_(ctx), program_(NULL), pname_(name), src_(src), force_recompilation_(force_recompilation)
{ }
lazy_compiler::lazy_compiler(cl::Context const & ctx, std::string const & name, bool force_recompilation) :
context_(ctx), program_(NULL), pname_(name), force_recompilation_(force_recompilation)
{ }
void lazy_compiler::add(std::string const & src)
{ src_+=src; }
std::string const & lazy_compiler::src() const
{ return src_; }
cl::Program & lazy_compiler::program()
{
if(program_()==0)
{
if(force_recompilation_)
pmap.erase(context_, pname_);
program_ = pmap.add(context_, pname_, src_);
}
return program_;
}
}
}