Ignore:
Timestamp:
Jul 23, 2018, 4:56:33 AM (7 months ago)
Author:
xwa163
Message:
  1. More experiment on lz4 grep
  2. Improve performance of lzparabix grep
File:
1 edited

Legend:

Unmodified
Added
Removed
  • icGREP/icgrep-devel/icgrep/kernels/lz4/aio/lz4_sequential_aio_base.h

    r6118 r6132  
    2828    // ---- Constant
    2929    const static unsigned int ACCELERATION_WIDTH = 64;
     30    const unsigned mBlockSize;
    3031
    3132    // ---- Kernel Methods
     
    3637                                   llvm::Value *lz4BlockEnd);
    3738
    38     std::pair<std::pair<llvm::Value *, llvm::Value *>, llvm::Value *>
    39     doAcceleration(const std::unique_ptr<KernelBuilder> &b, llvm::Value *beginTokenPos,
    40                    llvm::Value *blockEnd);
     39    std::pair<std::pair<llvm::Value *, llvm::Value *>, llvm::Value *> doAcceleration(
     40            const std::unique_ptr<KernelBuilder> &b,
     41            llvm::Value *beginTokenPos,
     42            llvm::Value *blockStart,
     43            llvm::Value *blockEnd);
    4144
    4245
    43     virtual llvm::Value *processLz4Sequence(const std::unique_ptr<KernelBuilder> &b,
    44                                     llvm::Value *beginTokenPos, llvm::Value *lz4BlockEnd);
     46    virtual llvm::Value *processLz4Sequence(
     47            const std::unique_ptr<KernelBuilder> &b,
     48            llvm::Value *beginTokenPos,
     49            llvm::Value *lz4BlockStart,
     50            llvm::Value *lz4BlockEnd
     51    );
    4552
    4653    std::pair<llvm::Value*, llvm::Value*> parseMatchInfo(const std::unique_ptr<KernelBuilder> &b, llvm::Value* matchOffsetBeginPos, llvm::Value* tokenValue);
     
    8693    // ---- Methods To Be Override
    8794
     95    virtual void initializationMethod(const std::unique_ptr<KernelBuilder> &b){};
     96    virtual void prepareProcessBlock(const std::unique_ptr<KernelBuilder> &b, llvm::Value* blockStart, llvm::Value* blockEnd){};
     97    virtual void beforeTermination(const std::unique_ptr<KernelBuilder> &b){};
     98
    8899
    89100    virtual void doLiteralCopy(const std::unique_ptr<KernelBuilder> &b, llvm::Value *literalStart,
    90                                llvm::Value *literalLength) = 0;
     101                               llvm::Value *literalLength, llvm::Value* blockStart) = 0;
    91102
    92103    virtual void doMatchCopy(const std::unique_ptr<KernelBuilder> &b, llvm::Value *matchOffset,
     
    98109    virtual void prepareAcceleration(const std::unique_ptr<KernelBuilder> &b, llvm::Value* beginTokenPos) {};
    99110    virtual void doAccelerationLiteralCopy(const std::unique_ptr<KernelBuilder> &b, llvm::Value *literalStart,
    100                                            llvm::Value *literalLength) {this->doLiteralCopy(b, literalStart, literalLength);}
     111                                           llvm::Value *literalLength, llvm::Value* blockStart) {this->doLiteralCopy(b, literalStart, literalLength, blockStart);}
    101112    virtual void doAccelerationMatchCopy(const std::unique_ptr<KernelBuilder> &b, llvm::Value *matchOffset,
    102113                                         llvm::Value *matchLength) {this->doMatchCopy(b, matchOffset, matchLength);}
Note: See TracChangeset for help on using the changeset viewer.