optime access to execute_cpred
This commit is contained in:
parent
84ad9adff0
commit
8f69c35e7f
18
C/cdmgr.c
18
C/cdmgr.c
@ -4975,7 +4975,7 @@ fetch_next_lu_clause(PredEntry *pe, yamop *i_code, Term th, Term tb, Term tr, ya
|
|||||||
}
|
}
|
||||||
/* don't need no ENV */
|
/* don't need no ENV */
|
||||||
if (first_time &&
|
if (first_time &&
|
||||||
P->opc != Yap_opcode(_execute_cpred)) {
|
P->opc != EXECUTE_CPRED_OP_CODE) {
|
||||||
CP = P;
|
CP = P;
|
||||||
ENV = YENV;
|
ENV = YENV;
|
||||||
YENV = ASP;
|
YENV = ASP;
|
||||||
@ -5046,7 +5046,7 @@ p_log_update_clause(void)
|
|||||||
Int ret;
|
Int ret;
|
||||||
yamop *new_cp;
|
yamop *new_cp;
|
||||||
|
|
||||||
if (P->opc == Yap_opcode(_execute_cpred)) {
|
if (P->opc == EXECUTE_CPRED_OP_CODE) {
|
||||||
new_cp = CP;
|
new_cp = CP;
|
||||||
} else {
|
} else {
|
||||||
new_cp = P;
|
new_cp = P;
|
||||||
@ -5116,7 +5116,7 @@ fetch_next_lu_clause_erase(PredEntry *pe, yamop *i_code, Term th, Term tb, Term
|
|||||||
}
|
}
|
||||||
/* don't need no ENV */
|
/* don't need no ENV */
|
||||||
if (first_time &&
|
if (first_time &&
|
||||||
P->opc != Yap_opcode(_execute_cpred)) {
|
P->opc != EXECUTE_CPRED_OP_CODE) {
|
||||||
CP = P;
|
CP = P;
|
||||||
ENV = YENV;
|
ENV = YENV;
|
||||||
YENV = ASP;
|
YENV = ASP;
|
||||||
@ -5191,7 +5191,7 @@ p_log_update_clause_erase(void)
|
|||||||
Int ret;
|
Int ret;
|
||||||
yamop *new_cp;
|
yamop *new_cp;
|
||||||
|
|
||||||
if (P->opc == Yap_opcode(_execute_cpred)) {
|
if (P->opc == EXECUTE_CPRED_OP_CODE) {
|
||||||
new_cp = CP;
|
new_cp = CP;
|
||||||
} else {
|
} else {
|
||||||
new_cp = P;
|
new_cp = P;
|
||||||
@ -5247,7 +5247,7 @@ fetch_next_lu_clause0(PredEntry *pe, yamop *i_code, Term th, Term tb, yamop *cp_
|
|||||||
}
|
}
|
||||||
/* don't need no ENV */
|
/* don't need no ENV */
|
||||||
if (first_time &&
|
if (first_time &&
|
||||||
P->opc != Yap_opcode(_execute_cpred)) {
|
P->opc != EXECUTE_CPRED_OP_CODE) {
|
||||||
CP = P;
|
CP = P;
|
||||||
ENV = YENV;
|
ENV = YENV;
|
||||||
YENV = ASP;
|
YENV = ASP;
|
||||||
@ -5301,7 +5301,7 @@ p_log_update_clause0(void)
|
|||||||
Int ret;
|
Int ret;
|
||||||
yamop *new_cp;
|
yamop *new_cp;
|
||||||
|
|
||||||
if (P->opc == Yap_opcode(_execute_cpred)) {
|
if (P->opc == EXECUTE_CPRED_OP_CODE) {
|
||||||
new_cp = CP;
|
new_cp = CP;
|
||||||
} else {
|
} else {
|
||||||
new_cp = P;
|
new_cp = P;
|
||||||
@ -5529,7 +5529,7 @@ fetch_next_static_clause(PredEntry *pe, yamop *i_code, Term th, Term tb, Term tr
|
|||||||
XREGS[i+1] = pt[i];
|
XREGS[i+1] = pt[i];
|
||||||
}
|
}
|
||||||
/* don't need no ENV */
|
/* don't need no ENV */
|
||||||
if (first_time && P->opc != Yap_opcode(_execute_cpred)) {
|
if (first_time && P->opc != EXECUTE_CPRED_OP_CODE) {
|
||||||
CP = P;
|
CP = P;
|
||||||
ENV = YENV;
|
ENV = YENV;
|
||||||
YENV = ASP;
|
YENV = ASP;
|
||||||
@ -5555,7 +5555,7 @@ fetch_next_static_clause(PredEntry *pe, yamop *i_code, Term th, Term tb, Term tr
|
|||||||
}
|
}
|
||||||
/* don't need no ENV */
|
/* don't need no ENV */
|
||||||
if (first_time &&
|
if (first_time &&
|
||||||
P->opc != Yap_opcode(_execute_cpred)) {
|
P->opc != EXECUTE_CPRED_OP_CODE) {
|
||||||
CP = P;
|
CP = P;
|
||||||
ENV = YENV;
|
ENV = YENV;
|
||||||
YENV = ASP;
|
YENV = ASP;
|
||||||
@ -5632,7 +5632,7 @@ p_static_clause(void)
|
|||||||
Term t1 = Deref(ARG1);
|
Term t1 = Deref(ARG1);
|
||||||
yamop * new_cp;
|
yamop * new_cp;
|
||||||
|
|
||||||
if (P->opc == Yap_opcode(_execute_cpred)) {
|
if (P->opc == EXECUTE_CPRED_OP_CODE) {
|
||||||
new_cp = CP;
|
new_cp = CP;
|
||||||
} else {
|
} else {
|
||||||
new_cp = P;
|
new_cp = P;
|
||||||
|
2
C/exec.c
2
C/exec.c
@ -69,7 +69,7 @@ CallPredicate(PredEntry *pen, choiceptr cut_pt, yamop *code) {
|
|||||||
} else if (pen->ModuleOfPred)
|
} else if (pen->ModuleOfPred)
|
||||||
DEPTH -= MkIntConstant(2);
|
DEPTH -= MkIntConstant(2);
|
||||||
#endif /* DEPTH_LIMIT */
|
#endif /* DEPTH_LIMIT */
|
||||||
if (P->opc != Yap_opcode(_execute_cpred)) {
|
if (P->opc != EXECUTE_CPRED_OP_CODE) {
|
||||||
CP = P;
|
CP = P;
|
||||||
ENV = YENV;
|
ENV = YENV;
|
||||||
YENV = ASP;
|
YENV = ASP;
|
||||||
|
1
C/init.c
1
C/init.c
@ -927,6 +927,7 @@ InitCodes(void)
|
|||||||
INIT_YAMOP_LTT(&(Yap_heap_regs->table_answer_resolution_code), 0);
|
INIT_YAMOP_LTT(&(Yap_heap_regs->table_answer_resolution_code), 0);
|
||||||
#endif /* YAPOR */
|
#endif /* YAPOR */
|
||||||
#endif /* TABLING */
|
#endif /* TABLING */
|
||||||
|
Yap_heap_regs->execute_cpred_op_code = Yap_opcode(_execute_cpred);
|
||||||
Yap_heap_regs->expand_op_code = Yap_opcode(_expand_index);
|
Yap_heap_regs->expand_op_code = Yap_opcode(_expand_index);
|
||||||
INIT_LOCK(Yap_heap_regs->expand_clauses_list_lock);
|
INIT_LOCK(Yap_heap_regs->expand_clauses_list_lock);
|
||||||
#ifdef LOW_LEVEL_TRACER
|
#ifdef LOW_LEVEL_TRACER
|
||||||
|
3
H/Heap.h
3
H/Heap.h
@ -251,7 +251,7 @@ typedef struct various_codes {
|
|||||||
yamop table_answer_resolution_code;
|
yamop table_answer_resolution_code;
|
||||||
yamop table_completion_code;
|
yamop table_completion_code;
|
||||||
#endif /* TABLING */
|
#endif /* TABLING */
|
||||||
OPCODE expand_op_code;
|
OPCODE execute_cpred_op_code, expand_op_code;
|
||||||
yamop *expand_clauses_first, *expand_clauses_last;
|
yamop *expand_clauses_first, *expand_clauses_last;
|
||||||
UInt expand_clauses;
|
UInt expand_clauses;
|
||||||
#if defined(YAPOR) || defined(THREADS)
|
#if defined(YAPOR) || defined(THREADS)
|
||||||
@ -629,6 +629,7 @@ extern struct various_codes *Yap_heap_regs;
|
|||||||
#define ANSWER_RESOLUTION ((yamop *)&(Yap_heap_regs->table_answer_resolution_code))
|
#define ANSWER_RESOLUTION ((yamop *)&(Yap_heap_regs->table_answer_resolution_code))
|
||||||
#define COMPLETION ((yamop *)&(Yap_heap_regs->table_completion_code))
|
#define COMPLETION ((yamop *)&(Yap_heap_regs->table_completion_code))
|
||||||
#endif /* TABLING */
|
#endif /* TABLING */
|
||||||
|
#define EXECUTE_CPRED_OP_CODE Yap_heap_regs->execute_cpred_op_code
|
||||||
#define EXPAND_OP_CODE Yap_heap_regs->expand_op_code
|
#define EXPAND_OP_CODE Yap_heap_regs->expand_op_code
|
||||||
#define ExpandClausesFirst Yap_heap_regs->expand_clauses_first
|
#define ExpandClausesFirst Yap_heap_regs->expand_clauses_first
|
||||||
#define ExpandClausesLast Yap_heap_regs->expand_clauses_last
|
#define ExpandClausesLast Yap_heap_regs->expand_clauses_last
|
||||||
|
@ -623,6 +623,7 @@ restore_codes(void)
|
|||||||
INIT_YAMOP_LTT(&(Yap_heap_regs->table_answer_resolution_code), 0);
|
INIT_YAMOP_LTT(&(Yap_heap_regs->table_answer_resolution_code), 0);
|
||||||
#endif /* YAPOR */
|
#endif /* YAPOR */
|
||||||
#endif /* TABLING */
|
#endif /* TABLING */
|
||||||
|
Yap_heap_regs->execute_cpred_op_code = Yap_opcode(_execute_cpred);
|
||||||
Yap_heap_regs->expand_op_code = Yap_opcode(_expand_index);
|
Yap_heap_regs->expand_op_code = Yap_opcode(_expand_index);
|
||||||
if (Yap_heap_regs->expand_clauses_first)
|
if (Yap_heap_regs->expand_clauses_first)
|
||||||
Yap_heap_regs->expand_clauses_first = PtoOpAdjust(Yap_heap_regs->expand_clauses_first);
|
Yap_heap_regs->expand_clauses_first = PtoOpAdjust(Yap_heap_regs->expand_clauses_first);
|
||||||
|
Reference in New Issue
Block a user