[LLVMbugs] [Bug 20154] New: LLVM fails to inline/clone recursive function, leading to 3x slowdown compared to gcc

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Sat Jun 28 03:53:35 PDT 2014


http://llvm.org/bugs/show_bug.cgi?id=20154

            Bug ID: 20154
           Summary: LLVM fails to inline/clone recursive function, leading
                    to 3x slowdown compared to gcc
           Product: libraries
           Version: trunk
          Hardware: PC
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P
         Component: Interprocedural Optimizations
          Assignee: unassignedbugs at nondot.org
          Reporter: rdivacky at freebsd.org
                CC: llvmbugs at cs.uiuc.edu
    Classification: Unclassified

Created attachment 12716
  --> http://llvm.org/bugs/attachment.cgi?id=12716&action=edit
test case

The attached (big test case) when compiled with trunk clang doesnt have
cpu_search() function inlined (or cloned?) into its callers even when marked
always_inline.

This is because the function is (indirectly) recursive. When compiling the same
file with gcc49, the cpu_search function is inlined.

This file is implementation of scheduler from FreeBSD and as reported
(https://kib.kiev.ua/kib/pgsql_perf.pdf) inlining it results in massive
improvement in performance (25% -> 8%).

-- 
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/20140628/11c1b764/attachment.html>


More information about the llvm-bugs mailing list