In a spawn block, when accessing a particular struct field, it seems that the wrong address is being used. The problem goes away if I explicitly print something related to that structure in the spawn, so I am guessing it has something to do with the live analysis.
Here are some details. How to reproduce:
1. check out version 11886 of the directory https://subversion.umiacs.umd.edu/xmt/applications/graph-applications/trunk
svn co -r11886 https://subversion.umiacs.umd.edu/xmt/applications/graph-applications/trunk graph-applications
2. check out version 11886 of the alex-devel branch of the compiler
svn co -r11886 https://subversion.umiacs.umd.edu/xmt/new-compiler/compiler/branches/devel/alex xmtcc-alex
3. check out version 11886 of the george2-devel branch of the simulator
svn co -r11886 https://subversion.umiacs.umd.edu/xmt/simulator/branches/devel/george/power2 xmtsim-george2
4. Set all the correct paths to use the compiler and simulator.
5. cd graph-applications/graph_lib ; make
6. cd ../maxflow
7. make sim
Look at the output. There will be a bunch of lines saying "main::initialize...". The Level values on those lines should be identical to the level lines printed above, but they have huge random values.
8. open maxflow.vis.par.c. Uncomment line 322 (a printf). save the file.
9. run 'make sim' again.
Look at the output. The Level values in the "main::initialize..." lines will look correct now.
I think something happens with the network.label field in the code, which is a int*. It's value somehow is not correctly read (maybe it's incorrectly broadcast or something), but unless I explicitly print something with it, it is not read correctly.
Log in to post a comment.