Ted Kremenek
d40ab7b72a
Declare PerIDCache as IdentifierInfo** instead of void*. This is just cleaner. No performance change.
...
llvm-svn: 60843
2008-12-10 19:40:23 +00:00
Ted Kremenek
1aed3ddffa
Remove unneeded assertion.
...
llvm-svn: 60559
2008-12-04 22:47:11 +00:00
Ted Kremenek
baedbf47f6
Use 'free' to release PerIDCache since it was allocated using calloc().
...
llvm-svn: 60556
2008-12-04 22:09:37 +00:00
Ted Kremenek
73a4d28758
PTH:
...
Use an array instead of a DenseMap to cache persistent IDs -> IdentifierInfo*. This leads to a 4% speedup at -fsyntax-only using PTH.
llvm-svn: 60452
2008-12-03 01:16:39 +00:00
Ted Kremenek
33eeabda61
- Remove PTHManager.cpp. Move all of its functions to PTHLexer.cpp since some of the internal methods are used by PTHLexer (their implementations are intertwined.) This enables some important inlining opportunities at -O3.
...
- Don't construct an std::vector<Token> prior to feeding PTH tokens to the Preprocessor. Stream them off the PTH file directly.
llvm-svn: 60447
2008-12-03 00:38:03 +00:00
Ted Kremenek
1f50dc899f
PTHLexer now owns the Token vector.
...
llvm-svn: 60136
2008-11-27 00:38:24 +00:00
Ted Kremenek
6b3ced2b15
In PTHLexer::DiscardToEndOfLine() use Lex() instead of AdvanceToken(). This handles transitions in the preprocessor state.
...
llvm-svn: 59845
2008-11-21 23:28:56 +00:00
Ted Kremenek
53ab374d9f
PTHLexer:
...
- Move out logic for handling the end-of-file to LexEndOfFile (to match the Lexer) class. The logic now mirrors the Lexer class more, which allows us to pass most of the Preprocessor test cases.
llvm-svn: 59768
2008-11-21 00:58:35 +00:00
Ted Kremenek
111caaac58
PTHLexer:
...
- Move PTHLexer::GetToken() to be inside PTHLexer.cpp.
- When lexing in raw mode, null out identifiers.
llvm-svn: 59744
2008-11-20 19:49:00 +00:00
Ted Kremenek
94981e1f23
PTHLexer:
...
- Rename 'CurToken' and 'LastToken' to 'CurTokenIdx' and 'LastTokenIdx'
respectively.
- Add helper methods GetToken(), AdvanceToken(), AtLastToken() to abstract away
details of the token stream. This also allows us to easily replace their
implementation later.
llvm-svn: 59733
2008-11-20 16:32:22 +00:00
Ted Kremenek
c490c8877c
Rewrote PTHLexer::Lex by digging through the sources of Lexer again. Now we can do basic macro expansion using the PTHLexer.
...
llvm-svn: 59724
2008-11-20 07:58:05 +00:00
Ted Kremenek
b0262c1e64
- Default initialize ParsingPreprocessorDirective, ParsingFilename, and
...
LexingRawMode in the ctor of PreprocessorLexer.
- PTHLexer: Use "LastToken" instead of "NumToken"
llvm-svn: 59690
2008-11-20 01:29:45 +00:00
Ted Kremenek
61915f5d4a
Add (untested) implementation of PTHLexer::isNextPPTokenLParen() and PTHLexer::DiscardToEndOfLine().
...
llvm-svn: 59687
2008-11-20 01:16:50 +00:00
Ted Kremenek
11cfbb473e
Add stub for PTHLexer::isNextPPTokenLParen().
...
llvm-svn: 59670
2008-11-19 22:42:26 +00:00
Ted Kremenek
76c3441a4e
When using a PTHLexer, use DiscardToEndOfLine() instead of ReadToEndOfLine().
...
llvm-svn: 59668
2008-11-19 22:21:33 +00:00
Ted Kremenek
45245217bc
- Move static function IsNonPragmaNonMacroLexer into Preprocessor.h.
...
- Add variants of IsNonPragmaNonMacroLexer to accept an IncludeMacroStack entry
(simplifies some uses).
- Use IsNonPragmaNonMacroLexer in Preprocessor::LookupFile.
- Add 'FileID' to PreprocessorLexer, and have Preprocessor query this fileid
when looking up the FileEntry for a file
Performance testing of -Eonly on Cocoa.h shows no performance regression because
of this patch.
llvm-svn: 59666
2008-11-19 21:57:25 +00:00
Chris Lattner
1b03f76113
Trivial tidying
...
llvm-svn: 59424
2008-11-16 20:22:05 +00:00
Ted Kremenek
66312a3ff4
Move some diagnostic handling to PreprocessorLexer.
...
llvm-svn: 59191
2008-11-12 23:13:54 +00:00
Ted Kremenek
7cd62457c4
Add skeleton for PTH lexer.
...
llvm-svn: 59169
2008-11-12 21:37:15 +00:00