From 40829cb8f55428914e5e548868785b7df86d7c02 Mon Sep 17 00:00:00 2001 From: Alexander Monakov Date: Wed, 21 Dec 2016 17:20:09 +0300 Subject: [PATCH] nvptx: do not assume that crtl->is_leaf is unset PR target/78831 * config/nvptx/nvptx.c (init_softstack_frame): Remove assert. Compute crtl->is_leaf only if unset. Adjust comment. From-SVN: r243855 --- gcc/ChangeLog | 10 ++++++++-- gcc/config/nvptx/nvptx.c | 7 ++++--- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index bd41f389d22..81d2165d8f9 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,6 +1,12 @@ -2016-12-22 Andrew Pinski +2016-12-21 Alexander Monakov - * match.pd (max:c @0 (plus@2 @0 INTEGER_CST@1)): New Pattern. + PR target/78831 + * config/nvptx/nvptx.c (init_softstack_frame): Remove assert. Compute + crtl->is_leaf only if unset. Adjust comment. + +2016-12-21 Andrew Pinski + + * match.pd (max:c @0 (plus@2 @0 INTEGER_CST@1)): New Pattern. (min:c @0 (plus@2 @0 INTEGER_CST@1)) : New Pattern. 2016-12-20 James Greenhalgh diff --git a/gcc/config/nvptx/nvptx.c b/gcc/config/nvptx/nvptx.c index 17fe5518a86..b3f025f4e35 100644 --- a/gcc/config/nvptx/nvptx.c +++ b/gcc/config/nvptx/nvptx.c @@ -1048,9 +1048,10 @@ init_softstack_frame (FILE *file, unsigned alignment, HOST_WIDE_INT size) bits, reg_stack, reg_frame, size); /* Usually 'crtl->is_leaf' is computed during register allocator - initialization, which is not done on NVPTX. Compute it now. */ - gcc_assert (!crtl->is_leaf); - crtl->is_leaf = leaf_function_p (); + initialization (which is not done on NVPTX) or for pressure-sensitive + optimizations. Initialize it here, except if already set. */ + if (!crtl->is_leaf) + crtl->is_leaf = leaf_function_p (); if (!crtl->is_leaf) fprintf (file, "\t\tst.shared.u%d [%s], %s;\n", bits, reg_sspslot, reg_stack); -- 2.30.2