| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
| |
for *which* apfloat to use for a particular type.
llvm-svn: 42234
|
|
|
|
|
|
|
|
| |
use of
protocols referenced in @protocol declarations.
llvm-svn: 42191
|
|
|
|
|
|
| |
functionality is still preliminary.
llvm-svn: 42152
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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 ObjcMessageExpr AST node and associated constructors.
- Add SourceLocation's to ActOnKeywordMessage/ActOnUnaryMessage API.
- Instantiate message expressions...
- Replace alloca usage with SmallString.
Next step, installing a correct type, among other tweaks...
llvm-svn: 42116
|
|
|
|
| |
llvm-svn: 42104
|
|
|
|
|
|
| |
instead for @protocol method decls.
llvm-svn: 42070
|
|
|
|
| |
llvm-svn: 42060
|
|
|
|
|
|
|
|
| |
to serve as the entry block. An empty entry block (just as with an
empty exit block, which we already have) simplifies building analyses on top
of CFGs with very little extra overhead.
llvm-svn: 42031
|
|
|
|
| |
llvm-svn: 42025
|
|
|
|
|
|
|
|
|
|
| |
- 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: 42022
|
|
|
|
| |
llvm-svn: 42020
|
|
|
|
|
|
| |
Updated VC++ project files.
llvm-svn: 42015
|
|
|
|
| |
llvm-svn: 42010
|
|
|
|
|
|
| |
Patch by Justin Handville
llvm-svn: 42009
|
|
|
|
| |
llvm-svn: 42006
|
|
|
|
|
|
|
| |
- Allow classnames as the receiver (removing a FIXME from ParseObjCMessageExpression).
- Added a FIXME to ParseObjCMessageExpression()...we need to return a message expr AST node!
llvm-svn: 42001
|
|
|
|
| |
llvm-svn: 41996
|
|
|
|
| |
llvm-svn: 41995
|
|
|
|
| |
llvm-svn: 41989
|
|
|
|
| |
llvm-svn: 41961
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
Decl is now svelte:-)
llvm-svn: 41935
|
|
|
|
|
|
|
|
| |
Move Identifier/Loc instance variables (and associated getters/setters) down from Decl to ScopedDecl/FieldDecl.
Objc AST's can now inherit from Decl without getting instance variables and types that are C specific. For now, I am keeping NextDeclarator, since I believe it may be useful to ObjC. If not, it can be moved later.
llvm-svn: 41934
|
|
|
|
|
|
|
|
| |
cocoa.m due
to use of @property.
llvm-svn: 41880
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This method is used to determine if an expression contains implicit
control-flow, and thus appears in a distinct statement slot in the CFG.
For example:
(1) x = ... ? ... ? ...
logically becomes:
(1) ... ? ... : ... (a unique statement slot for the ternary ?)
(2) x = [E1] (where E1 is actually the ConditionalOperator*)
A client of the CFG, when walking the statement at (2), will encounter
E1. In this case, hasImplicitControlFlow(E1) == true, and the client
will know that the expression E1 is explicitly placed into its own statement
slot to capture the implicit control-flow it has.
llvm-svn: 41868
|
|
|
|
|
|
|
|
|
|
| |
where not reversing the order of their subexpression blocks.
Added feature where CallExprs are placed in their own statement slot in
a CFGBlock. Thus we have a designated "return site" within a CFGBlock when
reasoning about function calls.
llvm-svn: 41866
|
|
|
|
|
|
| |
warnings that some compilers diagnose
llvm-svn: 41847
|
|
|
|
|
|
| |
class object.
llvm-svn: 41801
|
|
|
|
| |
llvm-svn: 41796
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
Added CFG::getNumBlockIDs() to query the number of distinct block ids created.
llvm-svn: 41724
|
|
|
|
| |
llvm-svn: 41693
|
|
|
|
|
|
|
|
| |
- Added Expr::isConstantExpr().
- Added type checking for InitListExpr elements.
- Added diagnostic for trying to initialize a variable sized object.
llvm-svn: 41674
|
|
|
|
|
|
|
|
|
|
| |
Move DumpSourceRange() to DumpStmt().
Now -parse-ast-dump will display source range info for all stmts/exprs.
One day we should implement the source range protocol for Decls.
llvm-svn: 41670
|
|
|
|
| |
llvm-svn: 41666
|
|
|
|
|
|
| |
statement expressions.
llvm-svn: 41659
|
|
|
|
| |
llvm-svn: 41658
|
|
|
|
|
|
| |
expressions, and indirect gotos.
llvm-svn: 41657
|
|
|
|
|
|
| |
operators.
llvm-svn: 41654
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
be passed as an (optional) argument to StmtPrinter to customize
printing of AST nodes.
Used new PrinterHelper interface to enhance printing and visualization
of CFGs. The CFGs now illustrate the semantic connectives between
statements and terminators, wheras in the previous printing certain
expressions would (visible) be printed multiple times to reflect which
expressions used the results of other expressions.
The end result is that the CFG is easier to read for flow of
expression values (following principles similar to the LLVM IR).
llvm-svn: 41651
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Array/ConstantArray/VariableArray nodes, this
routine was causing more trouble than it was worth. Anders/Chris noticed that it could return an error code
without emiting a diagnostic (which results in an silent invalid decl, which should *never* happen). In addition,
this routine didn't work well for typedefs and field decls. Lastly, it didn't consider that initializers aren't
in place yet.
Added Type::getAsConstantArrayType(), Type::getAsVariableArrayType(), Type::getAsVariablyModifiedType(),
and Type::isVariablyModifiedType();
Modified Sema::ParseDeclarator() and Sema::ParseField() to use the new predicates. Also added a FIXME for
the initializer omission. Also added a missing test for "static" @ file scope.
llvm-svn: 41647
|
|
|
|
| |
llvm-svn: 41646
|
|
|
|
| |
llvm-svn: 41636
|
|
|
|
| |
llvm-svn: 41623
|
|
|
|
|
|
|
|
|
|
| |
introduced by moving "CaseStmt" pointers out of the list of statements
and into the explicit "label" associated with a CFGBlock. --This
line, and those below, will be ignored--
M AST/CFG.cpp
llvm-svn: 41622
|
|
|
|
| |
llvm-svn: 41621
|
|
|
|
|
|
| |
no statements (or just full of ';' statements).
llvm-svn: 41620
|
|
|
|
|
|
|
|
| |
blocks involving only ';' statements. We now correctly handle the following:
void empty_label() { l1: ; }
llvm-svn: 41619
|