History log of /llvm-project/clang/lib/Serialization/ModuleManager.cpp (Results 126 – 137 of 137)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# e97cd90a 28-Jan-2013 Douglas Gregor <dgregor@apple.com>

Eliminate memory allocation from most invocations of
ModuleManager::visit() by keeping a free list of the two data
structures used to store state (a preallocated stack and a visitation
number vector)

Eliminate memory allocation from most invocations of
ModuleManager::visit() by keeping a free list of the two data
structures used to store state (a preallocated stack and a visitation
number vector). Improves -fsyntax-only performance for my modules test
case by 2.8%. Modules has pulled ahead by almost 10% with the global
module index.

llvm-svn: 173692

show more ...


# 7211ac15 25-Jan-2013 Douglas Gregor <dgregor@apple.com>

Improve coordination between the module manager and the global module
index, optimizing the operation that skips lookup in modules where we
know the identifier will not be found. This makes the globa

Improve coordination between the module manager and the global module
index, optimizing the operation that skips lookup in modules where we
know the identifier will not be found. This makes the global module
index optimization actually useful, providing an 8.5% speedup over
modules without the global module index for -fsyntax-only.

llvm-svn: 173529

show more ...


# e41d7fea 25-Jan-2013 Douglas Gregor <dgregor@apple.com>

Optimize ModuleManager::visit() by precomputing the visitation order
and limiting ourselves to two memory allocations. 10% speedup in
-fsyntax-only time for modules.

With this change, we can actuall

Optimize ModuleManager::visit() by precomputing the visitation order
and limiting ourselves to two memory allocations. 10% speedup in
-fsyntax-only time for modules.

With this change, we can actually see some performance different from
the global module index, but it's still about 1%.

llvm-svn: 173512

show more ...


# e060e57b 25-Jan-2013 Douglas Gregor <dgregor@apple.com>

Implement the reader of the global module index and wire it into the
AST reader.

The global module index tracks all of the identifiers known to a set
of module files. Lookup of those identifiers loo

Implement the reader of the global module index and wire it into the
AST reader.

The global module index tracks all of the identifiers known to a set
of module files. Lookup of those identifiers looks first in the global
module index, which returns the set of module files in which that
identifier can be found. The AST reader only needs to look into those
module files and any module files not known to the global index (e.g.,
because they were (re)built after the global index), reducing the
number of on-disk hash tables to visit. For an example source I'm
looking at, we go from 237844 total identifier lookups into on-disk
hash tables down to 126817.

Unfortunately, this does not translate into a performance advantage.
At best, it's a wash once the global module index has been built, but
that's ignore the cost of building the global module index (which
is itself fairly large). Profiles show that the global module index
code is far less efficient than it should be; optimizing it might give
enough of an advantage to justify its continued inclusion.

llvm-svn: 173405

show more ...


# bdb259d2 21-Jan-2013 Douglas Gregor <dgregor@apple.com>

Give ModuleFiles an index, so that we can use indexed vectors rather
than DenseMaps and SmallPtrSets for module-visitation data. ~2.6%
speedup for modules.

llvm-svn: 173081


Revision tags: llvmorg-3.2.0, llvmorg-3.2.0-rc3
# 6fb03aea 30-Nov-2012 Douglas Gregor <dgregor@apple.com>

Actually keep track of the source locations at which particular module
files are loaded.

llvm-svn: 169027


Revision tags: llvmorg-3.2.0-rc2, llvmorg-3.2.0-rc1
# 188dbef2 07-Nov-2012 Douglas Gregor <dgregor@apple.com>

When loading a module fails because it is out of date, rebuild that
module in place. <rdar://problem/10138913>

llvm-svn: 167539


# aedf7144 03-Oct-2012 Argyrios Kyrtzidis <akyrtzi@gmail.com>

Set the file entry for a Module* that was created during deserialization
of a module file.

llvm-svn: 165086


Revision tags: llvmorg-3.1.0, llvmorg-3.1.0-rc3, llvmorg-3.1.0-rc2, llvmorg-3.1.0-rc1
# 4fc9f3e8 18-Jan-2012 Douglas Gregor <dgregor@apple.com>

Optimize unqualified/global name lookup in modules by introducing a
generational scheme for identifiers that avoids searching the hash
tables of a given module more than once for a given
identifier.

Optimize unqualified/global name lookup in modules by introducing a
generational scheme for identifiers that avoids searching the hash
tables of a given module more than once for a given
identifier. Previously, loading any new module invalidated all of the
previous lookup results for all identifiers, causing us to perform the
lookups repeatedly.

llvm-svn: 148412

show more ...


# de3ef502 30-Nov-2011 Douglas Gregor <dgregor@apple.com>

Promote ModuleMap::Module to a namespace-scope class in the Basic
library, since modules cut across all of the libraries. Rename
serialization::Module to serialization::ModuleFile to side-step the
an

Promote ModuleMap::Module to a namespace-scope class in the Basic
library, since modules cut across all of the libraries. Rename
serialization::Module to serialization::ModuleFile to side-step the
annoying naming conflict. Prune a bunch of ModuleMap.h includes that
are no longer needed (most files only needed the Module type).

llvm-svn: 145538

show more ...


Revision tags: llvmorg-3.0.0, llvmorg-3.0.0-rc4, llvmorg-3.0.0-rc3, llvmorg-3.0.0-rc2, llvmorg-3.0.0-rc1
# 9d7c1a2a 11-Oct-2011 Douglas Gregor <dgregor@apple.com>

Add support for viewing the module graph via Graphviz, for debugging
purposes.

llvm-svn: 141697


# d44252ec 25-Aug-2011 Douglas Gregor <dgregor@apple.com>

Factor the Module and ModuleManager classes out into separate headers
and .cpp files, since ASTReader.cpp was getting way too large. No
functionality change.

llvm-svn: 138582


123456