This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [committed, amdgcn] Remove expcnt waits.
- From: Andrew Stubbs <ams at codesourcery dot com>
- To: "gcc-patches at gcc dot gnu dot org" <gcc-patches at gcc dot gnu dot org>
- Date: Thu, 5 Sep 2019 15:23:22 +0100
- Subject: Re: [committed, amdgcn] Remove expcnt waits.
- Ironport-sdr: JQA5Nl/konNQTF3bmYllf1Y5XQ5XSLoezhC6wjkzmjyvSXDtl37HogrxcTidUUEriP8jKVrulW hO1eWxuC600D/CNB6Vnc1IAWgxoVPzwPYTwQtcm1OkdYoA9owvdypHsz47u/rwAxt+KEkIJ+oG 2YJuyrDzPSJq0SvFENpRE3qNccAyJDz0oOgtHZDXAQNnPYKlsSJxN7+40fvLdgbRJ1Z2dSI/d6 sXQZvjsyRKjhrRTJ+Jlimo6AsJ1VvGoXL3ZSJ7N6jZxCyjQMv5CuU5/VpFGp61kKJfrBGQr3Xp FUo=
- Ironport-sdr: Pcgt856i9IESKZWb7LGbM0AdmgXUeWCwUT5M5D/2Gzae3SLVt5Wti9D73bxY6I/akN+oJBpZ46 jd1Q4ptS1p4wSnqVFMbFfqXW0bSCcWSlt7sKk50f3lMUPcLtiTNzxKZ4N71uF11VgvPjQovCX0 DS+t3QeNdybANJiYlqoyCx0woqJW6h3kjNDICfu9cULNbgHXZLXAS4KaAW4rVzBp5IcautceRT n5YhDhRH7dLlc5QES248IkWR3r0073PKHs85pKEr1bqdfSG+Rq6Smeh17h5josFpfzCMkxwuCO 8dU=
- References: <4d3e0358-9286-b3d6-cb52-90666f11c0ee@codesourcery.com>
On 31/07/2019 13:02, Andrew Stubbs wrote:
However, in a couple of cases there is an exposed-pipeline issue that
needs to be resolved with an actual "nop", which we no longer have. The
patch also takes care of adding these, where appropriate. (As it
happens, the cmpswap instruction will now get both s_waitcnt and nop,
which is unnecessary, but that's because I plan to add proper scheduling
for all the s_waitcnt instructions in the near future, and I don't want
this detail to get forgotten.)
I need to do the same for global_store_* instructions, so I've committed
the attached.
Andrew
Global GCN instructions need nops too.
2019-09-05 Andrew Stubbs <ams@codesourcery.com>
gcc/
* config/gcn/gcn.md (*movti_insn): Set delayeduse for global_store.
(sync_compare_and_swap<mode>_insn): Likewise.
diff --git a/gcc/config/gcn/gcn.md b/gcc/config/gcn/gcn.md
index 926d0120930..a2f4800d318 100644
--- a/gcc/config/gcn/gcn.md
+++ b/gcc/config/gcn/gcn.md
@@ -652,7 +652,7 @@
}
[(set_attr "type" "mult,smem,smem,flat,flat,vmult,vmult,vmult,flat,flat,\
ds,ds")
- (set_attr "delayeduse" "*,*,yes,*,*,*,*,*,*,*,*,*")
+ (set_attr "delayeduse" "*,*,yes,*,*,*,*,*,yes,*,*,*")
(set_attr "length" "*,12,12,12,12,*,*,*,12,12,12,12")])
;; }}}
@@ -1619,7 +1619,7 @@
[(set_attr "type" "smem,flat,flat")
(set_attr "length" "12")
(set_attr "gcn_version" "gcn5,*,gcn5")
- (set_attr "delayeduse" "*,yes,*")])
+ (set_attr "delayeduse" "*,yes,yes")])
(define_insn "sync_compare_and_swap<mode>_lds_insn"
[(set (match_operand:SIDI 0 "register_operand" "= v")