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.
int OffloadSpe::ALIGN_CHECK_128 = 2 |
Definition at line 43 of file OffloadSpe.py.
int OffloadSpe::ALIGN_CHECK_16 = 1 |
Definition at line 42 of file OffloadSpe.py.
int OffloadSpe::ALIGN_CHECK_NONE = 0 |
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 386 of file OffloadSpe.py.
Definition at line 385 of file OffloadSpe.py.
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 387 of file OffloadSpe.py.
Referenced by calc_struct_size(), ctrump_struct_field_offset(), cfront::StructDefinition::getSize(), and record_field_offset().
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.
int OffloadSpe::SPE_LIBSPE1 = 1 |
Definition at line 46 of file OffloadSpe.py.
int OffloadSpe::SPE_LIBSPE2 = 0 |
Definition at line 45 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.
Definition at line 1556 of file OffloadSpe.py.
Referenced by build_cfg(), recog_reduction_domtree(), and single_expr_subscripts_to_loop_subscript().