| 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/access-builder.h" | 5 #include "src/compiler/access-builder.h" |
| 6 #include "src/compiler/js-graph.h" | 6 #include "src/compiler/js-graph.h" |
| 7 #include "src/compiler/node-properties.h" | 7 #include "src/compiler/node-properties.h" |
| 8 #include "src/compiler/simplified-operator.h" | 8 #include "src/compiler/simplified-operator.h" |
| 9 #include "src/compiler/simplified-operator-reducer.h" | 9 #include "src/compiler/simplified-operator-reducer.h" |
| 10 #include "src/conversions-inl.h" | 10 #include "src/conversions-inl.h" |
| (...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 143 | 143 |
| 144 TEST_F(SimplifiedOperatorReducerTest, BooleanNotWithTrueConstant) { | 144 TEST_F(SimplifiedOperatorReducerTest, BooleanNotWithTrueConstant) { |
| 145 Reduction reduction1 = | 145 Reduction reduction1 = |
| 146 Reduce(graph()->NewNode(simplified()->BooleanNot(), TrueConstant())); | 146 Reduce(graph()->NewNode(simplified()->BooleanNot(), TrueConstant())); |
| 147 ASSERT_TRUE(reduction1.Changed()); | 147 ASSERT_TRUE(reduction1.Changed()); |
| 148 EXPECT_THAT(reduction1.replacement(), IsFalseConstant()); | 148 EXPECT_THAT(reduction1.replacement(), IsFalseConstant()); |
| 149 } | 149 } |
| 150 | 150 |
| 151 | 151 |
| 152 // ----------------------------------------------------------------------------- | 152 // ----------------------------------------------------------------------------- |
| 153 // ChangeTaggedToBit | 153 // ChangeBoolToBit |
| 154 | 154 |
| 155 TEST_F(SimplifiedOperatorReducerTest, ChangeBitToTaggedWithChangeTaggedToBit) { | 155 |
| 156 TEST_F(SimplifiedOperatorReducerTest, ChangeBitToBoolWithChangeBoolToBit) { |
| 156 Node* param0 = Parameter(0); | 157 Node* param0 = Parameter(0); |
| 157 Reduction reduction = Reduce(graph()->NewNode( | 158 Reduction reduction = Reduce(graph()->NewNode( |
| 158 simplified()->ChangeBitToTagged(), | 159 simplified()->ChangeBitToBool(), |
| 159 graph()->NewNode(simplified()->ChangeTaggedToBit(), param0))); | 160 graph()->NewNode(simplified()->ChangeBoolToBit(), param0))); |
| 160 ASSERT_TRUE(reduction.Changed()); | 161 ASSERT_TRUE(reduction.Changed()); |
| 161 EXPECT_EQ(param0, reduction.replacement()); | 162 EXPECT_EQ(param0, reduction.replacement()); |
| 162 } | 163 } |
| 163 | 164 |
| 164 TEST_F(SimplifiedOperatorReducerTest, ChangeBitToTaggedWithZeroConstant) { | 165 |
| 166 TEST_F(SimplifiedOperatorReducerTest, ChangeBitToBoolWithZeroConstant) { |
| 165 Reduction reduction = Reduce( | 167 Reduction reduction = Reduce( |
| 166 graph()->NewNode(simplified()->ChangeBitToTagged(), Int32Constant(0))); | 168 graph()->NewNode(simplified()->ChangeBitToBool(), Int32Constant(0))); |
| 167 ASSERT_TRUE(reduction.Changed()); | 169 ASSERT_TRUE(reduction.Changed()); |
| 168 EXPECT_THAT(reduction.replacement(), IsFalseConstant()); | 170 EXPECT_THAT(reduction.replacement(), IsFalseConstant()); |
| 169 } | 171 } |
| 170 | 172 |
| 171 TEST_F(SimplifiedOperatorReducerTest, ChangeBitToTaggedWithOneConstant) { | 173 |
| 174 TEST_F(SimplifiedOperatorReducerTest, ChangeBitToBoolWithOneConstant) { |
| 172 Reduction reduction = Reduce( | 175 Reduction reduction = Reduce( |
| 173 graph()->NewNode(simplified()->ChangeBitToTagged(), Int32Constant(1))); | 176 graph()->NewNode(simplified()->ChangeBitToBool(), Int32Constant(1))); |
| 174 ASSERT_TRUE(reduction.Changed()); | 177 ASSERT_TRUE(reduction.Changed()); |
| 175 EXPECT_THAT(reduction.replacement(), IsTrueConstant()); | 178 EXPECT_THAT(reduction.replacement(), IsTrueConstant()); |
| 176 } | 179 } |
| 177 | 180 |
| 178 | 181 |
| 179 // ----------------------------------------------------------------------------- | 182 // ----------------------------------------------------------------------------- |
| 180 // ChangeTaggedToBit | 183 // ChangeBoolToBit |
| 181 | 184 |
| 182 TEST_F(SimplifiedOperatorReducerTest, ChangeTaggedToBitWithFalseConstant) { | 185 |
| 186 TEST_F(SimplifiedOperatorReducerTest, ChangeBoolToBitWithFalseConstant) { |
| 183 Reduction reduction = Reduce( | 187 Reduction reduction = Reduce( |
| 184 graph()->NewNode(simplified()->ChangeTaggedToBit(), FalseConstant())); | 188 graph()->NewNode(simplified()->ChangeBoolToBit(), FalseConstant())); |
| 185 ASSERT_TRUE(reduction.Changed()); | 189 ASSERT_TRUE(reduction.Changed()); |
| 186 EXPECT_THAT(reduction.replacement(), IsInt32Constant(0)); | 190 EXPECT_THAT(reduction.replacement(), IsInt32Constant(0)); |
| 187 } | 191 } |
| 188 | 192 |
| 189 TEST_F(SimplifiedOperatorReducerTest, ChangeTaggedToBitWithTrueConstant) { | 193 |
| 190 Reduction reduction = Reduce( | 194 TEST_F(SimplifiedOperatorReducerTest, ChangeBoolToBitWithTrueConstant) { |
| 191 graph()->NewNode(simplified()->ChangeTaggedToBit(), TrueConstant())); | 195 Reduction reduction = |
| 196 Reduce(graph()->NewNode(simplified()->ChangeBoolToBit(), TrueConstant())); |
| 192 ASSERT_TRUE(reduction.Changed()); | 197 ASSERT_TRUE(reduction.Changed()); |
| 193 EXPECT_THAT(reduction.replacement(), IsInt32Constant(1)); | 198 EXPECT_THAT(reduction.replacement(), IsInt32Constant(1)); |
| 194 } | 199 } |
| 195 | 200 |
| 196 TEST_F(SimplifiedOperatorReducerTest, ChangeTaggedToBitWithChangeBitToTagged) { | 201 |
| 202 TEST_F(SimplifiedOperatorReducerTest, ChangeBoolToBitWithChangeBitToBool) { |
| 197 Node* param0 = Parameter(0); | 203 Node* param0 = Parameter(0); |
| 198 Reduction reduction = Reduce(graph()->NewNode( | 204 Reduction reduction = Reduce(graph()->NewNode( |
| 199 simplified()->ChangeTaggedToBit(), | 205 simplified()->ChangeBoolToBit(), |
| 200 graph()->NewNode(simplified()->ChangeBitToTagged(), param0))); | 206 graph()->NewNode(simplified()->ChangeBitToBool(), param0))); |
| 201 ASSERT_TRUE(reduction.Changed()); | 207 ASSERT_TRUE(reduction.Changed()); |
| 202 EXPECT_EQ(param0, reduction.replacement()); | 208 EXPECT_EQ(param0, reduction.replacement()); |
| 203 } | 209 } |
| 204 | 210 |
| 205 | 211 |
| 206 // ----------------------------------------------------------------------------- | 212 // ----------------------------------------------------------------------------- |
| 207 // ChangeFloat64ToTagged | 213 // ChangeFloat64ToTagged |
| 208 | 214 |
| 209 | 215 |
| 210 TEST_F(SimplifiedOperatorReducerTest, ChangeFloat64ToTaggedWithConstant) { | 216 TEST_F(SimplifiedOperatorReducerTest, ChangeFloat64ToTaggedWithConstant) { |
| (...skipping 202 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 413 Reduction reduction = Reduce(graph()->NewNode( | 419 Reduction reduction = Reduce(graph()->NewNode( |
| 414 simplified()->TruncateTaggedToWord32(), NumberConstant(n))); | 420 simplified()->TruncateTaggedToWord32(), NumberConstant(n))); |
| 415 ASSERT_TRUE(reduction.Changed()); | 421 ASSERT_TRUE(reduction.Changed()); |
| 416 EXPECT_THAT(reduction.replacement(), IsInt32Constant(DoubleToInt32(n))); | 422 EXPECT_THAT(reduction.replacement(), IsInt32Constant(DoubleToInt32(n))); |
| 417 } | 423 } |
| 418 } | 424 } |
| 419 | 425 |
| 420 } // namespace compiler | 426 } // namespace compiler |
| 421 } // namespace internal | 427 } // namespace internal |
| 422 } // namespace v8 | 428 } // namespace v8 |
| OLD | NEW |