Changes between Version 56 and Version 57 of Next-GenOpenMPTransformation


Ignore:
Timestamp:
11/06/19 16:27:52 (7 years ago)
Author:
wuwenhao
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Next-GenOpenMPTransformation

    v56 v57  
    627627{{{
    628628// global
    629 $_omp_helper_semaphore critical_ = $omp_helper_semaphore_create(0);
    630 $_omp_helper_semaphore critical_x = $omp_helper_semaphore_create(0);
     629$omp_helper_semaphore critical_ = $omp_helper_semaphore_create(0);
     630$omp_helper_semaphore critical_x = $omp_helper_semaphore_create(0);
    631631...
    632632
     
    634634  $yield();
    635635  $check_data_race(team);
    636   $_omp_helper_semaphore_p(critical_, 0);
    637   $_omp_helper_semaphore_v(critical_, 1);
     636  $omp_helper_semaphore_p(critical_, 0);
     637  $omp_helper_semaphore_v(critical_, 1);
    638638  translate(BLOCK_A)
    639   $_omp_helper_semaphore_v(critical_, 0);
     639  $omp_helper_semaphore_v(critical_, 0);
    640640
    641641// critical block with specified name
    642642  $yield();
    643643  $check_data_race(team);
    644   $_omp_helper_semaphore_p(critical_x, 0);
    645   $_omp_helper_semaphore_v(critical_x, 1);
     644  $omp_helper_semaphore_p(critical_x, 0);
     645  $omp_helper_semaphore_v(critical_x, 1);
    646646  translate(BLOCK_X);
    647   $_omp_helper_semaphore_v(critical_x, 0);
     647  $omp_helper_semaphore_v(critical_x, 0);
    648648}}}
    649649
     
    683683{{{
    684684// global helper lock
    685 $_omp_helper_semaphore ordered_0 = $omp_helper_semaphore_create(INIT);
     685$omp_helper_semaphore ordered_0 = $omp_helper_semaphore_create(INIT);
    686686  ..
    687687{
     
    694694    $yield();
    695695    // wait until hs0->val is i
    696     $_omp_helper_semaphore_p(ordered_0, i);
     696    $omp_helper_semaphore_p(ordered_0, i);
    697697    translate(BLOCK);
    698698    // set hs0->val as i_next
    699     $_omp_helper_semaphore_v(ordered_0, i_next);
     699    $omp_helper_semaphore_v(ordered_0, i_next);
    700700    ...
    701701  }
     
    719719{{{
    720720// global helper semaphore
    721 $_omp_helper_semaphore ordered_0 = $omp_helper_semaphore_create(I_INIT);
    722 $_omp_helper_semaphore ordered_1 = $omp_helper_semaphore_create(J_INIT);
    723 $_omp_helper_semaphore ordered_2 = $omp_helper_semaphore_create(K_INIT);
     721$omp_helper_semaphore ordered_0 = $omp_helper_semaphore_create(I_INIT);
     722$omp_helper_semaphore ordered_1 = $omp_helper_semaphore_create(J_INIT);
     723$omp_helper_semaphore ordered_2 = $omp_helper_semaphore_create(K_INIT);
    724724
    725725{ // worksharing-loop construct (begin)
     
    731731
    732732    $yield();
    733     $_omp_helper_semaphore_p(ordered_0, i);
    734     $_omp_helper_semaphore_p(ordered_1, j);
    735     $_omp_helper_semaphore_p(ordered_2, k);
     733    $omp_helper_semaphore_p(ordered_0, i);
     734    $omp_helper_semaphore_p(ordered_1, j);
     735    $omp_helper_semaphore_p(ordered_2, k);
    736736
    737737    translate(BLOCK);
    738738
    739739    if (k_next < K_COND) // hit bound
    740       $_omp_helper_semaphore_v(ordered_2, k_next); // incr
     740      $omp_helper_semaphore_v(ordered_2, k_next); // incr
    741741    else {
    742       $_omp_helper_semaphore_v(ordered_2, K_INIT); // reset
     742      $omp_helper_semaphore_v(ordered_2, K_INIT); // reset
    743743
    744744      if (j_next < J_COND) // hit bound
    745         $_omp_helper_semaphore_v(ordered_1, j_next); // incr
     745        $omp_helper_semaphore_v(ordered_1, j_next); // incr
    746746      else {
    747         $_omp_helper_semaphore_v(ordered_1, J_INIT); // reset
    748 
    749         $_omp_helper_semaphore_v(ordered_0, i_next); // incr
     747        $omp_helper_semaphore_v(ordered_1, J_INIT); // reset
     748
     749        $omp_helper_semaphore_v(ordered_0, i_next); // incr
    750750      }
    751751    }