clover: remove compat::string
Acked-by: Francisco Jerez <currojerez@riseup.net> Reviewed-by: Tom Stellard <thomas.stellard@amd.com>
This commit is contained in:
@@ -216,7 +216,7 @@ clCompileProgram(cl_program d_prog, cl_uint num_devs,
|
|||||||
throw error(CL_INVALID_OPERATION);
|
throw error(CL_INVALID_OPERATION);
|
||||||
|
|
||||||
if (!any_of(key_equals(name), headers))
|
if (!any_of(key_equals(name), headers))
|
||||||
headers.push_back(std::pair<compat::string, compat::string>(
|
headers.push_back(std::pair<std::string, std::string>(
|
||||||
name, header.source()));
|
name, header.source()));
|
||||||
},
|
},
|
||||||
range(header_names, num_headers),
|
range(header_names, num_headers),
|
||||||
|
@@ -29,17 +29,17 @@
|
|||||||
#include "pipe/p_defines.h"
|
#include "pipe/p_defines.h"
|
||||||
|
|
||||||
namespace clover {
|
namespace clover {
|
||||||
typedef compat::vector<std::pair<compat::string,
|
typedef compat::vector<std::pair<std::string,
|
||||||
compat::string> > header_map;
|
std::string> > header_map;
|
||||||
|
|
||||||
module compile_program_llvm(const compat::string &source,
|
module compile_program_llvm(const std::string &source,
|
||||||
const header_map &headers,
|
const header_map &headers,
|
||||||
pipe_shader_ir ir,
|
pipe_shader_ir ir,
|
||||||
const compat::string &target,
|
const std::string &target,
|
||||||
const compat::string &opts,
|
const std::string &opts,
|
||||||
compat::string &r_log);
|
std::string &r_log);
|
||||||
|
|
||||||
module compile_program_tgsi(const compat::string &source);
|
module compile_program_tgsi(const std::string &source);
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@@ -54,7 +54,7 @@ namespace clover {
|
|||||||
///
|
///
|
||||||
class error : public std::runtime_error {
|
class error : public std::runtime_error {
|
||||||
public:
|
public:
|
||||||
error(cl_int code, compat::string what = "") :
|
error(cl_int code, std::string what = "") :
|
||||||
std::runtime_error(what), code(code) {
|
std::runtime_error(what), code(code) {
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -68,7 +68,7 @@ namespace clover {
|
|||||||
|
|
||||||
class build_error : public error {
|
class build_error : public error {
|
||||||
public:
|
public:
|
||||||
build_error(const compat::string &what = "") :
|
build_error(const std::string &what = "") :
|
||||||
error(CL_COMPILE_PROGRAM_FAILURE, what) {
|
error(CL_COMPILE_PROGRAM_FAILURE, what) {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
@@ -52,7 +52,7 @@ program::build(const ref_vector<device> &devs, const char *opts,
|
|||||||
|
|
||||||
_opts.insert({ &dev, opts });
|
_opts.insert({ &dev, opts });
|
||||||
|
|
||||||
compat::string log;
|
std::string log;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
auto module = (dev.ir_format() == PIPE_SHADER_IR_TGSI ?
|
auto module = (dev.ir_format() == PIPE_SHADER_IR_TGSI ?
|
||||||
|
@@ -136,7 +136,7 @@ namespace {
|
|||||||
const std::string &name, const std::string &triple,
|
const std::string &name, const std::string &triple,
|
||||||
const std::string &processor, const std::string &opts,
|
const std::string &processor, const std::string &opts,
|
||||||
clang::LangAS::Map& address_spaces, unsigned &optimization_level,
|
clang::LangAS::Map& address_spaces, unsigned &optimization_level,
|
||||||
compat::string &r_log) {
|
std::string &r_log) {
|
||||||
|
|
||||||
clang::CompilerInstance c;
|
clang::CompilerInstance c;
|
||||||
clang::EmitLLVMOnlyAction act(&llvm_ctx);
|
clang::EmitLLVMOnlyAction act(&llvm_ctx);
|
||||||
@@ -470,7 +470,7 @@ namespace {
|
|||||||
emit_code(LLVMTargetMachineRef tm, LLVMModuleRef mod,
|
emit_code(LLVMTargetMachineRef tm, LLVMModuleRef mod,
|
||||||
LLVMCodeGenFileType file_type,
|
LLVMCodeGenFileType file_type,
|
||||||
LLVMMemoryBufferRef *out_buffer,
|
LLVMMemoryBufferRef *out_buffer,
|
||||||
compat::string &r_log) {
|
std::string &r_log) {
|
||||||
LLVMBool err;
|
LLVMBool err;
|
||||||
char *err_message = NULL;
|
char *err_message = NULL;
|
||||||
|
|
||||||
@@ -491,7 +491,7 @@ namespace {
|
|||||||
std::vector<char>
|
std::vector<char>
|
||||||
compile_native(const llvm::Module *mod, const std::string &triple,
|
compile_native(const llvm::Module *mod, const std::string &triple,
|
||||||
const std::string &processor, unsigned dump_asm,
|
const std::string &processor, unsigned dump_asm,
|
||||||
compat::string &r_log) {
|
std::string &r_log) {
|
||||||
|
|
||||||
std::string log;
|
std::string log;
|
||||||
LLVMTargetRef target;
|
LLVMTargetRef target;
|
||||||
@@ -545,7 +545,7 @@ namespace {
|
|||||||
std::map<std::string, unsigned>
|
std::map<std::string, unsigned>
|
||||||
get_kernel_offsets(std::vector<char> &code,
|
get_kernel_offsets(std::vector<char> &code,
|
||||||
const std::vector<llvm::Function *> &kernels,
|
const std::vector<llvm::Function *> &kernels,
|
||||||
compat::string &r_log) {
|
std::string &r_log) {
|
||||||
|
|
||||||
// One of the libelf implementations
|
// One of the libelf implementations
|
||||||
// (http://www.mr511.de/software/english.htm) requires calling
|
// (http://www.mr511.de/software/english.htm) requires calling
|
||||||
@@ -611,7 +611,7 @@ namespace {
|
|||||||
const llvm::Module *mod,
|
const llvm::Module *mod,
|
||||||
const std::vector<llvm::Function *> &kernels,
|
const std::vector<llvm::Function *> &kernels,
|
||||||
const clang::LangAS::Map &address_spaces,
|
const clang::LangAS::Map &address_spaces,
|
||||||
compat::string &r_log) {
|
std::string &r_log) {
|
||||||
|
|
||||||
std::map<std::string, unsigned> kernel_offsets =
|
std::map<std::string, unsigned> kernel_offsets =
|
||||||
get_kernel_offsets(code, kernels, r_log);
|
get_kernel_offsets(code, kernels, r_log);
|
||||||
@@ -641,12 +641,12 @@ namespace {
|
|||||||
void
|
void
|
||||||
diagnostic_handler(const llvm::DiagnosticInfo &di, void *data) {
|
diagnostic_handler(const llvm::DiagnosticInfo &di, void *data) {
|
||||||
if (di.getSeverity() == llvm::DS_Error) {
|
if (di.getSeverity() == llvm::DS_Error) {
|
||||||
std::string message = *(compat::string*)data;
|
std::string message = *(std::string*)data;
|
||||||
llvm::raw_string_ostream stream(message);
|
llvm::raw_string_ostream stream(message);
|
||||||
llvm::DiagnosticPrinterRawOStream dp(stream);
|
llvm::DiagnosticPrinterRawOStream dp(stream);
|
||||||
di.print(dp);
|
di.print(dp);
|
||||||
stream.flush();
|
stream.flush();
|
||||||
*(compat::string*)data = message;
|
*(std::string*)data = message;
|
||||||
|
|
||||||
throw build_error();
|
throw build_error();
|
||||||
}
|
}
|
||||||
@@ -686,12 +686,12 @@ namespace {
|
|||||||
} // End anonymous namespace
|
} // End anonymous namespace
|
||||||
|
|
||||||
module
|
module
|
||||||
clover::compile_program_llvm(const compat::string &source,
|
clover::compile_program_llvm(const std::string &source,
|
||||||
const header_map &headers,
|
const header_map &headers,
|
||||||
enum pipe_shader_ir ir,
|
enum pipe_shader_ir ir,
|
||||||
const compat::string &target,
|
const std::string &target,
|
||||||
const compat::string &opts,
|
const std::string &opts,
|
||||||
compat::string &r_log) {
|
std::string &r_log) {
|
||||||
|
|
||||||
init_targets();
|
init_targets();
|
||||||
|
|
||||||
|
@@ -88,11 +88,12 @@ namespace {
|
|||||||
}
|
}
|
||||||
|
|
||||||
module
|
module
|
||||||
clover::compile_program_tgsi(const compat::string &source) {
|
clover::compile_program_tgsi(const std::string &source) {
|
||||||
const char *body = source.find("COMP\n");
|
const size_t body_pos = source.find("COMP\n");
|
||||||
|
const char *body = &source[body_pos];
|
||||||
module m;
|
module m;
|
||||||
|
|
||||||
read_header({ source.begin(), body }, m);
|
read_header({ source.begin(), source.begin() + body_pos }, m);
|
||||||
read_body(body, m);
|
read_body(body, m);
|
||||||
|
|
||||||
return m;
|
return m;
|
||||||
|
@@ -307,110 +307,6 @@ namespace clover {
|
|||||||
size_t offset;
|
size_t offset;
|
||||||
};
|
};
|
||||||
|
|
||||||
class string {
|
|
||||||
public:
|
|
||||||
typedef char *iterator;
|
|
||||||
typedef const char *const_iterator;
|
|
||||||
typedef char value_type;
|
|
||||||
typedef char &reference;
|
|
||||||
typedef const char &const_reference;
|
|
||||||
typedef std::ptrdiff_t difference_type;
|
|
||||||
typedef std::size_t size_type;
|
|
||||||
|
|
||||||
string() : v() {
|
|
||||||
}
|
|
||||||
|
|
||||||
string(const char *p) : v(p, std::strlen(p)) {
|
|
||||||
}
|
|
||||||
|
|
||||||
template<typename C>
|
|
||||||
string(const C &v) : v(v) {
|
|
||||||
}
|
|
||||||
|
|
||||||
operator std::string() const {
|
|
||||||
return std::string(v.begin(), v.end());
|
|
||||||
}
|
|
||||||
|
|
||||||
bool
|
|
||||||
operator==(const string &s) const {
|
|
||||||
return this->v == s.v;
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
reserve(size_type n) {
|
|
||||||
v.reserve(n);
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
resize(size_type n, char x = char()) {
|
|
||||||
v.resize(n, x);
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
push_back(char x) {
|
|
||||||
v.push_back(x);
|
|
||||||
}
|
|
||||||
|
|
||||||
size_type
|
|
||||||
size() const {
|
|
||||||
return v.size();
|
|
||||||
}
|
|
||||||
|
|
||||||
size_type
|
|
||||||
capacity() const {
|
|
||||||
return v.capacity();
|
|
||||||
}
|
|
||||||
|
|
||||||
iterator
|
|
||||||
begin() {
|
|
||||||
return v.begin();
|
|
||||||
}
|
|
||||||
|
|
||||||
const_iterator
|
|
||||||
begin() const {
|
|
||||||
return v.begin();
|
|
||||||
}
|
|
||||||
|
|
||||||
iterator
|
|
||||||
end() {
|
|
||||||
return v.end();
|
|
||||||
}
|
|
||||||
|
|
||||||
const_iterator
|
|
||||||
end() const {
|
|
||||||
return v.end();
|
|
||||||
}
|
|
||||||
|
|
||||||
reference
|
|
||||||
operator[](size_type i) {
|
|
||||||
return v[i];
|
|
||||||
}
|
|
||||||
|
|
||||||
const_reference
|
|
||||||
operator[](size_type i) const {
|
|
||||||
return v[i];
|
|
||||||
}
|
|
||||||
|
|
||||||
const char *
|
|
||||||
c_str() const {
|
|
||||||
v.reserve(size() + 1);
|
|
||||||
*v.end() = 0;
|
|
||||||
return v.begin();
|
|
||||||
}
|
|
||||||
|
|
||||||
const char *
|
|
||||||
find(const string &s) const {
|
|
||||||
for (size_t i = 0; i + s.size() < size(); ++i) {
|
|
||||||
if (!std::memcmp(begin() + i, s.begin(), s.size()))
|
|
||||||
return begin() + i;
|
|
||||||
}
|
|
||||||
|
|
||||||
return end();
|
|
||||||
}
|
|
||||||
|
|
||||||
private:
|
|
||||||
mutable vector<char> v;
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user