aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-inline.c
diff options
context:
space:
mode:
authorAlexander Monakov <amonakov@ispras.ru>2017-01-20 17:38:18 +0300
committerAlexander Monakov <amonakov@gcc.gnu.org>2017-01-20 17:38:18 +0300
commit4cea8675697151f7e8c5b30259da9ac0971ab070 (patch)
tree28137ac51f0fa414324d86543939710c9a791a93 /gcc/tree-inline.c
parent8b0fb476f24b0cec64502a2c2bed16a0c429f8d2 (diff)
downloadgcc-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.c9
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);