From f5b0a374854b69d2cc325895d1e7eeec1485d979 Mon Sep 17 00:00:00 2001 From: "mstarzinger@chromium.org" Date: Fri, 1 Aug 2014 13:51:23 +0000 Subject: [PATCH] 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 --- src/compiler.cc | 4 +-- src/compiler/arm64/code-generator-arm64.cc | 4 +++ .../arm64/instruction-selector-arm64.cc | 4 +++ src/compiler/arm64/linkage-arm64.cc | 4 +++ src/compiler/pipeline.cc | 29 ++++++++++--------- src/compiler/pipeline.h | 12 ++------ test/mjsunit/mjsunit.status | 5 ++-- test/webkit/webkit.status | 2 ++ 8 files changed, 34 insertions(+), 30 deletions(-) diff --git a/src/compiler.cc b/src/compiler.cc index 6d22db2df..342ed8a70 100644 --- a/src/compiler.cc +++ b/src/compiler.cc @@ -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()) { diff --git a/src/compiler/arm64/code-generator-arm64.cc b/src/compiler/arm64/code-generator-arm64.cc index 85a5c580d..bc21222e0 100644 --- a/src/compiler/arm64/code-generator-arm64.cc +++ b/src/compiler/arm64/code-generator-arm64.cc @@ -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, int start_pc, #endif // DEBUG +#endif // V8_TURBOFAN_TARGET + } // namespace compiler } // namespace internal } // namespace v8 diff --git a/src/compiler/arm64/instruction-selector-arm64.cc b/src/compiler/arm64/instruction-selector-arm64.cc index 5a513a54c..cbe5ae193 100644 --- a/src/compiler/arm64/instruction-selector-arm64.cc +++ b/src/compiler/arm64/instruction-selector-arm64.cc @@ -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 diff --git a/src/compiler/arm64/linkage-arm64.cc b/src/compiler/arm64/linkage-arm64.cc index 05f80a08a..72f6c55e0 100644 --- a/src/compiler/arm64/linkage-arm64.cc +++ b/src/compiler/arm64/linkage-arm64.cc @@ -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( zone, num_params, return_type, param_types); } + +#endif // V8_TURBOFAN_TARGET } } } // namespace v8::internal::compiler diff --git a/src/compiler/pipeline.cc b/src/compiler/pipeline.cc index 7a0460807..382ee86d9 100644 --- a/src/compiler/pipeline.cc +++ b/src/compiler/pipeline.cc @@ -170,23 +170,23 @@ Handle Pipeline::GenerateCode() { } } + Handle code = Handle::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 = Handle::null(); - if (SupportedTarget()) { { // Generate optimized code. PhaseStats codegen_stats(info(), PhaseStats::CODEGEN, "codegen"); @@ -194,6 +194,7 @@ Handle Pipeline::GenerateCode() { code = GenerateCode(&linkage, &graph, schedule, &source_positions); info()->SetCode(code); } + // Print optimized code. v8::internal::CodeGenerator::PrintCode(code, info()); } diff --git a/src/compiler/pipeline.h b/src/compiler/pipeline.h index 6d69dd055..82af766c3 100644 --- a/src/compiler/pipeline.h +++ b/src/compiler/pipeline.h @@ -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 diff --git a/test/mjsunit/mjsunit.status b/test/mjsunit/mjsunit.status index a4f6eb000..8f01c2d31 100644 --- a/test/mjsunit/mjsunit.status +++ b/test/mjsunit/mjsunit.status @@ -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], diff --git a/test/webkit/webkit.status b/test/webkit/webkit.status index b2f0f7a58..ae05057d9 100644 --- a/test/webkit/webkit.status +++ b/test/webkit/webkit.status @@ -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. -- 2.34.1