Lines Matching refs:Group

620 static DISubprogram *getSubprogramOrNull(OutlinableGroup &Group) {  in getSubprogramOrNull()  argument
621 for (OutlinableRegion *OS : Group.Regions) in getSubprogramOrNull()
629 Function *IROutliner::createFunction(Module &M, OutlinableGroup &Group, in createFunction() argument
631 assert(!Group.OutlinedFunction && "Function is already defined!"); in createFunction()
642 for (OutlinableRegion *R : Group.Regions) { in createFunction()
649 Group.OutlinedFunctionType = FunctionType::get( in createFunction()
650 RetTy, Group.ArgumentTypes, false); in createFunction()
654 Group.OutlinedFunction = Function::Create( in createFunction()
655 Group.OutlinedFunctionType, GlobalValue::InternalLinkage, in createFunction()
659 if (Group.SwiftErrorArgument) in createFunction()
660 Group.OutlinedFunction->addParamAttr(*Group.SwiftErrorArgument, in createFunction()
663 Group.OutlinedFunction->addFnAttr(Attribute::OptimizeForSize); in createFunction()
664 Group.OutlinedFunction->addFnAttr(Attribute::MinSize); in createFunction()
668 if (DISubprogram *SP = getSubprogramOrNull(Group)) { in createFunction()
669 Function *F = Group.OutlinedFunction; in createFunction()
700 return Group.OutlinedFunction; in createFunction()
938 OutlinableGroup &Group = *Region.Parent; in findExtractedInputToOverallInputMapping() local
965 Group.CanonicalNumberToAggArg.find(CanonicalNumber); in findExtractedInputToOverallInputMapping()
967 if (!Group.InputTypesSet) { in findExtractedInputToOverallInputMapping()
968 Group.ArgumentTypes.push_back(Input->getType()); in findExtractedInputToOverallInputMapping()
973 !Group.SwiftErrorArgument && in findExtractedInputToOverallInputMapping()
975 Group.SwiftErrorArgument = TypeIndex; in findExtractedInputToOverallInputMapping()
982 if (AggArgIt != Group.CanonicalNumberToAggArg.end()) in findExtractedInputToOverallInputMapping()
985 Group.CanonicalNumberToAggArg.insert( in findExtractedInputToOverallInputMapping()
997 if (AggArgIt != Group.CanonicalNumberToAggArg.end()) { in findExtractedInputToOverallInputMapping()
1005 Group.CanonicalNumberToAggArg.insert( in findExtractedInputToOverallInputMapping()
1018 if (!Group.InputTypesSet) { in findExtractedInputToOverallInputMapping()
1019 Group.NumAggregateInputs = TypeIndex; in findExtractedInputToOverallInputMapping()
1020 Group.InputTypesSet = true; in findExtractedInputToOverallInputMapping()
1177 OutlinableGroup &Group = *Region.Parent; in getGVNForPHINode() local
1257 GVNToPHIIt = Group.GVNsToPHINodeGVN.find(PHINodeDataHash); in getGVNForPHINode()
1258 if (GVNToPHIIt == Group.GVNsToPHINodeGVN.end()) { in getGVNForPHINode()
1260 std::tie(PHIToGVNIt, Inserted) = Group.PHINodeGVNToGVNs.insert( in getGVNForPHINode()
1261 std::make_pair(Group.PHINodeGVNTracker, TemporaryPair)); in getGVNForPHINode()
1262 std::tie(GVNToPHIIt, Inserted) = Group.GVNsToPHINodeGVN.insert( in getGVNForPHINode()
1263 std::make_pair(PHINodeDataHash, Group.PHINodeGVNTracker--)); in getGVNForPHINode()
1277 OutlinableGroup &Group = *Region.Parent; in findExtractedOutputToOverallOutputMapping() local
1305 unsigned TypeIndex = Group.NumAggregateInputs; in findExtractedOutputToOverallOutputMapping()
1322 unsigned ArgumentSize = Group.ArgumentTypes.size(); in findExtractedOutputToOverallOutputMapping()
1330 if (!isa<PointerType>(Group.ArgumentTypes[Jdx])) in findExtractedOutputToOverallOutputMapping()
1348 Group.ArgumentTypes.push_back(PointerType::get(Output->getContext(), in findExtractedOutputToOverallOutputMapping()
1352 unsigned ArgTypeIdx = Group.ArgumentTypes.size() - 1; in findExtractedOutputToOverallOutputMapping()
1433 OutlinableGroup &Group = *Region.Parent; in replaceCalledFunction() local
1436 Function *AggFunc = Group.OutlinedFunction; in replaceCalledFunction()
1457 Group.OutputGVNCombinations.size() > 1) { in replaceCalledFunction()
1525 if (Group.SwiftErrorArgument) in replaceCalledFunction()
1526 Call->addParamAttr(*Group.SwiftErrorArgument, Attribute::SwiftError); in replaceCalledFunction()
1540 static BasicBlock *findOrCreatePHIBlock(OutlinableGroup &Group, Value *RetVal) { in findOrCreatePHIBlock() argument
1543 PhiBlockForRetVal = Group.PHIBlocks.find(RetVal); in findOrCreatePHIBlock()
1544 ReturnBlockForRetVal = Group.EndBBs.find(RetVal); in findOrCreatePHIBlock()
1545 assert(ReturnBlockForRetVal != Group.EndBBs.end() && in findOrCreatePHIBlock()
1551 PhiBlockForRetVal = Group.PHIBlocks.find(RetVal); in findOrCreatePHIBlock()
1552 if (PhiBlockForRetVal != Group.PHIBlocks.end()) in findOrCreatePHIBlock()
1561 Group.PHIBlocks.insert(std::make_pair(RetVal, PHIBlock)); in findOrCreatePHIBlock()
1682 OutlinableGroup &Group = *Region.Parent; in findOrCreatePHIInBlock() local
1696 OutlinableRegion *FirstRegion = Group.Regions[0]; in findOrCreatePHIInBlock()
1772 Value *Val = Group.OutlinedFunction->getArg(A->getArgNo()); in findOrCreatePHIInBlock()
1804 OutlinableGroup &Group = *Region.Parent; in replaceArgumentUses() local
1809 DominatingFunction = Group.OutlinedFunction; in replaceArgumentUses()
1818 Argument *AggArg = Group.OutlinedFunction->getArg(AggArgIdx); in replaceArgumentUses()
1825 << " in function " << *Group.OutlinedFunction << "\n"); in replaceArgumentUses()
1881 Region.findCorrespondingValueIn(*Group.Regions[0], ValueOperand); in replaceArgumentUses()
1901 Group.PHIBlocks.insert(std::make_pair(RetVal, PHIBlock)); in replaceArgumentUses()
1907 BasicBlock *OverallPhiBlock = findOrCreatePHIBlock(Group, RetVal); in replaceArgumentUses()
1925 << " in function " << *Group.OutlinedFunction << "\n"); in replaceArgumentUses()
1935 OutlinableGroup &Group = *Region.Parent; in replaceConstants() local
1939 Function *OutlinedFunction = Group.OutlinedFunction; in replaceConstants()
1942 Argument *Arg = Group.OutlinedFunction->getArg(AggArgIdx); in replaceConstants()