Ignore:
Timestamp:
May 7, 2017, 4:34:48 PM (2 years ago)
Author:
nmedfort
Message:

Continued refactoring work. PabloKernel? now abstract base type with a 'generatePabloMethod' hook to generate Pablo code.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • icGREP/icgrep-devel/icgrep/toolchain/pipeline.cpp

    r5435 r5436  
    1111#include <boost/container/flat_set.hpp>
    1212#include <boost/container/flat_map.hpp>
     13#include <kernels/kernel_builder.h>
    1314
    1415using namespace kernel;
     
    1617using namespace llvm;
    1718
     19
    1820template <typename Value>
    1921using StreamSetBufferMap = boost::container::flat_map<const StreamSetBuffer *, Value>;
     
    2224using FlatSet = boost::container::flat_set<Value>;
    2325
    24 Function * makeThreadFunction(IDISA::IDISA_Builder * const b, const std::string & name) {
     26Function * makeThreadFunction(const std::unique_ptr<kernel::KernelBuilder> & b, const std::string & name) {
    2527    Function * const f = Function::Create(FunctionType::get(b->getVoidTy(), {b->getVoidPtrTy()}, false), Function::InternalLinkage, name, b->getModule());
    2628    f->setCallingConv(CallingConv::C);
     
    3840 * fashion such that processing of segment S_i by the full pipeline is carried out by thread i mod T.
    3941 ** ------------------------------------------------------------------------------------------------------------- */
    40 void generateSegmentParallelPipeline(IDISA::IDISA_Builder * const iBuilder, const std::vector<Kernel *> & kernels) {
     42void generateSegmentParallelPipeline(const std::unique_ptr<KernelBuilder> & iBuilder, const std::vector<Kernel *> & kernels) {
    4143
    4244    const unsigned n = kernels.size();
     
    256258 * @brief generateParallelPipeline
    257259 ** ------------------------------------------------------------------------------------------------------------- */
    258 void generateParallelPipeline(IDISA::IDISA_Builder * const iBuilder, const std::vector<Kernel *> &kernels) {
     260void generateParallelPipeline(const std::unique_ptr<KernelBuilder> & iBuilder, const std::vector<Kernel *> &kernels) {
    259261
    260262    Module * const m = iBuilder->getModule();
     
    450452 * @brief generatePipelineLoop
    451453 ** ------------------------------------------------------------------------------------------------------------- */
    452 void generatePipelineLoop(IDISA::IDISA_Builder * const iBuilder, const std::vector<Kernel *> & kernels) {
     454void generatePipelineLoop(const std::unique_ptr<KernelBuilder> & iBuilder, const std::vector<Kernel *> & kernels) {
    453455
    454456    BasicBlock * entryBlock = iBuilder->GetInsertBlock();
Note: See TracChangeset for help on using the changeset viewer.