RetroArch
Classes | Public Types | Public Attributes | List of all members
spirv_cross::SPIRBlock Struct Reference

#include <spirv_common.hpp>

Inheritance diagram for spirv_cross::SPIRBlock:
[legend]
Collaboration diagram for spirv_cross::SPIRBlock:
[legend]

Classes

struct  Case
 
struct  Phi
 

Public Types

enum  { type = TypeBlock }
 
enum  Terminator {
  Unknown, Direct, Select, MultiSelect,
  Return, Unreachable, Kill
}
 
enum  Merge { MergeNone, MergeLoop, MergeSelection }
 
enum  Hints {
  HintNone, HintUnroll, HintDontUnroll, HintFlatten,
  HintDontFlatten
}
 
enum  Method { MergeToSelectForLoop, MergeToDirectForLoop, MergeToSelectContinueForLoop }
 
enum  ContinueBlockType {
  ContinueNone, ForLoop, WhileLoop, DoWhileLoop,
  ComplexLoop
}
 
enum  { NoDominator = 0xffffffffu }
 

Public Attributes

Terminator terminator = Unknown
 
Merge merge = MergeNone
 
Hints hint = HintNone
 
uint32_t next_block = 0
 
uint32_t merge_block = 0
 
uint32_t continue_block = 0
 
uint32_t return_value = 0
 
uint32_t condition = 0
 
uint32_t true_block = 0
 
uint32_t false_block = 0
 
uint32_t default_block = 0
 
std::vector< Instructionops
 
std::vector< Phiphi_variables
 
std::vector< std::pair< uint32_t, uint32_t > > declare_temporary
 
std::vector< std::pair< uint32_t, uint32_t > > potential_declare_temporary
 
std::vector< Casecases
 
bool disable_block_optimization = false
 
bool complex_continue = false
 
uint32_t loop_dominator = 0
 
std::vector< uint32_tdominated_variables
 
std::vector< uint32_tloop_variables
 
std::vector< uint32_tinvalidate_expressions
 
- Public Attributes inherited from spirv_cross::IVariant
uint32_t self = 0
 

Additional Inherited Members

- Public Member Functions inherited from spirv_cross::IVariant
virtual ~IVariant ()=default
 

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
Enumerator
type 

◆ anonymous enum

anonymous enum
Enumerator
NoDominator 

◆ ContinueBlockType

Enumerator
ContinueNone 
ForLoop 
WhileLoop 
DoWhileLoop 
ComplexLoop 

◆ Hints

Enumerator
HintNone 
HintUnroll 
HintDontUnroll 
HintFlatten 
HintDontFlatten 

◆ Merge

Enumerator
MergeNone 
MergeLoop 
MergeSelection 

◆ Method

Enumerator
MergeToSelectForLoop 
MergeToDirectForLoop 
MergeToSelectContinueForLoop 

◆ Terminator

Enumerator
Unknown 
Direct 
Select 
MultiSelect 
Return 
Unreachable 
Kill 

Member Data Documentation

◆ cases

std::vector<Case> spirv_cross::SPIRBlock::cases

◆ complex_continue

bool spirv_cross::SPIRBlock::complex_continue = false

◆ condition

uint32_t spirv_cross::SPIRBlock::condition = 0

◆ continue_block

uint32_t spirv_cross::SPIRBlock::continue_block = 0

◆ declare_temporary

std::vector<std::pair<uint32_t, uint32_t> > spirv_cross::SPIRBlock::declare_temporary

◆ default_block

uint32_t spirv_cross::SPIRBlock::default_block = 0

◆ disable_block_optimization

bool spirv_cross::SPIRBlock::disable_block_optimization = false

◆ dominated_variables

std::vector<uint32_t> spirv_cross::SPIRBlock::dominated_variables

◆ false_block

uint32_t spirv_cross::SPIRBlock::false_block = 0

◆ hint

Hints spirv_cross::SPIRBlock::hint = HintNone

◆ invalidate_expressions

std::vector<uint32_t> spirv_cross::SPIRBlock::invalidate_expressions

◆ loop_dominator

uint32_t spirv_cross::SPIRBlock::loop_dominator = 0

◆ loop_variables

std::vector<uint32_t> spirv_cross::SPIRBlock::loop_variables

◆ merge

Merge spirv_cross::SPIRBlock::merge = MergeNone

◆ merge_block

uint32_t spirv_cross::SPIRBlock::merge_block = 0

◆ next_block

uint32_t spirv_cross::SPIRBlock::next_block = 0

◆ ops

std::vector<Instruction> spirv_cross::SPIRBlock::ops

◆ phi_variables

std::vector<Phi> spirv_cross::SPIRBlock::phi_variables

◆ potential_declare_temporary

std::vector<std::pair<uint32_t, uint32_t> > spirv_cross::SPIRBlock::potential_declare_temporary

◆ return_value

uint32_t spirv_cross::SPIRBlock::return_value = 0

◆ terminator

Terminator spirv_cross::SPIRBlock::terminator = Unknown

◆ true_block

uint32_t spirv_cross::SPIRBlock::true_block = 0

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