Home My Page Projects Code Snippets Project Openings diderot
Summary Activity Tracker Tasks SCM

SCM Repository

[diderot] Diff of /branches/vis12-cl/src/compiler/cl-target/fragments/cl-update-nobsp.in
ViewVC logotype

Diff of /branches/vis12-cl/src/compiler/cl-target/fragments/cl-update-nobsp.in

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 3162, Sat Mar 28 10:54:25 2015 UTC revision 3163, Sat Mar 28 11:21:09 2015 UTC
# Line 74  Line 74 
74    
75  #define GET_NEXT_STRAND                                                                 \  #define GET_NEXT_STRAND                                                                 \
76                  do {                                                                    \                  do {                                                                    \
                     myMaxNSteps = max(myMaxNSteps, myNSteps);                           \  
77                      if ((myIdx = atomic_inc(&nextAvailStrand)) < maxAvailStrand) {      \                      if ((myIdx = atomic_inc(&nextAvailStrand)) < maxAvailStrand) {      \
78                          @STRAND@_CopyFromGlobal (&myStrand, &state[myIdx]);             \                          @STRAND@_CopyFromGlobal (&myStrand, &state[myIdx]);             \
79                          sts = status[myIdx];                                            \                          sts = DIDEROT_ACTIVE;                                           \
80                          myNSteps = 0;                                                   \                          myNSteps = 0;                                                   \
81                      }                                                                   \                      }                                                                   \
82                      else {                                                              \                      else {                                                              \
# Line 92  Line 91 
91                    // suspend this strand and get another                    // suspend this strand and get another
92                      status[myIdx] = sts;                      status[myIdx] = sts;
93                      @STRAND@_CopyToGlobal (&state[myIdx], &myStrand);                      @STRAND@_CopyToGlobal (&state[myIdx], &myStrand);
94                        myMaxNSteps = max(myMaxNSteps, myNSteps);
95                      GET_NEXT_STRAND;                      GET_NEXT_STRAND;
96                  }                  }
97                  break;                  break;
# Line 100  Line 100 
100                  myDied++;                  myDied++;
101                  status[myIdx] = DIDEROT_DEAD;                  status[myIdx] = DIDEROT_DEAD;
102                // get another strand to execute                // get another strand to execute
103                    myMaxNSteps = max(myMaxNSteps, myNSteps);
104                  GET_NEXT_STRAND;                  GET_NEXT_STRAND;
105                  break;                  break;
106  #endif  #endif
# Line 110  Line 111 
111                  @STRAND@_Stabilize (glob, &myStrand);                  @STRAND@_Stabilize (glob, &myStrand);
112                  @STRAND@_CopyToGlobal (&state[myIdx], &myStrand);                  @STRAND@_CopyToGlobal (&state[myIdx], &myStrand);
113                // get another strand to execute                // get another strand to execute
114                    myMaxNSteps = max(myMaxNSteps, myNSteps);
115                  GET_NEXT_STRAND;                  GET_NEXT_STRAND;
116                  break;                  break;
117                default:                default:
# Line 139  Line 141 
141              }              }
142              barrier (CLK_LOCAL_MEM_FENCE);              barrier (CLK_LOCAL_MEM_FENCE);
143              if (sts == DIDEROT_IDLE) {              if (sts == DIDEROT_IDLE) {
144                // grab another strand to execute                // attempt to grab another strand to execute
145                  GET_NEXT_STRAND;                  if ((myIdx = atomic_inc(&nextAvailStrand)) < maxAvailStrand) {
146                        @STRAND@_CopyFromGlobal (&myStrand, &state[myIdx]);
147                        sts = DIDEROT_ACTIVE;
148                        myNSteps = 0;
149                    }
150              }              }
151          }          }
152    

Legend:
Removed from v.3162  
changed lines
  Added in v.3163

root@smlnj-gforge.cs.uchicago.edu
ViewVC Help
Powered by ViewVC 1.0.0