23     if (!req(cp[r.
val], rcp)) {
    40     for (a=0; a<p->
narg; a++) {
    41         r1 = copyof(p->
arg[a], cp);
    42         if (req(r1, 
R) || req(r1, p->
to))
    44         if (req(r, 
R) || req(r, r1))
    51     update(p->
to, r, cp, pw);
    57     static bits extcpy[] = {
    61         [Wsh] = 
BIT(Wsh) | 
BIT(Wsw),
    62         [Wuh] = 
BIT(Wuh) | 
BIT(Wuw),
    90     r = copyof(i->
arg[0], cp);
    91     if (iscopy(i, r, fn)) {
    92         update(i->
to, r, cp, pw);
    93     } 
else if (!req(i->
to, 
R)) {
    94         assert(rtype(i->
to) == 
RTmp);
    95         update(i->
to, i->
to, cp, pw);
   102     assert((rtype(*r) != 
RTmp || !req(copyof(*r, cp), 
R)) && 
"ssa invariant broken");
   123             visitphi(p, cp, &pw);
   125             visitins(i, cp, &pw, fn);
   134                 visitphi(u->
u.
phi, cp, &pw);
   137                 visitins(u->
u.
ins, cp, &pw, fn);
   142                 die(
"invalid use %d", u->
type);
   148         for (pp=&b->
phi; (p=*pp);) {
   150             if (!req(r, p->
to)) {
   154             for (a=0; a<p->
narg; a++)
   155                 subst(&p->
arg[a], cp);
   159             r = copyof(i->
to, cp);
   160             if (!req(r, i->
to)) {
   165                 subst(&i->
arg[a], cp);
   170         fprintf(stderr, 
"\n> Copy information:");
   173                 fprintf(stderr, 
"\n%10s not seen!",
   176             else if (!req(cp[t], 
TMP(t))) {
   177                 fprintf(stderr, 
"\n%10s copy of ",
   182         fprintf(stderr, 
"\n\n> After copy elimination:\n");
 
Blk * start
Указатель на блок функции, являющийся её входной точкой 
Структура, хранящая информацию об инструкциях. 
Структура, хранящая описание переменных (более подробное описание переменной ищите в Tmp)...
Содержит информацию о переменной 
Tmp * tmp
Массив используемых функцией переменных 
Use * use
Содержит информацию об использовании переменной 
int ntmp
Размер массива tmp. 
Непосредственно информация о базовом блоке. 
void printfn(Fn *, FILE *)
char name[NString]
Имя переменной 
Номер (в массиве Fn->tmp) первой не регистровой переменной 
void printref(Ref, Fn *, FILE *)
Структура, хранящая в себе информацию о функции 
uint nuse
Количество блоков, в которых переменная используется 
Структура, хранящая информацию об одном "использовании" переменной.