From 3ed2329643ee6a2cb8755e6d33d0380613046321 Mon Sep 17 00:00:00 2001 From: Matthias Jurenz Date: Mon, 19 Dec 2011 08:40:35 +0000 Subject: [PATCH] Changes to OTF: - tests/thumbnail: - removed unnecessary header include (stdbool.h) that breaks build on Solaris Changes to VT: - configure: - fixed detection of Open64 compilers for automatic instrumentation - VT libs: - fixed non-increasing timestamps when flushing the trace buffer: check trace status after calling vt_update_counter() to prevent function leave events from recording, if maximum buffer flushes are reached - calculate fixed record lengths only once when creating new buffer entries - vtunify[-mpi]: - minor code-optimization: use ++it instead of it++ in for-loops to prevent unnecessary copying of objects This commit was SVN r25674. --- ompi/contrib/vt/vt/ChangeLog | 2 + .../vt/vt/config/m4/acinclude.compinst.m4 | 37 ++++---- .../contrib/vt/vt/config/m4/acinclude.conf.m4 | 3 +- ompi/contrib/vt/vt/doc/UserManual.html | 6 +- ompi/contrib/vt/vt/doc/UserManual.pdf | Bin 500474 -> 500777 bytes .../vt/extlib/otf/tests/thumbnail/thumbnail.c | 1 - .../vtunify/hooks/vt_unify_hooks_aevents.cc | 14 +-- .../vtunify/hooks/vt_unify_hooks_prof.cc | 14 +-- ompi/contrib/vt/vt/tools/vtunify/vt_unify.cc | 2 +- .../vt/vt/tools/vtunify/vt_unify_defs.cc | 44 +++++----- .../vt/vt/tools/vtunify/vt_unify_defs_recs.cc | 2 +- .../vt/vt/tools/vtunify/vt_unify_esync.cc | 2 +- .../vt/vt/tools/vtunify/vt_unify_markers.cc | 4 +- .../vt/vt/tools/vtunify/vt_unify_sync.cc | 6 +- .../vt/vt/tools/vtunify/vt_unify_tkfac.cc | 12 +-- .../vt/tools/vtunify/vt_unify_tkfac_scope.hh | 2 +- .../vt/vt/tools/vtunify/vt_unify_usrcom.cc | 4 +- ompi/contrib/vt/vt/vtlib/vt_otf_gen.c | 80 +++++++++--------- ompi/contrib/vt/vt/vtlib/vt_trc.c | 3 + 19 files changed, 126 insertions(+), 112 deletions(-) diff --git a/ompi/contrib/vt/vt/ChangeLog b/ompi/contrib/vt/vt/ChangeLog index e16a4faf6e..956781482f 100644 --- a/ompi/contrib/vt/vt/ChangeLog +++ b/ompi/contrib/vt/vt/ChangeLog @@ -1,7 +1,9 @@ 5.12.1openmpi - updated version of internal OTF to 1.10.1openmpi (see extlib/otf/ChangeLog) + - fixed detection of Open64 compilers for automatic instrumentation - fixed build issues on MacOS using GCC v4.2 + - fixed non-increasing timestamps when flushing the trace buffer - fixed a bug in the MPI wrapper functions MPI_Gatherv and MPI_Scatterv which occurred due to illegal access to insignificant parameters on non-root ranks diff --git a/ompi/contrib/vt/vt/config/m4/acinclude.compinst.m4 b/ompi/contrib/vt/vt/config/m4/acinclude.compinst.m4 index e847c92c2c..c1af4219e9 100644 --- a/ompi/contrib/vt/vt/config/m4/acinclude.compinst.m4 +++ b/ompi/contrib/vt/vt/config/m4/acinclude.compinst.m4 @@ -50,7 +50,7 @@ AC_DEFUN([ACVT_COMPINST], AC_ARG_ENABLE(compinst, AC_HELP_STRING([--enable-compinst=TYPE], - [enable support for compiler instrumentation (gnu,intel,pathscale,pgi,pgi9,sun,xl,necsx,openuh), default: automatically by configure]), + [enable support for compiler instrumentation (gnu,intel,pathscale,pgi,pgi9,sun,xl,necsx,open64,openuh), default: automatically by configure]), [AS_IF([test x"$enableval" = "xno"], [check_compinst="no"], [enable_compinst="$enableval"])]) AS_IF([test x"$check_compinst" = "xyes"], @@ -65,7 +65,7 @@ AC_DEFUN([ACVT_COMPINST], AC_MSG_RESULT([skipped (--enable-compinst=$enable_compinst)]) case $enable_compinst in - gnu | intel | pathscale) + gnu | intel | pathscale | open64) compinst_type="gnu" ;; pgi) @@ -190,19 +190,26 @@ AC_DEFUN([ACVT_COMPINST], ]) ]) ;; - uhcc* | opencc*) - compver=`$CC -dumpversion` - compver_major=`echo $compver | cut -d '.' -f 1` - AS_IF([test $compver_major -ge 4], - [ - compinst_type="openuh" - AC_MSG_RESULT([openuh]) - ], - [ - AC_MSG_RESULT([unknown]) - AC_MSG_NOTICE([error: the version of the OpenUH compiler ($compver) doesn't support instrumentation]) - compinst_error="yes" - ]) + opencc* | uhcc*) + case `$CC --version 2>&1` in + OpenUH*) + compver=`$CC -dumpversion 2>&1` + compver_major=`echo $compver | cut -d '.' -f 1` + AS_IF([test $compver_major -ge 4], + [ + compinst_type="openuh" + AC_MSG_RESULT([openuh]) + ], + [ + compinst_type="gnu" + AC_MSG_RESULT([gnu (open64)]) + ]) + ;; + *) + compinst_type="gnu" + AC_MSG_RESULT([gnu (open64)]) + ;; + esac ;; sxcc*) compinst_type="necsx" diff --git a/ompi/contrib/vt/vt/config/m4/acinclude.conf.m4 b/ompi/contrib/vt/vt/config/m4/acinclude.conf.m4 index a1c4843257..b2e02998da 100644 --- a/ompi/contrib/vt/vt/config/m4/acinclude.conf.m4 +++ b/ompi/contrib/vt/vt/config/m4/acinclude.conf.m4 @@ -321,7 +321,8 @@ AC_DEFUN([ACVT_CONF_SUMMARY], AS_IF([test x"$compinst_type" = "xgnu"], [ - echo " *The instrumentation type 'gnu' also works for Intel and PathScale compilers." + echo " *The instrumentation type 'gnu' also works for Intel, PathScale," + echo " and Open64 compilers." ]) AS_IF([test x"$have_dyninst" = "xyes"], diff --git a/ompi/contrib/vt/vt/doc/UserManual.html b/ompi/contrib/vt/vt/doc/UserManual.html index ea42700fc8..44810488c5 100644 --- a/ompi/contrib/vt/vt/doc/UserManual.html +++ b/ompi/contrib/vt/vt/doc/UserManual.html @@ -112,7 +112,7 @@ Contents
  • Supported Compilers
  • Notes for Using the GNU, Intel, or PathScale Compiler + HREF="#SECTION00332000000000000000">Notes for Using the GNU, Intel, PathScale, or Open64 Compiler
  • Notes on Instrumentation of Inline Functions
  • NEC SX (i.e. sxcc, sxc++, sxf90)
  • +
  • Open64 (i.e. opencc, openCC, openf90) +
  • OpenUH version ≥4.0 (i.e. uhcc, uhCC, uhf90)
  • @@ -800,7 +802,7 @@ VampirTrace supports following compilers for automatic instrumentation:


    -Notes for Using the GNU, Intel, or PathScale Compiler +Notes for Using the GNU, Intel, PathScale, or Open64 Compiler

    For these compilers the command nm is required to get symbol information of the running application executable. For example on Linux systems, this program is a diff --git a/ompi/contrib/vt/vt/doc/UserManual.pdf b/ompi/contrib/vt/vt/doc/UserManual.pdf index 469d8860beb51991c14c123f10b86d993e0591b1..7c6131a8c320fd6a8cba53803bade4fea83c26dd 100644 GIT binary patch delta 44868 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 delta 44934 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 MwNdSi5v`tQ*DB|GG-GRVOVH*&E%!=Z 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 diff --git a/ompi/contrib/vt/vt/extlib/otf/tests/thumbnail/thumbnail.c b/ompi/contrib/vt/vt/extlib/otf/tests/thumbnail/thumbnail.c index 85eb5f1b42..a95414e9de 100644 --- a/ompi/contrib/vt/vt/extlib/otf/tests/thumbnail/thumbnail.c +++ b/ompi/contrib/vt/vt/extlib/otf/tests/thumbnail/thumbnail.c @@ -5,7 +5,6 @@ #include #include #include -#include #include #include diff --git a/ompi/contrib/vt/vt/tools/vtunify/hooks/vt_unify_hooks_aevents.cc b/ompi/contrib/vt/vt/tools/vtunify/hooks/vt_unify_hooks_aevents.cc index 24f00f32ca..58e896ac3c 100644 --- a/ompi/contrib/vt/vt/tools/vtunify/hooks/vt_unify_hooks_aevents.cc +++ b/ompi/contrib/vt/vt/tools/vtunify/hooks/vt_unify_hooks_aevents.cc @@ -242,7 +242,7 @@ HooksAsyncEventsC::phaseHook_UnifyEvents_pre() // iterate over all async. sources for( std::set::const_iterator it = m_sourceKeys.begin(); - it != m_sourceKeys.end(); it++ ) + it != m_sourceKeys.end(); ++it ) { const uint32_t & key = *it; @@ -383,7 +383,7 @@ HooksAsyncEventsC::openSources( AsyncSourceManagerS & manager, // open reader streams of each async. source // for( std::map::iterator it = - manager.sources.begin(); it != manager.sources.end(); it++ ) + manager.sources.begin(); it != manager.sources.end(); ++it ) { AsyncSourceManagerS::SourceS & source = it->second; @@ -448,7 +448,7 @@ HooksAsyncEventsC::closeSources( AsyncSourceManagerS & manager ) // close reader streams of each async. source // for( std::map::iterator it = - manager.sources.begin(); it != manager.sources.end(); it++ ) + manager.sources.begin(); it != manager.sources.end(); ++it ) { AsyncSourceManagerS::SourceS & source = it->second; @@ -486,7 +486,7 @@ HooksAsyncEventsC::readAhead( AsyncSourceManagerS & manager, // call myself for each async. source key // for( std::map::const_iterator it = - manager.sources.begin(); it != manager.sources.end(); it++ ) + manager.sources.begin(); it != manager.sources.end(); ++it ) { const uint32_t & source_key = it->first; @@ -574,7 +574,7 @@ HooksAsyncEventsC::writeAsyncEvents( AsyncSourceManagerS & manager, // iterate over all async. sources for( std::map::iterator it = - manager.sources.begin(); it != manager.sources.end(); it++ ) + manager.sources.begin(); it != manager.sources.end(); ++it ) { AsyncSourceManagerS::SourceS & source = it->second; @@ -696,7 +696,7 @@ HooksAsyncEventsC::isAsyncEvent( OTF_KeyValueList *& kvs, if( sourceKey == 0 ) { for( std::set::const_iterator it = m_sourceKeys.begin(); - it != m_sourceKeys.end() && !ret; it++ ) + it != m_sourceKeys.end() && !ret; ++it ) { ret = ( OTF_KeyValueList_hasKey( kvs, *it ) == 0 ); } @@ -751,7 +751,7 @@ HooksAsyncEventsC::shareSourceKeys() // uint32_t i = 0; for( std::set::const_iterator it = m_sourceKeys.begin(); - it != m_sourceKeys.end(); it++, i++ ) + it != m_sourceKeys.end(); ++it, i++ ) { keys[i] = *it; } diff --git a/ompi/contrib/vt/vt/tools/vtunify/hooks/vt_unify_hooks_prof.cc b/ompi/contrib/vt/vt/tools/vtunify/hooks/vt_unify_hooks_prof.cc index ef8f514080..11187a63f0 100644 --- a/ompi/contrib/vt/vt/tools/vtunify/hooks/vt_unify_hooks_prof.cc +++ b/ompi/contrib/vt/vt/tools/vtunify/hooks/vt_unify_hooks_prof.cc @@ -223,7 +223,7 @@ HooksProfC::getFuncProf( std::vector & funcProfs, // iterate over all process function profiles for( std::map >::const_iterator proc_it = m_procId2FuncProf.begin(); - proc_it != m_procId2FuncProf.end(); proc_it++ ) + proc_it != m_procId2FuncProf.end(); ++proc_it ) { // continue, if process function profile of interest? if( procId != 0 && proc_it->first != procId ) @@ -231,7 +231,7 @@ HooksProfC::getFuncProf( std::vector & funcProfs, for( std::map::const_iterator loc_prof_it = proc_it->second.begin(); loc_prof_it != proc_it->second.end(); - loc_prof_it++ ) + ++loc_prof_it ) { const FuncProfS & loc_prof = loc_prof_it->second; @@ -376,7 +376,7 @@ HooksProfC::haveFuncProf( const uint32_t & procId ) { // iterate over all process function profiles for( proc_it = m_procId2FuncProf.begin(); - proc_it != m_procId2FuncProf.end(); proc_it++ ) + proc_it != m_procId2FuncProf.end(); ++proc_it ) { if( !proc_it->second.empty() ) { @@ -480,7 +480,7 @@ HooksProfC::gatherFuncProfs() // for( std::map >::iterator proc_it = m_procId2FuncProf.begin(); - proc_it != m_procId2FuncProf.end(); proc_it++ ) + proc_it != m_procId2FuncProf.end(); ++proc_it ) { // m_procId2FuncProf.first // @@ -496,7 +496,7 @@ HooksProfC::gatherFuncProfs() // for( std::map::iterator prof_it = proc_it->second.begin(); - prof_it != proc_it->second.end(); prof_it++ ) + prof_it != proc_it->second.end(); ++prof_it ) { send_buffer_size += prof_it->second.getPackSize(); } @@ -525,7 +525,7 @@ HooksProfC::gatherFuncProfs() // for( std::map >::iterator proc_it = m_procId2FuncProf.begin(); - proc_it != m_procId2FuncProf.end(); proc_it++ ) + proc_it != m_procId2FuncProf.end(); ++proc_it ) { // m_procId2FuncProf.first // @@ -545,7 +545,7 @@ HooksProfC::gatherFuncProfs() // for( std::map::iterator prof_it = proc_it->second.begin(); - prof_it != proc_it->second.end(); prof_it++ ) + prof_it != proc_it->second.end(); ++prof_it ) { prof_it->second.pack( send_buffer, send_buffer_size, send_buffer_pos ); diff --git a/ompi/contrib/vt/vt/tools/vtunify/vt_unify.cc b/ompi/contrib/vt/vt/tools/vtunify/vt_unify.cc index 1acbba982f..1621d47241 100644 --- a/ompi/contrib/vt/vt/tools/vtunify/vt_unify.cc +++ b/ompi/contrib/vt/vt/tools/vtunify/vt_unify.cc @@ -985,7 +985,7 @@ writeMasterControl() if( procgrps && procgrp_it != procgrps->end() ) { proc_or_group = *procgrp_it; - procgrp_it++; + ++procgrp_it; } else { diff --git a/ompi/contrib/vt/vt/tools/vtunify/vt_unify_defs.cc b/ompi/contrib/vt/vt/tools/vtunify/vt_unify_defs.cc index b18e43f99e..fc58d2c140 100644 --- a/ompi/contrib/vt/vt/tools/vtunify/vt_unify_defs.cc +++ b/ompi/contrib/vt/vt/tools/vtunify/vt_unify_defs.cc @@ -32,7 +32,7 @@ static void resortGlobDefs( const std::set & in, std::set & out ) { for( typename std::set::const_iterator it = - in.begin(); it != in.end(); it++ ) + in.begin(); it != in.end(); ++it ) { out.insert( &(*it) ); } @@ -1526,7 +1526,7 @@ DefinitionsC::writeGlobal() // iterate over all definition comments for( resorted_comments_t::const_iterator it = resorted_comments.begin(); it != resorted_comments.end(); - it++ ) + ++it ) { bool do_write = true; @@ -1567,7 +1567,7 @@ DefinitionsC::writeGlobal() // iterate over all process definitions for( resorted_procs_t::const_iterator it = - resorted_procs.begin(); it != resorted_procs.end(); it++ ) + resorted_procs.begin(); it != resorted_procs.end(); ++it ) { bool do_write = true; @@ -1609,7 +1609,7 @@ DefinitionsC::writeGlobal() // iterate over all process group definitions for( resorted_proc_grps_t::const_iterator it = resorted_proc_grps.begin(); it != resorted_proc_grps.end(); - it++ ) + ++it ) { bool do_write = true; @@ -1665,7 +1665,7 @@ DefinitionsC::writeGlobal() DefRec_DefProcessGroupAttributesS>::iterator procgrp_attrs_it = m_globDefs.procGrpAttrs.begin(); procgrp_attrs_it != m_globDefs.procGrpAttrs.end(); - procgrp_attrs_it++ ) + ++procgrp_attrs_it ) { bool do_write = true; @@ -1706,7 +1706,7 @@ DefinitionsC::writeGlobal() // iterate over all attributes list definitions for( std::set::const_iterator attrs_list_it = global_attrs_lists.begin(); attrs_list_it != - global_attrs_lists.end() && !error; attrs_list_it++ ) + global_attrs_lists.end() && !error; ++attrs_list_it ) { // convert bitmask to array // @@ -1733,7 +1733,7 @@ DefinitionsC::writeGlobal() DefRec_DefProcessGroupAttributesS>::const_iterator procgrp_attrs_it = m_globDefs.procGrpAttrs.begin(); procgrp_attrs_it != m_globDefs.procGrpAttrs.end() && - !error; procgrp_attrs_it++ ) + !error; ++procgrp_attrs_it ) { const DefRec_DefProcessGroupAttributesS & procgrp_attrs = procgrp_attrs_it->second; @@ -1770,7 +1770,7 @@ DefinitionsC::writeGlobal() // iterate over all scl file definitions for( resorted_scl_files_t::const_iterator it = resorted_scl_files.begin(); it != resorted_scl_files.end(); - it++ ) + ++it ) { bool do_write = true; @@ -1812,7 +1812,7 @@ DefinitionsC::writeGlobal() // iterate over all scl definitions for( resorted_scls_t::const_iterator it = resorted_scls.begin(); it != resorted_scls.end(); - it++ ) + ++it ) { bool do_write = true; @@ -1854,7 +1854,7 @@ DefinitionsC::writeGlobal() // iterate over all file group definitions for( resorted_file_grps_t::const_iterator it = resorted_file_grps.begin(); it != resorted_file_grps.end(); - it++ ) + ++it ) { bool do_write = true; @@ -1894,7 +1894,7 @@ DefinitionsC::writeGlobal() // iterate over all file definitions for( resorted_files_t::const_iterator it = - resorted_files.begin(); it != resorted_files.end(); it++ ) + resorted_files.begin(); it != resorted_files.end(); ++it ) { bool do_write = true; @@ -1936,7 +1936,7 @@ DefinitionsC::writeGlobal() // iterate over all function group definitions for( resorted_func_grps_t::const_iterator it = resorted_func_grps.begin(); it != resorted_func_grps.end(); - it++ ) + ++it ) { bool do_write = true; @@ -1978,7 +1978,7 @@ DefinitionsC::writeGlobal() // iterate over all function definitions for( resorted_funcs_t::const_iterator it = resorted_funcs.begin(); it != resorted_funcs.end(); - it++ ) + ++it ) { bool do_write = true; @@ -2021,7 +2021,7 @@ DefinitionsC::writeGlobal() // iterate over all collop. definitions for( resorted_collops_t::const_iterator it = resorted_collops.begin(); it != resorted_collops.end(); - it++ ) + ++it ) { bool do_write = true; @@ -2064,7 +2064,7 @@ DefinitionsC::writeGlobal() // iterate over all counter group definitions for( resorted_cntr_grps_t::const_iterator it = resorted_cntr_grps.begin(); it != resorted_cntr_grps.end(); - it++ ) + ++it ) { bool do_write = true; @@ -2106,7 +2106,7 @@ DefinitionsC::writeGlobal() // iterate over all counter definitions for( resorted_cntrs_t::const_iterator it = resorted_cntrs.begin(); it != resorted_cntrs.end(); - it++ ) + ++it ) { bool do_write = true; @@ -2140,7 +2140,7 @@ DefinitionsC::writeGlobal() for( std::map::iterator cntr_assigns_it = m_globDefs.cntrAssigns.begin(); cntr_assigns_it != m_globDefs.cntrAssigns.end(); - cntr_assigns_it++ ) + ++cntr_assigns_it ) { bool do_write = true; @@ -2164,7 +2164,7 @@ DefinitionsC::writeGlobal() uint32_t i = 0; for( std::set::const_iterator it = record.groups.begin(); it != record.groups.end(); - it++, i++ ) + ++it, i++ ) { array[i] = *it; } @@ -2197,7 +2197,7 @@ DefinitionsC::writeGlobal() // iterate over all key-value definitions for( resorted_keyvals_t::const_iterator it = resorted_keyvals.begin(); it != resorted_keyvals.end(); - it++ ) + ++it ) { bool do_write = true; @@ -2753,7 +2753,7 @@ DefinitionsC::ProcessGroupsC::finish( void ) for( std::map::iterator comm_it = m_userCom.name2Comm.begin(); comm_it != m_userCom.name2Comm.end(); - comm_it++ ) + ++comm_it ) { assert( comm_it->second->global_token != 0 ); @@ -2783,7 +2783,7 @@ DefinitionsC::ProcessGroupsC::finish( void ) for( std::map::const_iterator group_it = m_other.name2Group.begin(); - group_it != m_other.name2Group.end(); group_it++ ) + group_it != m_other.name2Group.end(); ++group_it ) { assert( group_it->second.global_token != 0 ); @@ -2820,7 +2820,7 @@ DefinitionsC::ProcessGroupsC::deflateMembers( uint32_t id = (uint32_t)-1; for( std::multimap::const_iterator it = - range.first; it != range.second; it++ ) + range.first; it != range.second; ++it ) { if( it->second->nmembers != procGrp.nmembers ) continue; diff --git a/ompi/contrib/vt/vt/tools/vtunify/vt_unify_defs_recs.cc b/ompi/contrib/vt/vt/tools/vtunify/vt_unify_defs_recs.cc index 8c310af90c..c0567ef86c 100644 --- a/ompi/contrib/vt/vt/tools/vtunify/vt_unify_defs_recs.cc +++ b/ompi/contrib/vt/vt/tools/vtunify/vt_unify_defs_recs.cc @@ -1195,7 +1195,7 @@ DefRec_DefCounterAssignmentsS::pack( char *& buffer, // groups // for( std::set::const_iterator it = groups.begin(); - it != groups.end(); it++ ) + it != groups.end(); ++it ) { uint32_t group = *it; CALL_MPI( MPI_Pack( &group, 1, MPI_UNSIGNED, buffer, bufferSize, diff --git a/ompi/contrib/vt/vt/tools/vtunify/vt_unify_esync.cc b/ompi/contrib/vt/vt/tools/vtunify/vt_unify_esync.cc index aef433edc4..d0c3a99014 100644 --- a/ompi/contrib/vt/vt/tools/vtunify/vt_unify_esync.cc +++ b/ompi/contrib/vt/vt/tools/vtunify/vt_unify_esync.cc @@ -916,7 +916,7 @@ ETimeSyncC::distStartTimes() // for( std::map::const_iterator iter_starttime = m_streamId2StartTime.begin(); - iter_starttime != m_streamId2StartTime.end(); iter_starttime++ ) + iter_starttime != m_streamId2StartTime.end(); ++iter_starttime ) { // m_streamId2StartTime.first // diff --git a/ompi/contrib/vt/vt/tools/vtunify/vt_unify_markers.cc b/ompi/contrib/vt/vt/tools/vtunify/vt_unify_markers.cc index 59a7d4c5d4..a0398c66aa 100644 --- a/ompi/contrib/vt/vt/tools/vtunify/vt_unify_markers.cc +++ b/ompi/contrib/vt/vt/tools/vtunify/vt_unify_markers.cc @@ -453,7 +453,7 @@ MarkersC::writeGlobal() resorted_markers_t resorted_markers; for( std::set::const_iterator it = - m_globDefs.begin(); it != m_globDefs.end(); it++ ) + m_globDefs.begin(); it != m_globDefs.end(); ++it ) { resorted_markers.insert( &(*it) ); } @@ -463,7 +463,7 @@ MarkersC::writeGlobal() // iterate over all marker definitions for( resorted_markers_t::const_iterator it = resorted_markers.begin(); - it != resorted_markers.end(); it++ ) + it != resorted_markers.end(); ++it ) { bool do_write = true; diff --git a/ompi/contrib/vt/vt/tools/vtunify/vt_unify_sync.cc b/ompi/contrib/vt/vt/tools/vtunify/vt_unify_sync.cc index 0c07c9934d..0ab0fa6855 100644 --- a/ompi/contrib/vt/vt/tools/vtunify/vt_unify_sync.cc +++ b/ompi/contrib/vt/vt/tools/vtunify/vt_unify_sync.cc @@ -67,7 +67,7 @@ TimeSyncC::initialize() // set start times of input streams // for( std::map::const_iterator it = - m_proc2TimeRange.begin(); it != m_proc2TimeRange.end(); it++ ) + m_proc2TimeRange.begin(); it != m_proc2TimeRange.end(); ++it ) { const uint32_t & streamid = it->first; const uint64_t & mintime = it->second.first; @@ -90,7 +90,7 @@ TimeSyncC::initialize() // uint64_t global_mintime = (uint64_t)-1; for( std::map::const_iterator it = - m_proc2TimeRange.begin(); it != m_proc2TimeRange.end(); it++ ) + m_proc2TimeRange.begin(); it != m_proc2TimeRange.end(); ++it ) { const uint32_t & proc = it->first; const uint64_t mintime = correctTime( proc, it->second.first ); @@ -105,7 +105,7 @@ TimeSyncC::initialize() // uint64_t global_maxtime = 0; for( std::map::const_iterator it = - m_proc2TimeRange.begin(); it != m_proc2TimeRange.end(); it++ ) + m_proc2TimeRange.begin(); it != m_proc2TimeRange.end(); ++it ) { const uint32_t & proc = it->first; const uint64_t maxtime = correctTime( proc, it->second.second ); diff --git a/ompi/contrib/vt/vt/tools/vtunify/vt_unify_tkfac.cc b/ompi/contrib/vt/vt/tools/vtunify/vt_unify_tkfac.cc index 5e0978d86b..d928214e34 100644 --- a/ompi/contrib/vt/vt/tools/vtunify/vt_unify_tkfac.cc +++ b/ompi/contrib/vt/vt/tools/vtunify/vt_unify_tkfac.cc @@ -113,7 +113,7 @@ TokenFactoryC::distTranslations( const VT_MPI_INT & destRank, // std::set mprocess_ids; for( std::set::const_iterator stream_it = stream_ids.begin(); - stream_it != stream_ids.end(); stream_it++ ) + stream_it != stream_ids.end(); ++stream_it ) mprocess_ids.insert( *stream_it & VT_TRACEID_BITMASK ); // get size needed for the send buffer @@ -124,7 +124,7 @@ TokenFactoryC::distTranslations( const VT_MPI_INT & destRank, buffer_size = 0; for( std::map::const_iterator scope_it = - m_def2scope.begin(); scope_it != m_def2scope.end(); scope_it++ ) + m_def2scope.begin(); scope_it != m_def2scope.end(); ++scope_it ) { // get scope TokenFactoryScopeC * scope = @@ -140,7 +140,7 @@ TokenFactoryC::distTranslations( const VT_MPI_INT & destRank, // send buffer // for( std::set::const_iterator proc_it = mprocess_ids.begin(); - proc_it != mprocess_ids.end(); proc_it++ ) + proc_it != mprocess_ids.end(); ++proc_it ) buffer_size += scope->getPackSize( *proc_it ); } @@ -166,7 +166,7 @@ TokenFactoryC::distTranslations( const VT_MPI_INT & destRank, buffer_pos = 0; for( std::map::const_iterator scope_it = - m_def2scope.begin(); scope_it != m_def2scope.end(); scope_it++ ) + m_def2scope.begin(); scope_it != m_def2scope.end(); ++scope_it ) { // get scope TokenFactoryScopeC * scope = @@ -181,7 +181,7 @@ TokenFactoryC::distTranslations( const VT_MPI_INT & destRank, // pack token translation tables into the send buffer // for( std::set::const_iterator proc_it = mprocess_ids.begin(); - proc_it != mprocess_ids.end(); proc_it++ ) + proc_it != mprocess_ids.end(); ++proc_it ) scope->pack( *proc_it, buffer, buffer_size, buffer_pos ); } @@ -229,7 +229,7 @@ TokenFactoryC::distTranslations( const VT_MPI_INT & destRank, buffer_pos = 0; for( std::map::const_iterator scope_it = - m_def2scope.begin(); scope_it != m_def2scope.end(); scope_it++ ) + m_def2scope.begin(); scope_it != m_def2scope.end(); ++scope_it ) { // get scope TokenFactoryScopeC * scope = diff --git a/ompi/contrib/vt/vt/tools/vtunify/vt_unify_tkfac_scope.hh b/ompi/contrib/vt/vt/tools/vtunify/vt_unify_tkfac_scope.hh index 5d9d7d5160..96a3f41702 100644 --- a/ompi/contrib/vt/vt/tools/vtunify/vt_unify_tkfac_scope.hh +++ b/ompi/contrib/vt/vt/tools/vtunify/vt_unify_tkfac_scope.hh @@ -186,7 +186,7 @@ TokenFactoryScopeC::pack( const uint32_t & process, { for( std::map::const_iterator token_pair_it = token_map_it->second.begin(); - token_pair_it != token_map_it->second.end(); token_pair_it++ ) + token_pair_it != token_map_it->second.end(); ++token_pair_it ) { uint32_t token_pair[2] = { token_pair_it->first, token_pair_it->second }; diff --git a/ompi/contrib/vt/vt/tools/vtunify/vt_unify_usrcom.cc b/ompi/contrib/vt/vt/tools/vtunify/vt_unify_usrcom.cc index 205ced38a1..8e7254ec00 100644 --- a/ompi/contrib/vt/vt/tools/vtunify/vt_unify_usrcom.cc +++ b/ompi/contrib/vt/vt/tools/vtunify/vt_unify_usrcom.cc @@ -179,7 +179,7 @@ UserComC::share() // m_userComms // for( std::set::const_iterator it = m_userComms.begin(); - it != m_userComms.end(); it++ ) + it != m_userComms.end(); ++it ) { uint32_t comm = *it; CALL_MPI( MPI_Pack( &comm, 1, MPI_UNSIGNED, buffer, buffer_size, @@ -195,7 +195,7 @@ UserComC::share() // m_comId2ComPair // for( std::map::const_iterator it = - m_comId2ComPair.begin(); it != m_comId2ComPair.end(); it++ ) + m_comId2ComPair.begin(); it != m_comId2ComPair.end(); ++it ) { // m_comId2ComPair.first // diff --git a/ompi/contrib/vt/vt/vtlib/vt_otf_gen.c b/ompi/contrib/vt/vt/vtlib/vt_otf_gen.c index 3d30c027b5..4fe99a2013 100644 --- a/ompi/contrib/vt/vt/vtlib/vt_otf_gen.c +++ b/ompi/contrib/vt/vt/vtlib/vt_otf_gen.c @@ -1317,7 +1317,7 @@ void VTGen_write_DEFINITION_COMMENT(VTGen* gen, const char* comment) { VTBuf_Entry_DefinitionComment* new_entry; - uint32_t length = + const uint32_t length = VTGEN_ALIGN_LENGTH((sizeof(VTBuf_Entry_DefinitionComment) + (strlen(comment) * sizeof(char)))); @@ -1338,7 +1338,7 @@ void VTGen_write_DEF_SCL_FILE(VTGen* gen, uint32_t fid, const char* fname) { VTBuf_Entry_DefSclFile* new_entry; - uint32_t length = + const uint32_t length = VTGEN_ALIGN_LENGTH((sizeof(VTBuf_Entry_DefSclFile) + (strlen(fname) * sizeof(char)))); @@ -1360,7 +1360,7 @@ void VTGen_write_DEF_SCL(VTGen* gen, uint32_t sid, uint32_t fid, uint32_t ln) { VTBuf_Entry_DefScl* new_entry; - uint32_t length = + static const uint32_t length = VTGEN_ALIGN_LENGTH(sizeof(VTBuf_Entry_DefScl)); VTGEN_CHECK(gen); @@ -1382,7 +1382,7 @@ void VTGen_write_DEF_FILE_GROUP(VTGen* gen, uint32_t gid, const char* gname) { VTBuf_Entry_DefFileGroup* new_entry; - uint32_t length = + const uint32_t length = VTGEN_ALIGN_LENGTH((sizeof(VTBuf_Entry_DefFileGroup) + (strlen(gname) * sizeof(char)))); @@ -1405,7 +1405,7 @@ void VTGen_write_DEF_FILE(VTGen* gen, uint32_t fid, const char* fname, { VTBuf_Entry_DefFile* new_entry; - uint32_t length = + const uint32_t length = VTGEN_ALIGN_LENGTH((sizeof(VTBuf_Entry_DefFile) + (strlen(fname) * sizeof(char)))); @@ -1429,7 +1429,7 @@ void VTGen_write_DEF_FUNCTION_GROUP(VTGen* gen, uint32_t rdid, { VTBuf_Entry_DefFunctionGroup* new_entry; - uint32_t length = + const uint32_t length = VTGEN_ALIGN_LENGTH((sizeof(VTBuf_Entry_DefFunctionGroup) + (strlen(rdesc) * sizeof(char)))); @@ -1452,7 +1452,7 @@ void VTGen_write_DEF_FUNCTION(VTGen* gen, uint32_t rid, const char* rname, { VTBuf_Entry_DefFunction* new_entry; - uint32_t length = + const uint32_t length = VTGEN_ALIGN_LENGTH((sizeof(VTBuf_Entry_DefFunction) + (strlen(rname) * sizeof(char)))); @@ -1477,7 +1477,7 @@ void VTGen_write_DEF_COLLECTIVE_OPERATION(VTGen* gen, uint32_t cid, { VTBuf_Entry_DefCollectiveOperation* new_entry; - uint32_t length = + const uint32_t length = VTGEN_ALIGN_LENGTH((sizeof(VTBuf_Entry_DefCollectiveOperation) + (strlen(cname) * sizeof(char)))); @@ -1500,7 +1500,7 @@ void VTGen_write_DEF_COUNTER_GROUP(VTGen* gen, uint32_t gid, const char* gname) { VTBuf_Entry_DefCounterGroup* new_entry; - uint32_t length = + const uint32_t length = VTGEN_ALIGN_LENGTH((sizeof(VTBuf_Entry_DefCounterGroup) + (strlen(gname) * sizeof(char)))); @@ -1524,7 +1524,7 @@ void VTGen_write_DEF_COUNTER(VTGen* gen, uint32_t cid, const char* cname, { VTBuf_Entry_DefCounter* new_entry; - uint32_t length = + const uint32_t length = VTGEN_ALIGN_LENGTH((sizeof(VTBuf_Entry_DefCounter) + (strlen(cname) * sizeof(char)))); @@ -1552,7 +1552,7 @@ void VTGen_write_DEF_PROCESS_GROUP(VTGen* gen, uint32_t gid, const char* grpn, { VTBuf_Entry_DefProcessGroup* new_entry; - uint32_t length = + const uint32_t length = VTGEN_ALIGN_LENGTH((sizeof(VTBuf_Entry_DefProcessGroup) + (grpc > 0 ? (grpc - 1) * sizeof(uint32_t) : 0 ))); @@ -1579,7 +1579,7 @@ void VTGen_write_DEF_PROCESS_GROUP_ATTRIBUTES(VTGen* gen, uint32_t gid, { VTBuf_Entry_DefProcessGroupAttributes* new_entry; - uint32_t length = + static const uint32_t length = VTGEN_ALIGN_LENGTH(sizeof(VTBuf_Entry_DefProcessGroupAttributes)); VTGEN_CHECK(gen); @@ -1601,7 +1601,7 @@ void VTGen_write_DEF_KEYVAL(VTGen* gen, uint32_t kid, uint8_t vtype, { VTBuf_Entry_DefKeyValue* new_entry; - uint32_t length = + const uint32_t length = VTGEN_ALIGN_LENGTH((sizeof(VTBuf_Entry_DefKeyValue) + (strlen(kname) * sizeof(char)))); @@ -1627,7 +1627,7 @@ void VTGen_write_DEF_MARKER(VTGen* gen, uint32_t mid, const char* mname, { VTBuf_Entry_DefMarker* new_entry; - uint32_t length = + const uint32_t length = VTGEN_ALIGN_LENGTH((sizeof(VTBuf_Entry_DefMarker) + (strlen(mname) * sizeof(char)))); @@ -1660,7 +1660,7 @@ void VTGen_write_ENTER(VTGen* gen, uint64_t* time, uint32_t rid, uint32_t sid) { VTBuf_Entry_EnterLeave* new_entry; - uint32_t length = + static const uint32_t length = VTGEN_ALIGN_LENGTH(sizeof(VTBuf_Entry_EnterLeave)); VTGEN_ALLOC_EVENT(gen, length, time); @@ -1688,7 +1688,7 @@ void VTGen_write_LEAVE(VTGen* gen, uint64_t* time, uint32_t rid, uint32_t sid) { VTBuf_Entry_EnterLeave* new_entry; - uint32_t length = + static const uint32_t length = VTGEN_ALIGN_LENGTH(sizeof(VTBuf_Entry_EnterLeave)); VTGEN_ALLOC_EVENT(gen, length, time); @@ -1720,7 +1720,7 @@ void VTGen_write_FILE_OPERATION(VTGen* gen, uint64_t* time, { VTBuf_Entry_FileOperation* new_entry; - uint32_t length = + static const uint32_t length = VTGEN_ALIGN_LENGTH(sizeof(VTBuf_Entry_FileOperation)); *etime -= *time; @@ -1784,7 +1784,7 @@ void VTGen_write_BEGIN_FILE_OPERATION(VTGen* gen, uint64_t* time, { VTBuf_Entry_BeginFileOperation* new_entry; - uint32_t length = + static const uint32_t length = VTGEN_ALIGN_LENGTH(sizeof(VTBuf_Entry_BeginFileOperation)); VTGEN_ALLOC_EVENT(gen, length, time); @@ -1811,7 +1811,7 @@ void VTGen_write_END_FILE_OPERATION(VTGen* gen, uint64_t* time, { VTBuf_Entry_EndFileOperation* new_entry; - uint32_t length = + static const uint32_t length = VTGEN_ALIGN_LENGTH(sizeof(VTBuf_Entry_EndFileOperation)); VTGEN_ALLOC_EVENT(gen, length, time); @@ -1878,7 +1878,7 @@ void VTGen_write_COUNTER(VTGen* gen, uint64_t* time, uint32_t cid, { VTBuf_Entry_Counter* new_entry; - uint32_t length = + static const uint32_t length = VTGEN_ALIGN_LENGTH(sizeof(VTBuf_Entry_Counter)); VTGEN_ALLOC_EVENT(gen, length, time); @@ -1905,7 +1905,7 @@ void VTGen_write_COMMENT(VTGen* gen, uint64_t* time, const char* comment) { VTBuf_Entry_Comment* new_entry; - uint32_t length = + const uint32_t length = VTGEN_ALIGN_LENGTH((sizeof(VTBuf_Entry_Comment) + (strlen(comment) * sizeof(char)))); @@ -1933,7 +1933,7 @@ void VTGen_write_MARKER(VTGen* gen, uint64_t* time, uint32_t mid, { VTBuf_Entry_Marker* new_entry; - uint32_t length = + const uint32_t length = VTGEN_ALIGN_LENGTH((sizeof(VTBuf_Entry_Marker) + (strlen(mtext) * sizeof(char)))); @@ -1961,7 +1961,7 @@ void VTGen_write_KEYVAL(VTGen* gen, uint32_t kid, uint8_t vtype, void* kvalue) { VTBuf_Entry_KeyValue* new_entry; - uint32_t length = + static const uint32_t length = VTGEN_ALIGN_LENGTH(sizeof(VTBuf_Entry_KeyValue)); /* No VTGEN_ALLOC_EVENT since space must be guaranteed */ @@ -2018,7 +2018,7 @@ void VTGen_write_SEND_MSG(VTGen* gen, uint64_t* time, uint32_t pid, { VTBuf_Entry_SendRecvMsg* new_entry; - uint32_t length = + static const uint32_t length = VTGEN_ALIGN_LENGTH(sizeof(VTBuf_Entry_SendRecvMsg)); VTGEN_ALLOC_EVENT(gen, length, time); @@ -2051,7 +2051,7 @@ void VTGen_write_RECV_MSG(VTGen* gen, uint64_t* time, uint32_t pid, { VTBuf_Entry_SendRecvMsg* new_entry; - uint32_t length = + static const uint32_t length = VTGEN_ALIGN_LENGTH(sizeof(VTBuf_Entry_SendRecvMsg)); VTGEN_ALLOC_EVENT(gen, length, time); @@ -2086,7 +2086,7 @@ void VTGen_write_COLLECTIVE_OPERATION(VTGen* gen, uint64_t* time, { VTBuf_Entry_CollectiveOperation* new_entry; - uint32_t length = + static const uint32_t length = VTGEN_ALIGN_LENGTH(sizeof(VTBuf_Entry_CollectiveOperation)); *etime -= *time; @@ -2125,7 +2125,7 @@ void VTGen_write_BEGIN_COLLECTIVE_OPERATION(VTGen* gen, uint64_t* time, { VTBuf_Entry_BeginCollectiveOperation* new_entry; - uint32_t length = + static const uint32_t length = VTGEN_ALIGN_LENGTH(sizeof(VTBuf_Entry_BeginCollectiveOperation)); VTGEN_ALLOC_EVENT(gen, length, time); @@ -2159,7 +2159,7 @@ void VTGen_write_END_COLLECTIVE_OPERATION(VTGen* gen, uint64_t* time, { VTBuf_Entry_EndCollectiveOperation* new_entry; - uint32_t length = + static const uint32_t length = VTGEN_ALIGN_LENGTH(sizeof(VTBuf_Entry_EndCollectiveOperation)); VTGEN_ALLOC_EVENT(gen, length, time); @@ -2187,7 +2187,7 @@ void VTGen_write_RMA_PUT(VTGen* gen, uint64_t* time, uint32_t opid, { VTBuf_Entry_RMAPutGet* new_entry; - uint32_t length = + static const uint32_t length = VTGEN_ALIGN_LENGTH(sizeof(VTBuf_Entry_RMAPutGet)); VTGEN_ALLOC_EVENT(gen, length, time); @@ -2218,7 +2218,7 @@ void VTGen_write_RMA_PUTRE(VTGen* gen, uint64_t* time, uint32_t opid, { VTBuf_Entry_RMAPutGet* new_entry; - uint32_t length = + static const uint32_t length = VTGEN_ALIGN_LENGTH(sizeof(VTBuf_Entry_RMAPutGet)); VTGEN_ALLOC_EVENT(gen, length, time); @@ -2249,7 +2249,7 @@ void VTGen_write_RMA_GET(VTGen* gen, uint64_t* time, uint32_t opid, { VTBuf_Entry_RMAPutGet* new_entry; - uint32_t length = + static const uint32_t length = VTGEN_ALIGN_LENGTH(sizeof(VTBuf_Entry_RMAPutGet)); VTGEN_ALLOC_EVENT(gen, length, time); @@ -2279,7 +2279,7 @@ void VTGen_write_RMA_END(VTGen* gen, uint64_t* time, uint32_t rpid, { VTBuf_Entry_RMAEnd* new_entry; - uint32_t length = + static const uint32_t length = VTGEN_ALIGN_LENGTH(sizeof(VTBuf_Entry_RMAEnd)); VTGEN_ALLOC_EVENT(gen, length, time); @@ -2308,7 +2308,7 @@ void VTGen_write_ENTER_FLUSH(VTGen* gen, uint64_t* time) { VTBuf_Entry_EnterLeave* new_entry; - uint32_t length = + static const uint32_t length = VTGEN_ALIGN_LENGTH(sizeof(VTBuf_Entry_EnterLeave)); /* No VTGEN_ALLOC_EVENT since space reserved at buffer creation */ @@ -2333,7 +2333,7 @@ void VTGen_write_LEAVE_FLUSH(VTGen* gen, uint64_t* time) { VTBuf_Entry_EnterLeave* new_entry; - uint32_t length = + static const uint32_t length = VTGEN_ALIGN_LENGTH(sizeof(VTBuf_Entry_EnterLeave)); /* No VTGEN_ALLOC_EVENT since space reserved at buffer creation */ @@ -2358,7 +2358,7 @@ void VTGen_write_ENTER_STAT(VTGen* gen, uint64_t* time) { VTBuf_Entry_EnterLeave* new_entry; - uint32_t length = + static const uint32_t length = VTGEN_ALIGN_LENGTH(sizeof(VTBuf_Entry_EnterLeave)); VTGEN_ALLOC_EVENT(gen, length, time); @@ -2383,7 +2383,7 @@ void VTGen_write_LEAVE_STAT(VTGen* gen, uint64_t* time) { VTBuf_Entry_EnterLeave* new_entry; - uint32_t length = + static const uint32_t length = VTGEN_ALIGN_LENGTH(sizeof(VTBuf_Entry_EnterLeave)); VTGEN_ALLOC_EVENT(gen, length, time); @@ -2414,7 +2414,7 @@ void VTGen_write_FUNCTION_SUMMARY(VTGen* gen, uint64_t* time, { VTBuf_Entry_FunctionSummary* new_entry; - uint32_t length = + static const uint32_t length = VTGEN_ALIGN_LENGTH(sizeof(VTBuf_Entry_FunctionSummary)); VTGEN_ALLOC_EVENT(gen, length, time); @@ -2444,7 +2444,7 @@ void VTGen_write_MESSAGE_SUMMARY(VTGen* gen, uint64_t* time, { VTBuf_Entry_MessageSummary* new_entry; - uint32_t length = + static const uint32_t length = VTGEN_ALIGN_LENGTH(sizeof(VTBuf_Entry_MessageSummary)); VTGEN_ALLOC_EVENT(gen, length, time); @@ -2477,7 +2477,7 @@ void VTGen_write_COLLECTIVE_OPERATION_SUMMARY(VTGen* gen, uint64_t* time, { VTBuf_Entry_CollectiveOperationSummary* new_entry; - uint32_t length = + static const uint32_t length = VTGEN_ALIGN_LENGTH(sizeof(VTBuf_Entry_CollectiveOperationSummary)); VTGEN_ALLOC_EVENT(gen, length, time); @@ -2510,7 +2510,7 @@ void VTGen_write_FILE_OPERATION_SUMMARY(VTGen* gen, uint64_t* time, { VTBuf_Entry_FileOperationSummary* new_entry; - uint32_t length = + static const uint32_t length = VTGEN_ALIGN_LENGTH(sizeof(VTBuf_Entry_FileOperationSummary)); VTGEN_ALLOC_EVENT(gen, length, time); diff --git a/ompi/contrib/vt/vt/vtlib/vt_trc.c b/ompi/contrib/vt/vt/vtlib/vt_trc.c index 196c6d76bd..9c31996017 100644 --- a/ompi/contrib/vt/vt/vtlib/vt_trc.c +++ b/ompi/contrib/vt/vt/vtlib/vt_trc.c @@ -2643,6 +2643,7 @@ void vt_exit(uint32_t tid, uint64_t* time) if (do_trace) { vt_update_counter(tid, time); + if (VTTHRD_TRACE_STATUS(VTThrdv[tid]) != VT_TRACE_ON) return; VTGen_write_LEAVE(VTTHRD_GEN(VTThrdv[tid]), time, @@ -3226,6 +3227,7 @@ void vt_exit_stat(uint32_t tid, uint64_t* time) if (VTTHRD_TRACE_STATUS(VTThrdv[tid]) != VT_TRACE_ON) return; vt_update_counter(tid, time); + if (VTTHRD_TRACE_STATUS(VTThrdv[tid]) != VT_TRACE_ON) return; VTGen_write_LEAVE(VTTHRD_GEN(VTThrdv[tid]), time, 0, 0); } @@ -3265,6 +3267,7 @@ void vt_exit_rewind(uint32_t tid, uint64_t* time) if (VTTHRD_TRACE_STATUS(VTThrdv[tid]) != VT_TRACE_ON) return; vt_update_counter(tid, time); + if (VTTHRD_TRACE_STATUS(VTThrdv[tid]) != VT_TRACE_ON) return; VTGen_write_LEAVE(VTTHRD_GEN(VTThrdv[tid]), time, 0, 0); }