forked from OSchip/llvm-project
a66c4d96f0
Parse objective C information as efficiently as possible and without taking dangerous runtime locks. Reworked the way objective C information is parsed by: 1 - don't read all class names up front, this is about 500K of data with names 2 - add a 32 bit hash map that maps a hash of a name to the Class pointer (isa) 3 - Improved name lookups by using the new hash map 4 - split up reading the objc runtime info into dynamic and shared cache since the shared cache only needs to be read once. 5 - When reading all isa values, also get the 32 bit hash instead of the name 6 - Read names lazily now that we don't need all names up front 7 - Allow the hash maps to not be there and still have this function correctly There is dead code in here with all of the various methods I tried. I want to check this in first to not lose any of it in case we need to revert to any of the extra code. I will promptly cleanup and commit again. llvm-svn: 175101 |
||
---|---|---|
.. | ||
ASTDumper.cpp | ||
ASTResultSynthesizer.cpp | ||
ASTStructExtractor.cpp | ||
ClangASTSource.cpp | ||
ClangExpressionDeclMap.cpp | ||
ClangExpressionParser.cpp | ||
ClangExpressionVariable.cpp | ||
ClangFunction.cpp | ||
ClangPersistentVariables.cpp | ||
ClangUserExpression.cpp | ||
ClangUtilityFunction.cpp | ||
DWARFExpression.cpp | ||
ExpressionSourceCode.cpp | ||
IRDynamicChecks.cpp | ||
IRForTarget.cpp | ||
IRInterpreter.cpp | ||
Makefile | ||
ProcessDataAllocator.cpp | ||
RecordingMemoryManager.cpp |