Ignore:
Timestamp:
May 30, 2018, 12:41:51 AM (16 months ago)
Author:
xwa163
Message:
  1. Enable swizzled match copy in multiplexing lz4_grep for some special case
  2. Implement some lz4 AIO (all-in-one) pipeline and related kernel
File:
1 edited

Legend:

Unmodified
Added
Removed
  • icGREP/icgrep-devel/icgrep/lz4_grep.cpp

    r6040 r6059  
    4949
    5050static cl::OptionCategory lz4GrepDebugFlags("LZ4 Grep Debug Flags", "lz4d debug options");
     51static cl::opt<bool> aio("aio", cl::desc("Use All-in-One Approach for LZ4 Decompression"), cl::init(false), cl::cat(lz4GrepDebugFlags));
    5152static cl::opt<bool> swizzledDecompression("swizzled-decompression", cl::desc("Use swizzle approach for decompression"), cl::init(false), cl::cat(lz4GrepDebugFlags));
    5253static cl::opt<bool> enableGather("enable-gather", cl::desc("Enable gather intrinsics for bitstream PDEP"), cl::init(false), cl::cat(lz4GrepDebugFlags));
     
    7576    re::RE * re_ast = re::RE_Parser::parse(regexString, re::MULTILINE_MODE_FLAG);
    7677    LZ4GrepGenerator g(enableMultiplexing);
    77     if (countOnly) {
     78    if (aio) {
     79        if (enableMultiplexing) {
     80            g.generateMultiplexingSwizzledAioPipeline2(re_ast);
     81        } else if (swizzledDecompression) {
     82            g.generateSwizzledAioPipeline(re_ast);
     83        } else {
     84            g.generateAioPipeline(re_ast);
     85        }
     86
     87        auto main = g.getMainFunc();
     88        main(fileBuffer, lz4Frame.getBlocksStart(), lz4Frame.getBlocksStart() + lz4Frame.getBlocksLength(), lz4Frame.hasBlockChecksum());
     89    } else if (countOnly) {
    7890        if (swizzledDecompression) {
    7991            g.generateSwizzledCountOnlyGrepPipeline(re_ast);
Note: See TracChangeset for help on using the changeset viewer.