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

Unified Diff: src/compiler/instruction-selector-unittest.h

Issue 615393002: Move unit tests to test/unittests. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: REBASE Created 6 years, 3 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 side-by-side diff with in-line comments
Download patch
Index: src/compiler/instruction-selector-unittest.h
diff --git a/src/compiler/instruction-selector-unittest.h b/src/compiler/instruction-selector-unittest.h
deleted file mode 100644
index 3e7f63aa60ae8ef6beb6d4a9e14951bea9b13364..0000000000000000000000000000000000000000
--- a/src/compiler/instruction-selector-unittest.h
+++ /dev/null
@@ -1,213 +0,0 @@
-// Copyright 2014 the V8 project authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef V8_COMPILER_INSTRUCTION_SELECTOR_UNITTEST_H_
-#define V8_COMPILER_INSTRUCTION_SELECTOR_UNITTEST_H_
-
-#include <deque>
-#include <set>
-
-#include "src/base/utils/random-number-generator.h"
-#include "src/compiler/instruction-selector.h"
-#include "src/compiler/raw-machine-assembler.h"
-#include "src/test/test-utils.h"
-
-namespace v8 {
-namespace internal {
-namespace compiler {
-
-class InstructionSelectorTest : public TestWithContext, public TestWithZone {
- public:
- InstructionSelectorTest();
- virtual ~InstructionSelectorTest();
-
- base::RandomNumberGenerator* rng() { return &rng_; }
-
- class Stream;
-
- enum StreamBuilderMode {
- kAllInstructions,
- kTargetInstructions,
- kAllExceptNopInstructions
- };
-
- class StreamBuilder FINAL : public RawMachineAssembler {
- public:
- StreamBuilder(InstructionSelectorTest* test, MachineType return_type)
- : RawMachineAssembler(new (test->zone()) Graph(test->zone()),
- MakeMachineSignature(test->zone(), return_type)),
- test_(test) {}
- StreamBuilder(InstructionSelectorTest* test, MachineType return_type,
- MachineType parameter0_type)
- : RawMachineAssembler(
- new (test->zone()) Graph(test->zone()),
- MakeMachineSignature(test->zone(), return_type, parameter0_type)),
- test_(test) {}
- StreamBuilder(InstructionSelectorTest* test, MachineType return_type,
- MachineType parameter0_type, MachineType parameter1_type)
- : RawMachineAssembler(
- new (test->zone()) Graph(test->zone()),
- MakeMachineSignature(test->zone(), return_type, parameter0_type,
- parameter1_type)),
- test_(test) {}
- StreamBuilder(InstructionSelectorTest* test, MachineType return_type,
- MachineType parameter0_type, MachineType parameter1_type,
- MachineType parameter2_type)
- : RawMachineAssembler(
- new (test->zone()) Graph(test->zone()),
- MakeMachineSignature(test->zone(), return_type, parameter0_type,
- parameter1_type, parameter2_type)),
- test_(test) {}
-
- Stream Build(CpuFeature feature) {
- return Build(InstructionSelector::Features(feature));
- }
- Stream Build(CpuFeature feature1, CpuFeature feature2) {
- return Build(InstructionSelector::Features(feature1, feature2));
- }
- Stream Build(StreamBuilderMode mode = kTargetInstructions) {
- return Build(InstructionSelector::Features(), mode);
- }
- Stream Build(InstructionSelector::Features features,
- StreamBuilderMode mode = kTargetInstructions);
-
- private:
- MachineSignature* MakeMachineSignature(Zone* zone,
- MachineType return_type) {
- MachineSignature::Builder builder(zone, 1, 0);
- builder.AddReturn(return_type);
- return builder.Build();
- }
-
- MachineSignature* MakeMachineSignature(Zone* zone, MachineType return_type,
- MachineType parameter0_type) {
- MachineSignature::Builder builder(zone, 1, 1);
- builder.AddReturn(return_type);
- builder.AddParam(parameter0_type);
- return builder.Build();
- }
-
- MachineSignature* MakeMachineSignature(Zone* zone, MachineType return_type,
- MachineType parameter0_type,
- MachineType parameter1_type) {
- MachineSignature::Builder builder(zone, 1, 2);
- builder.AddReturn(return_type);
- builder.AddParam(parameter0_type);
- builder.AddParam(parameter1_type);
- return builder.Build();
- }
-
- MachineSignature* MakeMachineSignature(Zone* zone, MachineType return_type,
- MachineType parameter0_type,
- MachineType parameter1_type,
- MachineType parameter2_type) {
- MachineSignature::Builder builder(zone, 1, 3);
- builder.AddReturn(return_type);
- builder.AddParam(parameter0_type);
- builder.AddParam(parameter1_type);
- builder.AddParam(parameter2_type);
- return builder.Build();
- }
-
- private:
- InstructionSelectorTest* test_;
- };
-
- class Stream FINAL {
- public:
- size_t size() const { return instructions_.size(); }
- const Instruction* operator[](size_t index) const {
- EXPECT_LT(index, size());
- return instructions_[index];
- }
-
- bool IsDouble(const InstructionOperand* operand) const {
- return IsDouble(ToVreg(operand));
- }
- bool IsDouble(int virtual_register) const {
- return doubles_.find(virtual_register) != doubles_.end();
- }
-
- bool IsInteger(const InstructionOperand* operand) const {
- return IsInteger(ToVreg(operand));
- }
- bool IsInteger(int virtual_register) const {
- return !IsDouble(virtual_register) && !IsReference(virtual_register);
- }
-
- bool IsReference(const InstructionOperand* operand) const {
- return IsReference(ToVreg(operand));
- }
- bool IsReference(int virtual_register) const {
- return references_.find(virtual_register) != references_.end();
- }
-
- float ToFloat32(const InstructionOperand* operand) const {
- return ToConstant(operand).ToFloat32();
- }
-
- int32_t ToInt32(const InstructionOperand* operand) const {
- return ToConstant(operand).ToInt32();
- }
-
- int64_t ToInt64(const InstructionOperand* operand) const {
- return ToConstant(operand).ToInt64();
- }
-
- int ToVreg(const InstructionOperand* operand) const {
- if (operand->IsConstant()) return operand->index();
- EXPECT_EQ(InstructionOperand::UNALLOCATED, operand->kind());
- return UnallocatedOperand::cast(operand)->virtual_register();
- }
-
- FrameStateDescriptor* GetFrameStateDescriptor(int deoptimization_id) {
- EXPECT_LT(deoptimization_id, GetFrameStateDescriptorCount());
- return deoptimization_entries_[deoptimization_id];
- }
-
- int GetFrameStateDescriptorCount() {
- return static_cast<int>(deoptimization_entries_.size());
- }
-
- private:
- Constant ToConstant(const InstructionOperand* operand) const {
- ConstantMap::const_iterator i;
- if (operand->IsConstant()) {
- i = constants_.find(operand->index());
- EXPECT_FALSE(constants_.end() == i);
- } else {
- EXPECT_EQ(InstructionOperand::IMMEDIATE, operand->kind());
- i = immediates_.find(operand->index());
- EXPECT_FALSE(immediates_.end() == i);
- }
- EXPECT_EQ(operand->index(), i->first);
- return i->second;
- }
-
- friend class StreamBuilder;
-
- typedef std::map<int, Constant> ConstantMap;
-
- ConstantMap constants_;
- ConstantMap immediates_;
- std::deque<Instruction*> instructions_;
- std::set<int> doubles_;
- std::set<int> references_;
- std::deque<FrameStateDescriptor*> deoptimization_entries_;
- };
-
- base::RandomNumberGenerator rng_;
-};
-
-
-template <typename T>
-class InstructionSelectorTestWithParam
- : public InstructionSelectorTest,
- public ::testing::WithParamInterface<T> {};
-
-} // namespace compiler
-} // namespace internal
-} // namespace v8
-
-#endif // V8_COMPILER_INSTRUCTION_SELECTOR_UNITTEST_H_
« no previous file with comments | « src/compiler/ia32/instruction-selector-ia32-unittest.cc ('k') | src/compiler/instruction-selector-unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698