Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(10)

Side by Side Diff: test/cctest/compiler/test-simplified-lowering.cc

Issue 620803003: [turbofan] Add control input to Load and LoadElements. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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/control-builders.h" 8 #include "src/compiler/control-builders.h"
9 #include "src/compiler/generic-node-inl.h" 9 #include "src/compiler/generic-node-inl.h"
10 #include "src/compiler/graph-visualizer.h" 10 #include "src/compiler/graph-visualizer.h"
(...skipping 1337 matching lines...) Expand 10 before | Expand all | Expand 10 after
1348 TEST(LowerLoadElement_to_load) { 1348 TEST(LowerLoadElement_to_load) {
1349 TestingGraph t(Type::Any(), Type::Signed32()); 1349 TestingGraph t(Type::Any(), Type::Signed32());
1350 1350
1351 for (size_t i = 0; i < arraysize(machine_reps); i++) { 1351 for (size_t i = 0; i < arraysize(machine_reps); i++) {
1352 ElementAccess access = {kNoBoundsCheck, kTaggedBase, 1352 ElementAccess access = {kNoBoundsCheck, kTaggedBase,
1353 FixedArrayBase::kHeaderSize, Type::Any(), 1353 FixedArrayBase::kHeaderSize, Type::Any(),
1354 machine_reps[i]}; 1354 machine_reps[i]};
1355 1355
1356 Node* load = 1356 Node* load =
1357 t.graph()->NewNode(t.simplified()->LoadElement(access), t.p0, t.p1, 1357 t.graph()->NewNode(t.simplified()->LoadElement(access), t.p0, t.p1,
1358 t.jsgraph.Int32Constant(1024), t.start); 1358 t.jsgraph.Int32Constant(1024), t.start, t.start);
1359 Node* use = t.Use(load, machine_reps[i]); 1359 Node* use = t.Use(load, machine_reps[i]);
1360 t.Return(use); 1360 t.Return(use);
1361 t.Lower(); 1361 t.Lower();
1362 CHECK_EQ(IrOpcode::kLoad, load->opcode()); 1362 CHECK_EQ(IrOpcode::kLoad, load->opcode());
1363 CHECK_EQ(t.p0, load->InputAt(0)); 1363 CHECK_EQ(t.p0, load->InputAt(0));
1364 CheckElementAccessArithmetic(access, load); 1364 CheckElementAccessArithmetic(access, load);
1365 1365
1366 MachineType rep = OpParameter<MachineType>(load); 1366 MachineType rep = OpParameter<MachineType>(load);
1367 CHECK_EQ(machine_reps[i], rep); 1367 CHECK_EQ(machine_reps[i], rep);
1368 } 1368 }
(...skipping 29 matching lines...) Expand all
1398 1398
1399 TEST(InsertChangeForLoadElementIndex) { 1399 TEST(InsertChangeForLoadElementIndex) {
1400 // LoadElement(obj: Tagged, index: kTypeInt32 | kRepTagged, length) => 1400 // LoadElement(obj: Tagged, index: kTypeInt32 | kRepTagged, length) =>
1401 // Load(obj, Int32Add(Int32Mul(ChangeTaggedToInt32(index), #k), #k)) 1401 // Load(obj, Int32Add(Int32Mul(ChangeTaggedToInt32(index), #k), #k))
1402 TestingGraph t(Type::Any(), Type::Signed32(), Type::Any()); 1402 TestingGraph t(Type::Any(), Type::Signed32(), Type::Any());
1403 ElementAccess access = {kNoBoundsCheck, kTaggedBase, 1403 ElementAccess access = {kNoBoundsCheck, kTaggedBase,
1404 FixedArrayBase::kHeaderSize, Type::Any(), 1404 FixedArrayBase::kHeaderSize, Type::Any(),
1405 kMachAnyTagged}; 1405 kMachAnyTagged};
1406 1406
1407 Node* load = t.graph()->NewNode(t.simplified()->LoadElement(access), t.p0, 1407 Node* load = t.graph()->NewNode(t.simplified()->LoadElement(access), t.p0,
1408 t.p1, t.p2, t.start); 1408 t.p1, t.p2, t.start, t.start);
1409 t.Return(load); 1409 t.Return(load);
1410 t.Lower(); 1410 t.Lower();
1411 CHECK_EQ(IrOpcode::kLoad, load->opcode()); 1411 CHECK_EQ(IrOpcode::kLoad, load->opcode());
1412 CHECK_EQ(t.p0, load->InputAt(0)); 1412 CHECK_EQ(t.p0, load->InputAt(0));
1413 1413
1414 Node* index = CheckElementAccessArithmetic(access, load); 1414 Node* index = CheckElementAccessArithmetic(access, load);
1415 CheckChangeOf(IrOpcode::kChangeTaggedToInt32, t.p1, index); 1415 CheckChangeOf(IrOpcode::kChangeTaggedToInt32, t.p1, index);
1416 } 1416 }
1417 1417
1418 1418
(...skipping 19 matching lines...) Expand all
1438 1438
1439 1439
1440 TEST(InsertChangeForLoadElement) { 1440 TEST(InsertChangeForLoadElement) {
1441 // TODO(titzer): test all load/store representation change insertions. 1441 // TODO(titzer): test all load/store representation change insertions.
1442 TestingGraph t(Type::Any(), Type::Signed32(), Type::Any()); 1442 TestingGraph t(Type::Any(), Type::Signed32(), Type::Any());
1443 ElementAccess access = {kNoBoundsCheck, kTaggedBase, 1443 ElementAccess access = {kNoBoundsCheck, kTaggedBase,
1444 FixedArrayBase::kHeaderSize, Type::Any(), 1444 FixedArrayBase::kHeaderSize, Type::Any(),
1445 kMachFloat64}; 1445 kMachFloat64};
1446 1446
1447 Node* load = t.graph()->NewNode(t.simplified()->LoadElement(access), t.p0, 1447 Node* load = t.graph()->NewNode(t.simplified()->LoadElement(access), t.p0,
1448 t.p1, t.p1, t.start); 1448 t.p1, t.p1, t.start, t.start);
1449 t.Return(load); 1449 t.Return(load);
1450 t.Lower(); 1450 t.Lower();
1451 CHECK_EQ(IrOpcode::kLoad, load->opcode()); 1451 CHECK_EQ(IrOpcode::kLoad, load->opcode());
1452 CHECK_EQ(t.p0, load->InputAt(0)); 1452 CHECK_EQ(t.p0, load->InputAt(0));
1453 CheckChangeOf(IrOpcode::kChangeFloat64ToTagged, load, t.ret->InputAt(0)); 1453 CheckChangeOf(IrOpcode::kChangeFloat64ToTagged, load, t.ret->InputAt(0));
1454 } 1454 }
1455 1455
1456 1456
1457 TEST(InsertChangeForLoadField) { 1457 TEST(InsertChangeForLoadField) {
1458 // TODO(titzer): test all load/store representation change insertions. 1458 // TODO(titzer): test all load/store representation change insertions.
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
1522 Node* phi = t.graph()->NewNode(t.common()->Phi(kMachAnyTagged, 2), load0, 1522 Node* phi = t.graph()->NewNode(t.common()->Phi(kMachAnyTagged, 2), load0,
1523 load1, t.start); 1523 load1, t.start);
1524 t.Return(t.Use(phi, kMachineTypes[i])); 1524 t.Return(t.Use(phi, kMachineTypes[i]));
1525 t.Lower(); 1525 t.Lower();
1526 1526
1527 CHECK_EQ(IrOpcode::kPhi, phi->opcode()); 1527 CHECK_EQ(IrOpcode::kPhi, phi->opcode());
1528 CHECK_EQ(RepresentationOf(kMachineTypes[i]), 1528 CHECK_EQ(RepresentationOf(kMachineTypes[i]),
1529 RepresentationOf(OpParameter<MachineType>(phi))); 1529 RepresentationOf(OpParameter<MachineType>(phi)));
1530 } 1530 }
1531 } 1531 }
OLDNEW
« no previous file with comments | « test/cctest/compiler/test-changes-lowering.cc ('k') | test/unittests/compiler/change-lowering-unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698