What Do You Think? JDK-8213084: Rework and enhance Print[Opto]Assembly output
Schmidt, Lutz
lutz.schmidt at sap.com
Thu Nov 29 16:02:04 UTC 2018
Hi Andrew, Tobias,
thank you for your input! That's exactly what I hoped for: everything from awful to awesome. OK, the middle part is still missing. Maybe there are others expressing their opinion in the coming days. Such a change will never make everybody completely happy. I will try to adapt to cause only acceptable pain for everyone.
@Andrew On your specific comments:
- With "vertical whitespace" you mean vertical (columnar) alignment, I assume. No need to be afraid, vertical alignment is very important to me as well. X86 was rather well aligned from the beginning, other platforms not so.
- Empty (blank) lines: That's a matter of personal taste. When looking at a larger piece of code, I like the more condensed format. Furthermore, you can fit more instructions on one page/screen.
- Block header lines: I like the in-block and out-block grouping by parentheses (or any other character). No emotional connection with everything else. Suggestion:
;; B3: # (B5 B6) <- (B1 B2 B3 B4) Freq: 0.999979
That's it for now. Further comments welcome, of course.
Thanks,
Lutz
On 29.11.18, 11:54, "Andrew Haley" <aph at redhat.com> wrote:
On 11/28/18 4:16 PM, Schmidt, Lutz wrote:
> Looking forward to your comments, whatever they may be. And, please, cross-post to other lists if you see a requirement.
Current:
----------------------------------------------------------------------------------------------------
;; B3: # B112 B4 <- B2 Freq: 0.999979
0x00007f2cdfd26d08: mov (%rsp),%r10
0x00007f2cdfd26d0c: mov 0x4c(%r10),%r9d ;*getfield htab {reexecute=0 rethrow=0 return_oop=0}
; - spec.benchmarks._201_compress.Compressor::compress at 15
0x00007f2cdfd26d10: mov 0xc(%r9),%r11d ;*getfield size {reexecute=0 rethrow=0 return_oop=0}
; - spec.benchmarks._201_compress.Compressor::compress at 22
; implicit exception: dispatches to 0x00007f2cdfd27383
----------------------------------------------------------------------------------------------------
Yours:
----------------------------------------------------------------------------------------------------
;; block B3: # (out B115 B4 <- (in B2 )) Freq: 0.999979
0x00007fe1b77ff364 (+0x0044): mov 0x4c(%rbp),%r10d ;*getfield htab {reexecute=0 rethrow=0 return_oop=0}
; - spec.benchmarks._201_compress.Compressor::compress at 15
0x00007fe1b77ff368 (+0x0048): mov 0xc(%r10),%r8d ;*getfield size {reexecute=0 rethrow=0 return_oop=0}
; - spec.benchmarks._201_compress.Compressor::compress at 22
; implicit exception: dispatches to 0x00007fe1b77ffdfa
----------------------------------------------------------------------------------------------------
Current is better than Yours, IMO. Vertical whitespace is good, please don't
lose it.
Your constant pool output is extremely verbose, and this is not an improvement.
There must be some compromise.
Whenever you add more detail, there is always the risk of hiding what is
essential. Why this:
;; block B3: # (out B115 B4 <- (in B2 )) Freq: 0.999979
rather than
;; B3: # B112 B4 <- B2 Freq: 0.999979
?
--
Andrew Haley
Java Platform Lead Engineer
Red Hat UK Ltd. <https://www.redhat.com>
EAC8 43EB D3EF DB98 CC77 2FAD A5CD 6035 332F A671
More information about the hotspot-compiler-dev
mailing list