source: icGREP/icgrep-devel/icgrep/kernels/pipeline.h @ 5063

Last change on this file since 5063 was 5063, checked in by cameron, 3 years ago

New kernel infrastructure

File size: 932 bytes
Line 
1/*
2 *  Copyright (c) 2016 International Characters.
3 *  This software is licensed to the public under the Open Software License 3.0.
4 */
5#ifndef PIPELINE_H
6#define PIPELINE_H
7
8#include <IDISA/idisa_builder.h>
9#include <kernels/kernel.h>
10
11namespace llvm {
12    class Module;
13    class Function;
14    class Type;
15}
16
17namespace pablo {
18    class PabloFunction;
19    class PabloBlock;
20    class PabloKernel;
21}
22
23using namespace llvm;
24
25namespace kernel {
26
27class PipelineBuilder {
28public:
29    PipelineBuilder(llvm::Module * m, IDISA::IDISA_Builder * b);
30
31    ~PipelineBuilder();
32
33    llvm::Function * ExecuteKernels(pablo::PabloFunction * function, bool isNameExpression, bool CountOnly, bool UTF_16);
34
35private:
36    llvm::Module *                      mMod;
37    IDISA::IDISA_Builder *              iBuilder;
38    llvm::Type *                        mBitBlockType;
39    int                                 mBlockSize;
40};
41
42}
43
44#endif // PIPELINE_H
Note: See TracBrowser for help on using the repository browser.