GCC Middle and Back End API Reference
vinsn_def Struct Reference

#include <sel-sched-ir.h>

Collaboration diagram for vinsn_def:

Data Fields

rtx insn_rtx
struct idata_def id
unsigned hash
unsigned hash_rtx
int count
int cost
bool may_trap_p

Detailed Description

Type to represent all needed info to emit an insn. This is a virtual equivalent of the insn. Every insn in the stream has an associated vinsn. This is used to reduce memory consumption basing on the fact that many insns don't change through the scheduler.

vinsn can be either normal or unique. Normal vinsn is the one, that can be cloned multiple times and typically corresponds to normal instruction.

Unique vinsn derivates from CALL, ASM, JUMP (for a while) and other unusual stuff. Such a vinsn is described by its INSN field, which is a reference to the original instruction.


Field Documentation

int vinsn_def::cost

Cached cost of the vinsn. To access it please use vinsn_cost ().

int vinsn_def::count

Smart pointer counter.

unsigned vinsn_def::hash

Hash of vinsn. It is computed either from pattern or from rhs using hash_rtx. It is not placed in ID for faster compares.

unsigned vinsn_def::hash_rtx

Hash of the insn_rtx pattern.

struct idata_def vinsn_def::id

Its description.

rtx vinsn_def::insn_rtx

Associated insn.

bool vinsn_def::may_trap_p

Mark insns that may trap so we don't move them through jumps.


The documentation for this struct was generated from the following file: