summaryrefslogtreecommitdiff
path: root/deps/v8/test/unittests/compiler/change-lowering-unittest.cc
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8/test/unittests/compiler/change-lowering-unittest.cc')
-rw-r--r--deps/v8/test/unittests/compiler/change-lowering-unittest.cc41
1 files changed, 23 insertions, 18 deletions
diff --git a/deps/v8/test/unittests/compiler/change-lowering-unittest.cc b/deps/v8/test/unittests/compiler/change-lowering-unittest.cc
index 17d65131d1..763a44352f 100644
--- a/deps/v8/test/unittests/compiler/change-lowering-unittest.cc
+++ b/deps/v8/test/unittests/compiler/change-lowering-unittest.cc
@@ -5,6 +5,7 @@
#include "src/code-stubs.h"
#include "src/compiler/change-lowering.h"
#include "src/compiler/js-graph.h"
+#include "src/compiler/linkage.h"
#include "src/compiler/node-properties-inl.h"
#include "src/compiler/simplified-operator.h"
#include "test/unittests/compiler/compiler-test-utils.h"
@@ -24,7 +25,7 @@ namespace compiler {
class ChangeLoweringTest : public GraphTest {
public:
ChangeLoweringTest() : simplified_(zone()) {}
- virtual ~ChangeLoweringTest() {}
+ ~ChangeLoweringTest() OVERRIDE {}
virtual MachineType WordRepresentation() const = 0;
@@ -61,12 +62,8 @@ class ChangeLoweringTest : public GraphTest {
: SmiTagging<8>::SmiValueSize();
}
- Node* Parameter(int32_t index = 0) {
- return graph()->NewNode(common()->Parameter(index), graph()->start());
- }
-
Reduction Reduce(Node* node) {
- MachineOperatorBuilder machine(WordRepresentation());
+ MachineOperatorBuilder machine(zone(), WordRepresentation());
JSOperatorBuilder javascript(zone());
JSGraph jsgraph(graph(), common(), &javascript, &machine);
CompilationInfo info(isolate(), zone());
@@ -111,11 +108,9 @@ class ChangeLoweringCommonTest
: public ChangeLoweringTest,
public ::testing::WithParamInterface<MachineType> {
public:
- virtual ~ChangeLoweringCommonTest() {}
+ ~ChangeLoweringCommonTest() OVERRIDE {}
- virtual MachineType WordRepresentation() const FINAL OVERRIDE {
- return GetParam();
- }
+ MachineType WordRepresentation() const FINAL { return GetParam(); }
};
@@ -178,16 +173,15 @@ INSTANTIATE_TEST_CASE_P(ChangeLoweringTest, ChangeLoweringCommonTest,
class ChangeLowering32Test : public ChangeLoweringTest {
public:
- virtual ~ChangeLowering32Test() {}
- virtual MachineType WordRepresentation() const FINAL OVERRIDE {
- return kRepWord32;
- }
+ ~ChangeLowering32Test() OVERRIDE {}
+ MachineType WordRepresentation() const FINAL { return kRepWord32; }
};
TARGET_TEST_F(ChangeLowering32Test, ChangeInt32ToTagged) {
Node* val = Parameter(0);
Node* node = graph()->NewNode(simplified()->ChangeInt32ToTagged(), val);
+ NodeProperties::SetBounds(val, Bounds(Type::None(), Type::Signed32()));
Reduction reduction = Reduce(node);
ASSERT_TRUE(reduction.Changed());
@@ -212,6 +206,19 @@ TARGET_TEST_F(ChangeLowering32Test, ChangeInt32ToTagged) {
}
+TARGET_TEST_F(ChangeLowering32Test, ChangeInt32ToTaggedSmall) {
+ Node* val = Parameter(0);
+ Node* node = graph()->NewNode(simplified()->ChangeInt32ToTagged(), val);
+ NodeProperties::SetBounds(val, Bounds(Type::None(), Type::SignedSmall()));
+ Reduction reduction = Reduce(node);
+ ASSERT_TRUE(reduction.Changed());
+
+ Node* change = reduction.replacement();
+ Capture<Node*> add, branch, heap_number, if_true;
+ EXPECT_THAT(change, IsWord32Shl(val, IsInt32Constant(SmiShiftAmount())));
+}
+
+
TARGET_TEST_F(ChangeLowering32Test, ChangeTaggedToFloat64) {
STATIC_ASSERT(kSmiTag == 0);
STATIC_ASSERT(kSmiTagSize == 1);
@@ -324,10 +331,8 @@ TARGET_TEST_F(ChangeLowering32Test, ChangeUint32ToTagged) {
class ChangeLowering64Test : public ChangeLoweringTest {
public:
- virtual ~ChangeLowering64Test() {}
- virtual MachineType WordRepresentation() const FINAL OVERRIDE {
- return kRepWord64;
- }
+ ~ChangeLowering64Test() OVERRIDE {}
+ MachineType WordRepresentation() const FINAL { return kRepWord64; }
};