|
GCC Middle and Back End API Reference
|
#include <expmed.h>

Data Fields | |
| struct mult_cost | cost |
| short | ops |
| enum alg_code | op [MAX_BITS_PER_WORD] |
| char | log [MAX_BITS_PER_WORD] |
This structure records a sequence of operations. `ops' is the number of operations recorded. `cost' is their total cost. The operations are stored in `op' and the corresponding logarithms of the integer coefficients in `log'. These are the operations: alg_zero total := 0; alg_m total := multiplicand; alg_shift total := total * coeff alg_add_t_m2 total := total + multiplicand * coeff; alg_sub_t_m2 total := total - multiplicand * coeff; alg_add_factor total := total * coeff + total; alg_sub_factor total := total * coeff - total; alg_add_t2_m total := total * coeff + multiplicand; alg_sub_t2_m total := total * coeff - multiplicand; The first operand must be either alg_zero or alg_m.
| struct mult_cost algorithm::cost |
Referenced by choose_mult_variant(), expand_expr_real_2(), expmed_mult_highpart(), mult_by_coeff_cost(), and synth_mult().
| char algorithm::log[MAX_BITS_PER_WORD] |
Referenced by expand_mult_const(), expand_vector_mult(), synth_mult(), and vect_synth_mult_by_constant().
| enum alg_code algorithm::op[MAX_BITS_PER_WORD] |
Referenced by expand_mult_const(), expand_vector_divmod(), expand_vector_mult(), expand_vector_operations_1(), extract_high_half(), get_compute_type(), optimize_vector_constructor(), synth_mult(), target_supports_mult_synth_alg(), target_supports_mult_synth_alg(), type_for_widest_vector_mode(), vect_determine_precisions_from_range(), and vect_synth_mult_by_constant().
| short algorithm::ops |
Referenced by expand_expr_real_2(), expand_mult_const(), expand_vector_mult(), synth_mult(), target_supports_mult_synth_alg(), target_supports_mult_synth_alg(), vect_recog_sat_add_pattern(), vect_recog_sat_sub_pattern(), vect_recog_sat_sub_pattern_transform(), vect_recog_sat_trunc_pattern(), and vect_synth_mult_by_constant().