Extend TF test coverage to unsupported targets.
authormstarzinger@chromium.org <mstarzinger@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Fri, 1 Aug 2014 13:51:23 +0000 (13:51 +0000)
committermstarzinger@chromium.org <mstarzinger@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Fri, 1 Aug 2014 13:51:23 +0000 (13:51 +0000)
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
src/compiler/arm64/code-generator-arm64.cc
src/compiler/arm64/instruction-selector-arm64.cc
src/compiler/arm64/linkage-arm64.cc
src/compiler/pipeline.cc
src/compiler/pipeline.h
test/mjsunit/mjsunit.status
test/webkit/webkit.status

index 6d22db2dfba8cd00ab71999ae773dcd834799ffe..342ed8a7069803f5660f4eb47faf2fa33e17ebd7 100644 (file)
@@ -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()) {
index 85a5c580db0bfb2642f83596bca1c9655a3be6eb..bc21222e0eb1b052bc02e27ae98d009dfc8f49ff 100644 (file)
@@ -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
index 5a513a54c16cfc1397431ef18457f80a28feae67..cbe5ae19341d68b19787d3aee1a1530f4c528764 100644 (file)
@@ -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
index 05f80a08a330000baf428971f4fba8095fdfbd5f..72f6c55e0cc24195869350ddc210e5c0aa1f676c 100644 (file)
@@ -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
index 7a0460807d3274b970596d7d23a12de9104e60f6..382ee86d946e238094c599882c69d156e762525b 100644 (file)
@@ -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());
   }
index 6d69dd055d468038998c234f00420b4227d3ea47..82af766c3c426414e857effc426d2a8a69237cf8 100644 (file)
@@ -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
index a4f6eb0009c4c549520ca95181fcacd53dfff873..8f01c2d31525cf8cf78f58f3d077d80fc5817549 100644 (file)
   # 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],
 
   # 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],
 
   # 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],
index b2f0f7a58390084688841019da93b1ce4db3768c..ae05057d9e0d3730bea7ec85f6da397b91a7f8a1 100644 (file)
@@ -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.