![]() |
|||
|
|
ddtest 1 locate Data Dependencies (0=dont,1=do)These values are the default as specified in the file switches in your work directory (do not remove this file since it is a symbolic link to the default switchfile -- copy it to another file and specify that filename with the -f option when running mypolaris.)
dds_flow 1 locate Scalar flow-dependencies (0=dont,1=do)
dds_output 1 locate Scalar output-dependencies (0=dont,1=do)
dds_anti 1 locate Scalar anti-dependencies (0=dont,1=do)
dda_flow 1 locate Array flow-dependencies (0=dont,1=do)
dda_output 1 locate Array output-dependencies (0=dont,1=do)
dda_anti 1 locate Array anti-dependencies (0=dont,1=do)
p_ddtest 2 print after DD test pass (0=dont,1=FORTRAN,2=detailed)
The driver program will only call the routines in these passes if ddtest is 1. The print switches will only be examined if the relevant passes are turned on. It is your responsibility to examine dds_flow, dds_output, dds_anti, dda_flow, dda_output and dda_anti, to determine what types of dependency checking you will perform.
void ddtest(ProgramUnit & pgm);This is a simple pass which takes one program unit as input, analyzes any relevant statements inside, and outputs a summary of all dependence relations found. This function can only be called if ssa() was already called.
The file cvdl/ddtest/Makefile includes the lines :
CPPSRCS = ddtest.cc # add your other .cc files here
CPPHDRS = ddtest.h # add your other .h files here
LOOP looplabel contains the following dependencies :
Flow :
statement_label1 to statement_label2 (distance_vector1)
Output :
statement_label3 to statement_label4 (distance_vector2)
Anti :
statement_label5 to statement_label6 (distance_vector3)
The array DD test algorithm for this pass are described in section 7.2 of Wolfe. You need to use GCD (greatest common divisor test) to find out if there are dependences for all array variables in the loop. The output should be of the format :
LOOP looplabel contains the following dependencies :
Flow :
statement_label1 to statement_label2 (array variables)
Output :
statement_label3 to statement_label4 (array variables)
Anti :
statement_label5 to statement_label6 (array variables)
Note, for each loop. If a loop does not contain a dependence, indicate this as well.
If you have not compiled out mini_polaris yet, change to your work directory and run make
If you make some changes and want to recompile, just type make at the ddtest directory. Or, if you want to do it from the top-level makefile, you should do (suppose you are at the ddtest directory)
rm libddtest_pkg.so.1
cd ~/minipolaris
make
cd ~/minipolaris/cvdl/ddtest
rm *.o libddtest_pkg.so.1Then
cd ..
tar cf - ddtest | gzip > project5_UIN.tar.gz
gzcat project5_UIN.tar.gz | tar tvf - # this will list the files for verification
Parasol Home | Research | People | General info | Seminars | Resources Parasol Lab, 301 Harvey R. Bright Bldg, 3112 TAMU, College Station, TX 77843-3112 Contact Webmaster Phone 979.458.0722 Fax 979.458.0718
Department of Computer Science and Engineering | Dwight Look College of Engineering | Texas A&M University Privacy statement: Computer Science and Engineering Engineering TAMU |