GCC Middle and Back End API Reference
idata_def Struct Reference

#include <sel-sched-ir.h>

Collaboration diagram for idata_def:

Data Fields

int type
rtx lhs
rtx rhs
regset reg_sets
regset reg_clobbers
regset reg_uses

Detailed Description

   InstructionData.  Contains information about insn pattern.  

Field Documentation

rtx idata_def::lhs
     If insn is a SET, this is its left hand side.  
regset idata_def::reg_clobbers
regset idata_def::reg_sets
     Registers that are set/used by this insn.  This info is now gathered
     via sched-deps.c.  The downside of this is that we also use live info
     from flow that is accumulated in the basic blocks.  These two infos
     can be slightly inconsistent, hence in the beginning we make a pass
     through CFG and calculating the conservative solution for the info in
     basic blocks.  When this scheduler will be switched to use dataflow,
     this can be unified as df gives us both per basic block and per
     instruction info.  Actually, we don't do that pass and just hope
     for the best.  
regset idata_def::reg_uses
rtx idata_def::rhs
     If insn is a SET, this is its right hand side.  
int idata_def::type
     Type of the insn.
     o CALL_INSN - Call insn
     o JUMP_INSN - Jump insn
     o INSN - INSN that cannot be cloned
     o USE - INSN that can be cloned
     o SET - INSN that can be cloned and separable into lhs and rhs
     o PC - simplejump.  Insns that simply redirect control flow should not
     have any dependencies.  Sched-deps.c, though, might consider them as
     producers or consumers of certain registers.  To avoid that we handle
     dependency for simple jumps ourselves.  

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