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

Unified Diff: sdk/lib/_internal/compiler/implementation/dart_backend/tree_tracer.dart

Issue 312793002: dart2dart: Preserve variable names throughout the IR. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: SVN rebase Created 6 years, 6 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 side-by-side diff with in-line comments
Download patch
Index: sdk/lib/_internal/compiler/implementation/dart_backend/tree_tracer.dart
diff --git a/sdk/lib/_internal/compiler/implementation/dart_backend/tree_tracer.dart b/sdk/lib/_internal/compiler/implementation/dart_backend/tree_tracer.dart
index 7920ec74211c5c743fb22954ce178c5ed70309ea..6bd8ff4522b289f42248763b2339204b3c93569b 100644
--- a/sdk/lib/_internal/compiler/implementation/dart_backend/tree_tracer.dart
+++ b/sdk/lib/_internal/compiler/implementation/dart_backend/tree_tracer.dart
@@ -9,8 +9,8 @@ import '../tracer.dart';
import 'dart_tree.dart';
class Block {
+ Label label;
int index;
- final Label label;
/// Mixed list of [Statement] and [Block].
/// A [Block] represents a synthetic goto statement.
final List statements = [];
@@ -223,7 +223,8 @@ class TreeTracer extends TracerUtil with StatementVisitor {
visitAssign(Assign node) {
String name = names.varName(node.variable);
String rhs = expr(node.definition);
- printStatement(name, "let $name = $rhs");
+ String extra = node.hasExactlyOneUse ? "[single-use]" : "";
+ printStatement(null, "assign $name = $rhs $extra");
}
visitReturn(Return node) {
@@ -236,7 +237,7 @@ class TreeTracer extends TracerUtil with StatementVisitor {
visitContinue(Continue node) {
printStatement(null,
- "continue ${collector.breakTargets[node.target].name}");
+ "continue ${collector.continueTargets[node.target].name}");
}
visitIf(If node) {
@@ -397,12 +398,9 @@ class Names {
String varName(Variable v) {
String name = _names[v];
if (name == null) {
- name = v.name;
- if (v.cachedName != null) {
- name = v.cachedName;
- }
+ String prefix = v.element == null ? 'v' : '${v.element.name}_';
while (name == null || _usedNames.contains(name)) {
- name = "v${_counter++}";
+ name = "$prefix${_counter++}";
}
_names[v] = name;
_usedNames.add(name);

Powered by Google App Engine
This is Rietveld 408576698