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 // TODO(jochen): Remove this after the setting is turned on globally. | 5 // TODO(jochen): Remove this after the setting is turned on globally. |
6 #define V8_IMMINENT_DEPRECATION_WARNINGS | 6 #define V8_IMMINENT_DEPRECATION_WARNINGS |
7 | 7 |
8 #include <limits> | 8 #include <limits> |
9 | 9 |
10 #include "src/compiler/access-builder.h" | 10 #include "src/compiler/access-builder.h" |
(...skipping 1976 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1987 MachineTypeUnion expected; | 1987 MachineTypeUnion expected; |
1988 }; | 1988 }; |
1989 | 1989 |
1990 TestData test_data[] = { | 1990 TestData test_data[] = { |
1991 {Type::Signed32(), Type::Unsigned32(), kMachInt32, | 1991 {Type::Signed32(), Type::Unsigned32(), kMachInt32, |
1992 kRepWord32 | kTypeNumber}, | 1992 kRepWord32 | kTypeNumber}, |
1993 {Type::Signed32(), Type::Unsigned32(), kMachUint32, | 1993 {Type::Signed32(), Type::Unsigned32(), kMachUint32, |
1994 kRepWord32 | kTypeNumber}, | 1994 kRepWord32 | kTypeNumber}, |
1995 {Type::Signed32(), Type::Signed32(), kMachInt32, kMachInt32}, | 1995 {Type::Signed32(), Type::Signed32(), kMachInt32, kMachInt32}, |
1996 {Type::Unsigned32(), Type::Unsigned32(), kMachInt32, kMachUint32}, | 1996 {Type::Unsigned32(), Type::Unsigned32(), kMachInt32, kMachUint32}, |
1997 {Type::Number(), Type::Signed32(), kMachInt32, kMachFloat64}, | 1997 {Type::Number(), Type::Signed32(), kMachInt32, kRepWord32 | kTypeNumber}}; |
1998 {Type::Signed32(), Type::String(), kMachInt32, kMachAnyTagged}}; | |
1999 | 1998 |
2000 for (auto const d : test_data) { | 1999 for (auto const d : test_data) { |
2001 TestingGraph t(d.arg1, d.arg2, Type::Boolean()); | 2000 TestingGraph t(d.arg1, d.arg2, Type::Boolean()); |
2002 | 2001 |
2003 Node* br = t.graph()->NewNode(t.common()->Branch(), t.p2, t.start); | 2002 Node* br = t.graph()->NewNode(t.common()->Branch(), t.p2, t.start); |
2004 Node* tb = t.graph()->NewNode(t.common()->IfTrue(), br); | 2003 Node* tb = t.graph()->NewNode(t.common()->IfTrue(), br); |
2005 Node* fb = t.graph()->NewNode(t.common()->IfFalse(), br); | 2004 Node* fb = t.graph()->NewNode(t.common()->IfFalse(), br); |
2006 Node* m = t.graph()->NewNode(t.common()->Merge(2), tb, fb); | 2005 Node* m = t.graph()->NewNode(t.common()->Merge(2), tb, fb); |
2007 | 2006 |
2008 Node* phi = | 2007 Node* phi = |
2009 t.graph()->NewNode(t.common()->Phi(kMachAnyTagged, 2), t.p0, t.p1, m); | 2008 t.graph()->NewNode(t.common()->Phi(kMachAnyTagged, 2), t.p0, t.p1, m); |
2010 | 2009 |
2011 Type* phi_type = Type::Union(d.arg1, d.arg2, z); | 2010 Type* phi_type = Type::Union(d.arg1, d.arg2, z); |
2012 NodeProperties::SetType(phi, phi_type); | 2011 NodeProperties::SetType(phi, phi_type); |
2013 | 2012 |
2014 Node* use = t.Use(phi, d.use); | 2013 Node* use = t.Use(phi, d.use); |
2015 t.Return(use); | 2014 t.Return(use); |
2016 t.Lower(); | 2015 t.Lower(); |
2017 | 2016 |
2018 CHECK_EQ(d.expected, OpParameter<MachineType>(phi)); | 2017 CHECK_EQ(d.expected, OpParameter<MachineType>(phi)); |
2019 } | 2018 } |
2020 } | 2019 } |
2021 | 2020 |
2022 } // namespace compiler | 2021 } // namespace compiler |
2023 } // namespace internal | 2022 } // namespace internal |
2024 } // namespace v8 | 2023 } // namespace v8 |
OLD | NEW |