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

Data Structures

struct  cinfo
 

Public Member Functions

 capture_info (simplify *s, operand *, bool)
 
void walk_match (operand *o, unsigned toplevel_arg, bool, bool)
 
bool walk_result (operand *o, bool, operand *)
 
void walk_c_expr (c_expr *)
 

Data Fields

auto_vec< cinfoinfo
 
unsigned long force_no_side_effects
 
bool gimple
 

Detailed Description

For GENERIC we have to take care of wrapping multiple-used
expressions with side-effects in save_expr and preserve side-effects
of expressions with omit_one_operand.  Analyze captures in
match, result and with expressions and perform early-outs
on the outermost match expression operands for cases we cannot
handle.   

Constructor & Destructor Documentation

◆ capture_info()

capture_info::capture_info ( simplify * s,
operand * result,
bool gimple_ )

Member Function Documentation

◆ walk_c_expr()

void capture_info::walk_c_expr ( c_expr * e)

◆ walk_match()

void capture_info::walk_match ( operand * o,
unsigned toplevel_arg,
bool conditional_p,
bool cond_expr_cond_p )
Analyze captures in the match expression piece O.   

References as_a(), dyn_cast(), fatal_at(), expr::force_single_use, gcc_unreachable, i, is_a(), operand::location, expr::operation, expr::ops, verbose, and warning_at().

◆ walk_result()

bool capture_info::walk_result ( operand * o,
bool conditional_p,
operand * result )
Analyze captures in the result expression piece O.  Return true
if RESULT was visited in one of the children.  Only visit
non-if/with children if they are rooted on RESULT.   

References dyn_cast(), gcc_unreachable, i, is_a(), expr::operation, and expr::ops.

Field Documentation

◆ force_no_side_effects

unsigned long capture_info::force_no_side_effects

Referenced by compare_op(), and dt_simplify::gen_1().

◆ gimple

bool capture_info::gimple

◆ info

auto_vec<cinfo> capture_info::info

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