|
| FuncBase (JitModule &J, FunctionCallee FC) |
|
Function * | getFunction () |
|
AllocaInst * | emitAlloca (Type *Ty, StringRef Name, AddressSpace AS=AddressSpace::DEFAULT) |
|
Value * | emitArrayCreate (Type *Ty, AddressSpace AT, StringRef Name) |
|
IRBuilderBase & | getIRBuilder () |
|
Var & | declVarInternal (StringRef Name, Type *Ty, Type *PointerElemType=nullptr) |
|
template<typename T > |
Var & | declVar (StringRef Name="var") |
|
template<typename T > |
Var & | declVar (size_t NElem, AddressSpace AS=AddressSpace::DEFAULT, StringRef Name="array_var") |
|
template<typename T > |
Var & | defVar (T Val, StringRef Name="var") |
|
Var & | defVar (const Var &Val, StringRef Name="var") |
|
template<typename T > |
Var & | defRuntimeConst (T Val, StringRef Name="run.const.var") |
|
template<typename... ArgT> |
auto | defRuntimeConsts (ArgT &&...Args) |
|
template<typename... Ts> |
void | declArgs () |
|
Var & | getArg (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 Sig > |
std::enable_if_t<!std::is_void_v< typename FnSig< Sig >::RetT >, Var & > | call (StringRef Name) |
|
template<typename Sig > |
std::enable_if_t< std::is_void_v< typename FnSig< Sig >::RetT >, void > | call (StringRef Name) |
|
template<typename Sig , typename... ArgVars> |
std::enable_if_t<!std::is_void_v< typename FnSig< Sig >::RetT >, Var & > | call (StringRef Name, ArgVars &&...ArgsVars) |
|
template<typename Sig , typename... ArgVars> |
std::enable_if_t< std::is_void_v< typename FnSig< Sig >::RetT >, void > | call (StringRef Name, ArgVars &&...ArgsVars) |
|
template<typename BuiltinFuncT > |
decltype(auto) | callBuiltin (BuiltinFuncT &&BuiltinFunc) |
|
Var & | atomicAdd (Var &Addr, Var &Val) |
|
Var & | atomicSub (Var &Addr, Var &Val) |
|
Var & | atomicMax (Var &Addr, Var &Val) |
|
Var & | atomicMin (Var &Addr, Var &Val) |
|
template<typename BodyLambda = EmptyLambda> |
auto | forLoop (const LoopBoundInfo &Bounds, BodyLambda &&Body={}) |
|
template<typename... LoopBuilders> |
auto | buildLoopNest (LoopBuilders &&...Loops) |
|
void | ret (std::optional< std::reference_wrapper< Var > > OptRet=std::nullopt) |
|
StringRef | getName () const |
|
void | setName (StringRef NewName) |
|
template<typename T > |
std::enable_if_t< std::is_arithmetic_v< T >, Var & > | convert (Var &V) |
|