Selaa lähdekoodia

ARM64: Disable inlining and VirtualTypedArray. Mark tests using test trace as exclue_arm64

Sandeep Agarwal 8 vuotta sitten
vanhempi
sitoutus
a77ab96c33

+ 5 - 0
lib/Backend/InliningDecider.cpp

@@ -184,6 +184,10 @@ uint InliningDecider::InlinePolymorphicCallSite(Js::FunctionBody *const inliner,
 Js::FunctionInfo *InliningDecider::Inline(Js::FunctionBody *const inliner, Js::FunctionInfo* functionInfo,
     bool isConstructorCall, bool isPolymorphicCall, uint16 constantArgInfo, Js::ProfileId callSiteId, uint recursiveInlineDepth, bool allowRecursiveInlining)
 {
+#ifdef _M_ARM64
+    // ToDo: Enable inlining on ARM64
+    return nullptr;
+#else
 #if defined(DBG_DUMP) || defined(ENABLE_DEBUG_CONFIG_OPTIONS)
     char16 debugStringBuffer[MAX_FUNCTION_BODY_DEBUG_STRING_SIZE];
     char16 debugStringBuffer2[MAX_FUNCTION_BODY_DEBUG_STRING_SIZE];
@@ -301,6 +305,7 @@ Js::FunctionInfo *InliningDecider::Inline(Js::FunctionBody *const inliner, Js::F
 
     // Note: for built-ins at this time we don't have enough data (the instr) to decide whether it's going to be inlined.
     return functionInfo;
+#endif
 }
 
 

+ 2 - 1
lib/Common/CommonDefines.h

@@ -291,7 +291,8 @@
 #define ENABLE_OOP_NATIVE_CODEGEN 1     // Out of process JIT
 #endif
 
-#if _WIN64
+// ToDo (SaAgarwa): Disable VirtualTypedArray on ARM64 till we make sure it works correctly
+#if _WIN64 && !defined(_M_ARM64)
 #define ENABLE_FAST_ARRAYBUFFER 1
 #endif
 #endif

+ 1 - 0
test/Date/rlexe.xml

@@ -88,6 +88,7 @@
     <default>
       <files>date_cache_bug.js</files>
       <baseline>date_cache_bug.baseline</baseline>
+      <timeout>120</timeout> <!-- ARM64 take more than 60 -->
     </default>
   </test>
   <test>

+ 1 - 1
test/Function/rlexe.xml

@@ -375,7 +375,7 @@
     <default>
       <files>StackArgsWithFormals.js</files>
       <compile-flags>-mic:1 -off:simpleJit -trace:stackargformalsopt</compile-flags>
-      <tags>exclude_dynapogo,exclude_fre,exclude_nonative,require_backend,exclude_forceserialized</tags>
+      <tags>exclude_dynapogo,exclude_fre,exclude_nonative,require_backend,exclude_forceserialized,exclude_arm64</tags>
       <baseline>StackArgsWithFormals.baseline</baseline>
     </default>
   </test>

+ 2 - 2
test/Optimizer/rlexe.xml

@@ -1020,7 +1020,7 @@
       <baseline>test143.baseline</baseline>
       <compile-flags>-bgJit- -off:simpleJit -loopInterpretCount:1 -testTrace:arrayCheckHoist</compile-flags>
       <!-- ch.exe doesn't output entire baseline before exiting; -testTrace flush issue? -->
-      <tags>exclude_dynapogo,exclude_forceserialized,exclude_nonative</tags>
+      <tags>exclude_dynapogo,exclude_forceserialized,exclude_nonative,exclude_arm64</tags>
     </default>
   </test>
   <test>
@@ -1242,7 +1242,7 @@
       <files>BoundCheckElimination.js</files>
       <baseline>BoundCheckElimination.baseline</baseline>
       <compile-flags>-bgJit- -minInterpretCount:1 -maxInterpretCount:1 -off:simpleJit -off:bailOnNoProfile -testTrace:boundCheckElimination -testTrace:boundCheckHoist</compile-flags>
-      <tags>exclude_dynapogo,exclude_serialized,exclude_default,exclude_nonative</tags>
+      <tags>exclude_dynapogo,exclude_serialized,exclude_default,exclude_nonative,exclude_arm64</tags>
     </default>
   </test>
   <test>

+ 2 - 2
test/PerfHint/rlexe.xml

@@ -21,7 +21,7 @@
       <files>arguments1.js</files>
       <baseline>arguments1.baseline</baseline>
       <compile-flags>-oopjit- -trace:PerfHint -off:simplejit</compile-flags>
-      <tags>exclude_dynapogo,exclude_nonative</tags>
+      <tags>exclude_dynapogo,exclude_nonative,exclude_arm64</tags>
     </default>
   </test>
   <test>
@@ -29,7 +29,7 @@
       <files>polymorphictest.js</files>
       <baseline>polymorphictest.baseline</baseline>
       <compile-flags>-oopjit- -trace:PerfHint -off:simplejit</compile-flags>
-      <tags>exclude_dynapogo,exclude_nonative</tags>
+      <tags>exclude_dynapogo,exclude_nonative,exclude_arm64</tags>
     </default>
   </test>
 </regress-exe>

+ 1 - 0
test/es6/rlexe.xml

@@ -114,6 +114,7 @@
     <default>
       <files>function.name.js</files>
       <compile-flags>-ES6Generators -ES6Classes -es6functionnamefull -force:deferparse -args summary -endargs</compile-flags>
+      <timeout>120</timeout> <!-- ARM64 take more than 60 -->
     </default>
   </test>
   <test>

+ 4 - 4
test/stackfunc/rlexe.xml

@@ -520,7 +520,7 @@
       <files>inlinee_box.js</files>
       <baseline>inlinee_box.baseline</baseline>
       <compile-flags>-testtrace:stackfunc -off:redeferral -off:simpleJit -on:stackfunc -force:inline</compile-flags>
-      <tags>exclude_fre,exclude_dynapogo,exclude_nonative,exclude_arm</tags>
+      <tags>exclude_fre,exclude_dynapogo,exclude_nonative,exclude_arm,exclude_arm64</tags>
     </default>
   </test>
   <test>
@@ -544,7 +544,7 @@
       <files>jitdefer.js</files>
       <baseline>jitdefer.deferparse.baseline</baseline>
       <compile-flags>-testtrace:stackfunc -off:redeferral -off:simpleJit -on:stackfunc -force:deferparse -off:cachescopeinfonames</compile-flags>
-      <tags>exclude_fre,exclude_dynapogo,exclude_arm,exclude_nonative</tags>
+      <tags>exclude_fre,exclude_dynapogo,exclude_arm,exclude_nonative,exclude_arm64</tags>
     </default>
   </test>
   <test>
@@ -553,7 +553,7 @@
       <baseline>box_bailout.deferparse.baseline</baseline>
       <!--Top Level function parsing on first call to script is turned off here, as this tests order of functions executed-->
       <compile-flags>-DeferTopLevelTillFirstCall- -testtrace:stackfunc -off:redeferral -off:simpleJit -on:stackfunc -force:deferparse -off:disablestackfuncondeferredescape</compile-flags>
-      <tags>exclude_fre,exclude_dynapogo,exclude_arm,exclude_nonative</tags>
+      <tags>exclude_fre,exclude_dynapogo,exclude_arm,exclude_nonative,exclude_arm64</tags>
     </default>
   </test>
   <test>
@@ -562,7 +562,7 @@
       <baseline>box_inline_bailout.deferparse.baseline</baseline>
       <!--Top Level function parsing on first call to script is turned off here, as this tests order of functions executed-->
       <compile-flags>-DeferTopLevelTillFirstCall- -testtrace:stackfunc -off:redeferral -off:simpleJit -on:stackfunc -force:deferparse -off:disablestackfuncondeferredescape</compile-flags>
-      <tags>exclude_fre,exclude_dynapogo,exclude_arm,exclude_nonative</tags>
+      <tags>exclude_fre,exclude_dynapogo,exclude_arm,exclude_nonative,exclude_arm64</tags>
     </default>
   </test>
   <test>

+ 2 - 1
test/typedarray/rlexe.xml

@@ -342,7 +342,8 @@ Below test fails with difference in space. Investigate the cause and re-enable t
   <test>
     <default>
       <files>reentry1.js</files>
-      <timeout>300</timeout>
+      <timeout>480</timeout> <!-- ARM64 takes ~8 min -->
+      <tags>xplatslow,Slow</tags>
     </default>
   </test>
   <test>