mpi3-fortran / ompi / contrib / vt / vt / tools / opari / ChangeLog

Full commit
27. Fixed processing preprocessor directives
    containing character string constants with C/C++ comment
    indicators (/**/, //)

26. Fixed processing C/C++ line-continuation
    within character string constants
25. Fixed C/C++ parsing
    character string constants containing successive quotes (e.g. "\"\"")

24. Fixed Fortran parsing
    for detecting unbounded DO loop beginnings

23. Fixed parsing
    source files containing Carriage Returns

22. Fixed Fortran parsing
    for detecting end of block DO loops

21. Fixed processing of Fortran line-continuation
    appearing after a complete OpenMP directive

    For example

      !$omp parallel
      !$omp do private(a,b,c, &
      !$omp            d,e,f)

    will not cause an "unbalanced pragma/directive nesting" error anymore.
20. Fixed Fortran parsing
    for detecting DO loop beginnings

19. Revised 18.
    to get back support for comma-separated OpenMP clauses.

18. Fixed processing of Fortran line-continuation where
    commas at end of line (e.g. within OpenMP clauses) was removed

17. Improved C/C++ instrumentation of OpenMP nested parallel regions
    where the parent thread identifier will be passed to opening nested
    parallel regions.

16. Improved Fortran parsing
    added support for comma-separated OpenMP clauses.

15. Improved C/C++ parsing
    added support for bonded line-continuation in OpenMP directives.
    For example

      #pragma omp parallel\

    is now correctly instrumented. Prior a space or tabulator between
    the last word and the line-continuation '\' was necessary.

14. Improved Fortran parsing
    instrument parallel fortran end do loops without OpenMP end do loop pragma.
    Works for correctly nested do loops with
    a) f90 END DO's
    b) f77 labeled continue statements
    The special case for b) where multiple loops use the same continue
    statement as end do has restrictions: OPARI can only handle these cases
    which do NOT require adding extra continue statements.

    POMP interface routines renamed from pomp_type_event to
    POMP_Type_event. Necessary to allow porting to machines
    where Fortran name mangling is all lowercase (like IBM).

12. Support for Intel Linux compilers

11. Improved C/C++ parsing so that cases where nested for loops
    did not uses braces for all loop bodies work correctly now.
    For example

      #pragma omp for
      for (i=0; i<N; ++i)
        for (j=0; j<N; ++j) { }

    is now correctly instrumented. Version 1.1 required extra braces
    for the body of the "i" loop.

10. Fixed support for threadprivate

09. Port to Hitachi SR8000

------------------- Released version 1.1 ---------------------

08. Various portability fixes to allow OPARI to be compiled
    with IBM xlC, SUN CC, SGI CC

07. Fixed wrong C string comparison (without strcmp, but ==)
    which worked by accident in

06. Improved version of POMP stub routines in subdirectory "lib".
    Automatic configuration of fortran subroutine object names.

05. Fixed that OPARI does not generate (wrong or incomplete)
    files (output file, opari include file, opari table file, opari
    resource file) in case of errors.

04. New extended version of pragmas for user specified region
    instrumentation. Version 1.0 allowed only a matching pair of
    "INST BEGIN" and "INST END" directives/pragmas. This did not
    allow to instrument user functions with more than one exit
    point. For this situation, a new "INST ALTEND" directive/pragma
    was introduced. This "alternative end user region" construct
    can only appear between a matching "begin user region"
    and "end user region" directive/pragma. Example:

      void foo(bool b) {
        #pragma pomp inst begin(foo)
        if (b) {
          #pragma pomp inst altend(foo)
        #pragma pomp inst end(foo)

03. Instrumentation for OpenMP "FLUSH" directives/pragmas added:

      call pomp_flush_enter(d)
      !$OMP FLUSH
      call pomp_flush_exit(d)

02. Improved C/C++ parsing so that cases where a statement or
    block "closes" more than pragma are handled correctly. For

      #pragma omp parallel
        #pragma omp for
          for (i=0; i<N; ++i) { }

    is now correctly instrumented. Version 1.0 required extra braces
    for the body of the "#pragma omp parallel".

01. Fixed bug where incorrect runtime table file was produced when
    opari was fed a program without any OpenMP regions.

------------------- Released version 1.0 ---------------------