[cfe-users] How to 'reloop' llvm code into ifs, whiles, fors?

Philipp Klaus Krause via cfe-users cfe-users at lists.llvm.org
Mon Nov 7 12:37:58 PST 2016


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



More information about the cfe-users mailing list