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

Last change on this file since 6132 was 6132, checked in by xwa163, 8 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.