[LLVMdev] PR723: Default To Optimized Build
jlaskey at apple.com
Wed Mar 29 01:39:57 PST 2006
My vote is optimized for users, Debug/assert for cvs. Performance is
a major bullet point. LLVM has developed a broad audience. The
standard set for binary distribution should be very very high, should
have wide prerelease testing and be 99.9% stable.
As far as assert on for users - we tested/used Java Hotspot almost
exclusively with -O2 + assert and saw only minor performance
problems, but then again we didn't leave asserts in critical areas.
On Mar 27, 2006, at 4:14 PM, Chris Lattner wrote:
> On Mon, 27 Mar 2006, Eric van Riet Paap wrote:
>> I think using different settings is generally (and this this case
>> too) a bad idea because it makes things more complicated. All
>> developers know how to build LLVM. Most (new/casual) users expect
>> a certain behaviour and they will judge LLVM on subjective
>> grounds. If linking/performance suffers they will continue looking
>> for whatever gives them that extra bit of performance. People like
>> me that take the time to file bugreport are willing to invest time
>> in LLVM and are most probably also willing to recompile a full-
>> debug LLVM.
> I agree, but there is a balance here:
> Users almost ALWAYS use releases.
> Developers almost ALWAYS use CVS.
> Also, developers configure a lot more often than users ;)
>> On Mar 27, 2006, at 9:09 PM, Chris Lattner wrote:
>>> On Mon, 27 Mar 2006, Andrew Lenharth wrote:
>>>>> Another option is to build an optimized build with assertions
>>>>> on. Do to
>>>>> local demand, I added a build option 'make ENABLE_OPTIMIZED=1
>>>>> ENABLE_ASSERTIONS=1' that provides this.
>>>> How does this compare size and performance wise with a debug
>>>> build or a
>>>> release build?
>>> I haven't done any scientific measurements. Here is some
>>> educated guessing :)
>>> I know that a debug build is about 10x bigger and 10x slower than
>>> a release build. Linking also takes about 10x as long with a
>>> debug build than it does for a release build.
>>> With assertions on, linking takes virtually the same time as a
>>> release build, I would expect it to also be about the same speed
>>> as a release build: a WAG would be within 10%.
>>> For the people that requested the optimized+assertions build, the
>>> big issue was link-time. Having a huge link time significantly
>>> impacted their productivity and they happened to not care about
>>> performance for most development. OTOH, not getting assertions
>>> was preventing them from finding bugs.
>>> The more I think about it, the more I like a configuration that
>>> looks like this:
>>> 'llvm --enable-optimized' should always build a release build.
>>> LLVM from CVS should always default to a debug build.
>>> LLVM releases should default to 'release + assertions'.
>>> LLVM Developers mailing list
>>> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu
>> LLVM Developers mailing list
>> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 2417 bytes
Desc: not available
More information about the llvm-dev