Lines Matching defs:problem

34 The file df-problems.c provides problem instance for the most common
48 df_add_problem (df, problem, flags);
76 DF_ADD_PROBLEM adds a problem, defined by an instance to struct
78 calls to add a problem for a given instance of df must occur before
87 definitions. As long as these dependencies are listed in the problem
90 df_add_problem. Note that it is not necessary to have a problem. In
168 needed) it to formulate a problem specific solution.
321 /* All df instance must define the scanning problem. */
330 df_add_problem (struct df *df, struct df_problem *problem, int flags)
334 /* First try to add the dependent problem. */
335 if (problem->dependent_problem_fun)
336 (problem->dependent_problem_fun) (df, 0);
338 /* Check to see if this problem has already been defined. If it
341 dflow = df->problems_by_index[problem->id];
349 dflow->problem = problem;
351 df->problems_by_index[dflow->problem->id] = dflow;
357 /* Set the MASK flags in the DFLOW problem. The old flags are
365 gcc_assert (!(mask & (~dflow->problem->changeable_flags)));
372 /* Clear the MASK flags in the DFLOW problem. The old flags are
380 gcc_assert (!(mask & (~dflow->problem->changeable_flags)));
404 if (dflow->problem->reset_fun)
405 dflow->problem->reset_fun (dflow, df->blocks_to_analyze);
406 else if (dflow->problem->free_bb_fun)
416 dflow->problem->free_bb_fun
438 if (dflow->problem->reset_fun)
449 dflow->problem->reset_fun (dflow, blocks_to_reset);
472 problem will be reanalyzed. */
483 if (dflow->problem->free_bb_fun)
484 dflow->problem->free_bb_fun
499 df->problems_in_order[i]->problem->free_fun (df->problems_in_order[i]);
535 dataflow->problem->con_fun_n (dataflow, e);
537 else if (dataflow->problem->con_fun_0)
538 dataflow->problem->con_fun_0 (dataflow, bb);
540 result_changed = dataflow->problem->trans_fun (dataflow, i);
587 dataflow->problem->con_fun_n (dataflow, e);
589 else if (dataflow->problem->con_fun_0)
590 dataflow->problem->con_fun_0 (dataflow, bb);
592 result_changed = dataflow->problem->trans_fun (dataflow, i);
650 gcc_assert (dataflow->problem->dir);
663 dataflow->problem->init_fun (dataflow, blocks_to_init);
675 if (dataflow->problem->dir == DF_FORWARD)
725 /* Execute dataflow analysis on a single dataflow problem.
761 /* (Re)Allocate the datastructures necessary to solve the problem. */
762 if (dflow->problem->alloc_fun)
763 dflow->problem->alloc_fun (dflow, blocks_to_scan, blocks_to_init);
765 /* Set up the problem and compute the local information. This
769 if (dflow->problem->local_compute_fun)
770 dflow->problem->local_compute_fun (dflow, blocks_to_consider, blocks_to_scan);
773 if (dflow->problem->dataflow_fun)
774 dflow->problem->dataflow_fun (dflow, blocks_to_consider, blocks_to_init,
778 if (dflow->problem->finalize_fun)
779 dflow->problem->finalize_fun (dflow, blocks_to_consider);
825 /* Skip over the DF_SCAN problem. */
885 if (dflow->problem->free_bb_fun)
890 /* Copy the bb info from the problem tmps to the proper
909 dflow->problem->free_bb_fun
1135 df->problems_in_order[i]->problem->dump_fun (df->problems_in_order[i], file);