瀏覽代碼

ir_function_inlining: Allow inlining of loops and conditionals.

The new cloning code handles them.
tags/mesa-7.9-rc1
Eric Anholt 15 年之前
父節點
當前提交
8006576b36
共有 1 個檔案被更改,包括 1 行新增25 行删除
  1. 1
    25
      ir_function_can_inline.cpp

+ 1
- 25
ir_function_can_inline.cpp 查看文件

@@ -39,28 +39,14 @@ class ir_function_can_inline_visitor : public ir_hierarchical_visitor {
public:
ir_function_can_inline_visitor()
{
this->can_inline = true;
this->num_returns = 0;
}

virtual ir_visitor_status visit_enter(ir_loop *);
virtual ir_visitor_status visit_enter(ir_return *);
virtual ir_visitor_status visit_enter(ir_if *);

bool can_inline;
int num_returns;
};

ir_visitor_status
ir_function_can_inline_visitor::visit_enter(ir_loop *ir)
{
/* FINISHME: Implement loop cloning in ir_function_inlining.cpp */
(void) ir;
this->can_inline = false;
return visit_stop;
}


ir_visitor_status
ir_function_can_inline_visitor::visit_enter(ir_return *ir)
{
@@ -69,16 +55,6 @@ ir_function_can_inline_visitor::visit_enter(ir_return *ir)
return visit_continue;
}


ir_visitor_status
ir_function_can_inline_visitor::visit_enter(ir_if *ir)
{
/* FINISHME: Implement if cloning in ir_function_inlining.cpp. */
(void) ir;
this->can_inline = false;
return visit_stop;
}

bool
can_inline(ir_call *call)
{
@@ -91,5 +67,5 @@ can_inline(ir_call *call)
if (last && !last->as_return())
v.num_returns++;

return v.can_inline && v.num_returns == 1;
return v.num_returns == 1;
}

Loading…
取消
儲存