Changes between Version 76 and Version 77 of Next-GenOpenMPTransformation


Ignore:
Timestamp:
11/19/21 14:12:26 (4 years ago)
Author:
wuwenhao
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Next-GenOpenMPTransformation

    v76 v77  
    77= General Ideas of Omp Transformation =
    88
    9 1. At a right mover (e.g. lock, enter_critical), we do yield and push.
    10 2. At a left mover (e.g., unlock, exit_critical), we do check and then clean (pop).
     91. At a right mover (e.g. lock, enter_critical, enter_atomic), we do yield and push.
     102. At a left mover (e.g., unlock, exit_critical, exit_atomic), we do check and then clean (pop).
    1111    (Note that it only clean whats in between a pair of right mover and left mover.)
    12123. A barrier is transformed as: barrier() ; $check_data_race(); $track_clean(); barrier();
     
    826826{{{
    827827int $x_read$0;
     828$yield(); // Yield on entering an atomic construct
    828829$track{ // Will not collect this read on x for checking data race
    829   $x_read = x;
     830  $x_read$0 = x;
    830831}
    831832v = $x_read$0;
     833// Check data race and clean R/W sets of this thread.
     834$check_data_race(&rs, &ws, nthreads, tid);
     835$track_clean();
     836rs[tid] = $mem_empty();
     837ws[tid] = $mem_empty();
    832838}}}
    833839