https://bugs.llvm.org/show_bug.cgi?id=34356
Bug ID: 34356
Summary: Microsoft mangling takes forever with large, deeply
nested templates
Product: clang
Version: trunk
Hardware: PC
OS: All
Status: NEW
Severity: enhancement
Priority: P
Component: C++
Assignee: unassignedclangb...@nondot.org
Reporter: george.burgess...@gmail.com
CC: dgre...@apple.com, llvm-bugs@lists.llvm.org
Split from https://bugs.llvm.org/show_bug.cgi?id=29160, in hopes of making a
more targeted bug.
To reproduce, compile the test-case from said bug with:
$ clang -target i686-windows -fms-compatibility -fmsc-version=1700 tc.cpp
-DCHUNKS=N
(for values of N >= 15).
Looks like, as we approach -DCHUNKS=42, we're building up more and more massive
(>100MB) strings so we can potentially discard them and use a backreference
instead. (In particular, we do this in the `isTemplate()` branch in
MicrosoftCXXNameMangler::mangleUnqualifiedName). Blindly caching these sped up
execution time substantially (DCHUNKS=42 ran in ~5 minutes, instead of 35), but
also made clang use 21GB of RAM. This doesn't seem ideal.
I thought 100MB strings sounded large, but when I asked clang to -ast-dump the
program, I killed it after 2 hours and >200GB of output. So...
--
You are receiving this mail because:
You are on the CC list for the bug.
_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs