Proteus
Programmable JIT compilation and optimization for C/C++ using LLVM
|
#include <Var.hpp>
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 AllocaInst * | getAlloca () const |
virtual VarKind | kind () const |
End of comparison operators. | |
virtual Var & | index (size_t I)=0 |
virtual Var & | index (const Var &I)=0 |
Var & | operator+ (const Var &Other) const |
Var & | operator- (const Var &Other) const |
Var & | operator* (const Var &Other) const |
Var & | operator/ (const Var &Other) const |
Var & | operator% (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 |
Var & | operator+= (Var &Other) |
Var & | operator-= (Var &Other) |
Var & | operator*= (Var &Other) |
Var & | operator/= (Var &Other) |
Var & | operator%= (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) |
Var & | operator> (const Var &Other) const |
Define comparison operators. | |
Var & | operator< (const Var &Other) const |
Var & | operator>= (const Var &Other) const |
Var & | operator<= (const Var &Other) const |
Var & | operator== (const Var &Other) const |
Var & | operator!= (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 |
Var & | operator= (const Var &Other) |
template<typename T , typename = std::enable_if<std::is_arithmetic_v<T>>> | |
Var & | operator= (const T &ConstValue) |
Var & | operator[] (size_t I) |
Var & | operator[] (const Var &I) |
Public Attributes | |
AllocaInst * | Alloca |
FuncBase & | Fn |
VarKind | Kind = VarKind::Invalid |
|
virtualdefault |
proteus::Var::Var | ( | AllocaInst * | Alloca, |
FuncBase & | Fn | ||
) |
proteus::Var::Var | ( | FuncBase & | Fn | ) |
|
delete |
|
virtual |
Reimplemented in proteus::ScalarVar, and proteus::PointerVar.
Implemented in proteus::ScalarVar, proteus::PointerVar, and proteus::ArrayVar.
|
pure virtual |
Implemented in proteus::ScalarVar, proteus::PointerVar, and proteus::ArrayVar.
|
pure virtual |
Implemented in proteus::ScalarVar, proteus::PointerVar, and proteus::ArrayVar.
|
pure virtual |
Implemented in proteus::ScalarVar, proteus::PointerVar, and proteus::ArrayVar.
Implemented in proteus::ScalarVar, proteus::PointerVar, and proteus::ArrayVar.
Implemented in proteus::ScalarVar, proteus::PointerVar, and proteus::ArrayVar.
|
virtual |
End of comparison operators.
Reimplemented in proteus::ScalarVar, proteus::PointerVar, and proteus::ArrayVar.
std::enable_if_t< std::is_arithmetic_v< T >, Var & > proteus::Var::operator!= | ( | const T & | ConstValue | ) | const |
std::enable_if_t< std::is_arithmetic_v< T >, Var & > proteus::Var::operator% | ( | const T & | ConstValue | ) | const |
std::enable_if_t< std::is_arithmetic_v< T >, Var & > proteus::Var::operator%= | ( | const T & | ConstValue | ) |
std::enable_if_t< std::is_arithmetic_v< T >, Var & > proteus::Var::operator* | ( | const T & | ConstValue | ) | const |
std::enable_if_t< std::is_arithmetic_v< T >, Var & > proteus::Var::operator*= | ( | const T & | ConstValue | ) |
std::enable_if_t< std::is_arithmetic_v< T >, Var & > proteus::Var::operator+ | ( | const T & | ConstValue | ) | const |
std::enable_if_t< std::is_arithmetic_v< T >, Var & > proteus::Var::operator+= | ( | const T & | ConstValue | ) |
std::enable_if_t< std::is_arithmetic_v< T >, Var & > proteus::Var::operator- | ( | const T & | ConstValue | ) | const |
std::enable_if_t< std::is_arithmetic_v< T >, Var & > proteus::Var::operator-= | ( | const T & | ConstValue | ) |
std::enable_if_t< std::is_arithmetic_v< T >, Var & > proteus::Var::operator/ | ( | const T & | ConstValue | ) | const |
std::enable_if_t< std::is_arithmetic_v< T >, Var & > proteus::Var::operator/= | ( | const T & | ConstValue | ) |
std::enable_if_t< std::is_arithmetic_v< T >, Var & > proteus::Var::operator< | ( | const T & | ConstValue | ) | const |
std::enable_if_t< std::is_arithmetic_v< T >, Var & > proteus::Var::operator<= | ( | const T & | ConstValue | ) | const |
std::enable_if_t< std::is_arithmetic_v< T >, Var & > proteus::Var::operator== | ( | const T & | ConstValue | ) | const |
std::enable_if_t< std::is_arithmetic_v< T >, Var & > proteus::Var::operator> | ( | const T & | ConstValue | ) | const |
std::enable_if_t< std::is_arithmetic_v< T >, Var & > proteus::Var::operator>= | ( | const T & | ConstValue | ) | const |
Implemented in proteus::ScalarVar, proteus::PointerVar, and proteus::ArrayVar.
Implemented in proteus::ScalarVar, proteus::PointerVar, and proteus::ArrayVar.
AllocaInst* proteus::Var::Alloca |
FuncBase& proteus::Var::Fn |
VarKind proteus::Var::Kind = VarKind::Invalid |