Go to the first, previous, next, last section, table of contents.


Analyses

extern void ComputeStackInfo(FILE *fp)

Analyze stack size and usage. This anlysis determines the stack behaviour of all the functions. Upon completion

AFUN_MIN(fun) contains the maximum stackframe size used my the function (this is a negative number). AFUN_MAX(fun) if the stackframe size varies this is the smallest stack framesize encountered. (this is a negative number).

For each basic block in fun

ABBL_STACK_CHANGE_IN(bbl) contains the stackpointer relative to what it was at function entry. Stackmerging invalidates this field.

A variety of flags are set or cleared for functions:

AFUN_HAS_STK_ARG(fun) the function accesses the stack outside of its frame AFUN_HAS_STK_ALIAS(ifun) the function copies the value of the stackpointer plus an offset to another register (using lda) AFUN_HAS_STK_BAD_ALIAS(ifun) the function uses the value of the stack pointer with an instruction different from lda. AFUN_HAS_STK_INVALID the function does bad things with the stack


Go to the first, previous, next, last section, table of contents.