[97] | 1 | 15. Improved C/C++ parsing |
---|
| 2 | added support for bonded line-continuation in OpenMP directives. |
---|
| 3 | For example |
---|
| 4 | |
---|
| 5 | #pragma omp parallel\ |
---|
| 6 | private(i) |
---|
| 7 | |
---|
| 8 | is now correctly instrumented. Prior a space or tabulator between |
---|
| 9 | the last word and the line-continuation '\' was necessary. |
---|
| 10 | |
---|
| 11 | 14. Improved Fortran parsing |
---|
| 12 | instrument parallel fortran end do loops without OpenMP end do loop pragma. |
---|
| 13 | Works for correctly nested do loops with |
---|
| 14 | a) f90 END DO's |
---|
| 15 | b) f77 labeled continue statements |
---|
| 16 | The special case for b) where multiple loops use the same continue |
---|
| 17 | statement as end do has restrictions: OPARI can only handle these cases |
---|
| 18 | which do NOT require adding extra continue statements. |
---|
| 19 | |
---|
| 20 | 13. !!!INCOMPATIBLE CHANGE!!! |
---|
| 21 | POMP interface routines renamed from pomp_type_event to |
---|
| 22 | POMP_Type_event. Necessary to allow porting to machines |
---|
| 23 | where Fortran name mangling is all lowercase (like IBM). |
---|
| 24 | |
---|
| 25 | 12. Support for Intel Linux compilers |
---|
| 26 | |
---|
| 27 | 11. Improved C/C++ parsing so that cases where nested for loops |
---|
| 28 | did not uses braces for all loop bodies work correctly now. |
---|
| 29 | For example |
---|
| 30 | |
---|
| 31 | #pragma omp for |
---|
| 32 | for (i=0; i<N; ++i) |
---|
| 33 | for (j=0; j<N; ++j) { } |
---|
| 34 | |
---|
| 35 | is now correctly instrumented. Version 1.1 required extra braces |
---|
| 36 | for the body of the "i" loop. |
---|
| 37 | |
---|
| 38 | 10. Fixed support for threadprivate |
---|
| 39 | |
---|
| 40 | 09. Port to Hitachi SR8000 |
---|
| 41 | |
---|
| 42 | ------------------- Released version 1.1 --------------------- |
---|
| 43 | |
---|
| 44 | 08. Various portability fixes to allow OPARI to be compiled |
---|
| 45 | with IBM xlC, SUN CC, SGI CC |
---|
| 46 | |
---|
| 47 | 07. Fixed wrong C string comparison (without strcmp, but ==) |
---|
| 48 | which worked by accident in handler.cc |
---|
| 49 | |
---|
| 50 | 06. Improved version of POMP stub routines in subdirectory "lib". |
---|
| 51 | Automatic configuration of fortran subroutine object names. |
---|
| 52 | |
---|
| 53 | 05. Fixed that OPARI does not generate (wrong or incomplete) |
---|
| 54 | files (output file, opari include file, opari table file, opari |
---|
| 55 | resource file) in case of errors. |
---|
| 56 | |
---|
| 57 | 04. New extended version of pragmas for user specified region |
---|
| 58 | instrumentation. Version 1.0 allowed only a matching pair of |
---|
| 59 | "INST BEGIN" and "INST END" directives/pragmas. This did not |
---|
| 60 | allow to instrument user functions with more than one exit |
---|
| 61 | point. For this situation, a new "INST ALTEND" directive/pragma |
---|
| 62 | was introduced. This "alternative end user region" construct |
---|
| 63 | can only appear between a matching "begin user region" |
---|
| 64 | and "end user region" directive/pragma. Example: |
---|
| 65 | |
---|
| 66 | void foo(bool b) { |
---|
| 67 | #pragma pomp inst begin(foo) |
---|
| 68 | if (b) { |
---|
| 69 | #pragma pomp inst altend(foo) |
---|
| 70 | return; |
---|
| 71 | } |
---|
| 72 | #pragma pomp inst end(foo) |
---|
| 73 | } |
---|
| 74 | |
---|
| 75 | 03. Instrumentation for OpenMP "FLUSH" directives/pragmas added: |
---|
| 76 | |
---|
| 77 | call pomp_flush_enter(d) |
---|
| 78 | !$OMP FLUSH |
---|
| 79 | call pomp_flush_exit(d) |
---|
| 80 | |
---|
| 81 | 02. Improved C/C++ parsing so that cases where a statement or |
---|
| 82 | block "closes" more than pragma are handled correctly. For |
---|
| 83 | example |
---|
| 84 | |
---|
| 85 | #pragma omp parallel |
---|
| 86 | #pragma omp for |
---|
| 87 | for (i=0; i<N; ++i) { } |
---|
| 88 | |
---|
| 89 | is now correctly instrumented. Version 1.0 required extra braces |
---|
| 90 | for the body of the "#pragma omp parallel". |
---|
| 91 | |
---|
| 92 | 01. Fixed bug where incorrect runtime table file was produced when |
---|
| 93 | opari was fed a program without any OpenMP regions. |
---|
| 94 | |
---|
| 95 | ------------------- Released version 1.0 --------------------- |
---|
| 96 | |
---|