Lines Matching refs:llvm

89 class RSKernelExpandPass : public llvm::ModulePass {
96 typedef std::unordered_set<llvm::Function *> FunctionSet;
124 llvm::Module *Module;
125 llvm::LLVMContext *Context;
132 llvm::FunctionType *ExpandedForEachType;
133 llvm::Type *RsExpandKernelDriverInfoPfxTy;
144 uint32_t getRootSignature(llvm::Function *Function) { in getRootSignature()
145 const llvm::NamedMDNode *ExportForEachMetadata = in getRootSignature()
149 llvm::SmallVector<llvm::Type*, 8> RootArgTys; in getRootSignature()
150 for (llvm::Function::arg_iterator B = Function->arg_begin(), in getRootSignature()
171 llvm::MDNode *SigNode = ExportForEachMetadata->getOperand(0); in getRootSignature()
173 llvm::Metadata *SigMD = SigNode->getOperand(0); in getRootSignature()
174 if (llvm::MDString *SigS = llvm::dyn_cast<llvm::MDString>(SigMD)) { in getRootSignature()
175 llvm::StringRef SigString = SigS->getString(); in getRootSignature()
188 bool isStepOptSupported(llvm::Type *AllocType) { in isStepOptSupported()
190 llvm::PointerType *PT = llvm::dyn_cast<llvm::PointerType>(AllocType); in isStepOptSupported()
191 llvm::Type *VoidPtrTy = llvm::Type::getInt8PtrTy(*Context); in isStepOptSupported()
211 if (AllocType->getStructName().find("coerce") != llvm::StringRef::npos) { in isStepOptSupported()
216 llvm::Type *V2xi64Ty = llvm::VectorType::get(llvm::Type::getInt64Ty(*Context), 2); in isStepOptSupported()
217 llvm::Type *Int128Ty = llvm::Type::getIntNTy(*Context, 128); in isStepOptSupported()
235 llvm::Value *getStepValue(llvm::DataLayout *DL, llvm::Type *AllocType, in getStepValue()
236 llvm::Value *OrigStep) { in getStepValue()
240 llvm::PointerType *PT = llvm::dyn_cast<llvm::PointerType>(AllocType); in getStepValue()
242 llvm::Type *ET = PT->getElementType(); in getStepValue()
244 llvm::Type *Int32Ty = llvm::Type::getInt32Ty(*Context); in getStepValue()
245 return llvm::ConstantInt::get(Int32Ty, ETSize); in getStepValue()
255 llvm::Type *Int8Ty = llvm::Type::getInt8Ty(*Context); in buildTypes()
256 llvm::Type *Int8PtrTy = Int8Ty->getPointerTo(); in buildTypes()
257 llvm::Type *Int8PtrArrayInputLimitTy = llvm::ArrayType::get(Int8PtrTy, RS_KERNEL_INPUT_LIMIT); in buildTypes()
258 llvm::Type *Int32Ty = llvm::Type::getInt32Ty(*Context); in buildTypes()
259 llvm::Type *Int32ArrayInputLimitTy = llvm::ArrayType::get(Int32Ty, RS_KERNEL_INPUT_LIMIT); in buildTypes()
260 llvm::Type *VoidPtrTy = llvm::Type::getInt8PtrTy(*Context); in buildTypes()
261 llvm::Type *Int32Array4Ty = llvm::ArrayType::get(Int32Ty, 4); in buildTypes()
274 llvm::SmallVector<llvm::Type*, RsLaunchDimensionsFieldCount> RsLaunchDimensionsTypes; in buildTypes()
281 llvm::StructType *RsLaunchDimensionsTy = in buildTypes()
282 llvm::StructType::create(RsLaunchDimensionsTypes, "RsLaunchDimensions"); in buildTypes()
311llvm::SmallVector<llvm::Type*, RsExpandKernelDriverInfoPfxFieldCount> RsExpandKernelDriverInfoPfxT… in buildTypes()
323 llvm::StructType::create(RsExpandKernelDriverInfoPfxTypes, "RsExpandKernelDriverInfoPfx"); in buildTypes()
326 llvm::Type *VoidTy = llvm::Type::getVoidTy(*Context); in buildTypes()
328 llvm::Type *RsExpandKernelDriverInfoPfxPtrTy = RsExpandKernelDriverInfoPfxTy->getPointerTo(); in buildTypes()
330 ExpandedForEachType = llvm::FunctionType::get(VoidTy, in buildTypes()
341 llvm::Function *createEmptyExpandedForEachKernel(llvm::StringRef OldName) { in createEmptyExpandedForEachKernel()
342 llvm::Function *ExpandedFunction = in createEmptyExpandedForEachKernel()
343 llvm::Function::Create(ExpandedForEachType, in createEmptyExpandedForEachKernel()
344 llvm::GlobalValue::ExternalLinkage, in createEmptyExpandedForEachKernel()
347 llvm::Function::arg_iterator AI = ExpandedFunction->arg_begin(); in createEmptyExpandedForEachKernel()
352 llvm::BasicBlock *Begin = llvm::BasicBlock::Create(*Context, "Begin", in createEmptyExpandedForEachKernel()
354 llvm::IRBuilder<> Builder(Begin); in createEmptyExpandedForEachKernel()
366 llvm::Function *createEmptyExpandedReduceAccumulator(llvm::StringRef OldName, in createEmptyExpandedReduceAccumulator()
367 llvm::Type *AccumArgTy) { in createEmptyExpandedReduceAccumulator()
368 llvm::Type *Int32Ty = llvm::Type::getInt32Ty(*Context); in createEmptyExpandedReduceAccumulator()
369 llvm::Type *VoidTy = llvm::Type::getVoidTy(*Context); in createEmptyExpandedReduceAccumulator()
370 llvm::FunctionType *ExpandedReduceAccumulatorType = in createEmptyExpandedReduceAccumulator()
371 llvm::FunctionType::get(VoidTy, in createEmptyExpandedReduceAccumulator()
374 llvm::Function *FnExpandedAccumulator = in createEmptyExpandedReduceAccumulator()
375 llvm::Function::Create(ExpandedReduceAccumulatorType, in createEmptyExpandedReduceAccumulator()
376 llvm::GlobalValue::ExternalLinkage, in createEmptyExpandedReduceAccumulator()
380 llvm::Function::arg_iterator AI = FnExpandedAccumulator->arg_begin(); in createEmptyExpandedReduceAccumulator()
382 using llvm::Attribute; in createEmptyExpandedReduceAccumulator()
384 llvm::Argument *Arg_p = &(*AI++); in createEmptyExpandedReduceAccumulator()
386 Arg_p->addAttr(llvm::AttributeSet::get(*Context, Arg_p->getArgNo() + 1, in createEmptyExpandedReduceAccumulator()
387 llvm::makeArrayRef(Attribute::NoCapture))); in createEmptyExpandedReduceAccumulator()
389 llvm::Argument *Arg_x1 = &(*AI++); in createEmptyExpandedReduceAccumulator()
392 llvm::Argument *Arg_x2 = &(*AI++); in createEmptyExpandedReduceAccumulator()
395 llvm::Argument *Arg_accum = &(*AI++); in createEmptyExpandedReduceAccumulator()
397 Arg_accum->addAttr(llvm::AttributeSet::get(*Context, Arg_accum->getArgNo() + 1, in createEmptyExpandedReduceAccumulator()
398 llvm::makeArrayRef(Attribute::NoCapture))); in createEmptyExpandedReduceAccumulator()
400 llvm::BasicBlock *Begin = llvm::BasicBlock::Create(*Context, "Begin", in createEmptyExpandedReduceAccumulator()
402 llvm::IRBuilder<> Builder(Begin); in createEmptyExpandedReduceAccumulator()
425 llvm::BasicBlock *createLoop(llvm::IRBuilder<> &Builder, in createLoop()
426 llvm::Value *LowerBound, in createLoop()
427 llvm::Value *UpperBound, in createLoop()
428 llvm::Value **LoopIV) { in createLoop()
431 llvm::BasicBlock *CondBB, *AfterBB, *HeaderBB; in createLoop()
432 llvm::Value *Cond, *IVNext, *IV, *IVVar; in createLoop()
435 AfterBB = llvm::SplitBlock(CondBB, &*Builder.GetInsertPoint(), nullptr, nullptr); in createLoop()
436 HeaderBB = llvm::BasicBlock::Create(*Context, "Loop", CondBB->getParent()); in createLoop()
470 Builder.SetInsertPoint(llvm::cast<llvm::Instruction>(IVNext)); in createLoop()
488 void finishArgList( llvm::SmallVector<llvm::Value *, ArgVectorLen> &ArgVector, in finishArgList()
489 const llvm::SmallVector<llvm::Value *, SpecialArgVectorLen> &SpecialArgVector, in finishArgList()
491 const llvm::Function &CalleeFunction, in finishArgList()
492 llvm::IRBuilder<> &CallerBuilder) { in finishArgList()
502 llvm::Type *ContextArgType = nullptr; in finishArgList()
520 typedef llvm::SmallVector<llvm::Value *, 3> SmallGEPIndices;
534 llvm::IntegerType *I32Ty = llvm::Type::getInt32Ty(*Context); in GEPHelper()
536 [I32Ty](int32_t Arg) { return llvm::ConstantInt::get(I32Ty, Arg); }); in GEPHelper()
547 virtual void getAnalysisUsage(llvm::AnalysisUsage &AU) const override { in getAnalysisUsage()
568 llvm::Value *X, in ExpandSpecialArguments()
569 llvm::Value *Arg_p, in ExpandSpecialArguments()
570 llvm::IRBuilder<> &Builder, in ExpandSpecialArguments()
571 llvm::SmallVector<llvm::Value*, 8> &CalleeArgs, in ExpandSpecialArguments()
573 llvm::Instruction *LoopHeaderInsertionPoint) { in ExpandSpecialArguments()
601 llvm::Value *YAddr = Builder.CreateInBoundsGEP(Arg_p, YValueGEP, "Y.gep"); in ExpandSpecialArguments()
609 llvm::Value *ZAddr = Builder.CreateInBoundsGEP(Arg_p, ZValueGEP, "Z.gep"); in ExpandSpecialArguments()
638 void ExpandInputsLoopInvariant(llvm::IRBuilder<> &Builder, llvm::BasicBlock *LoopHeader, in ExpandInputsLoopInvariant()
639 llvm::Value *Arg_p, in ExpandInputsLoopInvariant()
640 llvm::MDNode *TBAAPointer, in ExpandInputsLoopInvariant()
641 llvm::Function::arg_iterator ArgIter, in ExpandInputsLoopInvariant()
643 llvm::SmallVectorImpl<llvm::Type *> &InTypes, in ExpandInputsLoopInvariant()
644 llvm::SmallVectorImpl<llvm::Value *> &InBufPtrs, in ExpandInputsLoopInvariant()
645 llvm::SmallVectorImpl<llvm::Value *> &InStructTempSlots) { in ExpandInputsLoopInvariant()
654 llvm::Type *InType = ArgIter->getType(); in ExpandInputsLoopInvariant()
666 if (auto PtrType = llvm::dyn_cast<llvm::PointerType>(InType)) { in ExpandInputsLoopInvariant()
667 llvm::Type *ElementType = PtrType->getElementType(); in ExpandInputsLoopInvariant()
677 llvm::Value *InBufPtrAddr = Builder.CreateInBoundsGEP(Arg_p, InBufPtrGEP, "input_buf.gep"); in ExpandInputsLoopInvariant()
678 llvm::LoadInst *InBufPtr = Builder.CreateLoad(InBufPtrAddr, "input_buf"); in ExpandInputsLoopInvariant()
680 llvm::Value *CastInBufPtr = nullptr; in ExpandInputsLoopInvariant()
720 void ExpandInputsBody(llvm::IRBuilder<> &Builder, in ExpandInputsBody()
721 llvm::Value *Arg_x1, in ExpandInputsBody()
722 llvm::MDNode *TBAAAllocation, in ExpandInputsBody()
724 const llvm::SmallVectorImpl<llvm::Type *> &InTypes, in ExpandInputsBody()
725 const llvm::SmallVectorImpl<llvm::Value *> &InBufPtrs, in ExpandInputsBody()
726 const llvm::SmallVectorImpl<llvm::Value *> &InStructTempSlots, in ExpandInputsBody()
727 llvm::Value *IndVar, in ExpandInputsBody()
728 llvm::SmallVectorImpl<llvm::Value *> &RootArgs) { in ExpandInputsBody()
729 llvm::Value *Offset = Builder.CreateSub(IndVar, Arg_x1); in ExpandInputsBody()
730 llvm::Type *Int32Ty = llvm::Type::getInt32Ty(*Context); in ExpandInputsBody()
734 llvm::Value *InPtr = nullptr; in ExpandInputsBody()
741 llvm::DataLayout DL(X86_CUSTOM_DL_STRING); in ExpandInputsBody()
742 llvm::Type *InTy = InTypes[Index]; in ExpandInputsBody()
744llvm::Value *OffsetInBytes = Builder.CreateMul(Offset, llvm::ConstantInt::get(Int32Ty, InStep)); in ExpandInputsBody()
749 llvm::Value *Input; in ExpandInputsBody()
750 llvm::LoadInst *InputLoad = Builder.CreateLoad(InPtr, "input"); in ExpandInputsBody()
756 if (llvm::Value *TemporarySlot = InStructTempSlots[Index]) { in ExpandInputsBody()
777 bool ExpandOldStyleForEach(llvm::Function *Function, uint32_t Signature) { in ExpandOldStyleForEach()
790 llvm::DataLayout DL(Module); in ExpandOldStyleForEach()
795 llvm::Function *ExpandedFunction = in ExpandOldStyleForEach()
805 llvm::Function::arg_iterator ExpandedFunctionArgIter = in ExpandOldStyleForEach()
808 llvm::Value *Arg_p = &*(ExpandedFunctionArgIter++); in ExpandOldStyleForEach()
809 llvm::Value *Arg_x1 = &*(ExpandedFunctionArgIter++); in ExpandOldStyleForEach()
810 llvm::Value *Arg_x2 = &*(ExpandedFunctionArgIter++); in ExpandOldStyleForEach()
811 llvm::Value *Arg_outstep = &*(ExpandedFunctionArgIter); in ExpandOldStyleForEach()
813 llvm::Value *InStep = nullptr; in ExpandOldStyleForEach()
814 llvm::Value *OutStep = nullptr; in ExpandOldStyleForEach()
817 llvm::IRBuilder<> Builder(&*ExpandedFunction->getEntryBlock().begin()); in ExpandOldStyleForEach()
821 llvm::Function::arg_iterator FunctionArgIter = Function->arg_begin(); in ExpandOldStyleForEach()
823 llvm::Type *InTy = nullptr; in ExpandOldStyleForEach()
824 llvm::Value *InBufPtr = nullptr; in ExpandOldStyleForEach()
827 llvm::LoadInst *InStepArg = Builder.CreateLoad( in ExpandOldStyleForEach()
840 llvm::Type *OutTy = nullptr; in ExpandOldStyleForEach()
841 llvm::Value *OutBasePtr = nullptr; in ExpandOldStyleForEach()
850 llvm::Value *UsrData = nullptr; in ExpandOldStyleForEach()
852 llvm::Type *UsrDataTy = (FunctionArgIter++)->getType(); in ExpandOldStyleForEach()
853llvm::Value *UsrDataPointerAddr = Builder.CreateStructGEP(nullptr, Arg_p, RsExpandKernelDriverInfo… in ExpandOldStyleForEach()
858 llvm::BasicBlock *LoopHeader = Builder.GetInsertBlock(); in ExpandOldStyleForEach()
859 llvm::Value *IV; in ExpandOldStyleForEach()
862 llvm::SmallVector<llvm::Value*, 8> CalleeArgs; in ExpandOldStyleForEach()
870 llvm::SmallVector<llvm::Value*, 8> RootArgs; in ExpandOldStyleForEach()
872 llvm::Value *InPtr = nullptr; in ExpandOldStyleForEach()
873 llvm::Value *OutPtr = nullptr; in ExpandOldStyleForEach()
884 llvm::Value *OutOffset = Builder.CreateSub(IV, Arg_x1); in ExpandOldStyleForEach()
891 llvm::Value *InOffset = Builder.CreateSub(IV, Arg_x1); in ExpandOldStyleForEach()
918 bool ExpandForEach(llvm::Function *Function, uint32_t Signature) { in ExpandForEach()
923 llvm::DataLayout DL(Module); in ExpandForEach()
927 llvm::Type *Int32Ty = llvm::Type::getInt32Ty(*Context); in ExpandForEach()
929 llvm::Function *ExpandedFunction = in ExpandForEach()
939 llvm::Function::arg_iterator ExpandedFunctionArgIter = in ExpandForEach()
942 llvm::Value *Arg_p = &*(ExpandedFunctionArgIter++); in ExpandForEach()
943 llvm::Value *Arg_x1 = &*(ExpandedFunctionArgIter++); in ExpandForEach()
944 llvm::Value *Arg_x2 = &*(ExpandedFunctionArgIter++); in ExpandForEach()
948 llvm::IRBuilder<> Builder(&*ExpandedFunction->getEntryBlock().begin()); in ExpandForEach()
951 llvm::MDNode *TBAARenderScriptDistinct, *TBAARenderScript, in ExpandForEach()
953 llvm::MDBuilder MDHelper(*Context); in ExpandForEach()
978 llvm::Function::arg_iterator ArgIter = Function->arg_begin(); in ExpandForEach()
981 llvm::Type *OutTy = nullptr; in ExpandForEach()
982 llvm::LoadInst *OutBasePtr = nullptr; in ExpandForEach()
983 llvm::Value *CastedOutBasePtr = nullptr; in ExpandForEach()
988 llvm::Type *OutBaseTy = Function->getReturnType(); in ExpandForEach()
1021 llvm::SmallVector<llvm::Type*, 8> InTypes; in ExpandForEach()
1022 llvm::SmallVector<llvm::Value*, 8> InBufPtrs; in ExpandForEach()
1023 llvm::SmallVector<llvm::Value*, 8> InStructTempSlots; in ExpandForEach()
1028 llvm::BasicBlock *LoopHeader = Builder.GetInsertBlock(); in ExpandForEach()
1029 llvm::Value *IV; in ExpandForEach()
1032 llvm::SmallVector<llvm::Value*, 8> CalleeArgs; in ExpandForEach()
1050 llvm::SmallVector<llvm::Value*, 8> RootArgs; in ExpandForEach()
1056 llvm::Value *OutPtr = nullptr; in ExpandForEach()
1058 llvm::Value *OutOffset = Builder.CreateSub(IV, Arg_x1); in ExpandForEach()
1067llvm::Value *OutOffsetInBytes = Builder.CreateMul(OutOffset, llvm::ConstantInt::get(Int32Ty, OutSt… in ExpandForEach()
1086 llvm::Value *RetVal = Builder.CreateCall(Function, RootArgs); in ExpandForEach()
1090 llvm::StoreInst *Store = Builder.CreateStore(RetVal, OutPtr); in ExpandForEach()
1111 llvm::Function *Fn = Module->getFunction(Name); in PromoteReduceFunction()
1114 bccAssert(Fn->getLinkage() == llvm::GlobalValue::InternalLinkage); in PromoteReduceFunction()
1115 Fn->setLinkage(llvm::GlobalValue::ExternalLinkage); in PromoteReduceFunction()
1145 …bool ExpandReduceAccumulator(llvm::Function *FnAccumulator, uint32_t Signature, size_t NumInputs) { in ExpandReduceAccumulator()
1150 llvm::MDNode *TBAARenderScriptDistinct, *TBAARenderScript, in ExpandReduceAccumulator()
1152 llvm::MDBuilder MDHelper(*Context); in ExpandReduceAccumulator()
1168 llvm::Function *FnExpandedAccumulator = in ExpandReduceAccumulator()
1177 llvm::Value *Arg_p = &*(ExpandedAccumulatorArgIter++); in ExpandReduceAccumulator()
1178 llvm::Value *Arg_x1 = &*(ExpandedAccumulatorArgIter++); in ExpandReduceAccumulator()
1179 llvm::Value *Arg_x2 = &*(ExpandedAccumulatorArgIter++); in ExpandReduceAccumulator()
1180 llvm::Value *Arg_accum = &*(ExpandedAccumulatorArgIter++); in ExpandReduceAccumulator()
1183 llvm::IRBuilder<> Builder(&*FnExpandedAccumulator->getEntryBlock().begin()); in ExpandReduceAccumulator()
1186 llvm::BasicBlock *LoopHeader = Builder.GetInsertBlock(); in ExpandReduceAccumulator()
1187 llvm::Value *IndVar; in ExpandReduceAccumulator()
1190 llvm::SmallVector<llvm::Value*, 8> CalleeArgs; in ExpandReduceAccumulator()
1195 llvm::SmallVector<llvm::Type*, 8> InTypes; in ExpandReduceAccumulator()
1196 llvm::SmallVector<llvm::Value*, 8> InBufPtrs; in ExpandReduceAccumulator()
1197 llvm::SmallVector<llvm::Value*, 8> InStructTempSlots; in ExpandReduceAccumulator()
1202 llvm::SmallVector<llvm::Value*, 8> RootArgs; in ExpandReduceAccumulator()
1225 bool CreateReduceCombinerFromAccumulator(llvm::Function *FnAccumulator) { in CreateReduceCombinerFromAccumulator()
1229 using llvm::Attribute; in CreateReduceCombinerFromAccumulator()
1233 llvm::Value *AccumulatorArg_accum = &*(AccumulatorArgIter++); in CreateReduceCombinerFromAccumulator()
1234 llvm::Value *AccumulatorArg_in = &*(AccumulatorArgIter++); in CreateReduceCombinerFromAccumulator()
1235 llvm::Type *AccumulatorArgType = AccumulatorArg_accum->getType(); in CreateReduceCombinerFromAccumulator()
1238 llvm::Type *VoidTy = llvm::Type::getVoidTy(*Context); in CreateReduceCombinerFromAccumulator()
1239 llvm::FunctionType *CombinerType = in CreateReduceCombinerFromAccumulator()
1240 llvm::FunctionType::get(VoidTy, { AccumulatorArgType, AccumulatorArgType }, false); in CreateReduceCombinerFromAccumulator()
1241 llvm::Function *FnCombiner = in CreateReduceCombinerFromAccumulator()
1242 llvm::Function::Create(CombinerType, llvm::GlobalValue::ExternalLinkage, in CreateReduceCombinerFromAccumulator()
1248 llvm::Argument *CombinerArg_accum = &(*CombinerArgIter++); in CreateReduceCombinerFromAccumulator()
1250 CombinerArg_accum->addAttr(llvm::AttributeSet::get(*Context, CombinerArg_accum->getArgNo() + 1, in CreateReduceCombinerFromAccumulator()
1251 llvm::makeArrayRef(Attribute::NoCapture))); in CreateReduceCombinerFromAccumulator()
1253 llvm::Argument *CombinerArg_other = &(*CombinerArgIter++); in CreateReduceCombinerFromAccumulator()
1255 CombinerArg_other->addAttr(llvm::AttributeSet::get(*Context, CombinerArg_other->getArgNo() + 1, in CreateReduceCombinerFromAccumulator()
1256 llvm::makeArrayRef(Attribute::NoCapture))); in CreateReduceCombinerFromAccumulator()
1258 llvm::BasicBlock *BB = llvm::BasicBlock::Create(*Context, "BB", FnCombiner); in CreateReduceCombinerFromAccumulator()
1259 llvm::IRBuilder<> Builder(BB); in CreateReduceCombinerFromAccumulator()
1266 llvm::Type *ElementType = AccumulatorArg_in->getType()->getPointerElementType(); in CreateReduceCombinerFromAccumulator()
1267 llvm::Value *TempMem = Builder.CreateAlloca(ElementType, nullptr, "caller_copy"); in CreateReduceCombinerFromAccumulator()
1271 llvm::Value *TypeAdjustedOther = CombinerArg_other; in CreateReduceCombinerFromAccumulator()
1278 llvm::Value *DerefOther = Builder.CreateLoad(TypeAdjustedOther); in CreateReduceCombinerFromAccumulator()
1296 bool allocPointersExposed(llvm::Module &Module) { in allocPointersExposed()
1333 llvm::Function *Function = Module.getFunction(FI); in allocPointersExposed()
1358 void connectRenderScriptTBAAMetadata(llvm::Module &Module) { in connectRenderScriptTBAAMetadata()
1359 llvm::MDBuilder MDHelper(*Context); in connectRenderScriptTBAAMetadata()
1360 llvm::MDNode *TBAARenderScriptDistinct = in connectRenderScriptTBAAMetadata()
1362 llvm::MDNode *TBAARenderScript = MDHelper.createTBAANode( in connectRenderScriptTBAAMetadata()
1364 llvm::MDNode *TBAARoot = MDHelper.createTBAARoot("Simple C/C++ TBAA"); in connectRenderScriptTBAAMetadata()
1368 virtual bool runOnModule(llvm::Module &Module) { in runOnModule()
1391 llvm::Function *kernel = Module.getFunction(name); in runOnModule()
1395 kernel->setLinkage(llvm::GlobalValue::InternalLinkage); in runOnModule()
1398 kernel->setLinkage(llvm::GlobalValue::InternalLinkage); in runOnModule()
1419 llvm::Function *accumulator = Module.getFunction(ExportReduceList[i].mAccumulatorName); in runOnModule()
1447 static llvm::RegisterPass<RSKernelExpandPass> X("kernelexp", "Kernel Expand Pass");
1453 llvm::ModulePass *