choice.h File Reference


Data Structures

struct  choice_point
struct  tabled_choice_point
struct  consumer_choice_point
struct  compl_susp_frame
struct  compl_susp_choice_point

Defines

#define STANDARD_CP_FRAME   0
#define GENERATOR_CP_FRAME   1
#define CONSUMER_CP_FRAME   2
#define COMPL_SUSP_CP_FRAME   3
#define CP_SIZE   (sizeof(struct choice_point)/sizeof(CPtr))
#define cp_pcreg(b)   ((Choice)(b))->next_clause
#define cp_ebreg(b)   ((Choice)(b))->_ebreg
#define cp_hreg(b)   ((Choice)(b))->_hreg
#define cp_trreg(b)   ((Choice)(b))->_trreg
#define cp_cpreg(b)   ((Choice)(b))->_cpreg
#define cp_ereg(b)   ((Choice)(b))->_ereg
#define cp_prevbreg(b)   ((Choice)(b))->prev
#define cp_pdreg(b)   ((Choice)(b))->pdreg
#define cp_ptcp(b)   ((Choice)(b))->ptcp
#define SAVE_PSC(b)
#define save_choicepoint(t_breg, t_ereg, next_clause, prev)
#define TCP_SIZE   (sizeof(struct tabled_choice_point)/sizeof(CPtr))
#define tcp_pcreg(b)   ((TChoice)(b))->next_clause
#define tcp_ebreg(b)   ((TChoice)(b))->_ebreg
#define tcp_hreg(b)   ((TChoice)(b))->_hreg
#define tcp_trreg(b)   ((TChoice)(b))->_trreg
#define tcp_cpreg(b)   ((TChoice)(b))->_cpreg
#define tcp_ereg(b)   ((TChoice)(b))->_ereg
#define tcp_prevbreg(b)   ((TChoice)(b))->prev
#define tcp_pdreg(b)   ((TChoice)(b))->pdreg
#define tcp_ptcp(b)   ((TChoice)(b))->ptcp
#define tcp_subgoal_ptr(b)   ((TChoice)(b))->subgoal_ptr
#define SAVE_TPSC(b)
#define tcp_template(b)   ((TChoice)(b))->answer_template
#define tcp_bfreg(b)   ((TChoice)(b))->_bfreg
#define tcp_hfreg(b)   ((TChoice)(b))->_hfreg
#define tcp_trfreg(b)   ((TChoice)(b))->_trfreg
#define tcp_efreg(b)   ((TChoice)(b))->_efreg
#define is_generator_choicepoint(b)
#define perform_early_completion(ProdSF, ProdCPF)
#define _SaveProducerCPF_common(TopCPS, Cont, pSF)
#define _SaveProducerCPF_slg(TopCPS, Cont, pSF, AT)
#define SaveProducerCPF(TopCPS, Cont, pSF, Arity, AT)   _SaveProducerCPF_slg(TopCPS, Cont, pSF, AT)
#define NLCP_SIZE   (sizeof(struct consumer_choice_point)/sizeof(CPtr))
#define nlcp_pcreg(b)   ((NLChoice)(b))->next_clause
#define nlcp_ebreg(b)   ((NLChoice)(b))->_ebreg
#define nlcp_hreg(b)   ((NLChoice)(b))->_hreg
#define nlcp_trreg(b)   ((NLChoice)(b))->_trreg
#define nlcp_cpreg(b)   ((NLChoice)(b))->_cpreg
#define nlcp_ereg(b)   ((NLChoice)(b))->_ereg
#define nlcp_subgoal_ptr(b)   ((NLChoice)(b))->subgoal_ptr
#define nlcp_pdreg(b)   ((NLChoice)(b))->pdreg
#define nlcp_ptcp(b)   ((NLChoice)(b))->ptcp
#define nlcp_prevbreg(b)   ((NLChoice)(b))->prev
#define nlcp_prevlookup(b)   ((NLChoice)(b))->prevlookup
#define nlcp_trie_return(b)   ((NLChoice)(b))->trie_return
#define nlcp_template(b)   ((NLChoice)(b))->answer_template
#define is_consumer_choicepoint(b)   (cp_pcreg(b) == (byte *) &answer_return_inst)
#define SAVE_NLPSC(b)
#define _SaveConsumerCPF_common(TopCPS, SF, PrevConsumer)
#define SaveConsumerCPF(TopCPS, ConsSF, PrevConsumer, AT)
#define CSF_SIZE   (sizeof(struct compl_susp_frame)/sizeof(CPtr))
#define csf_pcreg(b)   ((ComplSuspFrame)(b))->next_clause
#define csf_ebreg(b)   ((ComplSuspFrame)(b))->_ebreg
#define csf_hreg(b)   ((ComplSuspFrame)(b))->_hreg
#define csf_trreg(b)   ((ComplSuspFrame)(b))->_trreg
#define csf_cpreg(b)   ((ComplSuspFrame)(b))->_cpreg
#define csf_ereg(b)   ((ComplSuspFrame)(b))->_ereg
#define csf_pdreg(b)   ((ComplSuspFrame)(b))->pdreg
#define csf_ptcp(b)   ((ComplSuspFrame)(b))->ptcp
#define csf_subgoal_ptr(b)   ((ComplSuspFrame)(b))->subgoal_ptr
#define csf_prevcsf(b)   ((ComplSuspFrame)(b))->prevcsf
#define csf_neg_loop(b)   ((ComplSuspFrame)(b))->neg_loop
#define SAVE_CSFPSC(b)
#define is_compl_susp_frame(b)
#define save_compl_susp_frame(t_breg, t_ereg, subg, t_ptcp, CPREG)
#define COMPL_SUSP_CP_SIZE   (sizeof(struct compl_susp_choice_point)/sizeof(CPtr))
#define cs_pcreg(b)   ((ComplSuspChoice)(b))->next_clause
#define cs_ebreg(b)   ((ComplSuspChoice)(b))->_ebreg
#define cs_hreg(b)   ((ComplSuspChoice)(b))->_hreg
#define cs_compsuspptr(b)   ((ComplSuspChoice)(b))->compsuspptr
#define cs_prevbreg(b)   ((ComplSuspChoice)(b))->prev
#define SAVE_CSCP_EXTRA(t_breg)
#define SAVE_CSCPPSC(b)
#define save_compl_susp_cp(t_breg, prev, compsuspptr)
#define save_registers(t_breg, arity, regbase)
#define restore_registers(t_breg, arity, regbase)
#define table_restore_registers(t_breg, arity, regbase)
#define save_find_locx(t_ereg)
#define restore_some_wamregs(t_breg, t_ereg)

