GCC Middle and Back End API Reference
expr Struct Reference
Inheritance diagram for expr:
Collaboration diagram for expr:

Public Types

enum  op_type {
  OP_PREDICATE , OP_EXPR , OP_CAPTURE , OP_C_EXPR ,
  OP_IF , OP_WITH
}

Public Member Functions

 expr (id_base *operation_, location_t loc, bool is_commutative_=false)
 expr (expr *e)
void append_op (operand *op)
void gen_transform (FILE *f, int, const char *, bool, int, const char *, capture_info *, dt_operand **=0, int=0, const char *=nullptr) override

Data Fields

id_baseoperation
vec< operand * > ops
const char * expr_type
bool is_commutative
bool is_generic
bool force_single_use
bool force_leaf
bool match_phi
unsigned char opt_grp
rtx expr
hashval_t hash
unsigned int bitmap_index
struct occravail_occr
enum op_type type
location_t location

Detailed Description

An operand that constitutes an expression. Expressions include function calls and user-defined predicate invocations.
We need to keep a hash table of expressions. The table entries are of type 'struct expr', and for each expression there is a single linked list of occurrences.
Expression elements in the hash table.

Member Enumeration Documentation

◆ op_type

enum operand::op_type
inherited
Enumerator
OP_PREDICATE 
OP_EXPR 
OP_CAPTURE 
OP_C_EXPR 
OP_IF 
OP_WITH 

Constructor & Destructor Documentation

◆ expr() [1/2]

expr::expr ( id_base * operation_,
location_t loc,
bool is_commutative_ = false )
inline

◆ expr() [2/2]

Member Function Documentation

◆ append_op()

void expr::append_op ( operand * op)
inline

References operand::operand(), and ops.

◆ gen_transform()

void expr::gen_transform ( FILE * f,
int indent,
const char * dest,
bool gimple,
int depth,
const char * in_type,
capture_info * cinfo,
dt_operand ** indexes = 0,
int = 0,
const char * in_place = nullptr )
overridevirtual

Field Documentation

◆ avail_occr

◆ bitmap_index

◆ expr

◆ expr_type

const char* expr::expr_type

Referenced by expr(), expr(), and gen_transform().

◆ force_leaf

bool expr::force_leaf

Referenced by expr(), expr(), and gen_transform().

◆ force_single_use

bool expr::force_single_use

Referenced by expr(), and expr().

◆ hash

◆ is_commutative

bool expr::is_commutative

Referenced by expr(), and expr().

◆ is_generic

bool expr::is_generic

Referenced by cmp_operand(), expr(), and expr().

◆ location

◆ match_phi

bool expr::match_phi

Referenced by cmp_operand(), expr(), and expr().

◆ operation

id_base* expr::operation

◆ ops

◆ opt_grp

unsigned char expr::opt_grp

Referenced by expr(), and expr().

◆ type


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