#include "debugs/debug_delay.h"
Defines | |
#define | unvisit(leader) |
#define | edge_alloc_chunk_size (1024 * sizeof(struct ascc_edge)) |
#define | Free_Edge(theEdge) |
#define | New_Edge(theEdge, FromEptr, ToNode) |
#define | add_ascc_edges(subgoal, cs_frame, leader_cs_frame) |
#define | first_consumer(SUBG, CSF) (subg_asf_list_ptr(SUBG)) |
#define | ptcp_of_gen(SUBG, CSF) ((VariantSF)(tcp_ptcp(subg_cp_ptr(SUBG)))) |
#define | ptcp_of_cons(CONS_CP) ((VariantSF)(nlcp_ptcp(CONS_CP))) |
#define | ptcp_of_csusp(CSUSP_CP) ((VariantSF)(csf_ptcp(CSUSP_CP))) |
Functions | |
void | abolish_edge_space (void) |
static EPtr | alloc_more_edge_space (void) |
static void | reclaim_edge_space (ComplStackFrame csf_ptr) |
static void | construct_dep_graph (CTXTdeclc ComplStackFrame leader_compl_frame) |
static void | batched_compute_wfs (CTXTdeclc CPtr leader_compl_frame, CPtr leader_breg, VariantSF leader_subg) |
Variables | |
static char * | edge_space_chunk_ptr = NULL |
static EPtr | free_edges = NULL |
static EPtr | free_edge_space = NULL |
static EPtr | top_edge_space = NULL |
|
Value: csf2 = (ComplStackFrame)subg_compl_stack_ptr(subgoal); \ if (leader_cs_frame >= csf2 && !is_completed(subgoal)) { \ New_Edge(eptr, compl_DGT_edges(cs_frame), csf2); \ New_Edge(eptr, compl_DG_edges(csf2), cs_frame); \ } |
|
|
|
|
|
Value: next_edge(theEdge) = free_edges; \ free_edges = theEdge |
|
Value: if (free_edges) {\ theEdge = free_edges; \ free_edges = next_edge(free_edges); \ } else { \ if (free_edge_space < top_edge_space) { \ theEdge = free_edge_space++; \ } else { \ theEdge = alloc_more_edge_space(); \ } \ } \ edge_to_node(theEdge) = (ComplStackFrame) ToNode; \ next_edge(theEdge) = FromEptr; \ FromEptr = theEdge |
|
|
|
|
|
|
|
Value: for (csf = leader; csf >= (ComplStackFrame)openreg; csf--) \ compl_visited(csf) = FALSE |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|