clover: Add a function for retrieving a device's preferred ir v3

A device now has two function for getting information about the IR
it needs to return.

ir_format() => returns the preferred IR
ir_target() => returns the triple for the target that is understood by
                 clang/llvm.

v2:
  - renamed ir_target() to ir_format()
  - renamed llvm_triple() to ir_target()

v3:
  - Remove unnecessary include
  - Do proper conversion from std::vector<char> to std::string

Reviewed-by: Francisco Jerez <currojerez@riseup.net>
This commit is contained in:
Tom Stellard 2012-04-23 12:09:08 -04:00
parent c4c51153bc
commit 613323b256
2 changed files with 11 additions and 8 deletions

View file

@ -160,16 +160,18 @@ _cl_device_id::vendor_name() const {
return pipe->get_vendor(pipe);
}
enum pipe_shader_ir
_cl_device_id::ir_format() const {
return (enum pipe_shader_ir) pipe->get_shader_param(pipe,
PIPE_SHADER_COMPUTE,
PIPE_SHADER_CAP_PREFERRED_IR);
}
std::string
_cl_device_id::ir_target() const {
switch (pipe->get_shader_param(pipe, PIPE_SHADER_COMPUTE,
PIPE_SHADER_CAP_PREFERRED_IR)) {
case PIPE_SHADER_IR_TGSI:
return "tgsi";
default:
assert(0);
return "";
}
std::vector<char> target = get_compute_param<char>(pipe,
PIPE_COMPUTE_CAP_IR_TARGET);
return { target.data() };
}
device_registry::device_registry() {

View file

@ -60,6 +60,7 @@ public:
std::vector<size_t> max_block_size() const;
std::string device_name() const;
std::string vendor_name() const;
enum pipe_shader_ir ir_format() const;
std::string ir_target() const;
friend struct _cl_command_queue;