forked from OSchip/llvm-project
d4730ea555
This patch makes File::parse() multi-thread safe. If one thread is running File::parse(), other threads will block if they try to call the same method. File::parse() is idempotent, so you can safely call multiple times. With this change, we don't have to wait for all worker threads to finish in Driver::link(). Previously, Driver::link() calls TaskGroup::sync() to wait for all threads running File::parse(). This was not ideal because we couldn't start the resolver until we parse all files. This patch increase parallelism by making Driver::link() to not wait for worker threads. The resolver calls parse() to make sure that the file being read has been parsed, and then uses the file. In this approach, the resolver can run with the parser threads in parallel. http://reviews.llvm.org/D6994 llvm-svn: 226281 |
||
---|---|---|
.. | ||
CMakeLists.txt | ||
DefinedAtom.cpp | ||
Error.cpp | ||
File.cpp | ||
LinkingContext.cpp | ||
Makefile | ||
Resolver.cpp | ||
SymbolTable.cpp | ||
TODO.txt |