Ignore:
Timestamp:
Jan 13, 2018, 11:57:43 AM (15 months ago)
Author:
nmedfort
Message:

Pablo support for byte comparisions; LineFeed? kernel processes byte streams directly. Some clean up of PabloBuilder? functionality.

File:
1 edited

Legend:

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

    r5706 r5828  
    1212#include <util/slab_allocator.h>
    1313#include <llvm/ADT/StringRef.h>
    14 #include <boost/container/flat_map.hpp>
    1514
    1615namespace llvm { class Type; }
     
    6665
    6766    Var * getInput(const unsigned index) {
     67        assert (index < mInputs.size() && mInputs[index]);
    6868        return mInputs[index];
    6969    }
    7070
    7171    const Var * getInput(const unsigned index) const {
     72        assert (index < mInputs.size() && mInputs[index]);
    7273        return mInputs[index];
    7374    }
    74 
    75     Var * addInput(const std::string & name, llvm::Type * const type);
    7675
    7776    unsigned getNumOfInputs() const {
     
    8483
    8584    Var * getOutput(const unsigned index) {
     85        assert (index < mOutputs.size() && mOutputs[index]);
    8686        return mOutputs[index];
    8787    }
    8888
    8989    const Var * getOutput(const unsigned index) const {
     90        assert (index < mOutputs.size() && mOutputs[index]);
    9091        return mOutputs[index];
    9192    }
    92 
    93     Var * addOutput(const std::string & name, llvm::Type * const type);
    9493
    9594    unsigned getNumOfOutputs() const {
     
    9796    }
    9897
    99     Var * makeVariable(String * name, llvm::Type * const type);
    100 
    10198    Var * getVariable(const unsigned index) {
     99        assert (index < mVariables.size() && mVariables[index]);
    102100        return mVariables[index];
    103101    }
     
    129127    llvm::StructType * getCarryDataTy() const {
    130128        return mCarryDataTy;
     129    }
     130
     131    llvm::LLVMContext & getContext() const {
     132        assert (mContext);
     133        return *mContext;
    131134    }
    132135
     
    156159    }
    157160
     161    Var * makeVariable(String * name, llvm::Type * const type);
     162
    158163    // A custom method for preparing kernel declarations is needed,
    159164    // so that the carry data requirements may be accommodated before
     
    172177    void generateFinalizeMethod(const std::unique_ptr<kernel::KernelBuilder> & iBuilder) final;
    173178
     179    #if 0
     180    void beginConditionalRegion(const std::unique_ptr<KernelBuilder> & b) final;
     181    #endif
     182
    174183private:
    175184
    176185    Allocator                       mAllocator;
    177     PabloCompiler * const           mPabloCompiler;
     186    PabloCompiler *                 mPabloCompiler;
    178187    SymbolGenerator *               mSymbolTable;
    179188    PabloBlock *                    mEntryBlock;
     
    181190    llvm::VectorType *              mStreamTy;
    182191    llvm::StructType *              mCarryDataTy;
     192    llvm::LLVMContext *             mContext;
     193
    183194    std::vector<Var *>              mInputs;
    184195    std::vector<Var *>              mOutputs;
    185196    std::vector<PabloAST *>         mConstants;
    186197    std::vector<Var *>              mVariables;
    187     boost::container::flat_map<std::string, Var *> mScalarOutputNameMap;
     198    std::vector<Var *>              mScalarOutputVars;
    188199};
    189200
Note: See TracChangeset for help on using the changeset viewer.