LLVM 22.0.0git
VirtualOutputBackends.h File Reference

This file contains the declarations of the concrete VirtualOutputBackend classes, which are the implementation for different output style and functions. More...

Go to the source code of this file.

Classes

class  llvm::vfs::ProxyOutputBackend
 A helper class for proxying another backend, with the default implementation to forward to the underlying backend. More...
class  llvm::vfs::OnDiskOutputBackend
 An output backend that creates files on disk, wrapping APIs in sys::fs. More...
struct  llvm::vfs::OnDiskOutputBackend::OutputSettings
 On disk output settings. More...

Namespaces

namespace  llvm
 This is an optimization pass for GlobalISel generic memory operations.
namespace  llvm::vfs

Functions

IntrusiveRefCntPtr< OutputBackendllvm::vfs::makeNullOutputBackend ()
 Create a backend that ignores all output.
IntrusiveRefCntPtr< OutputBackendllvm::vfs::makeFilteringOutputBackend (IntrusiveRefCntPtr< OutputBackend > UnderlyingBackend, std::function< bool(StringRef, std::optional< OutputConfig >)> Filter)
 Make a backend where OutputBackend::createFile() forwards to UnderlyingBackend when Filter is true, and otherwise returns a NullOutput.
IntrusiveRefCntPtr< OutputBackendllvm::vfs::makeMirroringOutputBackend (IntrusiveRefCntPtr< OutputBackend > Backend1, IntrusiveRefCntPtr< OutputBackend > Backend2)
 Create a backend that forwards OutputBackend::createFile() to both Backend1 and Backend2.

Detailed Description

This file contains the declarations of the concrete VirtualOutputBackend classes, which are the implementation for different output style and functions.

This file contains:

  • NullOutputBackend: discard all outputs written.
  • OnDiskOutputBackend: write output to disk, with support for common output types, like append, or atomic update.
  • FilteringOutputBackend: filer some output paths to underlying output backend.
  • MirrorOutputBackend: mirror output to two output backends.

Definition in file VirtualOutputBackends.h.