summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Anholt <eric@anholt.net>2010-06-23 12:19:07 -0700
committerIan Romanick <ian.d.romanick@intel.com>2010-06-23 15:20:29 -0700
commit8006576b3646f3ee621b38b5f27a138a50d073bf (patch)
tree43de28e5b7068c45d70d17e22fb28aa0caf05368
parent4b6fd39c89f308a379882426c1ed3616d60c4628 (diff)
ir_function_inlining: Allow inlining of loops and conditionals.
The new cloning code handles them.
-rw-r--r--ir_function_can_inline.cpp26
1 files changed, 1 insertions, 25 deletions
diff --git a/ir_function_can_inline.cpp b/ir_function_can_inline.cpp
index 5761a74..8bb8e0d 100644
--- a/ir_function_can_inline.cpp
+++ b/ir_function_can_inline.cpp
@@ -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;
}