On Fri, 14 Apr 2023, Hans-Peter Nilsson wrote:

> On Thu, 13 Apr 2023, Richard Biener via Gcc-patches wrote:
> 
> > On Thu, 13 Apr 2023, Richard Sandiford wrote:
> > 
> > > ??? <juzhe.zh...@rivai.ai> writes:
> > > > Yeah, like kito said.
> > > > Turns out the tuple type model in ARM SVE is the optimal solution for 
> > > > RVV.
> > > > And we like ARM SVE style implmentation.
> > > >
> > > > And now we see swapping rtx_code and mode in rtx_def can make rtx_def 
> > > > overal not exceed 64 bit.
> > > > But it seems that there is still problem in tree_type_common and 
> > > > tree_decl_common, is that right?
> > > 
> > > I thought upthread we had a way forward for tree_type_common and
> > > tree_decl_common too, but maybe I only convinced myself. :)
> > > 
> > > > After several trys (remove all redundant TI/TF vector modes and FP16 
> > > > vector mode), now there are 252 modes
> > > > in RISC-V port. Basically, I can keep supporting new RVV intrinsisc 
> > > > features recently.
> > > > However, we can't support more in the future, for example, FP16 vector, 
> > > > BF16 vector, matrix modes, VLS modes,...etc.
> > > 
> > > I agree it doesn't make sense to try to squeeze modes out like this.
> > > It's a bit artificial, and like you say, it's likely only putting
> > > off the inevitable.
> > 
> > Agreed.  Let's do the proposed TYPE_PRECISION change first and then
> > see how bad 16bit mode will be.
> 
> (I don't see the following obvious having been pointed out, or 
> why it doesn't apply, but if so, I hope you don't mind repeating 
> it, so:)
> 
> If after all, a change to the size of the code and mode 
> bit-fields in rtx_def is necessary, like to still fit 64 bytes 
> such become non-byte sizes *and* that matters for compilation 
> time, can that change please be made target-dependent?  Not as 
> in set by a target macro, but rather deduced from the number of 
> modes defined by the target?
> 
> After all, that number is readily available (or if there's an 
> order problem seems likely to easily be made available to the 
> rtx_def build-time definition (as opposed to a gen-* -time 
> definition).

But it gets us in the "wrong" direction with the goal of having
pluggable targets (aka a multi-target compiler)?

Anyway, I suggest we'll see how the space requirements work out.
We should definitely try hard to put the fields on a byte
boundary so accesses become at most a load + and.

Richard.

Reply via email to