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

Side by Side Diff: runtime/vm/intermediate_language.h

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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « runtime/vm/instructions_mips.cc ('k') | runtime/vm/intermediate_language.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 #ifndef VM_INTERMEDIATE_LANGUAGE_H_ 5 #ifndef VM_INTERMEDIATE_LANGUAGE_H_
6 #define VM_INTERMEDIATE_LANGUAGE_H_ 6 #define VM_INTERMEDIATE_LANGUAGE_H_
7 7
8 #include "vm/allocation.h" 8 #include "vm/allocation.h"
9 #include "vm/ast.h" 9 #include "vm/ast.h"
10 #include "vm/growable_array.h" 10 #include "vm/growable_array.h"
(...skipping 2602 matching lines...) Expand 10 before | Expand all | Expand 10 after
2613 const Array& ic_data_array) 2613 const Array& ic_data_array)
2614 : ic_data_(GetICData(ic_data_array)), 2614 : ic_data_(GetICData(ic_data_array)),
2615 token_pos_(token_pos), 2615 token_pos_(token_pos),
2616 function_name_(function_name), 2616 function_name_(function_name),
2617 token_kind_(token_kind), 2617 token_kind_(token_kind),
2618 arguments_(arguments), 2618 arguments_(arguments),
2619 argument_names_(argument_names), 2619 argument_names_(argument_names),
2620 checked_argument_count_(checked_argument_count) { 2620 checked_argument_count_(checked_argument_count) {
2621 ASSERT(function_name.IsNotTemporaryScopedHandle()); 2621 ASSERT(function_name.IsNotTemporaryScopedHandle());
2622 ASSERT(!arguments->is_empty()); 2622 ASSERT(!arguments->is_empty());
2623 ASSERT(argument_names.IsZoneHandle()); 2623 ASSERT(argument_names.IsZoneHandle() || argument_names.InVMHeap());
2624 ASSERT(Token::IsBinaryOperator(token_kind) || 2624 ASSERT(Token::IsBinaryOperator(token_kind) ||
2625 Token::IsPrefixOperator(token_kind) || 2625 Token::IsPrefixOperator(token_kind) ||
2626 Token::IsIndexOperator(token_kind) || 2626 Token::IsIndexOperator(token_kind) ||
2627 Token::IsTypeTestOperator(token_kind) || 2627 Token::IsTypeTestOperator(token_kind) ||
2628 Token::IsTypeCastOperator(token_kind) || 2628 Token::IsTypeCastOperator(token_kind) ||
2629 token_kind == Token::kGET || 2629 token_kind == Token::kGET ||
2630 token_kind == Token::kSET || 2630 token_kind == Token::kSET ||
2631 token_kind == Token::kILLEGAL); 2631 token_kind == Token::kILLEGAL);
2632 } 2632 }
2633 2633
(...skipping 436 matching lines...) Expand 10 before | Expand all | Expand 10 after
3070 const Function& function, 3070 const Function& function,
3071 const Array& argument_names, 3071 const Array& argument_names,
3072 ZoneGrowableArray<PushArgumentInstr*>* arguments) 3072 ZoneGrowableArray<PushArgumentInstr*>* arguments)
3073 : token_pos_(token_pos), 3073 : token_pos_(token_pos),
3074 function_(function), 3074 function_(function),
3075 argument_names_(argument_names), 3075 argument_names_(argument_names),
3076 arguments_(arguments), 3076 arguments_(arguments),
3077 result_cid_(kDynamicCid), 3077 result_cid_(kDynamicCid),
3078 is_known_list_constructor_(false) { 3078 is_known_list_constructor_(false) {
3079 ASSERT(function.IsZoneHandle()); 3079 ASSERT(function.IsZoneHandle());
3080 ASSERT(argument_names.IsZoneHandle()); 3080 ASSERT(argument_names.IsZoneHandle() || argument_names.InVMHeap());
3081 } 3081 }
3082 3082
3083 DECLARE_INSTRUCTION(StaticCall) 3083 DECLARE_INSTRUCTION(StaticCall)
3084 virtual CompileType ComputeType() const; 3084 virtual CompileType ComputeType() const;
3085 3085
3086 // Accessors forwarded to the AST node. 3086 // Accessors forwarded to the AST node.
3087 const Function& function() const { return function_; } 3087 const Function& function() const { return function_; }
3088 const Array& argument_names() const { return argument_names_; } 3088 const Array& argument_names() const { return argument_names_; }
3089 intptr_t token_pos() const { return token_pos_; } 3089 intptr_t token_pos() const { return token_pos_; }
3090 3090
(...skipping 3398 matching lines...) Expand 10 before | Expand all | Expand 10 after
6489 ForwardInstructionIterator* current_iterator_; 6489 ForwardInstructionIterator* current_iterator_;
6490 6490
6491 private: 6491 private:
6492 DISALLOW_COPY_AND_ASSIGN(FlowGraphVisitor); 6492 DISALLOW_COPY_AND_ASSIGN(FlowGraphVisitor);
6493 }; 6493 };
6494 6494
6495 6495
6496 } // namespace dart 6496 } // namespace dart
6497 6497
6498 #endif // VM_INTERMEDIATE_LANGUAGE_H_ 6498 #endif // VM_INTERMEDIATE_LANGUAGE_H_
OLDNEW
« no previous file with comments | « runtime/vm/instructions_mips.cc ('k') | runtime/vm/intermediate_language.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698