[llvm-dev] Compilation doesn't finish when building with clang 4.0.0 (was: [cfe-dev] [4.0.0 Release] Release Candidate 2 source and binaries available)
Renato Golin via llvm-dev
llvm-dev at lists.llvm.org
Thu Feb 16 07:07:32 PST 2017
On 16 February 2017 at 14:37, Richtarsky, Martin
<martin.richtarsky at sap.com> wrote:
> I could bisect it down to this commit [1].
>
> Looking at the code I'm compiling, it makes sense. There are lots of scopes and in each scope an (inlined) function is called, which has an assert. The assert is implemented by throwing an exception. So lots of unwind information is generated. The change seems to do "more" with this unwind info than previously.
>
> I guess the question then becomes, is this an endless loop or just some exponential increase in compilation time. I've already reduced the file quite a bit and will try to post a reproducer.
Hi Martin,
Thanks, this is great investigative work!
Having a small reproducer creating 22GB objects in memory is a great
way to say it's broken. :)
However, the fact that this hasn't shown in other cases probably means
it's just exponential and your program is huge. So your reduced output
will still very likely be large as well.
To me, that commit doesn't seem like it's doing much, so it probably
have exposed a problem in the actual instrumentation machinery (for
example, not cleaning the vector properly after handling those
instructions).
We should handle this issue in bugzilla, though. When you create the
bug, please make sure you copy Hans, Vitaly and the people copied on
that review (kcc, eugenis).
cheers,
--renato
More information about the llvm-dev
mailing list