| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
| |
excpression, if needed, and remove some ir-gen code
now unnencessary.
llvm-svn: 77490
|
| |
|
|
|
|
| |
and use it in several places.
llvm-svn: 77411
|
| |
|
|
| |
llvm-svn: 77368
|
| |
|
|
| |
llvm-svn: 77351
|
| |
|
|
| |
llvm-svn: 77332
|
| |
|
|
| |
llvm-svn: 77012
|
| |
|
|
|
|
| |
since it's meaning is completely different than for non-bit fields.
llvm-svn: 76882
|
| |
|
|
|
|
|
| |
__attribute__((address_space(1))) struct {int arr[ 3 ]; } *p1;
... = p1->arr[2]; // load from address space 1
llvm-svn: 76717
|
| |
|
|
|
|
|
|
|
| |
until Doug Gregor's Type smart pointer code lands (or more discussion occurs).
These methods just call the new Type::getAs<XXX> methods, so we still have
reduced implementation redundancy. Having explicit getAsXXXType() methods makes
it easier to set breakpoints in the debugger.
llvm-svn: 76193
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This method is intended to eventually replace the individual
Type::getAsXXXType<> methods.
The motivation behind this change is twofold:
1) Reduce redundant implementations of Type::getAsXXXType() methods. Most of
them are basically copy-and-paste.
2) By centralizing the implementation of the getAs<Type> logic we can more
smoothly move over to Doug Gregor's proposed canonical type smart pointer
scheme.
Along with this patch:
a) Removed 'Type::getAsPointerType()'; now clients use getAs<PointerType>.
b) Removed 'Type::getAsBlockPointerTypE()'; now clients use getAs<BlockPointerType>.
llvm-svn: 76098
|
| |
|
|
|
|
| |
Convert all clients to use the new predicate on Type.
llvm-svn: 76076
|
| |
|
|
| |
llvm-svn: 75869
|
| |
|
|
| |
llvm-svn: 75705
|
| |
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
| |
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: 74324
|
| |
|
|
| |
llvm-svn: 73702
|
| |
|
|
|
|
| |
always_inline from working.
llvm-svn: 73273
|
| |
|
|
|
|
|
| |
insert/extract; the relevant instructions are defined to take only an
i32.
llvm-svn: 73005
|
| |
|
|
|
|
| |
for the Next runtime.
llvm-svn: 72703
|
| |
|
|
|
|
| |
K&R-style definition.
llvm-svn: 72690
|
| |
|
|
| |
llvm-svn: 72655
|
| |
|
|
| |
llvm-svn: 72649
|
| |
|
|
| |
llvm-svn: 72648
|
| |
|
|
| |
llvm-svn: 72636
|
| |
|
|
|
|
|
| |
any body can spot codegen bugs with volatile, or knows of any in the
bug database, let me know.
llvm-svn: 72572
|
| |
|
|
| |
llvm-svn: 72491
|
| |
|
|
| |
llvm-svn: 72458
|
| |
|
|
|
|
| |
lvalues only for now)
llvm-svn: 72449
|
| |
|
|
|
|
| |
emit an expr.
llvm-svn: 72446
|
| |
|
|
| |
llvm-svn: 72439
|
| |
|
|
|
|
| |
is still ignored.
llvm-svn: 72344
|
| |
|
|
|
|
| |
- Otherwise we may incorrectly miss generation of some write barriers.
llvm-svn: 72313
|
| |
|
|
|
|
|
|
| |
It would be nice if someone could write an ObjC++ testcase for the case
of passing a property returning a struct to a function taking a const
reference.
llvm-svn: 72159
|
| |
|
|
| |
llvm-svn: 72157
|
| |
|
|
| |
llvm-svn: 72155
|
| |
|
|
| |
llvm-svn: 72153
|
| |
|
|
| |
llvm-svn: 72150
|
| |
|
|
|
|
| |
support anything but at least we don't crash ;)
llvm-svn: 72147
|
| |
|
|
| |
llvm-svn: 72133
|
| |
|
|
| |
llvm-svn: 72125
|
| |
|
|
| |
llvm-svn: 72118
|
| |
|
|
| |
llvm-svn: 71937
|
| |
|
|
| |
llvm-svn: 71595
|
| |
|
|
|
|
|
|
|
| |
to allow us to support generation of deferred ctors/dtors.
It looks like codegen isn't emitting a call to the dtor in
member-functions.cpp:test2, but when it does, its body should
get emitted.
llvm-svn: 71594
|
| |
|
|
|
|
|
| |
objc_assign_global API when assigning to global
objective-c object pointer.
llvm-svn: 70939
|
| |
|
|
| |
llvm-svn: 70785
|
| |
|
|
| |
llvm-svn: 70067
|
| |
|
|
|
|
|
|
|
|
|
| |
types.
- I broke this in the switch to representing interfaces with opaque
types.
- <rdar://problem/6822660> clang crashes on subscript of interface in
32-bit mode
llvm-svn: 70009
|
| |
|
|
| |
llvm-svn: 69949
|