Ignore:
Timestamp:
Jun 19, 2016, 3:00:47 PM (3 years ago)
Author:
cameron
Message:

New kernel infrastructure

File:
1 edited

Legend:

Unmodified
Added
Removed
  • icGREP/icgrep-devel/icgrep/pablo/carry_manager.h

    r4974 r5063  
    1010#include <llvm/IR/Module.h>
    1111#include <IDISA/idisa_builder.h>
     12#include <pablo/pablo_kernel.h>
    1213#include <pablo/codegenstate.h>
    1314#include <pablo/carry_data.h>
     
    3940    CarryManager(IDISA::IDISA_Builder * idb)
    4041    : iBuilder(idb)
     42    , mKernelBuilder(nullptr)
     43    , mSelf(nullptr)
    4144    , mBitBlockType(idb->getBitBlockType())
    4245    , mBitBlockWidth(idb->getBitBlockWidth())
     
    4750    , mCarryPackBasePtr(nullptr)
    4851    , mCarryBitBlockPtr(nullptr)
    49     , mPopcountBasePtr(nullptr)
    50     , mKernelBuilder(nullptr)
    51     , mPabloCountCount(0)
    5252    , mTotalCarryDataBitBlocks(0)
    5353    , mCarryDataAllocationSize(0)
     
    5959    ~CarryManager();
    6060   
    61     void initialize(PabloFunction * const function, kernel::KernelBuilder * const kBuilder);
     61    Type * initializeCarryData(PabloFunction * const function);
     62    void initializeCodeGen(PabloKernel * const kBuilder, Value * selfPtr);
    6263
    6364    void reset();
     
    9899    void ensureCarriesStoredRecursive();
    99100   
    100     Value * popCount(Value * to_count, unsigned globalIdx);
    101    
    102101    Value * declareCarryDataArray(Module * m);
    103102
     
    130129private:
    131130    IDISA::IDISA_Builder * const iBuilder;
     131    PabloKernel * mKernelBuilder;
     132    Value * mSelf;
    132133    Type * const mBitBlockType;
    133134    const unsigned mBitBlockWidth;
     
    139140    Type * mCarryPackType;
    140141    Value * mCarryBitBlockPtr;
    141     Value * mPopcountBasePtr;
    142     kernel::KernelBuilder * mKernelBuilder;
    143     unsigned mPabloCountCount; // Number of Pablo "Count" operations
    144142    unsigned mTotalCarryDataBitBlocks;
    145143    unsigned mCarryDataAllocationSize;
     
    152150    std::vector<Value *> mCarrySummary;
    153151    int mCdArrayIdx;
    154     int mPcArrayIdx;
    155152    int mFilePosIdx;
    156153};
Note: See TracChangeset for help on using the changeset viewer.