Lines Matching defs:func
1850 struct dxil_func *func = ralloc_size(m->ralloc_ctx,
1852 if (!func)
1856 func->name = ralloc_strndup(func, name, 253);
1857 if (!func->name) {
1861 func->type = type;
1862 func->decl = decl;
1863 func->attr_set = attr_set;
1865 func->value.id = -1;
1866 func->value.type = type->function_def.ret_type;
1867 list_addtail(&func->head, &m->func_list);
1868 return func;
1877 def->func = add_function(m, name, type, false, 0);
1878 if (!def->func)
2023 struct dxil_func *func;
2024 LIST_FOR_EACH_ENTRY(func, &m->func_list, head) {
2025 assert(func->type->id >= 0);
2026 if (!emit_module_info_function(m, func->type->id, func->decl,
2027 func->attr_set))
2239 struct dxil_func *func;
2240 LIST_FOR_EACH_ENTRY(func, &m->func_list, head) {
2241 if (!emit_symtab_entry(m, func->value.id, func->name))
2340 dxil_get_metadata_func(struct dxil_module *m, const struct dxil_func *func)
2343 dxil_module_get_pointer_type(m, func->type);
2344 return dxil_get_metadata_value(m, ptr_type, &func->value);
2775 const struct dxil_func *func,
2778 assert(num_args == func->type->function_def.args.num_types);
2780 assert(types_equal(func->type->function_def.args.types[i], args[i]->type));
2783 func->type->function_def.ret_type);
2785 instr->call.func = func;
2797 const struct dxil_func *func,
2800 assert(func->type->function_def.ret_type->type != TYPE_VOID);
2802 struct dxil_instr *instr = create_call_instr(m, func, args, num_args);
2812 const struct dxil_func *func,
2815 assert(func->type->function_def.ret_type->type == TYPE_VOID);
2817 struct dxil_instr *instr = create_call_instr(m, func, args, num_args);
3101 emit_branch(struct dxil_module *m, struct dxil_func_def *func, struct dxil_instr *instr)
3104 assert(instr->br.succ[0] < func->num_basic_block_ids);
3105 assert(func->basic_block_ids[instr->br.succ[0]] >= 0);
3109 uint64_t succ = func->basic_block_ids[instr->br.succ[0]];
3114 assert(instr->br.succ[1] < func->num_basic_block_ids);
3115 assert(func->basic_block_ids[instr->br.succ[1]] >= 0);
3118 func->basic_block_ids[instr->br.succ[0]],
3119 func->basic_block_ids[instr->br.succ[1]],
3127 emit_phi(struct dxil_module *m, struct dxil_func_def *func, struct dxil_instr *instr)
3136 assert(instr->phi.incoming[i].block < func->num_basic_block_ids);
3137 assert(func->basic_block_ids[instr->phi.incoming[i].block] >= 0);
3138 data[1 + i * 2 + 1] = func->basic_block_ids[instr->phi.incoming[i].block];
3165 assert(instr->call.func->value.id >= 0 && instr->value.id >= 0);
3166 assert(instr->call.func->type->id >= 0);
3167 assert(instr->call.func->value.id <= instr->value.id);
3168 int value_id_delta = instr->value.id - instr->call.func->value.id;
3173 data[2] = instr->call.func->type->id;
3312 emit_instr(struct dxil_module *m, struct dxil_func_def *func, struct dxil_instr *instr)
3328 return emit_branch(m, func, instr);
3331 return emit_phi(m, func, instr);
3366 emit_function(struct dxil_module *m, struct dxil_func_def *func)
3369 !emit_record_int(m, FUNC_CODE_DECLAREBLOCKS, func->curr_block))
3372 list_for_each_entry(struct dxil_instr, instr, &func->instr_list, head) {
3373 if (!emit_instr(m, func, instr))
3390 struct dxil_func *func;
3391 LIST_FOR_EACH_ENTRY(func, &m->func_list, head) {
3392 func->value.id = next_value_id++;
3435 struct dxil_func_def *func;
3436 LIST_FOR_EACH_ENTRY(func, &m->func_def_list, head) {
3437 if (!emit_function(m, func))