
9.4 Support for Tools 237
OPERATION oper3
$$:COMP
$$
……
OPERATION oper2
$$:C
$$
……
oper3
o3
oper2
o3
bank1
R0 R1 R3R2 R4 R5 R7R6
o1 o2 o3 o4
bank2
…
overlap constraints
tuple constraints
…
OPERATION oper1
$$:COMP:
var o1:string;
..
FORMAT (src={o1, o2}, dest={o3, o4});
o1 <: bank1;
o2 <: bank2;
..
(o3, o4) <:pair_constraint;
$$
……
oper1
(b)
Register bank specification
(c)
Operation constraint specification
(a)
Register allocation
constraints
MANAGER
$$:COMP:
DEFINE bank1 {“R0”,“R1”,“R2”,“R3”};
REG_BANK (symbols=bank1);
DEFINE bank2 {“R3”, “R4”};
REG_BANK (symbols=bank2);
REG_OVERLAPS (data={(“R4”,”R2
”)});
DEFINE pair_constraint{(“R5”,”R6”)};
$$
……
FIGURE 9.11
Register constraint specification ...