ReactOS 0.4.17-dev-934-g091855f
vsir_cfg_structure Struct Reference
Collaboration diagram for vsir_cfg_structure:

Public Types

enum  vsir_cfg_structure_type { STRUCTURE_TYPE_BLOCK , STRUCTURE_TYPE_LOOP , STRUCTURE_TYPE_SELECTION , STRUCTURE_TYPE_JUMP }
 

Public Attributes

enum vsir_cfg_structure::vsir_cfg_structure_type type
 
union {
   struct vsir_block *   block
 
   struct vsir_cfg_structure_loop {
      struct vsir_cfg_structure_list   body
 
      unsigned   idx
 
      bool   needs_trampoline
 
      struct vsir_cfg_structure *   outer_loop
 
   }   loop
 
   struct vsir_cfg_structure_selection {
      struct vkd3d_shader_src_param *   condition
 
      struct vsir_cfg_structure_list   if_body
 
      struct vsir_cfg_structure_list   else_body
 
      bool   invert_condition
 
   }   selection
 
   struct vsir_cfg_structure_jump {
enum  vsir_cfg_jump_type { JUMP_NONE , JUMP_BREAK , JUMP_CONTINUE , JUMP_RET }
 
      enum vsir_cfg_structure:: { ... } ::vsir_cfg_structure_jump::vsir_cfg_jump_type   type
 
      unsigned int   target
 
      struct vkd3d_shader_src_param *   condition
 
      bool   invert_condition
 
      bool   needs_launcher
 
   }   jump
 
} u
 

Detailed Description

Definition at line 3642 of file ir.c.

Member Enumeration Documentation

◆ vsir_cfg_structure_type

Enumerator
STRUCTURE_TYPE_BLOCK 
STRUCTURE_TYPE_LOOP 
STRUCTURE_TYPE_SELECTION 
STRUCTURE_TYPE_JUMP 

Definition at line 3644 of file ir.c.

3645 {
3646 /* Execute a block of the original VSIR program. */
3648 /* Execute a loop, which is identified by an index. */
3650 /* Execute a selection construct. */
3652 /* Execute a `return' or a (possibly) multilevel `break' or
3653 * `continue', targeting a loop by its index. If `condition'
3654 * is non-NULL, then the jump is conditional (this is
3655 * currently not allowed for `return'). */
3657 } type;
@ STRUCTURE_TYPE_LOOP
Definition: ir.c:3649
@ STRUCTURE_TYPE_SELECTION
Definition: ir.c:3651
@ STRUCTURE_TYPE_BLOCK
Definition: ir.c:3647
@ STRUCTURE_TYPE_JUMP
Definition: ir.c:3656
enum vsir_cfg_structure::vsir_cfg_structure_type type

Member Data Documentation

◆ block

struct vsir_block* vsir_cfg_structure::block

◆ body

struct vsir_cfg_structure_list vsir_cfg_structure::body

Definition at line 3663 of file ir.c.

◆ condition

struct vkd3d_shader_src_param* vsir_cfg_structure::condition

Definition at line 3670 of file ir.c.

◆ else_body

struct vsir_cfg_structure_list vsir_cfg_structure::else_body

Definition at line 3672 of file ir.c.

◆ idx

unsigned vsir_cfg_structure::idx

Definition at line 3664 of file ir.c.

◆ if_body

struct vsir_cfg_structure_list vsir_cfg_structure::if_body

Definition at line 3671 of file ir.c.

◆ invert_condition

bool vsir_cfg_structure::invert_condition

Definition at line 3673 of file ir.c.

Referenced by vsir_cfg_build_structured_program().

◆ 

◆ 

◆ needs_launcher

bool vsir_cfg_structure::needs_launcher

Definition at line 3689 of file ir.c.

◆ needs_trampoline

bool vsir_cfg_structure::needs_trampoline

Definition at line 3665 of file ir.c.

◆ outer_loop

struct vsir_cfg_structure* vsir_cfg_structure::outer_loop

Definition at line 3666 of file ir.c.

◆ 

◆ target

unsigned int vsir_cfg_structure::target

Definition at line 3686 of file ir.c.

Referenced by vsir_cfg_remove_trailing_continue().

◆ type [1/2]

◆  [2/2]

enum { ... } ::vsir_cfg_structure_jump::vsir_cfg_jump_type vsir_cfg_structure::type

◆ 


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