From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29]) by sourceware.org (Postfix) with ESMTPS id BCA763858414 for ; Mon, 6 Sep 2021 11:37:47 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org BCA763858414 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=suse.cz Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=suse.cz Received: from imap1.suse-dmz.suse.de (imap1.suse-dmz.suse.de [192.168.254.73]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id 955181FEE7; Mon, 6 Sep 2021 11:37:46 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_rsa; t=1630928266; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=5sNuymD1hlVfX1jWS8P8/N1cfwIKz+QIn0qh6gW+ywg=; b=ClnkND1faV4sp/JjWXvp8g28KVIwNb4ZYRzQ6pH03NYGoY7+Gl86b71XOmRHnLYdbHio9b O/eGVf5cOwbwvQEOV9a4UOdBHRqFOnoN8kBtn5TK3WURRi9NgSXJKT2LXatSqNpKtjj/mU 6xpbNnYfjA8gFmu1A6rxL0PE93/RZdk= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_ed25519; t=1630928266; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=5sNuymD1hlVfX1jWS8P8/N1cfwIKz+QIn0qh6gW+ywg=; b=i7OoDsxaigUNArKKOWJVS8V8RviVQ/NKNpdfJykPxJ1InSeREiYIOqLHS0LsGlfXBt2q0j VsxVm1lMALBlDLAg== Received: from imap1.suse-dmz.suse.de (imap1.suse-dmz.suse.de [192.168.254.73]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap1.suse-dmz.suse.de (Postfix) with ESMTPS id 773AB1395F; Mon, 6 Sep 2021 11:37:46 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap1.suse-dmz.suse.de with ESMTPSA id yHsIHIr9NWFTIwAAGKfGzw (envelope-from ); Mon, 06 Sep 2021 11:37:46 +0000 Content-Type: multipart/mixed; boundary="------------po0QwThoWlWDt6kTaE0u05ya" Message-ID: <766332d7-388b-3697-9a7b-1933c030a966@suse.cz> Date: Mon, 6 Sep 2021 13:37:46 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.0.1 Subject: [PATCH] flag_complex_method: support optimize attribute Content-Language: en-US To: Richard Biener Cc: GCC Patches , Jakub Jelinek , Michael Matz References: <82e71ebf-7b2e-67e7-1f08-ea525deee4cb@suse.cz> <1dfa7226-3056-d215-4626-01126d428891@suse.cz> <88fde73d-d36a-2010-5837-30f2943d9dad@suse.cz> From: =?UTF-8?Q?Martin_Li=c5=a1ka?= In-Reply-To: X-Spam-Status: No, score=-11.1 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Sep 2021 11:37:50 -0000 This is a multi-part message in MIME format. --------------po0QwThoWlWDt6kTaE0u05ya Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 8/26/21 13:04, Richard Biener wrote: > Yes, and that flag_complex_method is initialized via the langhook > mentioned, for example > c-family/c-opts.c has > > /* Initialize options structure OPTS. */ > void > c_common_init_options_struct (struct gcc_options *opts) > { > opts->x_flag_exceptions = c_dialect_cxx (); > opts->x_warn_pointer_arith = c_dialect_cxx (); > opts->x_warn_write_strings = c_dialect_cxx (); > opts->x_flag_warn_unused_result = true; > > /* By default, C99-like requirements for complex multiply and divide. */ > opts->x_flag_complex_method = 2; > } > > so an attempt to "cancel" a command-line option that adjusted any of > the above will not > work because we're not re-initializing global_options appropriately. > But maybe we can > just do that? That is, call > > /* Initialize global options structures; this must be repeated for > each structure used for parsing options. */ > init_options_struct (&global_options, &global_options_set); > lang_hooks.init_options_struct (&global_options); > > and > > /* Perform language-specific options initialization. */ > lang_hooks.init_options (save_decoded_options_count, save_decoded_options); > > as done by toplev.c? Or if we do not want to do that store that state away > to an 'initialized_options/initialized_options_set' set of vars we can > copy from? Hello. I think the proper fix is handling the flag_complex_method-related options in finish_options. Doing that, we can see 'optimize' pragma works with the current master. Patch can bootstrap on x86_64-linux-gnu and survives regression tests. Ready to be installed? Thanks, Martin --------------po0QwThoWlWDt6kTaE0u05ya Content-Type: text/x-patch; charset=UTF-8; name="0001-flag_complex_method-support-optimize-attribute.patch" Content-Disposition: attachment; filename*0="0001-flag_complex_method-support-optimize-attribute.patch" Content-Transfer-Encoding: base64 RnJvbSAyMDM0NTFkNWVhNTM1MmU3NWRhMjdkY2Y4MjU5Y2M4ZGQ3ODgwNTEyIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJ0aW4gTGlza2EgPG1saXNrYUBzdXNlLmN6PgpE YXRlOiBGcmksIDMgU2VwIDIwMjEgMTA6NTM6MDAgKzAyMDAKU3ViamVjdDogW1BBVENIXSBm bGFnX2NvbXBsZXhfbWV0aG9kOiBzdXBwb3J0IG9wdGltaXplIGF0dHJpYnV0ZQoKZ2NjL0No YW5nZUxvZzoKCgkqIG9wdHMuYyAoZmluaXNoX29wdGlvbnMpOiBNb3ZlIGZsYWdfY29tcGxl eF9tZXRob2Qgc2V0dGluZwoJZnJvbSAuLi4KCSogdG9wbGV2LmMgKHByb2Nlc3Nfb3B0aW9u cyk6IC4uLiBoZXJlLgoKZ2NjL3Rlc3RzdWl0ZS9DaGFuZ2VMb2c6CgoJKiBnY2MuYy10b3J0 dXJlL2NvbXBpbGUvYXR0ci1jb21wbGV4LW1ldGhvZC5jOiBOZXcgdGVzdC4KLS0tCiBnY2Mv b3B0cy5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAg OCArKysrKysrKwogLi4uL2djYy5jLXRvcnR1cmUvY29tcGlsZS9hdHRyLWNvbXBsZXgtbWV0 aG9kLmMgICAgICAgIHwgMTAgKysrKysrKysrKwogZ2NjL3RvcGxldi5jICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDggLS0tLS0tLS0KIDMgZmlsZXMg Y2hhbmdlZCwgMTggaW5zZXJ0aW9ucygrKSwgOCBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2Rl IDEwMDY0NCBnY2MvdGVzdHN1aXRlL2djYy5jLXRvcnR1cmUvY29tcGlsZS9hdHRyLWNvbXBs ZXgtbWV0aG9kLmMKCmRpZmYgLS1naXQgYS9nY2Mvb3B0cy5jIGIvZ2NjL29wdHMuYwppbmRl eCBlMDUwMTU1MWVmNS4uMmFjMWE5MzJmMzggMTAwNjQ0Ci0tLSBhL2djYy9vcHRzLmMKKysr IGIvZ2NjL29wdHMuYwpAQCAtMTMyMyw2ICsxMzIzLDE0IEBAIGZpbmlzaF9vcHRpb25zIChz dHJ1Y3QgZ2NjX29wdGlvbnMgKm9wdHMsIHN0cnVjdCBnY2Nfb3B0aW9ucyAqb3B0c19zZXQs CiAgICAgICA9IChvcHRzLT54X2ZsYWdfdW5yb2xsX2xvb3BzCiAgICAgICAgICB8fCBvcHRz LT54X2ZsYWdfcGVlbF9sb29wcwogICAgICAgICAgfHwgb3B0cy0+eF9vcHRpbWl6ZSA+PSAz KTsKKworICAvKiBXaXRoIC1mY3gtbGltaXRlZC1yYW5nZSwgd2UgZG8gY2hlYXAgYW5kIHF1 aWNrIGNvbXBsZXggYXJpdGhtZXRpYy4gICovCisgIGlmIChvcHRzLT54X2ZsYWdfY3hfbGlt aXRlZF9yYW5nZSkKKyAgICBmbGFnX2NvbXBsZXhfbWV0aG9kID0gMDsKKworICAvKiBXaXRo IC1mY3gtZm9ydHJhbi1ydWxlcywgd2UgZG8gc29tZXRoaW5nIGluLWJldHdlZW4gY2hlYXAg YW5kIEM5OS4gICovCisgIGlmIChvcHRzLT54X2ZsYWdfY3hfZm9ydHJhbl9ydWxlcykKKyAg ICBmbGFnX2NvbXBsZXhfbWV0aG9kID0gMTsKIH0KIAogI2RlZmluZSBMRUZUX0NPTFVNTgky NwpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MuYy10b3J0dXJlL2NvbXBpbGUvYXR0 ci1jb21wbGV4LW1ldGhvZC5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MuYy10b3J0dXJlL2NvbXBp bGUvYXR0ci1jb21wbGV4LW1ldGhvZC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMDAwLi5mMDhiNzJlMjczZgotLS0gL2Rldi9udWxsCisrKyBiL2djYy90ZXN0c3Vp dGUvZ2NjLmMtdG9ydHVyZS9jb21waWxlL2F0dHItY29tcGxleC1tZXRob2QuYwpAQCAtMCww ICsxLDEwIEBACisvKiB7IGRnLWFkZGl0aW9uYWwtb3B0aW9ucyAiLWZkdW1wLXRyZWUtb3B0 aW1pemVkIiB9ICovCisKKyNwcmFnbWEgR0NDIG9wdGltaXplICItZmN4LWxpbWl0ZWQtcmFu Z2UiCisKK3ZvaWQgZG9fZGl2IChfQ29tcGxleCBkb3VibGUgKmEsIF9Db21wbGV4IGRvdWJs ZSAqYikKK3sKKyAgKmEgPSAqYiAvICg0LjAgLSA1LjBmaSk7Cit9CisKKy8qIHsgZGctZmlu YWwgeyBzY2FuLXRyZWUtZHVtcC1ub3QgIl9fZGl2ZGMzIiAib3B0aW1pemVkIiB9IH0gKi8K ZGlmZiAtLWdpdCBhL2djYy90b3BsZXYuYyBiL2djYy90b3BsZXYuYwppbmRleCAxNGQxMzM1 ZTc5ZS4uZTE2ODhhYWU3MjQgMTAwNjQ0Ci0tLSBhL2djYy90b3BsZXYuYworKysgYi9nY2Mv dG9wbGV2LmMKQEAgLTE2OTUsMTQgKzE2OTUsNiBAQCBwcm9jZXNzX29wdGlvbnMgKHZvaWQp CiAgICAgICBmbGFnX3N0YWNrX2NoZWNrID0gTk9fU1RBQ0tfQ0hFQ0s7CiAgICAgfQogCi0g IC8qIFdpdGggLWZjeC1saW1pdGVkLXJhbmdlLCB3ZSBkbyBjaGVhcCBhbmQgcXVpY2sgY29t cGxleCBhcml0aG1ldGljLiAgKi8KLSAgaWYgKGZsYWdfY3hfbGltaXRlZF9yYW5nZSkKLSAg ICBmbGFnX2NvbXBsZXhfbWV0aG9kID0gMDsKLQotICAvKiBXaXRoIC1mY3gtZm9ydHJhbi1y dWxlcywgd2UgZG8gc29tZXRoaW5nIGluLWJldHdlZW4gY2hlYXAgYW5kIEM5OS4gICovCi0g IGlmIChmbGFnX2N4X2ZvcnRyYW5fcnVsZXMpCi0gICAgZmxhZ19jb21wbGV4X21ldGhvZCA9 IDE7Ci0KICAgLyogVGFyZ2V0cyBtdXN0IGJlIGFibGUgdG8gcGxhY2Ugc3BpbGwgc2xvdHMg YXQgbG93ZXIgYWRkcmVzc2VzLiAgSWYgdGhlCiAgICAgIHRhcmdldCBhbHJlYWR5IHVzZXMg YSBzb2Z0IGZyYW1lIHBvaW50ZXIsIHRoZSB0cmFuc2l0aW9uIGlzIHRyaXZpYWwuICAqLwog ICBpZiAoIUZSQU1FX0dST1dTX0RPV05XQVJEICYmIGZsYWdfc3RhY2tfcHJvdGVjdCkKLS0g CjIuMzMuMAoK --------------po0QwThoWlWDt6kTaE0u05ya--