On 06.11.2016 09:17, Hugh Perkins via cfe-users wrote: > Hi, > > I have a project to rewrite llvm output as OpenCL, > https://github.com/hughperkins/cuda-on-cl It currently contains lots of > conditional branches, whch become /labels / gotos in the output OpenCL. > > What options are available to 'reloop' this to contain strictly > ifs/fors/switches/breaks/whiles ? > > Hugh
There is the Böhm-Jacopini theorem, but that will probably be inefficient, but necessary as a last resort for cases that can't behandled otherwise. The cbe (https://github.com/Ace17/llvm-cbe) seems to actually put some loop constructs in the output, even though teh actual control flow is done via goto, but the loop constructs there might help as a starting point. Philipp _______________________________________________ cfe-users mailing list cfe-users@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-users