Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(799)

Unified Diff: runtime/vm/code_generator.cc

Issue 17421003: Store arguments descriptor in ICData. Remove loading of arguments descriptor at unoptimized call si… (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 7 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « runtime/vm/code_generator.h ('k') | runtime/vm/code_patcher.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: runtime/vm/code_generator.cc
===================================================================
--- runtime/vm/code_generator.cc (revision 24207)
+++ runtime/vm/code_generator.cc (working copy)
@@ -768,11 +768,10 @@
// Resolves and compiles the target function of an instance call, updates
// function cache of the receiver's class and returns the compiled code or null.
// Only the number of named arguments is checked, but not the actual names.
-RawCode* ResolveCompileInstanceCallTarget(
- const Instance& receiver,
- const ICData& ic_data,
- const Array& arguments_descriptor_array) {
- ArgumentsDescriptor arguments_descriptor(arguments_descriptor_array);
+RawCode* ResolveCompileInstanceCallTarget(const Instance& receiver,
+ const ICData& ic_data) {
+ ArgumentsDescriptor
+ arguments_descriptor(Array::Handle(ic_data.arguments_descriptor()));
intptr_t num_arguments = arguments_descriptor.Count();
int num_named_arguments = arguments_descriptor.NamedCount();
String& function_name = String::Handle(ic_data.target_name());
@@ -874,9 +873,7 @@
const Array& args_descriptor_array) {
const Instance& receiver = *args[0];
const Code& target_code =
- Code::Handle(ResolveCompileInstanceCallTarget(receiver,
- ic_data,
- args_descriptor_array));
+ Code::Handle(ResolveCompileInstanceCallTarget(receiver, ic_data));
if (target_code.IsNull()) {
// Let the megamorphic stub handle special cases: NoSuchMethod,
// closure calls.
« no previous file with comments | « runtime/vm/code_generator.h ('k') | runtime/vm/code_patcher.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698