Lines Matching refs:function

28  * Consider the (possibly disjoint) graph of function calls in a shader.  If a
29 * program contains recursion, this graph will contain a cycle. If a function
31 * calls another function).
33 * To detect recursion, the function call graph is constructed. The graph is
34 * repeatedly reduced by removing any function that either has no callees
43 * function appearing more than once at any one time in the run-time stack
44 * of function calls. That is, a function may not call itself either
95 * present if the static function call graph of the program contains
103 * - Is it an error to have a recursive function that is never statically
104 * called by main or any function called directly or indirectly by main?
105 * Technically speaking, such a function is not in the "static function
113 * which calls D, then this algorithm will report C as a function which "has
131 class function *func;
134 class function {
136 function(ir_function_signature *sig)
164 /** List of functions called by this function. */
167 /** List of functions that call this function. */
188 function *get_function(ir_function_signature *sig)
190 function *f = (function *) hash_table_find(this->function_hash, sig);
192 f = new(mem_ctx) function(sig);
221 function *const target = this->get_function(call->callee);
237 function *current;
244 destroy_links(exec_list *list, function *f)
249 /* If this is the right function, remove it. Note that the loop cannot
250 * terminate now. There can be multiple links to a function if it is
260 * Remove a function if it has either no in or no out links
266 function *f = (function *) data;
290 function *f = (function *) data;
301 "function `%s' has static recursion.",
312 function *f = (function *) data;
320 linker_error(prog, "function `%s' has static recursion.\n", proto);