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: