1
0
Fork 0
mirror of https://github.com/VSadov/Satori.git synced 2025-06-11 02:13:38 +09:00

Print Ibc messages only when --verbose is specified (#33595)

This commit is contained in:
David Wrighton 2020-03-15 13:02:00 -07:00 committed by GitHub
parent b56c4d97a1
commit 1bce90ddc4
Signed by: github
GPG key ID: 4AEE18F83AFDEB23

View file

@ -145,6 +145,7 @@ namespace ILCompiler.IBC
}
else
{
if (_logger.IsVerbose)
_logger.Writer.WriteLine($"Multiple copies of data for method '{associatedMethod}' found.");
}
}
@ -290,6 +291,7 @@ namespace ILCompiler.IBC
{
if (!blobs.TryGetValue(new IBCBlobKey(ibcToken, BlobType.ExternalTypeDef), out BlobEntry externalTypeDefBlob))
{
if (_logger.IsVerbose)
_logger.Writer.WriteLine($"Ibc TypeToken {ibcToken:x} unable to find external typedef");
return Cor.Macros.RidToToken(0, CorTokenType.mdtTypeDef); // Nil TypeDef token
}
@ -314,6 +316,7 @@ namespace ILCompiler.IBC
if (!blobs.TryGetValue(new IBCBlobKey(nameSpaceToken, BlobType.ExternalNamespaceDef), out BlobEntry namespaceEntryBlob))
{
if (_logger.IsVerbose)
_logger.Writer.WriteLine($"Ibc TypeToken {ibcToken:x} unable to find external namespace blob '{nameSpaceToken:x}");
return Cor.Macros.RidToToken(0, CorTokenType.mdtTypeDef); // Nil TypeDef token
}
@ -328,7 +331,7 @@ namespace ILCompiler.IBC
throw new Exception($"Ibc TypeToken {ibcToken:x} has NestedClass token which does not resolve to a type definition");
enclosingType = MetadataTokens.TypeDefinitionHandle((int)Cor.Macros.RidFromToken(enclosingTypeTokenValue));
if (enclosingType.IsNil)
if (enclosingType.IsNil && _logger.IsVerbose)
_logger.Writer.WriteLine($"Ibc TypeToken {ibcToken:x} has NestedClass token which resolves to a nil token");
}
@ -358,6 +361,7 @@ namespace ILCompiler.IBC
if (foundType == null)
{
if (_logger.IsVerbose)
_logger.Writer.WriteLine($"Ibc TypeToken {ibcToken:x} has type token which resolves to a nil token");
return Cor.Macros.RidToToken(0, CorTokenType.mdtTypeDef); // Nil TypeDef token
}
@ -377,6 +381,7 @@ namespace ILCompiler.IBC
}
}
if (_logger.IsVerbose)
_logger.Writer.WriteLine($"Ibc TypeToken {ibcToken:x} unable to find nested type '{typeName}' on type '{externalModule.MetadataReader.GetToken(enclosingType):x}'");
return Cor.Macros.RidToToken(0, CorTokenType.mdtTypeDef); // Nil TypeDef token
}
@ -425,6 +430,7 @@ namespace ILCompiler.IBC
}
}
if (_logger.IsVerbose)
_logger.Writer.WriteLine("Warning: Unable to find exact match for candidate external method");
return 0;
}
@ -675,11 +681,13 @@ namespace ILCompiler.IBC
var result = (MetadataType)ecmaModule.GetType(MetadataTokens.EntityHandle((int)token));
if ((typ == CorElementType.ELEMENT_TYPE_VALUETYPE) != result.IsValueType)
{
if (_logger.IsVerbose)
_logger.Writer.WriteLine("Mismatch between valuetype and reference type in while parsing generic instantiation");
return null;
}
return result;
default:
if (_logger.IsVerbose)
_logger.Writer.WriteLine("Unexpected token type parsing ELEMENT_TYPE_GENERICINST");
return null;
}
@ -696,6 +704,7 @@ namespace ILCompiler.IBC
if (Macros.IsSlotUsedInsteadOfToken(flags))
{
int slot = sig.ReadCompressedInteger();
if (_logger.IsVerbose)
_logger.Writer.WriteLine($"Warning: IBC Data for `{methodType}` with slot '{slot}' was ignored");
return null; // Unsupported case thought to be used only for array methods, which don't really matter for R2R codegen
}
@ -716,6 +725,7 @@ namespace ILCompiler.IBC
methodToken = LookupIbcMethodToken(methodMetadataType, ibcToken, ibcModule.Blobs);
if (Cor.Macros.RidFromToken(methodToken) == 0)
{
if (_logger.IsVerbose)
_logger.Writer.WriteLine($"Warning: External Method Token {ibcToken:x} on '{methodMetadataType}' could not be found.");
return null;
}
@ -746,12 +756,14 @@ namespace ILCompiler.IBC
if (Macros.IsUnboxingStub(flags))
{
if (_logger.IsVerbose)
_logger.Writer.WriteLine($"Warning: Skipping IBC data for unboxing stub {methodFound}");
return null;
}
if (Macros.IsInstantiatingStub(flags))
{
if (_logger.IsVerbose)
_logger.Writer.WriteLine($"Warning: Skipping IBC data for instantiating stub {methodFound}");
return null;
}