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