| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
llvm-svn: 63029
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
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: 63024
|
| |
|
|
| |
llvm-svn: 63020
|
| |
|
|
| |
llvm-svn: 63019
|
| |
|
|
| |
llvm-svn: 63018
|
| |
|
|
| |
llvm-svn: 63016
|
| |
|
|
| |
llvm-svn: 63015
|
| |
|
|
|
|
|
| |
- Unlike llvm-gcc, this doesn't yet treat -emit-llvm output as a
linker input.
llvm-svn: 63014
|
| |
|
|
|
|
| |
unique the Filenames in #line directives, assigning them UIDs.
llvm-svn: 63010
|
| |
|
|
|
|
| |
testing code.
llvm-svn: 63006
|
| |
|
|
|
|
|
|
|
|
| |
the content cache pointer. This saves 105876 bytes on
cocoa.h because it shrinks the SLocEntry union, which
we have a big array of. It would be nice to use
PointerIntPair here, but we can't because it is in a
union.
llvm-svn: 63004
|
| |
|
|
| |
llvm-svn: 63003
|
| |
|
|
|
|
| |
'ConstEq'. This avoids collisions in the GDM.
llvm-svn: 63002
|
| |
|
|
| |
llvm-svn: 63001
|
| |
|
|
| |
llvm-svn: 63000
|
| |
|
|
|
|
| |
we just discard them.
llvm-svn: 62999
|
| |
|
|
| |
llvm-svn: 62997
|
| |
|
|
| |
llvm-svn: 62996
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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: 62977
|
| |
|
|
| |
llvm-svn: 62975
|
| |
|
|
| |
llvm-svn: 62974
|
| |
|
|
| |
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
|
| |
|
|
| |
llvm-svn: 62946
|
| |
|
|
|
|
| |
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: 62937
|
| |
|
|
| |
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
|