<div><br></div><div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr"><<a href="mailto:hotspot-compiler-dev-request@openjdk.org">hotspot-compiler-dev-request@openjdk.org</a>>于2023年5月29日 周一09:01写道:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Send hotspot-compiler-dev mailing list submissions to<br>
        <a href="mailto:hotspot-compiler-dev@openjdk.org" target="_blank">hotspot-compiler-dev@openjdk.org</a><br>
<br>
To subscribe or unsubscribe via the World Wide Web, visit<br>
        <a href="https://mail.openjdk.org/mailman/listinfo/hotspot-compiler-dev" rel="noreferrer" target="_blank">https://mail.openjdk.org/mailman/listinfo/hotspot-compiler-dev</a><br>
or, via email, send a message with subject or body 'help' to<br>
        <a href="mailto:hotspot-compiler-dev-request@openjdk.org" target="_blank">hotspot-compiler-dev-request@openjdk.org</a><br>
<br>
You can reach the person managing the list at<br>
        <a href="mailto:hotspot-compiler-dev-owner@openjdk.org" target="_blank">hotspot-compiler-dev-owner@openjdk.org</a><br>
<br>
When replying, please edit your Subject line so it is more specific<br>
than "Re: Contents of hotspot-compiler-dev digest..."<br>
<br>
<br>
Today's Topics:<br>
<br>
   1. Re: RFR: 8303451: Synchronization entry in C2 debug info is<br>
      misleading [v2] (Daohan Qu)<br>
   2. RFR: 8308892: Bad graph detected in build_loop_late after<br>
      JDK-8305635 (Christian Hagedorn)<br>
   3. Re: RFR: 8308915: RISC-V: Improve temporary vector register<br>
      usage avoiding the use of v0 [v2] (Dingli Zhang)<br>
   4. Re: RFR: 8308915: RISC-V: Improve temporary vector register<br>
      usage avoiding the use of v0 [v2] (Dingli Zhang)<br>
<br>
<br>
----------------------------------------------------------------------<br>
<br>
Message: 1<br>
Date: Sat, 27 May 2023 16:34:15 GMT<br>
From: Daohan Qu <<a href="mailto:duke@openjdk.org" target="_blank">duke@openjdk.org</a>><br>
To: <<a href="mailto:hotspot-compiler-dev@openjdk.org" target="_blank">hotspot-compiler-dev@openjdk.org</a>><br>
Subject: Re: RFR: 8303451: Synchronization entry in C2 debug info is<br>
        misleading [v2]<br>
Message-ID:<br>
        <6wyhvO-8OHzCY3yTorzYtIjR4Xvu2cVNX9pqvY9CZGQ=.<a href="mailto:c257dc76-7544-44b0-94ee-5c89a60c82ed@github.com" target="_blank">c257dc76-7544-44b0-94ee-5c89a60c82ed@github.com</a>><br>
