Home | History | Annotate | Download | only in memcheck

Lines Matching full:clique

200 //   number as the "clique" number.
211 // hanging off it. All these blocks together form a "clique". The
212 // directly lost block is called the "clique leader". The clique number
213 // is the number (in lc_chunks[]) of the clique leader.
215 // cycle. In that case, there may be more than one choice for the clique
217 // either A or B could be the clique leader.
226 // - In the clique == -1 case:
233 // - In the clique != -1 case, currently it's always True because we treat
439 SizeT clique;
440 // if IndirectLeak, clique leader to which it belongs.
947 // before, push it onto the mark stack. Clique is the index of the
948 // clique leader.
950 lc_push_with_clique_if_a_chunk_ptr(Addr ptr, Int clique, Int cur_clique)
956 tl_assert(0 <= clique && clique < lc_n_chunks);
962 // If ch_no==clique, it's the clique leader, which means this is a cyclic
964 if (ex->state == Unreached && ch_no != clique) {
970 // Add the block to the clique, and add its size to the
971 // clique-leader's indirect size. Also, if the new block was
972 // itself a clique leader, it isn't any more, so add its
973 // indirect_szB to the new clique leader.
976 VG_(printf)(" clique %d joining clique %d adding %lu+%lu\n",
977 ch_no, clique, (SizeT)ch->szB, ex->IorC.indirect_szB);
979 VG_(printf)(" block %d joining clique %d adding %lu\n",
980 ch_no, clique, (SizeT)ch->szB);
983 lc_extras[clique].IorC.indirect_szB += ch->szB;
984 lc_extras[clique].IorC.indirect_szB += ex->IorC.indirect_szB;
986 ex->IorC.clique = (SizeT) cur_clique;
992 Int clique, Int cur_clique, Bool is_prior_definite)
994 if (-1 == clique)
997 lc_push_with_clique_if_a_chunk_ptr(ptr, clique, cur_clique);
1018 // clique is the "highest level clique" in which indirectly leaked blocks have
1019 // to be collected. cur_clique is the current "lower" level clique through which
1021 // Example: in the below tree if A is leaked, the top level clique will
1030 // Proper handling of top and lowest level clique allows block_list of a loss
1041 Int clique, Int cur_clique,
1163 lc_push_if_a_chunk_ptr(addr, clique, cur_clique, is_prior_definite);
1176 static void lc_process_markstack(Int clique)
1188 is_prior_definite, clique, (clique == -1 ? -1 : top),
1567 // print recursively all indirectly leaked blocks collected in clique.
1569 static void print_clique (Int clique, UInt level, UInt *remaining)
1579 && ind_ex->IorC.clique == (SizeT) clique) {
1682 // We can print the clique in all states, except Reachable.
1683 // In Unreached state, lc_chunk[i] is the clique leader.
1684 // In IndirectLeak, lc_chunk[i] might have been a clique
1685 // leader which was later collected in another clique.
1686 // For Possible, lc_chunk[i] might be the top of a clique
1687 // or an intermediate clique.
1745 // Scan the segment. We use -1 for the clique number, because this
1754 /*clique*/-1, /*cur_clique*/-1,
1914 lc_process_markstack(/*clique*/-1);
1927 // from it. These form a clique and are marked IndirectLeak, and their
1928 // size is added to the clique leader's indirect size. If one of the
1929 // found blocks was itself a clique leader (from a previous clique), then
1943 VG_(printf)("%d: gathering clique %#lx\n", i, ch->data);
1947 lc_process_markstack(/*clique*/i);
2003 /*clique*/-1, /*cur_clique*/-1,