/usr/local/lib64/python3.6/site-packages/torch/include/torch/csrc/jit/tensorexpr
NameSizeModeActions
operators/-0755rm
analysis.h58880644editdlrm
block_codegen.h42110644editdlrm
bounds_inference.h22300644editdlrm
bounds_overlap.h33290644editdlrm
codegen.h64020644editdlrm
cpp_codegen.h22780644editdlrm
cpp_intrinsics.h7190644editdlrm
cuda_codegen.h77820644editdlrm
cuda_random.h26420644editdlrm
dim_arg.h8840644editdlrm
eval.h96390644editdlrm
exceptions.h32530644editdlrm
expr.h115880644editdlrm
external_functions.h12740644editdlrm
external_functions_registry.h23430644editdlrm
fwd_decls.h28060644editdlrm
graph_opt.h25530644editdlrm
half_support.h50380644editdlrm
hash_provider.h79300644editdlrm
intrinsic_symbols.h4200644editdlrm
ir.h226220644editdlrm
ir_cloner.h20690644editdlrm
ir_mutator.h20100644editdlrm
ir_printer.h36930644editdlrm
ir_simplifier.h150900644editdlrm
ir_verifier.h12400644editdlrm
ir_visitor.h18250644editdlrm
kernel.h92100644editdlrm
llvm_codegen.h31800644editdlrm
llvm_jit.h19650644editdlrm
loopnest.h215990644editdlrm
mem_dependency_checker.h130030644editdlrm
reduction.h67420644editdlrm
registerizer.h124980644editdlrm
stmt.h211380644editdlrm
tensor.h76400644editdlrm
tensorexpr_init.h2680644editdlrm
types.h38800644editdlrm
unique_name_manager.h9400644editdlrm
var_substitutor.h17530644editdlrm
Edit: /usr/local/lib64/python3.6/site-packages/torch/include/torch/csrc/jit/tensorexpr/llvm_codegen.h (3180B)
#pragma once #ifdef TORCH_ENABLE_LLVM #include #include #include #include #include #include #include namespace torch { namespace jit { namespace tensorexpr { class LLVMCodeGenImpl; class TORCH_API LLVMCodeGen : public CodeGen { public: explicit LLVMCodeGen( StmtPtr stmt, const std::vector& args, at::Device device = at::kCPU, const std::string& kernel_func_name = "func", Dtype dtype = kInt, c10::optional triple = c10::nullopt, c10::optional cpu = c10::nullopt, c10::optional attrs = c10::nullopt); explicit LLVMCodeGen(StmtPtr stmt); LLVMCodeGen() = delete; ~LLVMCodeGen() override; TORCH_API void call(const std::vector& args) override; TORCH_API void call_raw(const std::vector& args) override; at::Tensor empty_strided( c10::IntArrayRef size, c10::IntArrayRef stride, c10::optional dtype_opt, c10::optional layout_opt, c10::optional device_opt, c10::optional pin_memory_opt) override; template T value() { return value(nullptr); } template T value(std::vector& args) { return value(args.data()); } template T value(void** args) { T (*fp)(void**) = (T(*)(void**))getKernelAddress(impl_.get()); T rv = fp(args); return rv; } std::string getCodeText(const std::string& attr = "") override; private: void* getKernelAddress(LLVMCodeGenImpl* impl); std::unique_ptr impl_; }; struct TORCH_API LLVMCodeGenBuilder { using BufferArg = CodeGen::BufferArg; LLVMCodeGenBuilder(StmtPtr stmt, std::vector args) : stmt_(stmt), args_(std::move(args)) {} LLVMCodeGenBuilder& device(at::Device device) { device_ = device; return *this; } LLVMCodeGenBuilder& kernelFuncName(std::string name) { kernelFuncName_ = std::move(name); return *this; } LLVMCodeGenBuilder& dtype(Dtype d) { dtype_ = d; return *this; } LLVMCodeGenBuilder& triple(std::string triple) { triple_ = std::move(triple); return *this; } LLVMCodeGenBuilder& cpu(std::string cpu) { cpu_ = std::move(cpu); return *this; } LLVMCodeGenBuilder& attrs(std::string attrs) { attrs_ = std::move(attrs); return *this; } std::unique_ptr build() { return std::make_unique( stmt_, args_, device_, kernelFuncName_, dtype_, triple_, cpu_, attrs_); } private: StmtPtr stmt_; std::vector args_; at::Device device_ = at::kCPU; std::string kernelFuncName_ = "func"; Dtype dtype_ = kInt; c10::optional triple_ = c10::nullopt; c10::optional cpu_ = c10::nullopt; c10::optional attrs_ = c10::nullopt; }; } // namespace tensorexpr } // namespace jit } // namespace torch #endif // TORCH_ENABLE_LLVM