Skip to content

Commit

Permalink
Revert "Dynamic generic dictionary expansion feature (dotnet#32270)" (d…
Browse files Browse the repository at this point in the history
…otnet#33310)

This reverts commit 7182559.

(cherry picked from commit dca3429)
  • Loading branch information
Fadi Hanna committed Mar 7, 2020
1 parent ac219a0 commit 548eb96
Show file tree
Hide file tree
Showing 27 changed files with 413 additions and 1,440 deletions.
191 changes: 0 additions & 191 deletions docs/design/coreclr/botr/shared-generics.md

This file was deleted.

4 changes: 2 additions & 2 deletions src/coreclr/src/debug/daccess/nidump.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -6957,7 +6957,7 @@ NativeImageDumper::DumpMethodTable( PTR_MethodTable mt, const char * name,
//if there is a layout, use it to compute
//the size, otherwise there is just the one
//entry.
DictionaryLayout::GetDictionarySizeFromLayout(mt->GetNumGenericArgs(), layout),
DictionaryLayout::GetFirstDictionaryBucketSize(mt->GetNumGenericArgs(), layout),
METHODTABLES );

DisplayStartArrayWithOffset( m_pEntries, NULL, Dictionary,
Expand Down Expand Up @@ -7983,7 +7983,7 @@ void NativeImageDumper::DumpMethodDesc( PTR_MethodDesc md, PTR_Module module )
{
PTR_DictionaryLayout layout(wrapped->IsSharedByGenericMethodInstantiations()
? dac_cast<TADDR>(wrapped->GetDictLayoutRaw()) : NULL );
dictSize = DictionaryLayout::GetDictionarySizeFromLayout(imd->GetNumGenericMethodArgs(),
dictSize = DictionaryLayout::GetFirstDictionaryBucketSize(imd->GetNumGenericMethodArgs(),
layout);
}
}
Expand Down
12 changes: 5 additions & 7 deletions src/coreclr/src/inc/corinfo.h
Original file line number Diff line number Diff line change
Expand Up @@ -217,11 +217,11 @@ TODO: Talk about initializing strutures before use
#endif
#endif

SELECTANY const GUID JITEEVersionIdentifier = { /* b2e40020-6125-41e4-a0fc-821127ec192a */
0xb2e40020,
0x6125,
0x41e4,
{0xa0, 0xfc, 0x82, 0x11, 0x27, 0xec, 0x19, 0x2a}
SELECTANY const GUID JITEEVersionIdentifier = { /* 9C412381-94A6-4F35-B2B6-60AFB2495B72 */
0x9c412381,
0x94a6,
0x4f35,
{ 0xb2, 0xb6, 0x60, 0xaf, 0xb2, 0x49, 0x5b, 0x72 }
};

//////////////////////////////////////////////////////////////////////////////////////////////////////////
Expand Down Expand Up @@ -1275,7 +1275,6 @@ struct CORINFO_LOOKUP_KIND
//
#define CORINFO_MAXINDIRECTIONS 4
#define CORINFO_USEHELPER ((WORD) 0xffff)
#define CORINFO_NO_SIZE_CHECK ((WORD) 0xffff)

struct CORINFO_RUNTIME_LOOKUP
{
Expand All @@ -1298,7 +1297,6 @@ struct CORINFO_RUNTIME_LOOKUP
// If set, test the lowest bit and dereference if set (see code:FixupPointer)
bool testForFixup;

WORD sizeOffset;
SIZE_T offsets[CORINFO_MAXINDIRECTIONS];

// If set, first offset is indirect.
Expand Down
12 changes: 7 additions & 5 deletions src/coreclr/src/jit/importer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2082,12 +2082,14 @@ GenTree* Compiler::impRuntimeLookupToTree(CORINFO_RESOLVED_TOKEN* pResolvedToken

if (pRuntimeLookup->offsets[i] != 0)
{
// The last indirection could be subject to a size check (dynamic dictionary expansion)
if (i == pRuntimeLookup->indirections - 1 && pRuntimeLookup->sizeOffset != CORINFO_NO_SIZE_CHECK)
// The last indirection could be subject to a size check (dynamic dictionary expansion feature)
#if 0 // Uncomment that block when you add sizeOffset field to pRuntimeLookup.
if (i == pRuntimeLookup->indirections - 1 && pRuntimeLookup->sizeOffset != 0xFFFF)
{
lastIndOfTree = impCloneExpr(slotPtrTree, &slotPtrTree, NO_CLASS_HANDLE, (unsigned)CHECK_SPILL_ALL,
nullptr DEBUGARG("impRuntimeLookup indirectOffset"));
}
#endif // 0

slotPtrTree =
gtNewOperNode(GT_ADD, TYP_I_IMPL, slotPtrTree, gtNewIconNode(pRuntimeLookup->offsets[i], TYP_I_IMPL));
Expand Down Expand Up @@ -2158,10 +2160,9 @@ GenTree* Compiler::impRuntimeLookupToTree(CORINFO_RESOLVED_TOKEN* pResolvedToken

GenTree* result = nullptr;

if (pRuntimeLookup->sizeOffset != CORINFO_NO_SIZE_CHECK)
#if 0 // Uncomment that block when you add sizeOffset field to pRuntimeLookup.
if (pRuntimeLookup->sizeOffset != 0xFFFF) // dynamic dictionary expansion feature
{
// Dynamic dictionary expansion support

assert((lastIndOfTree != nullptr) && (pRuntimeLookup->indirections > 0));

// sizeValue = dictionary[pRuntimeLookup->sizeOffset]
Expand All @@ -2185,6 +2186,7 @@ GenTree* Compiler::impRuntimeLookupToTree(CORINFO_RESOLVED_TOKEN* pResolvedToken
addExpRuntimeLookupCandidate(helperCall);
}
else
#endif // 0
{
GenTreeColon* colonNullCheck = new (this, GT_COLON) GenTreeColon(TYP_I_IMPL, handleForResult, helperCall);
result = gtNewQmarkNode(TYP_I_IMPL, nullCheck, colonNullCheck);
Expand Down
Loading

0 comments on commit 548eb96

Please sign in to comment.