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

Side by Side Diff: sdk/lib/_internal/compiler/implementation/ssa/codegen.dart

Issue 44143002: Fix issue 12336: there was a bug when updating phis at exit of a block with a HTypeKnown instructio… (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 7 years, 1 month 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
« no previous file with comments | « pkg/pkg.status ('k') | sdk/lib/_internal/compiler/implementation/ssa/tracer.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 part of ssa; 5 part of ssa;
6 6
7 class SsaCodeGeneratorTask extends CompilerTask { 7 class SsaCodeGeneratorTask extends CompilerTask {
8 8
9 final JavaScriptBackend backend; 9 final JavaScriptBackend backend;
10 10
(...skipping 590 matching lines...) Expand 10 before | Expand all | Expand 10 after
601 } else { 601 } else {
602 visitStatement(instruction); 602 visitStatement(instruction);
603 } 603 }
604 } 604 }
605 605
606 void use(HInstruction argument) { 606 void use(HInstruction argument) {
607 if (isGenerateAtUseSite(argument)) { 607 if (isGenerateAtUseSite(argument)) {
608 visitExpression(argument); 608 visitExpression(argument);
609 } else if (argument is HCheck && !variableNames.hasName(argument)) { 609 } else if (argument is HCheck && !variableNames.hasName(argument)) {
610 HCheck check = argument; 610 HCheck check = argument;
611 // This can only happen if the checked node does not have a name.
612 assert(!variableNames.hasName(check.checkedInput));
611 use(check.checkedInput); 613 use(check.checkedInput);
612 } else { 614 } else {
613 assert(variableNames.hasName(argument)); 615 assert(variableNames.hasName(argument));
614 push(new js.VariableUse(variableNames.getName(argument))); 616 push(new js.VariableUse(variableNames.getName(argument)));
615 } 617 }
616 } 618 }
617 619
618 visit(HInstruction node) { 620 visit(HInstruction node) {
619 node.accept(this); 621 node.accept(this);
620 } 622 }
(...skipping 1970 matching lines...) Expand 10 before | Expand all | Expand 10 after
2591 if (leftType.canBeNull() && rightType.canBeNull()) { 2593 if (leftType.canBeNull() && rightType.canBeNull()) {
2592 if (left.isConstantNull() || right.isConstantNull() || 2594 if (left.isConstantNull() || right.isConstantNull() ||
2593 (leftType.isPrimitive(compiler) && leftType == rightType)) { 2595 (leftType.isPrimitive(compiler) && leftType == rightType)) {
2594 return '=='; 2596 return '==';
2595 } 2597 }
2596 return null; 2598 return null;
2597 } else { 2599 } else {
2598 return '==='; 2600 return '===';
2599 } 2601 }
2600 } 2602 }
OLDNEW
« no previous file with comments | « pkg/pkg.status ('k') | sdk/lib/_internal/compiler/implementation/ssa/tracer.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698