Lines Matching defs:CallTy
154 template <typename DerivedCCG, typename FuncTy, typename CallTy>
186 const CallsiteContextGraph<DerivedCCG, FuncTy, CallTy> *>;
188 const CallsiteContextGraph<DerivedCCG, FuncTy, CallTy> *>;
203 /// Represents a callsite clone via CallTy and clone number pair.
204 struct CallInfo final : public std::pair<CallTy, unsigned /*Clone number*/> {
205 using Base = std::pair<CallTy, unsigned>;
207 CallInfo(CallTy Call = nullptr, unsigned CloneNo = 0)
210 CallTy call() const { return this->first; }
466 using CallContextInfo = std::tuple<CallTy, std::vector<uint64_t>,
511 calleesMatch(CallTy Call, EdgeIter &EI,
518 CallTy Call, const FuncTy *Func, const FuncTy *CallerFunc,
519 std::vector<std::pair<CallTy, FuncTy *>> &FoundCalleeChain) {
526 std::vector<uint64_t> getStackIdsWithContextNodesForCall(CallTy Call) {
532 uint64_t getLastStackId(CallTy Call) {
560 std::string getLabel(const FuncTy *Func, const CallTy Call,
640 template <typename DerivedCCG, typename FuncTy, typename CallTy>
642 typename CallsiteContextGraph<DerivedCCG, FuncTy, CallTy>::ContextNode;
643 template <typename DerivedCCG, typename FuncTy, typename CallTy>
645 typename CallsiteContextGraph<DerivedCCG, FuncTy, CallTy>::ContextEdge;
646 template <typename DerivedCCG, typename FuncTy, typename CallTy>
648 typename CallsiteContextGraph<DerivedCCG, FuncTy, CallTy>::FuncInfo;
649 template <typename DerivedCCG, typename FuncTy, typename CallTy>
651 typename CallsiteContextGraph<DerivedCCG, FuncTy, CallTy>::CallInfo;
830 template <typename DerivedCCG, typename FuncTy, typename CallTy>
833 const std::vector<std::shared_ptr<ContextEdge<DerivedCCG, FuncTy, CallTy>>>
838 const std::shared_ptr<ContextEdge<DerivedCCG, FuncTy, CallTy>> &r) {
851 template <typename DerivedCCG, typename FuncTy, typename CallTy>
852 typename CallsiteContextGraph<DerivedCCG, FuncTy, CallTy>::ContextNode *
853 CallsiteContextGraph<DerivedCCG, FuncTy, CallTy>::getNodeForInst(
862 template <typename DerivedCCG, typename FuncTy, typename CallTy>
863 typename CallsiteContextGraph<DerivedCCG, FuncTy, CallTy>::ContextNode *
864 CallsiteContextGraph<DerivedCCG, FuncTy, CallTy>::getNodeForAlloc(
869 template <typename DerivedCCG, typename FuncTy, typename CallTy>
870 typename CallsiteContextGraph<DerivedCCG, FuncTy, CallTy>::ContextNode *
871 CallsiteContextGraph<DerivedCCG, FuncTy, CallTy>::getNodeForStackId(
879 template <typename DerivedCCG, typename FuncTy, typename CallTy>
880 void CallsiteContextGraph<DerivedCCG, FuncTy, CallTy>::ContextNode::
896 template <typename DerivedCCG, typename FuncTy, typename CallTy>
898 DerivedCCG, FuncTy, CallTy>::removeNoneTypeCalleeEdges(ContextNode *Node) {
910 template <typename DerivedCCG, typename FuncTy, typename CallTy>
911 typename CallsiteContextGraph<DerivedCCG, FuncTy, CallTy>::ContextEdge *
912 CallsiteContextGraph<DerivedCCG, FuncTy, CallTy>::ContextNode::
920 template <typename DerivedCCG, typename FuncTy, typename CallTy>
921 typename CallsiteContextGraph<DerivedCCG, FuncTy, CallTy>::ContextEdge *
922 CallsiteContextGraph<DerivedCCG, FuncTy, CallTy>::ContextNode::
930 template <typename DerivedCCG, typename FuncTy, typename CallTy>
931 void CallsiteContextGraph<DerivedCCG, FuncTy, CallTy>::ContextNode::
941 template <typename DerivedCCG, typename FuncTy, typename CallTy>
942 void CallsiteContextGraph<DerivedCCG, FuncTy, CallTy>::ContextNode::
952 template <typename DerivedCCG, typename FuncTy, typename CallTy>
953 uint8_t CallsiteContextGraph<DerivedCCG, FuncTy, CallTy>::computeAllocType(
967 template <typename DerivedCCG, typename FuncTy, typename CallTy>
969 CallsiteContextGraph<DerivedCCG, FuncTy, CallTy>::intersectAllocTypesImpl(
985 template <typename DerivedCCG, typename FuncTy, typename CallTy>
986 uint8_t CallsiteContextGraph<DerivedCCG, FuncTy, CallTy>::intersectAllocTypes(
994 template <typename DerivedCCG, typename FuncTy, typename CallTy>
995 typename CallsiteContextGraph<DerivedCCG, FuncTy, CallTy>::ContextNode *
996 CallsiteContextGraph<DerivedCCG, FuncTy, CallTy>::addAllocNode(
1024 template <typename DerivedCCG, typename FuncTy, typename CallTy>
1026 void CallsiteContextGraph<DerivedCCG, FuncTy, CallTy>::addStackNodesForMIB(
1075 template <typename DerivedCCG, typename FuncTy, typename CallTy>
1077 CallsiteContextGraph<DerivedCCG, FuncTy, CallTy>::duplicateContextIds(
1095 template <typename DerivedCCG, typename FuncTy, typename CallTy>
1096 void CallsiteContextGraph<DerivedCCG, FuncTy, CallTy>::
1135 template <typename DerivedCCG, typename FuncTy, typename CallTy>
1136 void CallsiteContextGraph<DerivedCCG, FuncTy, CallTy>::connectNewNode(
1186 template <typename DerivedCCG, typename FuncTy, typename CallTy>
1188 const std::shared_ptr<ContextEdge<DerivedCCG, FuncTy, CallTy>> &Edge) {
1195 template <typename DerivedCCG, typename FuncTy, typename CallTy>
1196 static void checkNode(const ContextNode<DerivedCCG, FuncTy, CallTy> *Node,
1211 checkEdge<DerivedCCG, FuncTy, CallTy>(Edge);
1224 checkEdge<DerivedCCG, FuncTy, CallTy>(Edge);
1231 template <typename DerivedCCG, typename FuncTy, typename CallTy>
1232 void CallsiteContextGraph<DerivedCCG, FuncTy, CallTy>::
1379 checkNode<DerivedCCG, FuncTy, CallTy>(NewNode, /*CheckEdges=*/true);
1384 checkNode<DerivedCCG, FuncTy, CallTy>(CurNode, /*CheckEdges=*/true);
1390 template <typename DerivedCCG, typename FuncTy, typename CallTy>
1391 void CallsiteContextGraph<DerivedCCG, FuncTy, CallTy>::updateStackNodes() {
1654 template <typename DerivedCCG, typename FuncTy, typename CallTy>
1657 CallsiteContextGraph<DerivedCCG, FuncTy, CallTy>::getStackIdsWithContextNodes(
1815 template <typename DerivedCCG, typename FuncTy, typename CallTy>
1817 CallTy>::handleCallsitesWithMultipleTargets() {
1879 template <typename DerivedCCG, typename FuncTy, typename CallTy>
1880 bool CallsiteContextGraph<DerivedCCG, FuncTy, CallTy>::calleesMatch(
1881 CallTy Call, EdgeIter &EI,
1888 std::vector<std::pair<CallTy, FuncTy *>> FoundCalleeChain;
2212 template <typename DerivedCCG, typename FuncTy, typename CallTy>
2213 void CallsiteContextGraph<DerivedCCG, FuncTy, CallTy>::ContextNode::dump()
2219 template <typename DerivedCCG, typename FuncTy, typename CallTy>
2220 void CallsiteContextGraph<DerivedCCG, FuncTy, CallTy>::ContextNode::print(
2254 template <typename DerivedCCG, typename FuncTy, typename CallTy>
2255 void CallsiteContextGraph<DerivedCCG, FuncTy, CallTy>::ContextEdge::dump()
2261 template <typename DerivedCCG, typename FuncTy, typename CallTy>
2262 void CallsiteContextGraph<DerivedCCG, FuncTy, CallTy>::ContextEdge::print(
2273 template <typename DerivedCCG, typename FuncTy, typename CallTy>
2274 void CallsiteContextGraph<DerivedCCG, FuncTy, CallTy>::dump() const {
2278 template <typename DerivedCCG, typename FuncTy, typename CallTy>
2279 void CallsiteContextGraph<DerivedCCG, FuncTy, CallTy>::print(
2282 using GraphType = const CallsiteContextGraph<DerivedCCG, FuncTy, CallTy> *;
2291 template <typename DerivedCCG, typename FuncTy, typename CallTy>
2292 void CallsiteContextGraph<DerivedCCG, FuncTy, CallTy>::printTotalSizes(
2294 using GraphType = const CallsiteContextGraph<DerivedCCG, FuncTy, CallTy> *;
2315 template <typename DerivedCCG, typename FuncTy, typename CallTy>
2316 void CallsiteContextGraph<DerivedCCG, FuncTy, CallTy>::check() const {
2317 using GraphType = const CallsiteContextGraph<DerivedCCG, FuncTy, CallTy> *;
2319 checkNode<DerivedCCG, FuncTy, CallTy>(Node, /*CheckEdges=*/false);
2321 checkEdge<DerivedCCG, FuncTy, CallTy>(Edge);
2325 template <typename DerivedCCG, typename FuncTy, typename CallTy>
2326 struct GraphTraits<const CallsiteContextGraph<DerivedCCG, FuncTy, CallTy> *> {
2327 using GraphType = const CallsiteContextGraph<DerivedCCG, FuncTy, CallTy> *;
2328 using NodeRef = const ContextNode<DerivedCCG, FuncTy, CallTy> *;
2330 using NodePtrTy = std::unique_ptr<ContextNode<DerivedCCG, FuncTy, CallTy>>;
2349 using EdgePtrTy = std::shared_ptr<ContextEdge<DerivedCCG, FuncTy, CallTy>>;
2350 static const ContextNode<DerivedCCG, FuncTy, CallTy> *
2357 DerivedCCG, FuncTy, CallTy>>>::const_iterator,
2369 template <typename DerivedCCG, typename FuncTy, typename CallTy>
2370 struct DOTGraphTraits<const CallsiteContextGraph<DerivedCCG, FuncTy, CallTy> *>
2374 using GraphType = const CallsiteContextGraph<DerivedCCG, FuncTy, CallTy> *;
2464 template <typename DerivedCCG, typename FuncTy, typename CallTy>
2465 void CallsiteContextGraph<DerivedCCG, FuncTy, CallTy>::exportToDot(
2471 template <typename DerivedCCG, typename FuncTy, typename CallTy>
2472 typename CallsiteContextGraph<DerivedCCG, FuncTy, CallTy>::ContextNode *
2473 CallsiteContextGraph<DerivedCCG, FuncTy, CallTy>::moveEdgeToNewCalleeClone(
2488 template <typename DerivedCCG, typename FuncTy, typename CallTy>
2489 void CallsiteContextGraph<DerivedCCG, FuncTy, CallTy>::
2599 checkNode<DerivedCCG, FuncTy, CallTy>(OldCallee, /*CheckEdges=*/false);
2600 checkNode<DerivedCCG, FuncTy, CallTy>(NewCallee, /*CheckEdges=*/false);
2602 checkNode<DerivedCCG, FuncTy, CallTy>(OldCalleeEdge->Callee,
2605 checkNode<DerivedCCG, FuncTy, CallTy>(NewCalleeEdge->Callee,
2610 template <typename DerivedCCG, typename FuncTy, typename CallTy>
2611 void CallsiteContextGraph<DerivedCCG, FuncTy, CallTy>::
2636 template <typename DerivedCCG, typename FuncTy, typename CallTy>
2637 void CallsiteContextGraph<DerivedCCG, FuncTy, CallTy>::identifyClones() {
2658 template <typename DerivedCCG, typename FuncTy, typename CallTy>
2659 void CallsiteContextGraph<DerivedCCG, FuncTy, CallTy>::identifyClones(
2663 checkNode<DerivedCCG, FuncTy, CallTy>(Node, /*CheckEdges=*/false);
2791 allocTypesMatch<DerivedCCG, FuncTy, CallTy>(
2805 if (!allocTypesMatch<DerivedCCG, FuncTy, CallTy>(
2833 checkNode<DerivedCCG, FuncTy, CallTy>(Node, /*CheckEdges=*/false);
2971 template <typename DerivedCCG, typename FuncTy, typename CallTy>
2972 bool CallsiteContextGraph<DerivedCCG, FuncTy, CallTy>::assignFunctions() {
3045 checkNode<DerivedCCG, FuncTy, CallTy>(Clone);
3340 checkNode<DerivedCCG, FuncTy, CallTy>(Node);
3342 checkNode<DerivedCCG, FuncTy, CallTy>(PE->Callee);
3344 checkNode<DerivedCCG, FuncTy, CallTy>(CE->Caller);
3346 checkNode<DerivedCCG, FuncTy, CallTy>(Clone);
3348 checkNode<DerivedCCG, FuncTy, CallTy>(PE->Callee);
3350 checkNode<DerivedCCG, FuncTy, CallTy>(CE->Caller);
3816 template <typename DerivedCCG, typename FuncTy, typename CallTy>
3817 bool CallsiteContextGraph<DerivedCCG, FuncTy, CallTy>::process() {