source: icGREP/icgrep-devel/icgrep/kernels/lz4/lz4_block_decoder.h @ 6081

Last change on this file since 6081 was 6081, checked in by xwa163, 14 months ago
  1. Add command line parameter -enable-gather and -enable-scatter in lz4 parallel grep
  2. fix some bugs for AVX512 machine
File size: 1.1 KB
Line 
1
2#ifndef ICGREP_LZ4_BLOCK_DECODER_NEW_H
3#define ICGREP_LZ4_BLOCK_DECODER_NEW_H
4
5
6#include "kernels/kernel.h"
7#include <map>
8#include <vector>
9#include <string>
10
11namespace llvm {
12    class Module;
13    class Function;
14    class BasicBlock;
15    class Value;
16}
17
18namespace IDISA { class IDISA_Builder; }
19
20namespace kernel {
21
22class LZ4BlockDecoderNewKernel : public SegmentOrientedKernel {
23public:
24    LZ4BlockDecoderNewKernel(const std::unique_ptr<kernel::KernelBuilder> &iBuilder, std::string&& kernelName = "LZ4BlockDecoderKernel");
25protected:
26    void generateDoSegmentMethod(const std::unique_ptr<KernelBuilder> & b) override;
27private:
28    llvm::Value *generateLoadInput(const std::unique_ptr<KernelBuilder> &iBuilder, llvm::Value *offset);
29
30    void appendOutput(const std::unique_ptr<KernelBuilder> & iBuilder, llvm::Value *isCompressed, llvm::Value *blockStart, llvm::Value *blockEnd);
31
32    void generateStoreNumberOutput(const std::unique_ptr<KernelBuilder> &iBuilder, const std::string &outputBufferName, llvm::Value *offset, llvm::Value *value);
33
34};
35
36}
37
38
39#endif //ICGREP_LZ4_BLOCK_DECODER_NEW_H
Note: See TracBrowser for help on using the repository browser.