Proteus
Programmable JIT compilation and optimization for C/C++ using LLVM
Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | List of all members
proteus::Var Struct Reference

#include <Var.hpp>

Collaboration diagram for proteus::Var:
Collaboration graph
[legend]

Public Member Functions

 Var (AllocaInst *Alloca, Func &Fn, Type *PointerElemType=nullptr)
 
StringRef getName ()
 
Value * getValue () const
 
Type * getValueType () const
 
void storeValue (Value *Val)
 
void storePointer (Value *Ptr)
 
bool isPointer () const
 
Varoperator+ (const Var &Other) const
 
Varoperator- (const Var &Other) const
 
Varoperator* (const Var &Other) const
 
Varoperator/ (const Var &Other) const
 
template<typename T >
std::enable_if_t< std::is_arithmetic_v< T >, Var & > operator+ (const T &ConstValue) const
 
template<typename T >
std::enable_if_t< std::is_arithmetic_v< T >, Var & > operator- (const T &ConstValue) const
 
template<typename T >
std::enable_if_t< std::is_arithmetic_v< T >, Var & > operator* (const T &ConstValue) const
 
template<typename T >
std::enable_if_t< std::is_arithmetic_v< T >, Var & > operator/ (const T &ConstValue) const
 
Varoperator+= (Var &Other)
 
Varoperator-= (Var &Other)
 
Varoperator*= (Var &Other)
 
Varoperator/= (Var &Other)
 
template<typename T >
std::enable_if_t< std::is_arithmetic_v< T >, Var & > operator+= (const T &ConstValue)
 
template<typename T >
std::enable_if_t< std::is_arithmetic_v< T >, Var & > operator-= (const T &ConstValue)
 
template<typename T >
std::enable_if_t< std::is_arithmetic_v< T >, Var & > operator*= (const T &ConstValue)
 
template<typename T >
std::enable_if_t< std::is_arithmetic_v< T >, Var & > operator/= (const T &ConstValue)
 
Varoperator> (const Var &Other) const
 Define comparison operators.
 
Varoperator< (const Var &Other) const
 
Varoperator>= (const Var &Other) const
 
Varoperator<= (const Var &Other) const
 
Varoperator== (const Var &Other) const
 
Varoperator!= (const Var &Other) const
 
template<typename T >
std::enable_if_t< std::is_arithmetic_v< T >, Var & > operator> (const T &ConstValue) const
 
template<typename T >
std::enable_if_t< std::is_arithmetic_v< T >, Var & > operator>= (const T &ConstValue) const
 
template<typename T >
std::enable_if_t< std::is_arithmetic_v< T >, Var & > operator< (const T &ConstValue) const
 
template<typename T >
std::enable_if_t< std::is_arithmetic_v< T >, Var & > operator<= (const T &ConstValue) const
 
template<typename T >
std::enable_if_t< std::is_arithmetic_v< T >, Var & > operator== (const T &ConstValue) const
 
template<typename T >
std::enable_if_t< std::is_arithmetic_v< T >, Var & > operator!= (const T &ConstValue) const
 
Varoperator= (const Var &Other)
 
template<typename T , typename = std::enable_if<std::is_arithmetic_v<T>>>
Varoperator= (const T &ConstValue)
 
Varoperator[] (size_t I)
 End of comparison operators.
 
Varoperator[] (const Var &I)
 

Public Attributes

AllocaInst * Alloca
 
FuncFn
 
Type * PointerElemType
 

Constructor & Destructor Documentation

◆ Var()

proteus::Var::Var ( AllocaInst *  Alloca,
Func Fn,
Type *  PointerElemType = nullptr 
)

Member Function Documentation

◆ getName()

StringRef proteus::Var::getName ( )

◆ getValue()

Value * proteus::Var::getValue ( ) const

◆ getValueType()

Type * proteus::Var::getValueType ( ) const

◆ isPointer()

bool proteus::Var::isPointer ( ) const

◆ operator!=() [1/2]

template<typename T >
std::enable_if_t< std::is_arithmetic_v< T >, Var & > proteus::Var::operator!= ( const T &  ConstValue) const

◆ operator!=() [2/2]

Var & proteus::Var::operator!= ( const Var Other) const

◆ operator*() [1/2]

template<typename T >
std::enable_if_t< std::is_arithmetic_v< T >, Var & > proteus::Var::operator* ( const T &  ConstValue) const

