Ignore:
Timestamp:
Dec 29, 2016, 8:35:20 PM (2 years ago)
Author:
cameron
Message:

Add pthread create, join and exit support into CBuilder

File:
1 edited

Legend:

Unmodified
Added
Removed
  • icGREP/icgrep-devel/icgrep/base64.cpp

    r5240 r5242  
    8080    Type * const inputType = PointerType::get(ArrayType::get(ArrayType::get(mBitBlockType, 8), 1), 0);
    8181    Type * const outputType = PointerType::get(ArrayType::get(ArrayType::get(mBitBlockType, 8), 1), 0);
    82     Type * const int32ty = iBuilder->getInt32Ty();
    83     Type * const int8PtrTy = iBuilder->getInt8PtrTy();
    84     Type * const voidPtrTy = iBuilder->getVoidPtrTy();
    8582
    8683   
     
    105102    Base64out.allocateBuffer();
    106103
    107 
    108     Type * pthreadTy = size_ty;
    109     FunctionType * funVoidPtrVoidTy = FunctionType::get(voidTy, int8PtrTy, false);
    110    
    111     Function * pthreadCreateFunc = cast<Function>(mMod->getOrInsertFunction("pthread_create",
    112                                                                          int32ty,
    113                                                                          pthreadTy->getPointerTo(),
    114                                                                          voidPtrTy,
    115                                                                          static_cast<Type *>(funVoidPtrVoidTy)->getPointerTo(),
    116                                                                          voidPtrTy, nullptr));
    117     pthreadCreateFunc->setCallingConv(llvm::CallingConv::C);
    118     Function * pthreadJoinFunc = cast<Function>(mMod->getOrInsertFunction("pthread_join",
    119                                                                        int32ty,
    120                                                                        pthreadTy,
    121                                                                        PointerType::get(int8PtrTy, 0), nullptr));
    122     pthreadJoinFunc->setCallingConv(llvm::CallingConv::C);
    123    
    124     Function * pthreadExitFunc = cast<Function>(mMod->getOrInsertFunction("pthread_exit",
    125                                                                        voidTy,
    126                                                                        voidPtrTy, nullptr));
    127     pthreadExitFunc->addFnAttr(llvm::Attribute::NoReturn);
    128     pthreadExitFunc->setCallingConv(llvm::CallingConv::C);
    129104
    130105    if (segmentPipelineParallel){
Note: See TracChangeset for help on using the changeset viewer.