Commit 97ad3aef by Cesar Philippidis Committed by Cesar Philippidis

re PR ipa/78027 (ICE in new_oacc_loop_routine, at omp-low.c:19000)

	PR ipa/78027

	gcc/
	* ipa-icf.c (sem_function::parse): Don't process functions with
	oacc decl attributes, as they may be OpenACC routines.

	gcc/testsuite/
	* c-c++-common/goacc/acc-icf.c: New test.
	* gfortran.dg/goacc/pr78027.f90: New test.

From-SVN: r243488
parent 6bd8a5c7
2016-12-09 Cesar Philippidis <cesar@codesourcery.com>
PR ipa/78027
* ipa-icf.c (sem_function::parse): Don't process functions with
oacc decl attributes, as they may be OpenACC routines.
2016-12-09 David Malcolm <dmalcolm@redhat.com>
* rtl.h (get_mem_attrs): Add "const" qualifier to returned
......@@ -1689,6 +1689,10 @@ sem_function::parse (cgraph_node *node, bitmap_obstack *stack)
if (lookup_attribute_by_prefix ("omp ", DECL_ATTRIBUTES (node->decl)) != NULL)
return NULL;
if (lookup_attribute_by_prefix ("oacc ",
DECL_ATTRIBUTES (node->decl)) != NULL)
return NULL;
/* PR ipa/70306. */
if (DECL_STATIC_CONSTRUCTOR (node->decl)
|| DECL_STATIC_DESTRUCTOR (node->decl))
......
2016-12-09 Cesar Philippidis <cesar@codesourcery.com>
PR ipa/78027
* c-c++-common/goacc/acc-icf.c: New test.
* gfortran.dg/goacc/pr78027.f90: New test.
2015-12-09 Wilco Dijkstra <wdijkstr@arm.com>
PR target/78733
......
/* Ensure that IPA-ICF is disabled on OpenACC routines. */
/* { dg-additional-options "-fopenacc -O2 -fdump-ipa-icf" } */
#pragma acc routine gang
int
routine1 (int n)
{
int i;
#pragma acc loop
for (i = 0; i < n; i++)
;
return n + 1;
}
#pragma acc routine gang
int
routine2 (int n)
{
int i;
#pragma acc loop
for (i = 0; i < n; i++)
;
return n + 1;
}
int
main ()
{
int i;
#pragma acc parallel loop
for (i = 0; i < 8; i++)
;
#pragma acc parallel loop
for (i = 0; i < 8; i++)
;
return 0;
}
/* { dg-final { scan-ipa-dump-times "Not parsed function:" 4 "icf" } } */
/* { dg-final { scan-ipa-dump "Parsed function:main" "icf" } } */
! { dg-additional-options "-fopenmp -O2 -fdump-ipa-icf" }
real function f()
!$omp declare target(f)
f = 1.
!$acc parallel
!$acc loop
do i = 1, 8
end do
!$acc end parallel
!$acc parallel
!$acc loop
do i = 1, 8
end do
!$acc end parallel
end
! { dg-final { scan-ipa-dump "Not parsed function:f_._omp_fn.1" "icf" } }
! { dg-final { scan-ipa-dump "Not parsed function:f_._omp_fn.0" "icf" } }
! { dg-final { scan-ipa-dump "Not parsed function:f_" "icf" } }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment