GCC Middle and Back End API Reference
|
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< cinfo > | info |
unsigned long | force_no_side_effects |
bool | gimple |
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.
Analyze captures in S.
References as_a(), simplify::capture_max, i, simplify::kind, simplify::MATCH, simplify::match, expr::operation, expr::ops, and simplify::result.
void capture_info::walk_c_expr | ( | c_expr * | e | ) |
Look for captures in the C expr E.
References c_expr::capture_ids, c_expr::code, fatal_at(), hash_map< KeyId, Value, Traits >::get(), get_operator(), i, is_a(), NULL, verbose, and warning_at().
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().
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.
unsigned long capture_info::force_no_side_effects |
Referenced by compare_op(), and dt_simplify::gen_1().
bool capture_info::gimple |
Referenced by compare_op(), dt_simplify::gen_1(), and capture::gen_transform().