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

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

Issue 2960413002: Omit JIT compiler from precompiled runtime on ARM, ARM64 and IA32. (Closed)
Patch Set: Moved trace_irregexp flag to flag_list.h Created 3 years, 5 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
« no previous file with comments | « runtime/vm/program_visitor.h ('k') | runtime/vm/regexp.h » ('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) 2015, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2015, 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/program_visitor.h" 5 #include "vm/program_visitor.h"
6 6
7 #include "vm/deopt_instructions.h" 7 #include "vm/deopt_instructions.h"
8 #include "vm/object.h" 8 #include "vm/object.h"
9 #include "vm/object_store.h" 9 #include "vm/object_store.h"
10 #include "vm/hash_map.h" 10 #include "vm/hash_map.h"
(...skipping 263 matching lines...) Expand 10 before | Expand all | Expand 10 after
274 } 274 }
275 275
276 static inline bool IsKeyEqual(Pair pair, Key key) { 276 static inline bool IsKeyEqual(Pair pair, Key key) {
277 return pair->CanonicalizeEquals(*key); 277 return pair->CanonicalizeEquals(*key);
278 } 278 }
279 }; 279 };
280 280
281 typedef DirectChainedHashMap<TypedDataKeyValueTrait> TypedDataSet; 281 typedef DirectChainedHashMap<TypedDataKeyValueTrait> TypedDataSet;
282 282
283 283
284 #if !defined(DART_PRECOMPILED_RUNTIME)
284 void ProgramVisitor::DedupDeoptEntries() { 285 void ProgramVisitor::DedupDeoptEntries() {
285 class DedupDeoptEntriesVisitor : public FunctionVisitor { 286 class DedupDeoptEntriesVisitor : public FunctionVisitor {
286 public: 287 public:
287 explicit DedupDeoptEntriesVisitor(Zone* zone) 288 explicit DedupDeoptEntriesVisitor(Zone* zone)
288 : zone_(zone), 289 : zone_(zone),
289 canonical_deopt_entries_(), 290 canonical_deopt_entries_(),
290 code_(Code::Handle(zone)), 291 code_(Code::Handle(zone)),
291 deopt_table_(Array::Handle(zone)), 292 deopt_table_(Array::Handle(zone)),
292 deopt_entry_(TypedData::Handle(zone)), 293 deopt_entry_(TypedData::Handle(zone)),
293 offset_(Smi::Handle(zone)), 294 offset_(Smi::Handle(zone)),
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
330 Code& code_; 331 Code& code_;
331 Array& deopt_table_; 332 Array& deopt_table_;
332 TypedData& deopt_entry_; 333 TypedData& deopt_entry_;
333 Smi& offset_; 334 Smi& offset_;
334 Smi& reason_and_flags_; 335 Smi& reason_and_flags_;
335 }; 336 };
336 337
337 DedupDeoptEntriesVisitor visitor(Thread::Current()->zone()); 338 DedupDeoptEntriesVisitor visitor(Thread::Current()->zone());
338 ProgramVisitor::VisitFunctions(&visitor); 339 ProgramVisitor::VisitFunctions(&visitor);
339 } 340 }
341 #endif // !defined(DART_PRECOMPILED_RUNTIME)
340 342
341 343
342 class CodeSourceMapKeyValueTrait { 344 class CodeSourceMapKeyValueTrait {
343 public: 345 public:
344 // Typedefs needed for the DirectChainedHashMap template. 346 // Typedefs needed for the DirectChainedHashMap template.
345 typedef const CodeSourceMap* Key; 347 typedef const CodeSourceMap* Key;
346 typedef const CodeSourceMap* Value; 348 typedef const CodeSourceMap* Value;
347 typedef const CodeSourceMap* Pair; 349 typedef const CodeSourceMap* Pair;
348 350
349 static Key KeyOf(Pair kv) { return kv; } 351 static Key KeyOf(Pair kv) { return kv; }
(...skipping 250 matching lines...) Expand 10 before | Expand all | Expand 10 after
600 void ProgramVisitor::Dedup() { 602 void ProgramVisitor::Dedup() {
601 Thread* thread = Thread::Current(); 603 Thread* thread = Thread::Current();
602 StackZone stack_zone(thread); 604 StackZone stack_zone(thread);
603 HANDLESCOPE(thread); 605 HANDLESCOPE(thread);
604 606
605 // TODO(rmacnak): Bind static calls whose target has been compiled. Forward 607 // TODO(rmacnak): Bind static calls whose target has been compiled. Forward
606 // references to disabled code. 608 // references to disabled code.
607 ShareMegamorphicBuckets(); 609 ShareMegamorphicBuckets();
608 DedupStackMaps(); 610 DedupStackMaps();
609 DedupPcDescriptors(); 611 DedupPcDescriptors();
610 DedupDeoptEntries(); 612 NOT_IN_PRECOMPILED(DedupDeoptEntries());
611 DedupCodeSourceMaps(); 613 DedupCodeSourceMaps();
612 DedupLists(); 614 DedupLists();
613 615
614 if (!FLAG_profiler) { 616 if (!FLAG_profiler) {
615 // Reduces binary size but obfuscates profiler results. 617 // Reduces binary size but obfuscates profiler results.
616 DedupInstructions(); 618 DedupInstructions();
617 } 619 }
618 } 620 }
619 621
620 } // namespace dart 622 } // namespace dart
OLDNEW
« no previous file with comments | « runtime/vm/program_visitor.h ('k') | runtime/vm/regexp.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698