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

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

Issue 11090016: Change core lib, dart2js, and more for new optional parameters syntax (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 8 years, 2 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) 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 abstract class HVisitor<R> { 5 abstract class HVisitor<R> {
6 R visitAdd(HAdd node); 6 R visitAdd(HAdd node);
7 R visitBailoutTarget(HBailoutTarget node); 7 R visitBailoutTarget(HBailoutTarget node);
8 R visitBitAnd(HBitAnd node); 8 R visitBitAnd(HBitAnd node);
9 R visitBitNot(HBitNot node); 9 R visitBitNot(HBitNot node);
10 R visitBitOr(HBitOr node); 10 R visitBitOr(HBitOr node);
(...skipping 1388 matching lines...) Expand 10 before | Expand all | Expand 10 after
1399 } 1399 }
1400 1400
1401 HType computeDesiredTypeForNonTargetInput(HInstruction input, 1401 HType computeDesiredTypeForNonTargetInput(HInstruction input,
1402 HTypeMap types) { 1402 HTypeMap types) {
1403 return HType.UNKNOWN; 1403 return HType.UNKNOWN;
1404 } 1404 }
1405 } 1405 }
1406 1406
1407 class HInvokeSuper extends HInvokeStatic { 1407 class HInvokeSuper extends HInvokeStatic {
1408 final bool isSetter; 1408 final bool isSetter;
1409 HInvokeSuper(inputs, [this.isSetter = false]) : super(inputs); 1409 HInvokeSuper(inputs, {this.isSetter: false}) : super(inputs);
1410 toString() => 'invoke super: ${element.name}'; 1410 toString() => 'invoke super: ${element.name}';
1411 accept(HVisitor visitor) => visitor.visitInvokeSuper(this); 1411 accept(HVisitor visitor) => visitor.visitInvokeSuper(this);
1412 1412
1413 HInstruction get value { 1413 HInstruction get value {
1414 assert(isSetter); 1414 assert(isSetter);
1415 // Index 0: the element, index 1: 'this'. 1415 // Index 0: the element, index 1: 'this'.
1416 return inputs[2]; 1416 return inputs[2];
1417 } 1417 }
1418 } 1418 }
1419 1419
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
1497 final Element element; 1497 final Element element;
1498 1498
1499 HFieldAccess(Element element, List<HInstruction> inputs) 1499 HFieldAccess(Element element, List<HInstruction> inputs)
1500 : this.element = element, 1500 : this.element = element,
1501 super(inputs); 1501 super(inputs);
1502 } 1502 }
1503 1503
1504 class HFieldGet extends HFieldAccess { 1504 class HFieldGet extends HFieldAccess {
1505 final bool isAssignable; 1505 final bool isAssignable;
1506 1506
1507 HFieldGet(Element element, HInstruction receiver, [bool isAssignable]) 1507 HFieldGet(Element element, HInstruction receiver, {bool isAssignable})
1508 : this.isAssignable = (isAssignable !== null) 1508 : this.isAssignable = (isAssignable !== null)
1509 ? isAssignable 1509 ? isAssignable
1510 : element.isAssignable(), 1510 : element.isAssignable(),
1511 super(element, <HInstruction>[receiver]); 1511 super(element, <HInstruction>[receiver]);
1512 1512
1513 HInstruction get receiver => inputs[0]; 1513 HInstruction get receiver => inputs[0];
1514 1514
1515 accept(HVisitor visitor) => visitor.visitFieldGet(this); 1515 accept(HVisitor visitor) => visitor.visitFieldGet(this);
1516 1516
1517 void prepareGvn(HTypeMap types) { 1517 void prepareGvn(HTypeMap types) {
(...skipping 874 matching lines...) Expand 10 before | Expand all | Expand 10 after
2392 } 2392 }
2393 2393
2394 class HReturn extends HControlFlow { 2394 class HReturn extends HControlFlow {
2395 HReturn(value) : super(<HInstruction>[value]); 2395 HReturn(value) : super(<HInstruction>[value]);
2396 toString() => 'return'; 2396 toString() => 'return';
2397 accept(HVisitor visitor) => visitor.visitReturn(this); 2397 accept(HVisitor visitor) => visitor.visitReturn(this);
2398 } 2398 }
2399 2399
2400 class HThrow extends HControlFlow { 2400 class HThrow extends HControlFlow {
2401 final bool isRethrow; 2401 final bool isRethrow;
2402 HThrow(value, [this.isRethrow = false]) : super(<HInstruction>[value]); 2402 HThrow(value, {this.isRethrow: false}) : super(<HInstruction>[value]);
2403 toString() => 'throw'; 2403 toString() => 'throw';
2404 accept(HVisitor visitor) => visitor.visitThrow(this); 2404 accept(HVisitor visitor) => visitor.visitThrow(this);
2405 } 2405 }
2406 2406
2407 class HStatic extends HInstruction { 2407 class HStatic extends HInstruction {
2408 final Element element; 2408 final Element element;
2409 HStatic(this.element) : super(<HInstruction>[]) { 2409 HStatic(this.element) : super(<HInstruction>[]) {
2410 assert(element !== null); 2410 assert(element !== null);
2411 assert(invariant(this, element.isDeclaration)); 2411 assert(invariant(this, element.isDeclaration));
2412 } 2412 }
(...skipping 401 matching lines...) Expand 10 before | Expand all | Expand 10 after
2814 2814
2815 2815
2816 class HLabeledBlockInformation implements HStatementInformation { 2816 class HLabeledBlockInformation implements HStatementInformation {
2817 final HStatementInformation body; 2817 final HStatementInformation body;
2818 final List<LabelElement> labels; 2818 final List<LabelElement> labels;
2819 final TargetElement target; 2819 final TargetElement target;
2820 final bool isContinue; 2820 final bool isContinue;
2821 2821
2822 HLabeledBlockInformation(this.body, 2822 HLabeledBlockInformation(this.body,
2823 List<LabelElement> labels, 2823 List<LabelElement> labels,
2824 [this.isContinue = false]) : 2824 {this.isContinue: false}) :
2825 this.labels = labels, this.target = labels[0].target; 2825 this.labels = labels, this.target = labels[0].target;
2826 2826
2827 HLabeledBlockInformation.implicit(this.body, 2827 HLabeledBlockInformation.implicit(this.body,
2828 this.target, 2828 this.target,
2829 [this.isContinue = false]) 2829 {this.isContinue: false})
2830 : this.labels = const<LabelElement>[]; 2830 : this.labels = const<LabelElement>[];
2831 2831
2832 HBasicBlock get start => body.start; 2832 HBasicBlock get start => body.start;
2833 HBasicBlock get end => body.end; 2833 HBasicBlock get end => body.end;
2834 2834
2835 bool accept(HStatementInformationVisitor visitor) => 2835 bool accept(HStatementInformationVisitor visitor) =>
2836 visitor.visitLabeledBlockInfo(this); 2836 visitor.visitLabeledBlockInfo(this);
2837 } 2837 }
2838 2838
2839 class LoopTypeVisitor extends Visitor { 2839 class LoopTypeVisitor extends Visitor {
(...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after
2974 HBasicBlock get start => expression.start; 2974 HBasicBlock get start => expression.start;
2975 HBasicBlock get end { 2975 HBasicBlock get end {
2976 // We don't create a switch block if there are no cases. 2976 // We don't create a switch block if there are no cases.
2977 assert(!statements.isEmpty()); 2977 assert(!statements.isEmpty());
2978 return statements.last().end; 2978 return statements.last().end;
2979 } 2979 }
2980 2980
2981 bool accept(HStatementInformationVisitor visitor) => 2981 bool accept(HStatementInformationVisitor visitor) =>
2982 visitor.visitSwitchInfo(this); 2982 visitor.visitSwitchInfo(this);
2983 } 2983 }
OLDNEW
« no previous file with comments | « lib/compiler/implementation/ssa/codegen.dart ('k') | lib/compiler/implementation/ssa/optimize.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698