GCC Middle and Back End API Reference
|
Go to the source code of this file.
Functions | |
tree | fold_const_aggregate_ref_1 (tree, tree(*)(tree)) |
tree | fold_const_aggregate_ref (tree) |
tree | gimple_fold_stmt_to_constant_1 (gimple, tree(*)(tree)) |
tree | gimple_fold_stmt_to_constant (gimple, tree(*)(tree)) |
Return the tree representing the element referenced by T if T is an ARRAY_REF or COMPONENT_REF into constant aggregates valuezing SSA names using VALUEIZE. Return NULL_TREE otherwise.
References array_ref_element_size(), array_ref_low_bound(), build_zero_cst(), double_int::fits_shwi(), fold_const_aggregate_ref_1(), fold_ctor_reference(), fold_read_from_constant_string(), get_base_constructor(), get_ref_base_and_extent(), get_symbol_constant_value(), host_integerp(), HOST_WIDE_INT, offset, tcc_declaration, and double_int::to_shwi().
Referenced by fold_const_aggregate_ref(), fold_const_aggregate_ref_1(), and gimple_fold_stmt_to_constant_1().
Fold STMT to a constant using VALUEIZE to valueize SSA names. Returns NULL_TREE if folding to a constant is not possible, otherwise returns a constant according to is_gimple_min_invariant.
Fold STMT to a constant using VALUEIZE to valueize SSA names. Either NULL_TREE, a simplified but non-constant or a constant is returned. ??? This should go into a gimple-fold-inline.h file to be eventually privatized with the single valueize function used in the various TUs to avoid the indirect function call overhead.
References build_call_array_loc(), build_fold_addr_expr_loc(), build_invariant_address(), decl_address_invariant_p(), fold_binary_loc(), fold_call_expr(), fold_const_aggregate_ref_1(), fold_ternary_loc(), fold_unary_ignore_overflow_loc(), fold_unary_loc(), get_addr_base_and_unit_offset_1(), get_gimple_rhs_class(), get_symbol_constant_value(), gimple_assign_lhs(), gimple_assign_rhs1(), gimple_assign_rhs2(), gimple_assign_rhs3(), gimple_assign_rhs_code(), GIMPLE_BINARY_RHS, gimple_call_arg(), gimple_call_fn(), gimple_call_internal_p(), gimple_call_num_args(), gimple_call_return_type(), gimple_expr_type(), gimple_location(), GIMPLE_SINGLE_RHS, GIMPLE_TERNARY_RHS, GIMPLE_UNARY_RHS, HOST_WIDE_INT, is_gimple_min_invariant(), offset, tcc_declaration, tcc_reference, and unshare_expr().
Referenced by ccp_fold(), gimple_fold_stmt_to_constant(), and try_to_simplify().