◆ operator*() [2/2]

Var & proteus::Var::operator* ( const Var Other) const

◆ operator*=() [1/2]

template<typename T >
std::enable_if_t< std::is_arithmetic_v< T >, Var & > proteus::Var::operator*= ( const T &  ConstValue)

◆ operator*=() [2/2]

Var & proteus::Var::operator*= ( Var Other)

◆ operator+() [1/2]

template<typename T >
std::enable_if_t< std::is_arithmetic_v< T >, Var & > proteus::Var::operator+ ( const T &  ConstValue) const

◆ operator+() [2/2]

Var & proteus::Var::operator+ ( const Var Other) const

◆ operator+=() [1/2]

template<typename T >
std::enable_if_t< std::is_arithmetic_v< T >, Var & > proteus::Var::operator+= ( const T &  ConstValue)

◆ operator+=() [2/2]

Var & proteus::Var::operator+= ( Var Other)

◆ operator-() [1/2]

template<typename T >
std::enable_if_t< std::is_arithmetic_v< T >, Var & > proteus::Var::operator- ( const T &  ConstValue) const

◆ operator-() [2/2]

Var & proteus::Var::operator- ( const Var Other) const

◆ operator-=() [1/2]

template<typename T >
std::enable_if_t< std::is_arithmetic_v< T >, Var & > proteus::Var::operator-= ( const T &  ConstValue)

◆ operator-=() [2/2]

Var & proteus::Var::operator-= ( Var Other)

◆ operator/() [1/2]

template<typename T >
std::enable_if_t< std::is_arithmetic_v< T >, Var & > proteus::Var::operator/ ( const T &  ConstValue) const

◆ operator/() [2/2]

Var & proteus::Var::operator/ ( const Var Other) const

◆ operator/=() [1/2]

template<typename T >
std::enable_if_t< std::is_arithmetic_v< T >, Var & > proteus::Var::operator/= ( const T &  ConstValue)

◆ operator/=() [2/2]

Var & proteus::Var::operator/= ( Var Other)

◆ operator<() [1/2]

template<typename T >
std::enable_if_t< std::is_arithmetic_v< T >, Var & > proteus::Var::operator< ( const T &  ConstValue) const

◆ operator<() [2/2]

Var & proteus::Var::operator< ( const Var Other) const

◆ operator<=() [1/2]

template<typename T >
std::enable_if_t< std::is_arithmetic_v< T >, Var & > proteus::Var::operator<= ( const T &  ConstValue) const

◆ operator<=() [2/2]

Var & proteus::Var::operator<= ( const Var Other) const

◆ operator=() [1/2]

template<typename T , typename >
Var & proteus::Var::operator= ( const T &  ConstValue)

◆ operator=() [2/2]

Var & proteus::Var::operator= ( const Var Other)

◆ operator==() [1/2]

template<typename T >
std::enable_if_t< std::is_arithmetic_v< T >, Var & > proteus::Var::operator== ( const T &  ConstValue) const

◆ operator==() [2/2]

Var & proteus::Var::operator== ( const Var Other) const

◆ operator>() [1/2]

template<typename T >
std::enable_if_t< std::is_arithmetic_v< T >, Var & > proteus::Var::operator> ( const T &  ConstValue) const

◆ operator>() [2/2]

Var & proteus::Var::operator> ( const Var Other) const

Define comparison operators.

◆ operator>=() [1/2]

template<typename T >
std::enable_if_t< std::is_arithmetic_v< T >, Var & > proteus::Var::operator>= ( const T &  ConstValue) const

◆ operator>=() [2/2]

Var & proteus::Var::operator>= ( const Var Other) const

◆ operator[]() [1/2]

Var & proteus::Var::operator[] ( const Var I)

◆ operator[]() [2/2]

Var & proteus::Var::operator[] ( size_t  I)

End of comparison operators.

◆ storePointer()

void proteus::Var::storePointer ( Value *  Ptr)

◆ storeValue()

void proteus::Var::storeValue ( Value *  Val)

Member Data Documentation

◆ Alloca

AllocaInst* proteus::Var::Alloca

◆ Fn

Func& proteus::Var::Fn

◆ PointerElemType

Type* proteus::Var::PointerElemType

The documentation for this struct was generated from the following files: