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

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

Issue 1459443002: VM: Add dart_precompiled build target, a standalone VM without the JIT compiler. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: merge Created 5 years, 1 month 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/code_generator.cc ('k') | runtime/vm/guard_field_test.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/compiler.h" 5 #include "vm/compiler.h"
6 6
7 #include "vm/assembler.h" 7 #include "vm/assembler.h"
8 8
9 #include "vm/ast_printer.h" 9 #include "vm/ast_printer.h"
10 #include "vm/block_scheduler.h" 10 #include "vm/block_scheduler.h"
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
70 DECLARE_FLAG(bool, background_compilation); 70 DECLARE_FLAG(bool, background_compilation);
71 DECLARE_FLAG(bool, load_deferred_eagerly); 71 DECLARE_FLAG(bool, load_deferred_eagerly);
72 DECLARE_FLAG(bool, trace_failed_optimization_attempts); 72 DECLARE_FLAG(bool, trace_failed_optimization_attempts);
73 DECLARE_FLAG(bool, trace_inlining_intervals); 73 DECLARE_FLAG(bool, trace_inlining_intervals);
74 DECLARE_FLAG(bool, trace_irregexp); 74 DECLARE_FLAG(bool, trace_irregexp);
75 75
76 76
77 bool Compiler::always_optimize_ = false; 77 bool Compiler::always_optimize_ = false;
78 bool Compiler::allow_recompilation_ = true; 78 bool Compiler::allow_recompilation_ = true;
79 79
80 #ifndef DART_PRECOMPILED
Ivan Posva 2015/11/20 05:14:50 if !defined(DART_PRECOMPILED)
80 81
81 // TODO(zerny): Factor out unoptimizing/optimizing pipelines and remove 82 // TODO(zerny): Factor out unoptimizing/optimizing pipelines and remove
82 // separate helpers functions & `optimizing` args. 83 // separate helpers functions & `optimizing` args.
83 class CompilationPipeline : public ZoneAllocated { 84 class CompilationPipeline : public ZoneAllocated {
84 public: 85 public:
85 static CompilationPipeline* New(Zone* zone, const Function& function); 86 static CompilationPipeline* New(Zone* zone, const Function& function);
86 87
87 virtual void ParseFunction(ParsedFunction* parsed_function) = 0; 88 virtual void ParseFunction(ParsedFunction* parsed_function) = 0;
88 virtual FlowGraph* BuildFlowGraph( 89 virtual FlowGraph* BuildFlowGraph(
89 Zone* zone, 90 Zone* zone,
(...skipping 1634 matching lines...) Expand 10 before | Expand all | Expand 10 after
1724 } 1725 }
1725 1726
1726 1727
1727 void BackgroundCompiler::VisitPointers(ObjectPointerVisitor* visitor) { 1728 void BackgroundCompiler::VisitPointers(ObjectPointerVisitor* visitor) {
1728 function_queue_->VisitObjectPointers(visitor); 1729 function_queue_->VisitObjectPointers(visitor);
1729 } 1730 }
1730 1731
1731 1732
1732 void BackgroundCompiler::Stop(BackgroundCompiler* task) { 1733 void BackgroundCompiler::Stop(BackgroundCompiler* task) {
1733 ASSERT(Isolate::Current()->background_compiler() == task); 1734 ASSERT(Isolate::Current()->background_compiler() == task);
1734 if (task == NULL) { 1735 ASSERT(task != NULL);
1735 return;
1736 }
1737 BackgroundCompilationQueue* function_queue = task->function_queue(); 1736 BackgroundCompilationQueue* function_queue = task->function_queue();
1738 1737
1739 Monitor* queue_monitor = task->queue_monitor_; 1738 Monitor* queue_monitor = task->queue_monitor_;
1740 Monitor* done_monitor = task->done_monitor_; 1739 Monitor* done_monitor = task->done_monitor_;
1741 bool* task_done = task->done_; 1740 bool* task_done = task->done_;
1742 // Wake up compiler task and stop it. 1741 // Wake up compiler task and stop it.
1743 { 1742 {
1744 MonitorLocker ml(task->queue_monitor_); 1743 MonitorLocker ml(task->queue_monitor_);
1745 task->running_ = false; 1744 task->running_ = false;
1746 // 'task' will be deleted by thread pool. 1745 // 'task' will be deleted by thread pool.
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
1785 BackgroundCompiler* task = new BackgroundCompiler(isolate); 1784 BackgroundCompiler* task = new BackgroundCompiler(isolate);
1786 isolate->set_background_compiler(task); 1785 isolate->set_background_compiler(task);
1787 start_task = true; 1786 start_task = true;
1788 } 1787 }
1789 } 1788 }
1790 if (start_task) { 1789 if (start_task) {
1791 Dart::thread_pool()->Run(isolate->background_compiler()); 1790 Dart::thread_pool()->Run(isolate->background_compiler());
1792 } 1791 }
1793 } 1792 }
1794 1793
1794
1795 #else // DART_PRECOMPILED
1796
1797
1798 DEFINE_RUNTIME_ENTRY(CompileFunction, 1) {
1799 UNREACHABLE();
1800 }
1801
1802
1803 bool Compiler::IsBackgroundCompilation() {
1804 UNREACHABLE();
1805 return false;
1806 }
1807
1808
1809 RawError* Compiler::Compile(const Library& library, const Script& script) {
1810 UNREACHABLE();
1811 return Error::null();
1812 }
1813
1814
1815 RawError* Compiler::CompileClass(const Class& cls) {
1816 UNREACHABLE();
1817 return Error::null();
1818 }
1819
1820
1821 RawError* Compiler::CompileFunction(Thread* thread,
1822 const Function& function) {
1823 UNREACHABLE();
1824 return Error::null();
1825 }
1826
1827
1828 RawError* Compiler::EnsureUnoptimizedCode(Thread* thread,
1829 const Function& function) {
1830 UNREACHABLE();
1831 return Error::null();
1832 }
1833
1834
1835 RawError* Compiler::CompileOptimizedFunction(Thread* thread,
1836 const Function& function,
1837 intptr_t osr_id) {
1838 UNREACHABLE();
1839 return Error::null();
1840 }
1841
1842
1843 RawError* Compiler::CompileParsedFunction(
1844 ParsedFunction* parsed_function) {
1845 UNREACHABLE();
1846 return Error::null();
1847 }
1848
1849
1850 void Compiler::ComputeLocalVarDescriptors(const Code& code) {
1851 UNREACHABLE();
1852 }
1853
1854
1855 RawError* Compiler::CompileAllFunctions(const Class& cls) {
1856 UNREACHABLE();
1857 return Error::null();
1858 }
1859
1860
1861 void Compiler::CompileStaticInitializer(const Field& field) {
1862 UNREACHABLE();
1863 }
1864
1865
1866 RawObject* Compiler::EvaluateStaticInitializer(const Field& field) {
1867 ASSERT(field.HasPrecompiledInitializer());
1868 const Function& initializer =
1869 Function::Handle(field.PrecompiledInitializer());
1870 return DartEntry::InvokeFunction(initializer, Object::empty_array());
1871 }
1872
1873
1874
1875 RawObject* Compiler::ExecuteOnce(SequenceNode* fragment) {
1876 UNREACHABLE();
1877 return Object::null();
1878 }
1879
1880
1881 void BackgroundCompiler::CompileOptimized(const Function& function) {
1882 UNREACHABLE();
1883 }
1884
1885
1886 void BackgroundCompiler::VisitPointers(ObjectPointerVisitor* visitor) {
1887 UNREACHABLE();
1888 }
1889
1890
1891 void BackgroundCompiler::Stop(BackgroundCompiler* task) {
1892 UNREACHABLE();
1893 }
1894
1895
1896 void BackgroundCompiler::EnsureInit(Thread* thread) {
1897 UNREACHABLE();
1898 }
1899
1900 #endif // DART_PRECOMPILED
1901
1795 } // namespace dart 1902 } // namespace dart
OLDNEW
« no previous file with comments | « runtime/vm/code_generator.cc ('k') | runtime/vm/guard_field_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698