<div dir="ltr">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.<div>

<br></div><div>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.</div>

<div><br></div><div>I couldn't even run LLD linking LLD with profiling enabled because it was too slow that I couldn't wait it to finish.</div><div><br></div><div>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.</div>

<div><br></div><div>Any objections?</div></div>