Ignore:
Timestamp:
May 10, 2017, 4:26:11 PM (2 years ago)
Author:
nmedfort
Message:

Large refactoring step. Removed IR generation code from Kernel (formally KernelBuilder?) and moved it into the new KernelBuilder? class.

File:
1 edited

Legend:

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

    r5436 r5440  
    5454    // use in implementing kernels.
    5555
    56     // Get the index of a named scalar field within the kernel state struct.
    57     llvm::ConstantInt * getScalarIndex(const std::string & name);
    58 
    5956    llvm::Value * getInputStreamBlockPtr(const std::string & name, llvm::Value * streamIndex);
    6057
     
    9592    llvm::Value * getLinearlyAccessibleItems(const std::string & name, llvm::Value * fromPosition);
    9693
    97     llvm::BasicBlock * CreateWaitForConsumers();
     94    llvm::BasicBlock * CreateConsumerWait();
    9895
    9996    llvm::Value * getStreamSetBufferPtr(const std::string & name);
     97
     98    llvm::CallInst * createDoSegmentCall(const std::vector<llvm::Value *> & args);
     99
     100    llvm::Value * getAccumulator(const std::string & accumName);
     101
     102    llvm::Value * getConsumerLock(const std::string & name);
     103
     104    void setConsumerLock(const std::string & name, llvm::Value * value);
    100105
    101106    Kernel * getKernel() const {
     
    114119    }
    115120
     121    llvm::Value * getScalarFieldPtr(llvm::Value * instance, llvm::Value * index);
     122
     123    llvm::Value * getScalarFieldPtr(llvm::Value * instance, const std::string & fieldName);
     124
    116125private:
    117 
    118     llvm::Value * getConsumerLock(const std::string & name);
    119 
    120     void setConsumerLock(const std::string & name, llvm::Value * value);
    121126
    122127    llvm::Value * computeBlockIndex(llvm::Value * itemCount);
Note: See TracChangeset for help on using the changeset viewer.