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

#include <Func.hpp>

Public Member Functions

 Func (FunctionCallee FC)
 
Function * getFunction ()
 
AllocaInst * emitAlloca (Type *Ty, StringRef Name)
 
IRBuilderBase & getIRB ()
 
VardeclVarInternal (StringRef Name, Type *Ty, Type *PointerElemType=nullptr)
 
template<typename T >
VardeclVar (StringRef Name)
 
template<typename... Ts>
void declArgs ()
 
VargetArg (unsigned int ArgNo)
 
void beginFunction (const char *File=__builtin_FILE(), int Line=__builtin_LINE())
 
void endFunction ()
 
void beginIf (Var &CondVar, const char *File=__builtin_FILE(), int Line=__builtin_LINE())
 
void endIf ()
 
void beginFor (Var &IterVar, Var &InitVar, Var &UpperBound, Var &IncVar, const char *File=__builtin_FILE(), int Line=__builtin_LINE())
 
void endFor ()
 
template<typename RetT , typename... ArgT>
void call (StringRef Name)
 
VarcallBuiltin (function_ref< Var &(Func &)> Lower)
 
void ret (std::optional< std::reference_wrapper< Var > > OptRet=std::nullopt)
 
StringRef getName ()
 

Constructor & Destructor Documentation

◆ Func()

proteus::Func::Func ( FunctionCallee  FC)

Member Function Documentation

◆ beginFor()

void proteus::Func::beginFor ( Var IterVar,
Var InitVar,
Var UpperBound,
Var IncVar,
const char *  File = __builtin_FILE(),
int  Line = __builtin_LINE() 
)

◆ beginFunction()

void proteus::Func::beginFunction ( const char *  File = __builtin_FILE(),
int  Line = __builtin_LINE() 
)

◆ beginIf()

void proteus::Func::beginIf ( Var CondVar,
const char *  File = __builtin_FILE(),
int  Line = __builtin_LINE() 
)

◆ call()

template<typename RetT , typename... ArgT>
void proteus::Func::call ( StringRef  Name)

◆ callBuiltin()

Var & proteus::Func::callBuiltin ( function_ref< Var &(Func &)>  Lower)
inline

◆ declArgs()

template<typename... Ts>
void proteus::Func::declArgs ( )
inline

◆ declVar()

template<typename T >
Var & proteus::Func::declVar ( StringRef  Name)
inline

◆ declVarInternal()

Var & proteus::Func::declVarInternal ( StringRef  Name,
Type *  Ty,
Type *  PointerElemType = nullptr 
)

◆ emitAlloca()

AllocaInst * proteus::Func::emitAlloca ( Type *  Ty,
StringRef  Name 
)

◆ endFor()

void proteus::Func::endFor ( )

◆ endFunction()

void proteus::Func::endFunction ( )

◆ endIf()

void proteus::Func::endIf ( )

◆ getArg()

Var & proteus::Func::getArg ( unsigned int  ArgNo)

◆ getFunction()

Function * proteus::Func::getFunction ( )

◆ getIRB()

IRBuilderBase & proteus::Func::getIRB ( )

◆ getName()

StringRef proteus::Func::getName ( )
inline

◆ ret()

void proteus::Func::ret ( std::optional< std::reference_wrapper< Var > >  OptRet = std::nullopt)

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