Changes between Version 76 and Version 77 of Next-GenOpenMPTransformation
- Timestamp:
- 11/19/21 14:12:26 (4 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
Next-GenOpenMPTransformation
v76 v77 7 7 = General Ideas of Omp Transformation = 8 8 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).9 1. At a right mover (e.g. lock, enter_critical, enter_atomic), we do yield and push. 10 2. At a left mover (e.g., unlock, exit_critical, exit_atomic), we do check and then clean (pop). 11 11 (Note that it only clean whats in between a pair of right mover and left mover.) 12 12 3. A barrier is transformed as: barrier() ; $check_data_race(); $track_clean(); barrier(); … … 826 826 {{{ 827 827 int $x_read$0; 828 $yield(); // Yield on entering an atomic construct 828 829 $track{ // Will not collect this read on x for checking data race 829 $x_read = x;830 $x_read$0 = x; 830 831 } 831 832 v = $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(); 836 rs[tid] = $mem_empty(); 837 ws[tid] = $mem_empty(); 832 838 }}} 833 839
