| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
Upgrade "array of interface" warning to an error. In addition to being a
terrible idea, this crashes codegen.
llvm-svn: 70178
|
|
|
|
|
|
|
|
| |
before r69391: typedef redefinition is an error by default, but if
*either* the old or new definition are from a system header, we silence
it.
llvm-svn: 70177
|
|
|
|
| |
llvm-svn: 70174
|
|
|
|
| |
llvm-svn: 70173
|
|
|
|
| |
llvm-svn: 70172
|
|
|
|
| |
llvm-svn: 70169
|
|
|
|
| |
llvm-svn: 70168
|
|
|
|
| |
llvm-svn: 70167
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
eventually get an option to turn this off, but it is nice for looking at
statistics. For example, the types block now prints:
Block ID #11 (TYPES_BLOCK_ID):
Num Instances: 1
Total Size: 895100b/111888B/27971.9W
% of file: 1.55801
Num SubBlocks: 0
Num Abbrevs: 0
Num Records: 14899
% Abbrev Recs: 0
Code Histogram:
5478 TYPE_FUNCTION_PROTO
2683 TYPE_TYPEDEF
2460 TYPE_POINTER
2047 TYPE_ENUM
1553 TYPE_RECORD
283 TYPE_CONSTANT_ARRAY
274 TYPE_OBJC_INTERFACE
76 TYPE_INCOMPLETE_ARRAY
10 TYPE_VECTOR
9 TYPE_OBJC_QUALIFIED_ID
5 TYPE_FUNCTION_NO_PROTO
5 TYPE_EXT_QUAL
3 TYPE_TYPEOF_EXPR
llvm-svn: 70166
|
|
|
|
|
|
| |
success now
llvm-svn: 70164
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- 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
|
|
|
|
| |
llvm-svn: 70162
|
|
|
|
| |
llvm-svn: 70160
|
|
|
|
| |
llvm-svn: 70158
|
|
|
|
|
|
|
|
|
| |
offsetof correctly in the presence of anonymous structs/unions.
This could definitely use some cleanup, but I don't really want to mess
with the anonymous union/struct code.
llvm-svn: 70156
|
|
|
|
|
|
| |
can't track down.
llvm-svn: 70155
|
|
|
|
| |
llvm-svn: 70145
|
|
|
|
| |
llvm-svn: 70144
|
|
|
|
| |
llvm-svn: 70143
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
input/output constraint mismatch
Before we emitted:
$ clang t.c -S -m64
llvm: error: Unsupported asm: input constraint with a matching output constraint of incompatible type!
Now we produce:
$ clang t.c -S -m64
t.c:5:40: error: unsupported inline asm: input with type 'unsigned long' matching output with type 'int'
asm volatile("foo " : "=a" (a) :"0" (b));
~~~ ~^~
llvm-svn: 70142
|
|
|
|
|
|
| |
flags.
llvm-svn: 70137
|
|
|
|
| |
llvm-svn: 70136
|
|
|
|
|
|
| |
instead of passing it around in addition to it.
llvm-svn: 70135
|
|
|
|
|
|
| |
This fixes all the -emit-pch problems discovered by utils/pch-test.pl.
llvm-svn: 70125
|
|
|
|
|
|
| |
validity of the conversion.
llvm-svn: 70121
|
|
|
|
|
|
| |
the enum along with some other data.
llvm-svn: 70114
|
|
|
|
| |
llvm-svn: 70113
|
|
|
|
| |
llvm-svn: 70112
|
|
|
|
|
|
| |
context, even if we're not going to initialize the __builin_* identifiers
llvm-svn: 70111
|
|
|
|
|
|
|
|
|
|
|
| |
necessary and iterate until all types and declarations have been
written. This reduces the Cocoa.h PCH file size by about 4% (since we
don't write types we don't need), and fixes problems where writing a
declaration generates a new type.
This doesn't seem to have any impact on performance either way.
llvm-svn: 70109
|
|
|
|
| |
llvm-svn: 70106
|
|
|
|
| |
llvm-svn: 70105
|
|
|
|
|
|
|
| |
cleanup attribute checking. The difference isn't normally visible, but it
can make a difference...
llvm-svn: 70104
|
|
|
|
|
|
|
|
|
| |
- This can be used to supply a default value for -std=; the idea is
that this can be used in conjunction with CCC_ADD_ARGS or
QA_OVERRIDE_GCC3_OPTIONS to change the default without having to
modify the build system.
llvm-svn: 70102
|
|
|
|
|
|
| |
should be joined or separate.
llvm-svn: 70101
|
|
|
|
|
|
| |
the missing bits of ObjCMessageExpr.
llvm-svn: 70100
|
|
|
|
|
|
| |
bugs and improved performance. Will be reverted after Mr. Speedy gets done with it
llvm-svn: 70099
|
|
|
|
|
|
| |
make sure to bitcast the argument so it has the same type as the first argument of the cleanup function. Fixes <rdar://problem/6827047>.
llvm-svn: 70098
|
|
|
|
|
|
|
|
|
|
|
|
| |
most of which are ignored. Instead, move the __COUNTER__ value out to
a PCH-level record (since it is handled eagerly) and move the header
file information into the SourceManager block (which is also,
currently, loaded eagerly).
This results in another 17% performance improvement in the
Cocoa-prefixed "Hello, World" with PCH.
llvm-svn: 70097
|
|
|
|
|
|
|
| |
I wasn't originally going to use this approach, but cases like
test/Sema/expr-comma.c make things difficult.
llvm-svn: 70096
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
| |
and passes the test in the test suite. It also fixes a crash when using recent versions of GNU libobjc and compiling modules that do not contain any constant strings but do contain a declaration of the constant string class and possible some other corner cases (thanks to Pete French for providing me with a test case for that one)."
Patch by David Chisnall!
llvm-svn: 70093
|
|
|
|
| |
llvm-svn: 70092
|
|
|
|
| |
llvm-svn: 70091
|
|
|
|
|
|
| |
any issues now that we have our own tgmath.h.
llvm-svn: 70090
|
|
|
|
|
|
|
| |
Overall, I'm not particularly happy with the current situation regarding
constant expression diagnostics, but I plan to improve it at some point.
llvm-svn: 70089
|
|
|
|
| |
llvm-svn: 70086
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
VerifyIntegerConstantExpression instead of isIntegerConstantExpr.
This makes it ext-warn but tolerate things that fold to a constant
but that are not valid i-c-e's.
There must be a bug in the i-c-e computation though, because it
doesn't catch this case even with pedantic.
This also switches the later code to use EvaluateAsInt which is
simpler and handles everything that evaluate does.
llvm-svn: 70081
|
|
|
|
|
|
|
|
|
|
| |
identifier's ID. In this case, we know where the identifier's entry is
located in the hash table (it starts right before the identifier
string itself), so skip the hash table lookup and read the entry
directly. The performance improvement here is, gain, hard to quantify,
but it's the right thing to do.
llvm-svn: 70078
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
"interesting" identifiers (e.g., those where the IdentifierInfo has
some useful information) from "uninteresting" identifiers (where the
IdentifierInfo is just a name). This makes the hash table smaller (so
searching in it should be faster) and, when loading "uninteresting"
identifiers, we skip the lookup in the hash table.
PCH file size is slightly smaller than before (since we don't emit the
contents of the uninteresting IdentifierInfo structures). The
Cocoa.h-prefixed "Hello, World" doesn't show any speedup, although
we're getting to the point where system noise is a bit issue.
llvm-svn: 70075
|