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()
941 OutlinableGroup &Group = *Region.Parent; in findExtractedInputToOverallInputMapping() local
968 Group.CanonicalNumberToAggArg.find(CanonicalNumber); in findExtractedInputToOverallInputMapping()
970 if (!Group.InputTypesSet) { in findExtractedInputToOverallInputMapping()
971 Group.ArgumentTypes.push_back(Input->getType()); in findExtractedInputToOverallInputMapping()
976 !Group.SwiftErrorArgument && in findExtractedInputToOverallInputMapping()
978 Group.SwiftErrorArgument = TypeIndex; in findExtractedInputToOverallInputMapping()
985 if (AggArgIt != Group.CanonicalNumberToAggArg.end()) in findExtractedInputToOverallInputMapping()
988 Group.CanonicalNumberToAggArg.insert( in findExtractedInputToOverallInputMapping()
1000 if (AggArgIt != Group.CanonicalNumberToAggArg.end()) { in findExtractedInputToOverallInputMapping()
1008 Group.CanonicalNumberToAggArg.insert( in findExtractedInputToOverallInputMapping()
1021 if (!Group.InputTypesSet) { in findExtractedInputToOverallInputMapping()
1022 Group.NumAggregateInputs = TypeIndex; in findExtractedInputToOverallInputMapping()
1023 Group.InputTypesSet = true; in findExtractedInputToOverallInputMapping()
1180 OutlinableGroup &Group = *Region.Parent; in getGVNForPHINode() local
1260 GVNToPHIIt = Group.GVNsToPHINodeGVN.find(PHINodeDataHash); in getGVNForPHINode()
1261 if (GVNToPHIIt == Group.GVNsToPHINodeGVN.end()) { in getGVNForPHINode()
1263 std::tie(PHIToGVNIt, Inserted) = Group.PHINodeGVNToGVNs.insert( in getGVNForPHINode()
1264 std::make_pair(Group.PHINodeGVNTracker, TemporaryPair)); in getGVNForPHINode()
1265 std::tie(GVNToPHIIt, Inserted) = Group.GVNsToPHINodeGVN.insert( in getGVNForPHINode()
1266 std::make_pair(PHINodeDataHash, Group.PHINodeGVNTracker--)); in getGVNForPHINode()
1280 OutlinableGroup &Group = *Region.Parent; in findExtractedOutputToOverallOutputMapping() local
1308 unsigned TypeIndex = Group.NumAggregateInputs; in findExtractedOutputToOverallOutputMapping()
1325 unsigned ArgumentSize = Group.ArgumentTypes.size(); in findExtractedOutputToOverallOutputMapping()
1333 if (!isa<PointerType>(Group.ArgumentTypes[Jdx])) in findExtractedOutputToOverallOutputMapping()
1351 Group.ArgumentTypes.push_back(PointerType::get(Output->getContext(), in findExtractedOutputToOverallOutputMapping()
1355 unsigned ArgTypeIdx = Group.ArgumentTypes.size() - 1; in findExtractedOutputToOverallOutputMapping()
1436 OutlinableGroup &Group = *Region.Parent; in replaceCalledFunction() local
1439 Function *AggFunc = Group.OutlinedFunction; in replaceCalledFunction()
1460 Group.OutputGVNCombinations.size() > 1) { in replaceCalledFunction()
1528 if (Group.SwiftErrorArgument) in replaceCalledFunction()
1529 Call->addParamAttr(*Group.SwiftErrorArgument, Attribute::SwiftError); in replaceCalledFunction()
1543 static BasicBlock *findOrCreatePHIBlock(OutlinableGroup &Group, Value *RetVal) { in findOrCreatePHIBlock() argument
1546 PhiBlockForRetVal = Group.PHIBlocks.find(RetVal); in findOrCreatePHIBlock()
1547 ReturnBlockForRetVal = Group.EndBBs.find(RetVal); in findOrCreatePHIBlock()
1548 assert(ReturnBlockForRetVal != Group.EndBBs.end() && in findOrCreatePHIBlock()
1554 PhiBlockForRetVal = Group.PHIBlocks.find(RetVal); in findOrCreatePHIBlock()
1555 if (PhiBlockForRetVal != Group.PHIBlocks.end()) in findOrCreatePHIBlock()
1564 Group.PHIBlocks.insert(std::make_pair(RetVal, PHIBlock)); in findOrCreatePHIBlock()
1685 OutlinableGroup &Group = *Region.Parent; in findOrCreatePHIInBlock() local
1699 OutlinableRegion *FirstRegion = Group.Regions[0]; in findOrCreatePHIInBlock()
1775 Value *Val = Group.OutlinedFunction->getArg(A->getArgNo()); in findOrCreatePHIInBlock()
1807 OutlinableGroup &Group = *Region.Parent; in replaceArgumentUses() local
1812 DominatingFunction = Group.OutlinedFunction; in replaceArgumentUses()
1821 Argument *AggArg = Group.OutlinedFunction->getArg(AggArgIdx); in replaceArgumentUses()
1828 << " in function " << *Group.OutlinedFunction << "\n"); in replaceArgumentUses()
1884 Region.findCorrespondingValueIn(*Group.Regions[0], ValueOperand); in replaceArgumentUses()
1904 Group.PHIBlocks.insert(std::make_pair(RetVal, PHIBlock)); in replaceArgumentUses()
1910 BasicBlock *OverallPhiBlock = findOrCreatePHIBlock(Group, RetVal); in replaceArgumentUses()
1928 << " in function " << *Group.OutlinedFunction << "\n"); in replaceArgumentUses()
1938 OutlinableGroup &Group = *Region.Parent; in replaceConstants() local
1942 Function *OutlinedFunction = Group.OutlinedFunction; in replaceConstants()
1945 Argument *Arg = Group.OutlinedFunction->getArg(AggArgIdx); in replaceConstants()