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

Last change on this file since 6020 was 6020, checked in by xwa163, 5 months ago
  1. New version of lz4_swizzled_match_copy kernel with higher performance
  2. Adjust related pipeline code
  3. Remove legacy comments
File size: 1.2 KB
Line 
1
2#ifndef ICGREP_LZ4_DEPOSIT_UNCOMPRESSED_H
3#define ICGREP_LZ4_DEPOSIT_UNCOMPRESSED_H
4
5#include "kernels/kernel.h"
6
7namespace llvm {
8    class Module;
9    class Function;
10    class BasicBlock;
11    class Value;
12}
13
14namespace IDISA { class IDISA_Builder; }
15
16namespace kernel {
17    class LZ4DepositUncompressedKernel : SegmentOrientedKernel {
18    public:
19        LZ4DepositUncompressedKernel(const std::unique_ptr<kernel::KernelBuilder> & iBuilder);
20    protected:
21        virtual void generateDoSegmentMethod(const std::unique_ptr<KernelBuilder> &iBuilder) override;
22    private:
23        inline llvm::Value* loadCurrentUncompressedData(const std::unique_ptr<kernel::KernelBuilder> & iBuilder, const std::string& name);
24        inline llvm::Value* generateLoadCircularInput(const std::unique_ptr<KernelBuilder> &iBuilder, std::string inputBufferName, llvm::Value* offset, llvm::Type* pointerType);
25        inline size_t getInputBufferSize(const std::unique_ptr<KernelBuilder> &iBuilder, std::string bufferName);
26        inline void increaseCurrentUncompressedDataIndex(const std::unique_ptr<KernelBuilder> &iBuilder);
27        inline void generateDepositUncompressed(const std::unique_ptr<KernelBuilder> &iBuilder);
28    };
29}
30
31
32
33
34#endif //ICGREP_LZ4_DEPOSIT_UNCOMPRESSED_H
Note: See TracBrowser for help on using the repository browser.