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]

Re: A new patch for floating point conditional mov on PPo




  In message <199806100253.WAA14356@jwlab.FEITH.COM>you write:
  > 1) What prevents gcc from accidently matching the fcmov test / compare
  >    insns by adding a clobber to an existing compare insn?  There's a note
  >    in md.texi about the combiner adding / deleting clobber expressions
  >    as necessary.
Yes, the compiler will add clobbers if doing so makes a pattern
match.  Thus we can not depend on the existance of a clobber to
distinguish between two patterns that can be created by combine.


  > 2) In output_int_test_compare_fcmov you have:
  > 
  >      if (CONSTANT_P (operands[0]) || GET_CODE (operands[1]) == MEM)
  >        output = reverse;
  >      else
  >        output = normal;
  > 
  >   a) I believe that the patterns require operand 0 to be a
  >      nonimmediate_operand in which case how can CONSTANT_P
  >      ever be true?
I've run into a couple cases where reload doesn't check predicates
and blindly allows invalid RTL for a predicate.

However, I think these cases are internal to reload and are fixed
up before reload finishes.

One thought would be to abort for these cases that we think can
not happen.  That way if they do happen we'll know about them
intead of silently generating incorrect code.

jeff


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