[webkit-reviews] review denied: [Bug 201703] Elide unnecessary moves in Air O0 : [Attachment 378609] Patch

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Wed Sep 11 18:38:54 PDT 2019


Saam Barati <sbarati at apple.com> has denied Keith Miller
<keith_miller at apple.com>'s request for review:
Bug 201703: Elide unnecessary moves in Air O0
https://bugs.webkit.org/show_bug.cgi?id=201703

Attachment 378609: Patch

https://bugs.webkit.org/attachment.cgi?id=378609&action=review




--- Comment #5 from Saam Barati <sbarati at apple.com> ---
Comment on attachment 378609
  --> https://bugs.webkit.org/attachment.cgi?id=378609
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=378609&action=review

> Source/JavaScriptCore/ChangeLog:3
> +	   Elide unnecessary moves in Air O0

can you explain how?

> Source/JavaScriptCore/ChangeLog:10
> +	   temp dies as it could be reused again later. Thus every temp,

no comma

>
Source/JavaScriptCore/b3/air/AirAllocateRegistersAndStackAndGenerateCode.cpp:45
1
> +		   if (source.isAddr() || dest.isAddr())
> +		       return false;

why not just check that both are tmps? Seems easier to follow. Does your code
not break for constants if you don't do this, since you unconditionally access
reg() below

>
Source/JavaScriptCore/b3/air/AirAllocateRegistersAndStackAndGenerateCode.cpp:45
6
> +		   Reg reg = source.isTmp() ? m_map[source.tmp()].reg :
source.reg();

this seems wrong. you access source.reg() if it's not a tmp. However, you can't
be a reg if you're not a tmp

>
Source/JavaScriptCore/b3/air/AirAllocateRegistersAndStackAndGenerateCode.cpp:45
8
> +		   if (!reg)
> +		       return false;

probably not super important, but we could just say dest is now spilled at this
location instead of returning false

>
Source/JavaScriptCore/b3/air/AirAllocateRegistersAndStackAndGenerateCode.cpp:47
8
> +	       if (elideMove())
> +		   goto elided;

This is wrong. For example, you now get clobberedRegisters incorrectly now


More information about the webkit-reviews mailing list