source: icGREP/icgrep-devel/icgrep/kernels/lz4/lz4_deposit_uncompressed.h @ 5864

Last change on this file since 5864 was 5864, checked in by xwa163, 21 months ago

Add LZ4D extract deposit related kernel, target and test cases

File size: 1.3 KB
RevLine 
[5864]1//
2// Created by wxy325 on 2017/7/9.
3//
4
5#ifndef ICGREP_LZ4_DEPOSIT_UNCOMPRESSED_H
6#define ICGREP_LZ4_DEPOSIT_UNCOMPRESSED_H
7
8#include "kernels/kernel.h"
9
10namespace llvm {
11    class Module;
12    class Function;
13    class BasicBlock;
14    class Value;
15}
16
17namespace IDISA { class IDISA_Builder; }
18
19namespace kernel {
20    class LZ4DepositUncompressedKernel : SegmentOrientedKernel {
21    public:
22        LZ4DepositUncompressedKernel(const std::unique_ptr<kernel::KernelBuilder> & iBuilder);
23    protected:
24        virtual void generateDoSegmentMethod(const std::unique_ptr<KernelBuilder> &iBuilder) override;
25    private:
26        inline llvm::Value* loadCurrentUncompressedData(const std::unique_ptr<kernel::KernelBuilder> & iBuilder, const std::string& name);
27        inline llvm::Value* generateLoadCircularInput(const std::unique_ptr<KernelBuilder> &iBuilder, std::string inputBufferName, llvm::Value* offset, llvm::Type* pointerType);
28        inline size_t getInputBufferSize(const std::unique_ptr<KernelBuilder> &iBuilder, std::string bufferName);
29        inline void increaseCurrentUncompressedDataIndex(const std::unique_ptr<KernelBuilder> &iBuilder);
30        inline void generateDepositUncompressed(const std::unique_ptr<KernelBuilder> &iBuilder);
31    };
32}
33
34
35
36
37#endif //ICGREP_LZ4_DEPOSIT_UNCOMPRESSED_H
Note: See TracBrowser for help on using the repository browser.