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

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

Issue 10539156: Track fields which are known to be always set to integer constants (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Addressed review comment and addressed initializers Created 8 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 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 interface HVisitor<R> { 5 interface HVisitor<R> {
6 R visitAdd(HAdd node); 6 R visitAdd(HAdd node);
7 R visitBitAnd(HBitAnd node); 7 R visitBitAnd(HBitAnd node);
8 R visitBitNot(HBitNot node); 8 R visitBitNot(HBitNot node);
9 R visitBitOr(HBitOr node); 9 R visitBitOr(HBitOr node);
10 R visitBitXor(HBitXor node); 10 R visitBitXor(HBitXor node);
(...skipping 1786 matching lines...) Expand 10 before | Expand all | Expand 10 after
1797 1797
1798 toString() => 'literal: $constant'; 1798 toString() => 'literal: $constant';
1799 accept(HVisitor visitor) => visitor.visitConstant(this); 1799 accept(HVisitor visitor) => visitor.visitConstant(this);
1800 1800
1801 HType get guaranteedType() => constantType; 1801 HType get guaranteedType() => constantType;
1802 1802
1803 bool isConstant() => true; 1803 bool isConstant() => true;
1804 bool isConstantBoolean() => constant.isBool(); 1804 bool isConstantBoolean() => constant.isBool();
1805 bool isConstantNull() => constant.isNull(); 1805 bool isConstantNull() => constant.isNull();
1806 bool isConstantNumber() => constant.isNum(); 1806 bool isConstantNumber() => constant.isNum();
1807 bool isConstantInteger() => constant.isInt();
1807 bool isConstantString() => constant.isString(); 1808 bool isConstantString() => constant.isString();
1808 bool isConstantList() => constant.isList(); 1809 bool isConstantList() => constant.isList();
1809 bool isConstantMap() => constant.isMap(); 1810 bool isConstantMap() => constant.isMap();
1810 bool isConstantFalse() => constant.isFalse(); 1811 bool isConstantFalse() => constant.isFalse();
1811 bool isConstantTrue() => constant.isTrue(); 1812 bool isConstantTrue() => constant.isTrue();
1812 1813
1813 // Maybe avoid this if the literal is big? 1814 // Maybe avoid this if the literal is big?
1814 bool isCodeMotionInvariant() => true; 1815 bool isCodeMotionInvariant() => true;
1815 } 1816 }
1816 1817
(...skipping 776 matching lines...) Expand 10 before | Expand all | Expand 10 after
2593 HBasicBlock get start() => expression.start; 2594 HBasicBlock get start() => expression.start;
2594 HBasicBlock get end() { 2595 HBasicBlock get end() {
2595 // We don't create a switch block if there are no cases. 2596 // We don't create a switch block if there are no cases.
2596 assert(!statements.isEmpty()); 2597 assert(!statements.isEmpty());
2597 return statements.last().end; 2598 return statements.last().end;
2598 } 2599 }
2599 2600
2600 bool accept(HStatementInformationVisitor visitor) => 2601 bool accept(HStatementInformationVisitor visitor) =>
2601 visitor.visitSwitchInfo(this); 2602 visitor.visitSwitchInfo(this);
2602 } 2603 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698