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

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: 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 1782 matching lines...) Expand 10 before | Expand all | Expand 10 after
1793 1793
1794 toString() => 'literal: $constant'; 1794 toString() => 'literal: $constant';
1795 accept(HVisitor visitor) => visitor.visitConstant(this); 1795 accept(HVisitor visitor) => visitor.visitConstant(this);
1796 1796
1797 HType get guaranteedType() => constantType; 1797 HType get guaranteedType() => constantType;
1798 1798
1799 bool isConstant() => true; 1799 bool isConstant() => true;
1800 bool isConstantBoolean() => constant.isBool(); 1800 bool isConstantBoolean() => constant.isBool();
1801 bool isConstantNull() => constant.isNull(); 1801 bool isConstantNull() => constant.isNull();
1802 bool isConstantNumber() => constant.isNum(); 1802 bool isConstantNumber() => constant.isNum();
1803 bool isConstantInteger() => constant.isInt();
1803 bool isConstantString() => constant.isString(); 1804 bool isConstantString() => constant.isString();
1804 bool isConstantList() => constant.isList(); 1805 bool isConstantList() => constant.isList();
1805 bool isConstantMap() => constant.isMap(); 1806 bool isConstantMap() => constant.isMap();
1806 bool isConstantFalse() => constant.isFalse(); 1807 bool isConstantFalse() => constant.isFalse();
1807 bool isConstantTrue() => constant.isTrue(); 1808 bool isConstantTrue() => constant.isTrue();
1808 1809
1809 // Maybe avoid this if the literal is big? 1810 // Maybe avoid this if the literal is big?
1810 bool isCodeMotionInvariant() => true; 1811 bool isCodeMotionInvariant() => true;
1811 } 1812 }
1812 1813
(...skipping 776 matching lines...) Expand 10 before | Expand all | Expand 10 after
2589 HBasicBlock get start() => expression.start; 2590 HBasicBlock get start() => expression.start;
2590 HBasicBlock get end() { 2591 HBasicBlock get end() {
2591 // We don't create a switch block if there are no cases. 2592 // We don't create a switch block if there are no cases.
2592 assert(!statements.isEmpty()); 2593 assert(!statements.isEmpty());
2593 return statements.last().end; 2594 return statements.last().end;
2594 } 2595 }
2595 2596
2596 bool accept(HStatementInformationVisitor visitor) => 2597 bool accept(HStatementInformationVisitor visitor) =>
2597 visitor.visitSwitchInfo(this); 2598 visitor.visitSwitchInfo(this);
2598 } 2599 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698