| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
scheme to be more useful.
The new scheme introduces a set of categories that should be more
readable, and also reflects what we want to consider as an extension
more accurately. Specifically, it makes the "what is a keyword"
determination accurately reflect whether the keyword is a GNU or
Microsoft extension.
I also introduced separate flags for keyword aliases; this is useful
because the classification of the aliases is mostly unrelated to the
classification of the original keyword.
This patch treats anything that's in the implementation
namespace (prefixed with "__", or "_X" where "X" is any upper-case
letter) as a keyword without marking it as an extension. This is
consistent with the standards in that an implementation is allowed to define
arbitrary extensions in the implementation namespace without violating
the standard. This gets rid of all the nasty "extension used" warnings
for stuff like __attribute__ in -pedantic mode. We still warn for
extensions outside of the the implementation namespace, like typeof.
If someone wants to implement -Wextensions or something like that, we
could add additional information to the keyword table.
This also removes processing for the unused "Boolean" language option;
such an extension isn't supported on any other C implementation, so I
don't see any point to adding it.
The changes to test/CodeGen/inline.c are required because previously, we
weren't actually disabling the "inline" keyword in -std=c89 mode.
I'll remove Boolean and NoExtensions from LangOptions in a follow-up
commit.
llvm-svn: 70281
|
| |
|
|
|
|
| |
ignore a PCH file.
llvm-svn: 70251
|
| |
|
|
|
|
|
|
| |
essentially the same thing we do with pretokenized headers. stat()
caching improves performance of the Cocoa-prefixed "Hello, World" by
45%.
llvm-svn: 70223
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
file. In particular, only eagerly load source location entries for
files and for the predefines buffer. Other buffers and
macro-instantiation source location entries are loaded lazily.
With the Cocoa-prefixed "Hello, World", we only load 815/26555 source
location entities. This halves the amount of user time we spend in
this "Hello, World" program with -fsyntax-only (down to .007s).
This optimization is part 1 of 2 for the source manager. This
eliminates most of the user time in loading a PCH file. We still spend
too much time initialize File structures (especially in the calls to
stat), so we need to either make the loading of source location
entries for files lazy or import the stat cache from the PTH
implementation.
llvm-svn: 70196
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Deal with the Receiver/ClassInfo shared storage in ObjCMessageExpr
- Implement PCH support for ImplicitParamDecl
- Fix the handling of the body of an ObjCMethodDecl
- Several cast -> cast_or_null fixes
- Make Selector::getIdentifierInfoForSlot work for 1-argument, NULL
selectors.
- Make Selector::getAsString() work with NULL selectors.
- Fix the names of VisitObjCAtCatchStmt and VisitObjCAtFinallyStmt
in the PCH reader and writer; these were never getting called.
At this point, all of the pch-test tests pass for C and Objective-C.
llvm-svn: 70163
|
| |
|
|
|
|
| |
flags.
llvm-svn: 70137
|
| |
|
|
| |
llvm-svn: 70136
|
| |
|
|
|
|
| |
instead of passing it around in addition to it.
llvm-svn: 70135
|
| |
|
|
|
|
| |
the enum along with some other data.
llvm-svn: 70114
|
| |
|
|
|
|
|
|
| |
PCH file. In the Cocoa-prefixed "Hello, World" benchmark, this takes
us from reading 503 identifiers down to 37 and from 470 macros down to
4. It also results in an 8% performance improvement.
llvm-svn: 70094
|
| |
|
|
|
|
| |
on armv* to be more compatible
llvm-svn: 69864
|
| |
|
|
|
|
|
| |
headers. Future approaches to (de-)serializing ASTs will be based on
the PCH infrastructure.
llvm-svn: 69828
|
| |
|
|
| |
llvm-svn: 69819
|
| |
|
|
| |
llvm-svn: 69668
|
| |
|
|
|
|
| |
null string / identifier.
llvm-svn: 69575
|
| |
|
|
|
|
|
| |
Warnings.cpp. Warnings.cpp now doesn't need to #include
tblgen produced output directly.
llvm-svn: 69559
|
| |
|
|
|
|
|
|
| |
Let me know if I messed up for some target. Note that for Windows, we
should be able to support it (MSVC supports "__declspec(thread)"), but
I'm pretty sure LLVM doesn't know how to generate the correct code.
llvm-svn: 69552
|
| |
|
|
|
|
| |
non-glibc ones.
llvm-svn: 69528
|
| |
|
|
|
|
|
|
|
|
| |
functions in glibc header files that use FP Stack inline asm which the
backend can't deal with (PR879).
This "fixes" PR3970 for linux. Other affected systems should do similar
things. Maybe this should just go to the general i386/x86-64 sections?
llvm-svn: 69527
|
| |
|
|
| |
llvm-svn: 69273
|
| |
|
|
| |
llvm-svn: 69272
|
| |
|
|
|
|
| |
this implements -fdiagnostics-show-option in clang-cc.
llvm-svn: 69271
|
| |
|
|
|
|
| |
it everywhere.
llvm-svn: 69269
|
| |
|
|
|
|
| |
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
|
| |
|
|
|
|
| |
"set to the default value".
llvm-svn: 69264
|
| |
|
|
|
|
| |
spectacularly when built for x86-64.
llvm-svn: 69197
|
| |
|
|
| |
llvm-svn: 69179
|
| |
|
|
|
|
|
| |
implicit from its parenting. Now that diag mapping is
explicit, eliminate the fatal and extwarn classes.
llvm-svn: 69177
|
| |
|
|
|
|
| |
be tied to the diag class. This requires an LLVM tree update.
llvm-svn: 69175
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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: 69055
|
| |
|
|
|
|
| |
properly cope with #line directives in PCH files.
llvm-svn: 68963
|
| |
|
|
|
|
| |
separate Internals header. No functionality change
llvm-svn: 68960
|
| |
|
|
|
|
|
|
|
|
| |
- Patch by Shantonu Sen (with a minor tweak to split out
getDarwin{OSX,IPhoneOS}Defines)!
- <rdar://problem/6776277> Need clang-cc/ccc-analyzer support for
-miphoneos-version-min
llvm-svn: 68815
|
| |
|
|
|
|
| |
-include, but that will be fixed soon.
llvm-svn: 68625
|
| |
|
|
| |
llvm-svn: 68589
|
| |
|
|
| |
llvm-svn: 68582
|
| |
|
|
|
|
| |
in C mode.
llvm-svn: 68520
|
| |
|
|
|
|
|
|
|
|
|
| |
and are even set in C mode. As such, move them to Targets.cpp.
__OBJC_GC__ is also darwin specific, but seems reasonable to always
define it when in objc-gc mode.
This fixes rdar://6761450
llvm-svn: 68494
|
| |
|
|
| |
llvm-svn: 68413
|
| |
|
|
|
|
| |
string literals.
llvm-svn: 68363
|
| |
|
|
| |
llvm-svn: 68354
|
| |
|
|
| |
llvm-svn: 68346
|
| |
|
|
|
|
|
|
|
|
| |
#ifdef'd out the 5 conversion routines that we don't currently need.
Still need a bit more work in GetAddrOfConstantCFString(). Added a FIXME to indicate this.
Expect to remove the FIXME today...
llvm-svn: 68208
|
| |
|
|
|
|
|
|
|
|
|
| |
- Notably, set section on cfstring literal string data (for now, this
is done everywhere because it matches what we were already doing
for the CFString data itself)
- <rdar://problem/6599098> [irgen] linker requires objc string data
to go into cstring
llvm-svn: 68160
|
| |
|
|
|
|
| |
by moving the general case to the generic x86-32 target.
llvm-svn: 68015
|
| |
|
|
|
|
| |
- Patch by Ed Schoeten!
llvm-svn: 67527
|
| |
|
|
|
|
|
| |
variant of DiagnosticBuilder that emits the template instantiation
backtrace when needed.
llvm-svn: 67413
|