On 07/13/2017 02:51 AM, Richard Sandiford wrote: > This patch adds asserting as_a <scalar_int_mode> conversions > to contexts in which the input is known to be a scalar integer mode. > > In expand_divmod, op1 is always a scalar_int_mode if > op1_is_constant (but might not be otherwise). > > In expand_binop, the patch reverses a < comparison in order to > avoid splitting a long line. > > gcc/ > 2017-07-13 Richard Sandiford <richard.sandif...@linaro.org> > Alan Hayward <alan.hayw...@arm.com> > David Sherwood <david.sherw...@arm.com> > > * cfgexpand.c (convert_debug_memory_address): Use > as_a <scalar_int_mode>. > * combine.c (expand_compound_operation): Likewise. > (make_extraction): Likewise. > (change_zero_ext): Likewise. > (simplify_comparison): Likewise. > * cse.c (cse_insn): Likewise. > * dwarf2out.c (minmax_loc_descriptor): Likewise. > (mem_loc_descriptor): Likewise. > (loc_descriptor): Likewise. > * expmed.c (synth_mult): Likewise. > (emit_store_flag_1): Likewise. > (expand_divmod): Likewise. Use HWI_COMPUTABLE_MODE_P instead > of a comparison with size. > * expr.c (expand_assignment): Use as_a <scalar_int_mode>. > (reduce_to_bit_field_precision): Likewise. > * function.c (expand_function_end): Likewise. > * internal-fn.c (expand_arith_overflow_result_store): Likewise. > * loop-doloop.c (doloop_modify): Likewise. > * optabs.c (expand_binop): Likewise. > (expand_unop): Likewise. > (expand_copysign_absneg): Likewise. > (prepare_cmp_insn): Likewise. > (maybe_legitimize_operand): Likewise. > * recog.c (const_scalar_int_operand): Likewise. > * rtlanal.c (get_address_mode): Likewise. > * simplify-rtx.c (simplify_unary_operation_1): Likewise. > (simplify_cond_clz_ctz): Likewise. > * tree-nested.c (get_nl_goto_field): Likewise. > * tree.c (build_vector_type_for_mode): Likewise. > * var-tracking.c (use_narrower_mode): Likewise. > > gcc/c-family/ > 2017-07-13 Richard Sandiford <richard.sandif...@linaro.org> > Alan Hayward <alan.hayw...@arm.com> > David Sherwood <david.sherw...@arm.com> > > * c-common.c (c_common_type_for_mode): Use as_a <scalar_int_mode>. > > gcc/lto/ > 2017-07-13 Richard Sandiford <richard.sandif...@linaro.org> > Alan Hayward <alan.hayw...@arm.com> > David Sherwood <david.sherw...@arm.com> > > * lto-lang.c (lto_type_for_mode): Use as_a <scalar_int_mode>. FWIW, I'm moving into more of a spot checking mode for these patches. The transformations themselves are fairly mechanical once you've determined the invariants. I trust your judgment on verifying the invariants :-)
OK. jeff