source: icGREP/icgrep-devel/icgrep/toolchain/NVPTXDriver.h @ 6237

Last change on this file since 6237 was 6184, checked in by nmedfort, 8 months ago

Initial version of PipelineKernel? + revised StreamSet? model.

File size: 948 bytes
Line 
1/*
2 *  Copyright (c) 2017 International Characters.
3 *  This software is licensed to the public under the Open Software License 3.0.
4 *  icgrep is a trademark of International Characters.
5 */
6
7#ifndef NVPTXDRIVER_H
8#define NVPTXDRIVER_H
9
10#include <toolchain/driver.h>
11#include <toolchain/object_cache_manager.h>
12
13class NVPTXDriver final : public BaseDriver {
14    friend class CBuilder;
15public:
16    NVPTXDriver(std::string && moduleName);
17
18    ~NVPTXDriver();
19
20    void addKernel(Kernel * const kernel) override { }
21
22    void generateUncachedKernels() { }
23
24    void * finalizeObject(llvm::Function * mainMethod) override;
25
26    bool hasExternalFunction(const llvm::StringRef /* functionName */) const override { return false; }
27
28protected:
29
30    NVPTXDriver(std::string && moduleName);
31
32private:
33
34    llvm::Function * addLinkFunction(llvm::Module * mod, llvm::StringRef name, llvm::FunctionType * type, void * functionPtr) const override;
35
36};
37
38#endif
Note: See TracBrowser for help on using the repository browser.