llvm::simplify_type

Trait that maps a possibly wrapped type to the type used for casting.

Synopsis

Declared in <llvm/Support/Casting.h>

template<typename From>
struct simplify_type;

Description

Define a template that can be specialized by smart pointers to reflect the fact that they are automatically dereferenced, and are not involved with the template selection process... the default implementation is a noop.

Type Aliases

NameDescription
SimpleType The simplified representation of From (identity by default).

Static Member Functions

NameDescription
getSimplifiedValue Returns the value in simplified form (passthrough by default).

Specializations

NameDescription
simplify_type<MDOperand> simplify_type specialization exposing MDOperand as Metadata *.
simplify_type<AssumptionCache::ResultElem> Allow clients to treat ResultElem as a Value* when using casting operators.
simplify_type<SCEVUse> simplify_type specialization that unwraps SCEVUse to a SCEV pointer.
simplify_type<SDUse> Allow casting operators to work directly on SDUse as SDNode pointers.
simplify_type<SDValue> Allow casting operators to work directly on SDValues as SDNode pointers.
simplify_type<TrackingMDRef> simplify_type specialization so TrackingMDRef participates in cast/isa.
simplify_type<Use> Allow clients to treat uses just like values when using casting operators.
simplify_type<WeakTrackingVH> simplify_type specialization so WeakTrackingVH participates in cast/isa.
simplify_type<WeakVH> simplify_type specialization so WeakVH participates in cast/isa.
simplify_type<MDOperand const> simplify_type specialization exposing const MDOperand as Metadata *.
simplify_type<AssumptionCache::ResultElem const> Allow clients to treat const ResultElem as a Value* when using casting operators.
simplify_type<SDValue const> Allow casting operators to work on const SDValues as SDNode pointers.
simplify_type<TrackingMDRef const> simplify_type specialization so const TrackingMDRef participates in cast/isa.
simplify_type<Use const> Allow clients to treat const uses just like values when using casting operators.
simplify_type<WeakTrackingVH const> simplify_type specialization so const WeakTrackingVH participates in cast/isa.
simplify_type<WeakVH const> simplify_type specialization so const WeakVH participates in cast/isa.
simplify_type<Use*> Allow clients to treat use pointers just like values when using casting operators.
simplify_type<Use const*> Allow clients to treat const use pointers just like values when using casting operators.
simplify_type<IntrusiveRefCntPtr<T>> Allow IntrusiveRefCntPtr to convert into a raw pointer for isa/dyn_cast.
simplify_type<TypedTrackingMDRef<T>> simplify_type specialization so TypedTrackingMDRef participates in cast/isa.
simplify_type<From const> Const specialization of simplify_type that preserves const on the result.
simplify_type<IntrusiveRefCntPtr<T> const> Allow const IntrusiveRefCntPtr to convert into a raw pointer for isa/dyn_cast.
simplify_type<TypedTrackingMDRef<T> const> simplify_type specialization so const TypedTrackingMDRef participates in cast/isa.
simplify_type<ilist_iterator<OptionsT, false, IsConst>> Allow ilist_iterators to convert into pointers to a node automatically when used by the dyn_cast, cast, isa mechanisms...
simplify_type<ilist_iterator_w_bits<OptionsT, false, IsConst>> Allow ilist_iterator_w_bits to convert into pointers for isa/dyn_cast.
simplify_type<ilist_iterator<OptionsT, false, IsConst> const> Const-iterator simplify_type forwarding to the non-const specialization.
simplify_type<ilist_iterator_w_bits<OptionsT, false, IsConst> const> Const ilist_iterator_w_bits simplify_type forwarding to the mutable one.

Derived Classes

NameDescription
simplify_type<ilist_iterator_w_bits<OptionsT, false, IsConst> const> Const ilist_iterator_w_bits simplify_type forwarding to the mutable one.
simplify_type<ilist_iterator<OptionsT, false, IsConst> const> Const-iterator simplify_type forwarding to the non-const specialization.