<br>
Content-Type: text/plain; charset=utf-8<br>
<br>
> This should fix [JDK-8303451](<a href="https://bugs.openjdk.org/browse/JDK-8303451" rel="noreferrer" target="_blank">https://bugs.openjdk.org/browse/JDK-8303451</a>).<br>
> <br>
> It is a trivial patch that fixes a misleading code comment at method entry printed by `-XX:+PrintAssembly`.<br>
> <br>
> For exmple,<br>
> <br>
> 0x0000ffffa409da88:   stp x29, x30, [sp, #16]         ;*synchronization entry<br>
> <br>
> will become<br>
> <br>
> 0x0000ffffa409da88:   stp x29, x30, [sp, #16]         ; * invocation entry (also synchronization entry if synchronized)<br>
<br>
Daohan Qu has updated the pull request incrementally with one additional commit since the last revision:<br>
<br>
  Update output again<br>
<br>
-------------<br>
<br>
Changes:<br>
  - all: <a href="https://git.openjdk.org/jdk/pull/14192/files" rel="noreferrer" target="_blank">https://git.openjdk.org/jdk/pull/14192/files</a><br>
  - new: <a href="https://git.openjdk.org/jdk/pull/14192/files/2f21f37b..362fc750" rel="noreferrer" target="_blank">https://git.openjdk.org/jdk/pull/14192/files/2f21f37b..362fc750</a><br>
<br>
Webrevs:<br>
 - full: <a href="https://webrevs.openjdk.org/?repo=jdk&pr=14192&range=01" rel="noreferrer" target="_blank">https://webrevs.openjdk.org/?repo=jdk&pr=14192&range=01</a><br>
 - incr: <a href="https://webrevs.openjdk.org/?repo=jdk&pr=14192&range=00-01" rel="noreferrer" target="_blank">https://webrevs.openjdk.org/?repo=jdk&pr=14192&range=00-01</a><br>
<br>
  Stats: 1 line in 1 file changed: 0 ins; 0 del; 1 mod<br>
  Patch: <a href="https://git.openjdk.org/jdk/pull/14192.diff" rel="noreferrer" target="_blank">https://git.openjdk.org/jdk/pull/14192.diff</a><br>
  Fetch: git fetch <a href="https://git.openjdk.org/jdk.git" rel="noreferrer" target="_blank">https://git.openjdk.org/jdk.git</a> pull/14192/head:pull/14192<br>
<br>
PR: <a href="https://git.openjdk.org/jdk/pull/14192" rel="noreferrer" target="_blank">https://git.openjdk.org/jdk/pull/14192</a><br>
<br>
<br>
------------------------------<br>
<br>
Message: 2<br>
Date: Sun, 28 May 2023 22:13:22 GMT<br>
From: Christian Hagedorn <<a href="mailto:chagedorn@openjdk.org" target="_blank">chagedorn@openjdk.org</a>><br>
To: <<a href="mailto:hotspot-compiler-dev@openjdk.org" target="_blank">hotspot-compiler-dev@openjdk.org</a>><br>
Subject: RFR: 8308892: Bad graph detected in build_loop_late after<br>
        JDK-8305635<br>
Message-ID:<br>
        <K2IRM4px9OtFtfV6RUs3omTtCp9b4gW44d2lWYymklc=.<a href="mailto:bf59e9e7-87b7-45c4-9c2d-701c813f6a0f@github.com" target="_blank">bf59e9e7-87b7-45c4-9c2d-701c813f6a0f@github.com</a>><br>
<br>
Content-Type: text/plain; charset=utf-8<br>
<br>
The cleanup done in [JDK-8305635](<a href="https://bugs.openjdk.org/browse/JDK-8305635" rel="noreferrer" target="_blank">https://bugs.openjdk.org/browse/JDK-8305635</a>) wrongly identifies unrelated Parse Predicates which are not cleaned up, yet. It just walks from the entry of the loop up and tries to find each of the three Parse Predicates once but in no particular order. This order insensitive walk is wrong as seen in the following graph (from the attached replay file of this bug):<br>
<br>
![image](<a href="https://github.com/openjdk/jdk/assets/17833009/32f73fcb-1d36-40d6-938c-2d282a98ea52" rel="noreferrer" target="_blank">https://github.com/openjdk/jdk/assets/17833009/32f73fcb-1d36-40d6-938c-2d282a98ea52</a>)<br>
<br>
We first find `116 Parse Predicate` for Loop Predicates, then `84 Parse Predicate` for Profiled Loop Predicates and then stop when finding `71 Parse Predicate` for Loop Predicates because we've already found a Parse Predicate for Loop Predicates already. We then wrongly create Loop Predicates (above `116 Parse Predicate`) which are below newly created Profiled Loop Predicates (above `84 Parse Predicate`). This could lead to a bad graph because of data dependencies that rely on the fact that Loop Predicates are above Profiled Loop Predicates:<br>
<a href="https://github.com/openjdk/jdk/blob/547a8b40b324917e66c71409b31421feacce79d7/src/hotspot/share/opto/loopPredicate.cpp#L1529-L1543" rel="noreferrer" target="_blank">https://github.com/openjdk/jdk/blob/547a8b40b324917e66c71409b31421feacce79d7/src/hotspot/share/opto/loopPredicate.cpp#L1529-L1543</a><br>
<br>
The fix is straight forward to make the assignment of Parse Predicate projections in `ParsePredicates` aware of the relative ordering constraint. Note that this class will be refactored again in [JDK-8305636](<a href="https://bugs.openjdk.org/browse/JDK-8305636" rel="noreferrer" target="_blank">https://bugs.openjdk.org/browse/JDK-8305636</a>). But I think properly fixing this first is better than waiting for JDK-8305636 to go in.<br>
<br>
Thanks,<br>
Christian<br>
<br>
-------------<br>
<br>
Commit messages:<br>
 - 8308892: Bad graph detected in build_loop_late after JDK-8305635<br>
<br>
Changes: <a href="https://git.openjdk.org/jdk/pull/14196/files" rel="noreferrer" target="_blank">https://git.openjdk.org/jdk/pull/14196/files</a><br>
 Webrev: <a href="https://webrevs.openjdk.org/?repo=jdk&pr=14196&range=00" rel="noreferrer" target="_blank">https://webrevs.openjdk.org/?repo=jdk&pr=14196&range=00</a><br>
  Issue: <a href="https://bugs.openjdk.org/browse/JDK-8308892" rel="noreferrer" target="_blank">https://bugs.openjdk.org/browse/JDK-8308892</a><br>
  Stats: 8 lines in 1 file changed: 6 ins; 0 del; 2 mod<br>
  Patch: <a href="https://git.openjdk.org/jdk/pull/14196.diff" rel="noreferrer" target="_blank">https://git.openjdk.org/jdk/pull/14196.diff</a><br>
  Fetch: git fetch <a href="https://git.openjdk.org/jdk.git" rel="noreferrer" target="_blank">https://git.openjdk.org/jdk.git</a> pull/14196/head:pull/14196<br>
<br>
PR: <a href="https://git.openjdk.org/jdk/pull/14196" rel="noreferrer" target="_blank">https://git.openjdk.org/jdk/pull/14196</a><br>
<br>
<br>
------------------------------<br>
<br>
Message: 3<br>
Date: Mon, 29 May 2023 00:55:42 GMT<br>
From: Dingli Zhang <<a href="mailto:dzhang@openjdk.org" target="_blank">dzhang@openjdk.org</a>><br>
To: <<a href="mailto:hotspot-compiler-dev@openjdk.org" target="_blank">hotspot-compiler-dev@openjdk.org</a>><br>
Subject: Re: RFR: 8308915: RISC-V: Improve temporary vector register<br>
        usage avoiding the use of v0 [v2]<br>
Message-ID:<br>
        <B3UopfF-5JbpYRVNRTbLkYWPlyzMQ1tDGYfaEax8MYA=.<a href="mailto:907e2247-489d-4081-af8b-b138350dfe7a@github.com" target="_blank">907e2247-489d-4081-af8b-b138350dfe7a@github.com</a>><br>
<br>
Content-Type: text/plain; charset=utf-8<br>
<br>
> We have some macro assembler functions that use v0 hardcoded as a temporary<br>
> register currently.<br>
> <br>
> However, the mask value used to control execution of a masked vector <br>
> instruction is always supplied by vector register v0 in RVV1.0[1]. If v0 is <br>
> alive holding a mask value the the same time,  this will cause spilling of <br>
> this vector register. So it is better to replace v0 with other vector registers to <br>
> improve code execution efficiency.<br>
> <br>
> In addition, this pr also adds several missing spaces in the format of the<br>
> instructions, and fixes several pipeline classes.<br>
> <br>
> [1] <a href="https://github.com/riscv/riscv-v-spec/blob/v1.0/v-spec.adoc" rel="noreferrer" target="_blank">https://github.com/riscv/riscv-v-spec/blob/v1.0/v-spec.adoc</a><br>
> <br>
> ## Testing:<br>
> QEMU w/ UseRVV:<br>
> - [x] Tier1 tests (release)<br>
> - [x] Tier2 tests (release)<br>
> - [x] Tier3 tests (release)<br>
> - [x] test/jdk/jdk/incubator/vector (fastdebug)<br>
<br>
Dingli Zhang has updated the pull request incrementally with one additional commit since the last revision:<br>
<br>
  Fix comment<br>
<br>
-------------<br>
<br>
Changes:<br>
  - all: <a href="https://git.openjdk.org/jdk/pull/14166/files" rel="noreferrer" target="_blank">https://git.openjdk.org/jdk/pull/14166/files</a><br>
  - new: <a href="https://git.openjdk.org/jdk/pull/14166/files/05446b0a..9fea08dc" rel="noreferrer" target="_blank">https://git.openjdk.org/jdk/pull/14166/files/05446b0a..9fea08dc</a><br>
<br>
Webrevs:<br>
 - full: <a href="https://webrevs.openjdk.org/?repo=jdk&pr=14166&range=01" rel="noreferrer" target="_blank">https://webrevs.openjdk.org/?repo=jdk&pr=14166&range=01</a><br>
 - incr: <a href="https://webrevs.openjdk.org/?repo=jdk&pr=14166&range=00-01" rel="noreferrer" target="_blank">https://webrevs.openjdk.org/?repo=jdk&pr=14166&range=00-01</a><br>
<br>
  Stats: 1 line in 1 file changed: 0 ins; 0 del; 1 mod<br>
  Patch: <a href="https://git.openjdk.org/jdk/pull/14166.diff" rel="noreferrer" target="_blank">https://git.openjdk.org/jdk/pull/14166.diff</a><br>
  Fetch: git fetch <a href="https://git.openjdk.org/jdk.git" rel="noreferrer" target="_blank">https://git.openjdk.org/jdk.git</a> pull/14166/head:pull/14166<br>
<br>
PR: <a href="https://git.openjdk.org/jdk/pull/14166" rel="noreferrer" target="_blank">https://git.openjdk.org/jdk/pull/14166</a><br>
<br>
<br>
------------------------------<br>
<br>
Message: 4<br>
Date: Mon, 29 May 2023 01:01:02 GMT<br>
From: Dingli Zhang <<a href="mailto:dzhang@openjdk.org" target="_blank">dzhang@openjdk.org</a>><br>
To: <<a href="mailto:hotspot-compiler-dev@openjdk.org" target="_blank">hotspot-compiler-dev@openjdk.org</a>><br>
Subject: Re: RFR: 8308915: RISC-V: Improve temporary vector register<br>
        usage avoiding the use of v0 [v2]<br>
Message-ID:<br>
        <xMXJuW1gz2StrqaVlpEkijG9HiTb0VOIcMhfvo6oKuQ=.<a href="mailto:9e998047-1019-4ac9-ac6c-22bef573048f@github.com" target="_blank">9e998047-1019-4ac9-ac6c-22bef573048f@github.com</a>><br>
<br>
Content-Type: text/plain; charset=utf-8<br>
<br>
On Fri, 26 May 2023 09:41:19 GMT, Fei Yang <<a href="mailto:fyang@openjdk.org" target="_blank">fyang@openjdk.org</a>> wrote:<br>
<br>
>> Dingli Zhang has updated the pull request incrementally with one additional commit since the last revision:<br>
>> <br>
>>   Fix comment<br>
><br>
> Marked as reviewed by fyang (Reviewer).<br>
<br>
@RealFYang @yhzhu20 Thanks for the review!<br>
<br>
-------------<br>
<br>
PR Comment: <a href="https://git.openjdk.org/jdk/pull/14166#issuecomment-1566339436" rel="noreferrer" target="_blank">https://git.openjdk.org/jdk/pull/14166#issuecomment-1566339436</a><br>
<br>
<br>
End of hotspot-compiler-dev Digest, Vol 192, Issue 196<br>
******************************************************<br>
</blockquote></div></div><span class="gmail_signature_prefix">-- </span><br><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature"><div><br></div><div>张力</div>一切有为法,当做如是观!</div>