[RUNTIME] Added option to print LLVM-IR

Also includes appropriate driver code change for that
This commit is contained in:
Philippe Tillet
2021-01-31 01:01:32 -05:00
parent 7ba242fcce
commit 0b025db2ee
5 changed files with 120 additions and 82 deletions

View File

@@ -44,11 +44,8 @@ public:
const std::string &features,
file_type_t file_type);
virtual std::unique_ptr<buffer> symbol(const char * name) const = 0;
std::string llir() const { return llir_; }
int spilled() const { return spilled_; }
private:
std::string llir_;
protected:
int spilled_;
};
@@ -63,15 +60,18 @@ public:
// CUDA
class cu_module: public module {
std::string compile_llvm_module(std::unique_ptr<llvm::Module> module, driver::device* device);
void init_from_ptx(const std::string& ptx);
public:
cu_module(driver::device* device, std::unique_ptr<llvm::Module> module);
cu_module(driver::device* device, const std::string& source);
std::unique_ptr<buffer> symbol(const char * name) const;
std::string llir() const { return llir_; }
const std::string& ptx() const { return ptx_; }
private:
std::string ptx_;
std::string llir_;
};

View File

@@ -82,6 +82,7 @@ public:
void operator()(void* args, size_t args_size, driver::stream *stream, const std::vector<size_t>& grid) const;
// getters
const std::vector<arg_type>& get_sig() const { return sig_; }
std::string get_asm(asm_mode_t mode);
private:
void init_ir (const std::string &src);