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

Side by Side Diff: runtime/vm/flow_graph_builder.cc

Issue 2571563005: Turn the VM's dart:typed_data into a patch (Closed)
Patch Set: Fix interface/implementation type mismatch Created 4 years 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
« no previous file with comments | « runtime/vm/dart_api_impl.cc ('k') | runtime/vm/flow_graph_inliner.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) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, 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 #include "vm/flow_graph_builder.h" 5 #include "vm/flow_graph_builder.h"
6 6
7 #include "lib/invocation_mirror.h" 7 #include "lib/invocation_mirror.h"
8 #include "vm/ast_printer.h" 8 #include "vm/ast_printer.h"
9 #include "vm/bit_vector.h" 9 #include "vm/bit_vector.h"
10 #include "vm/compiler.h" 10 #include "vm/compiler.h"
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
69 intptr_t len = sizeof(kCommonDoubleConstants) / sizeof(double); // NOLINT 69 intptr_t len = sizeof(kCommonDoubleConstants) / sizeof(double); // NOLINT
70 for (intptr_t i = 0; i < len; i++) { 70 for (intptr_t i = 0; i < len; i++) {
71 if (Utils::DoublesBitEqual(value, kCommonDoubleConstants[i])) { 71 if (Utils::DoublesBitEqual(value, kCommonDoubleConstants[i])) {
72 return reinterpret_cast<uword>(&kCommonDoubleConstants[i]); 72 return reinterpret_cast<uword>(&kCommonDoubleConstants[i]);
73 } 73 }
74 } 74 }
75 return 0; 75 return 0;
76 } 76 }
77 77
78 78
79 #define RECOGNIZE_FACTORY(test_factory_symbol, cid, fp) \ 79 #define RECOGNIZE_FACTORY(symbol, class_name, constructor_name, cid, fp) \
80 {Symbols::k##test_factory_symbol##Id, cid, fp, \ 80 {Symbols::k##symbol##Id, cid, fp, #symbol ", " #cid}, // NOLINT
81 #test_factory_symbol ", " #cid}, // NOLINT
82 81
83 static struct { 82 static struct {
84 intptr_t symbold_id; 83 intptr_t symbol_id;
85 intptr_t cid; 84 intptr_t cid;
86 intptr_t finger_print; 85 intptr_t finger_print;
87 const char* name; 86 const char* name;
88 } factory_recognizer_list[] = {RECOGNIZED_LIST_FACTORY_LIST(RECOGNIZE_FACTORY){ 87 } factory_recognizer_list[] = {RECOGNIZED_LIST_FACTORY_LIST(RECOGNIZE_FACTORY){
89 Symbols::kIllegal, -1, -1, NULL}}; 88 Symbols::kIllegal, -1, -1, NULL}};
90 89
91 #undef RECOGNIZE_FACTORY 90 #undef RECOGNIZE_FACTORY
92 91
93 intptr_t FactoryRecognizer::ResultCid(const Function& factory) { 92 intptr_t FactoryRecognizer::ResultCid(const Function& factory) {
94 ASSERT(factory.IsFactory()); 93 ASSERT(factory.IsFactory());
95 const Class& function_class = Class::Handle(factory.Owner()); 94 const Class& function_class = Class::Handle(factory.Owner());
96 const Library& lib = Library::Handle(function_class.library()); 95 const Library& lib = Library::Handle(function_class.library());
97 ASSERT((lib.raw() == Library::CoreLibrary()) || 96 ASSERT((lib.raw() == Library::CoreLibrary()) ||
98 (lib.raw() == Library::TypedDataLibrary())); 97 (lib.raw() == Library::TypedDataLibrary()));
99 const String& factory_name = String::Handle(factory.name()); 98 const String& factory_name = String::Handle(factory.name());
100 for (intptr_t i = 0; 99 for (intptr_t i = 0;
101 factory_recognizer_list[i].symbold_id != Symbols::kIllegal; i++) { 100 factory_recognizer_list[i].symbol_id != Symbols::kIllegal; i++) {
102 if (String::EqualsIgnoringPrivateKey( 101 if (String::EqualsIgnoringPrivateKey(
103 factory_name, 102 factory_name,
104 Symbols::Symbol(factory_recognizer_list[i].symbold_id))) { 103 Symbols::Symbol(factory_recognizer_list[i].symbol_id))) {
105 return factory_recognizer_list[i].cid; 104 return factory_recognizer_list[i].cid;
106 } 105 }
107 } 106 }
108 return kDynamicCid; 107 return kDynamicCid;
109 } 108 }
110 109
111 110
112 // Base class for a stack of enclosing statements of interest (e.g., 111 // Base class for a stack of enclosing statements of interest (e.g.,
113 // blocks (breakable) and loops (continuable)). 112 // blocks (breakable) and loops (continuable)).
114 class NestedStatement : public ValueObject { 113 class NestedStatement : public ValueObject {
(...skipping 4234 matching lines...) Expand 10 before | Expand all | Expand 10 after
4349 graph_entry_->PruneUnreachable(graph_entry_, NULL, osr_id_, block_marks); 4348 graph_entry_->PruneUnreachable(graph_entry_, NULL, osr_id_, block_marks);
4350 ASSERT(found); 4349 ASSERT(found);
4351 } 4350 }
4352 4351
4353 4352
4354 void FlowGraphBuilder::Bailout(const char* reason) const { 4353 void FlowGraphBuilder::Bailout(const char* reason) const {
4355 parsed_function_.Bailout("FlowGraphBuilder", reason); 4354 parsed_function_.Bailout("FlowGraphBuilder", reason);
4356 } 4355 }
4357 4356
4358 } // namespace dart 4357 } // namespace dart
OLDNEW
« no previous file with comments | « runtime/vm/dart_api_impl.cc ('k') | runtime/vm/flow_graph_inliner.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698