Lines Matching refs:solution
113 1. Each constraint variable x has a solution set associated with it,
133 6. The graph is then walked, and solution sets are
139 appropriate variables to the solution set.
141 8. The process of walking the graph is iterated until no solution
179 An alternative solution is to delay IPA PTA until after all
193 We probably should compute a per-function unit-ESCAPE solution
195 solution can go alongside the non-IPA escaped solution and be
252 /* True if this is a special variable whose solution set should not be
310 the final points-to solution because it reaches its containing
321 bitmap solution;
410 ret->solution = BITMAP_ALLOC (&pta_obstack);
856 For each outgoing edge from n, propagate the solution from n to
955 /* Expands the solution in SET to all sub-fields of variables included. */
995 /* Union solution sets TO and DELTA, and add INC to each member of DELTA in the
1006 /* If the solution of DELTA contains anything it is good enough to transfer
1011 /* If the offset is unknown we have to expand the solution to
1020 /* For non-zero offset union the offsetted solution into the destination. */
1215 && bitmap_bit_p (get_varinfo (find (to))->solution, escaped_id))
1396 bitmap_set_bit (get_varinfo (lhsvar)->solution, rhsvar);
1561 if (fromvi->solution)
1563 /* If the solution changes because of the merging, we need to mark
1566 if (bitmap_ior_into (tovi->solution, fromvi->solution))
1572 BITMAP_FREE (fromvi->solution);
1585 starting solution for y. */
1593 bitmap sol = get_varinfo (lhs)->solution;
1601 /* If the solution of Y contains anything it is good enough to transfer
1647 flag |= bitmap_ior_into (sol, get_varinfo (t)->solution);
1648 /* Merging the solution from ESCAPED needlessly increases
1654 flag |= bitmap_ior_into (sol, get_varinfo (t)->solution);
1666 /* If the LHS solution changed, mark the var as changed. */
1669 get_varinfo (lhs)->solution = sol;
1675 as the starting solution for x. */
1681 bitmap sol = get_varinfo (rhs)->solution;
1690 /* If the solution of y contains ANYTHING simply use the ANYTHING
1691 solution. This avoids needlessly increasing the points-to sets. */
1693 sol = get_varinfo (find (anything_id))->solution;
1695 /* If the solution for x contains ANYTHING we have to merge the
1696 solution of y into all pointer variables which we do via
1703 if (bitmap_ior_into (get_varinfo (t)->solution, sol))
1749 && bitmap_ior_into (get_varinfo (t)->solution, sol))
1760 && bitmap_ior_into (get_varinfo (t)->solution, sol))
1806 tmp = get_varinfo (c->lhs.var)->solution;
2671 && !bitmap_empty_p (get_varinfo (node)->solution))
2679 /* We can't touch the solution set and call unify_nodes
2683 EXECUTE_IF_SET_IN_BITMAP (get_varinfo (node)->solution, 0, i, bi)
2723 if (find (i) == i && !bitmap_empty_p (ivi->solution)
2759 bitmap solution;
2764 /* Compute the changed set of solution bits. If anything
2765 is in the solution just propagate that. */
2766 if (bitmap_bit_p (vi->solution, anything_id))
2768 /* If anything is also in the old solution there is
2774 bitmap_copy (pts, get_varinfo (find (anything_id))->solution);
2777 bitmap_and_compl (pts, vi->solution, vi->oldsolution);
2779 bitmap_copy (pts, vi->solution);
2792 solution = vi->solution;
2793 solution_empty = bitmap_empty_p (solution);
2807 solution to non-empty, given an empty solution,
2815 solution_empty = bitmap_empty_p (solution);
2822 /* Propagate solution to all successors. */
2849 bitmap tmp = get_varinfo (to)->solution;
3086 /* Likewise adding to the solution of a non-pointer var isn't useful. */
3144 does not change the points-to solution. */
3153 solution which includes all sub-fields of all pointed-to
3178 /* As we are eventually appending to the solution do not use
3879 /* Add constraints to that the solution of VI is transitively closed. */
3896 /* Add constraints to that the solution of VI has all subvariables added. */
4051 (except through the escape solution).
4499 to the ESCAPED solution. The functions make the first argument
4644 arguments and do not add to the ESCAPED solution. */
6451 /* Print out the points-to solution for VAR to FILE. */
6460 /* Dump the solution for unified vars anyway, this avoids difficulties
6464 EXECUTE_IF_SET_IN_BITMAP (vi->solution, 0, i, bi)
6475 /* Print the points-to solution for VAR to stderr. */
6551 /* Structure used to put solution bitmaps in a hashtable so they can
6628 /* Set bits in INTO corresponding to the variable uids in solution set FROM. */
6638 = escaped_vi->solution && bitmap_bit_p (escaped_vi->solution, anything_id);
6648 || (escaped_vi->solution
6649 && bitmap_bit_p (escaped_vi->solution, i)))
6717 /* Compute the points-to solution *PT for the variable VI. */
6733 /* See if we have already computed the solution and return it. */
6743 EXECUTE_IF_SET_IN_BITMAP (vi->solution, 0, i, bi)
6759 if (bitmap_bit_p (evi->solution, nonlocal_id))
6782 set_uids_in_ptset (finished_solution, vi->solution, pt, fndecl);
6860 /* Reset the points-to solution *PT to a conservative default
6871 /* Set the points-to solution *PT to point only to the variables
6888 /* Set the points-to solution *PT to point only to the variable VAR. */
6933 /* Return true if the points-to solution *PT is empty. */
6946 /* If the solution includes ESCAPED, check if that is empty. */
6951 /* If the solution includes ESCAPED, check if that is empty. */
6959 /* Return true if the points-to solution *PT only point to a single var, and
6974 /* Return true if the points-to solution *PT includes global memory.
7005 /* Return true if the points-to solution *PT includes the variable
7022 /* If the solution includes ESCAPED, check it. */
7027 /* If the solution includes ESCAPED, check it. */
7073 /* Check the escaped solution if required.
7078 /* If both point to escaped memory and that solution
7083 /* If either points to escaped memory see if the escaped solution
7092 /* Now both pointers alias if their points-to solution intersects. */
7391 to move vars never appearing in the points-to solution bitmaps last. */
7404 gcc_assert (bitmap_empty_p (varmap[i]->solution));
7539 the ESCAPED solution and we can filter local variables. */
7548 EXECUTE_IF_AND_COMPL_IN_BITMAP (part_vi->solution,
7549 escaped_vi->solution, 0, i, bi)
7560 bitmap_ior_into (escaped_vi->solution, delta);
7570 EXECUTE_IF_AND_COMPL_IN_BITMAP (pointed_to_vi->solution,
7571 escaped_vi->solution,
7581 bitmap_ior_into (escaped_vi->solution, new_delta);
7596 /* Make sure the ESCAPED solution (which is used as placeholder in
7598 points-to solution queries. */
7775 if (bitmap_intersect_p (rvars, vi->solution)
7776 || (escaped_p && bitmap_bit_p (vi->solution, escaped_id)))
7914 EXECUTE_IF_SET_IN_BITMAP (vi->solution, 0, j, bi)
7966 if (bitmap_bit_p (escaped->solution, restrict_var->id))
8030 points-to solution. */
8183 if (vi->solution && !bitmap_empty_p (vi->solution))
8187 fprintf (file, " solution: {");
8188 EXECUTE_IF_SET_IN_BITMAP (vi->solution, 0, i, bi)
8194 && !bitmap_equal_p (vi->solution, vi->oldsolution))
8452 EXECUTE_IF_SET_IN_BITMAP (vi->solution, 0, j, bi)
8473 EXECUTE_IF_SET_IN_BITMAP (vi->solution, 0, j, bi)
8498 /* Make sure the ESCAPED solution (which is used as placeholder in
8500 points-to solution queries. */
8623 if (bitmap_bit_p (fi->solution, anything_id)
8624 || bitmap_bit_p (fi->solution, nonlocal_id)
8625 || bitmap_bit_p (fi->solution, escaped_id))
8640 EXECUTE_IF_SET_IN_BITMAP (fi->solution, 0, i, bi)
8679 /* We have to re-set the final-solution cache after each function