ir_function_inlining: Allow inlining of loops and conditionals.
authorEric Anholt <eric@anholt.net>
Wed, 23 Jun 2010 19:19:07 +0000 (12:19 -0700)
committerIan Romanick <ian.d.romanick@intel.com>
Wed, 23 Jun 2010 22:20:29 +0000 (15:20 -0700)
The new cloning code handles them.

ir_function_can_inline.cpp

index 5761a74..8bb8e0d 100644 (file)
@@ -39,29 +39,15 @@ 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)
 {
    (void) 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;
 }