Douglas Gregor
02690ba643
Don't emit end-of-file diagnostics like "unterminated conditional" or
...
"unterminated string" when we're performing code completion.
llvm-svn: 110933
2010-08-12 17:04:55 +00:00
Ted Kremenek
2bd41d1e30
Add PTHLexer::LexEndOfFile() to emit diagnostics at end-of-file similar to those by Lexer::LexEndOfFile().
...
llvm-svn: 109486
2010-07-27 02:59:02 +00:00
Kovarththanan Rajaratnam
661a309933
Switch over IdentifierInfoLookup to StringRef
...
llvm-svn: 98337
2010-03-12 08:23:34 +00:00
Benjamin Kramer
337e3a5fea
Remove remaining VISIBILITY_HIDDEN from anonymous namespaces.
...
llvm-svn: 90044
2009-11-28 19:45:26 +00:00
Kovarththanan Rajaratnam
930de0aeaf
Cleanup llvm/Support/Compiler.h include in header files
...
llvm-svn: 90040
2009-11-28 16:08:10 +00:00
Daniel Dunbar
1a54e3fbb9
Switch PTHManager to using diagnostics for most errors.
...
Also, always give errors on a token-cache PTH failure.
llvm-svn: 86939
2009-11-12 02:53:48 +00:00
Daniel Dunbar
93097b3906
Add Diagnostic::Report method for reporting diagnostics without a location.
...
llvm-svn: 86760
2009-11-10 23:55:23 +00:00
Daniel Dunbar
2c422dc9ca
Move clients to use IdentifierInfo::getNameStart() instead of getName()
...
llvm-svn: 84436
2009-10-18 20:26:12 +00:00
Daniel Dunbar
f8502d50f7
Switch to llvm::HashString.
...
llvm-svn: 84375
2009-10-17 23:52:28 +00:00
Douglas Gregor
d2eb58abac
Add support for a chain of stat caches in the FileManager, rather than
...
only supporting a single stat cache. The immediate benefit of this
change is that we can now generate a PCH/AST file when including
another PCH file; in the future, the chain of stat caches will likely
be useful with multiple levels of PCH files.
llvm-svn: 84263
2009-10-16 18:18:30 +00:00
Mike Stump
11289f4280
Remove tabs, and whitespace cleanups.
...
llvm-svn: 81346
2009-09-09 15:08:12 +00:00
Benjamin Kramer
89b422c118
Replace cerr with errs().
...
llvm-svn: 79854
2009-08-23 12:08:50 +00:00
Douglas Gregor
52289d3343
Move the on-disk hash table code into its own header. No functionality change.
...
llvm-svn: 69580
2009-04-20 07:08:21 +00:00
Ted Kremenek
dc637a0be9
PTHManager::Create():
...
- Make the Diagnostic::Level for PTH errors to be specified by the caller
clang (driver):
- Set the PTHManager diagnostic level to "Diagnostic::Error" for -include-pth
(a hard error) and Diagnostic::Warning for -token-cache (we can still
proceed).
llvm-svn: 67462
2009-03-22 06:42:39 +00:00
Ted Kremenek
f97c47ca15
Add back warning about a PTH file not containing any identifiers, but don't make
...
it a hard error.
llvm-svn: 67424
2009-03-21 00:25:09 +00:00
Ted Kremenek
b12f24116d
Allow PTH files with no identifiers.
...
llvm-svn: 67423
2009-03-21 00:15:11 +00:00
Ted Kremenek
80e239abc0
PTHManager::Create() now creates a PTHManager even if the PTH file contains no
...
cached tokens. This is for use with -include-pth.
llvm-svn: 67385
2009-03-20 17:54:25 +00:00
Ted Kremenek
f9ccd5cdc2
Add PTHManager::getOriginalSourceFile(), a method that returns the name of the
...
original source file (if any) that was used to generate the PTH cache.
llvm-svn: 67343
2009-03-19 22:19:30 +00:00
Ted Kremenek
29b8697393
Move PTHStatCache within the anonymous namespace.
...
llvm-svn: 65348
2009-02-23 23:27:54 +00:00
Ted Kremenek
e76eb060c7
Fix another PTH warning that should not be a note.
...
llvm-svn: 65072
2009-02-19 22:14:49 +00:00
Ted Kremenek
36b005db45
Make PTH warnings actual warnings instead of 'notes'.
...
llvm-svn: 65071
2009-02-19 22:13:40 +00:00
Ted Kremenek
2fd18ec43a
PTH: Cache directory and negative 'stat' calls. This gives us a 1% performance improvement on Cocoa.h (fsyntax-only+PTH).
...
llvm-svn: 64490
2009-02-13 22:07:44 +00:00
Ted Kremenek
29942a349c
Add some boilerplate to the PTH file to prepare for the caching of stats for directories (and negative stats too).
...
llvm-svn: 64477
2009-02-13 19:13:46 +00:00
Eli Friedman
159a7cbc36
Fix gcc warning: gcc correctly notes that const-qualifying the return
...
type doesn't do anything.
llvm-svn: 64424
2009-02-13 01:02:29 +00:00
Daniel Dunbar
ad027c7781
Fix assertion when input is an empty string.
...
llvm-svn: 64397
2009-02-12 19:31:53 +00:00
Ted Kremenek
b4c85ccaaa
Re-enable PTH stat caching. All tests pass now.
...
llvm-svn: 64356
2009-02-12 03:45:39 +00:00
Ted Kremenek
c6a2a37222
Fix bad reading of bytes in ReadUnalignedLE64() (copy-paste error).
...
llvm-svn: 64355
2009-02-12 03:39:55 +00:00
Ted Kremenek
3280145da4
Temporarily disable PTH stat caching as it appears to be failing on some machines.
...
llvm-svn: 64354
2009-02-12 03:36:54 +00:00
Ted Kremenek
a5c2c27ebd
PTH: Cache stat information for files in the PTH file. Hook up FileManager
...
to use this stat information in the PTH file using a 'StatSysCallCache' object.
Performance impact (Cocoa.h, PTH):
- number of stat calls reduces from 1230 to 425
- fsyntax-only: time improves by 4.2%
We can reduce the number of stat calls to almost zero by caching negative stat
calls and directory stat calls in the PTH file as well.
llvm-svn: 64353
2009-02-12 03:26:59 +00:00
Ted Kremenek
4c1d41f2b1
PTH: Have meta data be at the beginning of the PTH file, not the end.
...
llvm-svn: 64338
2009-02-11 23:34:32 +00:00
Ted Kremenek
e5554deb45
PTH: Replace string identifier to persistent ID lookup with a hashtable. This is
...
actually *slightly* slower than the binary search. Since this is algorithmically
better, further performance tuning should be able to make this faster.
llvm-svn: 64326
2009-02-11 21:29:16 +00:00
Ted Kremenek
8527e3a727
PTH: Don't emit the PTH offset of the IdentifierInfo string data as that data is
...
referenced by other tables.
llvm-svn: 64304
2009-02-11 16:06:55 +00:00
Ted Kremenek
86423a9993
PTH: Replace ad hoc 'file name' -> 'PTH data' lookup table in the PTH file with an on-disk chained hash table. This data structure is implemented using templates, and will be used to replace similar data structures. This change leads to no visibile performance impact on Cocoa.h, but now we only pay a price for the table on order with the number of files accessed and not the number in the PTH file.
...
llvm-svn: 64245
2009-02-10 22:16:22 +00:00
Ted Kremenek
62224c1d7f
Add more PTH diagnostics for invalid PTH files, etc.
...
llvm-svn: 63232
2009-01-28 21:02:43 +00:00
Ted Kremenek
3b0589e4b4
Enhance PTHManager::Create() to take an optional Diagnostic* argument that can be used to report issues such as a missing PTH file.
...
llvm-svn: 63231
2009-01-28 20:49:33 +00:00
Ted Kremenek
8d178f4357
PTH: Use Token::setLiteralData() to directly store a pointer to cached spelling data in the PTH file. This removes a ton of code for looking up spellings using sourcelocations in the PTH file. This simplifies both PTH-generation and reading.
...
Performance impact for -fsyntax-only on Cocoa.h (with Cocoa.h in the PTH file):
- PTH generation time improves by 5%
- PTH reading improves by 0.3%.
llvm-svn: 63072
2009-01-27 00:01:05 +00:00
Ted Kremenek
327d00cd45
Silence warning.
...
llvm-svn: 63054
2009-01-26 22:16:12 +00:00
Ted Kremenek
978b5becea
Add version number checking to PTH files.
...
llvm-svn: 63047
2009-01-26 21:50:21 +00:00
Ted Kremenek
eb8c8fbd63
Embed the offset of the PTH table inside the prologue of the PTH file. This will help improve gradual versioning of PTH files instead of relying that the PTH table is at a fixed offset.
...
llvm-svn: 63045
2009-01-26 21:43:14 +00:00
Chris Lattner
4fa23625ab
Check in the long promised SourceLocation rewrite. This lays the
...
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
2009-01-26 00:43:02 +00:00
Chris Lattner
1f6c7fe6a8
This is a follow-up to r62675:
...
Refactor how the preprocessor changes a token from being an tok::identifier to a
keyword (e.g. tok::kw_for). Instead of doing this in HandleIdentifier, hoist this
common case out into the caller, so that every keyword doesn't have to go through
HandleIdentifier. This drops time in HandleIdentifier from 1.25ms to .62ms, and
speeds up clang -Eonly with PTH by about 1%.
llvm-svn: 62855
2009-01-23 18:35:48 +00:00
Chris Lattner
f8ccb4f9e3
Update comment.
...
llvm-svn: 62819
2009-01-23 00:13:28 +00:00
Chris Lattner
34eab390b9
remove my gross #ifdef's, using portable abstractions now that the 32-bit
...
load is always aligned.
I verified that the bswap doesn't occur in the assembly code on x86.
llvm-svn: 62815
2009-01-22 23:50:07 +00:00
Chris Lattner
fec5470f03
remove Read8/Read24, which are dead. Rename Read16/Read32 to be more
...
descriptive.
llvm-svn: 62775
2009-01-22 19:48:26 +00:00
Ted Kremenek
ae54f2f590
Fix <rdar://problem/6512717> by correctly reading the right offset in the token data in PTHLexer::getSourceLocation().
...
llvm-svn: 62725
2009-01-21 22:41:38 +00:00
Chris Lattner
3029b35faa
merge two checks for identifiers in the pth loop into one.
...
llvm-svn: 62677
2009-01-21 07:50:06 +00:00
Chris Lattner
ad89ec013f
Add a bit to IdentifierInfo that acts as a simple predicate which
...
tells us whether Preprocessor::HandleIdentifier needs to be called.
Because this method is only rarely needed, this saves a call and a
bunch of random checks. This drops the time in HandleIdentifier
from 3.52ms to .98ms on cocoa.h on my machine.
llvm-svn: 62675
2009-01-21 07:43:11 +00:00
Ted Kremenek
8d6c828728
Don't crash on empty PTH files. This fixes <rdar://problem/6512714>.
...
llvm-svn: 62673
2009-01-21 07:34:28 +00:00
Chris Lattner
c950296006
really we only need on Read24!
...
llvm-svn: 62672
2009-01-21 07:28:57 +00:00
Chris Lattner
47def9787e
revert my previous patch, it assumed endianness.
...
llvm-svn: 62671
2009-01-21 07:21:56 +00:00