nvptx: do not assume that crtl->is_leaf is unset
authorAlexander Monakov <amonakov@gcc.gnu.org>
Wed, 21 Dec 2016 14:20:09 +0000 (17:20 +0300)
committerAlexander Monakov <amonakov@gcc.gnu.org>
Wed, 21 Dec 2016 14:20:09 +0000 (17:20 +0300)
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
gcc/config/nvptx/nvptx.c

index bd41f389d227ebaead379a867a8c1e0cd883d556..81d2165d8f91bbca19151b793abc2f2576ebecc7 100644 (file)
@@ -1,6 +1,12 @@
-2016-12-22  Andrew Pinski  <apinski@cavium.com>
+2016-12-21  Alexander Monakov  <amonakov@ispras.ru>
 
-        * 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  <apinski@cavium.com>
+
+       * 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  <james.greenhalghj@arm.com>
index 17fe5518a86847c2842a3dacc63290405f8d54b1..b3f025f4e35856a5b51595602d16924c35abdbde 100644 (file)
@@ -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);