You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The first group of uncompiled methods from #44948 uses Vector<T>. During crossgen2 of GetIndexOfFirstNonAsciiByte_Default() method couple of exceptions is thrown and compilation is rejected.
@ -853,7 +853,7 @@ private uint getMethodAttribsInternal(MethodDesc method)
DefType owningDefType = method.OwningType as DefType;
if (owningDefType != null && VectorOfTFieldLayoutAlgorithm.IsVectorOfTType(owningDefType))
{
- throw new RequiresRuntimeJitException("This function is using SIMD intrinsics, their size is machine specific");+ VerifyMethodSignatureIsStable(method.Signature);
}
}
#endif
Second exception is thrown from CorInfoImpl.cs#L1556 due to indeterminate Vector<T> size on compiling time. The size depends on similarSpecifiedVector variable. To make similarSpecifiedVector became nonull I made experiment with changing matchingVectorType default value:
@@ -99,7 +99,7 @@ public ReadyToRunCompilerContext(TargetDetails details, SharedGenericsMode gener
// Only the Arm64 JIT respects the OS rules for vector type abi currently
_vectorFieldLayoutAlgorithm = new VectorFieldLayoutAlgorithm(_r2rFieldLayoutAlgorithm, (details.Architecture == TargetArchitecture.ARM64) ? true : bubbleIncludesCorelib);
- string matchingVectorType = "Unknown";+ string matchingVectorType = "Vector128`1";
if (details.MaximumSimdVectorLength == SimdVectorLength.Vector128Bit)
matchingVectorType = "Vector128`1";
else if (details.MaximumSimdVectorLength == SimdVectorLength.Vector256Bit)
That experiment was successful on armel, Calculator app starts after crossgen2 and GetIndexOfFirstNonAsciiByte_Default method was precompiled by crossgen2.
How machingVectorType or similarSpecifiedVector should be calculated by crossgen2 with _vectorAbiIsStable = true?
The first group of uncompiled methods from #44948 uses
Vector<T>
. During crossgen2 ofGetIndexOfFirstNonAsciiByte_Default()
method couple of exceptions is thrown and compilation is rejected.First exception is thrown from CorInfoImpl.cs#L838 and could be fixed by:
Second exception is thrown from CorInfoImpl.cs#L1556 due to indeterminate
Vector<T>
size on compiling time. The size depends onsimilarSpecifiedVector
variable. To makesimilarSpecifiedVector
became nonull I made experiment with changingmatchingVectorType
default value:That experiment was successful on armel, Calculator app starts after crossgen2 and
GetIndexOfFirstNonAsciiByte_Default
method was precompiled by crossgen2.How
machingVectorType
orsimilarSpecifiedVector
should be calculated by crossgen2 with_vectorAbiIsStable = true
?cc @davidwrighton @jkotas @alpencolt
The text was updated successfully, but these errors were encountered: