[WebAssembly] Add Relooper
authorJF Bastien <jfb@google.com>
Sat, 15 Aug 2015 01:23:28 +0000 (01:23 +0000)
committerJF Bastien <jfb@google.com>
Sat, 15 Aug 2015 01:23:28 +0000 (01:23 +0000)
commitc37a088af25be6ff5950d592eca6f6213cd5d0e8
treecfa79d4a402e6274e664558589e1d4b2043e4521
parent6470102728c661adf204d0e361d30faa0a95667f
[WebAssembly] Add Relooper

This is just an initial checkin of an implementation of the Relooper algorithm, in preparation for WebAssembly codegen to utilize. It doesn't do anything yet by itself.

The Relooper algorithm takes an arbitrary control flow graph and generates structured control flow from that, utilizing a helper variable when necessary to handle irreducibility. The WebAssembly backend will be able to use this in order to generate an AST for its binary format.

Author: azakai

Reviewers: jfb, sunfish

Subscribers: jevinskie, arsenm, jroelofs, llvm-commits

Differential revision: http://reviews.llvm.org/D11691

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@245142 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/WebAssembly/CMakeLists.txt
lib/Target/WebAssembly/Relooper.cpp [new file with mode: 0644]
lib/Target/WebAssembly/Relooper.h [new file with mode: 0644]