Index: src/hydrogen.cc |
diff --git a/src/hydrogen.cc b/src/hydrogen.cc |
index b035ed1afa316f44037a8e4c7e12bb0d4c786896..f2b2d55c6e10dc122697b1fb85816a5997b0ab90 100644 |
--- a/src/hydrogen.cc |
+++ b/src/hydrogen.cc |
@@ -6772,44 +6772,13 @@ HInstruction* HOptimizedGraphBuilder::BuildCallConstantFunction( |
} |
-class FunctionSorter { |
- public: |
- FunctionSorter() : index_(0), ticks_(0), ast_length_(0), src_length_(0) { } |
- FunctionSorter(int index, int ticks, int ast_length, int src_length) |
- : index_(index), |
- ticks_(ticks), |
- ast_length_(ast_length), |
- src_length_(src_length) { } |
- |
- int index() const { return index_; } |
- int ticks() const { return ticks_; } |
- int ast_length() const { return ast_length_; } |
- int src_length() const { return src_length_; } |
- |
- private: |
- int index_; |
- int ticks_; |
- int ast_length_; |
- int src_length_; |
-}; |
- |
- |
-inline bool operator<(const FunctionSorter& lhs, const FunctionSorter& rhs) { |
- int diff = lhs.ticks() - rhs.ticks(); |
- if (diff != 0) return diff > 0; |
- diff = lhs.ast_length() - rhs.ast_length(); |
- if (diff != 0) return diff < 0; |
- return lhs.src_length() < rhs.src_length(); |
-} |
- |
- |
void HOptimizedGraphBuilder::HandlePolymorphicCallNamed( |
Call* expr, |
HValue* receiver, |
SmallMapList* types, |
Handle<String> name) { |
int argument_count = expr->arguments()->length() + 1; // Includes receiver. |
- FunctionSorter order[kMaxCallPolymorphism]; |
+ int order[kMaxCallPolymorphism]; |
bool handle_smi = false; |
bool handled_string = false; |
@@ -6831,23 +6800,17 @@ void HOptimizedGraphBuilder::HandlePolymorphicCallNamed( |
handle_smi = true; |
} |
expr->set_target(target); |
- order[ordered_functions++] = |
- FunctionSorter(i, |
- expr->target()->shared()->profiler_ticks(), |
- InliningAstSize(expr->target()), |
- expr->target()->shared()->SourceSize()); |
+ order[ordered_functions++] = i; |
} |
} |
- std::sort(order, order + ordered_functions); |
- |
HBasicBlock* number_block = NULL; |
HBasicBlock* join = NULL; |
handled_string = false; |
int count = 0; |
for (int fn = 0; fn < ordered_functions; ++fn) { |
- int i = order[fn].index(); |
+ int i = order[fn]; |
PropertyAccessInfo info(this, LOAD, ToType(types->at(i)), name); |
if (info.type()->Is(Type::String())) { |
if (handled_string) continue; |