accumulo-notifications mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Christopher Tubbs (JIRA)" <>
Subject [jira] [Commented] (ACCUMULO-2762) Use better compiler optimizations by default for native maps
Date Thu, 01 May 2014 16:44:15 GMT


Christopher Tubbs commented on ACCUMULO-2762:

I don't know which optimizations are available on all other platforms/compilers/environments,
but on gcc 4.4.7 on CentOS, the difference between -O2 and -O3 are that -O3 includes -O2 optimizations,
plus {{-fgcse-after-reload -finline-functions -fipa-cp-clone -fpredictive-commoning -ftree-vectorize

On gcc 4.8.2 on Fedora 19 and 20, -O3 also includes {{-ftree-loop-distribute-patterns -ftree-partial-pre

In both cases, -O4 and higher are just aliases for -O3. I assume it's the same for other versions
of gcc in other environments as well, so I can't tell if the suggestion to use -O4 or -O5
was a serious one. As far as I know, in general, the tradeoffs for enabling these optimizations
are compile time and final library size. Since our native code is small, neither of those
are very concerning, and we should enable as many optimizations as are available, unless there's
a specific reason to exclude some.

(gcc 4.8.2 offers a lot more optimizations with -O2 than does 4.4.7 with -O2, so the larger
difference is probably the compiler version used to build the native libraries, than the difference
betwen -O2 and -O3 in a given version.)

> Use better compiler optimizations by default for native maps
> ------------------------------------------------------------
>                 Key: ACCUMULO-2762
>                 URL:
>             Project: Accumulo
>          Issue Type: Improvement
>          Components: native
>    Affects Versions: 1.6.0
>            Reporter: Christopher Tubbs
>            Priority: Minor
>              Labels: newbie
>             Fix For: 1.6.1, 1.7.0
> [A comment|]
on ACCUMULO-2749 identified improved performance with better compiler optimizations for native
maps (-O3 instead of -O2).
> The native shared library is small, and enabling these additional optimizations will
not result in a significantly slower build, so I don't see any reason why we should not enable
better optimizations by default in the Makefile, if we can identify them.

This message was sent by Atlassian JIRA

View raw message