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

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

Issue 2692803006: Track the 'awaiter return' call stack use it to detect uncaught exceptions in async functions (Closed)
Patch Set: rmacnak review Created 3 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
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/cha.h" 8 #include "vm/cha.h"
9 #include "vm/flow_graph_builder.h" 9 #include "vm/flow_graph_builder.h"
10 #include "vm/flow_graph_compiler.h" 10 #include "vm/flow_graph_compiler.h"
(...skipping 28 matching lines...) Expand all
39 reverse_postorder_(), 39 reverse_postorder_(),
40 optimized_block_order_(), 40 optimized_block_order_(),
41 constant_null_(NULL), 41 constant_null_(NULL),
42 constant_dead_(NULL), 42 constant_dead_(NULL),
43 constant_empty_context_(NULL), 43 constant_empty_context_(NULL),
44 block_effects_(NULL), 44 block_effects_(NULL),
45 licm_allowed_(true), 45 licm_allowed_(true),
46 loop_headers_(NULL), 46 loop_headers_(NULL),
47 loop_invariant_loads_(NULL), 47 loop_invariant_loads_(NULL),
48 deferred_prefixes_(parsed_function.deferred_prefixes()), 48 deferred_prefixes_(parsed_function.deferred_prefixes()),
49 await_token_positions_(NULL),
49 captured_parameters_(new (zone()) BitVector(zone(), variable_count())), 50 captured_parameters_(new (zone()) BitVector(zone(), variable_count())),
50 inlining_id_(-1) { 51 inlining_id_(-1) {
51 DiscoverBlocks(); 52 DiscoverBlocks();
52 } 53 }
53 54
54 55
55 void FlowGraph::EnsureSSATempIndex(Definition* defn, Definition* replacement) { 56 void FlowGraph::EnsureSSATempIndex(Definition* defn, Definition* replacement) {
56 if ((replacement->ssa_temp_index() == -1) && (defn->ssa_temp_index() != -1)) { 57 if ((replacement->ssa_temp_index() == -1) && (defn->ssa_temp_index() != -1)) {
57 AllocateSSAIndexes(replacement); 58 AllocateSSAIndexes(replacement);
58 } 59 }
(...skipping 2219 matching lines...) Expand 10 before | Expand all | Expand 10 after
2278 Representation rep, 2279 Representation rep,
2279 intptr_t cid) { 2280 intptr_t cid) {
2280 ExtractNthOutputInstr* extract = 2281 ExtractNthOutputInstr* extract =
2281 new (Z) ExtractNthOutputInstr(new (Z) Value(instr), index, rep, cid); 2282 new (Z) ExtractNthOutputInstr(new (Z) Value(instr), index, rep, cid);
2282 instr->ReplaceUsesWith(extract); 2283 instr->ReplaceUsesWith(extract);
2283 InsertAfter(instr, extract, NULL, FlowGraph::kValue); 2284 InsertAfter(instr, extract, NULL, FlowGraph::kValue);
2284 } 2285 }
2285 2286
2286 2287
2287 } // namespace dart 2288 } // namespace dart
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698