GTPin: Register Allocation

GTPin

- Main Page
- Related Pages
- Modules
- Data Structures

Data Structures | Enumerations
Register Allocation
Kernel Instrumentation

A group of interfaces that allow tools to define virtual registers and control the register allocation policy More...

## Data Structures
class | gtpin::IGtRegAllocator
| Register allocation interface. More...
class | gtpin::GtVregType
| Type of the virtual register. More...
class | gtpin::IGtVreg
| Virtual register. More...
class | gtpin::IGtVregFactory
| Factory and container of virtual registers. More...
## Enumerations
enum | gtpin::VREG_TYPE { , gtpin::VREG_TYPE_BYTE, gtpin::VREG_TYPE_WORD, gtpin::VREG_TYPE_DWORD, gtpin::VREG_TYPE_QWORD, gtpin::VREG_TYPE_OWORD, gtpin::VREG_TYPE_HWORD, gtpin::VREG_TYPE_DHWORD, gtpin::VREG_TYPE_PTR, gtpin::VREG_TYPE_GRF_REG }
| Type of the virtual register. More...
enum | gtpin::VREG_FLAG { gtpin::VREG_FLAG_NONE = 0, gtpin::VREG_FLAG_BUFFER_ADDR = 0x1, gtpin::VREG_FLAG_COUNTER = 0x2, gtpin::VREG_FLAG_SCRATCH = 0x4, gtpin::VREG_FLAG_MSG_ADDR = 0x8, gtpin::VREG_FLAG_MSG_DATA = 0x10 }
| Vreg flags; can be combined to specify multiple boolean properties of the virtual register. More...

## Detailed Description

A group of interfaces that allow tools to define virtual registers and control the register allocation policy

GTPin performs register allocation as a part of the compilation process that generates binary code for analysis. The Register Allocator is responsible for mapping tool-specific variables in the form of virtual registers into appropriate physical registers, or to the per-thread memory slots.
Interfaces, included in this group, provide methods for defining virtual registers and controlling the register allocation policy.

## Enumeration Type Documentation

enum gtpin::VREG_FLAG

Vreg flags; can be combined to specify multiple boolean properties of the virtual register.

Enumerator:

  VREG_FLAG_NONE | "nothing special" flag
  VREG_FLAG_BUFFER_ADDR | Deprecated (ignored) flag.
  VREG_FLAG_COUNTER | Counter register - zero-initialized on entry to the kernel.
  VREG_FLAG_SCRATCH | Scratch register - dead on entry to instrumentation procedure. < This flag is a hint that enables more effective liveness analysis.
  VREG_FLAG_MSG_ADDR | Indicates message address payload register. Used as a register allocation hint.
  VREG_FLAG_MSG_DATA | Indicates message data payload register. Used as a register allocation hint.

enum gtpin::VREG_TYPE

Type of the virtual register.

Enumerator:

  VREG_TYPE_BYTE | 1-byte general purpose virtual register
  VREG_TYPE_WORD | 2-byte general purpose virtual register
  VREG_TYPE_DWORD | 4-byte general purpose virtual register
  VREG_TYPE_QWORD | 8-byte general purpose virtual register
  VREG_TYPE_OWORD | 16-byte general purpose virtual register
  VREG_TYPE_HWORD | 32-byte general purpose virtual register
  VREG_TYPE_DHWORD | 64-byte general purpose virtual register
  VREG_TYPE_PTR | Virtual register capable of holding memory pointer in the current configuration.
  VREG_TYPE_GRF_REG | Virtual register capable of holding full GRF register in the current configuration.

All Data Structures Functions Variables Typedefs Enumerations Enumerator

      Copyright (C) 2013-2025 Intel Corporation

      SPDX-License-Identifier: MIT