diff mbox

[Committed] Mark *.omp_data_i as non-trapping

Message ID 55A389AD.5010203@mentor.com
State New
Headers show

Commit Message

Tom de Vries July 13, 2015, 9:49 a.m. UTC
[ was: Re: [gomp4, committed] Handle nested loops in kernels regions ]

On 13/07/15 10:36, Jakub Jelinek wrote:
> On Mon, Jul 13, 2015 at 10:19:56AM +0200, Thomas Schwinge wrote:
>>> We rely on pass_lim to move the *.omp_data_i loads out of the loop nest.
>>> For the test-case, pass_lim was managing to move the load out of the
>>> inner loop, but not the outer loop, because the load was classified as
>>> 'MOVE_PRESERVE_EXECUTION'. By marking the *.omp_data_i load
>>> non-trapping, it's now classified as 'MOVE_POSSIBLE', and moved out of
>>> the loop nest.
>>
>> Should this go into trunk already?  (Jakub?)
>
> I think so.
>

I already bootstrapped and regtested (on x86_64) the patch on top of trunk.

Committed to trunk.

Thanks,
- Tom
diff mbox

Patch

Mark *.omp_data_i as non-trapping

2015-07-12  Tom de Vries  <tom@codesourcery.com>

	* omp-low.c (build_receiver_ref): Mark *.omp_data_i as non-trapping.
---
 gcc/omp-low.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/gcc/omp-low.c b/gcc/omp-low.c
index 22848a0..3135606 100644
--- a/gcc/omp-low.c
+++ b/gcc/omp-low.c
@@ -1127,6 +1127,7 @@  build_receiver_ref (tree var, bool by_ref, omp_context *ctx)
     field = x;
 
   x = build_simple_mem_ref (ctx->receiver_decl);
+  TREE_THIS_NOTRAP (x) = 1;
   x = omp_build_component_ref (x, field);
   if (by_ref)
     x = build_simple_mem_ref (x);
-- 
1.9.1