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

Side by Side Diff: lib/compiler/implementation/ssa/tracer.dart

Issue 10383065: Start creating a MemberSet abstraction, and use it to fold getters/setters into field accesses. (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 8 years, 7 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2011, 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 #library('tracer'); 5 #library('tracer');
6 6
7 #import('dart:io'); 7 #import('dart:io');
8 #import('ssa.dart'); 8 #import('ssa.dart');
9 #import('../leg.dart'); 9 #import('../leg.dart');
10 10
(...skipping 214 matching lines...) Expand 10 before | Expand all | Expand 10 after
225 return "Continue: (B${target.id})"; 225 return "Continue: (B${target.id})";
226 } 226 }
227 227
228 String visitDivide(HDivide node) => visitInvokeStatic(node); 228 String visitDivide(HDivide node) => visitInvokeStatic(node);
229 229
230 String visitEquals(HEquals node) => visitInvokeStatic(node); 230 String visitEquals(HEquals node) => visitInvokeStatic(node);
231 231
232 String visitExit(HExit node) => "exit"; 232 String visitExit(HExit node) => "exit";
233 233
234 String visitFieldGet(HFieldGet node) { 234 String visitFieldGet(HFieldGet node) {
235 return 'get ${node.element.name.slowToString()}'; 235 return 'get ${node.name.slowToString()}';
236 } 236 }
237 237
238 String visitFieldSet(HFieldSet node) { 238 String visitFieldSet(HFieldSet node) {
239 String valueId = temporaryId(node.value); 239 String valueId = temporaryId(node.value);
240 return 'set ${node.element.name.slowToString()} to $valueId'; 240 return 'set ${node.name.slowToString()} to $valueId';
241 } 241 }
242 242
243 String visitGoto(HGoto node) { 243 String visitGoto(HGoto node) {
244 HBasicBlock target = currentBlock.successors[0]; 244 HBasicBlock target = currentBlock.successors[0];
245 return "Goto: (B${target.id})"; 245 return "Goto: (B${target.id})";
246 } 246 }
247 247
248 String visitGreater(HGreater node) => visitInvokeStatic(node); 248 String visitGreater(HGreater node) => visitInvokeStatic(node);
249 String visitGreaterEqual(HGreaterEqual node) => visitInvokeStatic(node); 249 String visitGreaterEqual(HGreaterEqual node) => visitInvokeStatic(node);
250 250
(...skipping 184 matching lines...) Expand 10 before | Expand all | Expand 10 after
435 String visitIs(HIs node) { 435 String visitIs(HIs node) {
436 String type = node.typeExpression.toString(); 436 String type = node.typeExpression.toString();
437 return "TypeTest: ${temporaryId(node.expression)} is $type"; 437 return "TypeTest: ${temporaryId(node.expression)} is $type";
438 } 438 }
439 439
440 String visitTypeConversion(HTypeConversion node) { 440 String visitTypeConversion(HTypeConversion node) {
441 String type = node.propagatedType.toString(); 441 String type = node.propagatedType.toString();
442 return "TypeConversion: ${temporaryId(node.inputs[0])} to $type"; 442 return "TypeConversion: ${temporaryId(node.inputs[0])} to $type";
443 } 443 }
444 } 444 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698