Cuckoo metadata (#24498)
authorDavid Wrighton <davidwr@microsoft.com>
Mon, 20 May 2019 22:15:52 +0000 (15:15 -0700)
committerGitHub <noreply@github.com>
Mon, 20 May 2019 22:15:52 +0000 (15:15 -0700)
commitadecd858f558489d8f52c9187fca395ec669a715
treec2b597b90f4eeace4f5d898462b99f609531e1d7
parentf4ae8f0312890a7bc14c28764adb609820d86662
Cuckoo metadata (#24498)

* Basic infra for cuckoo filter of attributes
- Implement cuckoo filter lookup logic
- Implement new ready to run section
 - Add dumper to R2RDump
 - Parse section on load into data structure
 - Implement function to query filter
- Add concept of enum of well known attributes
  - So that attribute name hashes themselves may be cached
* Wrap all even vaguely perf critical uses of attribute by name parsing with use of R2R data
* Update emmintrin.h in the PAL header to contain the needed SSE2 intrinsics for the feature
- Disable the presence table for non Corelib cases. Current performance data does not warrant the size increase in other generated binaries
42 files changed:
src/inc/readytorun.h
src/md/enc/mdinternalrw.cpp
src/md/runtime/mdinternalro.cpp
src/pal/inc/rt/cpp/emmintrin.h
src/pal/inc/rt/cpp/xmmintrin.h
src/tools/r2rdump/NativeHashtable.cs
src/tools/r2rdump/R2RSection.cs
src/tools/r2rdump/README.md
src/tools/r2rdump/TextDumper.cs
src/vm/assembly.cpp
src/vm/assembly.hpp
src/vm/ceeload.cpp
src/vm/ceeload.h
src/vm/class.cpp
src/vm/comcallablewrapper.cpp
src/vm/comdelegate.cpp
src/vm/commtmemberinfomap.cpp
src/vm/comtoclrcall.cpp
src/vm/dllimport.cpp
src/vm/fieldmarshaler.cpp
src/vm/fieldmarshaler.h
src/vm/interoputil.cpp
src/vm/interoputil.h
src/vm/marshalnative.cpp
src/vm/marshalnative.h
src/vm/method.cpp
src/vm/method.hpp
src/vm/methodtable.h
src/vm/methodtable.inl
src/vm/methodtablebuilder.cpp
src/vm/methodtablebuilder.h
src/vm/mlinfo.cpp
src/vm/nativeformatreader.h
src/vm/readytoruninfo.cpp
src/vm/readytoruninfo.h
src/vm/siginfo.cpp
src/vm/staticallocationhelpers.inl
src/vm/typehashingalgorithms.h
src/vm/wellknownattributes.h [new file with mode: 0644]
src/zap/zapimage.cpp
src/zap/zapimage.h
src/zap/zapreadytorun.cpp