From: Zack Weinberg Date: Fri, 13 Aug 2004 06:36:21 +0000 (+0000) Subject: genrecog.c (add_to_sequence): When processing a MATCH_PARALLEL... X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=47d2cee50d64825872e97186da5a683dcabb5943;p=gcc.git genrecog.c (add_to_sequence): When processing a MATCH_PARALLEL... * genrecog.c (add_to_sequence): When processing a MATCH_PARALLEL, if pred->singleton != PARALLEL, issue a warning and pretend it was. Also issue a warning for any predicate we don't know about. From-SVN: r85933 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 68fcc19e67e..44b45aadad0 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2004-08-12 Zack Weinberg + + * genrecog.c (add_to_sequence): When processing a MATCH_PARALLEL, + if pred->singleton != PARALLEL, issue a warning and pretend it was. + Also issue a warning for any predicate we don't know about. + 2004-08-12 Richard Henderson * config/i386/i386.c (internal_label_prefix): Export. @@ -5,9 +11,9 @@ ix86_decompose_address, maybe_get_pool_constant, ix86_fp_compare_code_to_integer, ix86_fp_comparison_codes, memory_address_length): Export. - (any_fp_register_operand, fp_register_operand, + (any_fp_register_operand, fp_register_operand, register_and_not_any_fp_reg_operand, register_and_not_fp_reg_operand, - x86_64_general_operand, x86_64_szext_general_operand, + x86_64_general_operand, x86_64_szext_general_operand, x86_64_nonmemory_operand, x86_64_movabs_operand, x86_64_szext_nonmemory_operand, x86_64_immediate_operand, x86_64_zext_immediate_operand, const_int_1_31_operand, @@ -23,10 +29,10 @@ index_register_operand, q_regs_operand, flags_reg_operand, non_q_regs_operand, zero_extended_scalar_load_operand, vector_move_operand, no_seg_address_operand, sse_comparison_operator, - ix86_comparison_operator, ix86_carry_flag_operator, + ix86_comparison_operator, ix86_carry_flag_operator, fcmov_comparison_operator, promotable_binary_operator, cmp_fp_expander_operand, ext_register_operand, binary_fp_operator, - mult_operator, div_operator, arith_or_logical_operator, + mult_operator, div_operator, arith_or_logical_operator, memory_displacement_operand, cmpsi_operand, long_memory_operand, aligned_operand): Move to predicates.md as define_predicates. (tls_symbolic_operand_1): Remove. @@ -66,7 +72,7 @@ (dbx_debug_hooks): Use new begin prologue hook. (dbxout_function_end): Emit N_ENSYM. * stab.def (N_BNSYM, N_ENSYM): Define and document these two new stabs. - + 2004-08-12 Janis Johnson * config/rs6000/altivec.h (vec_dst): Fix C++ functions whose first diff --git a/gcc/genrecog.c b/gcc/genrecog.c index f3c052c4fbe..c1d559ffe74 100644 --- a/gcc/genrecog.c +++ b/gcc/genrecog.c @@ -974,8 +974,18 @@ add_to_sequence (rtx pattern, struct decision_head *last, const char *position, { test->u.pred.data = pred; allows_const_int = pred->codes[CONST_INT]; - code = pred->singleton; + if (was_code == MATCH_PARALLEL + && pred->singleton != PARALLEL) + message_with_line (pattern_lineno, + "predicate '%s' used in match_parallel " + "does not allow only PARALLEL", pred->name); + else + code = pred->singleton; } + else + message_with_line (pattern_lineno, + "warning: unknown predicate '%s' in '%s' expression", + pred_name, GET_RTX_NAME (was_code)); } /* Can't enforce a mode if we allow const_int. */