-
Notifications
You must be signed in to change notification settings - Fork 508
[CppCodeGen] Assert during generic virtual method call compilation #6147
Comments
Generic virtual methods are currently not implemented in CppCodegen. The implementation should follow what we do in RyuJIT's case (i.e. tracking it within the dependency analysis system using the GVMDependenciesNode). Besides that, we'll need to implement emission of several supporting data structures into the C++ code (such as GenericVirtualMethodsTableNode). Note that the existing support for generic virtual methods within the class library assumes shared generic code (i.e. code sharing between generic instantiations over reference types) - this is also currently not implemented in CppCodegen, but is a prerequisite for this. |
@MichalStrehovsky thank you! What the status of the CppCodegen is? Will it be used in the future or is it legacy and will be replaced by RyuJIT codegen? |
Jan's statement here still holds. CppCodegen is not legacy - it has a place, we want to keep it, and we do accept pull requests with fixes and new features. It's just not a priority for the scenarios we're targeting right now. |
I got it, thank you! |
@MichalStrehovsky should we use |
Yes - that way we can share the infrastructure that was built for this. It doesn't require reflection, but it does require emitting several data blobs from the compiler that are similar to the data blobs used by reflection (e.g. the |
The existing XmlDoc comment is an obvious copypaste from `ReflectionInvokeMapNode` and simply misleading. Noticed this when responding on #6147.
The existing XmlDoc comment is an obvious copypaste from `ReflectionInvokeMapNode` and simply misleading. Noticed this when responding on #6147.
Thank you! |
ilc fails to compile following sample with cpp codegen backend:
Assert occurs here:
Generic virtual methods should be tracked using another mechanism. Is it implemented for cpp codegen?
Thank you!
The text was updated successfully, but these errors were encountered: