OLD | NEW |
1 // Copyright 2014 the V8 project authors. All rights reserved. | 1 // Copyright 2014 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "src/compiler/simplified-lowering.h" | 5 #include "src/compiler/simplified-lowering.h" |
6 | 6 |
7 #include <limits> | 7 #include <limits> |
8 | 8 |
9 #include "src/base/bits.h" | 9 #include "src/base/bits.h" |
10 #include "src/code-factory.h" | 10 #include "src/code-factory.h" |
(...skipping 844 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
855 return VisitLeaf(node, NodeOutputInfo::Float32()); | 855 return VisitLeaf(node, NodeOutputInfo::Float32()); |
856 case IrOpcode::kFloat64Constant: | 856 case IrOpcode::kFloat64Constant: |
857 return VisitLeaf(node, NodeOutputInfo::Float64()); | 857 return VisitLeaf(node, NodeOutputInfo::Float64()); |
858 case IrOpcode::kExternalConstant: | 858 case IrOpcode::kExternalConstant: |
859 return VisitLeaf(node, NodeOutputInfo::Pointer()); | 859 return VisitLeaf(node, NodeOutputInfo::Pointer()); |
860 case IrOpcode::kNumberConstant: | 860 case IrOpcode::kNumberConstant: |
861 return VisitLeaf(node, NodeOutputInfo::NumberTagged()); | 861 return VisitLeaf(node, NodeOutputInfo::NumberTagged()); |
862 case IrOpcode::kHeapConstant: | 862 case IrOpcode::kHeapConstant: |
863 return VisitLeaf(node, NodeOutputInfo::AnyTagged()); | 863 return VisitLeaf(node, NodeOutputInfo::AnyTagged()); |
864 | 864 |
| 865 case IrOpcode::kDeoptimizeIf: |
| 866 case IrOpcode::kDeoptimizeUnless: |
| 867 ProcessInput(node, 0, UseInfo::Bool()); |
| 868 ProcessInput(node, 1, UseInfo::AnyTagged()); |
| 869 ProcessRemainingInputs(node, 2); |
| 870 break; |
865 case IrOpcode::kBranch: | 871 case IrOpcode::kBranch: |
866 ProcessInput(node, 0, UseInfo::Bool()); | 872 ProcessInput(node, 0, UseInfo::Bool()); |
867 EnqueueInput(node, NodeProperties::FirstControlIndex(node)); | 873 EnqueueInput(node, NodeProperties::FirstControlIndex(node)); |
868 break; | 874 break; |
869 case IrOpcode::kSwitch: | 875 case IrOpcode::kSwitch: |
870 ProcessInput(node, 0, UseInfo::TruncatingWord32()); | 876 ProcessInput(node, 0, UseInfo::TruncatingWord32()); |
871 EnqueueInput(node, NodeProperties::FirstControlIndex(node)); | 877 EnqueueInput(node, NodeProperties::FirstControlIndex(node)); |
872 break; | 878 break; |
873 case IrOpcode::kSelect: | 879 case IrOpcode::kSelect: |
874 return VisitSelect(node, truncation, lowering); | 880 return VisitSelect(node, truncation, lowering); |
(...skipping 1033 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1908 ReplaceEffectUses(node, comparison); | 1914 ReplaceEffectUses(node, comparison); |
1909 node->ReplaceInput(0, comparison); | 1915 node->ReplaceInput(0, comparison); |
1910 node->ReplaceInput(1, jsgraph()->SmiConstant(EQUAL)); | 1916 node->ReplaceInput(1, jsgraph()->SmiConstant(EQUAL)); |
1911 node->TrimInputCount(2); | 1917 node->TrimInputCount(2); |
1912 NodeProperties::ChangeOp(node, machine()->IntLessThanOrEqual()); | 1918 NodeProperties::ChangeOp(node, machine()->IntLessThanOrEqual()); |
1913 } | 1919 } |
1914 | 1920 |
1915 } // namespace compiler | 1921 } // namespace compiler |
1916 } // namespace internal | 1922 } // namespace internal |
1917 } // namespace v8 | 1923 } // namespace v8 |
OLD | NEW |