| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
| |
search. This reduces 'dumb' lookups from 1225 to 359, speeding up parse
of carbon.h from 0.173 to 0.156s (10%).
llvm-svn: 39319
|
|
|
|
|
|
|
|
| |
"obviously braindead" linear searches. reduces the number of slow
type lookups from 10K to 883 on carbon.h, speeding up parsing from 3.5 to
1.26s.
llvm-svn: 39312
|
|
|
|
|
|
|
| |
a foldingset instead. This reduces the number of slow type lookups from
32K to 10K, which speeds up parsing of carbon.h from 11s to 3.5s.
llvm-svn: 39311
|
|
|
|
|
|
|
| |
This speeds up parsing carbon.h from 16.0s to 11.3s, reducing slow
lookups from 63K to 32K.
llvm-svn: 39308
|
|
|
|
| |
llvm-svn: 39307
|
|
|
|
|
|
|
|
| |
ASTContext::getTagDeclType by not having to do a linear search. With this,
parse time for carbon.h drops from 21.8s to 16.0s and # slow lookups drop from
83K to 63K.
llvm-svn: 39306
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
*** AST Context Stats:
30594 types total.
19 builtin types
3929 pointer types
308 array types
18883 function types with proto
8 function types with no proto
2988 typename (typedef) types
4459 tagged types
1476 struct types
80 union types
0 class types
2903 enum types
83298 slow type lookups
Next up, making type canonicalization not trivially silly.
llvm-svn: 39305
|
|
|
|
|
|
| |
converting a declspec with TST = struct/union. Pretty print as well.
llvm-svn: 39284
|
|
|
|
|
|
| |
byeliminating the 'next' pointer from the ctor, and add initial support forparsing struct/union tags.
llvm-svn: 39266
|
|
|
|
|
|
| |
instead of having a string.
llvm-svn: 39237
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This lets us pretty print stuff like this:
void foo() {
int X;
X = sizeof(void (*(*)())());
X = sizeof(int(*)(int, float, ...));
X = sizeof(void (*(int arga, void (*argb)(double Y)))(void* Z));
as:
X = sizeof(void (*(*)())())
X = sizeof(int (*)(int, float, ...))
X = sizeof(void (*(int, void (*)(double)))(void *))
Ah the wonders of 'modern' C syntax!
llvm-svn: 39232
|
|
|
|
|
|
|
|
|
|
| |
allows us to handle stuff like:
typedef int G;
..
X = sizeof(G);
llvm-svn: 39189
|
|
|
|
|
|
|
|
|
|
| |
This allows us to handle:
int (*A)[restrict static 4][6];
for example.
llvm-svn: 39176
|
|
|
|
| |
llvm-svn: 39175
|
|
|
|
|
|
|
| |
Teach getPointerType to (stupidly) memoize all created pointers.
Give types an enum so we can implement classof.
llvm-svn: 39174
|
|
|
|
|
|
|
|
|
|
| |
parse (and print) things like:
int* const* restrict* const volatile***
etc.
llvm-svn: 39173
|
|
|
|
| |
llvm-svn: 39166
|
|
|
|
| |
llvm-svn: 39164
|
|
llvm-svn: 39162
|