LLD: Move RoundTrip tests behind a flag

Rui Ueyama ruiu at google.com
Wed Mar 19 16:03:08 PDT 2014

The current situation is like this:

1. compile as debug build to get a binary with debug info, asserts enabled,
and super-slow (like 100 times slower than release build), or
2. compile as release build to get a binary with good performance but no
asserts and not-debuggable.

Compiling it as release build wouldn't help us much. We need something
between 1 and 2.

On Wed, Mar 19, 2014 at 3:56 PM, Shankar Easwaran
<shankare at codeaurora.org>wrote:

> On 3/19/2014 5:38 PM, Rui Ueyama wrote:
>> It is proved that RoundTripNative and RoundTripYAML are good harnesses to
>> guarantee there's no information loss when an object is converted to/from
>> native/YAML formats. However, it makes LLD *extremely* slow when linking
>> non-toy programs.
>> If RoundTrip tests are enabled, LLD takes about 10 *minutes* to link
>> itself on my Linux box. My machine is 3.5GHz Xeon. The result of gprof on
>> LLD linking llvm-tblegen shows that 77.8% of time was consumed by
>> RoundTripYAMLPass::perform() and 16.6% by RoundTripNativePass::perform().
>> It means RoundTrip tests are the dominant factor.
>> I couldn't even run LLD linking LLD with profiling enabled because it was
>> too slow that I couldn't wait it to finish.
>> This is not an acceptable performance penalty even for debug build. I
>> think we should move the feature behind a flag and enable it only for tests.
>> Any objections?
> We could use non debug builds isn't it ? Will this not solve the issue ?
> Thanks
> Shankar Easwaran
> --
> Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted
> by the Linux Foundation
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20140319/85608d39/attachment.html>

More information about the llvm-commits mailing list