Ignore:
Timestamp:
Jan 28, 2017, 3:12:03 PM (2 years ago)
Author:
nmedfort
Message:

Start of work to simplify kernel writing. Removed generateDoBlockLogic method.

File:
1 edited

Legend:

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

    r5283 r5285  
    1010#include <vector>  // for vector
    1111namespace IDISA { class IDISA_Builder; }
     12namespace llvm { class Function; }
    1213namespace llvm { class Module; }
    1314namespace llvm { class StructType; }
     
    4344       
    4445    const std::vector<Binding> & getStreamInputs() const {return mStreamSetInputs;}
     46
    4547    const std::vector<Binding> & getStreamOutputs() const {return mStreamSetOutputs;}
     48
    4649    const std::vector<Binding> & getScalarInputs() const { return mScalarInputs;}
     50
    4751    const std::vector<Binding> & getScalarOutputs() const { return mScalarOutputs;}
    4852   
     
    5054    // Add ExternalLinkage method declarations for the kernel to a given client module.
    5155    void addKernelDeclarations(llvm::Module * client) const;
     56
    5257    virtual void createInstance() = 0;
     58
    5359    void setInitialArguments(std::vector<llvm::Value *> args);
     60
    5461    llvm::Value * getInstance() const { return mKernelInstance; }
    5562
    5663    llvm::Value * createDoSegmentCall(std::vector<llvm::Value *> args) const;
    57     llvm::Value * createFinalBlockCall(llvm::Value * self, llvm::Value * remainingBytes) const;
     64
    5865    llvm::Value * createGetAccumulatorCall(llvm::Value * self, std::string accumName) const;
    5966   
     
    6774
    6875    virtual llvm::Value * getProcessedItemCount(llvm::Value * self, const std::string & ssName) const = 0;
     76
    6977    virtual llvm::Value * getProducedItemCount(llvm::Value * self, const std::string & ssName) const = 0;
     78
    7079    virtual llvm::Value * getTerminationSignal(llvm::Value * self) const = 0;
    7180   
     
    7483    }
    7584
    76     llvm::Value * createDoBlockCall(llvm::Value * self) const;
     85    llvm::Function * getDoSegmentFunction() const;
    7786
    7887protected:
     
    113122   
    114123};
     124
    115125#endif
Note: See TracChangeset for help on using the changeset viewer.