Compilation doesn't finish when building with clang 4.0.0 (was: [llvm-dev] [cfe-dev] [4.0.0 Release] Release Candidate 2 source and binaries available)

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.

Best regards,
Martin

[1]
commit ecefac9053b75242fffb5f71d0714200a619f50c
Author: Vitaly Buka <vitalybuka@google.com>

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. :slight_smile:

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

Hi Martin,

Did you have any progress with creduce?

Thanks,
Hans