Ignore:
Timestamp:
Apr 15, 2017, 4:42:33 PM (2 years ago)
Author:
nmedfort
Message:

First attempt to allow Kernels to wait for consumers to finish processing before performing a realloc.

File:
1 edited

Legend:

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

    r5398 r5408  
    8686    virtual ~StreamSetBuffer() = 0;
    8787
     88    kernel::KernelBuilder * getProducer() const {
     89        return mProducer;
     90    }
     91
     92    const std::vector<kernel::KernelBuilder *> & getConsumers() const {
     93        return mConsumers;
     94    }
     95
    8896protected:
    8997
     
    99107    virtual llvm::Value * getBaseAddress(llvm::Value * self) const;
    100108
    101 protected:
    102     const BufferKind                mBufferKind;
    103     IDISA::IDISA_Builder * const    iBuilder;
    104     llvm::Type * const              mType;
    105     const size_t                    mBufferBlocks;
    106     const unsigned                  mAddressSpace;
    107     llvm::Value *                   mStreamSetBufferPtr;
    108     llvm::Type * const              mBaseType;
    109     std::string                     mUniqueID;
     109    void setProducer(kernel::KernelBuilder * const producer) {
     110        assert (producer);
     111        mProducer = producer;
     112    }
     113
     114    void addConsumer(kernel::KernelBuilder * const consumer) {
     115        assert (consumer);
     116        mConsumers.push_back(consumer);
     117    }
     118
     119protected:
     120    const BufferKind                        mBufferKind;
     121    IDISA::IDISA_Builder * const            iBuilder;
     122    llvm::Type * const                      mType;
     123    const size_t                            mBufferBlocks;
     124    const unsigned                          mAddressSpace;
     125    llvm::Value *                           mStreamSetBufferPtr;
     126    llvm::Type * const                      mBaseType;
     127    std::string                             mUniqueID;
     128    kernel::KernelBuilder *                 mProducer;
     129    std::vector<kernel::KernelBuilder *>    mConsumers;
    110130};   
    111131
Note: See TracChangeset for help on using the changeset viewer.