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