wfs_xsb_i.h File Reference

#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

Define Documentation

#define add_ascc_edges subgoal,
cs_frame,
leader_cs_frame   ) 
 

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);           \
    }

#define edge_alloc_chunk_size   (1024 * sizeof(struct ascc_edge))
 

#define first_consumer SUBG,
CSF   )     (subg_asf_list_ptr(SUBG))
 

#define Free_Edge theEdge   ) 
 

Value:

next_edge(theEdge) = free_edges; \
    free_edges = theEdge

#define New_Edge theEdge,
FromEptr,
ToNode   ) 
 

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

#define ptcp_of_cons CONS_CP   )     ((VariantSF)(nlcp_ptcp(CONS_CP)))
 

#define ptcp_of_csusp CSUSP_CP   )     ((VariantSF)(csf_ptcp(CSUSP_CP)))
 

#define ptcp_of_gen SUBG,
CSF   )     ((VariantSF)(tcp_ptcp(subg_cp_ptr(SUBG))))
 

#define unvisit leader   ) 
 

Value:

for (csf = leader; csf >= (ComplStackFrame)openreg; csf--) \
      compl_visited(csf) = FALSE


Function Documentation

void abolish_edge_space void   ) 
 

static EPtr alloc_more_edge_space void   )  [static]
 

static void batched_compute_wfs CTXTdeclc CPtr  leader_compl_frame,
CPtr  leader_breg,
VariantSF  leader_subg
[static]
 

static void construct_dep_graph CTXTdeclc ComplStackFrame  leader_compl_frame  )  [inline, static]
 

static void reclaim_edge_space ComplStackFrame  csf_ptr  )  [static]
 


Variable Documentation

char* edge_space_chunk_ptr = NULL [static]
 

EPtr free_edge_space = NULL [static]
 

EPtr free_edges = NULL [static]
 

EPtr top_edge_space = NULL [static]
 


Generated on Wed Jul 26 13:26:55 2006 for XSB by  doxygen 1.4.5