LLVM API Documentation
Classes | |
| class | const_iterator |
| Path iterator. More... | |
Functions | |
Lexical Modifiers | |
| void | remove_filename (SmallVectorImpl< char > &path) |
| Remove the last component from path unless it is the root dir. | |
| void | replace_extension (SmallVectorImpl< char > &path, const Twine &extension) |
| Replace the file extension of path with extension. | |
| void | append (SmallVectorImpl< char > &path, const Twine &a, const Twine &b="", const Twine &c="", const Twine &d="") |
| Append to path. | |
| void | append (SmallVectorImpl< char > &path, const_iterator begin, const_iterator end) |
| Append to path. | |
Transforms (or some other better name) | |
| void | native (const Twine &path, SmallVectorImpl< char > &result) |
Lexical Observers | |
| const StringRef | root_name (StringRef path) |
| Get root name. | |
| const StringRef | root_directory (StringRef path) |
| Get root directory. | |
| const StringRef | root_path (StringRef path) |
| Get root path. | |
| const StringRef | relative_path (StringRef path) |
| Get relative path. | |
| const StringRef | parent_path (StringRef path) |
| Get parent path. | |
| const StringRef | filename (StringRef path) |
| Get filename. | |
| const StringRef | stem (StringRef path) |
| Get stem. | |
| const StringRef | extension (StringRef path) |
| Get extension. | |
| bool | is_separator (char value) |
| Check whether the given char is a path separator on the host OS. | |
| void | system_temp_directory (bool erasedOnReboot, SmallVectorImpl< char > &result) |
| Get the typical temporary directory for the system, e.g., "/var/tmp" or "C:/TEMP". | |
| bool | has_root_name (const Twine &path) |
| Has root name? | |
| bool | has_root_directory (const Twine &path) |
| Has root directory? | |
| bool | has_root_path (const Twine &path) |
| Has root path? | |
| bool | has_relative_path (const Twine &path) |
| Has relative path? | |
| bool | has_parent_path (const Twine &path) |
| Has parent path? | |
| bool | has_filename (const Twine &path) |
| Has filename? | |
| bool | has_stem (const Twine &path) |
| Has stem? | |
| bool | has_extension (const Twine &path) |
| Has extension? | |
| bool | is_absolute (const Twine &path) |
| Is path absolute? | |
| bool | is_relative (const Twine &path) |
| Is path relative? | |
Lexical Component Iterator | |
| typedef std::reverse_iterator < const_iterator > | reverse_iterator |
| const_iterator | begin (StringRef path) |
| Get begin iterator over path. | |
| const_iterator | end (StringRef path) |
| Get end iterator over path. | |
| reverse_iterator | rbegin (StringRef path) |
| Get reverse begin iterator over path. | |
| reverse_iterator | rend (StringRef path) |
| Get reverse end iterator over path. | |
| typedef std::reverse_iterator<const_iterator> llvm::sys::path::reverse_iterator |
| void llvm::sys::path::append | ( | SmallVectorImpl< char > & | path, |
| const Twine & | a, | ||
| const Twine & | b = "", |
||
| const Twine & | c = "", |
||
| const Twine & | d = "" |
||
| ) |
Append to path.
/foo + bar/f => /foo/bar/f /foo/ + bar/f => /foo/bar/f foo + bar/f => foo/bar/f
| path | Set to path + component. |
| a | The component to be appended to path. |
Definition at line 356 of file PathV2.cpp.
References llvm::SmallVectorImpl< T >::append(), llvm::StringRef::begin(), llvm::SmallVectorTemplateCommon< T >::begin(), llvm::SmallVectorBase::empty(), llvm::StringRef::end(), llvm::SmallVectorTemplateCommon< T >::end(), has_root_name(), is_separator(), llvm::Twine::isTriviallyEmpty(), llvm::SmallVectorTemplateBase< T, isPodLike< T >::value >::push_back(), llvm::SmallVectorTemplateBase< T, isPodLike >::push_back(), llvm::SmallVectorTemplateCommon< T, typename >::size(), and llvm::Twine::toStringRef().
Referenced by append(), llvm::NVPTXAsmPrinter::emitLineNumberAsDotLoc(), llvm::DWARFDebugLine::LineTable::getFileNameByIndex(), getFileNameForCompileUnit(), llvm::jitprofiling::FilenameCache::getFullPath(), llvm::SmallVectorImpl< MachineInstr * >::insert(), llvm::sys::fs::make_absolute(), llvm::sys::fs::directory_entry::replace_filename(), llvm::SmallVector< Inst, 7 >::SmallVector(), and llvm::APFloat::toString().
| void llvm::sys::path::append | ( | SmallVectorImpl< char > & | path, |
| const_iterator | begin, | ||
| const_iterator | end | ||
| ) |
Append to path.
/foo + [bar,f] => /foo/bar/f /foo/ + [bar,f] => /foo/bar/f foo + [bar,f] => foo/bar/f
| path | Set to path + [begin, end). |
| begin | Start of components to append. |
| end | One past the end of components to append. |
Definition at line 397 of file PathV2.cpp.
| const_iterator llvm::sys::path::begin | ( | StringRef | path | ) |
Get begin iterator over path.
| path | Input path. |
Definition at line 157 of file PathV2.cpp.
Referenced by llvm::DWARFDebugAranges::allRangesAreContiguous(), append(), llvm::opt::ArgList::ClaimAllArgs(), llvm::EmitUnwindCode(), llvm::opt::ArgList::eraseArg(), llvm::CodeExtractor::extractCodeRegion(), llvm::DWARFDebugAranges::findAddress(), llvm::UnOpInit::Fold(), llvm::RecordKeeper::getAllDerivedDefinitions(), llvm::MCObjectStreamer::getCurrentFragment(), llvm::DOTGraphTraits< SelectionDAG * >::getEdgeTarget(), llvm::opt::ArgList::getLastArg(), llvm::R600RegisterInfo::getReservedRegs(), llvm::MipsRegisterInfo::getReservedRegs(), llvm::makeArrayRef(), llvm::GraphTraits< RegionInfo * >::nodes_begin(), llvm::DwarfAccelTable::print(), llvm::LoopBase< BlockT, LoopT >::print(), llvm::opt::OptTable::PrintHelp(), readExponent(), llvm::LoopInfoBase< BasicBlock, Loop >::removeLoop(), llvm::PMDataManager::removeNotPreservedAnalysis(), rend(), root_directory(), root_name(), root_path(), llvm::scc_begin(), llvm::SchedDFSResult::scheduleTree(), skipLeadingZeroesAndAnyDot(), llvm::UnrollLoop(), llvm::UnrollRuntimeLoopProlog(), llvm::LoopBase< BlockT, LoopT >::verifyLoop(), and llvm::LoopBase< BlockT, LoopT >::verifyLoopNest().
| const_iterator llvm::sys::path::end | ( | StringRef | path | ) |
Get end iterator over path.
| path | Input path. |
Definition at line 165 of file PathV2.cpp.
References llvm::StringRef::size().
Referenced by llvm::LiveRangeUpdater::add(), llvm::JIT::addPointerToBasicBlock(), llvm::DWARFDebugAranges::allRangesAreContiguous(), append(), llvm::BallLarusDag::calculatePathNumbers(), canBeFeederToNewValueJump(), canCompareBeNewValueJump(), llvm::LiveIntervals::checkRegMaskInterference(), llvm::opt::ArgList::ClaimAllArgs(), llvm::DWARFDebugArangeSet::dump(), llvm::DWARFDebugLine::LineTable::dump(), llvm::encode_leb128(), llvm::opt::ArgList::eraseArg(), filename(), llvm::DWARFDebugArangeSet::findAddress(), llvm::DWARFDebugAranges::findAddress(), llvm::UnOpInit::Fold(), llvm::DWARFAbbreviationDeclarationSet::getAbbreviationDeclaration(), llvm::DWARFDebugAbbrev::getAbbreviationDeclarationSet(), llvm::RecordKeeper::getAllDerivedDefinitions(), llvm::opt::ArgList::getLastArg(), llvm::object::ArchiveMemberHeader::getName(), getNextEdge(), llvm::JIT::getPointerToBasicBlock(), llvm::R600RegisterInfo::getReservedRegs(), llvm::MipsRegisterInfo::getReservedRegs(), getUs(), interpretDecimal(), llvm::SplitAnalysis::isOriginalEndpoint(), llvm::makeArrayRef(), llvm::GraphTraits< RegionInfo * >::nodes_end(), llvm::LoopBase< BlockT, LoopT >::print(), rbegin(), readExponent(), llvm::LoopInfoBase< BasicBlock, Loop >::removeLoop(), PBQP::Graph::removeNode(), llvm::PMDataManager::removeNotPreservedAnalysis(), llvm::ProfileInfoT< FType, BType >::repair(), root_directory(), root_name(), root_path(), llvm::NVPTXAllocaHoisting::runOnFunction(), llvm::scc_end(), llvm::SchedDFSResult::scheduleTree(), llvm::EngineBuilder::selectTarget(), skipLeadingZeroesAndAnyDot(), llvm::Regex::sub(), totalExponent(), llvm::LoopBase< BlockT, LoopT >::verifyLoop(), llvm::LoopBase< BlockT, LoopT >::verifyLoopNest(), and llvm::BallLarusDag::~BallLarusDag().
| const StringRef llvm::sys::path::extension | ( | StringRef | path | ) |
Get extension.
If filename contains a dot but not solely one or two dots, result is the substring of filename starting at (and including) the last dot, and ending at the end of path. Otherwise "".
/foo/bar.txt => .txt /foo/bar => <empty> /foo/.txt => .txt
| path | Input path. |
Definition at line 473 of file PathV2.cpp.
References filename(), llvm::StringRef::find_last_of(), llvm::StringRef::npos, llvm::StringRef::size(), and llvm::StringRef::substr().
Referenced by has_extension().
| const StringRef llvm::sys::path::filename | ( | StringRef | path | ) |
Get filename.
/foo.txt => foo.txt . => . .. => .. / => /
| path | Input path. |
Definition at line 456 of file PathV2.cpp.
References end().
Referenced by extension(), llvm::MCContext::GetDwarfFile(), has_filename(), llvm::LineReader::LineReader(), llvm::cl::ParseCommandLineOptions(), and stem().
| bool llvm::sys::path::has_extension | ( | const Twine & | path | ) |
Has extension?
extension != ""
| path | Input path. |
Definition at line 596 of file PathV2.cpp.
References llvm::StringRef::empty(), extension(), and llvm::Twine::toStringRef().
| bool llvm::sys::path::has_filename | ( | const Twine & | path | ) |
Has filename?
filename != ""
| path | Input path. |
Definition at line 575 of file PathV2.cpp.
References llvm::StringRef::empty(), filename(), and llvm::Twine::toStringRef().
| bool llvm::sys::path::has_parent_path | ( | const Twine & | path | ) |
Has parent path?
parent_path != ""
| path | Input path. |
Definition at line 582 of file PathV2.cpp.
References llvm::StringRef::empty(), parent_path(), and llvm::Twine::toStringRef().
| bool llvm::sys::path::has_relative_path | ( | const Twine & | path | ) |
Has relative path?
relative_path != ""
| path | Input path. |
Definition at line 568 of file PathV2.cpp.
References llvm::StringRef::empty(), relative_path(), and llvm::Twine::toStringRef().
| bool llvm::sys::path::has_root_directory | ( | const Twine & | path | ) |
Has root directory?
root_directory != ""
| path | Input path. |
Definition at line 554 of file PathV2.cpp.
References llvm::StringRef::empty(), root_directory(), and llvm::Twine::toStringRef().
Referenced by is_absolute(), and llvm::sys::fs::make_absolute().
| bool llvm::sys::path::has_root_name | ( | const Twine & | path | ) |
Has root name?
root_name != ""
| path | Input path. |
Definition at line 547 of file PathV2.cpp.
References llvm::StringRef::empty(), root_name(), and llvm::Twine::toStringRef().
Referenced by append(), is_absolute(), and llvm::sys::fs::make_absolute().
| bool llvm::sys::path::has_root_path | ( | const Twine & | path | ) |
Has root path?
root_path != ""
| path | Input path. |
Definition at line 561 of file PathV2.cpp.
References llvm::StringRef::empty(), root_path(), and llvm::Twine::toStringRef().
| bool llvm::sys::path::has_stem | ( | const Twine & | path | ) |
Has stem?
stem != ""
| path | Input path. |
Definition at line 589 of file PathV2.cpp.
References llvm::StringRef::empty(), stem(), and llvm::Twine::toStringRef().
| bool llvm::sys::path::is_absolute | ( | const Twine & | path | ) |
Is path absolute?
| path | Input path. |
Definition at line 603 of file PathV2.cpp.
References has_root_directory(), has_root_name(), and llvm::Twine::toStringRef().
Referenced by llvm::NVPTXAsmPrinter::emitLineNumberAsDotLoc(), llvm::DWARFDebugLine::LineTable::getFileNameByIndex(), and is_relative().
| bool llvm::sys::path::is_relative | ( | const Twine & | path | ) |
Is path relative?
| path | Input path. |
Definition at line 617 of file PathV2.cpp.
References is_absolute().
Referenced by getFileNameForCompileUnit().
| bool llvm::sys::path::is_separator | ( | char | value | ) |
Check whether the given char is a path separator on the host OS.
| value | a character |
Definition at line 486 of file PathV2.cpp.
Referenced by append(), llvm::sys::path::const_iterator::operator++(), llvm::sys::path::const_iterator::operator--(), root_directory(), root_name(), and root_path().
| void llvm::sys::path::native | ( | const Twine & | path, |
| SmallVectorImpl< char > & | result | ||
| ) |
Convert path to the native form. This is used to give paths to users and operating system calls in the platform's normal way. For example, on Windows all '/' are converted to '\'.
| path | A path that is transformed to native format. |
| result | Holds the result of the transformation. |
Definition at line 435 of file PathV2.cpp.
References llvm::StringRef::begin(), llvm::SmallVectorImpl< T >::clear(), llvm::StringRef::end(), llvm::SmallVectorTemplateBase< T, isPodLike >::push_back(), llvm::SmallVectorImpl< T >::reserve(), llvm::StringRef::size(), llvm::Twine::toStringRef(), and llvm::Twine::toVector().
| const StringRef llvm::sys::path::parent_path | ( | StringRef | path | ) |
Get parent path.
/ => <empty> /foo => / foo/../bar => foo/..
| path | Input path. |
Definition at line 403 of file PathV2.cpp.
References llvm::StringRef::npos, and llvm::StringRef::substr().
Referenced by llvm::sys::fs::create_directories(), llvm::MCContext::GetDwarfFile(), and has_parent_path().
| reverse_iterator llvm::sys::path::rbegin | ( | StringRef | path | ) | [inline] |
Get reverse begin iterator over path.
| path | Input path. |
Definition at line 94 of file PathV2.h.
References end().
Referenced by llvm::opt::ArgList::getLastArgNoClaim().
| const StringRef llvm::sys::path::relative_path | ( | StringRef | path | ) |
Get relative path.
C:\hello\world => hello\world foo/bar => foo/bar /foo/bar => foo/bar
| path | Input path. |
Definition at line 351 of file PathV2.cpp.
References root_path(), llvm::StringRef::size(), and llvm::StringRef::substr().
Referenced by has_relative_path(), and llvm::sys::fs::make_absolute().
| void llvm::sys::path::remove_filename | ( | SmallVectorImpl< char > & | path | ) |
Remove the last component from path unless it is the root dir.
directory/filename.cpp => directory/ directory/ => directory / => /
| path | A path that is modified to not have a file component. |
Definition at line 411 of file PathV2.cpp.
References llvm::SmallVectorTemplateCommon< T, typename >::begin(), llvm::StringRef::npos, llvm::SmallVectorImpl< T >::set_size(), and llvm::SmallVectorTemplateCommon< T, typename >::size().
Referenced by llvm::sys::fs::directory_entry::replace_filename().
| reverse_iterator llvm::sys::path::rend | ( | StringRef | path | ) | [inline] |
Get reverse end iterator over path.
| path | Input path. |
Definition at line 101 of file PathV2.h.
References begin().
Referenced by llvm::MultiClass::dump(), and llvm::opt::ArgList::getLastArgNoClaim().
| void llvm::sys::path::replace_extension | ( | SmallVectorImpl< char > & | path, |
| const Twine & | extension | ||
| ) |
Replace the file extension of path with extension.
| path | A path that has its extension replaced with extension. |
| extension | The extension to be added. It may be empty. It may also optionally start with a '.', if it does not, one will be prepended. |
Definition at line 417 of file PathV2.cpp.
References llvm::SmallVectorImpl< T >::append(), llvm::StringRef::begin(), llvm::SmallVectorTemplateCommon< T, typename >::begin(), llvm::StringRef::end(), llvm::StringRef::find_last_of(), llvm::StringRef::npos, llvm::SmallVectorTemplateBase< T, isPodLike >::push_back(), llvm::SmallVectorImpl< T >::set_size(), llvm::StringRef::size(), llvm::SmallVectorTemplateCommon< T, typename >::size(), and llvm::Twine::toStringRef().
| const StringRef llvm::sys::path::root_directory | ( | StringRef | path | ) |
Get root directory.
/goo/hello => / c:/hello => / d/file.txt => <empty>
| path | Input path. |
Definition at line 322 of file PathV2.cpp.
References begin(), end(), and is_separator().
Referenced by has_root_directory(), and llvm::sys::fs::make_absolute().
| const StringRef llvm::sys::path::root_name | ( | StringRef | path | ) |
Get root name.
//net/hello => //net
c:/hello => c: (on Windows, on other platforms nothing)
/hello => <empty>
| path | Input path. |
Definition at line 300 of file PathV2.cpp.
References begin(), end(), and is_separator().
Referenced by has_root_name(), and llvm::sys::fs::make_absolute().
| const StringRef llvm::sys::path::root_path | ( | StringRef | path | ) |
Get root path.
Equivalent to root_name + root_directory.
| path | Input path. |
Definition at line 268 of file PathV2.cpp.
References begin(), end(), is_separator(), and llvm::StringRef::substr().
Referenced by has_root_path(), and relative_path().
| const StringRef llvm::sys::path::stem | ( | StringRef | path | ) |
Get stem.
If filename contains a dot but not solely one or two dots, result is the substring of filename ending at (but not including) the last dot. Otherwise it is filename.
/foo/bar.txt => bar /foo/bar => bar /foo/.txt => <empty> /foo/. => . /foo/.. => ..
| path | Input path. |
Definition at line 460 of file PathV2.cpp.
References filename(), llvm::StringRef::find_last_of(), llvm::StringRef::npos, llvm::StringRef::size(), and llvm::StringRef::substr().
Referenced by has_stem().
| void llvm::sys::path::system_temp_directory | ( | bool | erasedOnReboot, |
| SmallVectorImpl< char > & | result | ||
| ) |
Get the typical temporary directory for the system, e.g., "/var/tmp" or "C:/TEMP".
| erasedOnReboot | Whether to favor a path that is erased on reboot rather than one that potentially persists longer. This parameter will be ignored if the user or system has set the typical environment variable (e.g., TEMP on Windows, TMPDIR on *nix) to specify a temporary directory. |
| result | Holds the resulting path name. |
Definition at line 496 of file PathV2.cpp.
References llvm::SmallVectorImpl< T >::append(), llvm::SmallVectorTemplateCommon< T, typename >::back(), llvm::SmallVectorImpl< T >::clear(), llvm::SmallVectorTemplateCommon< T, typename >::data(), llvm::LibFunc::getenv, llvm::SmallVectorTemplateBase< T, isPodLike >::pop_back(), llvm::SmallVectorImpl< T >::resize(), llvm::SmallVectorTemplateCommon< T, typename >::size(), and llvm::LibFunc::strlen.