General Information
Tutorials
Reference Manuals
Libraries
Translation Tasks
Tools
Administration
|
'Partitioned' Attribute Dependence CyclesTypical Error Situations Partitioned cycles are caused by additional constraints that the OAG scheduling algorithm has to introduce during partition computation.
RULE : root ::= nt nt COMPUTE nt[1].a = 'a'; nt[1].c = nt[2].d; nt[2].a = nt[1].b; nt[2].c = 'c'; END; RULE : nt ::= 'a' COMPUTE nt.b = nt.a; nt.d = nt.c; END; results in
ERROR: did not find evaluation order; see OrdInfo, add dependencies, or use gorto ERROR: evaluation order for nt.a not found ERROR: evaluation order for nt.c not found ERROR: evaluation order for nt.b not found ERROR: evaluation order for nt.d not found
Partitioning problems often occur in conjunction with independent Lido chains which run through the same subtree. The solution is to artificially enforce a scheduling order by adding attribute dependences. Write a .ctl file containing the line
ORDER: ARRANGE FOR SYMB nt EVAL a BEFORE c; and add this specification to your .specs list. Or add a source level dependence
RULE : nt ::= 'a' COMPUTE nt.b = nt.a; nt.d = nt.c <- nt.a; END; |