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

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

Issue 1759913002: Make precompiler work with product mode. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: addressed comments 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/vm/flag_list.h ('k') | runtime/vm/flow_graph_compiler.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/flow_graph.h" 5 #include "vm/flow_graph.h"
6 6
7 #include "vm/bit_vector.h" 7 #include "vm/bit_vector.h"
8 #include "vm/flow_graph_builder.h" 8 #include "vm/flow_graph_builder.h"
9 #include "vm/flow_graph_compiler.h" 9 #include "vm/flow_graph_compiler.h"
10 #include "vm/flow_graph_range_analysis.h" 10 #include "vm/flow_graph_range_analysis.h"
11 #include "vm/il_printer.h" 11 #include "vm/il_printer.h"
12 #include "vm/intermediate_language.h" 12 #include "vm/intermediate_language.h"
13 #include "vm/growable_array.h" 13 #include "vm/growable_array.h"
14 #include "vm/object_store.h" 14 #include "vm/object_store.h"
15 15
16 namespace dart { 16 namespace dart {
17 17
18 #if defined(TARGET_ARCH_ARM) || defined(TARGET_ARCH_IA32) 18 #if defined(TARGET_ARCH_ARM) || defined(TARGET_ARCH_IA32)
19 DEFINE_FLAG(bool, trace_smi_widening, false, "Trace Smi->Int32 widening pass."); 19 DEFINE_FLAG(bool, trace_smi_widening, false, "Trace Smi->Int32 widening pass.");
20 #endif 20 #endif
21 DEFINE_FLAG(bool, prune_dead_locals, true, "optimize dead locals away"); 21 DEFINE_FLAG(bool, prune_dead_locals, true, "optimize dead locals away");
22 DECLARE_FLAG(bool, reorder_basic_blocks);
23 DECLARE_FLAG(bool, verify_compiler); 22 DECLARE_FLAG(bool, verify_compiler);
24 23
25 24
26 FlowGraph::FlowGraph(const ParsedFunction& parsed_function, 25 FlowGraph::FlowGraph(const ParsedFunction& parsed_function,
27 GraphEntryInstr* graph_entry, 26 GraphEntryInstr* graph_entry,
28 intptr_t max_block_id) 27 intptr_t max_block_id)
29 : thread_(Thread::Current()), 28 : thread_(Thread::Current()),
30 parent_(), 29 parent_(),
31 current_ssa_temp_index_(0), 30 current_ssa_temp_index_(0),
32 max_block_id_(max_block_id), 31 max_block_id_(max_block_id),
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
98 return; 97 return;
99 } 98 }
100 } 99 }
101 to->Add(prefix); 100 to->Add(prefix);
102 } 101 }
103 } 102 }
104 103
105 104
106 bool FlowGraph::ShouldReorderBlocks(const Function& function, 105 bool FlowGraph::ShouldReorderBlocks(const Function& function,
107 bool is_optimized) { 106 bool is_optimized) {
108 return is_optimized && FLAG_reorder_basic_blocks && 107 return is_optimized
109 FLAG_emit_edge_counters && !function.is_intrinsic(); 108 && FLAG_reorder_basic_blocks
109 && !function.is_intrinsic();
110 } 110 }
111 111
112 112
113 GrowableArray<BlockEntryInstr*>* FlowGraph::CodegenBlockOrder( 113 GrowableArray<BlockEntryInstr*>* FlowGraph::CodegenBlockOrder(
114 bool is_optimized) { 114 bool is_optimized) {
115 return ShouldReorderBlocks(function(), is_optimized) 115 return ShouldReorderBlocks(function(), is_optimized)
116 ? &optimized_block_order_ 116 ? &optimized_block_order_
117 : &reverse_postorder_; 117 : &reverse_postorder_;
118 } 118 }
119 119
(...skipping 1853 matching lines...) Expand 10 before | Expand all | Expand 10 after
1973 ReplaceCurrentInstruction(&it, current, replacement); 1973 ReplaceCurrentInstruction(&it, current, replacement);
1974 changed = true; 1974 changed = true;
1975 } 1975 }
1976 } 1976 }
1977 } 1977 }
1978 return changed; 1978 return changed;
1979 } 1979 }
1980 1980
1981 1981
1982 } // namespace dart 1982 } // namespace dart
OLDNEW
« no previous file with comments | « runtime/vm/flag_list.h ('k') | runtime/vm/flow_graph_compiler.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698