[cfe-dev] Can we make libcxx headers more modular for faster compilation?

Yaron Keren yaron.keren at gmail.com
Wed Oct 2 12:53:13 PDT 2013


Hi Howard,

I'm a no expert on library design... the motivaton for message (I should
have detailed to make it clearer) come from a user's perspective:

I noticed both clang and gcc compile a trivial program three times slower
when including iostream from libcxx compared with including iostream from
stdlibc++ . I checked all combinations, posted full details in my previous
message.

The version I'm using the the latest obtained from the svn. I wasn't aware
there is a different windows port of it? anyhow, the latest svn compiles
without special problems using clang from the builds site and the MingW
4.8.1 C library and header files. I also built the required libcxxabi. the
build seems to work but I have not tested it yet, especially if exceptions
work at all.

The changes I made in both builds were flags only, added
-Wno-deprecated-register -Wno-ignored-attributes to avoid warnings on MingW
headers, -target i686-pc-mingw32 since clang.exe was compiled on VC and
assume this is the target, -nostdinc -Ilibcxxdirectory
-Imingwincludedirectory to use the libcxx header files.

I did not submit a patch yet since it's not clear to me what is the
"official" way to build libcxx. There are both CMakeLists (which do not
have the correct flags for compiling) and a buildit shell script. I used
the shell script.

Yaron



2013/10/2 G M <gmisocpp at gmail.com>

> Hi Yaron
>
> I think there is a need to do some work on libcxx's modularity / layering,
> but I wouldn't focus on doing it for speed purposes myself.
>
> I think it needs a look at more for correctness and porting issues than
> anything else.
>
> I suspect (and I may be wrong) that you are basing some of your libcxx's
> modularity thoughts on the Windows port?
>
> The Windows port is still in a bit of a hacked state. libcxx on
> Apple/Linux is not.
>
> You might want check your modularity thoughts on apple/Linux to get
> something more representative of the real libcxx? If you think there is
> real modularity issues in the apple/Linux version I'd be more surprised.
>
> I have been thinking about this problem and have some ideas to reduce and
> refactor the windows include situation now I understand it a little better.
> There's two or 3 places where we can improve the situation for Windows.
> But again in my mind the emphasis is more on correctness and layering than
> speed.
>
> Once my outstanding patches are committed I'll fix some of this up.
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20131002/d22857b0/attachment.html>


More information about the cfe-dev mailing list