Typedefs

typedef choice_pointChoice
typedef tabled_choice_pointTChoice
typedef consumer_choice_pointNLChoice
typedef compl_susp_frameComplSuspFrame
typedef compl_susp_choice_pointComplSuspChoice

Define Documentation

#define _SaveConsumerCPF_common TopCPS,
SF,
PrevConsumer   ) 
 

Value:

{       \
   TopCPS -= NLCP_SIZE;                                         \
   nlcp_trie_return(TopCPS) = subg_ans_list_ptr(SF);            \
   nlcp_subgoal_ptr(TopCPS) = (CPtr)SF;                         \
   nlcp_prevlookup(TopCPS) = PrevConsumer;                      \
   nlcp_ptcp(TopCPS) = ptcpreg;                                 \
   nlcp_pdreg(TopCPS) = delayreg;                               \
   nlcp_prevbreg(TopCPS) = breg;                                \
   nlcp_ereg(TopCPS) = ereg;                                    \
   nlcp_cpreg(TopCPS) = cpreg;                                  \
   nlcp_trreg(TopCPS) = trreg;                                  \
   SAVE_NLPSC(TopCPS);                                          \
   nlcp_hreg(TopCPS) = hreg;                                    \
   nlcp_ebreg(TopCPS) = ebreg;                                  \
   nlcp_pcreg(TopCPS) = (pb) &answer_return_inst;               \
 }

