LLVM: llvm::vfs Namespace Reference (original) (raw)

Classes
class directory_entry
A member of a directory, yielded by a directory_iterator. More...
class directory_iterator
An input iterator over the entries in a virtual path, similar to llvm::sys::fs::directory_iterator. More...
class File
Represents an open file. More...
class FileSystem
The virtual file system interface. More...
class InMemoryFileSystem
An in-memory file system. More...
class OverlayFileSystem
A file system that allows overlaying one AbstractFileSystem on top of another. More...
class ProxyFileSystem
By default, this delegates all calls to the underlying file system. More...
class recursive_directory_iterator
An input iterator over the recursive contents of a virtual path, similar to llvm::sys::fs::recursive_directory_iterator. More...
class RedirectingFileSystem
A virtual file system parsed from a YAML file. More...
class RedirectingFileSystemParser
A helper class to hold the common YAML parsing state. More...
class RedirectingFSDirIterImpl
Directory iterator implementation for RedirectingFileSystem's directory entries. More...
class Status
The result of a status operation. More...
class TracingFileSystem
File system that tracks the number of calls to the underlying file system. More...
struct YAMLVFSEntry
class YAMLVFSWriter
Functions
IntrusiveRefCntPtr< FileSystem > getRealFileSystem ()
Gets an vfs::FileSystem for the 'real' file system, as seen by the operating system.
std::unique_ptr< FileSystem > createPhysicalFileSystem ()
Create an vfs::FileSystem for the 'real' file system, as seen by the operating system.
llvm::sys::fs::UniqueID getNextVirtualUniqueID ()
Get a globally unique ID for a virtual file or directory.
std::unique_ptr< FileSystem > getVFSFromYAML (std::unique_ptr< llvm::MemoryBuffer > Buffer, llvm::SourceMgr::DiagHandlerTy DiagHandler, StringRef YAMLFilePath, void *DiagContext=nullptr, IntrusiveRefCntPtr< FileSystem > ExternalFS=getRealFileSystem())
Gets a FileSystem for a virtual file system described in YAML format.
void collectVFSFromYAML (std::unique_ptr< llvm::MemoryBuffer > Buffer, llvm::SourceMgr::DiagHandlerTy DiagHandler, StringRef YAMLFilePath, SmallVectorImpl< YAMLVFSEntry > &CollectedEntries, void *DiagContext=nullptr, IntrusiveRefCntPtr< FileSystem > ExternalFS=getRealFileSystem())
Collect all pairs of <virtual path, real path> entries from the YAMLFilePath.
static sys::fs::UniqueID getUniqueID (hash_code Hash)
static sys::fs::UniqueID getFileID (sys::fs::UniqueID Parent, llvm::StringRef Name, llvm::StringRef Contents)
static sys::fs::UniqueID getDirectoryID (sys::fs::UniqueID Parent, llvm::StringRef Name)

collectVFSFromYAML()

Collect all pairs of <virtual path, real path> entries from the YAMLFilePath.

This is used by the module dependency collector to forward the entries into the reproducer output VFS YAML file.

createPhysicalFileSystem()

std::unique_ptr< FileSystem > llvm::vfs::createPhysicalFileSystem ( )

Create an [vfs::FileSystem](classllvm%5F1%5F1vfs%5F1%5F1FileSystem.html "The virtual file system interface.") for the 'real' file system, as seen by the operating system.

It has its own working directory, independent of (but initially equal to) that of the process.

Definition at line 404 of file VirtualFileSystem.cpp.

getDirectoryID()

getFileID()

getNextVirtualUniqueID()

UniqueID llvm::vfs::getNextVirtualUniqueID ( )

getRealFileSystem()

Gets an [vfs::FileSystem](classllvm%5F1%5F1vfs%5F1%5F1FileSystem.html "The virtual file system interface.") for the 'real' file system, as seen by the operating system.

The working directory is linked to the process's working directory. (This is usually thread-hostile).

Definition at line 399 of file VirtualFileSystem.cpp.

Referenced by llvm::OverlapStats::accumulateCounts(), llvm::FileCollectorBase::addDirectory(), llvm::CodeGenData::getInstance(), llvm::MemProfUsePass::MemProfUsePass(), llvm::MIRProfileLoaderPass::MIRProfileLoaderPass(), llvm::PGOInstrumentationUse::PGOInstrumentationUse(), llvm::SanitizerBinaryMetadataPass::run(), llvm::SampleProfileLoaderPass::run(), runNewPMPasses(), and llvm::SanitizerCoveragePass::SanitizerCoveragePass().

getUniqueID()

getVFSFromYAML()

Gets a [FileSystem](classllvm%5F1%5F1vfs%5F1%5F1FileSystem.html "The virtual file system interface.") for a virtual file system described in YAML format.