[LLVMdev] PR723: Default To Optimized Build

Jim Laskey 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.

Cheers,

-- Jim






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 ;)
>
> -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/
>
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev

-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 2417 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20060329/13dab20d/attachment.bin>


More information about the llvm-dev mailing list