[llvm-dev] Enabling EarlyCSE w/ MemorySSA by default

Daniel Berlin via llvm-dev llvm-dev at lists.llvm.org
Wed Jun 28 17:33:42 PDT 2017


To try to explain this:
Originally, gvnhoist was enabled by default.
When that was happening, doing earlycse w/memoryssa  would not have
resulted in any meaningful slowdown in ctmark because they were next to
each other in the pipeline, and both updated memoryssa.

Once gvnhoist was disabled again, now this appears as if it is a regression.

(and it is, just not from "the plan of record", just from "the current
state").

IE At the time it had been decided that gvnhoist was worth the X% compile
time cost.  using  MemorySSA in EarlyCSE did not have any overhead above
that.  Now that GVNHoist is disabled again, ....

The percentages above are what one can expect to pay to use MemorySSA in
the compiler.
We actually make all the percentages back (and then some) when NewGVN is on
and GVN is off, and you can expect compile time to decrease as more things
are moved to be MemorySSA based.  In fact, had EarlyCSE used Memdep, i'm
sure it'd be a compile time win already.

But previously, it used a simple O(1) store tracking scheme.
So the above is the cost of "building MemorySSA at all".



On Wed, Jun 28, 2017 at 5:26 PM, Mikhail Zolotukhin via llvm-dev <
llvm-dev at lists.llvm.org> wrote:

> Our bots detected the following compile-time slowdowns between r306475 and
> r306478 (I'd suspect that r306477 is causing it).
>
> *O3/LTO:*
> CTMark/lencod/lencod 2.3%
> CTMark/tramp3d-v4/tramp3d-v4 2.1%
> CTMark/SPASS/SPASS 1.8%
> CTMark/sqlite3/sqlite3 1.6%
> CTMark/ClamAV/clamscan 1.3%
> CTMark/mafft/pairlocalalign 0.9%
> CTMark/kimwitu++/kc 0.9%
> CTMark/Bullet/bullet 0.9%
> CTMark/7zip/7zip-benchmark 0.8%
>
> *Os:*
> CTMark/SPASS/SPASS 1.2%
> CTMark/tramp3d-v4/tramp3d-v4 1.1%
> CTMark/sqlite3/sqlite3 0.9%
>
> Thanks,
> Michael
>
> On Jun 28, 2017, at 2:40 PM, Gerolf Hoflehner via llvm-dev <
> llvm-dev at lists.llvm.org> wrote:
>
> Can you share you compile-time and memory footprint  measurements at least
> for CTMark? For a new pass/feature it would be great to share this with the
> community before you commit. Or did I miss them?
>
>
> Thanks
> Gerolf
>
>
> On Jun 27, 2017, at 3:26 PM, Geoff Berry via llvm-dev <
> llvm-dev at lists.llvm.org> wrote:
>
> EarlyCSE w/ MemorySSA has been enabled by default as of r306477
>
>
> On 6/19/2017 2:42 PM, Geoff Berry via llvm-dev wrote:
>
> Sounds good to me.
>
>
> On 6/19/2017 2:27 PM, Davide Italiano via llvm-dev wrote:
>
> On Mon, Jun 19, 2017 at 11:22 AM, Nemanja Ivanovic via llvm-dev
> <llvm-dev at lists.llvm.org> wrote:
>
> For what it's worth, I just ran this on PowerPC and a double bootstrap with
> lit and lnt tests passes everything.
>
> I fixed the only bug that has been reported (there were others, but
> turned out to be issues in other passes).
> Zhendong, did you find anything else? If not, maybe let's wait another
> week to give people another chance to test and then decide whether
> to flip the switch.
>
> --
> Davide
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>
>
>
> --
> Geoff Berry
> Employee of Qualcomm Datacenter Technologies, Inc.
> Qualcomm Datacenter Technologies, Inc. as an affiliate of Qualcomm
> Technologies, Inc.  Qualcomm Technologies, Inc. is a member of the Code
> Aurora Forum, a Linux Foundation Collaborative Project.
>
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>
>
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>
>
>
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20170628/e8a0191d/attachment.html>


More information about the llvm-dev mailing list