Open MichalStrehovsky opened 8 years ago
Could you clarify what is implied by this action item Calli - TBD - likely not needed
?
Could you clarify what is implied by this action item Calli - TBD - likely not needed
It means that the codegen limitation for calli to generic methods that exists in c2.dll (.NET Native for UWP codegen backend) is not present in RyuJIT and there might not be any work to do.
@MichalStrehovsky Thanks.
Keeps track of the various tasks that the IL2IL transform phase performs on .NET Native for UWP and our progress towards having them in the CoreRT compiler.
Purposefully omits things related to interop, serialization, WCF, reflection, and lazy generics. These topics are more complex and interact with the IL2IL whole program analysis results.
Tasks done by pre-resolve transforms (oldstyle portable library thunking), should we need them, can stay out of the core compiler and we can use the CCI based implementation as-is.
We can open issues for these as needed, but for now there's little point.
Transforms
DumpNativeResources
- Preserves native resources in the entrypoint assembly (such as version and icon) across the compilation. This task will need to be externalized to dotnet-compile-native.ReducedCopy
- TBD: are there any tasks reduced copy does that are relevant?DeveloperExperienceModeOnlyCodeRemover
- Size on disk saving optimization that removes framework code in retail builds that is only useful for debugging.ExceptionMiniaturizer
- Size on disk saving optimization that minimizes exception messages in framework-thrown exceptions in retail builds.ValueType
- Injects Equals/GetHashCode overrides to value types that don't provide their own implementation.Attribute
- Injects Equals/GetHashCode overrides to custom attribute types that don't provide their own implementation.GetType
- Makes it possible for Type.GetType API to search in the calling assembly if the type name passed to it is not assembly qualified.ResourceExtractor
- TBDTypeofTypeHandle
- optimizesldtoken type
/Type.GetType
/Type.GetTypeHandle
sequence.StaticInitData
- Optimization to statically preinitialize types by interpreting the static constructor at compile time.StartupCodeInjector
- Orchestrates startup code path.InjectAppContextSwitches
- Injects code to set AppContext switches based on values passed in during buildImplementLibraryDynamicInvokeHelpers
- generates supporting code for Delegate.DynamicInvokeDelegate
- implements various thunks for delegate creation and invocationDelegateCtorCall
- rewrites calls to delegate constructorsSaveRVAStatics
- preserves static data for RVA mapped fields as preinitialized blobs.ScrubOpenCalls
- Deals with a kind of invalid IL. Marking as done because we can fix invalid IL as a whole since codegen is not a separate step and we can handle bad IL on a per method basis.ConvertCatchIntoFilter
- TBD - likely not needed - deals with codegen limitations around catch (T), where T is a generic argument.