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()) {
namespace internal {
namespace compiler {
+#if V8_TURBOFAN_TARGET
+
#define __ masm()->
#endif // DEBUG
+#endif // V8_TURBOFAN_TARGET
+
} // namespace compiler
} // namespace internal
} // 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
}
}
+#endif // V8_TURBOFAN_TARGET
+
} // namespace compiler
} // namespace internal
} // namespace v8
namespace internal {
namespace compiler {
+#if V8_TURBOFAN_TARGET
+
struct LinkageHelperTraits {
static Register ReturnValueReg() { return x0; }
static Register ReturnValue2Reg() { return x1; }
return LinkageHelper::GetSimplifiedCDescriptor<LinkageHelperTraits>(
zone, num_params, return_type, param_types);
}
+
+#endif // V8_TURBOFAN_TARGET
}
}
} // namespace v8::internal::compiler
}
}
+ 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");
code = GenerateCode(&linkage, &graph, schedule, &source_positions);
info()->SetCode(code);
}
+
// Print optimized code.
v8::internal::CodeGenerator::PrintCode(code, info());
}
// 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
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
# 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],
'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.