1
1
- 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.
Этот коммит содержится в:
Matthias Jurenz 2011-12-19 08:40:35 +00:00
родитель 519f71ab7e
Коммит 3ed2329643
19 изменённых файлов: 126 добавлений и 112 удалений

Просмотреть файл

@ -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

Просмотреть файл

@ -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"

Просмотреть файл

@ -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"],

Просмотреть файл

@ -112,7 +112,7 @@ Contents</A>
<LI><A NAME="tex2html99"
HREF="#SECTION00331000000000000000">Supported Compilers</A>
<LI><A NAME="tex2html100"
HREF="#SECTION00332000000000000000">Notes for Using the GNU, Intel, or PathScale Compiler</A>
HREF="#SECTION00332000000000000000">Notes for Using the GNU, Intel, PathScale, or Open64 Compiler</A>
<LI><A NAME="tex2html101"
HREF="#SECTION00333000000000000000">Notes on Instrumentation of Inline Functions</A>
<LI><A NAME="tex2html102"
@ -791,6 +791,8 @@ VampirTrace supports following compilers for automatic instrumentation:
</LI>
<LI>NEC SX (i.e.&nbsp;sxcc, sxc++, sxf90)
</LI>
<LI>Open64 (i.e.&nbsp;opencc, openCC, openf90)
</LI>
<LI>OpenUH version &#8805;4.0 (i.e.&nbsp;uhcc, uhCC, uhf90)
</LI>
</UL>
@ -800,7 +802,7 @@ VampirTrace supports following compilers for automatic instrumentation:
<H2><A NAME="SECTION00332000000000000000"></A>
<A NAME="subsec:nmnotes"></A>
<BR>
Notes for Using the GNU, Intel, or PathScale Compiler
Notes for Using the GNU, Intel, PathScale, or Open64 Compiler
</H2>
For these compilers the command <TT>nm</TT> is required to get symbol information
of the running application executable. For example on Linux systems, this program is a

Двоичные данные
ompi/contrib/vt/vt/doc/UserManual.pdf

Двоичный файл не отображается.

Просмотреть файл

@ -5,7 +5,6 @@
#include <stdio.h>
#include <string.h>
#include <stdint.h>
#include <stdbool.h>
#include <math.h>
#include <otfaux.h>

Просмотреть файл

@ -242,7 +242,7 @@ HooksAsyncEventsC::phaseHook_UnifyEvents_pre()
// iterate over all async. sources
for( std::set<uint32_t>::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<uint32_t, AsyncSourceManagerS::SourceS>::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<uint32_t, AsyncSourceManagerS::SourceS>::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<uint32_t, AsyncSourceManagerS::SourceS>::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<uint32_t, AsyncSourceManagerS::SourceS>::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<uint32_t>::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<uint32_t>::const_iterator it = m_sourceKeys.begin();
it != m_sourceKeys.end(); it++, i++ )
it != m_sourceKeys.end(); ++it, i++ )
{
keys[i] = *it;
}

Просмотреть файл

@ -223,7 +223,7 @@ HooksProfC::getFuncProf( std::vector<HooksProfC::FuncProfS> & funcProfs,
// iterate over all process function profiles
for( std::map<uint32_t, std::map<uint32_t, FuncProfS> >::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<HooksProfC::FuncProfS> & funcProfs,
for( std::map<uint32_t, FuncProfS>::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<uint32_t, std::map<uint32_t, FuncProfS> >::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<uint32_t, FuncProfS>::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<uint32_t, std::map<uint32_t, FuncProfS> >::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<uint32_t, FuncProfS>::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 );

Просмотреть файл

@ -985,7 +985,7 @@ writeMasterControl()
if( procgrps && procgrp_it != procgrps->end() )
{
proc_or_group = *procgrp_it;
procgrp_it++;
++procgrp_it;
}
else
{

Просмотреть файл

@ -32,7 +32,7 @@ static void resortGlobDefs( const std::set<T> & in,
std::set<const T*, typename T::SortS> & out )
{
for( typename std::set<T>::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<attrs_list_t>::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<uint32_t, DefRec_DefCounterAssignmentsS>::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<uint32_t>::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<std::string, UserComS::CommS*>::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<std::string, OtherS::GroupS>::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<uint32_t, UniqueMembersS*>::const_iterator it =
range.first; it != range.second; it++ )
range.first; it != range.second; ++it )
{
if( it->second->nmembers != procGrp.nmembers )
continue;

Просмотреть файл

@ -1195,7 +1195,7 @@ DefRec_DefCounterAssignmentsS::pack( char *& buffer,
// groups
//
for( std::set<uint32_t>::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,

Просмотреть файл

@ -916,7 +916,7 @@ ETimeSyncC::distStartTimes()
//
for( std::map<uint32_t, uint64_t>::const_iterator iter_starttime =
m_streamId2StartTime.begin();
iter_starttime != m_streamId2StartTime.end(); iter_starttime++ )
iter_starttime != m_streamId2StartTime.end(); ++iter_starttime )
{
// m_streamId2StartTime.first
//

Просмотреть файл

@ -453,7 +453,7 @@ MarkersC::writeGlobal()
resorted_markers_t resorted_markers;
for( std::set<DefRec_DefMarkerS>::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;

Просмотреть файл

@ -67,7 +67,7 @@ TimeSyncC::initialize()
// set start times of input streams
//
for( std::map<uint32_t, TimeRangeT>::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<uint32_t, TimeRangeT>::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<uint32_t, TimeRangeT>::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 );

Просмотреть файл

@ -113,7 +113,7 @@ TokenFactoryC::distTranslations( const VT_MPI_INT & destRank,
//
std::set<uint32_t> mprocess_ids;
for( std::set<uint32_t>::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<DefRecTypeT, TokenFactoryScopeI*>::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<DefRec_BaseS> * scope =
@ -140,7 +140,7 @@ TokenFactoryC::distTranslations( const VT_MPI_INT & destRank,
// send buffer
//
for( std::set<uint32_t>::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<DefRecTypeT, TokenFactoryScopeI*>::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<DefRec_BaseS> * scope =
@ -181,7 +181,7 @@ TokenFactoryC::distTranslations( const VT_MPI_INT & destRank,
// pack token translation tables into the send buffer
//
for( std::set<uint32_t>::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<DefRecTypeT, TokenFactoryScopeI*>::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<DefRec_BaseS> * scope =

Просмотреть файл

@ -186,7 +186,7 @@ TokenFactoryScopeC<T>::pack( const uint32_t & process,
{
for( std::map<uint32_t, uint32_t>::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 };

Просмотреть файл

@ -179,7 +179,7 @@ UserComC::share()
// m_userComms
//
for( std::set<uint32_t>::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<ComIdS, ComPairS>::const_iterator it =
m_comId2ComPair.begin(); it != m_comId2ComPair.end(); it++ )
m_comId2ComPair.begin(); it != m_comId2ComPair.end(); ++it )
{
// m_comId2ComPair.first
//

Просмотреть файл

@ -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);

Просмотреть файл

@ -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);
}