OffloadSpe Namespace Reference


Data Structures

class  EmitEnv
class  OffloadSpeTranslator

Functions

def align_ceil
def align_mask_ceil
def align_floor
def gen_ceil_div
def mul_if_not1
def plus_if_not0
def minus_if_not0
def convert_cond
def pointer_add
def append_typedefs
def spe_in_param_member
def emit_unaligned_mfc
def emit_unaligned_mfc_mod
def emit_unaligned_mfc_dma
def emit_unaligned_mfc_scalar_mod
def emit_unaligned_mfc_scalar_dma
def name_of_subscript
def memop_var_name_suffix
def sequential_test_0
def sequential_test
def calc_memop_size_1
def calc_memop_size_0
def calc_memop_size
def convert_ptr_to_ea
def get_loop_symbol
def emit_decl_if_not_declared
def decl_subscript
def decl_memop_buffer_ops
def decl_memop_buffer
def index_list_iv_level
def subscript_offset
def index_list_scalar_access
def subscript_list_scalar_access
def index_list_vector_access
def subscript_list_vector_access
def byte_offset_ptr_ref
def byte_offset_ptr_add
def emit_memory_access
def emit_buffer_declaration
def loop_blocking
def offload_loop
def build_array_ref
def build_array_op_ref_expr
def replace_array_ref_expr
def gather_buffer_name_1
def gather_buffer_name_0
def gather_buffer_name
def emit_loop_node
def decl_var_list
def get_loop_blocks_0
def get_loop_blocks
def init_optimizer

Variables

 EI = ctrump.ExitInfo
int ALIGN_CHECK_NONE = 0
int ALIGN_CHECK_16 = 1
int ALIGN_CHECK_128 = 2
int SPE_LIBSPE2 = 0
int SPE_LIBSPE1 = 1
int MFC_MAX = 16384
list spe_runtime_table
string SELF_TRANSLATOR_NAME = 'SPE Offloading'
list global_options_table
list translate_options_table
tuple global_option = Option(global_options_table)
tuple translate_option = Option(translate_options_table)
 scalar_size
 seq_size
 num_buffer
 min_size
 max_size
 max_range
 loop_unit_byte
 offset
 scalar_offset
 range_size
 var
 iv_level


Function Documentation

def OffloadSpe::align_ceil (   v,
  align 
)

Definition at line 135 of file OffloadSpe.py.

def OffloadSpe::align_floor (   v,
  align 
)

Definition at line 143 of file OffloadSpe.py.

def OffloadSpe::align_mask_ceil (   v,
  align,
  b 
)

Definition at line 140 of file OffloadSpe.py.

def OffloadSpe::append_typedefs (   texpr,
  table 
)

Definition at line 196 of file OffloadSpe.py.

def OffloadSpe::build_array_op_ref_expr (   b,
  array_op,
  double_buffering,
  ignore_unalign,
  offset_list 
)

Definition at line 1106 of file OffloadSpe.py.

def OffloadSpe::build_array_ref (   b,
  array_var,
  sub_sub,
  offset_list 
)

Definition at line 1069 of file OffloadSpe.py.

def OffloadSpe::byte_offset_ptr_add (   b,
  ret_type,
  var,
  offset 
)

Definition at line 738 of file OffloadSpe.py.

def OffloadSpe::byte_offset_ptr_ref (   b,
  ret_type,
  var,
  offset 
)

Definition at line 734 of file OffloadSpe.py.

def OffloadSpe::calc_memop_size (   memop_node,
  emit_env,
  buffer_size 
)

Definition at line 377 of file OffloadSpe.py.

def OffloadSpe::calc_memop_size_0 (   memop_node,
  mem_size,
  emit_env 
)

Definition at line 370 of file OffloadSpe.py.

def OffloadSpe::calc_memop_size_1 (   op,
  mem_size,
  emit_env 
)

Definition at line 339 of file OffloadSpe.py.

def OffloadSpe::convert_cond (   builder,
  exit_info,
  bound_expr 
)

