[llvm-bugs] [Bug 25782] [ppc] bad code layout causes slower than gcc in 403.gcc

via llvm-bugs llvm-bugs at lists.llvm.org
Tue May 17 20:25:46 PDT 2016


https://llvm.org/bugs/show_bug.cgi?id=25782

cycheng <cycheng at multicorewareinc.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|ASSIGNED                    |RESOLVED
         Resolution|---                         |FIXED

--- Comment #2 from cycheng <cycheng at multicorewareinc.com> ---
Hi Carrot,

Current Machine Block Placement provides a mechanism called "Precise (Loop)
Rotation Cost", it's aimed at this issue, and you can enable it by:
-mllvm -force-precise-rotation-cost=true (after r269267)

Performance data is available here:
(base compile option = -m64 -O3 -mcpu=power8)
http://reviews.llvm.org/D20017#428394

403.gcc got improved a lot.
davidxl plans to enable it by default.

I still saw an optimization opportunity, because his current mechanism will
bypass this pattern:

          entry               
            |                 
------> loop.header (body)    
|97%    /       \             
|      /50%      \50%         
--- latch <--- if.then        
       |
       |3%
   loop.end

And I found libquantum, h264ref can get benefit if we rotate loop top for this
pattern.

Anyway, your issue of 403.gcc is solved by "-force-precise-rotation-cost".

CY

-- 
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20160518/dfb6562d/attachment.html>


More information about the llvm-bugs mailing list