GCC Middle and Back End API Reference
simplify Class Reference
Collaboration diagram for simplify:

Public Types

enum  simplify_kind { SIMPLIFY , MATCH }

Public Member Functions

 simplify (simplify_kind kind_, unsigned id_, operand *match_, operand *result_, vec< vec< user_id * > > for_vec_, cid_map_t *capture_ids_)

Data Fields

simplify_kind kind
unsigned id
operandmatch
class operandresult
vec< vec< user_id * > > for_vec
vec< std::pair< user_id *, id_base * > > for_subst_vec
cid_map_tcapture_ids
int capture_max

Detailed Description

The main class of a pattern and its transform. This is used to represent both (simplify ...) and (match ...) kinds. The AST duplicates all outer 'if' and 'for' expressions here so each simplify can exist in isolation.

Member Enumeration Documentation

◆ simplify_kind

Enumerator
SIMPLIFY 
MATCH 

Constructor & Destructor Documentation

◆ simplify()

simplify::simplify ( simplify_kind kind_,
unsigned id_,
operand * match_,
operand * result_,
vec< vec< user_id * > > for_vec_,
cid_map_t * capture_ids_ )
inline

Field Documentation

◆ capture_ids

cid_map_t* simplify::capture_ids

Referenced by simplify().

◆ capture_max

int simplify::capture_max

Referenced by simplify().

◆ for_subst_vec

vec<std::pair<user_id *, id_base *> > simplify::for_subst_vec

Referenced by lower_cond(), lower_for(), and simplify().

◆ for_vec

vec<vec<user_id *> > simplify::for_vec

Referenced by simplify().

◆ id

unsigned simplify::id

Referenced by simplify().

◆ kind

simplify_kind simplify::kind

Referenced by simplify().

◆ match

operand* simplify::match

◆ result

class operand* simplify::result

Referenced by simplify().


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