[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [bgl-discuss] compile roptimization



I add the following options to the compiler : -qstrict -qcheck -qinitauto=0
according to your suggestion. They are to check the boundary and do the
initialization. And the results still not right. Any other suggestions ?

Thanks!

shan

Andrew Siegel wrote:
I should add that while in Ray's case we couldn't find any of the common
culprits for this (and thus it may very well be a bug), there are other
non-bug reasons that this happens commonly and that you might want to
check. The most common in my experience is programs that accidentally
assume a local scalar or two is automatically initialized to zero. You can
switch on a compiler flag to enforce this and check if it is the problem.
I would also run other standard memory diagnostics, like array bounds
checking, etc. if you haven't already. i also have a few other suggestions
if this doesn't work.


On Thu, 21 Jul 2005, Ray Loy wrote:

  
   I have a fortran90 program. I found that if I use -O2, -O3 (with
-qstrict) optimization when compiling,  my program
failed to generate the right results.
      
shan,

back in June i found this bug, which happened with -O vs none.
reported it to ibm but haven't heard anything back yet.
it is hard to track these down....


ray


-----excerpt from bug report----
    
essentially, the generated code computes min(4,8)-1 to be 7.


the value ie is computed incorrectly on this line:

           ie = min(index(i90_now%this_line,BLK),       &
                    index(i90_now%this_line,EOL)) - 1

but is correct when it is done this way, breaking out
the subexpressions:

           myBLK=index(i90_now%this_line,BLK)                   ! rml
           myEOL=index(i90_now%this_line,EOL)                   ! rml
           myie= min(myBLK,myEOL) -1                            ! rml


the problem will go away if you remove -O  on the compile.

      
- --------------------------------------------------------------------
To add or remove yourself from this mailing list, use the 'notifyme'
command on any BGL machine. To remove: notifyme -n, to add: notifyme -y.


    

- --------------------------------------------------------------------
To add or remove yourself from this mailing list, use the 'notifyme'
command on any BGL machine. To remove: notifyme -n, to add: notifyme -y.