llvm-project/lldb/source/Expression
Greg Clayton a66c4d96f0 <rdar://problem/13210494>
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
2013-02-13 22:56:14 +00:00
..
ASTDumper.cpp Pulled in a new version of LLVM/Clang to solve a variety 2011-11-15 02:11:17 +00:00
ASTResultSynthesizer.cpp Removed a possible use of unchecked NULL from 2012-12-18 00:50:17 +00:00
ASTStructExtractor.cpp Brought LLDB top-of-tree into sync with LLVM/Clang 2012-09-24 22:25:51 +00:00
ClangASTSource.cpp Made LLDB build with the latest Clang. This meant 2013-02-12 08:01:13 +00:00
ClangExpressionDeclMap.cpp Fixed the way the ClangExpressionDeclMap looks 2013-02-12 07:56:36 +00:00
ClangExpressionParser.cpp <rdar://problem/13069948> 2013-01-25 18:06:21 +00:00
ClangExpressionVariable.cpp http://llvm.org/bugs/show_bug.cgi?id=11618 2012-01-06 00:35:38 +00:00
ClangFunction.cpp <rdar://problem/13069948> 2013-01-25 18:06:21 +00:00
ClangPersistentVariables.cpp I have brought LLDB up-to-date with top of tree 2012-02-04 08:49:35 +00:00
ClangUserExpression.cpp Reworked the way Process::RunThreadPlan and the ThreadPlanCallFunction interoperate to fix problems where 2013-02-09 01:29:05 +00:00
ClangUtilityFunction.cpp <rdar://problem/13210494> 2013-02-13 22:56:14 +00:00
DWARFExpression.cpp <rdar://problem/13069948> 2013-01-25 18:06:21 +00:00
ExpressionSourceCode.cpp Made NULL, nil, and Nil use the appropriate 2013-02-13 21:53:01 +00:00
IRDynamicChecks.cpp Rewrite #includes for llvm/Foo.h to llvm/IR/Foo.h as appropriate to reflect the 2013-01-02 12:20:07 +00:00
IRForTarget.cpp Rewrite #includes for llvm/Foo.h to llvm/IR/Foo.h as appropriate to reflect the 2013-01-02 12:20:07 +00:00
IRInterpreter.cpp Address sanitizer found an issue which we filed a bug for: <rdar://problem/13168967> 2013-02-07 03:41:30 +00:00
Makefile Merged Eli Friedman's linux build changes where he added Makefile files that 2010-07-09 20:39:50 +00:00
ProcessDataAllocator.cpp While tracking down memory consumption issue a few things were needed: the 2011-08-10 02:10:13 +00:00
RecordingMemoryManager.cpp Resolve printf formatting warnings on Linux: 2012-11-29 21:49:15 +00:00