LLVM  6.0.0svn
Classes | Namespaces | Functions
Casting.h File Reference
#include "llvm/Support/Compiler.h"
#include "llvm/Support/type_traits.h"
#include <cassert>
#include <memory>
#include <type_traits>
Include dependency graph for Casting.h:

Go to the source code of this file.

Classes

struct  llvm::simplify_type< From >
 
struct  llvm::simplify_type< const From >
 
struct  llvm::isa_impl< To, From, Enabler >
 
struct  llvm::isa_impl< To, From, typename std::enable_if< std::is_base_of< To, From >::value >::type >
 Always allow upcasts, and perform no dynamic check for them. More...
 
struct  llvm::isa_impl_cl< To, From >
 
struct  llvm::isa_impl_cl< To, const From >
 
struct  llvm::isa_impl_cl< To, const std::unique_ptr< From > >
 
struct  llvm::isa_impl_cl< To, From * >
 
struct  llvm::isa_impl_cl< To, From *const >
 
struct  llvm::isa_impl_cl< To, const From * >
 
struct  llvm::isa_impl_cl< To, const From *const >
 
struct  llvm::isa_impl_wrap< To, From, SimpleFrom >
 
struct  llvm::isa_impl_wrap< To, FromTy, FromTy >
 
struct  llvm::cast_retty< To, From >
 
struct  llvm::cast_retty_impl< To, From >
 
struct  llvm::cast_retty_impl< To, const From >
 
struct  llvm::cast_retty_impl< To, From * >
 
struct  llvm::cast_retty_impl< To, const From * >
 
struct  llvm::cast_retty_impl< To, const From *const >
 
struct  llvm::cast_retty_impl< To, std::unique_ptr< From > >
 
struct  llvm::cast_retty_wrap< To, From, SimpleFrom >
 
struct  llvm::cast_retty_wrap< To, FromTy, FromTy >
 
struct  llvm::cast_retty< To, From >
 
struct  llvm::cast_convert_val< To, From, SimpleFrom >
 
struct  llvm::cast_convert_val< To, FromTy, FromTy >
 
struct  llvm::is_simple_type< X >
 

Namespaces

 llvm
 Compute iterated dominance frontiers using a linear time algorithm.
 

Functions

template<class X , class Y >
LLVM_NODISCARD bool llvm::isa (const Y &Val)
 
template<class X , class Y >
std::enable_if<!is_simple_type< Y >::value, typename cast_retty< X, const Y >::ret_type >::type llvm::cast (const Y &Val)
 
template<class X , class Y >
cast_retty< X, Y >::ret_type llvm::cast (Y &Val)
 
template<class X , class Y >
cast_retty< X, Y * >::ret_type llvm::cast (Y *Val)
 
template<class X , class Y >
cast_retty< X, std::unique_ptr< Y > >::ret_type llvm::cast (std::unique_ptr< Y > &&Val)
 
template<class X , class Y >
LLVM_NODISCARD std::enable_if<!is_simple_type< Y >::value, typename cast_retty< X, const Y >::ret_type >::type llvm::cast_or_null (const Y &Val)
 
template<class X , class Y >
LLVM_NODISCARD std::enable_if<!is_simple_type< Y >::value, typename cast_retty< X, Y >::ret_type >::type llvm::cast_or_null (Y &Val)
 
template<class X , class Y >
LLVM_NODISCARD cast_retty< X, Y * >::ret_type llvm::cast_or_null (Y *Val)
 
template<class X , class Y >
cast_retty< X, std::unique_ptr< Y > >::ret_type llvm::cast_or_null (std::unique_ptr< Y > &&Val)
 
template<class X , class Y >
LLVM_NODISCARD std::enable_if<!is_simple_type< Y >::value, typename cast_retty< X, const Y >::ret_type >::type llvm::dyn_cast (const Y &Val)
 
template<class X , class Y >
LLVM_NODISCARD cast_retty< X, Y >::ret_type llvm::dyn_cast (Y &Val)
 
template<class X , class Y >
LLVM_NODISCARD cast_retty< X, Y * >::ret_type llvm::dyn_cast (Y *Val)
 
template<class X , class Y >
LLVM_NODISCARD std::enable_if<!is_simple_type< Y >::value, typename cast_retty< X, const Y >::ret_type >::type llvm::dyn_cast_or_null (const Y &Val)
 
template<class X , class Y >
LLVM_NODISCARD std::enable_if<!is_simple_type< Y >::value, typename cast_retty< X, Y >::ret_type >::type llvm::dyn_cast_or_null (Y &Val)
 
template<class X , class Y >
LLVM_NODISCARD cast_retty< X, Y * >::ret_type llvm::dyn_cast_or_null (Y *Val)
 
template<class X , class Y >
LLVM_NODISCARD auto llvm::unique_dyn_cast (std::unique_ptr< Y > &Val) -> decltype(cast< X >(Val))
 
template<class X , class Y >
LLVM_NODISCARD auto llvm::unique_dyn_cast (std::unique_ptr< Y > &&Val) -> decltype(cast< X >(Val))
 
template<class X , class Y >
LLVM_NODISCARD auto llvm::unique_dyn_cast_or_null (std::unique_ptr< Y > &Val) -> decltype(cast< X >(Val))
 
template<class X , class Y >
LLVM_NODISCARD auto llvm::unique_dyn_cast_or_null (std::unique_ptr< Y > &&Val) -> decltype(cast< X >(Val))