[llvm] r241513 - WebAssembly: add some TODO

JF Bastien jfb at google.com
Mon Jul 6 16:18:21 PDT 2015


Yes in both cases. We're still exploring things in this design space,
though. The main place where we care about irreducible control flow is in
interpreter loops, and we'd like to make sure these can also be efficient.

On Mon, Jul 6, 2015 at 4:12 PM, Rafael EspĂ­ndola <rafael.espindola at gmail.com
> wrote:

> Out of curiosity, why does Webassembly require structured control flow? To
> make it easier to lower to js? Is that something you want to change in the
> future?
> On Jul 6, 2015 5:44 PM, "JF Bastien" <jfb at google.com> wrote:
>
>> Author: jfb
>> Date: Mon Jul  6 16:41:59 2015
>> New Revision: 241513
>>
>> URL: http://llvm.org/viewvc/llvm-project?rev=241513&view=rev
>> Log:
>> WebAssembly: add some TODO
>>
>> Reviewers: sunfish
>>
>> Subscribers: llvm-commits, jfb
>>
>> Differential Revision: http://reviews.llvm.org/D10971
>>
>> Modified:
>>     llvm/trunk/lib/Target/WebAssembly/README.txt
>>
>> Modified: llvm/trunk/lib/Target/WebAssembly/README.txt
>> URL:
>> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/WebAssembly/README.txt?rev=241513&r1=241512&r2=241513&view=diff
>>
>> ==============================================================================
>> --- llvm/trunk/lib/Target/WebAssembly/README.txt (original)
>> +++ llvm/trunk/lib/Target/WebAssembly/README.txt Mon Jul  6 16:41:59 2015
>> @@ -12,4 +12,15 @@ binary encoding of WebAssembly itself:
>>    * https://github.com/WebAssembly/design/blob/master/AstSemantics.md
>>    * https://github.com/WebAssembly/design/blob/master/BinaryEncoding.md
>>
>> +Interesting work that remains to be done:
>> +* Write a pass to restructurize irreducible control flow. This needs to
>> be done
>> +  before register allocation to be efficient, because it may duplicate
>> basic
>> +  blocks and WebAssembly performs register allocation at a whole-function
>> +  level. Note that LLVM's GPU code has such a pass, but it linearizes
>> control
>> +  flow (e.g. both sides of branches execute and are masked) which is
>> undesirable
>> +  for WebAssembly.
>> +* Basic relooper to expose control flow as an AST.
>> +* Figure out how to properly use MC for virtual ISAs. This may require
>> some
>> +  refactoring of MC.
>> +
>>
>>  //===---------------------------------------------------------------------===//
>>
>>
>> _______________________________________________
>> llvm-commits mailing list
>> llvm-commits at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150706/6141c575/attachment.html>


More information about the llvm-commits mailing list