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]

Re: [PING] [PATCH] Fix asm X constraint (PR inline-asm/59155)


On 06/06/2016 11:04 AM, Vladimir Makarov wrote:
On 06/06/2016 09:32 AM, Bernd Edlinger wrote:
Ping...

see https://gcc.gnu.org/ml/gcc-patches/2016-05/msg02010.html


Thank you for working on the PR and sorry for the delay with LRA part of
review.

Change in lra-constraints.c is ok for me with the following change.
Instead of just

-          curr_alt[nop] = NO_REGS;
+          curr_alt[nop] = ALL_REGS;
           CLEAR_HARD_REG_SET (curr_alt_set[nop]);

I'd like to see

-          curr_alt[nop] = NO_REGS;
+          curr_alt[nop] = ALL_REGS;
-           CLEAR_HARD_REG_SET (curr_alt_set[nop]);
+             COPY_HARD_REG_SET (curr_alt_set[nop],
reg_class_contents[ALL_REGS]);

Also I don't see /* { dg-do compile } */ in the tests (I don't know what
dejagnu does when there is no any dejagnu actions in the test).
But with the addition '/* { dg-do compile } */' the test pr59155-2.c is
ok for me too.

As for recog.c, I can not approve this as I am not a maintainer of it.
I only can say that the code looks questionable to me.
I think the question on the recog part is a matter of how we choose to interpret what the "X" constraint means.

Does it literally mean accept anything, or accept some subset expressions?

I tend to think the former, which means that things like reg_overlap_mentioned_p or its callers have to be bullet-proofed.

jeff


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