Ignore:
Timestamp:
Jan 27, 2017, 2:22:06 PM (2 years ago)
Author:
nmedfort
Message:

Optimized Symbol Generation (and fixed potential bug that could allow duplicate names being constructed); made PabloKernel? extend PabloAST (temporarily removed PabloAST::getName() to avoid diamond problem); added an internal scalar to PabloKernel? struct for each Count to avoid InOut? output scalar variable problem; allowed CodeMotionPass? to move code within the same scope but across a branch statement. Began work on separating Kernels into either Block-Oriented or Segment-Oriented kernels.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • icGREP/icgrep-devel/icgrep/kernels/mmap_kernel.cpp

    r5276 r5283  
    2828   
    2929   
    30     Function::arg_iterator args = doSegmentFunction->arg_begin();
     30    auto args = doSegmentFunction->arg_begin();
    3131    Value * self = &*(args++);
    3232   
     
    3535        fileItems = iBuilder->CreateUDiv(fileItems, iBuilder->getSize(mCodeUnitWidth/8));
    3636    }
    37     Value * produced = getProducedItemCount(self, "sourceBuffer");
    38    
     37    Value * produced = getProducedItemCount(self, "sourceBuffer");   
    3938    Value * nextProduced = iBuilder->CreateAdd(produced, segmentItems);
    4039    Value * lessThanFullSegment = iBuilder->CreateICmpULT(fileItems, nextProduced);
     
    5453
    5554MMapSourceKernel::MMapSourceKernel(IDISA::IDISA_Builder * iBuilder, unsigned blocksPerSegment, unsigned codeUnitWidth)
    56 : KernelBuilder(iBuilder, "mmap_source", {}, {Binding{iBuilder->getStreamSetTy(1, codeUnitWidth), "sourceBuffer"}}, {Binding{iBuilder->getSizeTy(), "fileSize"}}, {}, {})
     55: SegmentOrientedKernel(iBuilder, "mmap_source", {}, {Binding{iBuilder->getStreamSetTy(1, codeUnitWidth), "sourceBuffer"}}, {Binding{iBuilder->getSizeTy(), "fileSize"}}, {}, {})
    5756, mSegmentBlocks(blocksPerSegment)
    5857, mCodeUnitWidth(codeUnitWidth) {
Note: See TracChangeset for help on using the changeset viewer.