Ignore:
Timestamp:
Feb 14, 2017, 12:45:42 PM (2 years ago)
Author:
cameron
Message:

Simplify stream set access; better naming of access functions

File:
1 edited

Legend:

Unmodified
Added
Removed
  • icGREP/icgrep-devel/icgrep/pablo/pablo_compiler.cpp

    r5316 r5317  
    391391            if (LLVM_LIKELY(array && array->isKernelParameter())) {
    392392                if (array->isReadOnly()) {
    393                     value = mKernel->getInputStream(array->getName(), index);
     393                    value = mKernel->getInputStreamBlockPtr(array->getName(), index);
    394394                } else if (array->isReadNone()) {
    395                     value = mKernel->getOutputStream(array->getName(), index);
     395                    value = mKernel->getOutputStreamBlockPtr(array->getName(), index);
    396396                } else {
    397397                    std::string tmp;
     
    499499            const auto block_shift = (l->getAmount() / iBuilder->getBitBlockWidth());
    500500
    501             Value * ptr = mKernel->getInputStream(iBuilder->getSize(block_shift), var->getName(), index);
     501            Value * ptr = mKernel->getAdjustedInputStreamBlockPtr(iBuilder->getSize(block_shift), var->getName(), index);
    502502            Value * lookAhead = iBuilder->CreateBlockAlignedLoad(ptr);
    503503            if (bit_shift == 0) {  // Simple case with no intra-block shifting.
    504504                value = lookAhead;
    505505            } else { // Need to form shift result from two adjacent blocks.
    506                 Value * ptr = mKernel->getInputStream(iBuilder->getSize(block_shift + 1), var->getName(), index);
     506                Value * ptr = mKernel->getAdjustedInputStreamBlockPtr(iBuilder->getSize(block_shift + 1), var->getName(), index);
    507507                Value * lookAhead1 = iBuilder->CreateBlockAlignedLoad(ptr);
    508508                if (LLVM_UNLIKELY((bit_shift % 8) == 0)) { // Use a single whole-byte shift, if possible.
     
    529529        if (DebugOptionIsSet(DumpTrace)) {
    530530            const String & name = isa<Var>(expr) ? cast<Var>(expr)->getName() : cast<Statement>(expr)->getName();
    531             Type * type = value->getType();
    532             if (type->isPointerTy()) {
    533                 type = type->getPointerElementType();
    534                 if (!type->isIntegerTy() && !type->isVectorTy()) {
    535                     return;
    536                 }
    537                 value = iBuilder->CreateLoad(value);
    538             }
    539             if (type->isVectorTy()) {
     531            if (value->getType()->isVectorTy()) {
    540532                iBuilder->CallPrintRegister(name.str(), value);
    541             } else if (type->isIntegerTy()) {
     533            } else if (value->getType()->isIntegerTy()) {
    542534                iBuilder->CallPrintInt(name.str(), value);
    543535            }
Note: See TracChangeset for help on using the changeset viewer.