[LLVMbugs] [Bug 21201] Missed optimization by O2? LTO generates faster code than O2 with all code visible
bugzilla-daemon at llvm.org
bugzilla-daemon at llvm.org
Fri Oct 17 12:19:54 PDT 2014
http://llvm.org/bugs/show_bug.cgi?id=21201
Bruno Cardoso Lopes <bruno.cardoso at gmail.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |RESOLVED
CC| |bruno.cardoso at gmail.com
Resolution|--- |INVALID
--- Comment #2 from Bruno Cardoso Lopes <bruno.cardoso at gmail.com> ---
These are the results reproduced locally:
flags, random, in-order
tot-O2, 722.680343, 358.527025
tot-O2-flto, 586.257256, 113.567324
tot-O3, 763.348347, 340.556150
The only passes that run in LTO but do not run during non-LTO compilation are:
-argpromotion, -globalsmodref-aa, -internalize
The great responsible for the speedup is indeed -internalize, results bellow:
== llvm-lto flags, random, in-order
default, 551.342890, 107.292317
-nointernalize, 811.046609, 420.142491
-nointernalize-noglobalsmodref-aa, 779.453545, 412.112992
-nointernalize-noglobalsmodref-aa-noargsprom, 825.279406, 433.142810
Note that removing other passes yield the same results - the values above
all fall within the -nointernalize SD. With -internalize we're able to
delete 20 functions and inline 43, see the stats:
== llvm-lto
64 internalize - Number of functions internalized
50 internalize - Number of global vars internalized
150 inline - Number of caller-callers analyzed
20 inline - Number of functions deleted because all callers found
43 inline - Number of functions inlined
== llvm-lto without -internalize
no internalize results
no inline results
That said, nothing to do here anymore since -internalize only makes sense
during LTO.
--
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/20141017/dc3bf741/attachment.html>
More information about the llvm-bugs
mailing list