This paper deals with an analysis of C compiler's and KAP /C source-tosource preprocessor's performances of DEC OSF /1 AXP, Alpha 21064. The source code coming from KAP /C preprocessor and the executable code resulting from C compilation are studied in order to point out which machineindependent and machine-dependent optimization techniques are used in both phases. With regard to machine-independent techniques and source code transformations, we observed that in both the phases of compilation the resulting code is fairly improved, even if KAP /C doesn't always take advantage of the possibility to use some classic optimization techniques, such as loop-invariant-code motion and commmon-subexpression elimination. A good improvement of the binary code is given by C compiler expecially as regards register allòcation and instruction scheduling optimizations, techniques allowing to better execution time and to reduce overhead. It is pointed out that the compiler doesn't adequately maximize the possibility of dual issued instructions. Different optimization techniques have been evaluated in order to show their contribution in terms of execution time impovements. The bench marks used are both ad hoc programs for the use of classic optimization techniques, and application oriented programs belonging to different complexity classes.
Valutazione delle prestazioni del compilatore e dell'ottimizzatore C nell'ambiente Alpha 21064 Digital OSP/1
G Cioni;M Lancia;
1994
Abstract
This paper deals with an analysis of C compiler's and KAP /C source-tosource preprocessor's performances of DEC OSF /1 AXP, Alpha 21064. The source code coming from KAP /C preprocessor and the executable code resulting from C compilation are studied in order to point out which machineindependent and machine-dependent optimization techniques are used in both phases. With regard to machine-independent techniques and source code transformations, we observed that in both the phases of compilation the resulting code is fairly improved, even if KAP /C doesn't always take advantage of the possibility to use some classic optimization techniques, such as loop-invariant-code motion and commmon-subexpression elimination. A good improvement of the binary code is given by C compiler expecially as regards register allòcation and instruction scheduling optimizations, techniques allowing to better execution time and to reduce overhead. It is pointed out that the compiler doesn't adequately maximize the possibility of dual issued instructions. Different optimization techniques have been evaluated in order to show their contribution in terms of execution time impovements. The bench marks used are both ad hoc programs for the use of classic optimization techniques, and application oriented programs belonging to different complexity classes.I documenti in IRIS sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.