GTPin
Public Member Functions
gtpin::IGtCfg Class Reference

Class that represents a control flow graph (CFG) and provides the code traversal interface. More...

#include <igt_cfg.h>

Public Member Functions

virtual BblSpan Bbls () const =0
 Return sequence of basic blocks in the fallthrough order.
virtual FunctionSpan Functions () const =0
 Return sequence of functions in this CFG.
virtual BblSpan EntryBbls () const =0
 Return sequence of entry basic blocks.
virtual BblSpan ExitBbls () const =0
 Return sequence of EOT basic blocks.
virtual bool IsEmpty () const =0
 Return true, if this CFG is empty.
virtual uint32_t NumBbls () const =0
 Return number of BBLs in this CFG.
virtual uint32_t NumFunctions () const =0
 Return number of functions in this CFG.
virtual const IGtInsGetInstruction (InsId insId) const =0
 Given identifier of an instruction, return reference to the corresponding IGtIns object.
virtual const IGtBblGetBbl (BblId bblId) const =0
 Given identifier of a basic block, return reference to the corresponding IGtBbl object.
virtual const IGtFunctionGetFunction (FunctionId funcId) const =0
 Given identifier of a function, return reference to the corresponding IGtFunction object.
virtual const IGtBblGetBbl (const IGtIns &ins) const =0
 Get basic block the specified instruction belongs to.
virtual const IGtFunctionFindFunction (const IGtIns &ins) const =0
 Get function that contains the specified instruction.
virtual const IGtFunctionGetMainFunction () const =0
 Get the main kernel function.
virtual ImgOffset GetInstructionOffsetInFunction (const IGtIns &ins) const =0
 Get the offset of the specified instruction within the function it belongs to.
virtual ImgOffset GetInstructionOffset (const IGtIns &ins) const =0
 Get the offset of the specified instruction within the kernel binary.

Detailed Description

Class that represents a control flow graph (CFG) and provides the code traversal interface.

Availability:

Member Function Documentation

virtual const IGtFunction* gtpin::IGtCfg::FindFunction ( const IGtIns ins) const [pure virtual]

Get function that contains the specified instruction.

Returns:
Pointer to the requested function, or null pointer if such function is not found
virtual const IGtBbl& gtpin::IGtCfg::GetBbl ( BblId  bblId) const [pure virtual]

Given identifier of a basic block, return reference to the corresponding IGtBbl object.

Precondition:
bblId.IsValid()
virtual const IGtBbl& gtpin::IGtCfg::GetBbl ( const IGtIns ins) const [pure virtual]

Get basic block the specified instruction belongs to.

Precondition:
ins.Id().IsValid()
Returns:
reference to the requested basic block
virtual const IGtFunction& gtpin::IGtCfg::GetFunction ( FunctionId  funcId) const [pure virtual]

Given identifier of a function, return reference to the corresponding IGtFunction object.

Precondition:
funcId.IsValid()
virtual const IGtIns& gtpin::IGtCfg::GetInstruction ( InsId  insId) const [pure virtual]

Given identifier of an instruction, return reference to the corresponding IGtIns object.

Precondition:
insId.IsValid()
virtual ImgOffset gtpin::IGtCfg::GetInstructionOffset ( const IGtIns ins) const [pure virtual]

Get the offset of the specified instruction within the kernel binary.

Returns:
Offset of the specified instruction within the kernel binary, as provided by the IgtKernel::Binary() function. For instruction that does not belong to this CFG, the returned value is ImgOffset::Invalid().
Note:
This function should not be used to associate IGtIns object with the corresponding instruction in the program's ELF, because it does not indicate which ELF section contains this instruction. Instead, GetFunction() and GetInstructionOffsetInFunction() functions can be used to look up ELF information associated with the instruction.
For monolithic kernels that consist of a single (main) function, both GetInstructionOffsetInFunction() and GetInstructionOffset() return the same value
virtual ImgOffset gtpin::IGtCfg::GetInstructionOffsetInFunction ( const IGtIns ins) const [pure virtual]

Get the offset of the specified instruction within the function it belongs to.

Returns:
Offset of the specified instruction relative to the beginning of the function it belongs to. For instruction that does not belong to any function of this CFG, the returned value is ImgOffset::Invalid().
virtual const IGtFunction& gtpin::IGtCfg::GetMainFunction ( ) const [pure virtual]

Get the main kernel function.

Precondition:
This CFG is not empty
Returns:
Reference to the main kernel function
 All Data Structures Functions Variables Typedefs Enumerations Enumerator


  Copyright (C) 2013-2025 Intel Corporation
SPDX-License-Identifier: MIT