This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

ppc PREDICATE_CODES (any_operand)


hi david.

in debugging daniel egger's problem, i noticed that altivec was
completely broken on mainline.

your patch of:

	2002-03-12  David Edelsohn  <edelsohn@gnu.org>

        * config/rs6000/rs6000.h (PREDICATE_CODES): Add any_operand and
        zero_constant.

caused the *set_vrsave_internal pattern never to match because 
genrecog.c, through a very twisty maze, concluded that any_operand
and *set_vrsave_internal could never be both true
(maybe_both_true*).

this is because any_operand can be used as a parallel (see
*return_and_restore_fpregs_di), but the predicate does not reflect so.

you probably didn't catch this because the only match_parallel following
*return_and_restore_fpregs_di is *set_vrsave_internal ;-)

applied the following patch to mainline as obvious.

cheers

2002-03-18  Aldy Hernandez  <aldyh@redhat.com>
 
	* config/rs6000/rs6000.h (PREDICATE_CODES): Add PARALLEL to
	any_operand.

Index: config/rs6000/rs6000.h
===================================================================
RCS file: /cvs/uberbaum/gcc/config/rs6000/rs6000.h,v
retrieving revision 1.195
diff -c -p -r1.195 rs6000.h
*** rs6000.h	2002/03/13 16:57:47	1.195
--- rs6000.h	2002/03/18 04:18:28
*************** extern char rs6000_reg_names[][8];	/* re
*** 2730,2736 ****
  
  #define PREDICATE_CODES							   \
    {"any_operand", {CONST_INT, CONST_DOUBLE, CONST, SYMBOL_REF,		   \
! 		   LABEL_REF, SUBREG, REG, MEM}},			   \
    {"zero_constant", {CONST_INT, CONST_DOUBLE, CONST, SYMBOL_REF,	   \
  		    LABEL_REF, SUBREG, REG, MEM}},			   \
    {"short_cint_operand", {CONST_INT}},					   \
--- 2730,2736 ----
  
  #define PREDICATE_CODES							   \
    {"any_operand", {CONST_INT, CONST_DOUBLE, CONST, SYMBOL_REF,		   \
! 		   LABEL_REF, SUBREG, REG, MEM, PARALLEL}},		   \
    {"zero_constant", {CONST_INT, CONST_DOUBLE, CONST, SYMBOL_REF,	   \
  		    LABEL_REF, SUBREG, REG, MEM}},			   \
    {"short_cint_operand", {CONST_INT}},					   \


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]