On 12/14/15 08:50, Alexander Monakov wrote:
I have committed this patch to the gomp-nvptx branch.  Bernd, Nathan, I would
appreciate if you could comment on 'define_predicate' changes in nvptx.md.
There are three predicates that start like this:

   if (REG_P (op))
     return !HARD_REGISTER_P (op);
   if (GET_CODE (op) == SUBREG && MEM_P (SUBREG_REG (op)))
     return false;
   if (GET_CODE (op) == SUBREG)
     return false;

For stack adjustments I need to allow operations on the stack pointer.  For
now I've implemented that as a fairly straightforward shortcut, but I guess it
doesn't look very nice.  What is the reason to reject "hard registers" there,
in the first place?  In any case, I'd like your input if you see a better way
to handle it.

just a quick note that moving onto the MD file is on my todo this week.

Also, note that there's either a bug or a cleanup opportunity: the third "if"
statement is clearly more general than the second.

correct, I think there's a bunch of such cleanups.


nathan

Reply via email to