On Wed, Jun 30, 2021 at 12:50 PM Richard Biener wrote: > > On Wed, Jun 30, 2021 at 10:47 AM Uros Bizjak via Gcc-patches > wrote: > > > > This RFC patch changes the type of predicates to bool. However, some > > of the targets (e.g. x86) use indirect functions to call the > > predicates, so without the local change, the build fails. Putting the > > patch through CI bots should weed out the problems, but I have no > > infrastructure to do it myself. > > I'd say thanks for the work - note building some cc1 crosses should > catch 99% of the fallout (just configure $target-linux/elf and make all-gcc) Thanks for the hint, I have tested the patch on arm-eabi, {x86_64, i386, aarch64, mips, m68k, h8300}-elf and {ppc64le, hppa, s390, ia64, riscv, sh, sparc}-linux. The fallout, fixed by the attached v1 patch, was surprisingly small, so I hope there remains no (otherwise easily fixable) build errors. 2021-07-01 Uroš Bizjak gcc/ * genpreds.c (write_predicate_subfunction): Change the type of written subfunction to bool. (write_one_predicate_function): Change the type of written function to bool. (write_tm_preds_h): Ditto. * recog.h (*insn_operand_predicate_fn): Change the type to bool. * recog.c (general_operand): Change the type to bool. (address_operand): Ditto. (register_operand): Ditto. (pmode_register_operand): Ditto. (scratch_operand): Ditto. (immediate_operand): Ditto. (const_int_operand): Ditto. (const_scalar_int_operand): Ditto. (const_double_operand): Ditto. (nonimmediate_operand): Ditto. (nonmemory_operand): Ditto. (push_operand): Ditto. (pop_operand): Ditto. (memory_operand): Ditto. (indirect_operand): Ditto. (ordered_comparison_operator): Ditto. (comparison_operator): Ditto. * config/i386/i386-expand.c (ix86_expand_sse_cmp): Change the type of indirect predicate function to bool. * config/rs6000/rs6000.c (easy_vector_constant): Change the type to bool. * config/mips/mips-protos.h (m16_based_address_p): Change the type of operand 3 to bool. OK for the trunk? Uros.