From patchwork Thu Jan 5 13:13:23 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Iain Sandoe X-Patchwork-Id: 39528 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4e01:0:0:0:0:0 with SMTP id p1csp294413wrt; Thu, 5 Jan 2023 05:14:13 -0800 (PST) X-Google-Smtp-Source: AMrXdXtpRi/qHMeA0DZ9P6SeCNwQ85eZydVM+pZ5ifT3X9so4vcm9U3RtqkSx/Mp3xGOmxAm03OO X-Received: by 2002:a17:907:d10:b0:82d:e258:fa55 with SMTP id gn16-20020a1709070d1000b0082de258fa55mr51281743ejc.36.1672924453284; Thu, 05 Jan 2023 05:14:13 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1672924453; cv=none; d=google.com; s=arc-20160816; b=pHNXkNFTb7xdN0+f0z9sr+JnTEh76eWZrgpAW4hGgehWvOXUueL+shcuS34n/S27Lu qgoYiCYV0AwXPyfH7sblleKjGW1wS8trgf6PFm/CgmykQ2the3ibKQfBFnCzBo3IiYwI wEbzV0p+5TPPWoUzU7f49fqINC6K7t5wKAFOn8ARD7aAr6YquHuvz45YM/MtJLIKu6+M ItplkFlqR+cHP59mBnferUVm8E4mmihfGYDZRFXq7ORm8PCwQUpLoUKzIJApnqpyp04l Beqv+FdmzYm+6iQFpyXfqrpqVrYlsUaDNVn+MffCwHnEbeXGyIfPd1VZe8gX2yodB8Kc q1Xg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:cc:reply-to:from:list-subscribe:list-help :list-post:list-archive:list-unsubscribe:list-id:precedence :content-transfer-encoding:mime-version:message-id:date:subject:to :dmarc-filter:delivered-to:dkim-signature:dkim-filter; bh=29Aso4WVcHq2xXNYYe8OJEeI89xo2UYPiGStE0u/t38=; b=D9lmnnkI/QUpFNg+pqtxOOgFBfYKN1A1LGHPhnQTvtCJjzfZbhHrRkFhwEvT0di4uu +fQ4/gLSLrx6Xq/28udyXolaCd8UcBIiL8eETpjrzfuj1J8kh9XKAyD2To0v0vMlfQK/ MBOmP+JgNNhCKf7gYHY1cwqCc5wW4Qz3ClORK5uuxvR9OUsxyVv5yQ7u4Ukkvm/fryKE 5ZHHq15zOoUA9lN47NZ7eaR8ca/HnWp82wl78VanNafoRHwNIDGUk71moCCQWu7T2a5I mMTzj/CCVz4Pvllg9wK6ABQO9Szb1o0RqaT3spPh0B8jJnuFUChnvoxsexlHGepvKwWy Dj4g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gcc.gnu.org header.s=default header.b=v040Dwrq; spf=pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) smtp.mailfrom="gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=gnu.org Received: from sourceware.org (server2.sourceware.org. [2620:52:3:1:0:246e:9693:128c]) by mx.google.com with ESMTPS id ht12-20020a170907608c00b007c31c5206c5si33064250ejc.436.2023.01.05.05.14.13 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 05 Jan 2023 05:14:13 -0800 (PST) Received-SPF: pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) client-ip=2620:52:3:1:0:246e:9693:128c; Authentication-Results: mx.google.com; dkim=pass header.i=@gcc.gnu.org header.s=default header.b=v040Dwrq; spf=pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) smtp.mailfrom="gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=gnu.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 16E993858C31 for ; Thu, 5 Jan 2023 13:14:12 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 16E993858C31 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1672924452; bh=29Aso4WVcHq2xXNYYe8OJEeI89xo2UYPiGStE0u/t38=; h=To:Subject:Date:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:List-Subscribe:From:Reply-To:Cc:From; b=v040DwrqyV25IDon7wDGHpOoouKNwBtu34Q+kr87bZ189PpZkZ8yjOeSA2ck92OBQ I3Hzr3D2EOME2WAeIPoFh29FfNqEybWHKHIGRhGxY4/sS6z/+Z4C5qtewATJ2QHb1G 75NYr7fxifnljRjl7t3H/9v7Bw/et70W64/zrD10= X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from mail-wm1-x32c.google.com (mail-wm1-x32c.google.com [IPv6:2a00:1450:4864:20::32c]) by sourceware.org (Postfix) with ESMTPS id 2BB8D3858D39 for ; Thu, 5 Jan 2023 13:13:27 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 2BB8D3858D39 Received: by mail-wm1-x32c.google.com with SMTP id m3so19082609wmq.0 for ; Thu, 05 Jan 2023 05:13:27 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:reply-to:message-id:date :subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=29Aso4WVcHq2xXNYYe8OJEeI89xo2UYPiGStE0u/t38=; b=5SfOpCyY6Z0x83gcoevIFkK31alJm66PHs/+S63BRizBs0ft5sjzwdrTLr1ZHRYrQf hQjfczmik/qSEWPOs7i1OADG1PwbFa/r3ivg20h0rCRvXUBobCUA+YaNCRWNTh+PagQG KxpjEpUi2zg/OMtfju06XDDaXf43DwqxLAa1FES8032fjxdUmu0uDQI0+JJKJHjuen4y J+1qxdil3VIxwZReBQ5T1xyca45HFq27zN9/conL6p2v2IfIYNJBe8o/wPAm83Sa/UAx TKKWV63RFWngXph51SetBHkajKoWM0ITMzpKJ2hz+St+pOwoIrZI/gXj3PH/tA1B3Ym4 6bgQ== X-Gm-Message-State: AFqh2krknuV0fnUqPc+osoCnvAkoYmI7joBbro8wiMapWSYpZJN8NrXt hBEDtS8fMve2cMf7lXx6B7OZ8SwsjPo= X-Received: by 2002:a05:600c:c0d:b0:3d9:7667:c0e4 with SMTP id fm13-20020a05600c0c0d00b003d97667c0e4mr28132478wmb.31.1672924405745; Thu, 05 Jan 2023 05:13:25 -0800 (PST) Received: from localhost.localdomain (host81-138-1-83.in-addr.btopenworld.com. [81.138.1.83]) by smtp.gmail.com with ESMTPSA id r10-20020a05600c458a00b003d35acb0fd7sm2574760wmo.34.2023.01.05.05.13.24 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Thu, 05 Jan 2023 05:13:25 -0800 (PST) X-Google-Original-From: Iain Sandoe To: gcc-patches@gcc.gnu.org Subject: [PATCH] modula-2: Remove uses of scalb*() and significand*() [PR107631] Date: Thu, 5 Jan 2023 13:13:23 +0000 Message-Id: <20230105131323.81730-1-iain@sandoe.co.uk> X-Mailer: git-send-email 2.37.1 (Apple Git-137.1) MIME-Version: 1.0 X-Spam-Status: No, score=-8.3 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, 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 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-Patchwork-Original-From: Iain Sandoe via Gcc-patches From: Iain Sandoe Reply-To: iain@sandoe.co.uk Cc: Iain Sandoe , gaiusmod2@gmail.com Errors-To: gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org Sender: "Gcc-patches" X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1754188431325309285?= X-GMAIL-MSGID: =?utf-8?q?1754188431325309285?= Tested on x86_64-darwin21 and x86_64-linux-gnu without any m2 regressions. OK for trunk? thanks Iain --- 8< --- The scalb*() functions are obsolete in Posix from 2004 and removed in 2008. The significand*() functions are glibc-only and considered there to be obsolescent (not supported for types such as _Float128). We can remove them from Modula-2 since they are not required for ISO support, but we need to provide an implementation of significand* for the "fraction()" functions. PR modula2/107631 gcc/m2/ChangeLog: * gm2-gcc/m2builtins.cc: Remove scalb, scalbf, scalbl, significand, significandf, significandl. * gm2-libs/Builtins.def (significand): Likewise. * gm2-libs/Builtins.mod: Likewise. * target-independent/Builtins.texi: Likewise. * gm2-libs-iso/LowLong.mod: Implement fraction with scalbn*() and ilogb*(). * gm2-libs-iso/LowReal.mod: Likewise. * gm2-libs-iso/LowShort.mod: Likewise. --- gcc/m2/gm2-gcc/m2builtins.cc | 12 ---------- gcc/m2/gm2-libs-iso/LowLong.mod | 5 ++--- gcc/m2/gm2-libs-iso/LowReal.mod | 4 ++-- gcc/m2/gm2-libs-iso/LowShort.mod | 4 ++-- gcc/m2/gm2-libs/Builtins.def | 8 ------- gcc/m2/gm2-libs/Builtins.mod | 30 ------------------------- gcc/m2/target-independent/Builtins.texi | 14 ------------ 7 files changed, 6 insertions(+), 71 deletions(-) diff --git a/gcc/m2/gm2-gcc/m2builtins.cc b/gcc/m2/gm2-gcc/m2builtins.cc index bbfc605a36d..35901a20003 100644 --- a/gcc/m2/gm2-gcc/m2builtins.cc +++ b/gcc/m2/gm2-gcc/m2builtins.cc @@ -192,12 +192,6 @@ static struct builtin_function_entry list_of_builtins[] = { "signbitf", NULL, NULL }, { "__builtin_signbitl", BT_FN_INT_LONG_DOUBLE, BUILT_IN_SIGNBITL, BUILT_IN_NORMAL, "signbitl", NULL, NULL }, - { "__builtin_significand", BT_FN_DOUBLE_DOUBLE, BUILT_IN_SIGNIFICAND, - BUILT_IN_NORMAL, "significand", NULL, NULL }, - { "__builtin_significandf", BT_FN_FLOAT_FLOAT, BUILT_IN_SIGNIFICANDF, - BUILT_IN_NORMAL, "significandf", NULL, NULL }, - { "__builtin_significandl", BT_FN_LONG_DOUBLE_LONG_DOUBLE, - BUILT_IN_SIGNIFICANDL, BUILT_IN_NORMAL, "significandl", NULL, NULL }, { "__builtin_modf", BT_FN_DOUBLE_DOUBLE_DOUBLEPTR, BUILT_IN_MODF, BUILT_IN_NORMAL, "modf", NULL, NULL }, { "__builtin_modff", BT_FN_FLOAT_FLOAT_FLOATPTR, BUILT_IN_MODFF, @@ -216,12 +210,6 @@ static struct builtin_function_entry list_of_builtins[] = { BUILT_IN_NEXTTOWARDF, BUILT_IN_NORMAL, "nexttowardf", NULL, NULL }, { "__builtin_nexttowardl", BT_FN_LONG_DOUBLE_LONG_DOUBLE_LONG_DOUBLE, BUILT_IN_NEXTTOWARDL, BUILT_IN_NORMAL, "nexttowardl", NULL, NULL }, - { "__builtin_scalb", BT_FN_DOUBLE_DOUBLE_DOUBLE, BUILT_IN_SCALB, - BUILT_IN_NORMAL, "scalb", NULL, NULL }, - { "__builtin_scalbf", BT_FN_FLOAT_FLOAT_FLOAT, BUILT_IN_SCALBF, - BUILT_IN_NORMAL, "scalbf", NULL, NULL }, - { "__builtin_scalbl", BT_FN_LONG_DOUBLE_LONG_DOUBLE_LONG_DOUBLE, - BUILT_IN_SCALBL, BUILT_IN_NORMAL, "scalbl", NULL, NULL }, { "__builtin_scalbln", BT_FN_DOUBLE_DOUBLE_LONG, BUILT_IN_SCALBLN, BUILT_IN_NORMAL, "scalbln", NULL, NULL }, { "__builtin_scalblnf", BT_FN_FLOAT_FLOAT_LONG, BUILT_IN_SCALBLNF, diff --git a/gcc/m2/gm2-libs-iso/LowLong.mod b/gcc/m2/gm2-libs-iso/LowLong.mod index 74f7ca923f8..9842679d1ed 100644 --- a/gcc/m2/gm2-libs-iso/LowLong.mod +++ b/gcc/m2/gm2-libs-iso/LowLong.mod @@ -27,7 +27,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see IMPLEMENTATION MODULE LowLong ; FROM SYSTEM IMPORT ADDRESS ; -FROM Builtins IMPORT ilogbl, significandl, modfl, signbitl, scalbnl, huge_vall, nextafterl ; +FROM Builtins IMPORT ilogbl, modfl, signbitl, scalbnl, huge_vall, nextafterl ; FROM dtoa IMPORT Mode, strtod, dtoa ; FROM libc IMPORT free ; FROM RealMath IMPORT power ; @@ -64,10 +64,9 @@ END exponent ; PROCEDURE fraction (x: LONGREAL) : LONGREAL ; BEGIN - RETURN significandl(x) + RETURN scalbnl(x, -ilogbl (x)) END fraction ; - (* sign - returns the signum of x. sign(x) = 1.0 for all x>0.0 sign(x) = -1.0 for all x<0.0. diff --git a/gcc/m2/gm2-libs-iso/LowReal.mod b/gcc/m2/gm2-libs-iso/LowReal.mod index cc74f6564dc..7db6ff0472a 100644 --- a/gcc/m2/gm2-libs-iso/LowReal.mod +++ b/gcc/m2/gm2-libs-iso/LowReal.mod @@ -27,7 +27,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see IMPLEMENTATION MODULE LowReal ; FROM SYSTEM IMPORT ADDRESS ; -FROM Builtins IMPORT ilogb, significand, modf, signbit, scalbn, huge_val, nextafter ; +FROM Builtins IMPORT ilogb, modf, signbit, scalbn, huge_val, nextafter ; FROM dtoa IMPORT Mode, strtod, dtoa ; FROM libc IMPORT free ; FROM RealMath IMPORT power ; @@ -64,7 +64,7 @@ END exponent ; PROCEDURE fraction (x: REAL) : REAL ; BEGIN - RETURN significand(x) + RETURN scalbn (x, -ilogb (x)) END fraction ; diff --git a/gcc/m2/gm2-libs-iso/LowShort.mod b/gcc/m2/gm2-libs-iso/LowShort.mod index 892198233e4..e8207112256 100644 --- a/gcc/m2/gm2-libs-iso/LowShort.mod +++ b/gcc/m2/gm2-libs-iso/LowShort.mod @@ -27,7 +27,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see IMPLEMENTATION MODULE LowShort ; FROM SYSTEM IMPORT ADDRESS ; -FROM Builtins IMPORT ilogbf, significandf, modff, signbitf, scalbnf, huge_valf, nextafterf ; +FROM Builtins IMPORT ilogbf, modff, signbitf, scalbnf, huge_valf, nextafterf ; FROM dtoa IMPORT Mode, strtod, dtoa ; FROM libc IMPORT free ; FROM RealMath IMPORT power ; @@ -64,7 +64,7 @@ END exponent ; PROCEDURE fraction (x: SHORTREAL) : SHORTREAL ; BEGIN - RETURN significandf(x) + RETURN scalbnf (x, -ilogbf (x)) END fraction ; diff --git a/gcc/m2/gm2-libs/Builtins.def b/gcc/m2/gm2-libs/Builtins.def index 1c321691317..8d849be46d8 100644 --- a/gcc/m2/gm2-libs/Builtins.def +++ b/gcc/m2/gm2-libs/Builtins.def @@ -78,10 +78,6 @@ PROCEDURE __BUILTIN__ huge_val () : REAL ; PROCEDURE __BUILTIN__ huge_valf () : SHORTREAL ; PROCEDURE __BUILTIN__ huge_vall () : LONGREAL ; -PROCEDURE __BUILTIN__ significand (r: REAL) : REAL ; -PROCEDURE __BUILTIN__ significandf (s: SHORTREAL) : SHORTREAL ; -PROCEDURE __BUILTIN__ significandl (l: LONGREAL) : LONGREAL ; - PROCEDURE __BUILTIN__ modf (x: REAL; VAR y: REAL) : REAL ; PROCEDURE __BUILTIN__ modff (x: SHORTREAL; VAR y: SHORTREAL) : SHORTREAL ; @@ -99,10 +95,6 @@ PROCEDURE __BUILTIN__ nexttoward (x, y: REAL) : LONGREAL ; PROCEDURE __BUILTIN__ nexttowardf (x, y: SHORTREAL) : LONGREAL ; PROCEDURE __BUILTIN__ nexttowardl (x, y: LONGREAL) : LONGREAL ; -PROCEDURE __BUILTIN__ scalb (x, n: REAL) : REAL ; -PROCEDURE __BUILTIN__ scalbf (x, n: SHORTREAL) : SHORTREAL ; -PROCEDURE __BUILTIN__ scalbl (x, n: LONGREAL) : LONGREAL ; - PROCEDURE __BUILTIN__ scalbln (x: REAL; n: LONGINT) : REAL ; PROCEDURE __BUILTIN__ scalblnf (x: SHORTREAL; n: LONGINT) : SHORTREAL ; PROCEDURE __BUILTIN__ scalblnl (x: LONGREAL; n: LONGINT) : LONGREAL ; diff --git a/gcc/m2/gm2-libs/Builtins.mod b/gcc/m2/gm2-libs/Builtins.mod index c679259dc3c..a5d99392a49 100644 --- a/gcc/m2/gm2-libs/Builtins.mod +++ b/gcc/m2/gm2-libs/Builtins.mod @@ -222,21 +222,6 @@ BEGIN RETURN cbuiltin.ilogbl (x) END ilogbl ; -PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_significand)) significand (r: REAL) : REAL ; -BEGIN - RETURN cbuiltin.significand (r) -END significand ; - -PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_significandf)) significandf (s: SHORTREAL) : SHORTREAL ; -BEGIN - RETURN cbuiltin.significandf (s) -END significandf ; - -PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_significandl)) significandl (l: LONGREAL) : LONGREAL ; -BEGIN - RETURN cbuiltin.significandl (l) -END significandl ; - PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_modf)) modf (x: REAL; VAR y: REAL) : REAL ; BEGIN RETURN cbuiltin.modf (x, y) @@ -297,21 +282,6 @@ BEGIN RETURN cbuiltin.nexttowardl (x, y) END nexttowardl ; -PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_scalb)) scalb (x, n: REAL) : REAL ; -BEGIN - RETURN cbuiltin.scalb (x, n) -END scalb ; - -PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_scalbf)) scalbf (x, n: SHORTREAL) : SHORTREAL ; -BEGIN - RETURN cbuiltin.scalbf (x, n) -END scalbf ; - -PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_scalbl)) scalbl (x, n: LONGREAL) : LONGREAL ; -BEGIN - RETURN cbuiltin.scalbl (x, n) -END scalbl ; - PROCEDURE __ATTRIBUTE__ __BUILTIN__ ((__builtin_scalbln)) scalbln (x: REAL; n: LONGINT) : REAL ; BEGIN RETURN cbuiltin.scalbln (x, n) diff --git a/gcc/m2/target-independent/Builtins.texi b/gcc/m2/target-independent/Builtins.texi index 6ab1f2b32e0..bf0afe1b8a4 100644 --- a/gcc/m2/target-independent/Builtins.texi +++ b/gcc/m2/target-independent/Builtins.texi @@ -90,13 +90,6 @@ PROCEDURE __BUILTIN__ huge_valf () : SHORTREAL ; @findex huge_vall PROCEDURE __BUILTIN__ huge_vall () : LONGREAL ; -@findex significand -PROCEDURE __BUILTIN__ significand (r: REAL) : REAL ; -@findex significandf -PROCEDURE __BUILTIN__ significandf (s: SHORTREAL) : SHORTREAL ; -@findex significandl -PROCEDURE __BUILTIN__ significandl (l: LONGREAL) : LONGREAL ; - @findex modf PROCEDURE __BUILTIN__ modf (x: REAL; VAR y: REAL) : REAL ; @findex modff @@ -126,13 +119,6 @@ PROCEDURE __BUILTIN__ nexttowardf (x, y: SHORTREAL) : LONGREAL ; @findex nexttowardl PROCEDURE __BUILTIN__ nexttowardl (x, y: LONGREAL) : LONGREAL ; -@findex scalb -PROCEDURE __BUILTIN__ scalb (x, n: REAL) : REAL ; -@findex scalbf -PROCEDURE __BUILTIN__ scalbf (x, n: SHORTREAL) : SHORTREAL ; -@findex scalbl -PROCEDURE __BUILTIN__ scalbl (x, n: LONGREAL) : LONGREAL ; - @findex scalbln PROCEDURE __BUILTIN__ scalbln (x: REAL; n: LONGINT) : REAL ; @findex scalblnf