• 2019 Update 3
  • 03/07/2019
  • Public Content
  • Download as PDF
Contents

Scope is a user-defined region in the source code. In contrast to regions and functions, which are entered and left with
VT_begin
/
VT_end()
or
VT_enter
/
VT_leave()
, scope does not follow the stack based approach. It is possible to start scope
a
, then start scope
b
and stop
a
before
b
, that is they can overlap one another:
|---- a -----| |------ b ----|
VT_scopedef
int VT_scopedef (const char * scopename, int classhandle, int scl1, int scl2, int * scopehandle)
Description
Define a new scope. A scope is identified by its name and class, like functions. The source code locations that can be associated with it are additional and optional attributes; they can be used to mark a static start and end of the scope in the source.
Like functions,
scopename
may consist of several components separated by a colon
:
.
Fortran
VTSCOPEDEF(scopename, classhandle, scl1, scl2, scopehandle, ierr)
Parameters
scopename
the name of the scope
classhandle
the class this scope belongs to (defined with
VT_classdef()
)
scl1
any kind of SCL as defined with
VT_scldef()
, or
VT_NOSCL
scl2
any kind of SCL as defined with
VT_scldef()
, or
VT_NOSCL
Return values
scopehandle
set to a numeric handle for the scope, needed by
VT_scopebegin()
Returns error code
VT_scopebegin
int VT_scopebegin (int scopehandle, int scl, int * seqnr)
Description
Starts a new instance of the scope previously defined with
VT_scopedef()
.
There can be more than one instance of a scope at the same time. In order to have the flexibility to stop an arbitrary instance, Intel® Trace Collector assigns an intermediate identifier to it which can (but does not have to) be passed to
VT_scopeend()
. If the application does not need this flexibility, then it can simply pass 0 to
VT_scopeend()
.
Fortran
VTSCOPEBEGIN(scopehandle, scl, seqnr, ierr)
Parameters
scopehandle
the scope as defined by
VT_scopedef()
scl
in contrast to the static SCL given in the scope definition this you can vary with each instance; pass
VT_NOSCL
if not needed
Return values
seqnr
is set to a number that together with the handle identifies the scope instance; pointer may be
NULL
Returns error code
VT_scopeend
int VT_scopeend (int scopehandle, int seqnr, int scl)
Description
Stops a scope that was previously started with
VT_scopebegin()
.
Fortran
VTSCOPEEND(scopehandle, seqnr, scl)
Parameters
scopehandle
identifies the scope that is to be terminated
seqnr
0 terminates the most recent scope with the given handle, passing the
seqnr
returned from
VT_scopebegin()
terminates exactly that instance
scl
a dynamic SCL for leaving the scope

Product and Performance Information

1

Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice.

Notice revision #20110804