GTPin
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

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.

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