Cleanup V8_TURBOFAN_TARGET definition.

Move to globals.h so we do no longer skip any number of
tests. Introduce V8_TURBOFAN_BACKEND, which is 1 if we
actually have a backend and want to compile it, but don't
run the tests.

R=titzer@chromium.org

Review URL: https://codereview.chromium.org/444503003

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22863 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
This commit is contained in:
bmeurer@chromium.org 2014-08-05 11:53:32 +00:00
parent 77838cf522
commit 70e7a119e6
6 changed files with 26 additions and 25 deletions

View File

@ -9,8 +9,6 @@ namespace v8 {
namespace internal {
namespace compiler {
#if V8_TURBOFAN_TARGET
enum ImmediateMode {
kArithimeticImm, // 12 bit unsigned immediate shifted left 0 or 12 bits
kShift32Imm, // 0 - 31
@ -664,8 +662,6 @@ void InstructionSelector::VisitCall(Node* call, BasicBlock* continuation,
}
}
#endif // V8_TURBOFAN_TARGET
} // namespace compiler
} // namespace internal
} // namespace v8

View File

@ -287,7 +287,8 @@ void CodeGenerator::BuildTranslation(Instruction* instr,
}
#if !V8_TURBOFAN_TARGET
#if !V8_TURBOFAN_BACKEND
void CodeGenerator::AssembleArchInstruction(Instruction* instr) {
UNIMPLEMENTED();
}
@ -334,7 +335,7 @@ bool CodeGenerator::IsNopForSmiCodeInlining(Handle<Code> code, int start_pc,
}
#endif
#endif
#endif // !V8_TURBOFAN_BACKEND
} // namespace compiler

View File

@ -604,7 +604,7 @@ void InstructionSelector::VisitNode(Node* node) {
}
#if V8_TURBOFAN_TARGET
#if V8_TURBOFAN_BACKEND
void InstructionSelector::VisitWord32Equal(Node* node) {
FlagsContinuation cont(kEqual, node);
@ -699,10 +699,10 @@ void InstructionSelector::VisitFloat64LessThanOrEqual(Node* node) {
VisitFloat64Compare(node, &cont);
}
#endif // V8_TURBOFAN_TARGET
#endif // V8_TURBOFAN_BACKEND
// 32 bit targets do not implement the following instructions.
#if V8_TARGET_ARCH_32_BIT && V8_TURBOFAN_TARGET
#if V8_TARGET_ARCH_32_BIT && V8_TURBOFAN_BACKEND
void InstructionSelector::VisitWord64And(Node* node) { UNIMPLEMENTED(); }
@ -752,12 +752,12 @@ void InstructionSelector::VisitConvertInt32ToInt64(Node* node) {
UNIMPLEMENTED();
}
#endif // V8_TARGET_ARCH_32_BIT && V8_TURBOFAN_TARGET
#endif // V8_TARGET_ARCH_32_BIT && V8_TURBOFAN_BACKEND
// 32-bit targets and unsupported architectures need dummy implementations of
// selected 64-bit ops.
#if V8_TARGET_ARCH_32_BIT || !V8_TURBOFAN_TARGET
#if V8_TARGET_ARCH_32_BIT || !V8_TURBOFAN_BACKEND
void InstructionSelector::VisitWord64Test(Node* node, FlagsContinuation* cont) {
UNIMPLEMENTED();
@ -769,7 +769,7 @@ void InstructionSelector::VisitWord64Compare(Node* node,
UNIMPLEMENTED();
}
#endif // V8_TARGET_ARCH_32_BIT || !V8_TURBOFAN_TARGET
#endif // V8_TARGET_ARCH_32_BIT || !V8_TURBOFAN_BACKEND
void InstructionSelector::VisitParameter(Node* node) {
@ -963,7 +963,7 @@ void InstructionSelector::VisitDeoptimization(Node* deopt) {
}
#if !V8_TURBOFAN_TARGET
#if !V8_TURBOFAN_BACKEND
#define DECLARE_UNIMPLEMENTED_SELECTOR(x) \
void InstructionSelector::Visit##x(Node* node) { UNIMPLEMENTED(); }
@ -1003,7 +1003,7 @@ void InstructionSelector::VisitFloat64Compare(Node* node,
void InstructionSelector::VisitCall(Node* call, BasicBlock* continuation,
BasicBlock* deoptimization) {}
#endif // !V8_TURBOFAN_TARGET
#endif // !V8_TURBOFAN_BACKEND
} // namespace compiler
} // namespace internal

View File

@ -12,16 +12,6 @@
// Note: TODO(turbofan) implies a performance improvement opportunity,
// and TODO(name) implies an incomplete implementation
#if V8_TARGET_ARCH_IA32 || V8_TARGET_ARCH_X64 || V8_TARGET_ARCH_ARM
#ifndef _WIN64
#define V8_TURBOFAN_TARGET 1
#else
#define V8_TURBOFAN_TARGET 0
#endif
#else
#define V8_TURBOFAN_TARGET 0
#endif
namespace v8 {
namespace internal {
namespace compiler {
@ -49,6 +39,7 @@ class Pipeline {
Zone* zone() { return info_->zone(); }
Isolate* isolate() { return info_->isolate(); }
static inline bool SupportedBackend() { return V8_TURBOFAN_BACKEND != 0; }
static inline bool SupportedTarget() { return V8_TURBOFAN_TARGET != 0; }
static inline bool VerifyGraphs() {

View File

@ -25,6 +25,19 @@
# define V8_INFINITY INFINITY
#endif
#if V8_TARGET_ARCH_IA32 || V8_TARGET_ARCH_X64 || V8_TARGET_ARCH_ARM || \
V8_TARGET_ARCH_ARM64
#define V8_TURBOFAN_BACKEND 1
#else
#define V8_TURBOFAN_BACKEND 0
#endif
#if V8_TURBOFAN_BACKEND && !V8_TARGET_ARCH_ARM64 && \
!(V8_OS_WIN && V8_TARGET_ARCH_X64)
#define V8_TURBOFAN_TARGET 1
#else
#define V8_TURBOFAN_TARGET 0
#endif
namespace v8 {
namespace base {

View File

@ -1763,7 +1763,7 @@ TEST(BuildScheduleTrivialLazyDeoptCall) {
Node* undef_node = graph.NewNode(common_builder.HeapConstant(undef_constant));
Node* start_node = graph.NewNode(common_builder.Start());
Node* start_node = graph.NewNode(common_builder.Start(0));
CallDescriptor* descriptor = linkage.GetJSCallDescriptor(0);
Node* call_node = graph.NewNode(common_builder.Call(descriptor),