Ignore:
Timestamp:
Apr 5, 2018, 4:03:37 AM (19 months ago)
Author:
xwa163
Message:
  1. Add attributes to disable some features of multiblock kernel
  2. Fix bug for lz4d new approach in large data, pass all test cases
  3. Disable lz4d related test cases for old approach
File:
1 edited

Legend:

Unmodified
Added
Removed
  • icGREP/icgrep-devel/icgrep/toolchain/pipeline.cpp

    r5921 r5941  
    648648
    649649            const Binding & output = kernel->getStreamOutput(buffer);
     650
     651            if (output.isDisableSufficientChecking()) {
     652                continue;
     653            }
     654
    650655            const auto name = output.getName();
    651656            BasicBlock * const sufficient = b->CreateBasicBlock(name + "HasOutputSpace");
     
    724729        for (const StreamSetBuffer * buffer : I->second) {
    725730            const Binding & input = kernel->getStreamInput(buffer);
     731            if (input.isDisableSufficientChecking()) {
     732                continue;
     733            }
     734
    726735            const auto name = input.getName();
    727736            BasicBlock * const sufficient = b->CreateBasicBlock(name + "HasInputData");
     
    734743                const auto ub = kernel->getUpperBound(input.getRate()); assert (ub > 0);
    735744                strideLength = b->getSize(ceiling(ub * kernel->getStride()) - 1);
    736             }
    737 
    738             if (input.isConstantStrideLengthOne()) {
    739                 // TODO workaround here
    740                 strideLength = b->getSize(1);
    741745            }
    742746
     
    754758          //  b->CallPrintInt("< " + kernel->getName() + "_" + name + "_unprocessed", unprocessed);
    755759
    756             Value * const hasSufficientData = input.isConstantStrideLengthOne() ?
    757                                               b->CreateOr(b->CreateICmpUGE(unprocessed, strideLength), isFinal) :
    758                                               b->CreateOr(b->CreateICmpUGT(unprocessed, strideLength), isFinal);
    759 //            Value * const hasSufficientData = b->CreateOr(b->CreateICmpUGT(unprocessed, strideLength), isFinal);
    760 //            Value * const hasSufficientData = b->CreateOr(b->CreateICmpUGE(unprocessed, strideLength), isFinal);
     760            Value * const hasSufficientData = b->CreateOr(b->CreateICmpUGT(unprocessed, strideLength), isFinal);
    761761
    762762          //  b->CallPrintInt("* < " + kernel->getName() + "_" + name + "_sufficientData", hasSufficientData);
Note: See TracChangeset for help on using the changeset viewer.