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: