LLVM 20.0.0git
|
These are wrappers over isa* function that allow them to be used in generic algorithms such as llvm:all_of
, llvm::none_of
, etc.
More...
Classes | |
class | AllocatorHolder |
class | AllocatorHolder< Alloc & > |
struct | AnalysisPassConcept |
Abstract concept of an analysis pass. More... | |
struct | AnalysisPassModel |
Wrapper to model the analysis pass concept. More... | |
struct | AnalysisResultConcept |
Abstract concept of an analysis result. More... | |
struct | AnalysisResultModel |
Wrapper to model the analysis result concept. More... | |
struct | AnalysisResultModel< IRUnitT, PassT, ResultT, InvalidatorT, false > |
Specialization of AnalysisResultModel which provides the default invalidate functionality. More... | |
struct | AnalysisResultModel< IRUnitT, PassT, ResultT, InvalidatorT, true > |
Specialization of AnalysisResultModel which delegates invalidate handling to ResultT . More... | |
class | BCField |
Convenience base for all kinds of bitcode abbreviation fields. More... | |
class | BCRecordCoding |
Helper class for dealing with a scalar element in the middle of a record. More... | |
class | BCRecordCoding< BCArray< ElementTy > > |
Helper class for dealing with an array at the end of a record. More... | |
class | BCRecordCoding< BCBlob > |
Helper class for dealing with a blob at the end of a record. More... | |
class | BCRecordCoding< ElementTy > |
Helper class for dealing with a scalar element at the end of a record. More... | |
struct | CanOutputToOStream |
struct | CanOutputToOStream< T, std::void_t< decltype(std::declval< std::ostream & >()<< std::declval< T >())> > |
struct | CheckedInt |
class | concat_range |
Helper to store a sequence of ranges being concatenated and access them. More... | |
struct | ConstantLog2 |
A tiny meta function to compute the log2 of a compile time constant. More... | |
struct | ConstantLog2< 1 > |
struct | DenseMapPair |
struct | DenseSetEmpty |
class | DenseSetImpl |
Base class for DenseSet and DenseSmallSet. More... | |
class | DenseSetPair |
struct | detector |
struct | detector< std::void_t< Op< Args... > >, Op, Args... > |
class | DoubleAPFloat |
struct | enumerator_result |
Tuple-like type for zip_enumerator dereference. More... | |
struct | enumerator_result< std::size_t, Refs... > |
struct | ErrorHolder |
class | ErrorMatchesMono |
class | ErrorMessageMatches |
struct | ExpectedHolder |
class | first_or_second_type |
Return a reference to the first or second member of a reference. More... | |
struct | fwd_or_bidi_tag |
Helper which sets its type member to forward_iterator_tag if the category of IterT does not derive from bidirectional_iterator_tag, and to bidirectional_iterator_tag otherwise. More... | |
struct | fwd_or_bidi_tag_impl |
struct | fwd_or_bidi_tag_impl< true > |
struct | HasPointerLikeTypeTraits |
struct | HasPointerLikeTypeTraits< T, decltype((sizeof(PointerLikeTypeTraits< T >)+sizeof(T)), void())> |
class | IEEEFloat |
struct | index_iterator |
struct | index_stream |
Infinite stream of increasing 0-based size_t indices. More... | |
class | indexed_accessor_range_base |
The class represents the base of a range of indexed_accessor_iterators. More... | |
struct | is_array |
A type trait whose value field is true if the given type is a BCArray (of any element kind). More... | |
struct | IsaAndPresentCheckPredicate |
struct | IsaCheckPredicate |
struct | IsPointerLike |
struct | IsPointerLike< T * > |
struct | last_type |
A type trait whose type field is the last of its template parameters. More... | |
struct | last_type< Head > |
struct | LeadingZerosCounter |
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 | PointerSumTypeHelper |
A helper template for implementing PointerSumType . More... | |
struct | PopulationCounter |
struct | PopulationCounter< T, 8 > |
class | PtrUseVisitorBase |
Implementation of non-dependent functionality for PtrUseVisitor . More... | |
struct | PunnedPointer |
struct | RecordKeeperImpl |
This class represents the internal implementation of the RecordKeeper. More... | |
class | ResultHasInvalidateMethod |
SFINAE metafunction for computing whether ResultT provides an invalidate member function. More... | |
struct | SafeIntIterator |
class | scope_exit |
class | SlowDynamicAPInt |
A simple class providing dynamic arbitrary-precision arithmetic. More... | |
class | StringMapEntryMatcher |
class | StringMapEntryMatcherImpl |
struct | TrailingZerosCounter |
union | trivial_helper |
struct | TypesAreDistinct |
struct | TypesAreDistinct< T > |
class | TypeSwitchBase |
class | UniqueFunctionBase |
struct | unit |
struct | unit< std::micro > |
struct | unit< std::milli > |
struct | unit< std::nano > |
struct | unit< std::ratio< 1 > > |
struct | unit< std::ratio< 3600 > > |
struct | unit< std::ratio< 60 > > |
class | ValueIsMatcher |
class | ValueMatchesMono |
class | ValueMatchesPoly |
struct | Visitor |
struct | Visitor< HeadT > |
struct | Visitor< HeadT, TailTs... > |
struct | zip_common |
struct | zip_enumerator |
Zippy iterator that uses the second iterator for comparisons. More... | |
struct | zip_first |
class | zip_longest_iterator |
class | zip_longest_range |
struct | zip_shortest |
struct | ZipLongestItemType |
struct | ZipLongestTupleType |
class | zippy |
struct | ZippyIteratorTuple |
Helper to obtain the iterator types for the tuple storage within zippy . More... | |
struct | ZippyIteratorTuple< ItType, const std::tuple< Args... >, std::index_sequence< Ns... > > |
Partial specialization for const tuple storage. More... | |
struct | ZippyIteratorTuple< ItType, std::tuple< Args... >, std::index_sequence< Ns... > > |
Partial specialization for non-const tuple storage. More... | |
struct | ZipTupleType |
Typedefs | |
template<typename RangeT > | |
using | IterOfRange = decltype(adl_begin(std::declval< RangeT & >())) |
template<typename RangeT > | |
using | ValueOfRange = std::remove_reference_t< decltype(*adl_begin(std::declval< RangeT & >()))> |
template<typename T > | |
using | EnableIfTrivial = std::enable_if_t< std::is_trivially_move_constructible< T >::value &&std::is_trivially_destructible< T >::value > |
template<typename CallableT , typename ThisT > | |
using | EnableUnlessSameType = std::enable_if_t<!std::is_same< remove_cvref_t< CallableT >, ThisT >::value > |
template<typename CallableT , typename Ret , typename... Params> | |
using | EnableIfCallable = std::enable_if_t< std::disjunction< std::is_void< Ret >, std::is_same< decltype(std::declval< CallableT >()(std::declval< Params >()...)), Ret >, std::is_same< const decltype(std::declval< CallableT >()(std::declval< Params >()...)), Ret >, std::is_convertible< decltype(std::declval< CallableT >()(std::declval< Params >()...)), Ret > >::value > |
template<typename T > | |
using | has_number_t = decltype(GraphTraits< T >::getNumber(std::declval< typename GraphTraits< T >::NodeRef >())) |
template<typename Set , typename Fn > | |
using | check_has_member_remove_if_t = decltype(std::declval< Set >().remove_if(std::declval< Fn >())) |
template<typename Set > | |
using | check_has_member_erase_iter_t = decltype(std::declval< Set >().erase(std::declval< Set >().begin())) |
template<typename Range > | |
using | check_has_free_function_rbegin = decltype(adl_rbegin(std::declval< Range & >())) |
template<typename ZipType , typename ReferenceTupleType , typename... Iters> | |
using | zip_traits = iterator_facade_base< ZipType, std::common_type_t< std::bidirectional_iterator_tag, typename std::iterator_traits< Iters >::iterator_category... >, ReferenceTupleType, typename std::iterator_traits< std::tuple_element_t< 0, std::tuple< Iters... > > >::difference_type, ReferenceTupleType *, ReferenceTupleType > |
template<typename T > | |
using | sort_trivially_copyable = std::conjunction< std::is_pointer< T >, std::is_trivially_copyable< typename std::iterator_traits< T >::value_type > > |
template<typename Range > | |
using | check_has_free_function_size = decltype(adl_size(std::declval< Range & >())) |
template<typename Range , typename Element > | |
using | check_has_member_contains_t = decltype(std::declval< Range & >().contains(std::declval< const Element & >())) |
template<typename Range , typename Element > | |
using | check_has_member_find_t = decltype(std::declval< Range & >().find(std::declval< const Element & >()) !=std::declval< Range & >().end()) |
template<typename... Iters> | |
using | EnumeratorTupleType = enumerator_result< decltype(*declval< Iters >())... > |
template<typename T > | |
using | has_sizeof = decltype(sizeof(T)) |
template<typename... Types> | |
using | has_blob = std::is_same< BCBlob, typename last_type< int, Types... >::type > |
A type trait whose value field is true if the last type is BCBlob. | |
template<typename... Types> | |
using | has_array = is_array< typename last_type< int, Types... >::type > |
A type trait whose value field is true if the last type is a BCArray (of any element kind). | |
template<typename OptionalDerived , typename Default > | |
using | SelfType = std::conditional_t< std::is_same_v< OptionalDerived, void >, Default, OptionalDerived > |
A helper to derive the type to use with Self for cast traits, when the provided CRTP derived type is allowed to be void. | |
template<class BlockT > | |
using | has_hoist_check = decltype(&BlockT::isLegalToHoistInto) |
template<class BlockT > | |
using | detect_has_hoist_check = llvm::is_detected< has_hoist_check, BlockT > |
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) |
hash_code | hash_value (const DoubleAPFloat &Arg) |
DoubleAPFloat | scalbn (const DoubleAPFloat &Arg, int Exp, IEEEFloat::roundingMode RM) |
DoubleAPFloat | frexp (const DoubleAPFloat &X, int &Exp, IEEEFloat::roundingMode) |
unsigned | combineHashValue (unsigned a, unsigned b) |
Simplistic combination of 32-bit hash values into 32-bit hash values. | |
template<typename ValueT , typename MapTy , typename ValueInfoT > | |
bool | operator== (const DenseSetImpl< ValueT, MapTy, ValueInfoT > &LHS, const DenseSetImpl< ValueT, MapTy, ValueInfoT > &RHS) |
Equality comparison for DenseSet. | |
template<typename ValueT , typename MapTy , typename ValueInfoT > | |
bool | operator!= (const DenseSetImpl< ValueT, MapTy, ValueInfoT > &LHS, const DenseSetImpl< ValueT, MapTy, ValueInfoT > &RHS) |
Inequality comparison for DenseSet. | |
template<typename T , typename U > | |
bool | canTypeFitValue (const U Value) |
raw_ostream & | operator<< (raw_ostream &OS, const SlowDynamicAPInt &X) |
SlowDynamicAPInt | mod (const SlowDynamicAPInt &LHS, const SlowDynamicAPInt &RHS) |
Returns the remainder of dividing LHS by RHS. | |
SlowDynamicAPInt | lcm (const SlowDynamicAPInt &A, const SlowDynamicAPInt &B) |
Returns the least common multiple of A and B. | |
SlowDynamicAPInt | abs (const SlowDynamicAPInt &X) |
Redeclarations of friend declarations above to make it discoverable by lookups. | |
SlowDynamicAPInt | ceilDiv (const SlowDynamicAPInt &LHS, const SlowDynamicAPInt &RHS) |
SlowDynamicAPInt | floorDiv (const SlowDynamicAPInt &LHS, const SlowDynamicAPInt &RHS) |
SlowDynamicAPInt | gcd (const SlowDynamicAPInt &A, const SlowDynamicAPInt &B) |
hash_code | hash_value (const SlowDynamicAPInt &X) |
SlowDynamicAPInt & | operator+= (SlowDynamicAPInt &A, int64_t B) |
SlowDynamicAPInt & | operator-= (SlowDynamicAPInt &A, int64_t B) |
SlowDynamicAPInt & | operator*= (SlowDynamicAPInt &A, int64_t B) |
SlowDynamicAPInt & | operator/= (SlowDynamicAPInt &A, int64_t B) |
SlowDynamicAPInt & | operator%= (SlowDynamicAPInt &A, int64_t B) |
bool | operator== (const SlowDynamicAPInt &A, int64_t B) |
bool | operator!= (const SlowDynamicAPInt &A, int64_t B) |
bool | operator> (const SlowDynamicAPInt &A, int64_t B) |
bool | operator< (const SlowDynamicAPInt &A, int64_t B) |
bool | operator<= (const SlowDynamicAPInt &A, int64_t B) |
bool | operator>= (const SlowDynamicAPInt &A, int64_t B) |
SlowDynamicAPInt | operator+ (const SlowDynamicAPInt &A, int64_t B) |
SlowDynamicAPInt | operator- (const SlowDynamicAPInt &A, int64_t B) |
SlowDynamicAPInt | operator* (const SlowDynamicAPInt &A, int64_t B) |
SlowDynamicAPInt | operator/ (const SlowDynamicAPInt &A, int64_t B) |
SlowDynamicAPInt | operator% (const SlowDynamicAPInt &A, int64_t B) |
bool | operator== (int64_t A, const SlowDynamicAPInt &B) |
bool | operator!= (int64_t A, const SlowDynamicAPInt &B) |
bool | operator> (int64_t A, const SlowDynamicAPInt &B) |
bool | operator< (int64_t A, const SlowDynamicAPInt &B) |
bool | operator<= (int64_t A, const SlowDynamicAPInt &B) |
bool | operator>= (int64_t A, const SlowDynamicAPInt &B) |
SlowDynamicAPInt | operator+ (int64_t A, const SlowDynamicAPInt &B) |
SlowDynamicAPInt | operator- (int64_t A, const SlowDynamicAPInt &B) |
SlowDynamicAPInt | operator* (int64_t A, const SlowDynamicAPInt &B) |
SlowDynamicAPInt | operator/ (int64_t A, const SlowDynamicAPInt &B) |
SlowDynamicAPInt | operator% (int64_t A, const SlowDynamicAPInt &B) |
template<typename Iter > | |
Iter | next_or_end (const Iter &I, const Iter &End) |
template<typename Iter > | |
auto | deref_or_none (const Iter &I, const Iter &End) -> std::optional< std::remove_const_t< std::remove_reference_t< decltype(*I)> > > |
template<typename OtherT , typename DerivedT , typename BaseT , typename T , typename PointerT , typename ReferenceT > | |
bool | operator== (const indexed_accessor_range_base< DerivedT, BaseT, T, PointerT, ReferenceT > &lhs, const OtherT &rhs) |
Compare this range with another. | |
template<typename OtherT , typename DerivedT , typename BaseT , typename T , typename PointerT , typename ReferenceT > | |
bool | operator!= (const indexed_accessor_range_base< DerivedT, BaseT, T, PointerT, ReferenceT > &lhs, const OtherT &rhs) |
template<typename Predicate , typename... Args> | |
bool | all_of_zip_predicate_first (Predicate &&P, Args &&...args) |
template<typename... ArgsThenPredicate, size_t... InputIndexes> | |
bool | all_of_zip_predicate_last (std::tuple< ArgsThenPredicate... > argsThenPredicate, std::index_sequence< InputIndexes... >) |
template<typename FieldTy > | |
static void | emitOps (llvm::BitCodeAbbrev &abbrev) |
Attaches the last field to an abbreviation. | |
template<typename FieldTy , typename Next , typename... Rest> | |
static void | emitOps (llvm::BitCodeAbbrev &abbrev) |
Attaches fields to an abbreviation. | |
template<typename PassT , typename IRUnitT , typename AnalysisManagerT , typename... ArgTs, size_t... Ns> | |
PassT::Result | getAnalysisResultUnpackTuple (AnalysisManagerT &AM, IRUnitT &IR, std::tuple< ArgTs... > Args, std::index_sequence< Ns... >) |
Actual unpacker of extra arguments in getAnalysisResult, passes only those tuple arguments that are mentioned in index_sequence. | |
template<typename PassT , typename IRUnitT , typename... AnalysisArgTs, typename... MainArgTs> | |
PassT::Result | getAnalysisResult (AnalysisManager< IRUnitT, AnalysisArgTs... > &AM, IRUnitT &IR, std::tuple< MainArgTs... > Args) |
Helper for partial unpacking of extra arguments in getAnalysisResult. | |
void | printBumpPtrAllocatorStats (unsigned NumSlabs, size_t BytesAllocated, size_t TotalMemory) |
template<typename T > | |
bool | isPresent (const T &t) |
template<typename T > | |
decltype(auto) | unwrapValue (T &t) |
template<typename Range > | |
auto | reverse_if_helper (Range &&R, std::integral_constant< bool, false >) |
template<typename Range > | |
auto | reverse_if_helper (Range &&R, std::integral_constant< bool, true >) |
template<bool B, typename Range > | |
auto | reverse_if (Range &&R) |
template<class BlockT > | |
bool | isLegalToHoistInto (BlockT *Block) |
SFINAE functions that dispatch to the isLegalToHoistInto member function or return false, if it doesn't exist. | |
ErrorHolder | TakeError (Error Err) |
template<typename T > | |
ExpectedHolder< T > | TakeExpected (Expected< T > &Exp) |
template<typename T > | |
ExpectedHolder< T > | TakeExpected (Expected< T > &&Exp) |
void | PrintTo (const ErrorHolder &Err, std::ostream *Out) |
template<typename T > | |
void | PrintTo (const ExpectedHolder< T > &Item, std::ostream *Out) |
static void | tcSetLeastSignificantBits (APInt::WordType *dst, unsigned parts, unsigned bits) |
DoubleAPFloat | scalbn (const DoubleAPFloat &Arg, int Exp, APFloat::roundingMode RM) |
DoubleAPFloat | frexp (const DoubleAPFloat &Arg, int &Exp, APFloat::roundingMode RM) |
Variables | |
template<typename Set , typename Fn > | |
static constexpr bool | HasMemberRemoveIf |
template<typename Set > | |
static constexpr bool | HasMemberEraseIter |
template<typename Range > | |
static constexpr bool | HasFreeFunctionRBegin |
template<typename Range > | |
static constexpr bool | HasFreeFunctionSize |
template<typename Range , typename Element > | |
static constexpr bool | HasMemberContains |
template<typename Range , typename Element > | |
static constexpr bool | HasMemberFind |
These are wrappers over isa* function that allow them to be used in generic algorithms such as llvm:all_of
, llvm::none_of
, etc.
This is accomplished by exposing the isa* functions through function objects with a generic function call operator.
using llvm::detail::check_has_free_function_rbegin = typedef decltype(adl_rbegin(std::declval<Range &>())) |
Definition at line 410 of file STLExtras.h.
using llvm::detail::check_has_free_function_size = typedef decltype(adl_size(std::declval<Range &>())) |
Definition at line 1691 of file STLExtras.h.
using llvm::detail::check_has_member_contains_t = typedef decltype(std::declval<Range &>().contains(std::declval<const Element &>())) |
Definition at line 1862 of file STLExtras.h.
using llvm::detail::check_has_member_erase_iter_t = typedef decltype(std::declval<Set>().erase(std::declval<Set>().begin())) |
Definition at line 32 of file SetOperations.h.
using llvm::detail::check_has_member_find_t = typedef decltype(std::declval<Range &>().find(std::declval<const Element &>()) != std::declval<Range &>().end()) |
Definition at line 1870 of file STLExtras.h.
using llvm::detail::check_has_member_remove_if_t = typedef decltype(std::declval<Set>().remove_if(std::declval<Fn>())) |
Definition at line 24 of file SetOperations.h.
using llvm::detail::detect_has_hoist_check = typedef llvm::is_detected<has_hoist_check, BlockT> |
Definition at line 179 of file GenericLoopInfoImpl.h.
using llvm::detail::EnableIfCallable = typedef std::enable_if_t<std::disjunction< std::is_void<Ret>, std::is_same<decltype(std::declval<CallableT>()(std::declval<Params>()...)), Ret>, std::is_same<const decltype(std::declval<CallableT>()( std::declval<Params>()...)), Ret>, std::is_convertible<decltype(std::declval<CallableT>()( std::declval<Params>()...)), Ret> >::value> |
Definition at line 69 of file FunctionExtras.h.
using llvm::detail::EnableIfTrivial = typedef std::enable_if_t<std::is_trivially_move_constructible<T>::value && std::is_trivially_destructible<T>::value> |
Definition at line 62 of file FunctionExtras.h.
using llvm::detail::EnableUnlessSameType = typedef std::enable_if_t<!std::is_same<remove_cvref_t<CallableT>, ThisT>::value> |
Definition at line 66 of file FunctionExtras.h.
using llvm::detail::EnumeratorTupleType = typedef enumerator_result<decltype(*declval<Iters>())...> |
Definition at line 2238 of file STLExtras.h.
using llvm::detail::has_array = typedef is_array<typename last_type<int, Types...>::type> |
A type trait whose value
field is true
if the last type is a BCArray (of any element kind).
Definition at line 350 of file BitcodeConvenience.h.
using llvm::detail::has_blob = typedef std::is_same<BCBlob, typename last_type<int, Types...>::type> |
A type trait whose value
field is true
if the last type is BCBlob.
Definition at line 332 of file BitcodeConvenience.h.
using llvm::detail::has_hoist_check = typedef decltype(&BlockT::isLegalToHoistInto) |
Definition at line 176 of file GenericLoopInfoImpl.h.
using llvm::detail::has_number_t = typedef decltype(GraphTraits<T>::getNumber( std::declval<typename GraphTraits<T>::NodeRef>())) |
Definition at line 100 of file GraphTraits.h.
using llvm::detail::has_sizeof = typedef decltype(sizeof(T)) |
Definition at line 2574 of file STLExtras.h.
using llvm::detail::IterOfRange = typedef decltype(adl_begin(std::declval<RangeT &>())) |
using llvm::detail::SelfType = typedef std::conditional_t<std::is_same_v<OptionalDerived, void>, Default, OptionalDerived> |
using llvm::detail::sort_trivially_copyable = typedef std::conjunction< std::is_pointer<T>, std::is_trivially_copyable<typename std::iterator_traits<T>::value_type> > |
Definition at line 1639 of file STLExtras.h.
using llvm::detail::ValueOfRange = typedef std::remove_reference_t<decltype(*adl_begin(std::declval<RangeT &>()))> |
using llvm::detail::zip_traits = typedef iterator_facade_base< ZipType, std::common_type_t< std::bidirectional_iterator_tag, typename std::iterator_traits<Iters>::iterator_category...>, ReferenceTupleType, typename std::iterator_traits< std::tuple_element_t<0, std::tuple<Iters...> >>::difference_type, ReferenceTupleType *, ReferenceTupleType> |
Definition at line 685 of file STLExtras.h.
SlowDynamicAPInt llvm::detail::abs | ( | const SlowDynamicAPInt & | X | ) |
Redeclarations of friend declarations above to make it discoverable by lookups.
Definition at line 190 of file SlowDynamicAPInt.cpp.
References X.
Referenced by lcm().
bool llvm::detail::all_of_zip_predicate_first | ( | Predicate && | P, |
Args &&... | args | ||
) |
Definition at line 2449 of file STLExtras.h.
References args, llvm::sys::path::const_iterator::end, P, and llvm::zip().
Referenced by all_of_zip_predicate_last().
bool llvm::detail::all_of_zip_predicate_last | ( | std::tuple< ArgsThenPredicate... > | argsThenPredicate, |
std::index_sequence< InputIndexes... > | |||
) |
Definition at line 2464 of file STLExtras.h.
References all_of_zip_predicate_first(), and value.
Referenced by llvm::all_of_zip().
Definition at line 113 of file Sequence.h.
SlowDynamicAPInt llvm::detail::ceilDiv | ( | const SlowDynamicAPInt & | LHS, |
const SlowDynamicAPInt & | RHS | ||
) |
Definition at line 193 of file SlowDynamicAPInt.cpp.
References getMaxWidth(), LHS, RHS, llvm::APIntOps::RoundingSDiv(), and llvm::APInt::UP.
Simplistic combination of 32-bit hash values into 32-bit hash values.
Definition at line 39 of file DenseMapInfo.h.
References llvm::densemap::detail::mix().
Referenced by llvm::ScalarEvolution::FoldID::computeHash(), llvm::DenseMapInfo< AA::RangeTy >::getHashValue(), llvm::DenseMapInfo< MBBSectionID >::getHashValue(), llvm::DenseMapInfo< std::pair< T, U > >::getHashValue(), llvm::DenseMapInfo< std::pair< const MCSymbol *, MCSymbolRefExpr::VariantKind > >::getHashValue(), llvm::DenseMapInfo< VersionTuple >::getHashValue(), llvm::DenseMapInfo< std::tuple< Ts... > >::getHashValueImpl(), and llvm::DenseMapInfo< std::pair< T, U > >::getHashValuePiecewise().
auto llvm::detail::deref_or_none | ( | const Iter & | I, |
const Iter & | End | ||
) | -> std::optional< std::remove_const_t<std::remove_reference_t<decltype(*I)>>> |
Definition at line 894 of file STLExtras.h.
|
static |
Attaches the last field to an abbreviation.
This is the base case for emitOps
.
Definition at line 166 of file BitcodeConvenience.h.
Referenced by llvm::BCGenericRecordLayout< IDField, Fields >::emitAbbrev(), and emitOps().
|
static |
Attaches fields to an abbreviation.
This is the recursive case for emitOps
.
Definition at line 176 of file BitcodeConvenience.h.
References emitOps().
SlowDynamicAPInt llvm::detail::floorDiv | ( | const SlowDynamicAPInt & | LHS, |
const SlowDynamicAPInt & | RHS | ||
) |
Definition at line 201 of file SlowDynamicAPInt.cpp.
References llvm::APInt::DOWN, getMaxWidth(), LHS, RHS, and llvm::APIntOps::RoundingSDiv().
DoubleAPFloat llvm::detail::frexp | ( | const DoubleAPFloat & | Arg, |
int & | Exp, | ||
APFloat::roundingMode | RM | ||
) |
Definition at line 5277 of file APFloat.cpp.
References assert(), llvm::APFloatBase::fcNormal, llvm::First, frexp(), llvm::detail::DoubleAPFloat::getCategory(), scalbn(), and llvm::semPPCDoubleDouble.
DoubleAPFloat llvm::detail::frexp | ( | const DoubleAPFloat & | X, |
int & | Exp, | ||
IEEEFloat::roundingMode | RM | ||
) |
Definition at line 5277 of file APFloat.cpp.
References assert(), llvm::APFloatBase::fcNormal, llvm::First, frexp(), llvm::detail::DoubleAPFloat::getCategory(), scalbn(), and llvm::semPPCDoubleDouble.
IEEEFloat llvm::detail::frexp | ( | const IEEEFloat & | Val, |
int & | Exp, | ||
IEEEFloat::roundingMode | RM | ||
) |
Definition at line 4684 of file APFloat.cpp.
References ilogb(), llvm::Quiet, and llvm::scalbn().
Referenced by frexp().
SlowDynamicAPInt llvm::detail::gcd | ( | const SlowDynamicAPInt & | A, |
const SlowDynamicAPInt & | B | ||
) |
Definition at line 217 of file SlowDynamicAPInt.cpp.
References A, assert(), B, getMaxWidth(), and llvm::APIntOps::GreatestCommonDivisor().
Referenced by lcm().
PassT::Result llvm::detail::getAnalysisResult | ( | AnalysisManager< IRUnitT, AnalysisArgTs... > & | AM, |
IRUnitT & | IR, | ||
std::tuple< MainArgTs... > | Args | ||
) |
Helper for partial unpacking of extra arguments in getAnalysisResult.
Arguments passed in tuple come from PassManager, so they might have extra arguments after those AnalysisManager's ExtraArgTs ones that we need to pass to getResult.
Definition at line 137 of file PassManager.h.
References getAnalysisResultUnpackTuple(), and IR.
PassT::Result llvm::detail::getAnalysisResultUnpackTuple | ( | AnalysisManagerT & | AM, |
IRUnitT & | IR, | ||
std::tuple< ArgTs... > | Args, | ||
std::index_sequence< Ns... > | |||
) |
Actual unpacker of extra arguments in getAnalysisResult, passes only those tuple arguments that are mentioned in index_sequence.
Definition at line 122 of file PassManager.h.
References IR.
Referenced by getAnalysisResult().
hash_code llvm::detail::hash_value | ( | const DoubleAPFloat & | Arg | ) |
Definition at line 5121 of file APFloat.cpp.
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 3430 of file APFloat.cpp.
Referenced by hash_value().
hash_code llvm::detail::hash_value | ( | const SlowDynamicAPInt & | X | ) |
Definition at line 26 of file SlowDynamicAPInt.cpp.
References hash_value(), and X.
Because the radix of APFloat is 2, this is equivalent to floor(log2(x)). For special APFloat values, this returns special error codes:
NaN -> IEK_NaN
0 -> IEK_Zero
Inf -> IEK_Inf
Definition at line 4645 of file APFloat.cpp.
Referenced by frexp().
bool llvm::detail::isLegalToHoistInto | ( | BlockT * | Block | ) |
SFINAE functions that dispatch to the isLegalToHoistInto member function or return false, if it doesn't exist.
Definition at line 183 of file GenericLoopInfoImpl.h.
References llvm::Block.
Referenced by llvm::LoopBase< BlockT, LoopT >::getLoopPreheader().
Definition at line 629 of file Casting.h.
References isPresent().
Referenced by llvm::cast_if_present(), llvm::dyn_cast(), llvm::dyn_cast_if_present(), llvm::isa_and_present(), and isPresent().
SlowDynamicAPInt llvm::detail::lcm | ( | const SlowDynamicAPInt & | A, |
const SlowDynamicAPInt & | B | ||
) |
SlowDynamicAPInt llvm::detail::mod | ( | const SlowDynamicAPInt & | LHS, |
const SlowDynamicAPInt & | RHS | ||
) |
Returns the remainder of dividing LHS by RHS.
is always non-negative.
The RHS is always expected to be positive, and the result is always non-negative.
Definition at line 211 of file SlowDynamicAPInt.cpp.
Definition at line 887 of file STLExtras.h.
bool llvm::detail::operator!= | ( | const DenseSetImpl< ValueT, MapTy, ValueInfoT > & | LHS, |
const DenseSetImpl< ValueT, MapTy, ValueInfoT > & | RHS | ||
) |
Inequality comparison for DenseSet.
Equivalent to !(LHS == RHS). See operator== for performance notes.
Definition at line 259 of file DenseSet.h.
bool llvm::detail::operator!= | ( | const indexed_accessor_range_base< DerivedT, BaseT, T, PointerT, ReferenceT > & | lhs, |
const OtherT & | rhs | ||
) |
Definition at line 1358 of file STLExtras.h.
bool llvm::detail::operator!= | ( | const SlowDynamicAPInt & | A, |
int64_t | B | ||
) |
Definition at line 52 of file SlowDynamicAPInt.cpp.
bool llvm::detail::operator!= | ( | int64_t | A, |
const SlowDynamicAPInt & | B | ||
) |
Definition at line 86 of file SlowDynamicAPInt.cpp.
SlowDynamicAPInt llvm::detail::operator% | ( | const SlowDynamicAPInt & | A, |
int64_t | B | ||
) |
Definition at line 79 of file SlowDynamicAPInt.cpp.
SlowDynamicAPInt llvm::detail::operator% | ( | int64_t | A, |
const SlowDynamicAPInt & | B | ||
) |
Definition at line 113 of file SlowDynamicAPInt.cpp.
SlowDynamicAPInt & llvm::detail::operator%= | ( | SlowDynamicAPInt & | A, |
int64_t | B | ||
) |
Definition at line 45 of file SlowDynamicAPInt.cpp.
SlowDynamicAPInt llvm::detail::operator* | ( | const SlowDynamicAPInt & | A, |
int64_t | B | ||
) |
Definition at line 73 of file SlowDynamicAPInt.cpp.
SlowDynamicAPInt llvm::detail::operator* | ( | int64_t | A, |
const SlowDynamicAPInt & | B | ||
) |
Definition at line 107 of file SlowDynamicAPInt.cpp.
SlowDynamicAPInt & llvm::detail::operator*= | ( | SlowDynamicAPInt & | A, |
int64_t | B | ||
) |
Definition at line 39 of file SlowDynamicAPInt.cpp.
SlowDynamicAPInt llvm::detail::operator+ | ( | const SlowDynamicAPInt & | A, |
int64_t | B | ||
) |
Definition at line 67 of file SlowDynamicAPInt.cpp.
SlowDynamicAPInt llvm::detail::operator+ | ( | int64_t | A, |
const SlowDynamicAPInt & | B | ||
) |
Definition at line 101 of file SlowDynamicAPInt.cpp.
SlowDynamicAPInt & llvm::detail::operator+= | ( | SlowDynamicAPInt & | A, |
int64_t | B | ||
) |
Definition at line 33 of file SlowDynamicAPInt.cpp.
SlowDynamicAPInt llvm::detail::operator- | ( | const SlowDynamicAPInt & | A, |
int64_t | B | ||
) |
Definition at line 70 of file SlowDynamicAPInt.cpp.
SlowDynamicAPInt llvm::detail::operator- | ( | int64_t | A, |
const SlowDynamicAPInt & | B | ||
) |
Definition at line 104 of file SlowDynamicAPInt.cpp.
SlowDynamicAPInt & llvm::detail::operator-= | ( | SlowDynamicAPInt & | A, |
int64_t | B | ||
) |
Definition at line 36 of file SlowDynamicAPInt.cpp.
SlowDynamicAPInt llvm::detail::operator/ | ( | const SlowDynamicAPInt & | A, |
int64_t | B | ||
) |
Definition at line 76 of file SlowDynamicAPInt.cpp.
SlowDynamicAPInt llvm::detail::operator/ | ( | int64_t | A, |
const SlowDynamicAPInt & | B | ||
) |
Definition at line 110 of file SlowDynamicAPInt.cpp.
SlowDynamicAPInt & llvm::detail::operator/= | ( | SlowDynamicAPInt & | A, |
int64_t | B | ||
) |
Definition at line 42 of file SlowDynamicAPInt.cpp.
bool llvm::detail::operator< | ( | const SlowDynamicAPInt & | A, |
int64_t | B | ||
) |
Definition at line 58 of file SlowDynamicAPInt.cpp.
bool llvm::detail::operator< | ( | int64_t | A, |
const SlowDynamicAPInt & | B | ||
) |
Definition at line 92 of file SlowDynamicAPInt.cpp.
|
inline |
Definition at line 85 of file SlowDynamicAPInt.h.
bool llvm::detail::operator<= | ( | const SlowDynamicAPInt & | A, |
int64_t | B | ||
) |
Definition at line 61 of file SlowDynamicAPInt.cpp.
bool llvm::detail::operator<= | ( | int64_t | A, |
const SlowDynamicAPInt & | B | ||
) |
Definition at line 95 of file SlowDynamicAPInt.cpp.
bool llvm::detail::operator== | ( | const DenseSetImpl< ValueT, MapTy, ValueInfoT > & | LHS, |
const DenseSetImpl< ValueT, MapTy, ValueInfoT > & | RHS | ||
) |
Equality comparison for DenseSet.
Iterates over elements of LHS confirming that each element is also a member of RHS, and that RHS contains no additional values. Equivalent to N calls to RHS.count. Amortized complexity is linear, worst case is O(N^2) (if every hash collides).
Definition at line 243 of file DenseSet.h.
References E, LHS, llvm::operator==(), and RHS.
bool llvm::detail::operator== | ( | const indexed_accessor_range_base< DerivedT, BaseT, T, PointerT, ReferenceT > & | lhs, |
const OtherT & | rhs | ||
) |
Compare this range with another.
FIXME: Make me a member function instead of friend when it works in C++20.
Definition at line 1350 of file STLExtras.h.
References llvm::operator==().
bool llvm::detail::operator== | ( | const SlowDynamicAPInt & | A, |
int64_t | B | ||
) |
Definition at line 49 of file SlowDynamicAPInt.cpp.
bool llvm::detail::operator== | ( | int64_t | A, |
const SlowDynamicAPInt & | B | ||
) |
Definition at line 83 of file SlowDynamicAPInt.cpp.
bool llvm::detail::operator> | ( | const SlowDynamicAPInt & | A, |
int64_t | B | ||
) |
Definition at line 55 of file SlowDynamicAPInt.cpp.
bool llvm::detail::operator> | ( | int64_t | A, |
const SlowDynamicAPInt & | B | ||
) |
Definition at line 89 of file SlowDynamicAPInt.cpp.
bool llvm::detail::operator>= | ( | const SlowDynamicAPInt & | A, |
int64_t | B | ||
) |
Definition at line 64 of file SlowDynamicAPInt.cpp.
bool llvm::detail::operator>= | ( | int64_t | A, |
const SlowDynamicAPInt & | B | ||
) |
Definition at line 98 of file SlowDynamicAPInt.cpp.
void llvm::detail::printBumpPtrAllocatorStats | ( | unsigned | NumSlabs, |
size_t | BytesAllocated, | ||
size_t | TotalMemory | ||
) |
Definition at line 20 of file Allocator.cpp.
References llvm::errs().
Referenced by llvm::BumpPtrAllocatorImpl< AllocatorT, SlabSize, SizeThreshold, GrowthDelay >::PrintStats().
|
inline |
void llvm::detail::PrintTo | ( | const ExpectedHolder< T > & | Item, |
std::ostream * | Out | ||
) |
Definition at line 53 of file SupportHelpers.h.
References llvm::detail::ExpectedHolder< T >::Exp, PrintTo(), and llvm::detail::ErrorHolder::Success().
Definition at line 46 of file CFGDiff.h.
References reverse_if_helper().
auto llvm::detail::reverse_if_helper | ( | Range && | R, |
std::integral_constant< bool, false > | |||
) |
Definition at line 37 of file CFGDiff.h.
Referenced by reverse_if().
auto llvm::detail::reverse_if_helper | ( | Range && | R, |
std::integral_constant< bool, true > | |||
) |
Definition at line 42 of file CFGDiff.h.
References llvm::reverse().
DoubleAPFloat llvm::detail::scalbn | ( | const DoubleAPFloat & | Arg, |
int | Exp, | ||
APFloat::roundingMode | RM | ||
) |
Definition at line 5270 of file APFloat.cpp.
References assert(), scalbn(), and llvm::semPPCDoubleDouble.
DoubleAPFloat llvm::detail::scalbn | ( | const DoubleAPFloat & | Arg, |
int | Exp, | ||
IEEEFloat::roundingMode | RM | ||
) |
Definition at line 5270 of file APFloat.cpp.
References assert(), scalbn(), and llvm::semPPCDoubleDouble.
IEEEFloat llvm::detail::scalbn | ( | IEEEFloat | X, |
int | Exp, | ||
IEEEFloat::roundingMode | RoundingMode | ||
) |
Definition at line 4663 of file APFloat.cpp.
References llvm::lfExactlyZero, and X.
llvm::detail::ErrorHolder llvm::detail::TakeError | ( | llvm::Error | Err | ) |
Definition at line 13 of file Error.cpp.
References llvm::handleAllErrors(), and Info.
Referenced by TakeExpected().
ExpectedHolder< T > llvm::detail::TakeExpected | ( | Expected< T > && | Exp | ) |
Definition at line 26 of file Error.h.
References TakeExpected().
ExpectedHolder< T > llvm::detail::TakeExpected | ( | Expected< T > & | Exp | ) |
|
static |
Definition at line 1524 of file APFloat.cpp.
References llvm::APInt::APINT_BITS_PER_WORD.
Referenced by llvm::detail::IEEEFloat::convertToInteger().
Definition at line 635 of file Casting.h.
References llvm::ValueIsPresent< T, Enable >::unwrapValue().
Referenced by llvm::cast_if_present(), and llvm::dyn_cast_if_present().
Definition at line 414 of file STLExtras.h.
Definition at line 1695 of file STLExtras.h.
|
staticconstexpr |
Definition at line 1866 of file STLExtras.h.
|
staticconstexpr |
Definition at line 36 of file SetOperations.h.
|
staticconstexpr |
Definition at line 1875 of file STLExtras.h.
|
staticconstexpr |
Definition at line 28 of file SetOperations.h.
Referenced by llvm::set_intersect(), and llvm::set_subtract().