#define _SaveProducerCPF_common TopCPS,
Cont,
pSF   ) 
 

Value:

{    \
   TopCPS -= TCP_SIZE;                                  \
   tcp_ptcp(TopCPS) = ptcpreg;                          \
   tcp_pdreg(TopCPS) = delayreg;                        \
   tcp_ereg(TopCPS) = ereg;                             \
   tcp_cpreg(TopCPS) = cpreg;                           \
   tcp_trreg(TopCPS) = trreg;                           \
   tcp_hreg(TopCPS) = hreg;                             \
   tcp_ebreg(TopCPS) = ebreg;                           \
   tcp_subgoal_ptr(TopCPS) = (CPtr)pSF;                 \
   SAVE_TPSC(TopCPS);                                   \
   tcp_prevbreg(TopCPS) = breg;                         \
   tcp_pcreg(TopCPS) = Cont;                            \
 }

#define _SaveProducerCPF_slg TopCPS,
Cont,
pSF,
AT   ) 
 

Value:

{       \
   _SaveProducerCPF_common(TopCPS, Cont, pSF);          \
   tcp_bfreg(TopCPS) = bfreg;                           \
   tcp_efreg(TopCPS) = efreg;                           \
   tcp_trfreg(TopCPS) = trfreg;                         \
   tcp_hfreg(TopCPS) = hfreg;                           \
   tcp_template(TopCPS) = AT;                           \
 }

#define COMPL_SUSP_CP_FRAME   3
 

#define COMPL_SUSP_CP_SIZE   (sizeof(struct compl_susp_choice_point)/sizeof(CPtr))
 

#define CONSUMER_CP_FRAME   2
 

#define cp_cpreg b   )     ((Choice)(b))->_cpreg
 

#define cp_ebreg b   )     ((Choice)(b))->_ebreg
 

#define cp_ereg b   )     ((Choice)(b))->_ereg
 

#define cp_hreg b   )     ((Choice)(b))->_hreg
 

#define cp_pcreg b   )     ((Choice)(b))->next_clause
 

#define cp_pdreg b   )     ((Choice)(b))->pdreg
 

#define cp_prevbreg b   )     ((Choice)(b))->prev
 

#define cp_ptcp b   )     ((Choice)(b))->ptcp
 

#define CP_SIZE   (sizeof(struct choice_point)/sizeof(CPtr))
 

#define cp_trreg b   )     ((Choice)(b))->_trreg
 

#define cs_compsuspptr b   )     ((ComplSuspChoice)(b))->compsuspptr
 

#define cs_ebreg b   )     ((ComplSuspChoice)(b))->_ebreg
 

#define cs_hreg b   )     ((ComplSuspChoice)(b))->_hreg
 

#define cs_pcreg b   )     ((ComplSuspChoice)(b))->next_clause
 

#define cs_prevbreg b   )     ((ComplSuspChoice)(b))->prev
 

#define csf_cpreg b   )     ((ComplSuspFrame)(b))->_cpreg
 

#define csf_ebreg b   )     ((ComplSuspFrame)(b))->_ebreg
 

#define csf_ereg b   )     ((ComplSuspFrame)(b))->_ereg
 

#define csf_hreg b   )     ((ComplSuspFrame)(b))->_hreg
 

#define csf_neg_loop b   )     ((ComplSuspFrame)(b))->neg_loop
 

#define csf_pcreg b   )     ((ComplSuspFrame)(b))->next_clause
 

#define csf_pdreg b   )     ((ComplSuspFrame)(b))->pdreg
 

#define csf_prevcsf b   )     ((ComplSuspFrame)(b))->prevcsf
 

#define csf_ptcp b   )     ((ComplSuspFrame)(b))->ptcp
 

#define CSF_SIZE   (sizeof(struct compl_susp_frame)/sizeof(CPtr))
 

