|
Optimizing noSuchMethod invocation with no arguments.
On each call that triggers a noSuchMethod invocation we
attach a custom dispatch function that allocates the
invocation object and invokes noSuchMethod. This dispatcher
is compiled and optimized like a normal Dart function.
Similar to method-extractors, these implicit dispatchers
do not show up as normal functions.
As a first step this CL only handles invocations of getters
and methods with no like o.foo or o.foo(). This CL gives
a >25x speedup of such noSuchMethod invocations. Calls with
multiple arguments still go through the slow path.
R=srdjan@google.com
Committed: https://code.google.com/p/dart/source/detail?r=24266
Total comments: 6
Total comments: 5
|
Unified diffs |
Side-by-side diffs |
Delta from patch set |
Stats (+192 lines, -31 lines) |
Patch |
|
M |
runtime/vm/class_finalizer.cc
|
View
|
|
1 chunk |
+2 lines, -1 line |
0 comments
|
Download
|
|
M |
runtime/vm/code_generator.cc
|
View
|
1
|
4 chunks |
+67 lines, -7 lines |
0 comments
|
Download
|
|
M |
runtime/vm/debugger.cc
|
View
|
|
1 chunk |
+2 lines, -1 line |
0 comments
|
Download
|
|
M |
runtime/vm/flow_graph_compiler_arm.cc
|
View
|
|
3 chunks |
+10 lines, -5 lines |
0 comments
|
Download
|
|
M |
runtime/vm/flow_graph_compiler_ia32.cc
|
View
|
|
3 chunks |
+10 lines, -5 lines |
0 comments
|
Download
|
|
M |
runtime/vm/flow_graph_compiler_mips.cc
|
View
|
|
3 chunks |
+10 lines, -5 lines |
0 comments
|
Download
|
|
M |
runtime/vm/flow_graph_compiler_x64.cc
|
View
|
|
3 chunks |
+10 lines, -5 lines |
0 comments
|
Download
|
|
M |
runtime/vm/flow_graph_optimizer.cc
|
View
|
|
1 chunk |
+2 lines, -0 lines |
0 comments
|
Download
|
|
M |
runtime/vm/mirrors_api_impl.cc
|
View
|
|
1 chunk |
+2 lines, -1 line |
0 comments
|
Download
|
|
M |
runtime/vm/object.h
|
View
|
|
2 chunks |
+5 lines, -0 lines |
0 comments
|
Download
|
|
M |
runtime/vm/object.cc
|
View
|
|
1 chunk |
+3 lines, -0 lines |
0 comments
|
Download
|
|
M |
runtime/vm/parser.h
|
View
|
|
1 chunk |
+1 line, -0 lines |
0 comments
|
Download
|
|
M |
runtime/vm/parser.cc
|
View
|
1
2
|
2 chunks |
+43 lines, -0 lines |
0 comments
|
Download
|
|
M |
runtime/vm/raw_object.h
|
View
|
|
1 chunk |
+1 line, -0 lines |
0 comments
|
Download
|
|
M |
runtime/vm/resolver.cc
|
View
|
|
1 chunk |
+1 line, -1 line |
0 comments
|
Download
|
|
A |
tests/language/no_such_method_dispatcher_test.dart
|
View
|
1
2
|
1 chunk |
+23 lines, -0 lines |
0 comments
|
Download
|
Total messages: 8 (0 generated)
|