The o
switch requests an annotated listing of the
original program, for example:
KAP/Digital_VMS_F V3.1 k271625 970317 ATIMESB Source 05-Apr-1997 09:31:22 Page 1 Footnotes Actions DO Loops Line 1 2 C Simple Matrix Multiply example. 3 4 PROGRAM ATIMESB 5 6 PARAMETER M=500, N=400, P=500 7 8 DIMENSION A(1:M,1:N),B(1:N,1:P),C(1:M,1:P) 9 10 11 C Initialize the matrices 12 1 +---------13 DO 10 J=1,N 2 SO !+--------14 DO 10 I=1,M SO !* 15 A(I,J) = 1.5 !*________16 10 CONTINUE 17 1 +---------18 DO 20 J=1,P 2 SO !+--------19 DO 20 I=1,N SO !* 20 B(I,J) = 3.0 !*________21 20 CONTINUE 22 23 C Compute C = A * B 24 SO 25 CALL MATMUL(A, M, B, N, C, P) 26 END Abbreviations Used SO scalar optimization Footnote List 1: not vectorized Not an inner loop. 2: scalar optimization Loop unrolled 4 times to improve scalar performance. KAP/Digital_VMS_F V3.1 k271625 970317 ATIMESB Source 05-Apr-1997 09:31:22 Page 2 Footnotes Actions DO Line Loops 27 28 29 SUBROUTINE MATMUL(A, LDA, B, LDB, C, LL) 30 REAL A(LDA,LDB), B(LDB,LL), C(LDA,LL) 31 INTEGER LDA,LDB,LL 32 1 2 3 4 5 6 NO SO +----33 DO 20 J=1,LL 1 3 4 5 6 NO LR SO !+---34 DO 20 I=1,LDA SO !* 35 C(I,J) =0.0 1 5 6 7 NO LR SO INF !*+--36 DO 20 K=1,LDB 8 DD SO !*! 37 C(I,J) = C(I,J) + ( A(I,K) * B(K,J) ) !*!__38 20 CONTINUE 39 40 RETURN 41 42 END Abbreviations Used NO not optimized LR loop reordering DD data dependence SO scalar optimization INF informational Footnote List 1: not optimized Loop was asserted serial by directive. 2: not vectorized Not an inner loop. 3: scalar optimization Cleanup-loop for loop unrolling added. 4: scalar optimization Loop unrolled 3 times to improve scalar performance. 5: scalar optimization Strip loop for strip mining with block size 24. 6: scalar optimization Block loop for strip mining with block size 24. 7: informational Unrolling of this loop was not done because heuristic says size is ok asis. 8: data dependence Data dependence involving this line due to variable C.