[hsa] Exclude parallel outlines from hsa_callable_functions_p
authorMartin Jambor <mjambor@suse.cz>
Fri, 2 Dec 2016 14:42:15 +0000 (15:42 +0100)
committerMartin Jambor <jamborm@gcc.gnu.org>
Fri, 2 Dec 2016 14:42:15 +0000 (15:42 +0100)
2016-12-09  Martin Jambor  <mjambor@suse.cz>

* hsa.c (hsa_callable_function_p): Return false for artificial
functions.

From-SVN: r243184

gcc/ChangeLog
gcc/hsa.c

index 92501fc213cc314ca05a8c1f425ff6ae901aa687..0880c8408d4964379ae9301a09fe79b98932bc06 100644 (file)
@@ -1,3 +1,8 @@
+2016-12-09  Martin Jambor  <mjambor@suse.cz>
+
+       * hsa.c (hsa_callable_function_p): Return false for artificial
+       functions.
+
 2016-12-02  James Greenhalgh  <james.greenhalgh@arm.com>
 
        PR rtl-optimization/78561
index f881e781742e20c926fb7f2f968ec718f2c1011c..31e3252f2fb98525c2749c5790be4a569e1cbca3 100644 (file)
--- a/gcc/hsa.c
+++ b/gcc/hsa.c
@@ -90,7 +90,10 @@ bool
 hsa_callable_function_p (tree fndecl)
 {
   return (lookup_attribute ("omp declare target", DECL_ATTRIBUTES (fndecl))
-         && !lookup_attribute ("oacc function", DECL_ATTRIBUTES (fndecl)));
+         && !lookup_attribute ("oacc function", DECL_ATTRIBUTES (fndecl))
+         /* At this point, this is enough to identify clones for
+            parallel, which for HSA would need to be kernels anyway.  */
+         && !DECL_ARTIFICIAL (fndecl));
 }
 
 /* Allocate HSA structures that are are used when dealing with different