LLVM  4.0.0
Classes | Typedefs | Functions | Variables
llvm::detail Namespace Reference

Implementation details of the pass manager interfaces. More...

Classes

class  IEEEFloat
 
class  DoubleAPFloat
 
struct  DenseMapPair
 
struct  DenseSetEmpty
 
class  DenseSetPair
 
class  DenseSetImpl
 Base class for DenseSet and DenseSmallSet. More...
 
struct  PointerSumTypeHelper
 A helper template for implementing PointerSumType. More...
 
class  scope_exit
 
class  value_sequence_iterator
 
class  zip_first
 
class  zip_shortest
 
class  zippy
 
class  concat_range
 Helper to store a sequence of ranges being concatenated and access them. More...
 
class  enumerator_impl
 
class  PtrUseVisitorBase
 Implementation of non-dependent functionality for PtrUseVisitor. More...
 
struct  PassConcept
 Template for the abstract base class used to dispatch polymorphically over pass objects. More...
 
struct  PassModel
 A template wrapper used to implement the polymorphic API. More...
 
struct  AnalysisResultConcept
 Abstract concept of an analysis result. More...
 
class  ResultHasInvalidateMethod
 SFINAE metafunction for computing whether ResultT provides an invalidate member function. More...
 
struct  AnalysisResultModel
 Wrapper to model the analysis result concept. More...
 
struct  AnalysisResultModel< IRUnitT, PassT, ResultT, PreservedAnalysesT, InvalidatorT, false >
 Specialization of AnalysisResultModel which provides the default invalidate functionality. More...
 
struct  AnalysisResultModel< IRUnitT, PassT, ResultT, PreservedAnalysesT, InvalidatorT, true >
 Specialization of AnalysisResultModel which delegates invalidate handling to ResultT. More...
 
struct  AnalysisPassConcept
 Abstract concept of an analysis pass. More...
 
struct  AnalysisPassModel
 Wrapper to model the analysis pass concept. More...
 
class  AlignerImpl
 
union  SizerImpl
 
class  AlignAdapter
 
class  PadAdapter
 
class  RepeatAdapter
 
struct  use_integral_formatter
 
struct  use_char_formatter
 
struct  is_cstring
 
struct  use_string_formatter
 
struct  use_pointer_formatter
 
struct  use_double_formatter
 
class  HelperFunctions
 
struct  range_item_has_provider
 
class  format_adapter
 
class  provider_format_adapter
 
class  missing_format_adapter
 
class  has_FormatProvider
 
struct  uses_format_member
 
struct  uses_format_provider
 
struct  uses_missing_provider
 
struct  DominatorTreeBaseTraits
 
struct  TrailingZerosCounter
 
struct  LeadingZerosCounter
 
struct  PopulationCounter
 
struct  PopulationCounter< T, 8 >
 
class  OptionKey
 
struct  ConstantLog2
 A tiny meta function to compute the log2 of a compile time constant. More...
 
struct  ConstantLog2< 1 >
 

Typedefs

template<typename RangeT >
using IterOfRange = decltype(std::begin(std::declval< RangeT & >()))
 
template<typename IterT >
using IterValue = typename std::iterator_traits< IterT >::value_type
 

Functions

hash_code hash_value (const IEEEFloat &Arg)
 
int ilogb (const IEEEFloat &Arg)
 
IEEEFloat scalbn (IEEEFloat X, int Exp, IEEEFloat::roundingMode)
 
IEEEFloat frexp (const IEEEFloat &Val, int &Exp, IEEEFloat::roundingMode RM)
 
template<typename F , typename Tuple , std::size_t... I>
auto apply_tuple_impl (F &&f, Tuple &&t, index_sequence< I...>) -> decltype(std::forward< F >(f)(std::get< I >(std::forward< Tuple >(t))...))
 
template<typename IteratorT >
std::string join_impl (IteratorT Begin, IteratorT End, StringRef Separator, std::input_iterator_tag)
 
template<typename IteratorT >
std::string join_impl (IteratorT Begin, IteratorT End, StringRef Separator, std::forward_iterator_tag)
 
template<typename Sep >
void join_items_impl (std::string &Result, Sep Separator)
 
template<typename Sep , typename Arg >
void join_items_impl (std::string &Result, Sep Separator, const Arg &Item)
 
template<typename Sep , typename Arg1 , typename... Args>
void join_items_impl (std::string &Result, Sep Separator, const Arg1 &A1, Args &&...Items)
 
size_t join_one_item_size (char C)
 
size_t join_one_item_size (const char *S)
 
template<typename T >
size_t join_one_item_size (const T &Str)
 
size_t join_items_size ()
 
template<typename A1 >
size_t join_items_size (const A1 &A)
 
template<typename A1 , typename... Args>
size_t join_items_size (const A1 &A, Args &&...Items)
 
void printBumpPtrAllocatorStats (unsigned NumSlabs, size_t BytesAllocated, size_t TotalMemory)
 
template<typename T >
std::enable_if
< uses_format_member< T >
::value, T >::type 
build_format_adapter (T &&Item)
 
template<typename T >
std::enable_if
< uses_format_provider< T >
::value,
provider_format_adapter< T >
>::type 
build_format_adapter (T &&Item)
 