Definition at line 189 of file OffloadSpe.py.

def OffloadSpe::convert_ptr_to_ea (   ptr_type,
  ea_type 
)

Definition at line 447 of file OffloadSpe.py.

def OffloadSpe::decl_memop_buffer (   decls,
  b,
  memop_node,
  mem_size,
  block_elem_count,
  emit_env 
)

Definition at line 563 of file OffloadSpe.py.

def OffloadSpe::decl_memop_buffer_ops (   decls,
  b,
  ops,
  mem_size,
  loop_symbol,
  block_elem_count,
  emit_env 
)

Definition at line 468 of file OffloadSpe.py.

def OffloadSpe::decl_subscript (   b,
  decls,
  subscripts,
  env 
)

Definition at line 460 of file OffloadSpe.py.

def OffloadSpe::decl_var_list (   b,
  vars,
  declared 
)

Definition at line 1570 of file OffloadSpe.py.

def OffloadSpe::emit_buffer_declaration (   b,
  memsize,
  buffer_name,
  buffer_size,
  memop_node,
  invariant_memops,
  emit_env 
)

Definition at line 879 of file OffloadSpe.py.

def OffloadSpe::emit_decl_if_not_declared (   decls,
  b,
  t,
  name,
  env 
)

Definition at line 456 of file OffloadSpe.py.

def OffloadSpe::emit_loop_node (   b,
  mem_size,
  memop_node,
  emit_env,
  mfc_ops,
  all_loop_count,
  start_offset,
  top_loop_nest_level,
  mem_access_emitted,
  seq_map 
)

Definition at line 1153 of file OffloadSpe.py.

def OffloadSpe::emit_memory_access (   b,
  memop,
  align_size,
  mfc_ops,
  emit_env,
  start_offset,
  top_loop_nest_level,
  mem_access_emitted 
)

Definition at line 743 of file OffloadSpe.py.

def OffloadSpe::emit_unaligned_mfc (   b,
  mod_var,
  len_var,
  align_size,
  mfc_func,
  dma_buffer,
  ea_type,
  ea_expr,
  dma_size,
  tag 
)

Definition at line 212 of file OffloadSpe.py.

def OffloadSpe::emit_unaligned_mfc_dma (   b,
  mod_var,
  len_var,
  align_size,
  mfc_func,
  dma_buffer,
  ea_type,
  ea_expr,
  dma_size,
  tag 
)

Definition at line 229 of file OffloadSpe.py.

def OffloadSpe::emit_unaligned_mfc_mod (   b,
  mod_var,
  len_var,
  align_size,
  mfc_func,
  dma_buffer,
  ea_type,
  ea_expr,
  dma_size,
  tag 
)

Definition at line 224 of file OffloadSpe.py.

def OffloadSpe::emit_unaligned_mfc_scalar_dma (   b,
  mod_var,
  len_var,
  align_size,
  mfc_func,
  dma_buffer,
  ea_type,
  ea_expr,
  dma_size,
  tag 
)

Definition at line 240 of file OffloadSpe.py.

def OffloadSpe::emit_unaligned_mfc_scalar_mod (   b,
  mod_var,
  len_var,
  align_size,
  mfc_func,
  dma_buffer,
  ea_type,
  ea_expr,
  dma_size,
  tag 
)

Definition at line 236 of file OffloadSpe.py.

def OffloadSpe::gather_buffer_name (   memory_operation,
  ptrs,
  emitted,
  ea_type 
)

Definition at line 1148 of file OffloadSpe.py.

def OffloadSpe::gather_buffer_name_0 (   node,
  ptrs,
  emitted,
  ea_type 
)

Definition at line 1143 of file OffloadSpe.py.

def OffloadSpe::gather_buffer_name_1 (   ops,
  ptrs,
  emitted,
  ea_type 
)

Definition at line 1134 of file OffloadSpe.py.

def OffloadSpe::gen_ceil_div (   l,
  r 
)

