From patchwork Thu Sep 9 21:36:42 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Faust X-Patchwork-Id: 1526331 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=gcc.gnu.org header.i=@gcc.gnu.org header.a=rsa-sha256 header.s=default header.b=HgHlkS1w; dkim-atps=neutral Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org (client-ip=2620:52:3:1:0:246e:9693:128c; helo=sourceware.org; envelope-from=gcc-patches-bounces+incoming=patchwork.ozlabs.org@gcc.gnu.org; receiver=) Received: from sourceware.org (server2.sourceware.org [IPv6:2620:52:3:1:0:246e:9693:128c]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4H5C6D1lpfz9sW8 for ; Fri, 10 Sep 2021 07:37:54 +1000 (AEST) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 4A2EF3857004 for ; Thu, 9 Sep 2021 21:37:49 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 4A2EF3857004 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1631223469; bh=37kkVjsEhNRlUD4XxtEBWiFxmKdGnYeMqRBexfB33XQ=; h=To:Subject:Date:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:List-Subscribe:From:Reply-To:From; b=HgHlkS1wAp1xBD45neDaV0DG+jN8lha8qcQNlacL9g/Q1c79F2aZtBcVAWYwqXzfw 9rr+HtNXNu+MQi+XXgbrT0SHkl7flZxtKUjaMoBG2odXoUfILYgA6Bs2j7NXGNYtqS eZimHhF+HCaV+BxHg39gQwu/j17eQ+i0PjqgVEWQ= X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by sourceware.org (Postfix) with ESMTPS id B796C3857402 for ; Thu, 9 Sep 2021 21:37:06 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org B796C3857402 Received: from pps.filterd (m0246631.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 189LTVUV029758 for ; Thu, 9 Sep 2021 21:37:05 GMT Received: from userp3020.oracle.com (userp3020.oracle.com [156.151.31.79]) by mx0b-00069f02.pphosted.com with ESMTP id 3aygy69yah-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Thu, 09 Sep 2021 21:37:05 +0000 Received: from pps.filterd (userp3020.oracle.com [127.0.0.1]) by userp3020.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 189LYstq025355 for ; Thu, 9 Sep 2021 21:37:03 GMT Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2042.outbound.protection.outlook.com [104.47.66.42]) by userp3020.oracle.com with ESMTP id 3axst62f03-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Thu, 09 Sep 2021 21:37:03 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=dmOu6ZNCCQrSZ2qsKr8Ej/q2zGw2oOV4OTtKrv++f0AWOt1HGBrQt+URnNXCr05poXjrhDTqpAdgQkjLhPK18flqzu3BUtNZGh3YXj6eOOFv/xAFAugqW1IBRvDhlSvz9KmNHT2Cm8ijyHiKsnL1NrX1g5mbCD36JWNCndcEB1SVh8smvB/BiJacHUpDyvyBiHbG6HMxqkAOxyI4tBZjVdes9CZJuLbYDyoetvbBFFX59JpWmKAsX2BWT57loB1NaTnoJVvTFsrYPeC+/RB1OzdP6fFKN1eG++98XkXMHIUxv6m1+ArYaOHRadd08dx0pD/KZVMbsN/D76C+NrjsGA== 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; bh=37kkVjsEhNRlUD4XxtEBWiFxmKdGnYeMqRBexfB33XQ=; b=HhQt71HEBOVN6lcXK86ObtY53lEEc144Eb0UxqrHdVk7Vh+vbLgoLHgKE/4sqwi/CdyisbpcrLtkY8u27AJ5mSywRRbzVPFrz7s5aujYjuYdQY58Zx/YGwmxrVjFa3/OwHWCVgtteonTvM/sxb5iJhK5lKX3sALV7yr7Bs9jtgRXKyLDm45bGVD5A9ZcVK6x+6AsRoFSMKno3Rw1JDRsQkVKlO0AmT7EdRZonQvsQLGwm/p0kZjwl3jLHlDpunmXvateH8vLN8F2AtDAWk9K2IO8hOrk5UdCa6YgxMpg8tKYj2j/GdvJMILYv3fsp/2K6E1+gmU5ah2ikb0Xwn3dRw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none Received: from SA2PR10MB4458.namprd10.prod.outlook.com (2603:10b6:806:f8::24) by SN6PR10MB2607.namprd10.prod.outlook.com (2603:10b6:805:4e::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4500.17; Thu, 9 Sep 2021 21:37:01 +0000 Received: from SA2PR10MB4458.namprd10.prod.outlook.com ([fe80::1493:70de:28e4:3d3e]) by SA2PR10MB4458.namprd10.prod.outlook.com ([fe80::1493:70de:28e4:3d3e%4]) with mapi id 15.20.4500.017; Thu, 9 Sep 2021 21:37:01 +0000 To: gcc-patches@gcc.gnu.org Subject: [PATCH 0/3] bpf: add -mcpu and related feature options Date: Thu, 9 Sep 2021 14:36:42 -0700 Message-Id: <20210909213645.11605-1-david.faust@oracle.com> X-Mailer: git-send-email 2.31.1 X-ClientProxiedBy: SN4PR0401CA0042.namprd04.prod.outlook.com (2603:10b6:803:2a::28) To SA2PR10MB4458.namprd10.prod.outlook.com (2603:10b6:806:f8::24) MIME-Version: 1.0 Received: from sequence.us.oracle.com (2606:b400:8301:1041::12) by SN4PR0401CA0042.namprd04.prod.outlook.com (2603:10b6:803:2a::28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4500.14 via Frontend Transport; Thu, 9 Sep 2021 21:37:01 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: e83fd0b2-3254-40a1-7b05-08d973d9f583 X-MS-TrafficTypeDiagnostic: SN6PR10MB2607: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:8273; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: aHWh71j3LIKNd84QIn4srWQjVddl7MO7AVLdpqk8qjpzPiyoN+YxI8BTZKrOTDWzD+lciKVWB+FzUd2djaWpRhu8rmPwtD9Dlo2M+uPPfcOJliRAhOQHf/8dBgdOtI/RTTSlnFGmDD7gIorY82hxacucrtjw1bnQay4buaOUsGb6QNNhaeflRQ+ZrjMPW2yB4zYQYQL/srIIiCr5H2JQG3jrL1fig18FKHjgQSZX2B1RAPoVBxxcDo0B8K+7O/EudL6BzVMJzn9AbZZkuP8ffeHqw+gpBFukT7MKOhfpQJdGKXA3x0OlD8W9fFqfEbAKp+mVkEPUnADI1UMxz9J6nNmaEAuwKt3cBKX0YsKjc7SedVrFE43ooaRLEwPAUJ0px6GUxwVBBCyjDca6LYCZFIpQ8yCg0OeXgcUJhGLGqrAT2mYbVechS5kfgGtvZpeUYJm8V69OUXG19G1e8lLkq0ji51Domivj89nZH+G7hSn95fymCeWmbcnbsyp5pxb70DfVIE9oYvGZzVMXveS5BIWWQfbOWu7kI+hTsG9EI86eM+rfLy51QlVlgL0/LjUatDqu/KGsTKqE01qa9a5BZoXWjeigAQZp8SJHZU8ErYICF7sh7P/O7F0qnAjuSdqDwpobzebWloebxetXZL+Oqw== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SA2PR10MB4458.namprd10.prod.outlook.com; PTR:; CAT:NONE; SFS:(39860400002)(396003)(346002)(376002)(136003)(366004)(2616005)(36756003)(316002)(86362001)(6666004)(52116002)(7696005)(478600001)(66946007)(66476007)(8676002)(38100700002)(8936002)(2906002)(83380400001)(44832011)(1076003)(186003)(5660300002)(6916009)(66556008)(6486002); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: ELYNHzjFOhMcmfmgdBr8V41wn0AoxQLspQCMgVo+qPkSSZSBWonlROdCIVVtS/zfM4WJ2bHi8Ms+Rz+rWaBORAdIOPT/R2lyY94eJUoctsG1LSKwYtE/hfA5pSEW6M5IIZfs35VWesoQdNgz4U8Fu9VO1OjFGh5e+D65Ax/iNnVQeVENnwqQ5A2dtPqAiv+NWmy9dmVCRiAMf9QJ1fLoK3CpdF4eWU9NDez0q/KulbbYHxwOci+nR3qKakHYlazgzdOsgqBco/Ms7ltLENq5il9HO7KQ9FvgA5/ctlqt0B96+07NamIYjHEfVKjdAUZvkrc9wBVankXEDpbJt7TezNcr3CPq77YaU2/b1zGx/7reP6HnQ1vMz3NFt/GB60hv7qINJaEWw15+bmcXmpxSYd1YX3Me0ZhLndeXPRZBuP2be1UrUqptuJF/VTFMYA5Vcw6WptFLf5ckC5YwkKmyZtHbXkrHlLx/MdVcoYSov70dWFgKxKNN+JhAs8IXhAj0DCfo0OEuz4/l2FBm5+Jwa0dR3zQJWvlzJrESIdsH1InkbfjY6c/4xrpMwp9adUzwDcmiyQeQq6IvZN5ep/+RlBj0IzZUSxqlESNwUz4Np3KHUEW8G7+MA56dG4QQDG7QKDowYgAautkgl73YsFoD22tcbTgalSIesJp8JavCD/Cs0Do8rerFf3auheLyM4wW2KO35tMspHtsorsQQT4OO2PYd4HfIseFdGGtoprFIcBzs7DiNWB6GqwMSRnRNKt4ZBJcb6OLGrwLyX2LFlrKrlv8ygduWVqctpLvJ2zv95zuKrL5fBO7FriUZa3pJD8Si/USxYr55aVdrsNTiZo92Dea+xlIEwv71+wyC6tQcARzUXHHTdgUwRja04wztil426XTiMPoSblBJ+m397zpYQfs55bZjkN4J9AXa0hRFr9w6+Xs8IkmQRoMz/Uu1MzsTQnTfYUN7rxFmd8xgqbX8rCEYriTxPeesejepc1vpwrXO/Kb7EpY5apjGqqGpd+l4ZJuHPXGwbiemfYpchyga1nixOxq9AZIvgTujrEtteaW+tBnf68mT3rRT8WLwubodfEECou+fow4eAQCZyRNKyNOD/7flT+va3kQXOzUwrEMwruDHYMPqyLG2JUqYvYtM6yc4gU7JxIBfbABxWnpBTVHlcnFj2K5/ytK5ujM9A09cxleQCGfod05in8uAnfPmxUWZUlj99t76slQ0LXLqMdTkJOqlwjHYwf3O6qm7N2V/YSxu1H4xOeCUN3PliBoKnH5l2iNT7SUPO1ZJCy3wCWne/iZTZeeRATkQHJpjUhogvRGyjZ0QP25YccXlRO1pLVmW8JiSzDqP6SMTiTSsA== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: e83fd0b2-3254-40a1-7b05-08d973d9f583 X-MS-Exchange-CrossTenant-AuthSource: SA2PR10MB4458.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Sep 2021 21:37:01.5092 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: La/neCVDVZjuCdALn64AJHmbdogAIUlm+/FEaOPZEHHiXlTZpyLxuEH9DHr9HZEv0gW576zxRDyhoGdxAgTsMw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR10MB2607 X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10102 signatures=668682 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 bulkscore=0 mlxlogscore=861 malwarescore=0 spamscore=0 mlxscore=0 suspectscore=0 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2109030001 definitions=main-2109090132 X-Proofpoint-GUID: _lx5JeuuEzaxu12L28TcaM7M5csz7McB X-Proofpoint-ORIG-GUID: _lx5JeuuEzaxu12L28TcaM7M5csz7McB X-Spam-Status: No, score=-6.9 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, KAM_SHORT, MSGID_FROM_MTA_HEADER, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2, SPF_HELO_NONE, SPF_NONE, 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-Patchwork-Original-From: David Faust via Gcc-patches From: David Faust Reply-To: David Faust Errors-To: gcc-patches-bounces+incoming=patchwork.ozlabs.org@gcc.gnu.org Sender: "Gcc-patches" New instructions have been added over time to the eBPF ISA, but previously there has been no good method to select which version to target in GCC. This patch adds the following options to the BPF backend: -mcpu={v1, v2, v3} Select which version of the eBPF ISA to target. This enables or disables generation of certain instructions. The default is v3. -mjmpext Enable extra conditional branch instructions. Enabled for CPU v2 and above. -mjmp32 Enable 32-bit jump/branch instructions. Enabled for CPU v3 and above. -malu32 Enable 32-bit ALU instructions. Enabled for CPU v3 and above. Negative versions of -mjmpext, -mjmp32, and -malu32 options are also supported. David Faust (3): bpf: add -mcpu and related feature options bpf testsuite: add tests for new feature options doc: document BPF -mcpu and related options gcc/config/bpf/bpf-opts.h | 7 ++++ gcc/config/bpf/bpf-protos.h | 1 + gcc/config/bpf/bpf.c | 41 ++++++++++++++++++++ gcc/config/bpf/bpf.md | 44 +++++++++++---------- gcc/config/bpf/bpf.opt | 29 ++++++++++++++ gcc/doc/invoke.texi | 39 ++++++++++++++++++- gcc/testsuite/gcc.target/bpf/alu-1.c | 56 +++++++++++++++++++++++++++ gcc/testsuite/gcc.target/bpf/jmp-1.c | 57 ++++++++++++++++++++++++++++ 8 files changed, 253 insertions(+), 21 deletions(-) create mode 100644 gcc/testsuite/gcc.target/bpf/alu-1.c create mode 100644 gcc/testsuite/gcc.target/bpf/jmp-1.c