From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from sonic310-14.consmr.mail.bf2.yahoo.com (sonic310-14.consmr.mail.bf2.yahoo.com [74.6.135.124]) by sourceware.org (Postfix) with ESMTPS id 7E37E395C012 for ; Wed, 20 Jan 2021 16:53:09 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 7E37E395C012 X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1611161589; bh=rObD9zTTB/+qRZWZ8awJiqLjgKagaRvTNqVysrFmCLw=; h=Subject:To:From:Date:From:Subject:Reply-To; b=ckW8QDgoYlSxqABqqq1IYuOhGvUSgIBXWLBM1ZRPfW2lACQ/RR+3IbwdrEiQm/lVCAyROBHRK2zHZtzGsjBW/jFCG1DLUV8ld7c5tBlIX+2PzbrQHqDKnk8C239Zj1QnaR+xSQq5zcjzD4ni/LrtrggxYak4Xnu33DOPLXeBm/WOgiwqYPHH3ZIDgJLvb57Mr7S4OIg53g+S9B5dzp8teQCBYG+9/elKHa0LjM4uc9ShunmX+ywfSKQeI1dEfvOLbJiKvNqqIP1MTELGp5bt6BDChQJkK5Yr4Rs2dKs1CdBLH2WkqHyzhFYdzHBVo/QHilVyOD4R/XZRXq5vIAfPyg== X-YMail-OSG: tO5TZO0VM1mC8KtMbWWjTF2HjKPsM2pC4YlfcQyx_H8FLO25DtiJ6NFbTjGTUYi 7KTwbGoYkyoug2kw6drz1yOFzB7lvYzQUOuzsZt2um5WVo8D6R9fRBzoQ7m2AlzD2ahaJ4HgxfYF WZvbhcKWb5dN7GSMySxjhyeGRERvZegOeh0Y0jAIpBvgoxL54TWPGUvUtwKqkoY6pwgp3qIO.MVp d51avg9OlSblCttiD895T6ODmlcx3G2jHcjvcIvyg_vos3Femf.cwMSkFNlG5yFufwgGwv9P43a6 grr0A_TGbYtVzBaZe7ot3EM9lNu1qz2HVuhsVq7DFSmmHptL3ta7rBVBMH7zkkya4Vf2hqA8RpC4 xx6b0QTjkHA3Fb.LN5RTwya5B9PNWC1yNpMh8vwgwLDGeU472WIf0QklruopBe9.1pVNtzMFWSYl w5M4fdwmrDBEn4nrklriIN1xbDwgTnS9OAGcukVWTQfqXae_odWhbVZNt_5MG9_giy.GlDE3tjub aACZwvqbpdHwXxCIchgKAMZBXD52.FC0sJsDqLQ_vcHJxBH62x7AZjzRMQGEGIijWGzKEBneWmGt hpiAYRZ0LVsiSk3rLAOFOMZDef2luiSv1cPrToYZiZU0OjP9qkroOWvPkubyqDxqPjww0S08dDRC D5WANpVwy1exQ7OBlCsrPOjDqF6CfG4QBQMmRWe7utqMYnDJlJQVYtt3xcFTUE9sHH0J00p8OAyz AxJbGPltXMulGORqE4jzBROFia8nT2mlvgNZIChRdisq.yvFe2Bv89B1S6pZ.EqXPouSNc9Totv1 DsA4kVBpv3nEyjqv421_Or5K3iVQZntOPXX70L2eaglHfAlIXfs7M.SvhvuQ.N07wRP9MFzWx9em gF4yVuuE5YrnLswCU9lph_d2H4rEv6dC62PyUXmgozV6JyGIZRNgTPHKkWqBXaUiq2v8FzcnjPgY YQMSqCfB7muKtBrvKxJBB_moKMAOTVCjThtxfeUNlvaYgU5t2.1CdgXPAxXCclGTv_Im1pxdadr4 N7gNlGdca3OU9t5VDlFevMczDZ30DiiCQUF_XDbPFRMXTC5bP2ATu2e8oSyGxNOYE69IMTMANsFD c67wp8LZ65zkjPdIwnztn1qSJAKxNeOyNWqWR1PehUFT.5KB2Z70Md7gmrtt2h6X8wSbj_f4Iwg0 336gaVqqOWKs.xXgstZFQOuA78.9OT2B.uo7hQiQe_m6zN1nIRMGX_yQUYLbUPxya7BkbhJPuoSJ .wujdFe_1V2DxKborWGxCeP8m2xUu9c_PT98xsuqoKTY.u5_HsMR08hQQuSVl0Q81e4_gQMSviVM Bu5Jenb1zJi61bp5JgNWUxDClTw4lRNdfsJFMU2rhH_MfvWOTC8k1CKLLeiTPhVJvFIptcI4CNYC waHv8nAV5M_UEuG.OKEC9UZC1eZwgzU5hmUah02xlhJMpeuZM16t2ON_.rlqldCPngP4vSKpVWvQ utYw6zL5lT2MTvE0Bb.GQcXcPBfwpGe5CIhLqvDsn3cos3CtKR35q_gSRoy6EgQwGwTvoYaFaE3d fuYjBz_AOsdp5n4kCNsE3mjbG4pRUEQ9k6X9OyuL6DyGn9ToDTutq5qV2QLZCafRC4NMAY5ZUzkj 0fWoiDus4tSbV3FpBKrmd2Icyz5BHjZ_nTHgSBMKh8kEiSKQ6oCiyzBcDzjvaBFyqITckQTkX.pH 0iqmgxySbonEKNYWfeA6Q6weWJpvNwfwpUh6w9LmyIr0eKgsCFETNyJvpJ9VINtOl5IoZ0o09_aB Dtc2iyfBjfparJAz_E933_X31TRa5TtVVXfXLDm1clkt7yS2nM4DfIl2qKGRPJvkTFBoBjHhbG_D d5314YpN27wrSqxoBZloJLYjLDs3LYIuHHUUfr6Q84AUYaE52_e6HWvvzzdH6zl66Q7z_SVuj4uG JEoWYp01C_DmkByc_ZorYx2w1IrNfVQVZtXa8DgbI3nlzC010QGZF5O9j39ZA8kzecqfeERlAB3K 0nfFenqKlW_9I9nlYe3VLXeWveOd8qgYPdyYBN5mnZYUlc9nsiZldQCycycTPsVFHzPm.m8sRY2B emEIJbW.8cv90W27OphIWaWsYyMDvWWxcUA4aeH55sMZK7DHFMoCzzgiDIPpMP1nUA13QdvAVGPP V77vmNAos5XwIwzTfnldhASpWhMbDQ8dJm.zWGQkfhav.w7JlZjlrJOk8CJY4HXzsMchDUM95rYs q7hQM2WEDxEkuBiWrjozvPSGWvlgmHnhIkZxc6awU__lge_vakQRofjxK5Sq26VRQKik.C3qCgLO zhaw69GR_OGxkEkPH8Epx2Ga7pir0atwqBMvkwisLDuWnJjaFlJ5iOqQbI4nTERJQRJITm5FLRam TQhUHFCwMaGKcUkqMjSdjRkf3yxVx4E0TK2Fw Received: from sonic.gate.mail.ne1.yahoo.com by sonic310.consmr.mail.bf2.yahoo.com with HTTP; Wed, 20 Jan 2021 16:53:09 +0000 Received: by smtp417.mail.bf1.yahoo.com (VZM Hermes SMTP Server) with ESMTPA ID 97e3c462e48e7e6b9a9a4eeecc0616c9; Wed, 20 Jan 2021 16:53:06 +0000 (UTC) Subject: Re: In GCC 10.2, -O2 optimization enables more than docs suggest To: gcc-help@gcc.gnu.org References: <0de29d09-268f-613d-4cf3-338746488c18@mbari.org> <92e88082-da27-2751-551c-096959c99340@foss.arm.com> From: mark_at_yahoo Message-ID: Date: Wed, 20 Jan 2021 08:53:05 -0800 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.6.0 MIME-Version: 1.0 In-Reply-To: <92e88082-da27-2751-551c-096959c99340@foss.arm.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-Mailer: WebService/1.1.17501 mail.backend.jedi.jws.acl:role.jedi.acl.token.atz.jws.hermes.yahoo Apache-HttpAsyncClient/4.1.4 (Java/11.0.8) X-Spam-Status: No, score=0.2 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, NICE_REPLY_A, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: gcc-help@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-help mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Jan 2021 16:53:11 -0000 On 1/20/21 7:56 AM, Richard Earnshaw via Gcc-help wrote: > On 16/01/2021 20:48, Brent Roman wrote: >> Here's an example of a gcc invocation with -O2 followed by disabling all >> the -O2 specific optimizations: >> ... > > Sorry, it's not as simple as that. There are places in the compiler > where the optimization level (O1, O2, O3) is just tested with something like > > if (optimize >= level) > > for some level. > > R. > Just chiming in with an opinion here. I've had the same problem and came to the same conclusion ("-f" options do not fully replace/override "-O") although I didn't know the compiler source was that explicit about it (thanks for the info). I realize this is very unlikely to change but find the situation unfortunate. My use-case is with the GNU Arm Embedded Toolchain port of GCC and my https://github.com/thanks4opensource/regbits development system. The latter creates C++ header files with literally thousands of constexpr objects of which only a handful are used in a typical program. If compiled O1 or above, the linker only allocates storage for the objects that are used. At O0 it allocates all of them which makes the resulting binary far too large to fit in a typical embedded processor's memory space. But O0 is very useful for assembly-level debugging in GDB (often required in embedded development) because the generated code is much simpler and easier to correlate with the original C++ source. I've only had limited success coming up with a set of -f options to add to O0 to eliminate the unused objects but retain the un-optimized binary code. The above explains why, but it would be nice if the -O options really were just a set of -f ones and users could customize to their needs. Without implementing my specific "-O0.5" option. ;)