Extend TF test coverage to unsupported targets.

R=titzer@chromium.org
TEST=all

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22793 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
parent c1f60c6c
......@@ -413,9 +413,7 @@ OptimizedCompileJob::Status OptimizedCompileJob::CreateGraph() {
info()->function()->dont_optimize_reason() != kTryCatchStatement &&
info()->function()->dont_optimize_reason() != kTryFinallyStatement &&
// TODO(turbofan): Make OSR work and remove this bailout.
!info()->is_osr() &&
// TODO(mstarzinger): Extend test coverage to unsupported targets.
compiler::Pipeline::SupportedTarget()) {
!info()->is_osr()) {
compiler::Pipeline pipeline(info());
pipeline.GenerateCode();
if (!info()->code().is_null()) {
......
......@@ -15,6 +15,8 @@ namespace v8 {
namespace internal {
namespace compiler {
#if V8_TURBOFAN_TARGET
#define __ masm()->
......@@ -850,6 +852,8 @@ bool CodeGenerator::IsNopForSmiCodeInlining(Handle<Code> code, int start_pc,
#endif // DEBUG
#endif // V8_TURBOFAN_TARGET
} // namespace compiler
} // namespace internal
} // namespace v8
......@@ -9,6 +9,8 @@ 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
......@@ -658,6 +660,8 @@ void InstructionSelector::VisitCall(Node* call, BasicBlock* continuation,
}
}
#endif // V8_TURBOFAN_TARGET
} // namespace compiler
} // namespace internal
} // namespace v8
......@@ -14,6 +14,8 @@ namespace v8 {
namespace internal {
namespace compiler {
#if V8_TURBOFAN_TARGET
struct LinkageHelperTraits {
static Register ReturnValueReg() { return x0; }
static Register ReturnValue2Reg() { return x1; }
......@@ -61,6 +63,8 @@ CallDescriptor* Linkage::GetSimplifiedCDescriptor(
return LinkageHelper::GetSimplifiedCDescriptor<LinkageHelperTraits>(
zone, num_params, return_type, param_types);
}
#endif // V8_TURBOFAN_TARGET
}
}
} // namespace v8::internal::compiler
......@@ -170,23 +170,23 @@ Handle<Code> Pipeline::GenerateCode() {
}
}
Handle<Code> code = Handle<Code>::null();
if (SupportedTarget()) {
// Lower any remaining generic JSOperators.
PhaseStats lowering_stats(info(), PhaseStats::CREATE_GRAPH,
"generic lowering");
MachineOperatorBuilder machine(zone());
JSGenericLowering lowering(info(), &jsgraph, &machine, &source_positions);
lowering.LowerAllNodes();
VerifyAndPrintGraph(&graph, "Lowered generic");
}
{
// Lower any remaining generic JSOperators.
PhaseStats lowering_stats(info(), PhaseStats::CREATE_GRAPH,
"generic lowering");
MachineOperatorBuilder machine(zone());
JSGenericLowering lowering(info(), &jsgraph, &machine, &source_positions);
lowering.LowerAllNodes();
// Compute a schedule.
Schedule* schedule = ComputeSchedule(&graph);
TraceSchedule(schedule);
VerifyAndPrintGraph(&graph, "Lowered generic");
}
// Compute a schedule.
Schedule* schedule = ComputeSchedule(&graph);
TraceSchedule(schedule);
Handle<Code> code = Handle<Code>::null();
if (SupportedTarget()) {
{
// Generate optimized code.
PhaseStats codegen_stats(info(), PhaseStats::CODEGEN, "codegen");
......@@ -194,6 +194,7 @@ Handle<Code> Pipeline::GenerateCode() {
code = GenerateCode(&linkage, &graph, schedule, &source_positions);
info()->SetCode(code);
}
// Print optimized code.
v8::internal::CodeGenerator::PrintCode(code, info());
}
......
......@@ -12,8 +12,7 @@
// 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_ARM64 || \
V8_TARGET_ARCH_ARM
#if V8_TARGET_ARCH_IA32 || V8_TARGET_ARCH_X64 || V8_TARGET_ARCH_ARM
#ifndef _WIN64
#define V8_TURBOFAN_TARGET 1
#else
......@@ -50,14 +49,7 @@ class Pipeline {
Zone* zone() { return info_->zone(); }
Isolate* isolate() { return info_->isolate(); }
static inline bool SupportedTarget() {
#if V8_TARGET_ARCH_ARM64
// TODO(turbofan): The ARM64 port is temporarily disabled.
return false;
#else
return V8_TURBOFAN_TARGET != 0;
#endif
}
static inline bool SupportedTarget() { return V8_TURBOFAN_TARGET != 0; }
static inline bool VerifyGraphs() {
#ifdef DEBUG
......
......@@ -181,9 +181,6 @@
# No need to waste time for this test.
'd8-performance-now': [PASS, NO_VARIANTS],
##############################################################################
'big-object-literal': [PASS, ['arch == arm or arch == android_arm or arch == android_arm64', SKIP]],
# Issue 488: this test sometimes times out.
'array-constructor': [PASS, TIMEOUT],
......@@ -310,6 +307,7 @@
# Pass but take too long to run. Skip.
# Some similar tests (with fewer iterations) may be included in arm64-js
# tests.
'big-object-literal': [SKIP],
'compiler/regress-arguments': [SKIP],
'compiler/regress-gvn': [SKIP],
'compiler/regress-max-locals-for-osr': [SKIP],
......@@ -413,6 +411,7 @@
# Long running tests. Skipping because having them timeout takes too long on
# the buildbot.
'big-object-literal': [SKIP],
'compiler/alloc-number': [SKIP],
'regress/regress-490': [SKIP],
'regress/regress-634': [SKIP],
......
......@@ -37,6 +37,8 @@
'exception-with-handler-inside-eval-with-dynamic-scope': [PASS, NO_VARIANTS],
# TODO(turbofan): We run out of stack earlier on 64-bit for now.
'fast/js/deep-recursion-test': [PASS, NO_VARIANTS],
# TODO(turbofan): Some tests just timeout for now.
'array-iterate-backwards': [PASS, NO_VARIANTS],
}], # ALWAYS
['mode == debug', {
# Too slow in debug mode.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment