| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
llvm-svn: 63055
|
|
|
|
| |
llvm-svn: 63054
|
|
|
|
| |
llvm-svn: 63047
|
|
|
|
|
|
| |
will help improve gradual versioning of PTH files instead of relying that the PTH table is at a fixed offset.
llvm-svn: 63045
|
|
|
|
|
|
| |
meta-data.
llvm-svn: 63043
|
|
|
|
| |
llvm-svn: 63039
|
|
|
|
|
|
| |
a unified return).
llvm-svn: 63038
|
|
|
|
|
|
|
|
|
|
|
| |
instantiation history in an effort to speed up c99-intconst-1.c.
Now that multiple nested instantiations are allowed, we just
make them and don't pay the cost of lookups. With the other
changes that went in before this, reverting this is actually
a speedup for c99-intconst-1.c, speeding it up from 1.96s to 1.80s,
and preserves much better loc info.
llvm-svn: 63036
|
|
|
|
|
|
| |
history
llvm-svn: 63035
|
|
|
|
|
|
|
| |
source locations, allow creation of them. We can now say that
a token was instantiated here, then here, then here.
llvm-svn: 63034
|
|
|
|
|
|
| |
locations, and move the slow case out of line. No perf change on cocoa.h
llvm-svn: 63033
|
|
|
|
| |
llvm-svn: 63032
|
|
|
|
| |
llvm-svn: 63031
|
|
|
|
|
|
|
| |
which I think is rdar://6527005, and make getDecomposedSpellingLocSlowCase
handle nested spelling locations.
llvm-svn: 63030
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Token now has a class of kinds for "literals", which include
numeric constants, strings, etc. These tokens can optionally have
a pointer to the start of the token in the lexer buffer. This
makes it faster to get spelling and do other gymnastics, because we
don't have to go through source locations.
This change is performance neutral, but will make other changes
more feasible down the road.
llvm-svn: 63028
|
|
|
|
| |
llvm-svn: 63020
|
|
|
|
| |
llvm-svn: 63016
|
|
|
|
|
|
| |
unique the Filenames in #line directives, assigning them UIDs.
llvm-svn: 63010
|
|
|
|
|
|
| |
testing code.
llvm-svn: 63006
|
|
|
|
| |
llvm-svn: 63003
|
|
|
|
|
|
| |
'ConstEq'. This avoids collisions in the GDM.
llvm-svn: 63002
|
|
|
|
| |
llvm-svn: 63000
|
|
|
|
|
|
| |
we just discard them.
llvm-svn: 62999
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This reduces fsyntax-only time on c99-intconst-1.c from 2.43s down to
2.01s (20%), reducing the number of fileid lookups from 2529040 linear
and 64771121 binary to 5625902 linear and 4151182 binary.
This knocks getFileID down to only 4.6% of compile time on this testcase.
At this point, malloc/free is over 35% of compile time, primarily allocating
MacroArgs objects and their argument preexpansion vectors.
I don't feel like malloc avoiding right now, so I'm just going to call
this good.
llvm-svn: 62994
|
|
|
|
|
|
|
|
|
|
|
|
| |
of a macro. Since these tokens may themselves be from macro
expansions, we need to resolve down to the spelling loc when the
macro ends up being instantiated. Instead of resolving this for
each token expanded from the macro definition, just do it once when
the macro is defined. This speeds up clang on c99-intconst-1.c from
2.66s to 2.43s (9.5%), reducing the FileID lookups from 407244 linear and
114175649 binary to 2529040 linear and 64771121 binary.
llvm-svn: 62993
|
|
|
|
|
|
|
|
| |
per token lexed from it. This speeds up clang on c99-intconst-1.c from
the GCC testsuite from 3.64s to 2.66s (36%). This reduces the number of
binary search FileID lookups from 251570522 to 114175649 on this testcase.
llvm-svn: 62992
|
|
|
|
|
|
| |
CompoundLiteralExpr so that there aren't any null pointers in the AST.
llvm-svn: 62981
|
|
|
|
|
|
|
|
|
|
| |
ground work for implementing #line, and fixes the "out of macro ID's"
problem.
There is nothing particularly tricky about the code, other than the
very performance sensitive SourceManager::getFileID() method.
llvm-svn: 62978
|
|
|
|
| |
llvm-svn: 62971
|
|
|
|
|
|
| |
simply asserts.
llvm-svn: 62960
|
|
|
|
| |
llvm-svn: 62959
|
|
|
|
|
|
| |
everything that we aren't intending to implement in Expr::Evaluate.
llvm-svn: 62953
|
|
|
|
|
|
| |
cases it couldn't deal with before.
llvm-svn: 62952
|
|
|
|
|
|
|
|
| |
accurately states what the function is trying to do and how it is
different from Expr::isEvaluatable. Also get rid of a parameter that is both
unused and inaccurate.
llvm-svn: 62951
|
|
|
|
| |
llvm-svn: 62950
|
|
|
|
|
|
|
| |
__builtin___CFStringMakeConstantString. (We get into trouble in
GenerateStaticBlockVarDecl if the constant folder isn't accurate.)
llvm-svn: 62949
|
|
|
|
|
|
| |
constant.
llvm-svn: 62948
|
|
|
|
| |
llvm-svn: 62947
|
|
|
|
|
|
| |
for objc2's non-fragile abi.
llvm-svn: 62945
|
|
|
|
|
|
| |
pointed out by Doug.
llvm-svn: 62944
|
|
|
|
|
|
|
| |
think this has any significant effects at the moment, but it could
matter if we start constant-folding statement expressions like gcc does.
llvm-svn: 62943
|
|
|
|
|
|
| |
Note that there are still other issues in this area; see PR3396.
llvm-svn: 62942
|
|
|
|
|
|
| |
sizeof expressions.
llvm-svn: 62941
|
|
|
|
|
|
|
| |
not the type" semantics. This can definitely be improved, but is better than
what we had.
llvm-svn: 62939
|
|
|
|
| |
llvm-svn: 62936
|
|
|
|
|
|
| |
of class in objc2's nonfragile abi.
llvm-svn: 62935
|
|
|
|
|
|
| |
Add serialization support for ReferenceType.
llvm-svn: 62934
|
|
|
|
|
|
|
| |
alignment must always be a constant. Just let the constant folder
do it.
llvm-svn: 62933
|
|
|
|
| |
llvm-svn: 62932
|
|
|
|
| |
llvm-svn: 62930
|