[llvm-bugs] [Bug 39544] simple-loop-unswitch is too aggressive in unswitching leading to compile-time issues

via llvm-bugs llvm-bugs at lists.llvm.org
Mon Jul 1 13:44:31 PDT 2019


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

Fedor Sergeev <fedor.v.sergeev at gmail.com> changed:

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

--- Comment #5 from Fedor Sergeev <fedor.v.sergeev at gmail.com> ---
(In reply to Vivek Pandya from comment #4)
> This seems to be fixed. I am not able to repro.

Yep fixed by:

commit 2e3e224e715eeb85ca9640e19ce14cd0bd4f3f6b
Author: Fedor Sergeev <fedor.sergeev at azul.com>
Date:   Fri Nov 16 21:16:43 2018 +0000

    [SimpleLoopUnswitch] adding cost multiplier to cap exponential unswitch
with

    We need to control exponential behavior of loop-unswitch so we do not get
    run-away compilation.

    Suggested solution is to introduce a multiplier for an unswitch cost that
    makes cost prohibitive as soon as there are too many candidates and too
    many sibling loops (meaning we have already started duplicating loops
    by unswitching).

    It does solve the currently known problem with compile-time degradation
    (PR 39544).

    Tests are built on top of a recently implemented CHECK-COUNT-<num>
    FileCheck directives.

    Reviewed By: chandlerc, mkazantsev
    Differential Revision: https://reviews.llvm.org/D54223

    llvm-svn: 347097

-- 
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/20190701/2bc37b99/attachment.html>


More information about the llvm-bugs mailing list