From: Jeff Law <jeffreyalaw@gmail.com>
To: Kito Cheng <kito.cheng@sifive.com>
Cc: "Robin Dapp" <rdapp.gcc@gmail.com>,
gcc-patches <gcc-patches@gcc.gnu.org>,
"kito.cheng" <kito.cheng@gmail.com>,
zengxiao <zengxiao@eswincomputing.com>,
钟居哲 <juzhe.zhong@rivai.ai>
Subject: Re: [PATCH 3/5] [RISC-V] Generate Zicond instruction for select pattern with condition eq or neq to 0
Date: Thu, 3 Aug 2023 08:41:46 -0600 [thread overview]
Message-ID: <cea2bf25-bc49-5fca-3b0b-e1300f1a7fb5@gmail.com> (raw)
In-Reply-To: <CALLt3ThittDvdW4B29Oi3b_-A=VgG4tY9TNnSwDjYPh6XU8i-A@mail.gmail.com>
On 8/3/23 08:31, Kito Cheng wrote:
>>> I am working on that, it seems the cost of vsetvli instruction become 0
>>> due to this change, then loop invariant motion won't hoist vsetvli longer.
>> I haven't looked yet (generating baseline rvv.exp data right now). But
>> before I went to bed last night I was worried that a change snuck
>> through that shouldn't have (changing the toplevel INSN/SET cost
>> handling -- that wasn't supposed to be in the commit). I was too tired
>> to verify and correct without possibly mucking it up further.
>>
>> That'll be the first thing to look at. THe costing change was supposed
>> only affect if-then-else constructs, not sets in general.
>
>
> If so, I think the most simple fix is adding more checks on the set
> cost - only check the SET_SRC is if-then-else?
No, the simple fix is to just remove the errant part of the commit :-0
My tests aren't done, but that does seem to dramatically help. Given it
wasn't supposed to go in as-is and it's causing major problems, I'll
probably just rip it out even though my testing isn't done.
>
> Let me run the regression to see if that works - although the current
> vsetvli cost is too high (4x~5x), but I think it should be fixed later
> with a more complete expermantal.
Exactly. I think we need to do a full audit of the costing paths. I've
been slowly devising a way to do that and I'll probably give it to
Raphael or Jivan once I've fleshed it out a bit more in my head.
The goal is to make sure the costs are sensible and consistent across
the different interfaces. A cost failure is actually a bit hard to find
because all that happens is you get the wrong set of transformations --
but the code still works correctly, it's just not as efficient as it
should be. It doesn't have to be perfect, but we've clearly got a problem.
WRT vsetvli costing. That may ultimately be something that's uarch
dependent. We're working on the assumption that vsetvlis are common in
the code stream and they need to be very efficient from the hardware
standpoint (think as cheap or cheaper than any simple ALU instruction).
I probably can't say what we're doing, but I bet it wouldn't be a
surprise to others doing a high performance V implementation.
jeff
next prev parent reply other threads:[~2023-08-03 14:41 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-08-03 9:27 juzhe.zhong
2023-08-03 13:49 ` Jeff Law
2023-08-03 13:56 ` Kito Cheng
2023-08-03 14:08 ` Jeff Law
2023-08-03 14:31 ` Kito Cheng
2023-08-03 14:41 ` Jeff Law [this message]
2023-08-03 14:56 ` Kito Cheng
2023-08-03 15:09 ` Jeff Law
-- strict thread matches above, loose matches on Subject: below --
2023-07-19 10:11 [PATCH 0/5] Recognize Zicond extension Xiao Zeng
2023-07-19 10:11 ` [PATCH 3/5] [RISC-V] Generate Zicond instruction for select pattern with condition eq or neq to 0 Xiao Zeng
2023-07-25 17:32 ` Jeff Law
2023-07-25 17:55 ` Andreas Schwab
2023-07-28 15:09 ` Jeff Law
2023-07-28 20:59 ` Jeff Law
2023-07-29 9:14 ` Xiao Zeng
2023-08-03 4:59 ` Jeff Law
2023-08-02 6:34 ` Jeff Law
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=cea2bf25-bc49-5fca-3b0b-e1300f1a7fb5@gmail.com \
--to=jeffreyalaw@gmail.com \
--cc=gcc-patches@gcc.gnu.org \
--cc=juzhe.zhong@rivai.ai \
--cc=kito.cheng@gmail.com \
--cc=kito.cheng@sifive.com \
--cc=rdapp.gcc@gmail.com \
--cc=zengxiao@eswincomputing.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).