| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
| |
llvm-svn: 44222
|
|
|
|
|
|
|
|
|
|
|
|
| |
in TagDecl*. This allows the deserializer to use ASTContext to create the
TagTypes. Deserialize TagTypes then rely on pointer-backpatching to resolve
the decls.
This may not be the interface that we want, but as the implementation of
TagTypes will potentially change significantly in the future, I'm leaving this
for now. An appropriate FIXME is in place.
llvm-svn: 44089
|
|
|
|
| |
llvm-svn: 44087
|
|
|
|
|
|
|
|
| |
Removed tons of dead code in ASTContext concerning how types use to be
serialized.
Removed serialization methods from QualType that are no longer used.
llvm-svn: 44070
|
|
|
|
|
|
| |
the new serialization API.
llvm-svn: 44035
|
|
|
|
|
|
| |
(Class and id), removing a bogus warning.
llvm-svn: 43809
|
|
|
|
|
|
|
|
|
|
|
| |
serialize Type objects in the order they are serialized in the Types
vector. We also now rely on the methods within ASTContext to unique
Type objects and handle the actual creation of Type objects (these are
now called by the deserialization code). This approach solves some
hairy issues with ownership of objects and allows us to naturally
handle recursive types.
llvm-svn: 43787
|
|
|
|
|
|
| |
for ASTContext is still rapidly evolving.
llvm-svn: 43774
|
|
|
|
|
|
|
|
|
| |
of type sets when emitting complex types and pointer types that are
also considered builtins. These types are automatically created in
the ctor of ASTContext, and thus should not be serialized (was
producing an error during deserialization).
llvm-svn: 43733
|
|
|
|
| |
llvm-svn: 43665
|
|
|
|
|
|
|
| |
Now, at AST level record info is maintained by ASTRecordLayout class.
Now, at code gen level record info is maintained by CGRecordLayout class.
llvm-svn: 43619
|
|
|
|
|
|
|
|
|
| |
ownership model of some type pointers. Added FIXMEs to serialization.
Added comments to ASTContext indicating which variables we are intentionally
*not* serializing.
llvm-svn: 43618
|
|
|
|
|
|
| |
method types.
llvm-svn: 43617
|
|
|
|
|
|
|
| |
each type. This ensures that the order in which the types are serialized
is clear and remains persistent.
llvm-svn: 43615
|
|
|
|
| |
llvm-svn: 43604
|
|
|
|
|
|
| |
(hypothetically) read in/write out most of the types. Bugs likely exist.
llvm-svn: 43584
|
|
|
|
|
|
| |
We now serialize ivar references inside of ASTContext.
llvm-svn: 43571
|
|
|
|
| |
llvm-svn: 43561
|
|
|
|
|
|
| |
Added skeleton code for serialization of ASTContext.
llvm-svn: 43558
|
|
|
|
| |
llvm-svn: 43540
|
|
|
|
| |
llvm-svn: 43512
|
|
|
|
| |
llvm-svn: 43504
|
|
|
|
|
|
|
| |
(VLAs with a specified size expresssion). This vector owns the
references to these type objects.
llvm-svn: 43502
|
|
|
|
| |
llvm-svn: 43485
|
|
|
|
|
|
| |
and inserted into a FoldingSet owned by ASTContext.
llvm-svn: 43482
|
|
|
|
| |
llvm-svn: 43481
|
|
|
|
| |
llvm-svn: 43445
|
|
|
|
| |
llvm-svn: 43443
|
|
|
|
| |
llvm-svn: 43439
|
|
|
|
| |
llvm-svn: 43075
|
|
|
|
| |
llvm-svn: 43038
|
|
|
|
|
|
|
|
|
|
| |
"NSConstantString *".
This makes the typecheck much happier. Without this change, the type checker would have to special case "struct __builtin_CFString *". This change does assume the interface for NSConstantString is declared in the translation unit.
I left ASTContext::getCFConstantStringType() around for now (with a comment that says it is currently unused).
llvm-svn: 43021
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
predicates are now instance methods (they were previously static class methods on Type).
This allowed me to fix the following hack from this weekend...
// FIXME: Devise a way to do this without using strcmp.
// Would like to say..."return getAsStructureType() == IdStructType;", but
// we don't have a pointer to ASTContext.
bool Type::isObjcIdType() const {
if (const RecordType *RT = getAsStructureType())
return !strcmp(RT->getDecl()->getName(), "objc_object");
return false;
}
...which is now...
bool isObjcIdType(QualType T) const {
return T->getAsStructureType() == IdStructType;
}
Side notes:
- I had to remove a convenience function from the TypesCompatibleExpr class.
int typesAreCompatible() const {return Type::typesAreCompatible(Type1,Type2);}
Which required a couple clients get a little more verbose...
- Result = TCE->typesAreCompatible();
+ Result = Ctx.typesAreCompatible(TCE->getArgType1(), TCE->getArgType2());
Overall, I think this change also makes sense for a couple reasons...
1) Since ASTContext vends types, it makes sense for the type compatibility API to be there.
2) This allows the type compatibility predeciates to refer to data not strictly present in the AST (which I have found problematic on several occasions).
llvm-svn: 43009
|
|
|
|
|
|
| |
Also noticed ASTContext::BuiltinVaListType wasn't being initialized to the null type (so I set it).
llvm-svn: 42983
|
|
|
|
| |
llvm-svn: 42858
|
|
|
|
|
|
| |
available to builtin functions.
llvm-svn: 42857
|
|
|
|
| |
llvm-svn: 42856
|
|
|
|
|
|
|
|
|
|
| |
This fixes a crasher in Sema::MatchTwoMethodDeclarations(), identified by selector-overload.m (just added).
Added Action::ActOnTranslationUnitScope() and renamed Action::PopScope to ActOnPopScope.
Added a Translation Unit Scope instance variable to Sema (will be very useful to ObjC-related actions, since ObjC declarations are always file-scoped).
llvm-svn: 42817
|
|
|
|
| |
llvm-svn: 42731
|
|
|
|
| |
llvm-svn: 42730
|
|
|
|
|
|
| |
Update clients and add to project file.
llvm-svn: 42494
|
|
|
|
|
|
| |
for *which* apfloat to use for a particular type.
llvm-svn: 42234
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
IdentifierTable.
Rationale:
We currently have a separate table to unique ObjC selectors. Since I don't need all the instance data in IdentifierInfo, I thought this would save space (and make more sense conceptually).
It turns out the cost of having duplicate entries for unary selectors (i.e. names without colons) outweighs the cost difference between the IdentifierInfo & SelectorInfo structures. Here is the data:
Two tables:
*** Selector/Identifier Stats:
# Selectors/Identifiers: 51635
Bytes allocated: 1999824
One table:
*** Identifier Table Stats:
# Identifiers: 49500
Bytes allocated: 1990316
llvm-svn: 42139
|
|
|
|
|
|
|
|
|
|
| |
- Add SelectorInfo/SelectorTable classes, modeled after IdentifierInfo/IdentifierTable.
- Add SelectorTable instance to ASTContext, created lazily through ASTContext::getSelectorInfo().
- Add SelectorInfo slot to ObjcMethodDecl.
- Add helper function to derive a SelectorInfo from ObjcKeywordInfo.
Misc: Got the Decl stats stuff up and running again...it was missing support for ObjC AST's.
llvm-svn: 42023
|
|
|
|
| |
llvm-svn: 42010
|
|
|
|
|
|
|
|
| |
didn't need NextDeclarator. As a result, I'm removing it.
Removing both slots (NextDeclarator/Next) end up reducing the size of fields/ivars by 40%.
llvm-svn: 41948
|
|
|
|
|
|
| |
warnings that some compilers diagnose
llvm-svn: 41847
|
|
|
|
|
|
|
|
|
|
|
| |
Objective-C classes
as types. That said, the AST nodes ObjcInterfaceDecl, ObjcInterfaceType, and ObjcClassDecl are *very*
preliminary.
The good news is we no longer need -parse-noop (aka MinimalActions) to parse cocoa.m.
llvm-svn: 41752
|
|
|
|
| |
llvm-svn: 41618
|
|
|
|
|
|
|
|
|
| |
couple FIXME's.
Refactored Array/VariableArray, moving SizeModifier/IndexTypeQuals back up to Array. These
attributes are not specific to VLA's. Most of them are specific to array parameter types.
llvm-svn: 41616
|