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

Last change on this file since 4959 was 4959, checked in by nmedfort, 3 years ago

Initial modifications to Pablo Compiler and Kernel Builder to support circular buffers for Lookahead.

File size: 1.3 KB
Line 
1#ifndef PIPELINE_H
2#define PIPELINE_H
3/*
4 *  Copyright (c) 2016 International Characters.
5 *  This software is licensed to the public under the Open Software License 3.0.
6 */
7
8
9#include <IDISA/idisa_builder.h>
10#include <llvm/IR/Function.h>
11#include <llvm/IR/Module.h>
12#include "kernel.h"
13
14namespace llvm {
15    class Value;
16    class Module;
17    class ExecutionEngine;
18    class VectorType;
19    class PointerType;
20    class Constant;
21    class FunctionType;
22    class Function;
23    class BasicBlock;
24    class Type;
25}
26
27namespace pablo { class PabloFunction; class PabloBlock; }
28
29using namespace llvm;
30
31class PipelineBuilder{
32public:
33        PipelineBuilder(Module * m, IDISA::IDISA_Builder * b);
34        ~PipelineBuilder();
35
36        void CreateKernels(pablo::PabloFunction * function, bool isNameExpression);
37    void ExecuteKernels();
38
39private:
40        Module *                            mMod;
41    IDISA::IDISA_Builder *              iBuilder;
42    KernelBuilder *                     mS2PKernel;
43    KernelBuilder *                     mICgrepKernel;   
44    KernelBuilder *                     mScanMatchKernel;
45    int                                 mFileBufIdx;
46    int                                 mFileSizeIdx;
47    int                                 mFileNameIdx;
48    Type*                               mBitBlockType;
49    int                                 mBlockSize;
50};
51
52#endif // PIPELINE_H
Note: See TracBrowser for help on using the repository browser.