0e2c34f92f00628d48968dfea096d36381f494cb |
|
23-Mar-2015 |
Stephen Hines <srhines@google.com> |
Update aosp/master clang for rebase to r230699. Change-Id: I6a546ab3d4ae37119eebb735e102cca4f80ab520
/external/clang/include/clang/Lex/TokenLexer.h
|
176edba5311f6eff0cad2631449885ddf4fbc9ea |
|
01-Dec-2014 |
Stephen Hines <srhines@google.com> |
Update aosp/master Clang for rebase to r222490. Change-Id: Ic557ac55e97fbf6ee08771c7b7c3594777b0aefd
/external/clang/include/clang/Lex/TokenLexer.h
|
6bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89 |
|
29-May-2014 |
Stephen Hines <srhines@google.com> |
Update Clang for 3.5 rebase (r209713). Change-Id: I8c9133b0f8f776dc915f270b60f94962e771bc83
/external/clang/include/clang/Lex/TokenLexer.h
|
651f13cea278ec967336033dd032faef0e9fc2ec |
|
24-Apr-2014 |
Stephen Hines <srhines@google.com> |
Updated to Clang 3.5a. Change-Id: I8127eb568f674c2e72635b639a3295381fe8af82
/external/clang/include/clang/Lex/TokenLexer.h
|
d2f9308220af22bfc1bcd3bc2cad118dbd8be013 |
|
19-Sep-2013 |
Eli Friedman <eli.friedman@gmail.com> |
Make Preprocessor::Lex non-recursive. Before this patch, Lex() would recurse whenever the current lexer changed (e.g. upon entry into a macro). This patch turns the recursion into a loop: the various lex routines now don't return a token when the current lexer changes, and at the top level Preprocessor::Lex() now loops until it finds a token. Normally, the recursion wouldn't end up being very deep, but the recursion depth can explode in edge cases like a bunch of consecutive macros which expand to nothing (like in the testcase test/Preprocessor/macro_expand_empty.c in this patch). <rdar://problem/14569770> git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190980 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Lex/TokenLexer.h
|
f56faa01936b9cf909623d7f06e3c2569ca4a78e |
|
15-Sep-2012 |
Dmitri Gribenko <gribozavr@gmail.com> |
Use LLVM_DELETED_FUNCTION in place of 'DO NOT IMPLEMENT' comments. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163983 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Lex/TokenLexer.h
|
1824d54df85a462ada812dadda18130f951d40f3 |
|
13-Sep-2012 |
Dmitri Gribenko <gribozavr@gmail.com> |
Fix Doxygen misuse: refer to parameter names in paragraphs correctly (\arg is not what most people want -- it starts a new paragraph). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163793 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Lex/TokenLexer.h
|
c30981a563a8947cb26b1e308d122fa2ef90fceb |
|
30-Aug-2012 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Make preprocessor act in a GCC-compatible fashion when a macro is redefined within its own argument list. The original definition is used for the immediate expansion, but the new definition is used for any subsequent occurences within the argument list or after the expansion. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162906 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Lex/TokenLexer.h
|
499ea5550d6e2fc5cfbd33b47f06d92ce25d7a13 |
|
23-Aug-2011 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Introduce SourceManager::isInSLocAddrSpace and use it in TokenLexer instead of isInFileID since it is a bit more efficient. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138379 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Lex/TokenLexer.h
|
d60a34a4e514ec0dfddd05ef2744be104e111f45 |
|
20-Aug-2011 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
For assigning SourceLocations to macro arg tokens, reserve a single SLocEntry for tokens that are lexed consecutively from the same FileID, instead of creating a SLocEntry for each token. e.g for assert(foo == bar); there will be a single SLocEntry for the "foo == bar" chunk and locations for the 'foo', '==', 'bar' tokens will point inside that chunk. For parsing SemaExpr.cpp, this reduced the number of SLocEntries by 25%. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138129 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Lex/TokenLexer.h
|
ec3b5389a5032433116ec2f2ee266b9666ad2eb4 |
|
20-Aug-2011 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Rename TokenLexer::getMacroExpansionLocation -> getExpansionLocForMacroDefLoc, no functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138128 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Lex/TokenLexer.h
|
d0f5e443ceed37e1a72015bd109db8e5fc6206cf |
|
14-Jul-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Switch the TokenLexer's terminology from various forms of 'instantiate' to 'expand' for macros. Only comments and uses local to the TokenLexer are updated. No functionality changed. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135137 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Lex/TokenLexer.h
|
b73377eeb3eff76be134203aebb6068244b177f3 |
|
07-Jul-2011 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Make the Preprocessor more memory efficient and improve macro instantiation diagnostics. When a macro instantiation occurs, reserve a SLocEntry chunk with length the full length of the macro definition source. Set the spelling location of this chunk to point to the start of the macro definition and any tokens that are lexed directly from the macro definition will get a location from this chunk with the appropriate offset. For any tokens that come from argument expansion, '##' paste operator, etc. have their instantiation location point at the appropriate place in the instantiated macro definition (the argument identifier and the '##' token respectively). This improves macro instantiation diagnostics: Before: t.c:5:9: error: invalid operands to binary expression ('struct S' and 'int') int y = M(/); ^~~~ t.c:5:11: note: instantiated from: int y = M(/); ^ After: t.c:5:9: error: invalid operands to binary expression ('struct S' and 'int') int y = M(/); ^~~~ t.c:3:20: note: instantiated from: \#define M(op) (foo op 3); ~~~ ^ ~ t.c:5:11: note: instantiated from: int y = M(/); ^ The memory savings for a candidate boost library that abuses the preprocessor are: - 32% less SLocEntries (37M -> 25M) - 30% reduction in PCH file size (900M -> 635M) - 50% reduction in memory usage for the SLocEntry table (1.6G -> 800M) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134587 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Lex/TokenLexer.h
|
5b3284a9275a27f5c4410e25eb8933be540601d6 |
|
30-Jun-2011 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Introduce a caching mechanism for macro expanded tokens. Previously macro expanded tokens were added to Preprocessor's bump allocator and never released, even after the TokenLexer that were lexing them was finished, thus they were wasting memory. A very "useful" boost library was causing clang to eat 1 GB just for the expanded macro tokens. Introduce a special cache that works like a stack; a TokenLexer can add the macro expanded tokens in the cache, and when it finishes, the tokens are removed from the end of the cache. Now consumed memory by expanded tokens for that library is ~ 1.5 MB. Part of rdar://9327049. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134105 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Lex/TokenLexer.h
|
b2eb53d9fd973a1a02e05e67a3307b3efd12eff2 |
|
22-Feb-2011 |
Peter Collingbourne <peter@pcc.me.uk> |
Make TokenLexer capable of storing preprocessor directive tokens git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126220 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Lex/TokenLexer.h
|
1eb4433ac451dc16f4133a88af2d002ac26c58ef |
|
09-Sep-2009 |
Mike Stump <mrs@apple.com> |
Remove tabs, and whitespace cleanups. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81346 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Lex/TokenLexer.h
|
32fca722dd974b8202d0fb9c71b6c185c0767da6 |
|
04-Mar-2009 |
Chris Lattner <sabre@nondot.org> |
make the token lexer allocate its temporary token buffers for preexpanded macro arguments from the preprocessor's bump pointer. This reduces # mallocs from 12444 to 11792. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66025 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Lex/TokenLexer.h
|
e7fb48466afcbf2c4ccdfa658824282fdc3c512c |
|
15-Feb-2009 |
Chris Lattner <sabre@nondot.org> |
track "just a little more" location information for macro instantiations. Now instead of just tracking the expansion history, also track the full range of the macro that got replaced. For object-like macros, this doesn't change anything. For _Pragma and function-like macros, this means we track the locations of the ')'. This is required for PR3579 because apparently GCC uses the line of the ')' of a function-like macro as the location to expand __LINE__ to. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64601 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Lex/TokenLexer.h
|
21ec0e4c5db85e45b59cafabca66d640e0ee2dcc |
|
28-Oct-2008 |
Chris Lattner <sabre@nondot.org> |
clarify comment, rename argument to avoid a subtle conflict with an ivar that wasn't a bug but was confusing. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58311 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Lex/TokenLexer.h
|
6b884508c3bc97cc9df9516adb92fbf88dd0a2e4 |
|
10-Mar-2008 |
Chris Lattner <sabre@nondot.org> |
implement simple support for arbitrary token lookahead. Change the objc @try parser to use it, fixing a FIXME. Update the objc-try-catch-1.m file to pass now that we get more reasonable errors. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48129 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Lex/TokenLexer.h
|
e5c8ffe09f8fec836b90f23c2a3b996bfc5b09c4 |
|
09-Mar-2008 |
Chris Lattner <sabre@nondot.org> |
split the MacroArgs class out of TokenLexer.cpp/h into MacroArgs.cpp/h git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48075 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Lex/TokenLexer.h
|
5d75de0f821023f4ed4815825bf3aea8a0b5e40d |
|
09-Mar-2008 |
Chris Lattner <sabre@nondot.org> |
Rename MacroExpander.cpp/h -> TokenLexer.cpp/h git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48072 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Lex/TokenLexer.h
|