Hi! On Thu, 7 May 2015 11:14:37 +0200, Jakub Jelinek <ja...@redhat.com> wrote: > On Thu, May 07, 2015 at 10:59:01AM +0200, Thomas Schwinge wrote: > > build/genrecog [...]/source-gcc/gcc/common.md > > [...]/source-gcc/gcc/config/nvptx/nvptx.md \ > > insn-conditions.md > tmp-recog.c > > -[...]/source-gcc/gcc/config/nvptx/nvptx.md:1206: warning: operand 0 > > missing mode? > > -[...]/source-gcc/gcc/config/nvptx/nvptx.md:1206: warning: operand 1 > > missing mode? > > > > gcc/config/nvptx/nvptx.md: > > > > 1206 (define_insn "allocate_stack" > > 1207 [(set (match_operand 0 "nvptx_register_operand" "=R") > > 1208 (unspec [(match_operand 1 "nvptx_register_operand" "R")] > > 1209 UNSPEC_ALLOCA))] > > 1210 "" > > 1211 "%.\\tcall (%0), %%alloca, (%1);") > > > > Are these two (former) warnings a) something that should still be > > reported by genrecog, > > Yes.
<http://news.gmane.org/find-root.php?message_id=%3C87twvjtrf4.fsf%40e105548-lin.cambridge.arm.com%3E>. > > and b) something that should be addressed (Bernd)? > > Yes. Supposedly you want :P on both match_operand and unspec too, but > as this serves not just as an insn pattern, but also as expander that > needs to have this particular name, supposedly you want: > > (define_expand "allocate_stack" > [(match_operand 0 "nvptx_register_operand") > (match_operand 1 "nvptx_register_operand")] > "" > { > if (TARGET_ABI64) > emit_insn (gen_allocate_stack_di (operands[0], operands[1])); > else > emit_insn (gen_allocate_stack_si (operands[0], operands[1])); > DONE; > }) > > (define_insn "allocate_stack_<mode>" > [(set (match_operand:P 0 "nvptx_register_operand" "=R") > (unspec:P [(match_operand:P 1 "nvptx_register_operand" "R")] > UNSPEC_ALLOCA))] > "" > "%.\\tcall (%0), %%alloca, (%1);") > > rr so. OK to commit? commit 004e521e8dd1c0236a55e9a69a17cc3333c2a41d Author: Thomas Schwinge <tho...@codesourcery.com> Date: Thu May 7 11:30:26 2015 +0200 [nvptx] Address genrecog warnings 2015-05-21 Jakub Jelinek <ja...@redhat.com> gcc/ * config/nvptx/nvptx.md (allocate_stack): Rename to... (allocate_stack_<mode>): ... this, and add :P on both match_operand and unspec. (allocate_stack): New expander. --- gcc/config/nvptx/nvptx.md | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git gcc/config/nvptx/nvptx.md gcc/config/nvptx/nvptx.md index c30de36..a49786c 100644 --- gcc/config/nvptx/nvptx.md +++ gcc/config/nvptx/nvptx.md @@ -1203,10 +1203,22 @@ sorry ("target cannot support nonlocal goto."); }) -(define_insn "allocate_stack" - [(set (match_operand 0 "nvptx_register_operand" "=R") - (unspec [(match_operand 1 "nvptx_register_operand" "R")] - UNSPEC_ALLOCA))] +(define_expand "allocate_stack" + [(match_operand 0 "nvptx_register_operand") + (match_operand 1 "nvptx_register_operand")] + "" +{ + if (TARGET_ABI64) + emit_insn (gen_allocate_stack_di (operands[0], operands[1])); + else + emit_insn (gen_allocate_stack_si (operands[0], operands[1])); + DONE; +}) + +(define_insn "allocate_stack_<mode>" + [(set (match_operand:P 0 "nvptx_register_operand" "=R") + (unspec:P [(match_operand:P 1 "nvptx_register_operand" "R")] + UNSPEC_ALLOCA))] "" "%.\\tcall (%0), %%alloca, (%1);") > Of course, as even latest Cuda drop doesn't support alloca, this is > quite dubious, perhaps better would be sorry on it. > > BTW, with Cuda 7.0, even printf doesn't work anymore, is that known? I have not yet used that version of CUDA, so don't know about this. :-| Grüße, Thomas
pgpFi4uhk1oJs.pgp
Description: PGP signature