Lines Matching defs:program

46 get_referenced_blocks(Program* program)
48 std::vector<bool> referenced_blocks(program->blocks.size());
50 for (Block& block : program->blocks) {
58 print_block_markers(FILE* output, Program* program, const std::vector<bool>& referenced_blocks,
61 while (*next_block < program->blocks.size() && pos == program->blocks[*next_block].offset) {
80 print_constant_data(FILE* output, Program* program)
82 if (program->constant_data.empty())
86 for (unsigned i = 0; i < program->constant_data.size(); i += 32) {
88 unsigned line_size = std::min<size_t>(program->constant_data.size() - i, 32);
90 unsigned size = std::min<size_t>(program->constant_data.size() - (i + j), 4);
92 memcpy(&v, &program->constant_data[i + j], size);
156 get_branch_target(char** output, Program* program, const std::vector<bool>& referenced_blocks,
165 for (Block& block : program->blocks) {
175 print_asm_clrx(Program* program, std::vector<uint32_t>& binary, unsigned exec_size, FILE* output)
185 const char* gpu_type = to_clrx_device_name(program->gfx_level, program->family);
207 std::vector<bool> referenced_blocks = get_referenced_blocks(program);
239 print_block_markers(output, program, referenced_blocks, &next_block, pos);
245 get_branch_target(&dest, program, referenced_blocks, &line_start))
257 print_constant_data(output, program);
341 print_asm_llvm(Program* program, std::vector<uint32_t>& binary, unsigned exec_size, FILE* output)
343 std::vector<bool> referenced_blocks = get_referenced_blocks(program);
347 block_names.reserve(program->blocks.size());
348 for (Block& block : program->blocks) {
359 if (program->gfx_level >= GFX10 && program->wave_size == 64) {
364 LLVMCreateDisasmCPUFeatures("amdgcn-mesa-mesa3d", ac_get_llvm_processor_name(program->family),
376 next_block < program->blocks.size() && pos == program->blocks[next_block].offset;
388 print_block_markers(output, program, referenced_blocks, &next_block, pos);
391 std::pair<bool, size_t> res = disasm_instr(program->gfx_level, disasm, binary.data(),
401 assert(next_block == program->blocks.size());
405 print_constant_data(output, program);
414 check_print_asm_support(Program* program)
417 if (program->gfx_level >= GFX8) {
419 const char* name = ac_get_llvm_processor_name(program->family);
435 /* Check if CLRX disassembler binary is available and can disassemble the program */
436 return to_clrx_device_name(program->gfx_level, program->family) &&
445 print_asm(Program* program, std::vector<uint32_t>& binary, unsigned exec_size, FILE* output)
448 if (program->gfx_level >= GFX8) {
449 return print_asm_llvm(program, binary, exec_size, output);
453 return print_asm_clrx(program, binary, exec_size, output);