Ignore:
Timestamp:
Jun 8, 2018, 8:51:15 AM (11 months ago)
Author:
cameron
Message:

u32u8.cpp initial check-in

File:
1 edited

Legend:

Unmodified
Added
Removed
  • icGREP/icgrep-devel/icgrep/kernels/pdep_kernel.h

    r6045 r6071  
    5353class StreamExpandKernel final : public MultiBlockKernel {
    5454public:
    55     StreamExpandKernel(const std::unique_ptr<kernel::KernelBuilder> & b, unsigned fw, unsigned streamCount);
     55    StreamExpandKernel(const std::unique_ptr<kernel::KernelBuilder> & b, unsigned fw, unsigned sourceStreamCount, unsigned selectedStreamBase, unsigned selectedStreamCount);
    5656    bool isCachable() const override { return true; }
    5757    bool hasSignature() const override { return false; }
     
    6060private:
    6161    const unsigned mFieldWidth;
    62     const unsigned mStreamCount;
     62    const unsigned mSelectedStreamBase;
     63    const unsigned mSelectedStreamCount;
    6364};
    6465
     
    7778class PDEPFieldDepositKernel final : public MultiBlockKernel {
    7879public:
    79     PDEPFieldDepositKernel(const std::unique_ptr<kernel::KernelBuilder> & b, unsigned fw, unsigned streamCount);
     80    PDEPFieldDepositKernel(const std::unique_ptr<kernel::KernelBuilder> & b, unsigned fw, unsigned streamCount, std::string suffix);
    8081    bool isCachable() const override { return true; }
    8182    bool hasSignature() const override { return false; }
     
    8990class StreamDepositCompiler {
    9091public:
    91     StreamDepositCompiler(Driver & driver, llvm::Type * streamSetType, unsigned bufferBlocks = 0) :
    92     mDriver(driver), ssType(streamSetType), mBufferBlocks(bufferBlocks), mFieldWidth(64) {}
     92    StreamDepositCompiler(Driver & driver, unsigned sourceStreamCount, unsigned selectedStreamBase, unsigned selectedStreamCount, unsigned bufferBlocks = 0) :
     93        mDriver(driver),
     94        mSourceStreamCount(sourceStreamCount),
     95        mSelectedStreamBase(selectedStreamBase),
     96        mSelectedStreamCount(selectedStreamCount),
     97        mBufferBlocks(bufferBlocks), mFieldWidth(64) {}
    9398    void setDepositFieldWidth(unsigned fw) {mFieldWidth = fw;}
    9499    void makeCall(parabix::StreamSetBuffer * mask, parabix::StreamSetBuffer * inputs, parabix::StreamSetBuffer * outputs);
    95100private:
    96101    Driver & mDriver;
    97     llvm::Type * ssType;
     102    const unsigned mSourceStreamCount;
     103    const unsigned mSelectedStreamBase;
     104    const unsigned mSelectedStreamCount;
    98105    unsigned mBufferBlocks;
    99106    unsigned mFieldWidth;
Note: See TracChangeset for help on using the changeset viewer.