genrecog.c (add_to_sequence): When processing a MATCH_PARALLEL...
authorZack Weinberg <zack@gcc.gnu.org>
Fri, 13 Aug 2004 06:36:21 +0000 (06:36 +0000)
committerZack Weinberg <zack@gcc.gnu.org>
Fri, 13 Aug 2004 06:36:21 +0000 (06:36 +0000)
* 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

gcc/ChangeLog
gcc/genrecog.c

index 68fcc19e67eac1bdd56fcdd48430102d6b9dae44..44b45aadad09e4da8918e8390f7e7725bed5bc5a 100644 (file)
@@ -1,3 +1,9 @@
+2004-08-12  Zack Weinberg  <zack@codesourcery.com>
+
+       * 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  <rth@redhat.com>
 
        * 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,
        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  <janis187@us.ibm.com>
 
        * config/rs6000/altivec.h (vec_dst): Fix C++ functions whose first
index f3c052c4fbef22a78a17d7ae4e6413c57111d0c8..c1d559ffe74287d782ee5bf40cfbb741b8484c9a 100644 (file)
@@ -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.  */