public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
From: Palmer Dabbelt <palmer@dabbelt.com>
To: jeffreyalaw@gmail.com
Cc: juzhe.zhong@rivai.ai, gcc-patches@gcc.gnu.org,
	Kito Cheng <kito.cheng@gmail.com>,
	kito.cheng@sifive.com, cooper.joshua@linux.alibaba.com,
	Robin Dapp <rdapp.gcc@gmail.com>
Subject: Re: RISC-V: Support XTheadVector extensions
Date: Tue, 28 Nov 2023 11:45:04 -0800 (PST)	[thread overview]
Message-ID: <mhng-653eb4a9-e376-49b7-9990-f0f5277f1f23@palmer-ri-x1c9a> (raw)
In-Reply-To: <67df2e14-448a-4b2f-970e-63bff13cb17f@gmail.com>

On Fri, 17 Nov 2023 16:01:27 PST (-0800), jeffreyalaw@gmail.com wrote:
>
>
> On 11/17/23 16:16, 钟居哲 wrote:
>>  >> I assume this hunk is meant for riscv_output_operand in riscv.cc.  We
>>>>may also need to add '^' to the punct_valid_p hook.  But yes, this is
>>>>the preferred way to go when all we need to do is prefix the instruction
>>>>with "th.".
>>
>> No. I don't think we need to add '^' . I don't want theadvector to touch
>> any codes
>> of vector.md.
>> Mixing up theadvector with RVV1.0 is a nighmare for RVV maintain.
>> People like me don't want to touch any thing related to Thead.
>> But anyway, I will take care of that in GCC-15.
> I suspect it's going to be even worse if you we have multiple patterns
> with the same underlying RTL, but just different output strings.
>
> The standard way to handle that has been with an output modifier and/or
> ASSEMBLER_DIALECT.  If you look at the PA port for example, the
> assembler syntax changed dramatically between the PA1.0/PA1.1 era and
> the PA2.0 era.  But we support both variants trivially without
> duplicating all the patterns.

IMO we're just stuck between a rock and a hard place here.  
Specifically, this isn't just an assembly syntax change but also comes 
with a bunch of behaviorial changes to the instructions in question -- 
I'm specifically thinking of things like the register packing, which 
IIRC changed a ton between 0.7 and 0.8 (and then again more for 1.0).  
That's the kind of stuff that tends to have non-local implications on 
the port, and thus can trip people up.

So if we model this as just assembly syntax then we risk people tripping 
over the differences, but if we try to model it as a whole different 
extension then we have more code to manage.  I'd start with the assembly 
syntax approach, as it should be the option with less code which is 
always nice.  If that turns out to be a problem then we can always just 
duplicate the patterns, but it's way harder to merge them back together 
if we start out with things duplicated.

During the patchwork call we also ended up talking about the P extension 
(and the likely vendor flavors).  Nothing's appeared for there yet, but 
the theory is that the RZ/Five (Renesas' line of RISC-V chips that came 
out earlier this year) has some P-related extension.  There's also some 
SIMD in CORE-V, as well as a bunch of low-hanging fruit missing from V 
that we'll probably see more vendor extensions for.

So I think if the goal is to have a single vector target for RISC-V then 
we've probably lost already.

> But we've got time to sort this out.  I don't think the code in question
> was targeted towards gcc-14.

[In case anyone else is watching: see the forked thread, it might be 
amied for 14 now...]

>
>
> jeff

  parent reply	other threads:[~2023-11-28 19:45 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-11-17 11:39 juzhe.zhong
2023-11-17 16:47 ` Jeff Law
2023-11-18  9:45   ` Philipp Tomsich
2023-11-18 10:32     ` Kito Cheng
2023-11-18 15:16       ` 钟居哲
2023-11-20  3:04       ` juzhe.zhong
2023-11-20 16:58         ` Jason Kridner
2023-11-30 12:01       ` 回复:RISC-V: " joshua
2023-11-17 17:11 ` RISC-V: " Palmer Dabbelt
2023-11-17 23:16   ` 钟居哲
2023-11-18  0:01     ` Jeff Law
2023-11-18  0:04       ` 钟居哲
2023-11-28 19:45       ` Palmer Dabbelt [this message]
2023-11-28 22:14         ` Jeff Law
2023-11-18  9:11 ` Christoph Müllner
     [not found] <202311171939484236058@rivai.ai>
2023-11-17 13:41 ` juzhe.zhong
2023-11-22 10:07   ` Christoph Müllner
2023-11-22 13:52     ` 钟居哲
2023-11-22 14:24       ` Christoph Müllner
2023-11-22 22:27         ` Jeff Law
2023-11-22 22:48           ` Kito Cheng
2023-11-22 23:37             ` Christoph Müllner

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=mhng-653eb4a9-e376-49b7-9990-f0f5277f1f23@palmer-ri-x1c9a \
    --to=palmer@dabbelt.com \
    --cc=cooper.joshua@linux.alibaba.com \
    --cc=gcc-patches@gcc.gnu.org \
    --cc=jeffreyalaw@gmail.com \
    --cc=juzhe.zhong@rivai.ai \
    --cc=kito.cheng@gmail.com \
    --cc=kito.cheng@sifive.com \
    --cc=rdapp.gcc@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).