#define csf_subgoal_ptr b   )     ((ComplSuspFrame)(b))->subgoal_ptr
 

#define csf_trreg b   )     ((ComplSuspFrame)(b))->_trreg
 

#define GENERATOR_CP_FRAME   1
 

#define is_compl_susp_frame b   ) 
 

Value:

#define is_consumer_choicepoint b   )     (cp_pcreg(b) == (byte *) &answer_return_inst)
 

#define is_generator_choicepoint b   ) 
 

Value:

#define nlcp_cpreg b   )     ((NLChoice)(b))->_cpreg
 

#define nlcp_ebreg b   )     ((NLChoice)(b))->_ebreg
 

#define nlcp_ereg b   )     ((NLChoice)(b))->_ereg
 

#define nlcp_hreg b   )     ((NLChoice)(b))->_hreg
 

#define nlcp_pcreg b   )     ((NLChoice)(b))->next_clause
 

#define nlcp_pdreg b   )     ((NLChoice)(b))->pdreg
 

#define nlcp_prevbreg b   )     ((NLChoice)(b))->prev
 

#define nlcp_prevlookup b   )     ((NLChoice)(b))->prevlookup
 

#define nlcp_ptcp b   )     ((NLChoice)(b))->ptcp
 

#define NLCP_SIZE   (sizeof(struct consumer_choice_point)/sizeof(CPtr))
 

#define nlcp_subgoal_ptr b   )     ((NLChoice)(b))->subgoal_ptr
 

#define nlcp_template b   )     ((NLChoice)(b))->answer_template
 

#define nlcp_trie_return b   )     ((NLChoice)(b))->trie_return
 

#define nlcp_trreg b   )     ((NLChoice)(b))->_trreg
 

#define perform_early_completion ProdSF,
ProdCPF   ) 
 

Value:

if (tcp_pcreg(ProdCPF) != (byte *) &answer_return_inst) \
      tcp_pcreg(ProdCPF) = (byte *) &check_complete_inst;   \
    mark_as_completed(ProdSF)

#define restore_registers t_breg,
arity,
regbase   ) 
 

Value:

{\
    int ii;\
    t_breg += CP_SIZE; \
    for (ii = arity; ii >= 1; ii--) bld_copy(regbase+ii, cell(t_breg++));\
  }

#define restore_some_wamregs t_breg,
t_ereg   ) 
 

Value:

if (hbreg >= hfreg) hreg = hbreg; else hreg = hfreg; \
    cpreg = cp_cpreg(t_breg); \
    t_ereg = cp_ereg(t_breg)

#define save_choicepoint t_breg,
t_ereg,
next_clause,
prev   ) 
 

Value:

t_breg -= CP_SIZE; \
    cp_ptcp(t_breg) = ptcpreg; \
    cp_pdreg(t_breg) = delayreg; \
    cp_prevbreg(t_breg) = prev; \
    cp_ereg(t_breg) = t_ereg; \
    cp_cpreg(t_breg) = cpreg; \
    cp_trreg(t_breg) = trreg; \
    cp_hreg(t_breg) = hreg; \
    cp_ebreg(t_breg) = ebreg; \
    SAVE_PSC(t_breg); \
    cp_pcreg(t_breg) = next_clause

#define save_compl_susp_cp t_breg,
prev,
compsuspptr   ) 
 

Value:

t_breg -= COMPL_SUSP_CP_SIZE; \
    cs_prevbreg(t_breg) = prev; \
    SAVE_CSCP_EXTRA(t_breg); \
    SAVE_CSCPPSC(t_breg); \
    cs_compsuspptr(t_breg) = compsuspptr;\
    cs_hreg(t_breg) = hreg; \
    cs_ebreg(t_breg) = ebreg; \
    cs_pcreg(t_breg) = (pb) &resume_compl_suspension_inst2

#define save_compl_susp_frame t_breg,
t_ereg,
subg,
t_ptcp,
CPREG   ) 
 

Value:

