OpenMP loop cloning for SIMT execution
commit57f872be401c90ad6f4d6290f327caf532861ea3
authoramonakov <amonakov@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 22 Nov 2016 17:56:43 +0000 (22 17:56 +0000)
committeramonakov <amonakov@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 22 Nov 2016 17:56:43 +0000 (22 17:56 +0000)
treead30078ae6fda7ac5d0a41f3cf4bd216096ef5ac
parentb2450df097a5396643fa683b2a27387571f3346f
OpenMP loop cloning for SIMT execution

2016-11-22  Jakub Jelinek  <jakub@redhat.com>
            Alexander Monakov  <amonakov@ispras.ru>

* internal-fn.c (expand_GOMP_USE_SIMT): New function.
* tree.c (omp_clause_num_ops): OMP_CLAUSE__SIMT_ has 0 operands.
(omp_clause_code_name): Add _simt_ name.
(walk_tree_1): Handle OMP_CLAUSE__SIMT_.
* tree-core.h (enum omp_clause_code): Add OMP_CLAUSE__SIMT_.
* omp-low.c (scan_sharing_clauses): Handle OMP_CLAUSE__SIMT_.
(scan_omp_simd): New function.
(scan_omp_1_stmt): Use it in target regions if needed.
(omp_max_vf): Don't max with omp_max_simt_vf.
(lower_rec_simd_input_clauses): Use omp_max_simt_vf if
OMP_CLAUSE__SIMT_ is present.
(lower_rec_input_clauses): Compute maybe_simt from presence of
OMP_CLAUSE__SIMT_.
(lower_lastprivate_clauses): Likewise.
(expand_omp_simd): Likewise.
(execute_omp_device_lower): Lower IFN_GOMP_USE_SIMT.
* internal-fn.def (GOMP_USE_SIMT): New internal function.
* tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE__SIMT_.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@242714 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/internal-fn.c
gcc/internal-fn.def
gcc/omp-low.c
gcc/tree-core.h
gcc/tree-pretty-print.c
gcc/tree.c