Tiramisu Compiler
cuda_ast.h File Reference
#include <isl/id.h>
#include <tiramisu/type.h>
#include <string>
#include <vector>
#include "utils.h"

Go to the source code of this file.

Classes

struct  tiramisu::isl_ast_expr_deleter
 
struct  tiramisu::isl_id_deleter
 
struct  tiramisu::isl_ast_node_list_deleter
 
struct  tiramisu::isl_val_deleter
 
struct  tiramisu::cuda_ast::op_data_t
 
class  tiramisu::cuda_ast::abstract_node
 
class  tiramisu::cuda_ast::statement
 
class  tiramisu::cuda_ast::cast
 
class  tiramisu::cuda_ast::block
 
class  tiramisu::cuda_ast::abstract_identifier
 
class  tiramisu::cuda_ast::buffer
 
class  tiramisu::cuda_ast::scalar
 
class  tiramisu::cuda_ast::value
 
class  tiramisu::cuda_ast::assignment
 
class  tiramisu::cuda_ast::scalar_assignment
 
class  tiramisu::cuda_ast::buffer_assignment
 
class  tiramisu::cuda_ast::function_call
 
class  tiramisu::cuda_ast::for_loop
 
class  tiramisu::cuda_ast::if_condition
 
class  tiramisu::cuda_ast::buffer_access
 
class  tiramisu::cuda_ast::op
 
class  tiramisu::cuda_ast::unary
 
class  tiramisu::cuda_ast::binary
 
class  tiramisu::cuda_ast::ternary
 
class  tiramisu::cuda_ast::declaration
 
class  tiramisu::cuda_ast::sync
 
struct  tiramisu::cuda_ast::gpu_iterator
 
class  tiramisu::cuda_ast::gpu_iterator_read
 
class  tiramisu::cuda_ast::return_statement
 
class  tiramisu::cuda_ast::host_function
 
class  tiramisu::cuda_ast::kernel
 
class  tiramisu::cuda_ast::kernel_call
 
class  tiramisu::cuda_ast::kernel_definition
 
class  tiramisu::cuda_ast::memcpy
 
class  tiramisu::cuda_ast::allocate
 
class  tiramisu::cuda_ast::free
 
class  tiramisu::cuda_ast::generator
 
class  tiramisu::cuda_ast::compiler
 

Namespaces

 tiramisu
 
 tiramisu::cuda_ast
 

Macros

#define NVCC_PATH   "nvcc"
 
#define UNARY(op, x)   {op, op_data_t{true, 1, (x)}}
 
#define UNARY_TYPED(op, x, T)   {op, op_data_t{true, 2, (x), (T)}}
 
#define BINARY(op, x)   {op, op_data_t{true, 2, (x)}}
 
#define BINARY_TYPED(op, x, T)   {op, op_data_t{true, 2, (x), (T)}}
 
#define TERNARY(op, x, y)   {op, op_data_t{true, 3, (x), (y)}}
 
#define TERNARY_TYPED(op, x, y, T)   {op, op_data_t{true, 3, (x), (y), (T)}}
 
#define FN_CALL(op, x, n)   {op, op_data_t{false, (n), (x)}}
 
#define FN_CALL_TYPED(op, x, n, T)   {op, op_data_t{false, (n), (x), (T)}}
 
#define UNARY2(op, x)   case op: return tiramisu::cuda_ast::op_data_t{true, 1, (x)};
 
#define UNARY_TYPED2(op, x, T)   case op: return tiramisu::cuda_ast::op_data_t{true, 2, (x), (T)};
 
#define BINARY2(op, x)   case op: return tiramisu::cuda_ast::op_data_t{true, 2, (x)};
 
#define BINARY_TYPED2(op, x, T)   case op: return tiramisu::cuda_ast::op_data_t{true, 2, (x), (T)};
 
#define TERNARY2(op, x, y)   case op: return tiramisu::cuda_ast::op_data_t{true, 3, (x), (y)};
 
#define TERNARY_TYPED2(op, x, y, T)   case op: return tiramisu::cuda_ast::op_data_t{true, 3, (x), (y), (T)};
 
#define FN_CALL2(op, x, n)   case op: return tiramisu::cuda_ast::op_data_t{false, (n), (x)};
 
#define FN_CALL_TYPED2(op, x, n, T)   case op: return tiramisu::cuda_ast::op_data_t{false, (n), (x), (T)};
 

Typedefs

typedef std::unique_ptr< isl_ast_expr, isl_ast_expr_deleter > tiramisu::isl_ast_expr_ptr
 
typedef std::unique_ptr< isl_id, isl_id_deleter > tiramisu::isl_id_ptr
 
typedef std::unique_ptr< isl_ast_node_list, isl_ast_node_list_deleter > tiramisu::isl_ast_node_list_ptr
 
typedef std::unique_ptr< isl_val, isl_val_deleter > tiramisu::isl_val_ptr
 
typedef std::shared_ptr< statement > tiramisu::cuda_ast::statement_ptr
 
typedef std::shared_ptr< abstract_identifier > tiramisu::cuda_ast::abstract_identifier_ptr
 
typedef std::shared_ptr< buffer > tiramisu::cuda_ast::buffer_ptr
 
typedef std::shared_ptr< scalar > tiramisu::cuda_ast::scalar_ptr
 
typedef std::shared_ptr< value > tiramisu::cuda_ast::value_ptr
 
typedef std::shared_ptr< assignment > tiramisu::cuda_ast::assignment_ptr
 
typedef std::unordered_map< std::string, std::pair< tiramisu::primitive_t, cuda_ast::memory_location > > tiramisu::cuda_ast::scalar_data_t
 
typedef std::shared_ptr< kernel > tiramisu::cuda_ast::kernel_ptr
 

Enumerations

Functions

const op_data_t tiramisu::cuda_ast::tiramisu_operation_description (tiramisu::op_t op)
 
const op_data_t tiramisu::cuda_ast::isl_operation_description (isl_ast_op_type op)
 
const std::string tiramisu::cuda_ast::tiramisu_type_to_cuda_type (tiramisu::primitive_t t)
 

Macro Definition Documentation

#define BINARY (   op,
 
)    {op, op_data_t{true, 2, (x)}}

Definition at line 14 of file cuda_ast.h.

#define BINARY2 (   op,
 
)    case op: return tiramisu::cuda_ast::op_data_t{true, 2, (x)};

Definition at line 23 of file cuda_ast.h.

#define BINARY_TYPED (   op,
  x,
 
)    {op, op_data_t{true, 2, (x), (T)}}

Definition at line 15 of file cuda_ast.h.

#define BINARY_TYPED2 (   op,
  x,
 
)    case op: return tiramisu::cuda_ast::op_data_t{true, 2, (x), (T)};

Definition at line 24 of file cuda_ast.h.

#define FN_CALL (   op,
  x,
 
)    {op, op_data_t{false, (n), (x)}}

Definition at line 18 of file cuda_ast.h.

#define FN_CALL2 (   op,
  x,
 
)    case op: return tiramisu::cuda_ast::op_data_t{false, (n), (x)};

Definition at line 27 of file cuda_ast.h.

#define FN_CALL_TYPED (   op,
  x,
  n,
 
)    {op, op_data_t{false, (n), (x), (T)}}

Definition at line 19 of file cuda_ast.h.

#define FN_CALL_TYPED2 (   op,
  x,
  n,
 
)    case op: return tiramisu::cuda_ast::op_data_t{false, (n), (x), (T)};

Definition at line 28 of file cuda_ast.h.

#define NVCC_PATH   "nvcc"

Definition at line 9 of file cuda_ast.h.

#define TERNARY (   op,
  x,
 
)    {op, op_data_t{true, 3, (x), (y)}}

Definition at line 16 of file cuda_ast.h.

#define TERNARY2 (   op,
  x,
 
)    case op: return tiramisu::cuda_ast::op_data_t{true, 3, (x), (y)};

Definition at line 25 of file cuda_ast.h.

#define TERNARY_TYPED (   op,
  x,
  y,
 
)    {op, op_data_t{true, 3, (x), (y), (T)}}

Definition at line 17 of file cuda_ast.h.

#define TERNARY_TYPED2 (   op,
  x,
  y,
 
)    case op: return tiramisu::cuda_ast::op_data_t{true, 3, (x), (y), (T)};

Definition at line 26 of file cuda_ast.h.

#define UNARY (   op,
 
)    {op, op_data_t{true, 1, (x)}}

Definition at line 12 of file cuda_ast.h.

#define UNARY2 (   op,
 
)    case op: return tiramisu::cuda_ast::op_data_t{true, 1, (x)};

Definition at line 21 of file cuda_ast.h.

#define UNARY_TYPED (   op,
  x,
 
)    {op, op_data_t{true, 2, (x), (T)}}

Definition at line 13 of file cuda_ast.h.

#define UNARY_TYPED2 (   op,
  x,
 
)    case op: return tiramisu::cuda_ast::op_data_t{true, 2, (x), (T)};

Definition at line 22 of file cuda_ast.h.

Variable Documentation

bool exec_succeeded

Definition at line 704 of file cuda_ast.h.

std::string std_err

Definition at line 707 of file cuda_ast.h.

std::string std_out

Definition at line 706 of file cuda_ast.h.