Ignore:
Timestamp:
Aug 15, 2017, 12:19:01 AM (22 months ago)
Author:
cameron
Message:

Dynamic buffer capacity doubling - initial check-in

File:
1 edited

Legend:

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

    r5597 r5612  
    319319
    320320    llvm::Value * getRawItemPointer(IDISA::IDISA_Builder * const b, llvm::Value * handle, llvm::Value * streamIndex, llvm::Value * absolutePosition) const override;
     321   
     322    llvm::Value * getBufferedSize(IDISA::IDISA_Builder * const iBuilder, llvm::Value * self) const override;
     323   
     324    void doubleCapacity(IDISA::IDISA_Builder * const b, llvm::Value * handle);
     325
    321326
    322327protected:
     
    324329   
    325330    llvm::Value * getStreamSetBlockPtr(IDISA::IDISA_Builder * const b, llvm::Value * handle, llvm::Value * blockIndex) const override;
     331
    326332   
    327333private:
     
    333339    /* Dynamic data fields stored in the buffer struct */
    334340   
    335     enum class Field {BaseAddress, AllocatedCapacity, WorkingBlocks, Length, ProducedPosition, ConsumedPosition, FieldCount};
     341    enum class Field {BaseAddress, PriorBaseAddress, AllocatedCapacity, WorkingBlocks, Length, ProducedPosition, ConsumedPosition, FieldCount};
    336342   
    337343    /* BaseAddress - the physical base address of the memory area for stream set data.
     344     PriorBaseAddress - the physical base address of the previous memory area for stream set data
     345     (the immediately prior memory area is preserved in case any users in other threads
     346     are accessing it).
    338347     WorkingBlocks - the physical size of the buffer for use in reading and writing data.
    339348     AllocatedCapacity - physical size available for expansion in place
Note: See TracChangeset for help on using the changeset viewer.