Commit 02108bb5 by Martin Jambor Committed by Martin Jambor

[hsa] Fail in presence of atomic operations in private segment

2016-02-26  Martin Jambor  <mjambor@suse.cz>

	* hsa-gen.c (gen_hsa_ternary_atomic_for_builtin): Fail in presence of
	atomic operations in private segment.

From-SVN: r233748
parent 6b2cd37b
2016-02-26 Martin Jambor <mjambor@suse.cz> 2016-02-26 Martin Jambor <mjambor@suse.cz>
* hsa-gen.c (gen_hsa_ternary_atomic_for_builtin): Fail in presence of
atomic operations in private segment.
2016-02-26 Martin Jambor <mjambor@suse.cz>
* omp-low.c (grid_find_ungridifiable_statement): Store problematic * omp-low.c (grid_find_ungridifiable_statement): Store problematic
statements to wi->info. Also disallow omp simd constructs. statements to wi->info. Also disallow omp simd constructs.
(grid_target_follows_gridifiable_pattern): Use wi.info to dump reason (grid_target_follows_gridifiable_pattern): Use wi.info to dump reason
......
...@@ -4557,8 +4557,13 @@ gen_hsa_ternary_atomic_for_builtin (bool ret_orig, ...@@ -4557,8 +4557,13 @@ gen_hsa_ternary_atomic_for_builtin (bool ret_orig,
hsa_op_address *addr; hsa_op_address *addr;
addr = get_address_from_value (gimple_call_arg (stmt, 0), hbb); addr = get_address_from_value (gimple_call_arg (stmt, 0), hbb);
/* TODO: Warn if addr has private segment, because the finalizer will not if (addr->m_symbol && addr->m_symbol->m_segment == BRIG_SEGMENT_PRIVATE)
accept that (and it does not make much sense). */ {
HSA_SORRY_AT (gimple_location (stmt),
"HSA does not implement atomic operations in private "
"segment");
return;
}
hsa_op_base *op = hsa_reg_or_immed_for_gimple_op (gimple_call_arg (stmt, 1), hsa_op_base *op = hsa_reg_or_immed_for_gimple_op (gimple_call_arg (stmt, 1),
hbb); hbb);
......
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