optimize misc/buildheap script
This commit is contained in:
100
misc/buildheap
100
misc/buildheap
@@ -126,6 +126,10 @@ fetch_name(Global) :-
|
||||
fetch_name(Global) :-
|
||||
Global = "Yap_heap_regs->".
|
||||
|
||||
fetch_name(Global,RField,_) :-
|
||||
globals(worker_init), !,
|
||||
append("FOREIGN(wid)->",RField,Global).
|
||||
fetch_name(Global,_,Global).
|
||||
|
||||
% handle *field[4]
|
||||
cut_c_stuff([0'*|Name], RName) :- !, % 'cut *
|
||||
@@ -174,31 +178,31 @@ gen_hstruct(Inp,Out) :-
|
||||
glue(Inp2, " ", Inp3),
|
||||
gen_hstruct(Inp3,Out).
|
||||
gen_hstruct(Inp,Out) :-
|
||||
split(Inp," ",[_, Field, _, "MkAT", _]), !,
|
||||
fetch_name(Global),
|
||||
append([" ",Global,Field," = AtomTermAdjust(Yap_heap_regs->",Field,");"], Out).
|
||||
split(Inp," ",[_, Field, MacroName, "MkAT", _]), !,
|
||||
fetch_name(Global,Field,MacroName),
|
||||
append([" ",Global," = AtomTermAdjust(",Global,");"], Out).
|
||||
gen_hstruct(Inp,Out) :-
|
||||
split(Inp," ",[_, Field, _, "MkPred"| _]), !,
|
||||
split(Inp," ",[_, Field, MacroName, "MkPred"| _]), !,
|
||||
cut_c_stuff(Field, RField),
|
||||
fetch_name(Global),
|
||||
append([" ",Global,RField," = PtoPredAdjust(Yap_heap_regs->",RField,");"], Out).
|
||||
fetch_name(Global,RField,MacroName),
|
||||
append([" ",Global," = PtoPredAdjust(",Global,");"], Out).
|
||||
gen_hstruct(Inp,Out) :-
|
||||
split(Inp," ",[_, Field, _, "MkOp", Name]), !,
|
||||
fetch_name(Global),
|
||||
append([" ",Global,Field," = Yap_opcode(",Name,");"], Out).
|
||||
split(Inp," ",[_, Field, MacroName, "MkOp", Name]), !,
|
||||
fetch_name(Global,Field,MacroName),
|
||||
append([" ",Global," = Yap_opcode(",Name,");"], Out).
|
||||
gen_hstruct(Inp,Out) :-
|
||||
split(Inp," ",[_, Field, _, "MkLock"]), !,
|
||||
fetch_name(Global),
|
||||
append([" REINIT_LOCK(",Global,Field,");"], Out).
|
||||
split(Inp," ",[_, Field, MacroName, "MkLock"]), !,
|
||||
fetch_name(Global,Field,MacroName),
|
||||
append([" REINIT_LOCK(",Global,");"], Out).
|
||||
gen_hstruct(Inp,Out) :-
|
||||
split(Inp," ",[_, Field, _, "MkRWLock"]), !,
|
||||
fetch_name(Global),
|
||||
append([" REINIT_RWLOCK(",Global,Field,");"], Out).
|
||||
split(Inp," ",[_, Field, MacroName, "MkRWLock"]), !,
|
||||
fetch_name(Global,Field,MacroName),
|
||||
append([" REINIT_RWLOCK(",Global,");"], Out).
|
||||
gen_hstruct(Inp,Out) :-
|
||||
split(Inp," ",[_, Field, _, "MkInstE",OP]), !,
|
||||
split(Inp," ",[_, Field, MacroName, "MkInstE",OP]), !,
|
||||
cut_c_stuff(Field, RField),
|
||||
fetch_name(Global),
|
||||
append([" ",Global,RField,"->opc = Yap_opcode(",OP,");"], Out).
|
||||
fetch_name(Global,RField,MacroName),
|
||||
append([" ",Global,"->opc = Yap_opcode(",OP,");"], Out).
|
||||
gen_hstruct(Inp,"") :-
|
||||
split(Inp," ",[_, _, _, _]), !.
|
||||
gen_hstruct(Inp,"") :-
|
||||
@@ -208,11 +212,11 @@ gen_hstruct(Inp,Restore) :-
|
||||
append("Restore",_,Restore0), !,
|
||||
append([" ",Restore0,";"],Restore). %'
|
||||
gen_hstruct(Inp,Out) :-
|
||||
split(Inp," ",[_, Field, _, _, Adjust]),
|
||||
split(Inp," ",[_, Field, MacroName, _, Adjust]),
|
||||
append(Adjust,"Adjust",_), !,
|
||||
cut_c_stuff(Field, RField),
|
||||
fetch_name(Global),
|
||||
append([" ",Global,RField," = ",Adjust,"(",Global,RField,");"], Out).
|
||||
fetch_name(Global,RField,MacroName),
|
||||
append([" ",Global," = ",Adjust,"(",Global,");"], Out).
|
||||
gen_hstruct(Inp,_) :-
|
||||
split(Inp," ",[_, _, _| _]),
|
||||
format(user_error,"OOPS: could not gen_hstruct for ~s~n",[Inp]).
|
||||
@@ -261,48 +265,48 @@ gen_init(Inp,Init) :-
|
||||
append("Yap_Init",_,Init0), !,
|
||||
append([" ",Init0,";"],Init).
|
||||
gen_init(Inp,Out) :-
|
||||
split(Inp," ",[_, Field, _, "MkAT", AtomName]), !,
|
||||
split(Inp," ",[_, Field, MacroName, "MkAT", AtomName]), !,
|
||||
cut_c_stuff(Field, RField),
|
||||
fetch_name(Global),
|
||||
append([" ",Global,RField," = MkAtomTerm(",AtomName,");"], Out).
|
||||
fetch_name(Global,RField,MacroName),
|
||||
append([" ",Global," = MkAtomTerm(",AtomName,");"], Out).
|
||||
gen_init(Inp,Out) :-
|
||||
split(Inp," ",[_, Field, _, "MkOp", Name]), !,
|
||||
fetch_name(Global),
|
||||
append([" ",Global,Field," = Yap_opcode(",Name,");"], Out).
|
||||
split(Inp," ",[_, Field, MacroName, "MkOp", Name]), !,
|
||||
fetch_name(Global,Field,MacroName),
|
||||
append([" ",Global," = Yap_opcode(",Name,");"], Out).
|
||||
gen_init(Inp,Out) :-
|
||||
split(Inp," ",[_, Field, _, "MkLock"]), !,
|
||||
fetch_name(Global),
|
||||
append([" INIT_LOCK(",Global,Field,");"], Out).
|
||||
split(Inp," ",[_, Field, MacroName, "MkLock"]), !,
|
||||
fetch_name(Global,Field,MacroName),
|
||||
append([" INIT_LOCK(",Global,");"], Out).
|
||||
gen_init(Inp,Out) :-
|
||||
split(Inp," ",[_, Field, _, "MkRWLock"]), !,
|
||||
fetch_name(Global),
|
||||
append([" INIT_RWLOCK(",Global,Field,");"], Out).
|
||||
split(Inp," ",[_, Field, MacroName, "MkRWLock"]), !,
|
||||
fetch_name(Global,Field,MacroName),
|
||||
append([" INIT_RWLOCK(",Global,");"], Out).
|
||||
gen_init(Inp,Out) :-
|
||||
split(Inp," ",[_, Field, _, "MkInstE",OP]), !,
|
||||
split(Inp," ",[_, Field, MacroName, "MkInstE",OP]), !,
|
||||
cut_c_stuff(Field, RField),
|
||||
fetch_name(Global),
|
||||
append([" ",Global,RField,"->opc = Yap_opcode(",OP,");"], Out).
|
||||
fetch_name(Global,RField,MacroName),
|
||||
append([" ",Global,"->opc = Yap_opcode(",OP,");"], Out).
|
||||
gen_init(Inp,Out) :-
|
||||
split(Inp," ",[_, Field, _, "MkPred", Atom, "0", Module]), !,
|
||||
split(Inp," ",[_, Field, MacroName, "MkPred", Atom, "0", Module]), !,
|
||||
cut_c_stuff(Field, RField),
|
||||
fetch_name(Global),
|
||||
append([" ",Global,RField," = RepPredProp(PredPropByAtom(",Atom,",",Module,"));"], Out).
|
||||
fetch_name(Global,RField,MacroName),
|
||||
append([" ",Global," = RepPredProp(PredPropByAtom(",Atom,",",Module,"));"], Out).
|
||||
gen_init(Inp,Out) :-
|
||||
split(Inp," ",[_, Field, _, "MkPred", Atom, Arity, Module]), !,
|
||||
split(Inp," ",[_, Field, MacroName, "MkPred", Atom, Arity, Module]), !,
|
||||
cut_c_stuff(Field, RField),
|
||||
fetch_name(Global),
|
||||
append([" ",Global,RField," = RepPredProp(PredPropByFunc(Yap_MkFunctor(",Atom,",",Arity,"),",Module,"));"], Out).
|
||||
fetch_name(Global,RField,MacroName),
|
||||
append([" ",Global," = RepPredProp(PredPropByFunc(Yap_MkFunctor(",Atom,",",Arity,"),",Module,"));"], Out).
|
||||
gen_init(Inp,Out) :-
|
||||
split(Inp," ",[_, Field, _, "MkPred", Fun, Module]), !,
|
||||
split(Inp," ",[_, Field, MacroName, "MkPred", Fun, Module]), !,
|
||||
cut_c_stuff(Field, RField),
|
||||
fetch_name(Global),
|
||||
append([" ",Global,RField," = RepPredProp(PredPropByFunc(",Fun,",",Module,"));"], Out).
|
||||
fetch_name(Global,RField,MacroName),
|
||||
append([" ",Global," = RepPredProp(PredPropByFunc(",Fun,",",Module,"));"], Out).
|
||||
gen_init(Inp,Out) :-
|
||||
split(Inp," ",[_, Field, _, F0|_]),
|
||||
split(Inp," ",[_, Field, MacroName, F0|_]),
|
||||
append("=",F,F0), !,
|
||||
cut_c_stuff(Field, RField),
|
||||
fetch_name(Global),
|
||||
append([" ",Global,RField," = ",F,";"], Out).
|
||||
fetch_name(Global,RField,MacroName),
|
||||
append([" ",Global," = ",F,";"], Out).
|
||||
gen_init(Inp,_) :-
|
||||
split(Inp," ",[_, _, _| _]),
|
||||
format(user_error,"OOPS: could not gen_init for ~s~n",[Inp]).
|
||||
|
Reference in New Issue
Block a user