diff options
author | Alexander Monakov <amonakov@ispras.ru> | 2017-01-20 17:38:18 +0300 |
---|---|---|
committer | Alexander Monakov <amonakov@gcc.gnu.org> | 2017-01-20 17:38:18 +0300 |
commit | 4cea8675697151f7e8c5b30259da9ac0971ab070 (patch) | |
tree | 28137ac51f0fa414324d86543939710c9a791a93 /gcc/tree-inline.c | |
parent | 8b0fb476f24b0cec64502a2c2bed16a0c429f8d2 (diff) | |
download | gcc-4cea8675697151f7e8c5b30259da9ac0971ab070.zip gcc-4cea8675697151f7e8c5b30259da9ac0971ab070.tar.gz gcc-4cea8675697151f7e8c5b30259da9ac0971ab070.tar.bz2 |
omp-offload: use PROP_gimple_lomp_dev
* omp-expand.c (expand_omp_simd): Clear PROP_gimple_lomp_dev regardless
of safelen status.
* omp-offload.c (pass_omp_device_lower::gate): Use PROP_gimple_lomp_dev.
* passes.c (dump_properties): Handle PROP_gimple_lomp_dev.
* tree-inline.c (expand_call_inline): Propagate PROP_gimple_lomp_dev.
From-SVN: r244717
Diffstat (limited to 'gcc/tree-inline.c')
-rw-r--r-- | gcc/tree-inline.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/gcc/tree-inline.c b/gcc/tree-inline.c index ac72039..42055bd 100644 --- a/gcc/tree-inline.c +++ b/gcc/tree-inline.c @@ -4413,6 +4413,7 @@ expand_call_inline (basic_block bb, gimple *stmt, copy_body_data *id) bool purge_dead_abnormal_edges; gcall *call_stmt; unsigned int i; + unsigned int prop_mask, src_properties; /* The gimplifier uses input_location in too many places, such as internal_get_tmp_var (). */ @@ -4617,11 +4618,13 @@ expand_call_inline (basic_block bb, gimple *stmt, copy_body_data *id) id->call_stmt = stmt; /* If the src function contains an IFN_VA_ARG, then so will the dst - function after inlining. */ - if ((id->src_cfun->curr_properties & PROP_gimple_lva) == 0) + function after inlining. Likewise for IFN_GOMP_USE_SIMT. */ + prop_mask = PROP_gimple_lva | PROP_gimple_lomp_dev; + src_properties = id->src_cfun->curr_properties & prop_mask; + if (src_properties != prop_mask) { struct function *dst_cfun = DECL_STRUCT_FUNCTION (id->dst_fn); - dst_cfun->curr_properties &= ~PROP_gimple_lva; + dst_cfun->curr_properties &= src_properties | ~prop_mask; } gcc_assert (!id->src_cfun->after_inlining); |