| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
llvm-svn: 77012
|
| |
|
|
| |
llvm-svn: 75705
|
| |
|
|
| |
llvm-svn: 75446
|
| |
|
|
|
|
|
|
|
|
|
|
| |
The idea is to segregate Objective-C "object" pointers from general C pointers (utilizing the recently added ObjCObjectPointerType). The fun starts in Sema::GetTypeForDeclarator(), where "SomeInterface *" is now represented by a single AST node (rather than a PointerType whose Pointee is an ObjCInterfaceType). Since a significant amount of code assumed ObjC object pointers where based on C pointers/structs, this patch is very tedious. It should also explain why it is hard to accomplish this in smaller, self-contained patches.
This patch does most of the "heavy lifting" related to moving from PointerType->ObjCObjectPointerType. It doesn't include all potential "cleanups". The good news is additional cleanups can be done later (some are noted in the code). This patch is so large that I didn't want to include any changes that are purely aesthetic.
By making the ObjC types truly built-in, they are much easier to work with (and require fewer "hacks"). For example, there is no need for ASTContext::isObjCIdStructType() or ASTContext::isObjCClassStructType()! We believe this change (and the follow-up cleanups) will pay dividends over time.
Given the amount of code change, I do expect some fallout from this change (though it does pass all of the clang tests). If you notice any problems, please let us know asap! Thanks.
llvm-svn: 75314
|
| |
|
|
|
|
|
|
| |
subclasses.
Timings showed no significant difference before and after the commit.
llvm-svn: 74504
|
| |
|
|
|
|
|
|
|
| |
The implementations of these methods can Use Decl::getASTContext() to get the ASTContext.
This commit touches a lot of files since call sites for these methods are everywhere.
I used pre-tokenized "carbon.h" and "cocoa.h" headers to do some timings, and there was no real time difference between before the commit and after it.
llvm-svn: 74501
|
| |
|
|
| |
llvm-svn: 73702
|
| |
|
|
| |
llvm-svn: 71937
|
| |
|
|
|
|
| |
Patch by David Chisnall.
llvm-svn: 71023
|
| |
|
|
|
|
| |
can't track down.
llvm-svn: 70155
|
| |
|
|
| |
llvm-svn: 70105
|
| |
|
|
| |
llvm-svn: 69650
|
| |
|
|
|
|
|
|
| |
when we need them -- which is exactly what some code was already
doing!
- No intended functionality change.
llvm-svn: 69648
|
| |
|
|
| |
llvm-svn: 69563
|
| |
|
|
| |
llvm-svn: 69471
|
| |
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
| |
- <rdar://problem/6800351> clang not producing correct large struct
return code for Blocks
llvm-svn: 69337
|
| |
|
|
|
|
| |
- No functionality change.
llvm-svn: 68987
|
| |
|
|
| |
llvm-svn: 68652
|
| |
|
|
|
|
|
|
| |
functionality change.
Changed GenerateConstantString() to take an ObjCStringLiteral (instead of a std::string). While this isn't strictly necessary, it seems cleaner and allows us to cache to "containsNonAscii" if necessary (to avoid checking in both Sema and CodeGen).
llvm-svn: 68114
|
| |
|
|
| |
llvm-svn: 67923
|
| |
|
|
|
|
|
|
| |
variables.
No intended functionality change.
llvm-svn: 67478
|
| |
|
|
| |
llvm-svn: 67406
|
| |
|
|
|
|
|
| |
when there is actually a property declaration
used in the dot-syntax.
llvm-svn: 67391
|
| |
|
|
|
|
| |
in a property dot-syntax notation.
llvm-svn: 67382
|
| |
|
|
|
|
| |
using property dot-syntax.
llvm-svn: 66556
|
| |
|
|
|
|
|
| |
with property type which does not match its ivar and
in -fobjc-gc-only mode!
llvm-svn: 65955
|
| |
|
|
|
|
|
| |
message to 'super' in a class method declared in
cateogy (darwin specific).
llvm-svn: 65709
|
| |
|
|
| |
llvm-svn: 65422
|
| |
|
|
|
|
| |
interfaces more consistently.
llvm-svn: 65138
|
| |
|
|
|
|
| |
instead.
llvm-svn: 64203
|
| |
|
|
|
|
|
| |
correctly. This should lay the ground work to throw the big switch
and start code gening break and continue in the presense of vlas.
llvm-svn: 64046
|
| |
|
|
|
|
|
| |
This will allow us to generate break and continue even if vlas are
involved without worry that we'll silently generate bad code.
llvm-svn: 64028
|
| |
|
|
| |
llvm-svn: 64014
|
| |
|
|
| |
llvm-svn: 63782
|
| |
|
|
| |
llvm-svn: 63697
|
| |
|
|
| |
llvm-svn: 63685
|
| |
|
|
| |
llvm-svn: 63683
|
| |
|
|
| |
llvm-svn: 63578
|
| |
|
|
|
|
| |
- Inefficient & leaks memory currently, will be cleaned up subsequently.
llvm-svn: 63567
|
| |
|
|
|
|
|
| |
- Lift CGFunctionInfo creation above ReturnTypeUsesSret and
EmitFunction{Epi,Pro}log.
llvm-svn: 63553
|
| |
|
|
|
|
|
|
|
|
|
| |
- Lift CGFunctionInfo creation up to callers of EmitCall.
- Move isVariadic bit out of CGFunctionInfo, take as argument to
GetFunctionType instead.
No functionality change.
llvm-svn: 63550
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
that every declaration lives inside a DeclContext.
Moved several things that don't have names but were ScopedDecls (and,
therefore, NamedDecls) to inherit from Decl rather than NamedDecl,
including ObjCImplementationDecl and LinkageSpecDecl. Now, we don't
store empty DeclarationNames for these things, nor do we try to insert
them into DeclContext's lookup structure.
The serialization tests are temporarily disabled. We'll re-enable them
once we've sorted out the remaining ownership/serialiazation issues
between DeclContexts and TranslationUnion, DeclGroups, etc.
llvm-svn: 62562
|
| |
|
|
| |
llvm-svn: 62295
|
| |
|
|
|
|
| |
and uninitialized use options.
llvm-svn: 62270
|
| |
|
|
| |
llvm-svn: 62031
|
| |
|
|
|
|
|
|
| |
not merging protocol properties into the classes which
use those protocols. With this patch, all my exceutable
test pass again.
llvm-svn: 62030
|
| |
|
|
|
|
| |
coming from a protocol.
llvm-svn: 62017
|
| |
|
|
|
|
| |
to track down, easy to fix. This is on going.
llvm-svn: 61817
|
| |
|
|
|
|
| |
code gen which did not belong there.
llvm-svn: 61203
|