|
|
|
| Table 2.6 Static program sizes relative to HLL measures [136]: (a) simple compiler; (b) optimized compiler. | | Architecture | | | | "HLL" machine | | | | P-code | Pascal | | | S/370 | Fortran Hopt1 | | | VAX UNIX | Fortran | | | | Architecture | | | | PA RISC | | | | S/370 | | | | VAX/VMS | | | |
|
|
|
|
|
|
test program suite and essentially the same level of compilation strategies across all tested architectures. |
|
|
|
|
|
|
|
|
Static size has some importance (Table 2.6), but it is less significant than dynamic sizethe instruction bandwidth required for memory. The relative dynamic instruction count is seen in Table 2.7, and the instruction bandwidth required is presented in Table 2.8. |
|
|
|
|
|
|
|
|
As can be seen from Huck's results, compilers play a big role in machine performance. A reduction of instruction traffic (I-bandwidth) or instruction count of 2:1 can be observed, while the differences in architectures themselves seem to have slightly less effect on the ultimate results. |
|
|
|
|
|
|
|
|
For data traffic, the HLL measures assume a machine or instruction set that has only a few registers (see Table 2.9). Temporary variables that are used in expression evaluation are assumed to be held in registersa stackand references to these variables are not counted in the measures. Variables or objects that are stored as the result of an expression evaluation are included in data memory activity. Consider the example: |
|
|
|
|
|
|
|
|
Statement (2.1) requires three reads and one write in the "HLL" machine; the C + D result is contained in an (implied) register. Statement (2.2) requires two reads and one write; B and C were not assumed to be allocated to registers. |
|
|
|
|
|
|
|
|
Implied by the HLL is a stack-type machine that does not hold values from statement to statement, but rather can evaluate temporary variables or variables that are used to hold the results of a partial expression evaluation without referring back to memory. Thus, the HLL measures do not represent a bound for register set machines, and these measures consistently overestimate the amount of memory read and write activity required for |
|
|
|
|
|