Skip to content

Commit 8d3d82a

Browse files
sjindel-googlecommit-bot@chromium.org
authored andcommitted
[vm/kernel] Untangle the spaghetti-code in BuildGraphOfFunction and fix bugs.
Also remove Fragment initializer-list constructor. Bugs: 1. We were always building the body of a constructor even if the initializers graph was closed. This would confuse the inliner exit collector which was informed about return instructions inside the body which were never linked into the graph. 2. We were not checking for stack overflow on each call to an sync-yielding closure; only on the first call. 3. Not a behavioral bug, but the prologue flow graph is no longer built out of order (dartbug.com/29737). Change-Id: I467fbf171fd627492bf01cd96d6353c57e143eaa Reviewed-on: https://dart-review.googlesource.com/67561 Reviewed-by: Vyacheslav Egorov <[email protected]> Commit-Queue: Samir Jindel <[email protected]>
1 parent 368bcc4 commit 8d3d82a

File tree

6 files changed

+374
-294
lines changed

6 files changed

+374
-294
lines changed

runtime/vm/compiler/frontend/base_flow_graph_builder.h

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -29,12 +29,6 @@ class Fragment {
2929

3030
Fragment() {}
3131

32-
Fragment(std::initializer_list<Fragment> list) {
33-
for (Fragment i : list) {
34-
*this += i;
35-
}
36-
}
37-
3832
explicit Fragment(Instruction* instruction)
3933
: entry(instruction), current(instruction) {}
4034

0 commit comments

Comments
 (0)