| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
PCH files now contain complete information about builtins, including
any declarations that have been synthesized as part of building the
PCH file. When using a PCH file, we do not initialize builtins at all;
when needed, they'll be found in the PCH file.
This optimization translations into a 9% speedup for "Hello, World!"
with Carbon.h as a prefix header and roughly a 5% speedup for 403.gcc
with its prefix header. We're also reading less of the PCH file for
"Hello, World!":
*** PCH Statistics:
286/20693 types read (1.382110%)
1630/59230 declarations read (2.751984%)
764/44914 identifiers read (1.701029%)
1/32954 statements read (0.003035%)
5/6187 macros read (0.080815%)
down from
*** PCH Statistics:
411/20693 types read (1.986179%)
2553/59230 declarations read (4.310316%)
1093/44646 identifiers read (2.448148%)
1/32954 statements read (0.003035%)
21/6187 macros read (0.339421%)
llvm-svn: 69815
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
tentative definitions off to the ASTConsumer at the end of the
translation unit.
Eliminate CodeGen's internal tracking of tentative definitions, and
instead hook into ASTConsumer::CompleteTentativeDefinition. Also,
tweak the definition-deferal logic for C++, where there are no
tentative definitions.
Fixes <rdar://problem/6808352>, and will make it much easier for
precompiled headers to cope with tentative definitions in the future.
llvm-svn: 69681
|
|
|
|
|
|
|
|
| |
reading/writing all ObjC AST nodes that we will encounter in header files (still a few FIXME's).
Once selector support is in place, we should be able to take this for a spin (and add test cases).
llvm-svn: 69674
|
|
|
|
|
|
| |
libfrontend. Patch by Alexei Svitkine!
llvm-svn: 69664
|
|
|
|
|
|
| |
Temporarily accept both of them, I'll rip out the old one after awhile.
llvm-svn: 69662
|
|
|
|
|
|
|
|
| |
ObjCIvarDecl.
Next step: Add selector support to PCHWriter::AddDeclarationName().
llvm-svn: 69619
|
|
|
|
|
|
|
|
|
| |
also gets access to the Sema object performing semantic analysis. This
will be used by the PCH writer to serialize Sema state.
No functionality change.
llvm-svn: 69595
|
|
|
|
|
|
| |
raw_ostreams. Requires LLVM r69583.
llvm-svn: 69584
|
|
|
|
| |
llvm-svn: 69580
|
|
|
|
|
|
|
| |
Warnings.cpp. Warnings.cpp now doesn't need to #include
tblgen produced output directly.
llvm-svn: 69559
|
|
|
|
| |
llvm-svn: 69557
|
|
|
|
|
|
| |
rdar://6805442
llvm-svn: 69525
|
|
|
|
|
|
|
| |
through like other directives PTH doesn't care about. This
should fix rdar://6804029
llvm-svn: 69524
|
|
|
|
| |
llvm-svn: 69523
|
|
|
|
| |
llvm-svn: 69522
|
|
|
|
|
|
| |
by the command line option if present.
llvm-svn: 69521
|
|
|
|
|
|
| |
with assembler-with-cpp mode.
llvm-svn: 69520
|
|
|
|
|
|
|
|
| |
lazy PCH deserialization. Propagate that argument wherever it needs to
be. No functionality change, except that I've tightened up a few PCH
tests in preparation.
llvm-svn: 69406
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
causes the
compiler to dump random stuff from the build into the file. Right now this
amounts to dumping command line arguments and diagnostics to the file.
The idea is that you can set an envvar, do a world build of an OS, then grep
through all the logs for interesting things or something.
Daniel, please wire the driver up to do something with this.
llvm-svn: 69386
|
|
|
|
| |
llvm-svn: 69379
|
|
|
|
|
|
| |
casting in clang-cc.
llvm-svn: 69377
|
|
|
|
|
|
| |
yet.
llvm-svn: 69346
|
|
|
|
|
|
| |
passing down the right info yet.
llvm-svn: 69268
|
|
|
|
|
|
|
| |
out of Warnings.cpp. This simplifies warnings.cpp and makes it more
efficient.
llvm-svn: 69266
|
|
|
|
|
|
| |
they are supposed to be.
llvm-svn: 69265
|
|
|
|
|
|
| |
This depends on r69249 of llvm.
llvm-svn: 69250
|
|
|
|
| |
llvm-svn: 69239
|
|
|
|
| |
llvm-svn: 69236
|
|
|
|
| |
llvm-svn: 69221
|
|
|
|
|
|
|
| |
move the remaining default mapping exceptions from C++ code into
the .td files.
llvm-svn: 69183
|
|
|
|
| |
llvm-svn: 69166
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
with other diagnostic mapping. In the new scheme, -Wfoo or -Wno-foo or
-Werror=foo all override the -pedantic options, and __extension__
robustly silences all extension diagnostics in their scope.
An added bonus of this change is that MAP_DEFAULT goes away, meaning that
per-diagnostic mapping information can now be stored in 2 bits, doubling
the density of the Diagnostic::DiagMapping array. This also
substantially simplifies Diagnostic::getDiagnosticLevel.
OTOH, this temporarily introduces some "macro intensive" code in
Diagnostic.cpp. This will be addressed in a later patch.
llvm-svn: 69154
|
|
|
|
| |
llvm-svn: 69148
|
|
|
|
| |
llvm-svn: 69142
|
|
|
|
| |
llvm-svn: 69138
|
|
|
|
|
|
| |
-Wfoo=ignore syntax. GCC supports -Wno-foo, no need to invent our own stuff.
llvm-svn: 69136
|
|
|
|
|
|
|
|
|
|
| |
kind PCH handles that has an expression as an operand, so most of this
work is in the infrastructure to rebuild expression trees from the
serialized representation. We now store expressions in post-order
(e.g., Reverse Polish Notation), so that we can easily rebuild the
appropriate expression tree.
llvm-svn: 69101
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This allows it to accurately measure tokens, so that we get:
t.cpp:8:13: error: unknown type name 'X'
static foo::X P;
~~~~~^
instead of the woefully inferior:
t.cpp:8:13: error: unknown type name 'X'
static foo::X P;
~~~~ ^
Most of this is just plumbing to push the reference around.
llvm-svn: 69099
|
|
|
|
| |
llvm-svn: 69071
|
|
|
|
|
|
|
|
|
| |
wrap-up (e.g., turning tentative definitions into definitions). Also,
very that, when we actually use the PCH file, we get the ride code
generation for tentative definitions and definitions that show up in
the PCH file.
llvm-svn: 69043
|
|
|
|
| |
llvm-svn: 69027
|
|
|
|
|
|
| |
codegenerator bug.
llvm-svn: 68983
|
|
|
|
| |
llvm-svn: 68972
|
|
|
|
| |
llvm-svn: 68943
|
|
|
|
| |
llvm-svn: 68936
|
|
|
|
|
|
| |
macro definitions.
llvm-svn: 68884
|
|
|
|
|
|
| |
thanks to Tobias Stadler for pointing this out.
llvm-svn: 68868
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
buffer generated for the current translation unit. If they are
different, complain and then ignore the PCH file. This effectively
checks for all compilation options that somehow would affect
preprocessor state (-D, -U, -include, the dreaded -imacros, etc.).
When we do accept the PCH file, throw away the contents of the
predefines buffer rather than parsing them, since all of the results
of that parsing are already stored in the PCH file. This eliminates
the ugliness with the redefinition of __builtin_va_list, among other
things.
llvm-svn: 68838
|
|
|
|
|
|
|
| |
PCH. This works now, except for limitations not being able to do things
with identifiers. The basic example in the testcase works though.
llvm-svn: 68832
|
|
|
|
|
|
|
|
|
|
| |
Preprocessor.cpp
into clang-cc.cpp. This makes it so clang-cc constructs the *entire* predefines
buffer, not just half of it. A bonus of this is that we get to kill a copy
of DefineBuiltinMacro.
llvm-svn: 68830
|