#
740857fa |
| 21-Dec-2010 |
Michael J. Spencer <bigcheesegs@gmail.com> |
Replace all uses of PathV1::makeAbsolute with PathV2::fs::make_absolute.
llvm-svn: 122340
|
#
f28df4cd |
| 17-Dec-2010 |
Michael J. Spencer <bigcheesegs@gmail.com> |
Replace all uses of PathV1::isAbsolute with PathV2::is_{absolute,relative}.
llvm-svn: 122087
|
#
d9da7a1f |
| 16-Dec-2010 |
Michael J. Spencer <bigcheesegs@gmail.com> |
MemoryBuffer API update.
llvm-svn: 121956
|
#
f25faaaf |
| 09-Dec-2010 |
Michael J. Spencer <bigcheesegs@gmail.com> |
Use error_code instead of std::string* for MemoryBuffer.
llvm-svn: 121378
|
#
4fc8fb09 |
| 02-Dec-2010 |
Chris Lattner <sabre@nondot.org> |
attempt to fix a buildbot failure, apparently apache fails to build.
llvm-svn: 120688
|
#
8aaf4995 |
| 29-Nov-2010 |
Michael J. Spencer <bigcheesegs@gmail.com> |
Merge System into Support.
llvm-svn: 120297
|
#
5ea7d07d |
| 23-Nov-2010 |
Chris Lattner <sabre@nondot.org> |
The final result of all this refactoring: instead of doing stat immediately followed by an open for every source file we open, probe the file system with 'open' and then do an fstat when it succeeds.
The final result of all this refactoring: instead of doing stat immediately followed by an open for every source file we open, probe the file system with 'open' and then do an fstat when it succeeds. open+fstat is faster than stat+open because the kernel only has to perform the string->inode mapping once. Presumably it gets faster the deeper in your filesystem a lookup happens.
For -Eonly on cocoa.h, this reduces system time from 0.042s to 0.039s on my machine, a 7.7% speedup.
llvm-svn: 120066
show more ...
|
#
278038b4 |
| 23-Nov-2010 |
Chris Lattner <sabre@nondot.org> |
hopefully resolve the windows buildbot issue (retch)
llvm-svn: 120061
|
#
dd278430 |
| 23-Nov-2010 |
Chris Lattner <sabre@nondot.org> |
change the 'is directory' indicator to be a null-or-not pointer that is passed down through the APIs, and make FileSystemStatCache::get be the one that filters out directory lookups that hit files.
change the 'is directory' indicator to be a null-or-not pointer that is passed down through the APIs, and make FileSystemStatCache::get be the one that filters out directory lookups that hit files. This also paves the way to have stat queries be able to return opened files.
llvm-svn: 120060
show more ...
|
#
9624b695 |
| 23-Nov-2010 |
Chris Lattner <sabre@nondot.org> |
pull "is directory" handling into FileManager::getStatValue which simplifies clients and is important for future directions. Add a FD member to FileEntry which isn't used but will be shortly.
llvm-s
pull "is directory" handling into FileManager::getStatValue which simplifies clients and is important for future directions. Add a FD member to FileEntry which isn't used but will be shortly.
llvm-svn: 120056
show more ...
|
#
966b25b9 |
| 23-Nov-2010 |
Chris Lattner <sabre@nondot.org> |
tidy up code, add a comment about dir caching.
llvm-svn: 120048
|
#
5769c3df |
| 23-Nov-2010 |
Chris Lattner <sabre@nondot.org> |
factor the "cache miss" handling code out of FM into a static method in FileSystemStatCache.
llvm-svn: 120037
|
#
b3c81453 |
| 23-Nov-2010 |
Chris Lattner <sabre@nondot.org> |
r120013 dropped passing in the precomputed file size to MemoryBuffer::getFile, causing us to pick up a fstat for every file. Restore the optimization.
llvm-svn: 120032
|
#
226efd35 |
| 23-Nov-2010 |
Chris Lattner <sabre@nondot.org> |
rework the stat cache, pulling it out of FileManager.h into its own header and giving it some more structure. No functionality change.
llvm-svn: 120030
|
#
26b5c190 |
| 23-Nov-2010 |
Chris Lattner <sabre@nondot.org> |
tidy up. Split FileManager::getBufferForFile into two copies, since they are fundamentally different operations and the StringRef one should go away (it shouldn't be part of FileManager at least).
tidy up. Split FileManager::getBufferForFile into two copies, since they are fundamentally different operations and the StringRef one should go away (it shouldn't be part of FileManager at least).
Remove some dead arguments.
llvm-svn: 120013
show more ...
|
#
5159f616 |
| 23-Nov-2010 |
Chris Lattner <sabre@nondot.org> |
now the FileManager has a FileSystemOpts ivar, stop threading FileSystemOpts through a ton of apis, simplifying a lot of code. This also fixes a latent bug in ASTUnit where it would invoke methods on
now the FileManager has a FileSystemOpts ivar, stop threading FileSystemOpts through a ton of apis, simplifying a lot of code. This also fixes a latent bug in ASTUnit where it would invoke methods on FileManager without creating one in some code paths in cindextext.
llvm-svn: 120010
show more ...
|
#
3f5a9efb |
| 23-Nov-2010 |
Chris Lattner <sabre@nondot.org> |
give FileManager a 'FileSystemOptions' ivar, which will be used to simplify a bunch of code in it. It should ultimately get inlined into FileManager.
llvm-svn: 120007
|
#
4ac569b2 |
| 23-Nov-2010 |
Chris Lattner <sabre@nondot.org> |
Partially revert Doug's PCH validation patch (r98585).
This patch completely defeated the "passing in a prestat'd size to MemoryBuffer" optimization, leading to an extra fstat call for every buffer
Partially revert Doug's PCH validation patch (r98585).
This patch completely defeated the "passing in a prestat'd size to MemoryBuffer" optimization, leading to an extra fstat call for every buffer opened, in order to find out if the datestamp and size of the file on disk matches what is in the stat cache.
I fully admit that I don't completely understand what is going on here: why punish code when a stat cache isn't in use? what is the point of a stat cache if you have to turn around and stat stuff to validate it?
To resolve both these issues, just drop the modtime check and check the file size, which is the important thing anyway. This should also resolve PR6812, because presumably windows is stable when it comes to file sizes. If the modtime is actually important, we should get it and keep it on the first stat.
This eliminates 833 fstat syscalls when processing Cocoa.h, speeding up system time on -Eonly Cocoa.h from 0.041 to 0.038s.
llvm-svn: 120001
show more ...
|
#
6e640998 |
| 23-Nov-2010 |
Chris Lattner <sabre@nondot.org> |
stringref'ize API
llvm-svn: 119997
|
#
5df6f8f5 |
| 23-Nov-2010 |
Chris Lattner <sabre@nondot.org> |
avoid creating sys::Path instances when -fworking-directory isn't being used.
llvm-svn: 119995
|
#
3cf715d2 |
| 21-Nov-2010 |
Benjamin Kramer <benny.kra@googlemail.com> |
Filename.rfind("/\\") won't give us the position of the last directory seperator.
llvm-svn: 119939
|
#
0c0e8040 |
| 21-Nov-2010 |
Chris Lattner <sabre@nondot.org> |
change the various getFile routines to use StringRef as their implementation form.
llvm-svn: 119934
|
#
71731d6b |
| 03-Nov-2010 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Implement -working-directory.
When -working-directory is passed in command line, file paths are resolved relative to the specified directory. This helps both when using libclang (where we can't requ
Implement -working-directory.
When -working-directory is passed in command line, file paths are resolved relative to the specified directory. This helps both when using libclang (where we can't require the user to actually change the working directory) and to help reproduce test cases when the reproduction work comes along.
--FileSystemOptions is introduced which controls how file system operations are performed (currently it just contains the working directory value if set). --FileSystemOptions are passed around to various interfaces that perform file operations. --Opening & reading the content of files should be done only through FileManager. This is useful in general since file operations will be abstracted in the future for the reproduction mechanism.
FileSystemOptions is independent of FileManager so that we can have multiple translation units sharing the same FileManager but with different FileSystemOptions.
Addresses rdar://8583824.
llvm-svn: 118203
show more ...
|
Revision tags: llvmorg-2.8.0, llvmorg-2.8.0-rc3, llvmorg-2.8.0-rc2, llvmorg-2.8.0-rc1, llvmorg-2.8.0-rc0 |
|
#
84602249 |
| 23-Aug-2010 |
Chris Lattner <sabre@nondot.org> |
fix PR7953 - Windows filename are case insensitive:
#pragma once wasn't working on win32 if the header file was included using a different case. I tracked down the problem to the fact that clang::F
fix PR7953 - Windows filename are case insensitive:
#pragma once wasn't working on win32 if the header file was included using a different case. I tracked down the problem to the fact that clang::FileManager was caching files using case sensitive string (UniqueFiles) on Windows.
I changed FileManager to cache filename in lower case only. Doesn't affect UNIX because UNIX uses Inode to uniquely identify files.
unix doesn't use this codepath.
Analysis and patch by Francois Pichet!
llvm-svn: 111866
show more ...
|
#
81c000fb |
| 26-Jul-2010 |
Douglas Gregor <dgregor@apple.com> |
When remapping a virtual file, also make an entry for the file with its absolute path on disk. Also, introduce a fun test for the precompiled preamble, which almost works...
llvm-svn: 109470
|