Ignore:
Timestamp:
Dec 20, 2017, 11:42:53 AM (16 months ago)
Author:
nmedfort
Message:

Bug fix for pipeline: it was terminating too early when there was insufficient output space to process all of the input for a kernel.

File:
1 edited

Legend:

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

    r5782 r5793  
    8989    virtual llvm::Value * getLinearlyAccessibleItems(IDISA::IDISA_Builder * const b, llvm::Value * handle, llvm::Value * fromPos, llvm::Value * avail, bool reverse = false) const;
    9090
    91     virtual llvm::Value * getLinearlyCopyableItems(IDISA::IDISA_Builder * const b, llvm::Value * handle, llvm::Value * fromPos, llvm::Value * avail, bool reverse = false) const {
    92         return getLinearlyAccessibleItems(b, handle, fromPos, avail, reverse);
    93     }
    94    
    9591    void createBlockCopy(IDISA::IDISA_Builder * const b, llvm::Value * targetBlockPtr, llvm::Value * sourceBlockPtr, llvm::Value * blocksToCopy) const;
    9692
     
    106102        return mOverflowBlocks;
    107103    }
    108 
    109     virtual void genCopyBackLogic(IDISA::IDISA_Builder * const b, llvm::Value * handle, llvm::Value * priorProduced, llvm::Value * newProduced, const std::string) const;
    110104   
    111105    virtual ~StreamSetBuffer() = 0;
     
    221215    llvm::Value * getRawItemPointer(IDISA::IDISA_Builder * const b, llvm::Value * handle, llvm::Value * absolutePosition) const final;
    222216
    223     llvm::Value * getLinearlyCopyableItems(IDISA::IDISA_Builder * const b, llvm::Value * handle, llvm::Value * fromPos, llvm::Value * avail, bool reverse = false) const final;
    224 
    225217protected:
    226218
     
    243235   
    244236    CircularCopybackBuffer(const std::unique_ptr<kernel::KernelBuilder> & b, llvm::Type * type, size_t bufferBlocks, size_t overflowBlocks, unsigned AddressSpace = 0);
    245    
    246     llvm::Value * getLinearlyWritableItems(IDISA::IDISA_Builder * const b, llvm::Value * handle, llvm::Value * fromPosition, llvm::Value * consumed, bool reverse = false) const override;
    247    
    248     void allocateBuffer(const std::unique_ptr<kernel::KernelBuilder> & b) override;
    249 
    250     void genCopyBackLogic(IDISA::IDISA_Builder * const b, llvm::Value * handle, llvm::Value * priorProduced, llvm::Value * newProduced, const std::string) const override;
     237       
     238    void allocateBuffer(const std::unique_ptr<kernel::KernelBuilder> & b) override;
    251239
    252240};
     
    260248    void createBlockAlignedCopy(IDISA::IDISA_Builder * const b, llvm::Value * targetBlockPtr, llvm::Value * sourceBlockPtr, llvm::Value * itemsToCopy, const unsigned alignment = 1) const override;
    261249
    262     llvm::Value * getLinearlyWritableItems(IDISA::IDISA_Builder * const b, llvm::Value * handle, llvm::Value * fromPosition, llvm::Value * consumed, bool reverse = false) const override;
    263    
    264     void allocateBuffer(const std::unique_ptr<kernel::KernelBuilder> & b) override;
    265 
    266     void genCopyBackLogic(IDISA::IDISA_Builder * const b, llvm::Value * handle, llvm::Value * priorProduced, llvm::Value * newProduced, const std::string) const override;
     250    void allocateBuffer(const std::unique_ptr<kernel::KernelBuilder> & b) override;
    267251
    268252protected:
     
    330314   
    331315    void doubleCapacity(IDISA::IDISA_Builder * const b, llvm::Value * handle);
    332 
    333     void genCopyBackLogic(IDISA::IDISA_Builder * const b, llvm::Value * handle, llvm::Value * priorProduced, llvm::Value * newProduced, const std::string) const override;
    334316
    335317protected:
Note: See TracChangeset for help on using the changeset viewer.