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::ScalarVar Struct Referencefinal

#include <Var.hpp>

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

Public Member Functions

 ScalarVar (AllocaInst *Slot, FuncBase &Fn)
 
StringRef getName () const override
 
Type * getValueType () const override
 
Value * getValue () const override
 
void storeValue (Value *Val) override
 
Value * getPointerValue () const override
 
void storePointer (Value *Ptr) override
 
Varindex (size_t I) override
 
Varindex (const Var &I) override
 
VarKind kind () const override
 End of comparison operators.
 
AllocaInstgetAlloca () const override
 
- Public Member Functions inherited from proteus::Var
virtual ~Var ()=default
 
 Var (AllocaInst *Alloca, FuncBase &Fn)
 
 Var (FuncBase &Fn)
 
 Var (const Var &)=delete
 
 Var (Var &&)=delete
 
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

AllocaInstSlot = nullptr
 
- Public Attributes inherited from proteus::Var
AllocaInstAlloca
 
FuncBaseFn
 
VarKind Kind = VarKind::Invalid
 

Constructor & Destructor Documentation

◆ ScalarVar()

proteus::ScalarVar::ScalarVar ( AllocaInst Slot,
FuncBase Fn 
)
explicit

Member Function Documentation

◆ getAlloca()

AllocaInst * proteus::ScalarVar::getAlloca ( ) const
overridevirtual

Reimplemented from proteus::Var.

◆ getName()

StringRef proteus::ScalarVar::getName ( ) const
overridevirtual

Implements proteus::Var.

◆ getPointerValue()

Value * proteus::ScalarVar::getPointerValue ( ) const
overridevirtual

Implements proteus::Var.

◆ getValue()

Value * proteus::ScalarVar::getValue ( ) const
overridevirtual

Implements proteus::Var.

◆ getValueType()

Type * proteus::ScalarVar::getValueType ( ) const
overridevirtual

Implements proteus::Var.

◆ index() [1/2]

Var & proteus::ScalarVar::index ( const Var I)
overridevirtual

Implements proteus::Var.

◆ index() [2/2]

Var & proteus::ScalarVar::index ( size_t  I)
overridevirtual

Implements proteus::Var.

◆ kind()

VarKind proteus::ScalarVar::kind ( ) const
overridevirtual

End of comparison operators.

Reimplemented from proteus::Var.

◆ storePointer()

void proteus::ScalarVar::storePointer ( Value *  Ptr)
overridevirtual

Implements proteus::Var.

◆ storeValue()

void proteus::ScalarVar::storeValue ( Value *  Val)
overridevirtual

Implements proteus::Var.

Member Data Documentation

◆ Slot

AllocaInst* proteus::ScalarVar::Slot = nullptr

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