NoQ accepted this revision. NoQ added a comment. This revision is now accepted and ready to land.
Looks great! Thank you for improving the tests even further. ================ Comment at: test/Analysis/cfg-openmp.cpp:58-67 #pragma omp distribute simd for (int i = 0; i < 10; ++i) argc = x; -// CHECK-NEXT: 27: x -// CHECK-NEXT: 28: [B1.27] (ImplicitCastExpr, LValueToRValue, int) -// CHECK-NEXT: 29: argc -// CHECK-NEXT: 30: [B1.29] = [B1.28] -// CHECK-NEXT: 31: #pragma omp for +// CHECK-NEXT: [[#FOR:]]: x +// CHECK-NEXT: [[#FOR+1]]: [B1.[[#FOR]]] (ImplicitCastExpr, LValueToRValue, int) +// CHECK-NEXT: [[#FOR+2]]: argc +// CHECK-NEXT: [[#FOR+3]]: [B1.[[#FOR+2]]] = [B1.[[#FOR+1]]] ---------------- I'm slowly updating my mental model of these CFGs. Just to confirm my understanding - tried the following example: ```lang=c++ int main(int argc, char **argv) { int x = 0; #pragma omp for for (int i = 0; i < 10; ++i) x += argv[i]; } ``` The CFG was as follows: ``` 1: 0 2: int x = 0; 3: x 4: argv 5: [B1.4] (ImplicitCastExpr, LValueToRValue, char **) 6: i 7: [B1.6] (ImplicitCastExpr, LValueToRValue, int) 8: [B1.5][[B1.7]] 9: [B1.8] (ImplicitCastExpr, LValueToRValue, char *) 10: [B1.3] += [B1.9] 11: #pragma omp for for (int i = 0; i < 10; ++i) [B1.10]; ``` Do i understand correctly that `[B1.10]` aka `argv[0]` is going to act like an "argument" to the "outlined function" and then it's going to be re-used (as if it was a "local" "variable") on subsequent iterations of the loop (i.e., assigned values `argv[1]`, ..., `argv[9]`)? I.e., the "function" is going to be responsible for computing `argv[1]` and storing it in the "parameter variable" (`OMPCapturedExprDecl` which is a sub-class of `VarDecl`) that previously contained `argv[0]`, but it's not responsible for computing `argv[0]` itself, right? Repository: rC Clang CHANGES SINCE LAST ACTION https://reviews.llvm.org/D64646/new/ https://reviews.llvm.org/D64646 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits