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

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

Issue 1858283002: Initial SIMDBC interpreter. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 4 years, 8 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/os_linux.cc ('k') | runtime/vm/profiler.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) 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/precompiler.h" 5 #include "vm/precompiler.h"
6 6
7 #include "vm/aot_optimizer.h" 7 #include "vm/aot_optimizer.h"
8 #include "vm/assembler.h" 8 #include "vm/assembler.h"
9 #include "vm/ast_printer.h" 9 #include "vm/ast_printer.h"
10 #include "vm/branch_optimizer.h" 10 #include "vm/branch_optimizer.h"
(...skipping 1703 matching lines...) Expand 10 before | Expand all | Expand 10 after
1714 Function& target_; 1714 Function& target_;
1715 Code& target_code_; 1715 Code& target_code_;
1716 }; 1716 };
1717 1717
1718 BindStaticCallsVisitor visitor(Z); 1718 BindStaticCallsVisitor visitor(Z);
1719 VisitFunctions(&visitor); 1719 VisitFunctions(&visitor);
1720 } 1720 }
1721 1721
1722 1722
1723 void Precompiler::SwitchICCalls() { 1723 void Precompiler::SwitchICCalls() {
1724 #if !defined(TARGET_ARCH_DBC)
1724 // Now that all functions have been compiled, we can switch to an instance 1725 // Now that all functions have been compiled, we can switch to an instance
1725 // call sequence that loads the Code object and entry point directly from 1726 // call sequence that loads the Code object and entry point directly from
1726 // the ic data array instead indirectly through a Function in the ic data 1727 // the ic data array instead indirectly through a Function in the ic data
1727 // array. Iterate all the object pools and rewrite the ic data from 1728 // array. Iterate all the object pools and rewrite the ic data from
1728 // (cid, target function, count) to (cid, target code, entry point), and 1729 // (cid, target function, count) to (cid, target code, entry point), and
1729 // replace the ICLookupThroughFunction stub with ICLookupThroughCode. 1730 // replace the ICLookupThroughFunction stub with ICLookupThroughCode.
1730 1731
1731 class SwitchICCallsVisitor : public FunctionVisitor { 1732 class SwitchICCallsVisitor : public FunctionVisitor {
1732 public: 1733 public:
1733 explicit SwitchICCallsVisitor(Zone* zone) : 1734 explicit SwitchICCallsVisitor(Zone* zone) :
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
1787 Object& entry_; 1788 Object& entry_;
1788 ICData& ic_; 1789 ICData& ic_;
1789 Function& target_; 1790 Function& target_;
1790 Code& target_code_; 1791 Code& target_code_;
1791 Smi& entry_point_; 1792 Smi& entry_point_;
1792 }; 1793 };
1793 1794
1794 ASSERT(!I->compilation_allowed()); 1795 ASSERT(!I->compilation_allowed());
1795 SwitchICCallsVisitor visitor(Z); 1796 SwitchICCallsVisitor visitor(Z);
1796 VisitFunctions(&visitor); 1797 VisitFunctions(&visitor);
1798 #endif
1797 } 1799 }
1798 1800
1799 1801
1800 void Precompiler::DedupStackmaps() { 1802 void Precompiler::DedupStackmaps() {
1801 class DedupStackmapsVisitor : public FunctionVisitor { 1803 class DedupStackmapsVisitor : public FunctionVisitor {
1802 public: 1804 public:
1803 explicit DedupStackmapsVisitor(Zone* zone) : 1805 explicit DedupStackmapsVisitor(Zone* zone) :
1804 zone_(zone), 1806 zone_(zone),
1805 canonical_stackmaps_(), 1807 canonical_stackmaps_(),
1806 code_(Code::Handle(zone)), 1808 code_(Code::Handle(zone)),
(...skipping 929 matching lines...) Expand 10 before | Expand all | Expand 10 after
2736 CompilationPipeline::New(thread->zone(), function); 2738 CompilationPipeline::New(thread->zone(), function);
2737 2739
2738 ASSERT(FLAG_precompiled_mode); 2740 ASSERT(FLAG_precompiled_mode);
2739 const bool optimized = function.IsOptimizable(); // False for natives. 2741 const bool optimized = function.IsOptimizable(); // False for natives.
2740 return PrecompileFunctionHelper(pipeline, function, optimized); 2742 return PrecompileFunctionHelper(pipeline, function, optimized);
2741 } 2743 }
2742 2744
2743 #endif // DART_PRECOMPILER 2745 #endif // DART_PRECOMPILER
2744 2746
2745 } // namespace dart 2747 } // namespace dart
OLDNEW
« no previous file with comments | « runtime/vm/os_linux.cc ('k') | runtime/vm/profiler.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698