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 <limits> | 5 #include <limits> |
6 | 6 |
7 #include "src/compiler/access-builder.h" | 7 #include "src/compiler/access-builder.h" |
8 #include "src/compiler/change-lowering.h" | 8 #include "src/compiler/change-lowering.h" |
9 #include "src/compiler/control-builders.h" | 9 #include "src/compiler/control-builders.h" |
10 #include "src/compiler/graph-reducer.h" | 10 #include "src/compiler/graph-reducer.h" |
(...skipping 1201 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1212 CheckChangeInsertion(IrOpcode::kChangeUint32ToFloat64, kTypeUint32, | 1212 CheckChangeInsertion(IrOpcode::kChangeUint32ToFloat64, kTypeUint32, |
1213 kRepFloat64); | 1213 kRepFloat64); |
1214 CheckChangeInsertion(IrOpcode::kChangeUint32ToTagged, kTypeUint32, | 1214 CheckChangeInsertion(IrOpcode::kChangeUint32ToTagged, kTypeUint32, |
1215 kRepTagged); | 1215 kRepTagged); |
1216 } | 1216 } |
1217 | 1217 |
1218 | 1218 |
1219 static void CheckChangesAroundBinop(TestingGraph* t, const Operator* op, | 1219 static void CheckChangesAroundBinop(TestingGraph* t, const Operator* op, |
1220 IrOpcode::Value input_change, | 1220 IrOpcode::Value input_change, |
1221 IrOpcode::Value output_change) { | 1221 IrOpcode::Value output_change) { |
1222 Node* binop = | 1222 Node* binop = t->graph()->NewNode(op, t->p0, t->p1); |
1223 op->ControlInputCount() == 0 | |
1224 ? t->graph()->NewNode(op, t->p0, t->p1) | |
1225 : t->graph()->NewNode(op, t->p0, t->p1, t->graph()->start()); | |
1226 t->Return(binop); | 1223 t->Return(binop); |
1227 t->Lower(); | 1224 t->Lower(); |
1228 CHECK_EQ(input_change, binop->InputAt(0)->opcode()); | 1225 CHECK_EQ(input_change, binop->InputAt(0)->opcode()); |
1229 CHECK_EQ(input_change, binop->InputAt(1)->opcode()); | 1226 CHECK_EQ(input_change, binop->InputAt(1)->opcode()); |
1230 CHECK_EQ(t->p0, binop->InputAt(0)->InputAt(0)); | 1227 CHECK_EQ(t->p0, binop->InputAt(0)->InputAt(0)); |
1231 CHECK_EQ(t->p1, binop->InputAt(1)->InputAt(0)); | 1228 CHECK_EQ(t->p1, binop->InputAt(1)->InputAt(0)); |
1232 CHECK_EQ(output_change, t->ret->InputAt(0)->opcode()); | 1229 CHECK_EQ(output_change, t->ret->InputAt(0)->opcode()); |
1233 CHECK_EQ(binop, t->ret->InputAt(0)->InputAt(0)); | 1230 CHECK_EQ(binop, t->ret->InputAt(0)->InputAt(0)); |
1234 } | 1231 } |
1235 | 1232 |
(...skipping 751 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1987 Type* phi_type = Type::Union(d.arg1, d.arg2, z); | 1984 Type* phi_type = Type::Union(d.arg1, d.arg2, z); |
1988 NodeProperties::SetType(phi, phi_type); | 1985 NodeProperties::SetType(phi, phi_type); |
1989 | 1986 |
1990 Node* use = t.Use(phi, d.use); | 1987 Node* use = t.Use(phi, d.use); |
1991 t.Return(use); | 1988 t.Return(use); |
1992 t.Lower(); | 1989 t.Lower(); |
1993 | 1990 |
1994 CHECK_EQ(d.expected, OpParameter<MachineType>(phi)); | 1991 CHECK_EQ(d.expected, OpParameter<MachineType>(phi)); |
1995 } | 1992 } |
1996 } | 1993 } |
OLD | NEW |