On Wed, Mar 22, 2017 at 06:46:33PM +0300, Alexander Monakov wrote: > @@ -1669,6 +1672,93 @@ make_pass_oacc_device_lower (gcc::context *ctxt) > return new pass_oacc_device_lower (ctxt); > } > > + > +
I'd avoid the empty line after ^L. > @@ -1694,6 +1785,20 @@ execute_omp_device_lower () > case IFN_GOMP_USE_SIMT: > rhs = vf == 1 ? integer_zero_node : integer_one_node; > break; > + case IFN_GOMP_SIMT_ENTER: > + rhs = vf == 1 ? gimple_call_arg (stmt, 0) : NULL_TREE; > + goto simtreg_enter_exit; > + case IFN_GOMP_SIMT_ENTER_ALLOC: > + if (vf != 1) > + ompdevlow_adjust_simt_enter (&gsi, ®implify); > + rhs = vf == 1 ? null_pointer_node : NULL_TREE; > + goto simtreg_enter_exit; > + case IFN_GOMP_SIMT_EXIT: > +simtreg_enter_exit: Please align the label below case, instead of start of the line. > + if (vf != 1) > + continue; > + unlink_stmt_vdef (stmt); This is weird. AFAIK unlink_stmt_vdef just replaces the uses of the vdef of that stmt with the vuse, but it still keeps the vdef (and vuse) around on the stmt, typically it is used when you are removing that stmt, but that is not the case here. So why are you doing it and not say removing the vdef? Jakub