{"push_id":634332523,"size":1,"distinct_size":1,"ref":"refs/heads/master","head":"5a78b2480c717cbbf91747a154e3556b40ae8b76","before":"b4a4ab9bdd5e0cbb32588aee51a2c67f9a18373f","commits":[{"sha":"5a78b2480c717cbbf91747a154e3556b40ae8b76","author":{"email":"42c60520d22f29ab4fbd7ab379c1a50cda8b3dfa@hotmail.com","name":"Alexey Bataev"},"message":"[OPENMP] Codegen for 'lastprivate' clause in 'for' directive.\n\n#pragma omp for lastprivate(<var>)\nfor (i = a; i < b; ++b)\n  <BODY>;\n\nThis construct is translated into something like:\n\n  <last_iter> = alloca i32\n  <lastprivate_var> = alloca <type>\n  <last_iter> = 0\n  ; No initializer for simple variables or a default constructor is called for objects.\n  ; For arrays perform element by element initialization by the call of the default constructor.\n  ...\n  OMP_FOR_START(...,<last_iter>, ..); sets <last_iter> to 1 if this is the last iteration.\n  <BODY>\n  ...\n  OMP_FOR_END\n  if (<last_iter> != 0) {\n    <var> = <lastprivate_var> ; Update original variable with the lastprivate value.\n  }\n  call __kmpc_cancel_barrier() ; an implicit barrier to avoid possible data race.\n\nDifferential Revision: http://reviews.llvm.org/D8658\n\n\ngit-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@235074 91177308-0d34-0410-b5e6-96231b3b80d8","distinct":true,"url":"https://api.github.com/repos/llvm-mirror/clang/commits/5a78b2480c717cbbf91747a154e3556b40ae8b76"}]}