t_breg -= CSF_SIZE; \
    csf_neg_loop(t_breg) = FALSE; \
    csf_prevcsf(t_breg) = subg_compl_susp_ptr(subg); \
    csf_ptcp(t_breg) = t_ptcp; \
    SAVE_CSFPSC(t_breg); \
    csf_pdreg(t_breg) = delayreg; \
    csf_subgoal_ptr(t_breg) = subg; \
    csf_ereg(t_breg) = t_ereg; \
    csf_cpreg(t_breg) = CPREG; \
    csf_trreg(t_breg) = trreg; \
    csf_hreg(t_breg) = hreg; \
    csf_ebreg(t_breg) = ebreg; \
    csf_pcreg(t_breg) = (pb) &resume_compl_suspension_inst

#define SAVE_CSCP_EXTRA t_breg   ) 
 

#define SAVE_CSCPPSC b   ) 
 

#define SAVE_CSFPSC b   ) 
 

#define save_find_locx t_ereg   ) 
 

Value:

if (efreg_on_top(t_ereg)) ebreg = efreg;\
    else if (ereg_on_top(t_ereg)) ebreg = t_ereg - *(cpreg-2*sizeof(Cell)+3)+1;

#define SAVE_NLPSC b   ) 
 

#define SAVE_PSC b   ) 
 

#define save_registers t_breg,
arity,
regbase   ) 
 

Value:

{\
    byte ii;\
    for (ii = 1; ((int)ii) <= arity; ii++) \
        bld_copy(--t_breg, cell(regbase+ii));\
  }

#define SAVE_TPSC b   ) 
 

#define SaveConsumerCPF TopCPS,
ConsSF,
PrevConsumer,
AT   ) 
 

Value:

_SaveConsumerCPF_common(TopCPS,ConsSF,PrevConsumer); \
   nlcp_template(TopCPS) = AT

#define SaveProducerCPF TopCPS,
Cont,
pSF,
Arity,
AT   )     _SaveProducerCPF_slg(TopCPS, Cont, pSF, AT)
 

#define STANDARD_CP_FRAME   0
 

#define table_restore_registers t_breg,
arity,
regbase   ) 
 

Value:

{\
    int ii;\
    t_breg += TCP_SIZE; \
    for (ii = arity; ii >= 1; ii--) bld_copy(regbase+ii, cell(t_breg++));\
  }

#define tcp_bfreg b   )     ((TChoice)(b))->_bfreg
 

#define tcp_cpreg b   )     ((TChoice)(b))->_cpreg
 

#define tcp_ebreg b   )     ((TChoice)(b))->_ebreg
 

#define tcp_efreg b   )     ((TChoice)(b))->_efreg
 

#define tcp_ereg b   )     ((TChoice)(b))->_ereg
 

#define tcp_hfreg b   )     ((TChoice)(b))->_hfreg
 

#define tcp_hreg b   )     ((TChoice)(b))->_hreg
 

#define tcp_pcreg b   )     ((TChoice)(b))->next_clause
 

#define tcp_pdreg b   )     ((TChoice)(b))->pdreg
 

#define tcp_prevbreg b   )     ((TChoice)(b))->prev
 

#define tcp_ptcp b   )     ((TChoice)(b))->ptcp
 

#define TCP_SIZE   (sizeof(struct tabled_choice_point)/sizeof(CPtr))
 

#define tcp_subgoal_ptr b   )     ((TChoice)(b))->subgoal_ptr
 

#define tcp_template b   )     ((TChoice)(b))->answer_template
 

#define tcp_trfreg b   )     ((TChoice)(b))->_trfreg
 

#define tcp_trreg b   )     ((TChoice)(b))->_trreg
 


Typedef Documentation

typedef struct choice_point * Choice
 

typedef struct compl_susp_choice_point * ComplSuspChoice
 

typedef struct compl_susp_frame * ComplSuspFrame
 

typedef struct consumer_choice_point * NLChoice
 

typedef struct tabled_choice_point * TChoice
 


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