source: icGREP/icgrep-devel/icgrep/kernels/lz4/aio/lz4_bytestream_aio.h @ 6135

Last change on this file since 6135 was 6132, checked in by xwa163, 15 months ago
  1. More experiment on lz4 grep
  2. Improve performance of lzparabix grep
File size: 1.3 KB
Line 
1
2#ifndef ICGREP_LZ4_AIO_H
3#define ICGREP_LZ4_AIO_H
4
5#include "kernels/lz4/aio/lz4_sequential_aio_base.h"
6
7namespace kernel {
8
9    class LZ4ByteStreamAioKernel : public LZ4SequentialAioBaseKernel {
10    public:
11        LZ4ByteStreamAioKernel(const std::unique_ptr<kernel::KernelBuilder> &b, bool copyOtherByteStream = false, unsigned blockSize = 4 * 1024 * 1024);
12
13
14    protected:
15        virtual void doLiteralCopy(const std::unique_ptr<KernelBuilder> &b, llvm::Value *literalStart,
16                                   llvm::Value *literalLength, llvm::Value* blockStart) override;
17        virtual void doMatchCopy(const std::unique_ptr<KernelBuilder> &b, llvm::Value *matchOffset,
18                                 llvm::Value *matchLength) override;
19        virtual void setProducedOutputItemCount(const std::unique_ptr<KernelBuilder> &b, llvm::Value* produced) override;
20
21        virtual void initializationMethod(const std::unique_ptr<KernelBuilder> &b) override;
22        virtual void prepareProcessBlock(const std::unique_ptr<KernelBuilder> &b, llvm::Value* blockStart, llvm::Value* blockEnd) override;
23        virtual void beforeTermination(const std::unique_ptr<KernelBuilder> &b) override;
24
25    private:
26        inline std::string getCopyByteStreamName();
27        bool mCopyOtherByteStream;
28
29    };
30
31}
32
33
34
35
36#endif //ICGREP_LZ4_AIO_H
Note: See TracBrowser for help on using the repository browser.