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 Referenceabstract

#include <Var.hpp>

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

Public Member Functions

virtual ~Var ()=default
 
 Var (AllocaInst *Alloca, FuncBase &Fn)
 
 Var (FuncBase &Fn)
 
 Var (const Var &)=delete
 
 Var (Var &&)=delete
 
virtual StringRef getName () const =0
 
virtual Value * getValue () const =0
 
virtual Type * getValueType () const =0
 
virtual void storeValue (Value *Val)=0
 
virtual Value * getPointerValue () const =0
 
virtual void storePointer (Value *Ptr)=0
 
virtual AllocaInstgetAlloca () const
 
virtual VarKind kind () const
 End of comparison operators.
 
virtual Varindex (size_t I)=0
 
virtual Varindex (const Var &I)=0
 
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
 
Varoperator+= (Var &Other)
 
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)
 
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)
 
Varoperator[] (const Var &I)
 

Public Attributes

AllocaInstAlloca
 
FuncBaseFn
 
VarKind Kind = VarKind::Invalid
 

Constructor & Destructor Documentation

◆ ~Var()

virtual proteus::Var::~Var ( )
virtualdefault

◆ Var() [1/4]

proteus::Var::Var ( AllocaInst Alloca,
FuncBase Fn 
)

◆ Var() [2/4]

proteus::Var::Var ( FuncBase Fn)

◆ Var() [3/4]

proteus::Var::Var ( const Var )
delete

◆ Var() [4/4]

proteus::Var::Var ( Var &&  )
delete

Member Function Documentation

◆ getAlloca()

AllocaInst * proteus::Var::getAlloca ( ) const
virtual

Reimplemented in proteus::ScalarVar, and proteus::PointerVar.

◆ getName()

virtual StringRef proteus::Var::getName ( ) const
pure virtual

◆ getPointerValue()

virtual Value * proteus::Var::getPointerValue ( ) const
pure virtual

◆ getValue()

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

◆ getValueType()

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

◆ index() [1/2]

virtual Var & proteus::Var::index ( const Var I)
pure virtual

◆ index() [2/2]

virtual Var & proteus::Var::index ( size_t  I)
pure virtual

◆ kind()

VarKind proteus::Var::kind ( ) const
virtual

End of comparison operators.

Reimplemented in proteus::ScalarVar, proteus::PointerVar, and proteus::ArrayVar.

◆ 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)

◆ 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)

◆ storePointer()

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

◆ storeValue()

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

Member Data Documentation

◆ Alloca

AllocaInst* proteus::Var::Alloca

◆ Fn

FuncBase& proteus::Var::Fn

◆ Kind

VarKind proteus::Var::Kind = VarKind::Invalid

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