|
| | Func (JitModule &J, FunctionCallee FC, Dispatcher &Dispatch) |
| |
| RetT | operator() (ArgT... Args) |
| |
| void | declArgs () |
| |
| auto | getArgs () |
| |
| template<std::size_t Idx> |
| auto & | getArg () |
| |
| auto | getCompiledFunc () const |
| |
| void | setCompiledFunc (RetT(*CompiledFuncIn)(ArgT...)) |
| |
| | FuncBase (JitModule &J, FunctionCallee FC) |
| |
| TargetModelType | getTargetModel () const |
| |
| Function * | getFunction () |
| |
| AllocaInst * | emitAlloca (Type *Ty, StringRef Name, AddressSpace AS=AddressSpace::DEFAULT) |
| |
| Value * | emitArrayCreate (Type *Ty, AddressSpace AT, StringRef Name) |
| |
| IRBuilderBase & | getIRBuilder () |
| |
| template<typename T > |
| Var< T > | declVar (StringRef Name="var") |
| |
| template<typename T > |
| Var< T > | declVar (size_t NElem, AddressSpace AS=AddressSpace::DEFAULT, StringRef Name="array_var") |
| |
| template<typename T > |
| Var< T > | defVar (const T &Val, StringRef Name="var") |
| |
| template<typename T , typename U > |
| Var< T > | defVar (const Var< U > &Var, StringRef Name="var") |
| |
| template<typename T > |
| Var< T > | defRuntimeConst (const T &Val, StringRef Name="run.const.var") |
| |
| template<typename... ArgT> |
| auto | defRuntimeConsts (ArgT &&...Args) |
| |
| void | beginFunction (const char *File=__builtin_FILE(), int Line=__builtin_LINE()) |
| |
| void | endFunction () |
| |
| void | beginIf (const Var< bool > &CondVar, const char *File=__builtin_FILE(), int Line=__builtin_LINE()) |
| |
| void | endIf () |
| |
| template<typename T > |
| void | beginFor (Var< T > &IterVar, const Var< T > &InitVar, const Var< T > &UpperBound, const Var< T > &IncVar, const char *File=__builtin_FILE(), int Line=__builtin_LINE()) |
| |
| void | endFor () |
| |
| template<typename CondLambda > |
| void | beginWhile (CondLambda &&Cond, const char *File=__builtin_FILE(), int Line=__builtin_LINE()) |
| |
| void | endWhile () |
| |
| template<typename Sig > |
| std::enable_if_t<!std::is_void_v< typename FnSig< Sig >::RetT >, Var< typename FnSig< Sig >::RetT > > | 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< typename FnSig< Sig >::RetT > > | 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) |
| |
| template<typename T > |
| std::enable_if_t< std::is_arithmetic_v< T >, Var< T > > | atomicAdd (const Var< T * > &Addr, const Var< T > &Val) |
| |
| template<typename T > |
| std::enable_if_t< std::is_arithmetic_v< T >, Var< T > > | atomicSub (const Var< T * > &Addr, const Var< T > &Val) |
| |
| template<typename T > |
| std::enable_if_t< std::is_arithmetic_v< T >, Var< T > > | atomicMax (const Var< T * > &Addr, const Var< T > &Val) |
| |
| template<typename T > |
| std::enable_if_t< std::is_arithmetic_v< T >, Var< T > > | atomicMin (const Var< T * > &Addr, const Var< T > &Val) |
| |
| template<typename T , typename BodyLambda = EmptyLambda> |
| auto | forLoop (std::initializer_list< Var< T > > Bounds, BodyLambda &&Body={}) |
| |
| template<typename... LoopBuilders> |
| auto | buildLoopNest (LoopBuilders &&...Loops) |
| |
| template<typename T > |
| void | ret (const Var< T > &RetVal) |
| |
| void | ret () |
| |
| StringRef | getName () const |
| |
| void | setName (StringRef NewName) |
| |
| template<typename U , typename T > |
| std::enable_if_t< std::is_convertible_v< T, U >, Var< U > > | convert (const Var< T > &V) |
| |