The data dependence information reported in the listing can be controlled with the ddsummary switch. When ddsummary is set to 1, the data dependence test pass will print a line for each loop in the program, giving its loop label, the source code line where it starts in the input file, the loop index, and whether the loop is parallel or serial. If the loop is serial, some indication of the source of the dependence is given. For example,
Loop nest summary: INTRAF0_do1000(1030,i): loop is serial, because: INTRAF0_do1000(1030,i): the following variables (may) have loop-carried dependences: INTRAF0_do1000(1030,i): FR(), VM() INTRAF0_do1100(1036,j): loop is parallel INTRAF0_do1200(1065,j): loop is parallel INTRAF0_do1300(1096,j): loop is parallel INTRAF0_do2000(1111,i): loop is parallel
This parallelism information will not necessarily coincide with the actual scheduling of the loops in the source code output. The most obvious reason being that ordinarily parallel machines can run only one loop in a nest in parallel. So, if the ddtest pass finds all loops in the nest parallel, it will report that in the ddsummary (as above), then the postpass will choose only one of those loops to parallelize in the output source code.
If you set ddsummary to the value 2, a table of ``Dependence graph statistics'' will be printed in addition to the information provided when ddsummary is 1. A table of the time taken by each dependence test is also printed when ddsummary is 2.
Dependence graph statistics:
Dependence test Ser. Loops Ser. Vars Dep. Pairs LC Deps.
--------------------------------------------------------------------------
13 168 14239 28406
Var Spaces 13 168 14239 28406
Input Dep. 13 67 2269 4435
Between loop nests 13 67 2269 4435
Read-only call args 13 67 2269 4435
Gcd Test 13 67 1857 3638
Simple Subscript 6 59 1857 3609
Range Test 5 51 1685 3088
Self-equal deps. 5 51 1676 3088
Output, back, self-deps. 5 51 1676 3088
Private 5 11 1578 274
Reduction 0 0 1445 0
DDgraphArcs builder 0 0 1445 0
Composite 0 0 1445 0
Dependence tests timings:
Dependence test Time taken
-----------------------------------------------
0.020u 0.080s 0.087w
Var Spaces 0.180u 0.080s 0.240w
Input Dep. 0.020u 0.080s 0.079w
Between loop nests 0.040u 0.050s 0.105w
Read-only call args 0.100u 0.050s 0.157w
Gcd Test 2.280u 0.120s 2.533w
Simple Subscript 1.250u 0.070s 1.550w
Range Test 39.230u 1.200s 46.776w
Self-equal deps. 0.950u 0.080s 1.013w
Output, back, self-deps. 0.970u 0.090s 1.084w
Private 6.640u 0.280s 8.005w
Reduction 1.160u 0.040s 1.568w
DDgraphArcs builder 0.290u 0.110s 0.488w
Composite 64.420u 4.250s 79.403w
The first table gives a count (for the whole subroutine) of the number of:
which remain after the given dependence test was carried out. The first line gives a count of the potential number of each before any dependence testing is carried out. The following describes each of the dependence tests carried out: