From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga06.intel.com (mga06b.intel.com [134.134.136.31]) by sourceware.org (Postfix) with ESMTPS id CBDC9383B7B3 for ; Fri, 27 May 2022 19:33:56 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org CBDC9383B7B3 X-IronPort-AV: E=McAfee;i="6400,9594,10360"; a="335213956" X-IronPort-AV: E=Sophos;i="5.91,256,1647327600"; d="scan'208";a="335213956" Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 27 May 2022 12:33:55 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.91,256,1647327600"; d="scan'208";a="821895416" Received: from tassilo.jf.intel.com (HELO tassilo.localdomain) ([10.54.74.11]) by fmsmga006.fm.intel.com with ESMTP; 27 May 2022 12:33:54 -0700 Received: by tassilo.localdomain (Postfix, from userid 1000) id B1A3A301BCE; Fri, 27 May 2022 12:33:54 -0700 (PDT) From: Andi Kleen To: Andrew MacLeod via Gcc-patches Subject: Re: [PATCH] Add divide by zero side effect. References: Date: Fri, 27 May 2022 12:33:54 -0700 In-Reply-To: (Andrew MacLeod via Gcc-patches's message of "Tue, 17 May 2022 14:39:11 -0400") Message-ID: <87tu9ag47x.fsf@linux.intel.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.2 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Status: No, score=-12.6 required=5.0 tests=BAYES_00, DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_EF, GIT_PATCH_0, SPF_HELO_NONE, SPF_NONE, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) 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: Fri, 27 May 2022 19:33:58 -0000 Andrew MacLeod via Gcc-patches writes: > > diff --git a/gcc/gimple-range-side-effect.cc b/gcc/gimple-range-side-effect.cc > index 2c8c77dc569..548e4bea313 100644 > --- a/gcc/gimple-range-side-effect.cc > +++ b/gcc/gimple-range-side-effect.cc > @@ -116,6 +116,23 @@ stmt_side_effects::stmt_side_effects (gimple *s) > walk_stmt_load_store_ops (s, (void *)this, non_null_loadstore, > non_null_loadstore); > > + if (is_a (s)) > + { > + switch (gimple_assign_rhs_code (s)) > + { > + case TRUNC_DIV_EXPR: > + case CEIL_DIV_EXPR: > + case FLOOR_DIV_EXPR: > + case ROUND_DIV_EXPR: > + case EXACT_DIV_EXPR: > + // Divide means operand 2 is not zero after this stmt. > + if (gimple_range_ssa_p (gimple_assign_rhs2 (s))) > + add_nonzero (gimple_assign_rhs2 (s)); Sorry I'm late, but how does this ensure the value is a integer? I believe for floating point the assumption is not correct because division by zero doesn't necessarily fault. -Andi