template<typename T >
std::enable_if
< uses_missing_provider< T >
::value,
missing_format_adapter< T >
>::type 
build_format_adapter (T &&Item)
 
assert &[0] Floats ()==&semPPCDoubleDoubleImpl||&Floats[0].getSemantics()==&semIEEEdouble
 

Variables

 __pad0__
 

Detailed Description

Implementation details of the pass manager interfaces.

Typedef Documentation

template<typename RangeT >
using llvm::detail::IterOfRange = typedef decltype(std::begin(std::declval<RangeT &>()))

Definition at line 45 of file STLExtras.h.

template<typename IterT >
using llvm::detail::IterValue = typedef typename std::iterator_traits<IterT>::value_type

Definition at line 315 of file FormatProviders.h.

Function Documentation

template<typename F , typename Tuple , std::size_t... I>
auto llvm::detail::apply_tuple_impl ( F &&  f,
Tuple &&  t,
index_sequence< I...>   
) -> decltype(std::forward<F>(f)(std::get<I>(std::forward<Tuple>(t))...))

Definition at line 977 of file STLExtras.h.

References t.

template<typename T >
std::enable_if<uses_format_member<T>::value, T>::type llvm::detail::build_format_adapter ( T &&  Item)
template<typename T >
std::enable_if<uses_format_provider<T>::value, provider_format_adapter<T> >::type llvm::detail::build_format_adapter ( T &&  Item)

Definition at line 99 of file FormatVariadicDetails.h.

template<typename T >
std::enable_if<uses_missing_provider<T>::value, missing_format_adapter<T> >::type llvm::detail::build_format_adapter ( T &&  Item)

Definition at line 106 of file FormatVariadicDetails.h.

assert&[0] llvm::detail::Floats ( )
IEEEFloat llvm::detail::frexp ( const IEEEFloat &  Val,
int &  Exp,
IEEEFloat::roundingMode  RM 
)
hash_code llvm::detail::hash_value ( const IEEEFloat &  Arg)

Note that the use of hash codes for floating point values is in general frought with peril. Equality is hard to define for these values. For example, should negative and positive zero hash to different codes? Are they equal or not? This hash value implementation specifically emphasizes producing different codes for different inputs in order to be used in canonicalization and memoization. As such, equality is bitwiseIsEqual, and 0 != -0.

Definition at line 2800 of file APFloat.cpp.

References llvm::hash_combine(), llvm::hash_combine_range(), llvm::detail::IEEEFloat::isFiniteNonZero(), llvm::detail::IEEEFloat::isNaN(), and llvm::fltSemantics::precision.

int llvm::detail::ilogb ( const IEEEFloat &  Arg)
template<typename IteratorT >
std::string llvm::detail::join_impl ( IteratorT  Begin,
IteratorT  End,
StringRef  Separator,
std::input_iterator_tag   
)
inline

Definition at line 161 of file StringExtras.h.

References Separator.

Referenced by llvm::join().

template<typename IteratorT >
std::string llvm::detail::join_impl ( IteratorT  Begin,
IteratorT  End,
StringRef  Separator,
std::forward_iterator_tag   
)
inline

Definition at line 176 of file StringExtras.h.

References llvm::WebAssembly::End, I, Separator, and llvm::StringRef::size().

template<typename Sep >
void llvm::detail::join_items_impl ( std::string &  Result,
Sep  Separator 
)
inline

Definition at line 195 of file StringExtras.h.

Referenced by llvm::join_items(), and join_items_impl().

template<typename Sep , typename Arg >
void llvm::detail::join_items_impl ( std::string &  Result,
Sep  Separator,
const Arg &  Item 
)
inline

Definition at line 198 of file StringExtras.h.

template<typename Sep , typename Arg1 , typename... Args>
void llvm::detail::join_items_impl ( std::string &  Result,
Sep  Separator,
const Arg1 &  A1,
Args &&...  Items 
)
inline

Definition at line 204 of file StringExtras.h.

References join_items_impl(), and Separator.

size_t llvm::detail::join_items_size ( )
inline

Definition at line 218 of file StringExtras.h.

Referenced by llvm::join_items(), and join_items_size().

template<typename A1 >
size_t llvm::detail::join_items_size ( const A1 &  A)
inline

Definition at line 220 of file StringExtras.h.

References join_one_item_size().

template<typename A1 , typename... Args>
size_t llvm::detail::join_items_size ( const A1 &  A,
Args &&...  Items 
)
inline

Definition at line 224 of file StringExtras.h.

References join_items_size(), and join_one_item_size().

size_t llvm::detail::join_one_item_size ( char  C)
inline

Definition at line 211 of file StringExtras.h.

Referenced by llvm::join_items(), and join_items_size().

size_t llvm::detail::join_one_item_size ( const char *  S)
inline

Definition at line 212 of file StringExtras.h.

template<typename T >
size_t llvm::detail::join_one_item_size ( const T Str)
inline

Definition at line 214 of file StringExtras.h.

void llvm::detail::printBumpPtrAllocatorStats ( unsigned  NumSlabs,
size_t  BytesAllocated,
size_t  TotalMemory 
)
IEEEFloat llvm::detail::scalbn ( IEEEFloat  X,
int  Exp,
IEEEFloat::roundingMode  RoundingMode 
)

Variable Documentation

llvm::detail::__pad0__

Definition at line 3900 of file APFloat.cpp.