[LLVMdev] PR723: Default To Optimized Build
Chris Lattner
sabre at nondot.org
Mon Mar 27 12:14:02 PST 2006
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 ;)
-Chris
> 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'.
>>
>> Thoughts?
>>
>> -Chris
>>
>> --
>> http://nondot.org/sabre/
>> http://llvm.org/
>>
>> _______________________________________________
>> LLVM Developers mailing list
>> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>
-Chris
--
http://nondot.org/sabre/
http://llvm.org/
More information about the llvm-dev
mailing list