Definition at line 147 of file OffloadSpe.py.

def OffloadSpe::get_loop_blocks (   loop_cfg_info  ) 

Definition at line 1590 of file OffloadSpe.py.

def OffloadSpe::get_loop_blocks_0 (   bb,
  exit,
  emitted,
  blocks 
)

Definition at line 1581 of file OffloadSpe.py.

def OffloadSpe::get_loop_symbol (   loop_node  ) 

Definition at line 452 of file OffloadSpe.py.

def OffloadSpe::index_list_iv_level (   indices  ) 

Definition at line 573 of file OffloadSpe.py.

def OffloadSpe::index_list_scalar_access (   b,
  indices,
  start_offset,
  loop_top_level 
)

Definition at line 605 of file OffloadSpe.py.

def OffloadSpe::index_list_vector_access (   b,
  indices,
  start_offset,
  loop_top_level,
  access_level,
  block_size,
  index_offset_map,
  is_first_get,
  seq_map 
)

Definition at line 639 of file OffloadSpe.py.

def OffloadSpe::init_optimizer (   engine  ) 

Definition at line 2211 of file OffloadSpe.py.

def OffloadSpe::loop_blocking (   builder,
  loop_node,
  all_loop_count,
  loop_stmt,
  block_size,
  ops,
  emit_env,
  double_buffer_dma_get 
)

Definition at line 907 of file OffloadSpe.py.

def OffloadSpe::memop_var_name_suffix (   op  ) 

Definition at line 282 of file OffloadSpe.py.

def OffloadSpe::minus_if_not0 (   x,
  y 
)

Definition at line 177 of file OffloadSpe.py.

def OffloadSpe::mul_if_not1 (   x,
  y 
)

Definition at line 150 of file OffloadSpe.py.

def OffloadSpe::name_of_subscript (   subscript  ) 

Definition at line 251 of file OffloadSpe.py.

def OffloadSpe::offload_loop (   b,
  loop_node,
  init,
  cond,
  iter,
  body,
  scalar_get_stmts,
  scalar_put_stmts 
)

Definition at line 1066 of file OffloadSpe.py.

def OffloadSpe::plus_if_not0 (   x,
  y 
)

Definition at line 165 of file OffloadSpe.py.

def OffloadSpe::pointer_add (   b,
  base,
  add 
)

Definition at line 193 of file OffloadSpe.py.

def OffloadSpe::replace_array_ref_expr (   b,
  array_op,
  double_buffering,
  ignore_unalign 
)

Definition at line 1125 of file OffloadSpe.py.

def OffloadSpe::sequential_test (   memop_node,
  seq_map 
)

Definition at line 330 of file OffloadSpe.py.

def OffloadSpe::sequential_test_0 (   ops,
  loop_nest_level,
  seq_map 
)

Definition at line 291 of file OffloadSpe.py.

def OffloadSpe::spe_in_param_member (   have_spe_output,
  param,
  name 
)

Definition at line 205 of file OffloadSpe.py.

def OffloadSpe::subscript_list_scalar_access (   b,
  subscripts,
  start_offset,
  loop_top_level,
  abi 
)

Definition at line 627 of file OffloadSpe.py.

def OffloadSpe::subscript_list_vector_access (   b,
  subscripts,
  start_offset,
  loop_top_level,
  access_level,
  range_min,
  range_max,
  block_size,
  index_offset_map,
  is_first_get,
  abi,
  seq_map 
)

Definition at line 715 of file OffloadSpe.py.

def OffloadSpe::subscript_offset (   b,
  sub,
  byte_offset_expr,
  elem_offset_expr,
  is_vector,
  abi 
)

Definition at line 583 of file OffloadSpe.py.


Variable Documentation

Definition at line 43 of file OffloadSpe.py.

Definition at line 42 of file OffloadSpe.py.

Definition at line 41 of file OffloadSpe.py.

OffloadSpe::EI = ctrump.ExitInfo

Definition at line 39 of file OffloadSpe.py.

