| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
| |
the produced pcm file for stable file creation across distributed build
systems.
llvm-svn: 245199
|
|
|
|
|
|
|
| |
blender uses statements expression in condition of the loop under control of the '#pragma omp parallel for'. This condition is used several times in different expressions required for codegen of the loop directive. If there are some variables defined in statement expression, it fires an assert during codegen because of redefinition of the same variables.
We have to rebuild several expression to be sure that all variables are unique.
llvm-svn: 245041
|
|
|
|
|
|
|
|
|
|
|
| |
file in the .pcm files. This allows a smaller set of files to be sent to a
remote build worker when building with explicit modules (for instance, module
map files need not be sent along with the corresponding precompiled modules).
This doesn't actually make the embedded files visible to header search, so
it's not useful as a packaging format for public header files.
llvm-svn: 245028
|
|
|
|
|
|
|
|
| |
via a module map found by -fmodule-map-file=, the home directory of the module
is the current working directory, even if that's a different directory on
reload.
llvm-svn: 244988
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
files: include the .pcm file itself in the .d output, rather than including its
own input files. Other forms of module file continue to be transparent for .d
output.
Arguably, the input files for the .pcm file are still inputs to the
compilation, but that's unnecessary for make-like build systems (where the
mtime of the .pcm file is sufficient) and harmful for smarter build systems
that know about module files and want to track only the local dependencies.
llvm-svn: 244923
|
|
|
|
|
|
| |
locations, attempt to fail more gracefully. (No test; this requires >= 4GB of preprocessed input...)
llvm-svn: 244822
|
|
|
|
|
|
|
|
| |
emit lexical contents for a declaration for another module. Track which module
those contents came from, and ensure that we only grab the lexical contents
from a single such instantiation.
llvm-svn: 244682
|
|
|
|
| |
llvm-svn: 244671
|
|
|
|
| |
llvm-svn: 244530
|
|
|
|
|
|
| |
-fmodule-file=.
llvm-svn: 244417
|
|
|
|
|
|
| |
particular, this avoids the need to re-parse module map files when using such a module.
llvm-svn: 244416
|
|
|
|
|
|
|
|
| |
arguments because the reloaded form might have become non-canonical across the
serialization/deserialization step (this particularly happens when the
canonical form of the type involves an expression).
llvm-svn: 244409
|
|
|
|
|
|
|
| |
This is committed on behalf of Kelvin Li
http://reviews.llvm.org/D11469?id=31227
llvm-svn: 244325
|
|
|
|
| |
llvm-svn: 244289
|
|
|
|
| |
llvm-svn: 244288
|
|
|
|
|
|
| |
DeclContext. These only ever come from the owning module file for the Decl.
llvm-svn: 244285
|
|
|
|
| |
llvm-svn: 244277
|
|
|
|
|
|
| |
made unnecessary by r244192.
llvm-svn: 244271
|
|
|
|
|
|
| |
OpenMP 4.1 allows to use variables with reference types in private clauses and, therefore, in init expressions of the cannonical loop forms.
llvm-svn: 244209
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
determine the primary context, rather than sometimes registering the lookup
table on the wrong context.
This exposed a couple of bugs:
* the odr violation check didn't deal properly with mergeable declarations
if the declaration retained by name lookup wasn't in the canonical
definition of the class
* the (broken) RewriteDecl mechanism would emit two name lookup tables for
the same DeclContext into the same module file (one as part of the
rewritten declaration and one as a visible update for the old declaration)
These are both fixed too.
llvm-svn: 244192
|
|
|
|
|
|
|
|
| |
useless return value. Switch to using it directly when completing the
redeclaration chain for an anonymous declaration, and reduce the set of
declarations that we load in the process to just those of the right kind.
llvm-svn: 244161
|
|
|
|
| |
llvm-svn: 244027
|
|
|
|
| |
llvm-svn: 244026
|
|
|
|
|
|
| |
the same anonymous union is defined across multiple modules.
llvm-svn: 243940
|
|
|
|
| |
llvm-svn: 243727
|
|
|
|
|
|
|
|
|
| |
-working-directory option is set, results in error.
The error was "module '<name>' was built in directory '<path>' but now resides in directory '<path>'
rdar://21330027
llvm-svn: 243718
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In llvm commit r243581, a reverse range adapter was added which allows
us to change code such as
for (auto I = Fields.rbegin(), E = Fields.rend(); I != E; ++I) {
in to
for (const FieldDecl *I : llvm::reverse(Fields))
This commit changes a few of the places in clang which are eligible to use
this new adapter.
llvm-svn: 243663
|
|
|
|
|
|
|
|
| |
OpenMP 4.1 introduces optional argument '(n)' for 'ordered' clause, where 'n' is a number of loops that immediately follow the directive.
'n' must be constant positive integer expressions and it must be less or equal than the number of the loops in the resulting loop nest.
Patch adds parsing and semantic analysis for this optional argument.
llvm-svn: 243635
|
|
|
|
| |
llvm-svn: 243614
|
|
|
|
|
|
| |
tables. We don't need to store the data length twice.
llvm-svn: 243612
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
chain and fix the cases where it fires.
* Handle the __va_list_tag as a predefined decl. Previously we failed to merge
sometimes it because it's not visible to name lookup. (In passing, remove
redundant __va_list_tag typedefs that we were creating for some ABIs. These
didn't affect the mangling or representation of the type.)
* For Decls derived from Redeclarable that are not in fact redeclarable
(implicit params, function params, ObjC type parameters), remove them from
the list of expected redeclarable decls.
llvm-svn: 243259
|
|
|
|
|
|
|
| |
Avoids the awkward passing of an opaque void *UserData argument. No
functional change intended.
llvm-svn: 243213
|
|
|
|
| |
llvm-svn: 242977
|
|
|
|
| |
llvm-svn: 242960
|
|
|
|
|
|
| |
C++ modules. Instead, serialize a list of interesting identifiers and mark those ones out of date on module import. Avoiding the identifier lookups here gives a 20-30% speedup in builds with large numbers of modules. No functionality change intended.
llvm-svn: 242868
|
|
|
|
|
|
|
|
|
|
|
| |
more modules are added: visit modules depth-first rather than breadth-first.
The visitation is still (approximately) oldest-to-newest, and still guarantees
that a module is visited before anything it imports, so modules that are
imported by others sometimes need to jump to a later position in the visitation
order when more modules are loaded, but independent module trees don't
interfere with each other any more.
llvm-svn: 242863
|
|
|
|
|
|
|
|
|
| |
the identifier table. This is redundant, since the TU-scope lookups are also
serialized as part of the TU DeclContext, and wasteful in a number of ways. We
still emit the decls for PCH / preamble builds, since for those we want
identical results, not merely semantically equivalent ones.
llvm-svn: 242855
|
|
|
|
|
|
|
| |
for OpenMP 4 target data directive parsing and sema.
This commit is on behalf of Kelvin Li.
llvm-svn: 242785
|
|
|
|
|
|
|
| |
to be interesting just because they are the name of a builtin. Reduces the size
of an empty module by over 80% (~100KB).
llvm-svn: 242650
|
|
|
|
|
|
|
| |
flag to change between serialization and deserialization, so it does not
require the identifier to be serialized.
llvm-svn: 242567
|
|
|
|
| |
llvm-svn: 242564
|
|
|
|
| |
llvm-svn: 242562
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- introduces a new cc1 option -fmodule-format=[raw,obj]
with 'raw' being the default
- supports arbitrary module container formats that libclang is agnostic to
- adds the format to the module hash to avoid collisions
- splits the old PCHContainerOperations into PCHContainerWriter and
a PCHContainerReader.
Thanks to Richard Smith for reviewing this patch!
llvm-svn: 242499
|
|
|
|
|
|
| |
computing redeclaration chains.
llvm-svn: 242253
|
|
|
|
|
|
| |
multiple module files.
llvm-svn: 242180
|
|
|
|
|
|
| |
module files.
llvm-svn: 242094
|
|
|
|
| |
llvm-svn: 242001
|
|
|
|
|
|
|
|
| |
before the first imported declaration.
We don't need to track all formerly-canonical declarations of an entity; it's sufficient to track those ones for which no other formerly-canonical declaration was imported into the same module. We call those ones "key declarations", and use them as our starting points for collecting redeclarations and performing namespace lookups.
llvm-svn: 241999
|
|
|
|
|
|
| |
empty namespace.
llvm-svn: 241732
|
|
|
|
|
|
| |
of the llvm targets from clang/CodeGen into ClangCheck.cpp and CIndex.cpp.
llvm-svn: 241653
|