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

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

Issue 1811613002: Timeline API fixes for Flutter (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 4 years, 9 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/lib/timeline.cc ('k') | runtime/vm/dart.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 22 matching lines...) Expand all
33 #include "vm/object_store.h" 33 #include "vm/object_store.h"
34 #include "vm/os.h" 34 #include "vm/os.h"
35 #include "vm/parser.h" 35 #include "vm/parser.h"
36 #include "vm/precompiler.h" 36 #include "vm/precompiler.h"
37 #include "vm/redundancy_elimination.h" 37 #include "vm/redundancy_elimination.h"
38 #include "vm/regexp_parser.h" 38 #include "vm/regexp_parser.h"
39 #include "vm/regexp_assembler.h" 39 #include "vm/regexp_assembler.h"
40 #include "vm/symbols.h" 40 #include "vm/symbols.h"
41 #include "vm/tags.h" 41 #include "vm/tags.h"
42 #include "vm/thread_registry.h" 42 #include "vm/thread_registry.h"
43 #include "vm/timeline.h"
43 #include "vm/timer.h" 44 #include "vm/timer.h"
44 45
45 namespace dart { 46 namespace dart {
46 47
47 DEFINE_FLAG(bool, allocation_sinking, true, 48 DEFINE_FLAG(bool, allocation_sinking, true,
48 "Attempt to sink temporary allocations to side exits"); 49 "Attempt to sink temporary allocations to side exits");
49 DEFINE_FLAG(bool, common_subexpression_elimination, true, 50 DEFINE_FLAG(bool, common_subexpression_elimination, true,
50 "Do common subexpression elimination."); 51 "Do common subexpression elimination.");
51 DEFINE_FLAG(bool, constant_propagation, true, 52 DEFINE_FLAG(bool, constant_propagation, true,
52 "Do conditional constant propagation/unreachable code elimination."); 53 "Do conditional constant propagation/unreachable code elimination.");
(...skipping 218 matching lines...) Expand 10 before | Expand all | Expand 10 after
271 thread->clear_sticky_error(); 272 thread->clear_sticky_error();
272 return error.raw(); 273 return error.raw();
273 } 274 }
274 } 275 }
275 276
276 Thread* const thread = Thread::Current(); 277 Thread* const thread = Thread::Current();
277 StackZone zone(thread); 278 StackZone zone(thread);
278 NOT_IN_PRODUCT( 279 NOT_IN_PRODUCT(
279 VMTagScope tagScope(thread, VMTag::kCompileClassTagId); 280 VMTagScope tagScope(thread, VMTag::kCompileClassTagId);
280 TimelineDurationScope tds(thread, 281 TimelineDurationScope tds(thread,
281 thread->isolate()->GetCompilerStream(), 282 Timeline::GetCompilerStream(),
282 "CompileClass"); 283 "CompileClass");
283 if (tds.enabled()) { 284 if (tds.enabled()) {
284 tds.SetNumArguments(1); 285 tds.SetNumArguments(1);
285 tds.CopyArgument(0, "class", cls.ToCString()); 286 tds.CopyArgument(0, "class", cls.ToCString());
286 } 287 }
287 ) // !PRODUCT 288 ) // !PRODUCT
288 289
289 // We remember all the classes that are being compiled in these lists. This 290 // We remember all the classes that are being compiled in these lists. This
290 // also allows us to reset the marked_for_parsing state in case we see an 291 // also allows us to reset the marked_for_parsing state in case we see an
291 // error. 292 // error.
(...skipping 283 matching lines...) Expand 10 before | Expand all | Expand 10 after
575 // to install code. 576 // to install code.
576 bool CompileParsedFunctionHelper::Compile(CompilationPipeline* pipeline) { 577 bool CompileParsedFunctionHelper::Compile(CompilationPipeline* pipeline) {
577 ASSERT(!FLAG_precompiled_mode); 578 ASSERT(!FLAG_precompiled_mode);
578 const Function& function = parsed_function()->function(); 579 const Function& function = parsed_function()->function();
579 if (optimized() && !function.IsOptimizable()) { 580 if (optimized() && !function.IsOptimizable()) {
580 return false; 581 return false;
581 } 582 }
582 bool is_compiled = false; 583 bool is_compiled = false;
583 Zone* const zone = thread()->zone(); 584 Zone* const zone = thread()->zone();
584 NOT_IN_PRODUCT( 585 NOT_IN_PRODUCT(
585 TimelineStream* compiler_timeline = isolate()->GetCompilerStream()); 586 TimelineStream* compiler_timeline = Timeline::GetCompilerStream());
586 CSTAT_TIMER_SCOPE(thread(), codegen_timer); 587 CSTAT_TIMER_SCOPE(thread(), codegen_timer);
587 HANDLESCOPE(thread()); 588 HANDLESCOPE(thread());
588 589
589 // We may reattempt compilation if the function needs to be assembled using 590 // We may reattempt compilation if the function needs to be assembled using
590 // far branches on ARM and MIPS. In the else branch of the setjmp call, 591 // far branches on ARM and MIPS. In the else branch of the setjmp call,
591 // done is set to false, and use_far_branches is set to true if there is a 592 // done is set to false, and use_far_branches is set to true if there is a
592 // longjmp from the ARM or MIPS assemblers. In all other paths through this 593 // longjmp from the ARM or MIPS assemblers. In all other paths through this
593 // while loop, done is set to true. use_far_branches is always false on ia32 594 // while loop, done is set to true. use_far_branches is always false on ia32
594 // and x64. 595 // and x64.
595 volatile bool done = false; 596 volatile bool done = false;
(...skipping 1270 matching lines...) Expand 10 before | Expand all | Expand 10 after
1866 } 1867 }
1867 1868
1868 1869
1869 void BackgroundCompiler::EnsureInit(Thread* thread) { 1870 void BackgroundCompiler::EnsureInit(Thread* thread) {
1870 UNREACHABLE(); 1871 UNREACHABLE();
1871 } 1872 }
1872 1873
1873 #endif // DART_PRECOMPILED_RUNTIME 1874 #endif // DART_PRECOMPILED_RUNTIME
1874 1875
1875 } // namespace dart 1876 } // namespace dart
OLDNEW
« no previous file with comments | « runtime/lib/timeline.cc ('k') | runtime/vm/dart.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698