Definition at line 132 of file OffloadSpe.py.

Initial value:

[
    ('address_mode', 'アドレスモード',
     '''64bitアドレスか32bitアドレスかを指定します''', [('32',32), ('64',64)]),

    ('max_spe_num', 'SPEの最大数',
     '''SPEの最大数を指定します。
パラメータを入れる配列のサイズを指定するのに使います
''',
     6)

#     ('get_spe_expr', 'SPEオブジェクトを取得する式',
# '''SPEオブジェクトを取得する式を設定します
# 文字列中に含まれる %s が実行時のSPEを示す変数に置きかえられます
# spes[%s] のように指定すると、

# for (int speid=0; speid<num_spe; speid) {
#     spe = spes[speid];
#     run_spe(spe, param, ...);
# }

# のようなコードを生成します
# ''', 'ctrump_runtime_spes[%s].spe_context'),

#     ('spe_runtime_name', 'SPEのインターフェースライブラリの種類',
#      '''SPEを扱うライブラリの種類を選択します''',
#      [('libspe2',SPE_LIBSPE2), ('libspe1',SPE_LIBSPE1)]),

]

Definition at line 58 of file OffloadSpe.py.

Definition at line 1557 of file OffloadSpe.py.

Referenced by analyze_memory_access().

Definition at line 386 of file OffloadSpe.py.

Definition at line 385 of file OffloadSpe.py.

Definition at line 384 of file OffloadSpe.py.

Referenced by calc_union_size().

int OffloadSpe::MFC_MAX = 16384

Definition at line 48 of file OffloadSpe.py.

Definition at line 383 of file OffloadSpe.py.

Definition at line 382 of file OffloadSpe.py.

Definition at line 389 of file OffloadSpe.py.

Definition at line 388 of file OffloadSpe.py.

Definition at line 380 of file OffloadSpe.py.

string OffloadSpe::SELF_TRANSLATOR_NAME = 'SPE Offloading'

Definition at line 56 of file OffloadSpe.py.

Definition at line 381 of file OffloadSpe.py.

Definition at line 46 of file OffloadSpe.py.

Definition at line 45 of file OffloadSpe.py.

Initial value:

[
    ctrump.libspe2
]

Definition at line 52 of file OffloadSpe.py.

Definition at line 133 of file OffloadSpe.py.

Initial value:

[
    ('buf_size', "ローカルバッファのサイズ", 
     '''使うローカルバッファのサイズをバイト単位で指定します。
小さすぎると正しく動作しません''', 16384),
    ('doublebuffering', 'ダブルバッファリングする',
     '''DMAのダブルバッファリングを行います。
メモリレイテンシを隠蔽できますが、一度に使えるローカルバッファのサイズが小さくなります''', True),
    ('get_align_128', 'GETを128byte境界に揃える',
     '''バッファを少し多めに使い、転送が128byte境界に揃うようにします(無効時は16に揃えます)
転送速度が速くなることがありますが、一度に使えるローカルバッファのサイズが小さくなります''', True),

    ('name_of_spe_program', 'プログラムオブジェクトの名前', 
'''プログラムオブジェクトの名前を指定します''',
     'spe_main'),

    ('parameter_var_name', 'パラメータ変数の名前',
     '''SPEに渡すパラメータの変数の名前を指定します''',
     'spe_param'),

#     ('ignore_unaligned_data', 'データが16byte境界に揃っていないケースを考慮しない',
# '''データ数が16byte境界に揃っていない場合の処理を省略します。
# データが16byte境界に揃っていない場合、バスエラーが発生するようになります''',
#      False)

#     ('ignore_small_size', 'データ数が少ない場合のケースを考慮しない',
# '''データ数がSPE数よりも少ない場合の処理を省略します''', 
#      False),

#     ('main', "mainを作る", '関数ではなくmainを作ります', False),
]

Definition at line 87 of file OffloadSpe.py.


Generated on Tue Mar 31 20:19:54 2009 for ctrump by  doxygen 1.5.6