From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by sourceware.org (Postfix) with ESMTPS id 47F783858D35 for ; Wed, 18 Jan 2023 12:35:39 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 47F783858D35 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=redhat.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=redhat.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1674045338; h=from:from:reply-to:reply-to:subject:subject: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=7zL4MBuPW/Ri/bJkwO5vaXgvwYQYomdmbHo1d5xFrp4=; b=K5QU3X3FdTFCi6ZEGd2XCnX92llgEUYL0GtCVCWJLTOBY9gR/KRYnTj9Qk/47M+wTLLlZ9 2kJjb/o0lgZ/q6XyfIXG/Y+LXI1BUytSoFEX2hgpPc+IXA2kyyrzFpdtBupPVqOiW+EBiQ wiIZ0geK1bmybwkEKXvPpQINJWkKyA4= Received: from mimecast-mx02.redhat.com (mx3-rdu2.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-6-Vb9ep3fdM62Jer3comCGTg-1; Wed, 18 Jan 2023 07:35:37 -0500 X-MC-Unique: Vb9ep3fdM62Jer3comCGTg-1 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.rdu2.redhat.com [10.11.54.4]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 398E91C0879C; Wed, 18 Jan 2023 12:35:37 +0000 (UTC) Received: from tucnak.zalov.cz (unknown [10.39.192.223]) by smtp.corp.redhat.com (Postfix) with ESMTPS id EAF292026D4B; Wed, 18 Jan 2023 12:35:36 +0000 (UTC) Received: from tucnak.zalov.cz (localhost [127.0.0.1]) by tucnak.zalov.cz (8.17.1/8.17.1) with ESMTPS id 30ICZX331500238 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Wed, 18 Jan 2023 13:35:34 +0100 Received: (from jakub@localhost) by tucnak.zalov.cz (8.17.1/8.17.1/Submit) id 30ICZW6b1500237; Wed, 18 Jan 2023 13:35:32 +0100 Date: Wed, 18 Jan 2023 13:35:32 +0100 From: Jakub Jelinek To: Andreas Schwab Cc: Richard Biener , Jan Hubicka , gcc-patches@gcc.gnu.org Subject: Re: [PATCH] lto: pass through -funwind-tables and -fasynchronous-unwind-tables Message-ID: Reply-To: Jakub Jelinek References: MIME-Version: 1.0 In-Reply-To: X-Scanned-By: MIMEDefang 3.1 on 10.11.54.4 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset=us-ascii Content-Disposition: inline X-Spam-Status: No, score=-3.8 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_NONE,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: On Wed, Jan 18, 2023 at 01:30:53PM +0100, Andreas Schwab wrote: > On Jan 18 2023, Jakub Jelinek wrote: > > > On Wed, Jan 18, 2023 at 12:25:11PM +0100, Andreas Schwab via Gcc-patches wrote: > >> On Jan 18 2023, Richard Biener wrote: > >> > >> > On Wed, Jan 18, 2023 at 11:17 AM Andreas Schwab via Gcc-patches > >> > wrote: > >> >> > >> >> The -funwind-tables and -fasynchronous-unwind-tables options are relevant > >> >> for the output pass, thus they need to be passed through by the lto > >> >> wrapper. > >> > > >> > They are already stored per function, and ... > >> > >> Are they? Are you sure you don't confuse that with -fexceptions? > > > > They clearly are: > > fasynchronous-unwind-tables > > Common Var(flag_asynchronous_unwind_tables) Optimization > > Generate unwind tables that are exact at each instruction boundary. > > and > > funwind-tables > > Common Var(flag_unwind_tables) Optimization > > Just generate unwind tables for exception handling. > > How is that supposed to work then? With LTO each function has the DECL_FUNCTION_SPECIFIC_OPTIMIZATION (and _TARGET), for functions with optimize attribute obviously as without LTO specific to what options have been overridden (but with defaults from TU's command line etc.), for functions without that simply with what options has the TU. lto1 then streams in those options and when switching functions switches the global options. Jakub