Deutsch English Français Italiano |
<v3vvph$27spv$1@dont-email.me> View for Bookmarking (what is this?) Look up another Usenet article |
Path: ...!feeds.phibee-telecom.net!news.mixmin.net!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail From: BGB-Alt <bohannonindustriesllc@gmail.com> Newsgroups: comp.lang.c Subject: Re: C23 thoughts and opinions Date: Fri, 7 Jun 2024 16:58:08 -0500 Organization: A noiseless patient Spider Lines: 45 Message-ID: <v3vvph$27spv$1@dont-email.me> References: <v2l828$18v7f$1@dont-email.me> <v38of2$1gsj2$1@dont-email.me> <v39v87$1n7bk$1@dont-email.me> <20240530170836.00005fa0@yahoo.com> <v3a3k5$1ntrn$1@dont-email.me> <20240530180345.00003d9f@yahoo.com> <v3chc4$27uij$1@dont-email.me> <20240531161937.000063af@yahoo.com> <20240531162811.00006719@yahoo.com> <20240531164835.00007128@yahoo.com> <v3cldt$28n91$2@dont-email.me> <20240531173437.00003bee@yahoo.com> <v3d3ct$2b5sl$1@dont-email.me> <v3d97c$2c6ea$1@dont-email.me> <22r6O.5934$xPJ1.2590@fx09.iad> <v3t6nu$1liet$1@dont-email.me> <v3tlmo$1o860$7@dont-email.me> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Injection-Date: Fri, 07 Jun 2024 23:58:10 +0200 (CEST) Injection-Info: dont-email.me; posting-host="81b1da510420ea62c06b6dd502a8393e"; logging-data="2356031"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19/qOFRiI5dSg8XTqbZmscZSarqf9+TfHg=" User-Agent: Mozilla Thunderbird Cancel-Lock: sha1:Ws1eX/rNyqSudUZjpoNGnVgvV4A= Content-Language: en-US In-Reply-To: <v3tlmo$1o860$7@dont-email.me> Bytes: 3330 On 6/6/2024 7:53 PM, Lawrence D'Oliveiro wrote: > On Thu, 6 Jun 2024 15:38:21 -0500, BGB-Alt wrote: > >> *2: Seemingly the main way I am aware of to get small binaries is to use >> an older version of MSVC (such as 6.0 to 9.0), as the binary-bloat >> started to get much more obvious around Visual Studio 2010, but is less >> of an issue with VS2005 or VS2008. > > Newer version of proprietary compiler generates worse code than older > version?!? Or, at least, bulkier code... It terms of other factors, it is pros/cons: Supports C features newer than C89/C95; Is clever enough to generate sensible inline code for "memcpy()" ... These older versions tended either to always emit a function call, or on the latter end, turn it into "REP MOVSB" or similar, etc. I think code generation went in the bulky direction when they started adding auto-vectorization, and not really any option to be like "Yes, I want SIMD instructions enabled, but, no, don't autovectorize." Sometimes vectorization makes things faster, sometimes not, but one thing it does do, is make the generated binaries bigger. Comparably, GCC seems to be a little more behaved in this areas, at least as far as it doesn't add bulk (but, does have the annoyance of defaulting to strict aliasing semantics, and also sometimes generating code that will break if one uses misaligned pointers, etc). Newer versions of MSVC tend to be more clever about things like "memcpy()", albeit not to the same level as GCC (which can entirely optimize it away, rather than turning it into memory loads and stores). Also, "-Os" in GCC is pretty good about disabling any optimizations which would add bulk, ... So, it is pros/cons. ....