From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-ej1-x62c.google.com (mail-ej1-x62c.google.com [IPv6:2a00:1450:4864:20::62c]) by sourceware.org (Postfix) with ESMTPS id 2AA6D3858D37 for ; Thu, 30 Nov 2023 01:25:09 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 2AA6D3858D37 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 2AA6D3858D37 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2a00:1450:4864:20::62c ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1701307511; cv=none; b=NoMqhwdsh/9wYYvN5I4gh99p2tB7sUPKt5zSKwlSaP6lrJKd3ez4USvYRi6QmK/ZKpoaJifRcn593Q6SM/eTdYBb8/PsCwgZuNIJsOPnOFALaiYQEvzKk/841hU+70kEXfy0LnabNFW4l1yx0bgBQ0GPHhQI4B7mGZzUjQOaS5Y= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1701307511; c=relaxed/simple; bh=MmRtqeeo0aJW3mgCNfQx+a/vaD9SlEGx9DTXJOdzwJ0=; h=DKIM-Signature:MIME-Version:From:Date:Message-ID:Subject:To; b=UB1gKH2t2pRnPRrLywRbgUBeMYZRx9eeg0mLqKWZejjKxVQ6TNssYIGAUD+hmOnVlxmralng8cgrrdlCRLsfaz26ktim5LJj4Gq9fj8f0SPktWQGMFxyGD6bYpA6L02dtZmUoz8xWYWF3MY+1haU/0Phhip/A59yFhag3idJw4s= ARC-Authentication-Results: i=1; server2.sourceware.org Received: by mail-ej1-x62c.google.com with SMTP id a640c23a62f3a-9fa45e75ed9so51188166b.1 for ; Wed, 29 Nov 2023 17:25:09 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1701307507; x=1701912307; darn=gcc.gnu.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=jVFPadkvW8xfA9sLe8gaLN2ZL5+D14loZtGTMfaBRZ4=; b=KbL4njEtT+f5c9Ab1zr77w72Scx4UquVcesjpUo+WW33kwurt1U0/N4HCFd2klPSkd FZgTTKvL+Mazp3s+5FKuRD6ViIG/vVZsbsyJ0iVhYqolrhPNGtcmAm7glczyt7JeA4Xp Ww3g2d1BNFN1kA/JSK193CGtTcgamMtmSdi4JXkc3s2lnO2pHVgTOTkOSGrEn9jQwScn 4XYFCOk/jYVg+mU+UQZ8P12KOE5Pwx8RWH7zLNkQUEvUBVhMqLVT0lY+A71R2Ym6FuAi yj4HSsOxzorzc/0Rt1b7F2gkbC3WoxDmQZDl2AEL0tsqMQ7TH/xOK7GkzU7VimaCewwR ogdw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1701307507; x=1701912307; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=jVFPadkvW8xfA9sLe8gaLN2ZL5+D14loZtGTMfaBRZ4=; b=s+mwuhjrVAQtCpIY8T255XQO8K3n4DKlLxiysheXvQJ64HGHMw0hkR0IaEEOx+r58G 9tcE1Z2fg3WRMkzMzqWD+602c7F9r6cePwWaCHgtklfidgMzlYNsJnhLy6De9ZE34hEQ rF1ICA6DgyodrldDTHoaiw+1LtgnAVtXuN84zI42p6LgJr6YVre4H5AJU+4dhDpoVR/+ 8GG13qOIx8/lncpnDQxvx6y4FvMCQMjQrtBgRHRVophzakKQVNWnHmcaqzoZ8zCMLVut 5wU9q3+TlrKZP1cLEvgEvRBUrXpP4lxVZ5JzaM1R8q777ymHVUqKTyq4GPW+pqi5lrha VSfA== X-Gm-Message-State: AOJu0Yx3aKOx3ZskjSue5BoFnVZtnD/5u3p7iQh6OR1216MZmvIduYLv nY/7LTxoYAqH46nr0xLQPgtCJmO08Dy0UJhjokQ= X-Google-Smtp-Source: AGHT+IHMgKCa/5E02jo7Q5vydc5LmhwKLQdoSFDYMZzUlATVhmXS5turvGdqyiDIa0WQVH31Aec1pKiZmnoM9Kswn10= X-Received: by 2002:a17:906:704:b0:9b2:bb02:a543 with SMTP id y4-20020a170906070400b009b2bb02a543mr11312019ejb.74.1701307506287; Wed, 29 Nov 2023 17:25:06 -0800 (PST) MIME-Version: 1.0 References: <51968bc0-36a3-4a99-b7da-a788cfc4764e@rivosinc.com> In-Reply-To: From: Kito Cheng Date: Thu, 30 Nov 2023 09:24:54 +0800 Message-ID: Subject: Re: [PATCH v1 1/1] RISC-V: Initial RV64E and LP64E support To: Tsukasa OI Cc: "Patrick O'Neill" , gcc-patches@gcc.gnu.org, Palmer Dabbelt , Andrew Waterman , Jim Wilson , Jeff Law Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Status: No, score=-2.9 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,KAM_SHORT,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS,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 List-Id: Pre-approve the fix :) On Thu, Nov 30, 2023 at 6:07=E2=80=AFAM Tsukasa OI wrote: > > Hi Patrick, > > Found a cause (although GCC is functionally correct, I forgot to fix > corresponding test case [which assumes that 'E' is not ratified]). > > > #if !defined(__riscv_e) || (__riscv_e !=3D (1 * 1000 * 1000 + 9 * 1000)= ) > > #error "__riscv_e" > > #endif > > 1*1000*1000 + 9*1000 ('E' version 1.9) should have been fixed to > 2*1000*1000 + 0*1000 because 'E' extension is now ratified version 2.0. > > I'll submit a fix later. > > Thanks, > Tsukasa > > > On 2023/11/30 6:15, Patrick O'Neill wrote: > > Hi Tsukasa, > > > > I'm seeing a new regression across all tested riscv targets: > > https://github.com/patrick-rivos/gcc-postcommit-ci/issues/224 > > > > Regression: > > > > |FAIL: gcc.target/riscv/predef-13.c -O0 (test for excess errors) FAIL: > > gcc.target/riscv/predef-13.c -O1 (test for excess errors) FAIL: > > gcc.target/riscv/predef-13.c -O2 (test for excess errors) FAIL: > > gcc.target/riscv/predef-13.c -O2 -flto -fno-use-linker-plugin > > -flto-partition=3Dnone (test for excess errors) FAIL: > > gcc.target/riscv/predef-13.c -O2 -flto -fuse-linker-plugin > > -fno-fat-lto-objects (test for excess errors) FAIL: > > gcc.target/riscv/predef-13.c -O3 -g (test for excess errors) FAIL: > > gcc.target/riscv/predef-13.c -Os (test for excess errors)| > > > > Debug log: > > > > Executing on host: /home/runner/work/gcc-postcommit-ci/gcc-postcommit-c= i/riscv-gnu-toolchain/build/build-gcc-linux-stage2/gcc/xgcc -B/home/runner/= work/gcc-postcommit-ci/gcc-postcommit-ci/riscv-gnu-toolchain/build/build-gc= c-linux-stage2/gcc/ /home/runner/work/gcc-postcommit-ci/gcc-postcommit-ci/= riscv-gnu-toolchain/gcc/gcc/testsuite/gcc.target/riscv/predef-13.c -march= =3Drv32gc -mabi=3Dilp32d -mcmodel=3Dmedlow -fdiagnostics-plain-output = -O0 -march=3Drv32e -mabi=3Dilp32e -mcmodel=3Dmedlow -misa-spec=3D2.2 -S = -o predef-13.s (timeout =3D 600) > > spawn -ignore SIGHUP /home/runner/work/gcc-postcommit-ci/gcc-postcommit= -ci/riscv-gnu-toolchain/build/build-gcc-linux-stage2/gcc/xgcc -B/home/runne= r/work/gcc-postcommit-ci/gcc-postcommit-ci/riscv-gnu-toolchain/build/build-= gcc-linux-stage2/gcc/ /home/runner/work/gcc-postcommit-ci/gcc-postcommit-ci= /riscv-gnu-toolchain/gcc/gcc/testsuite/gcc.target/riscv/predef-13.c -march= =3Drv32gc -mabi=3Dilp32d -mcmodel=3Dmedlow -fdiagnostics-plain-output -O0 -= march=3Drv32e -mabi=3Dilp32e -mcmodel=3Dmedlow -misa-spec=3D2.2 -S -o prede= f-13.s > > /home/runner/work/gcc-postcommit-ci/gcc-postcommit-ci/riscv-gnu-toolcha= in/gcc/gcc/testsuite/gcc.target/riscv/predef-13.c: In function 'main': > > /home/runner/work/gcc-postcommit-ci/gcc-postcommit-ci/riscv-gnu-toolcha= in/gcc/gcc/testsuite/gcc.target/riscv/predef-13.c:23:2: error: #error "__ri= scv_e" > > compiler exited with status 1 > > FAIL: gcc.target/riscv/predef-13.c -O0 (test for excess errors) > > Excess errors: > > /home/runner/work/gcc-postcommit-ci/gcc-postcommit-ci/riscv-gnu-toolcha= in/gcc/gcc/testsuite/gcc.target/riscv/predef-13.c:23:2: error: #error "__ri= scv_e" > > > > I bisected it locally to commit 006e90e13441c3716b40616282b200a0ef68937= 6 > > (this patch): > > > >> ./bin/riscv64-unknown-linux-gnu-gcc -march=3Drv32e -mabi=3Dilp32e -S .= ./gcc/gcc/testsuite/gcc.target/riscv/predef-13.c > > ../gcc/gcc/testsuite/gcc.target/riscv/predef-13.c: In function 'main': > > ../gcc/gcc/testsuite/gcc.target/riscv/predef-13.c:23:2: error: #error "= __riscv_e" > > 23 | #error "__riscv_e" > > | ^~~~~ > > > > Let me know if you need any additional info/investigation from me. > > > > Thanks, > > Patrick > > > > On 11/24/23 02:18, Tsukasa OI wrote: > >> From: Tsukasa OI > >> > >> Along with RV32E, RV64E is ratified. Though ILP32E and LP64E ABIs are > >> still draft, it's worth supporting it. > >> > >> gcc/ChangeLog: > >> > >> * common/config/riscv/riscv-common.cc > >> (riscv_ext_version_table): Set version to ratified 2.0. > >> (riscv_subset_list::parse_std_ext): Allow RV64E. > >> * config.gcc: Parse base ISA 'rv64e' and ABI 'lp64e'. > >> * config/riscv/arch-canonicalize: Parse base ISA 'rv64e'. > >> * config/riscv/riscv-c.cc (riscv_cpu_cpp_builtins): > >> Define different macro per XLEN. Add handling for ABI_LP64E. > >> * config/riscv/riscv-d.cc (riscv_d_handle_target_float_abi): > >> Add handling for ABI_LP64E. > >> * config/riscv/riscv-opts.h (enum riscv_abi_type): Add ABI_LP64E. > >> * config/riscv/riscv.cc (riscv_option_override): Enhance error > >> handling to support RV64E and LP64E. > >> (riscv_conditional_register_usage): Change "RV32E" in a comment > >> to "RV32E/RV64E". > >> * config/riscv/riscv.h > >> (UNITS_PER_FP_ARG): Add handling for ABI_LP64E. > >> (STACK_BOUNDARY): Ditto. > >> (ABI_STACK_BOUNDARY): Ditto. > >> (MAX_ARGS_IN_REGISTERS): Ditto. > >> (ABI_SPEC): Add support for "lp64e". > >> * config/riscv/riscv.opt: Parse -mabi=3Dlp64e as ABI_LP64E. > >> * doc/invoke.texi: Add documentation of the LP64E ABI. > >> > >> gcc/testsuite/ChangeLog: > >> > >> * gcc.target/riscv/predef-1.c: Test for __riscv_64e. > >> * gcc.target/riscv/predef-2.c: Ditto. > >> * gcc.target/riscv/predef-3.c: Ditto. > >> * gcc.target/riscv/predef-4.c: Ditto. > >> * gcc.target/riscv/predef-5.c: Ditto. > >> * gcc.target/riscv/predef-6.c: Ditto. > >> * gcc.target/riscv/predef-7.c: Ditto. > >> * gcc.target/riscv/predef-8.c: Ditto. > >> * gcc.target/riscv/predef-9.c: New test for RV64E and LP64E, > >> based on predef-7.c. > >> ---