|
Eliminate temporary locals for some expressions
This CL affects a subset of expressions that use temporary locals: constructor
calls, array literals and and instance getter postfix-ops.
For expressions that are de-sugared in the parser I added LetNode.
It creates a scoped temporary local bound to an initializing expression.
For expressions where we need a temporary local at graph-building time,
I added a helper class TempLocalScope to easily create a single temporary
local in the graph builder since this is a frequently recurring pattern.
This simplifies code in the parser and the graph builder and also fixes a
bug with indexed-super invocation and NoSuchMethod.
BUG=dart:8918
R=kmillikin@google.com
Committed: https://code.google.com/p/dart/source/detail?r=23401
Total comments: 24
Total comments: 4
|
Unified diffs |
Side-by-side diffs |
Delta from patch set |
Stats (+448 lines, -235 lines) |
Patch |
|
M |
runtime/vm/ast.h
|
View
|
1
2
3
4
5
6
7
8
|
6 chunks |
+33 lines, -21 lines |
0 comments
|
Download
|
|
M |
runtime/vm/ast.cc
|
View
|
1
2
3
4
5
6
7
8
|
1 chunk |
+28 lines, -0 lines |
0 comments
|
Download
|
|
M |
runtime/vm/ast_printer.cc
|
View
|
1
2
3
4
|
1 chunk |
+5 lines, -0 lines |
0 comments
|
Download
|
|
M |
runtime/vm/bit_vector.h
|
View
|
1
2
3
4
|
1 chunk |
+0 lines, -1 line |
0 comments
|
Download
|
|
M |
runtime/vm/code_generator_test.cc
|
View
|
1
2
3
4
|
2 chunks |
+2 lines, -4 lines |
0 comments
|
Download
|
|
M |
runtime/vm/compiler.cc
|
View
|
1
2
3
4
|
1 chunk |
+0 lines, -3 lines |
0 comments
|
Download
|
|
M |
runtime/vm/flow_graph.cc
|
View
|
1
2
3
4
|
4 chunks |
+21 lines, -1 line |
0 comments
|
Download
|
|
M |
runtime/vm/flow_graph_builder.h
|
View
|
1
2
3
4
5
|
5 chunks |
+21 lines, -8 lines |
0 comments
|
Download
|
|
M |
runtime/vm/flow_graph_builder.cc
|
View
|
1
2
3
4
5
6
7
8
|
13 chunks |
+122 lines, -39 lines |
0 comments
|
Download
|
|
M |
runtime/vm/flow_graph_compiler.cc
|
View
|
1
2
3
4
|
1 chunk |
+1 line, -1 line |
0 comments
|
Download
|
|
M |
runtime/vm/flow_graph_optimizer.cc
|
View
|
1
2
3
4
|
1 chunk |
+12 lines, -0 lines |
0 comments
|
Download
|
|
M |
runtime/vm/flow_graph_type_propagator.cc
|
View
|
1
2
3
4
|
1 chunk |
+10 lines, -0 lines |
0 comments
|
Download
|
|
M |
runtime/vm/intermediate_language.h
|
View
|
1
2
3
4
5
|
2 chunks |
+65 lines, -0 lines |
0 comments
|
Download
|
|
M |
runtime/vm/intermediate_language.cc
|
View
|
1
2
3
4
|
1 chunk |
+29 lines, -0 lines |
0 comments
|
Download
|
|
M |
runtime/vm/parser.h
|
View
|
1
2
3
4
5
6
7
|
5 chunks |
+1 line, -18 lines |
0 comments
|
Download
|
|
M |
runtime/vm/parser.cc
|
View
|
1
2
3
4
5
6
7
8
|
15 chunks |
+94 lines, -131 lines |
0 comments
|
Download
|
|
M |
runtime/vm/scopes.h
|
View
|
1
2
3
4
5
|
4 chunks |
+4 lines, -5 lines |
0 comments
|
Download
|
|
M |
runtime/vm/symbols.h
|
View
|
1
2
3
4
|
1 chunk |
+0 lines, -1 line |
0 comments
|
Download
|
|
M |
tests/language/language.status
|
View
|
1
2
3
4
|
2 chunks |
+0 lines, -2 lines |
0 comments
|
Download
|
Total messages: 9 (0 generated)
|