From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-eopbgr60082.outbound.protection.outlook.com [40.107.6.82]) by sourceware.org (Postfix) with ESMTPS id 07EE43857C6E; Tue, 21 Jul 2020 21:30:15 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 07EE43857C6E Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=arm.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=Andrea.Corallo@arm.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Xcx3l7ny0NgvfnFZye0usm8XlEuK9pmr+E6o1IKU2Fc=; b=1qqCGtiLWCjmYWqoYbnyCf6HcZWaorMT4wpsPpjVSeIXtyjCoXNC6T43u1oOJxIt+X5CIN3Rl4y+t5VxhmDg8fGnDt1MCdYBqA4/TvqmrIPSL8dLAVOG/pX8jxc23WQHr9WfQDw4cdGOrAIr2Bk3Q6lVgNV/Sky6t/L2zkVGee4= Received: from AM0PR10CA0034.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:20b:150::14) by VI1PR0801MB1823.eurprd08.prod.outlook.com (2603:10a6:800:5a::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3195.23; Tue, 21 Jul 2020 21:30:13 +0000 Received: from VE1EUR03FT007.eop-EUR03.prod.protection.outlook.com (2603:10a6:20b:150:cafe::fa) by AM0PR10CA0034.outlook.office365.com (2603:10a6:20b:150::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3195.18 via Frontend Transport; Tue, 21 Jul 2020 21:30:13 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; gcc.gnu.org; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;gcc.gnu.org; dmarc=bestguesspass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 63.35.35.123 as permitted sender) receiver=protection.outlook.com; client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com; Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by VE1EUR03FT007.mail.protection.outlook.com (10.152.18.114) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3195.18 via Frontend Transport; Tue, 21 Jul 2020 21:30:12 +0000 Received: ("Tessian outbound c4059ed8d7bf:v62"); Tue, 21 Jul 2020 21:30:12 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 1d3f79193389020e X-CR-MTA-TID: 64aa7808 Received: from b13be23f7d7f.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 2E302284-932B-46EA-A7E2-5BF8915D828D.1; Tue, 21 Jul 2020 21:30:06 +0000 Received: from EUR05-VI1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id b13be23f7d7f.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Tue, 21 Jul 2020 21:30:06 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=O6SdlSfQ+Y1O7jXpsOaO4BKSjsPJY9s3F92F4dwhFYO9UI4nbd1YIubp4FTiT+x/AvJdqQx93GCUgWGj/dcTuVnkpXEljUrbWaMaU8VCxZjECBl8kKfomico4hrMYsLXPxamcF/Ww9S73mR/yhbiP8Q+bB6ersoARn+yWL+fWmZLs/fUoeOYI/GyeMo892eG4g6cgKlvDBwCe22EF536aCB7Ll866T9XBnf5HRAT0VrnuTX8M/oFuAor3DH0HPrA7yt23AJVS5i3brnXW1e1XDSbsl9WBFrItMkx7nktgqnF9vEpRU63aIuEguEx97BToj+GEuQ+qpUNqjfRdVMi9w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Xcx3l7ny0NgvfnFZye0usm8XlEuK9pmr+E6o1IKU2Fc=; b=QYGrZtfiqcbJQvh5Gw3VrIFV+GWtRzlxkS5oEhqxkuiM3hhLY2VS62eosZYRCMnIzw/vKPjVGSJLggbQyqXQq3jT7N1BHaTDl+buysd6sCqk4WtMpYYEU+KRBPgVXznCXqxmHewwZVwCcnlrSVMxu8SH1pc0Cg3EFaq3Mt7B9MtPTPC8KGMaK8A/guEmAziabUAV7IyiZrodTvczhYKrCrMeuSbgqZrYECFJyXqNN5rSvZCsKI0Z4e75b+2b7Q9hMeEKnDwtt2jzHmoPp+OHQlBX+ry+qDnvGQlnXuu3W9/dSL/VWA/iR5QEA9qKV2EefjRbEGkpuc1BP9chDBMVzw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Xcx3l7ny0NgvfnFZye0usm8XlEuK9pmr+E6o1IKU2Fc=; b=1qqCGtiLWCjmYWqoYbnyCf6HcZWaorMT4wpsPpjVSeIXtyjCoXNC6T43u1oOJxIt+X5CIN3Rl4y+t5VxhmDg8fGnDt1MCdYBqA4/TvqmrIPSL8dLAVOG/pX8jxc23WQHr9WfQDw4cdGOrAIr2Bk3Q6lVgNV/Sky6t/L2zkVGee4= Authentication-Results-Original: zoho.com; dkim=none (message not signed) header.d=none;zoho.com; dmarc=none action=none header.from=arm.com; Received: from DB7PR08MB3594.eurprd08.prod.outlook.com (2603:10a6:10:4e::11) by DB7PR08MB3515.eurprd08.prod.outlook.com (2603:10a6:10:50::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3195.18; Tue, 21 Jul 2020 21:30:04 +0000 Received: from DB7PR08MB3594.eurprd08.prod.outlook.com ([fe80::9f3:461:834d:7ca]) by DB7PR08MB3594.eurprd08.prod.outlook.com ([fe80::9f3:461:834d:7ca%7]) with mapi id 15.20.3195.026; Tue, 21 Jul 2020 21:30:04 +0000 From: Andrea Corallo To: Antoni Boucher via Gcc-patches Cc: jit@gcc.gnu.org, Antoni Boucher Subject: Re: [PATCH] libgccjit: Handle truncation and extension for casts [PR 95498] References: <20200713003002.bs5hwv4gav6ml5rt@bouanto-laptop.localdomain> Date: Tue, 21 Jul 2020 23:29:57 +0200 In-Reply-To: <20200713003002.bs5hwv4gav6ml5rt@bouanto-laptop.localdomain> (Antoni Boucher via Gcc-patches's message of "Sun, 12 Jul 2020 20:30:02 -0400") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) Content-Type: text/plain X-ClientProxiedBy: DM5PR19CA0072.namprd19.prod.outlook.com (2603:10b6:3:116::34) To DB7PR08MB3594.eurprd08.prod.outlook.com (2603:10a6:10:4e::11) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from e112547 (217.140.99.251) by DM5PR19CA0072.namprd19.prod.outlook.com (2603:10b6:3:116::34) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3195.22 via Frontend Transport; Tue, 21 Jul 2020 21:30:02 +0000 X-Originating-IP: [217.140.99.251] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 06474629-daf3-4136-f0c8-08d82dbd409d X-MS-TrafficTypeDiagnostic: DB7PR08MB3515:|VI1PR0801MB1823: X-Microsoft-Antispam-PRVS: x-checkrecipientrouted: true NoDisclaimer: true X-MS-Oob-TLC-OOBClassifiers: OLM:9508;OLM:9508; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: OlfFSUU5erknuhjbHlWKAHZ/WUCCvs9QDGH5WIlPX85ynyV5gVpMH0r1x/fHIk15rqHPX7QEgZwWlWzI8tb23qiRz6QO7e8BlqBrvh0vijYGZcW4kNBucJNWTp5c5n+TM1LJ0UlQgKR5y9yjd2BR0XIDSxvBajvd9zFzj2XZbeLRWdh8Z0FusbOF8xOKnnJd+I+uMLxKZ2SPsy/o3nVeUMXVu2Ox5JIny+U3AiggcncKYSxn5GbsjIqhZ9KwMpeo6BkUtY4e/YejCwQgQq+uCykrGxvLg9kXNLGdJzNwkcXUK5uMIlo4QyX2tM2w1KuY+uplwvS7jNuNdqlZqzFtZA== X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DB7PR08MB3594.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(4636009)(39860400002)(376002)(346002)(396003)(366004)(136003)(44832011)(66946007)(66476007)(66556008)(956004)(83380400001)(8676002)(478600001)(4326008)(5660300002)(2616005)(6666004)(2906002)(52116002)(186003)(6496006)(6486002)(36756003)(6916009)(316002)(26005)(16526019)(8936002)(86362001); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: OiONn2dASbpyZ6kcQA9ncll5ZYkKfxFU6Y13kM0E9+4IlOm61JuntTls+GOgIxOCfZKkpOuFWQKHhpVyrksYyAdGYiTLPapGdA8MEMRv2KM879f+4GuQaOwcAW5NSskg/U8argfqc4d+biSqHK6jePowZkZMSdFxi2tcmJbJuB8r7FSWOGW1Xa1KRRwh6yLG18+qCgHpU88eaZcQ5MNwU/3uLKm2vzBoWLsG133hUSIusmDj7/A7QUDvoeQh5M9QpY42hoDvJrcvIrdvFs01LEob5i2nA3kfRyhh3H2yhRLE6vMUFCAko/eSWqieixkOYcFFtk/vrJydVppJUPam3ZHXlAn5eyTxJniUqeyYPlXpyDJfG4vpnoJZjdDdrDA/GnFujkUFVgT4/lYgaIh1ORO74rxhLw/KyhYyKTxeqVB7UiaI5yl8m9HxD4apNTcdg58lHNgbXwT3JAuKmAC5fJmNR+T/ZHL+z7qv5xuwwq2H27ic0U88hmgaGZPb3IoV X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB7PR08MB3515 Original-Authentication-Results: zoho.com; dkim=none (message not signed) header.d=none;zoho.com; dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: VE1EUR03FT007.eop-EUR03.prod.protection.outlook.com X-Forefront-Antispam-Report: CIP:63.35.35.123; CTRY:IE; LANG:en; SCL:1; SRV:; IPV:CAL; SFV:NSPM; H:64aa7808-outbound-1.mta.getcheckrecipient.com; PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com; CAT:NONE; SFTY:; SFS:(4636009)(396003)(346002)(39830400003)(376002)(136003)(46966005)(107886003)(83380400001)(36756003)(2616005)(70206006)(16526019)(44832011)(186003)(956004)(26005)(70586007)(5660300002)(450100002)(6666004)(86362001)(4326008)(6486002)(36906005)(336012)(316002)(478600001)(6496006)(82310400002)(8936002)(47076004)(356005)(8676002)(6916009)(2906002)(81166007); DIR:OUT; SFP:1101; X-MS-Office365-Filtering-Correlation-Id-Prvs: ecb711be-dffa-41d0-ffd8-08d82dbd3b7f X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: MysGC9uv66OmxQyCNnPxYHY3npxPlWhI9DXuDNh6lpqOOycSM6JyiygU7zn2lD0hrwloGWLKNJa95z9eVc3w1yHnxa+9phQ0YgwvxzIjrEI7EJUYrnzdAA4+ts+Z8Ge61qxJk/OvZJb++liZVWY9NmYQQ9M2UI1KaV5vqgVRliHpJZqO4gIF6QtotIhMiN2ojpxqs6AB9lvRMMipUKkn4CGJsMftRovIaOJs8PICWfiGRKBqxPMel3MDvomKHOBSkff4rk1PMCt/2VtcyfasBAiTl1A2KIR+9QHt3RraacqwUTvwk3OdrrZEf8mdjidRe/icTGG08rpkrkDAYMEhm51i2EE5PnpLur99pc0CozptW+EyznuOw3a2IpfAkliUn7VsnhmSEyRihz05td7wyw== X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Jul 2020 21:30:12.7587 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 06474629-daf3-4136-f0c8-08d82dbd409d X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d; Ip=[63.35.35.123]; Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com] X-MS-Exchange-CrossTenant-AuthSource: VE1EUR03FT007.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0801MB1823 X-Spam-Status: No, score=-15.8 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, GIT_PATCH_0, MSGID_FROM_MTA_HEADER, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_PASS, TXREP, UNPARSEABLE_RELAY 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: jit@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Jit mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 21 Jul 2020 21:30:17 -0000 Hi Antoni, a couple of nits and some thoughts. Antoni Boucher via Gcc-patches writes: > 2020-07-12 Antoni Boucher > > gcc/jit/ > PR target/95498 > * jit-playback.c: Add support to handle truncation and extension ^^^ here we usually add the function that gets modified, you can look at other changelog entries as example. > diff --git a/gcc/jit/jit-playback.c b/gcc/jit/jit-playback.c > index 0fddf04da87..4f4a1080c36 100644 > --- a/gcc/jit/jit-playback.c > +++ b/gcc/jit/jit-playback.c > @@ -61,22 +61,39 @@ along with GCC; see the file COPYING3. If not see > > /* gcc::jit::playback::context::build_cast uses the convert.h API, > which in turn requires the frontend to provide a "convert" > - function, apparently as a fallback. > - > - Hence we provide this dummy one, with the requirement that any casts > - are handled before reaching this. */ > + function, apparently as a fallback for casts that can be simplified > + (truncation, extension). */ > extern tree convert (tree type, tree expr); > > tree > convert (tree dst_type, tree expr) > { > - gcc_assert (gcc::jit::active_playback_ctxt); > - gcc::jit::active_playback_ctxt->add_error (NULL, "unhandled conversion"); > - fprintf (stderr, "input expression:\n"); > - debug_tree (expr); > - fprintf (stderr, "requested type:\n"); > - debug_tree (dst_type); > - return error_mark_node; > + tree t_ret = NULL; > + t_ret = targetm.convert_to_type (dst_type, expr); > + if (t_ret) > + return t_ret; ^^^ indent nit > + enum tree_code dst_code = TREE_CODE (dst_type); > + switch (dst_code) > + { > + case INTEGER_TYPE: > + case ENUMERAL_TYPE: > + t_ret = convert_to_integer (dst_type, expr); > + goto maybe_fold; > + > + default: > + gcc_assert (gcc::jit::active_playback_ctxt); > + gcc::jit::active_playback_ctxt->add_error (NULL, "unhandled conversion"); > + fprintf (stderr, "input expression:\n"); > + debug_tree (expr); > + fprintf (stderr, "requested type:\n"); > + debug_tree (dst_type); > + return error_mark_node; > + > + maybe_fold: > + if (TREE_CODE (t_ret) != C_MAYBE_CONST_EXPR) > + t_ret = fold (t_ret); > + return t_ret; > + } > } Looking at 'convert' at c-convert.c:66 the INTEGER_TYPE case here looks good, but given the set of casts we accept as input I guess we should handle also POINTER_TYPE, BOOLEAN_TYPE and REAL_TYPE. What do you think about? Hope it helps Bests Andrea