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

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

Issue 2265873005: VM: Remove more duplicate code between AOT and JIT compiler. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: fix comment Created 4 years, 4 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/jit_optimizer.cc ('k') | no next file » | 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 2408 matching lines...) Expand 10 before | Expand all | Expand 10 after
2419 DEBUG_ASSERT(flow_graph->VerifyUseLists()); 2419 DEBUG_ASSERT(flow_graph->VerifyUseLists());
2420 2420
2421 FlowGraphTypePropagator::Propagate(flow_graph); 2421 FlowGraphTypePropagator::Propagate(flow_graph);
2422 DEBUG_ASSERT(flow_graph->VerifyUseLists()); 2422 DEBUG_ASSERT(flow_graph->VerifyUseLists());
2423 2423
2424 optimizer.ApplyICData(); 2424 optimizer.ApplyICData();
2425 DEBUG_ASSERT(flow_graph->VerifyUseLists()); 2425 DEBUG_ASSERT(flow_graph->VerifyUseLists());
2426 2426
2427 // Optimize (a << b) & c patterns, merge operations. 2427 // Optimize (a << b) & c patterns, merge operations.
2428 // Run early in order to have more opportunity to optimize left shifts. 2428 // Run early in order to have more opportunity to optimize left shifts.
2429 optimizer.TryOptimizePatterns(); 2429 flow_graph->TryOptimizePatterns();
2430 DEBUG_ASSERT(flow_graph->VerifyUseLists()); 2430 DEBUG_ASSERT(flow_graph->VerifyUseLists());
2431 2431
2432 FlowGraphInliner::SetInliningId(flow_graph, 0); 2432 FlowGraphInliner::SetInliningId(flow_graph, 0);
2433 2433
2434 // Inlining (mutates the flow graph) 2434 // Inlining (mutates the flow graph)
2435 if (FLAG_use_inlining) { 2435 if (FLAG_use_inlining) {
2436 #ifndef PRODUCT 2436 #ifndef PRODUCT
2437 TimelineDurationScope tds2(thread(), 2437 TimelineDurationScope tds2(thread(),
2438 compiler_timeline, 2438 compiler_timeline,
2439 "Inlining"); 2439 "Inlining");
(...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after
2579 LICM licm(flow_graph); 2579 LICM licm(flow_graph);
2580 licm.Optimize(); 2580 licm.Optimize();
2581 DEBUG_ASSERT(flow_graph->VerifyUseLists()); 2581 DEBUG_ASSERT(flow_graph->VerifyUseLists());
2582 } 2582 }
2583 flow_graph->RemoveRedefinitions(); 2583 flow_graph->RemoveRedefinitions();
2584 } 2584 }
2585 2585
2586 // Optimize (a << b) & c patterns, merge operations. 2586 // Optimize (a << b) & c patterns, merge operations.
2587 // Run after CSE in order to have more opportunity to merge 2587 // Run after CSE in order to have more opportunity to merge
2588 // instructions that have same inputs. 2588 // instructions that have same inputs.
2589 optimizer.TryOptimizePatterns(); 2589 flow_graph->TryOptimizePatterns();
2590 DEBUG_ASSERT(flow_graph->VerifyUseLists()); 2590 DEBUG_ASSERT(flow_graph->VerifyUseLists());
2591 2591
2592 { 2592 {
2593 #ifndef PRODUCT 2593 #ifndef PRODUCT
2594 TimelineDurationScope tds2(thread(), 2594 TimelineDurationScope tds2(thread(),
2595 compiler_timeline, 2595 compiler_timeline,
2596 "DeadStoreElimination"); 2596 "DeadStoreElimination");
2597 #endif // !PRODUCT 2597 #endif // !PRODUCT
2598 DeadStoreElimination::Optimize(flow_graph); 2598 DeadStoreElimination::Optimize(flow_graph);
2599 } 2599 }
(...skipping 330 matching lines...) Expand 10 before | Expand all | Expand 10 after
2930 CompilationPipeline::New(thread->zone(), function); 2930 CompilationPipeline::New(thread->zone(), function);
2931 2931
2932 ASSERT(FLAG_precompiled_mode); 2932 ASSERT(FLAG_precompiled_mode);
2933 const bool optimized = function.IsOptimizable(); // False for natives. 2933 const bool optimized = function.IsOptimizable(); // False for natives.
2934 return PrecompileFunctionHelper(pipeline, function, optimized); 2934 return PrecompileFunctionHelper(pipeline, function, optimized);
2935 } 2935 }
2936 2936
2937 #endif // DART_PRECOMPILER 2937 #endif // DART_PRECOMPILER
2938 2938
2939 } // namespace dart 2939 } // namespace dart
OLDNEW
« no previous file with comments | « runtime/vm/jit_optimizer.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698