RFR: 8269598: Regressions up to 5% on aarch64 seems due to JDK-8268858 [v2]
Joshua Zhu
jzhu at openjdk.java.net
Tue Jul 13 12:56:21 UTC 2021
> Hi,
>
> Please review this change.
> It fixes the SPECjvm2008 regression on aarch64 caused by JDK-8268858.
>
> Compressor::compress() in case "compress" of SPECjvm2008 performed
> degraded by 5% due to extra spillings. There existed an LRG that covered
> almost the entire function, hence it interfered with more live ranges.
> These interferences caused the LRG no freedom and lastly RA had to spill
> it to stack. After the fix, the LRG is split into two shorter live
> ranges. Both LRGs are assigned to registers due to fewer interferences.
>
> See details at: http://cr.openjdk.java.net/~jzhu/8269598/analysis.pdf
> OptoAssembly: http://cr.openjdk.java.net/~jzhu/8269598/
>
> The root cause is:
> When PreserveFramePointer is off, frame pointer is allocatable, but
> different from other SOC registers, it is excluded from fatproj's mask
> because its save type is No-Save. Therefore fatproj was not treated as
> high-pressure transition point in the previous int_pressure_limit()
> computation. This fix ensures high pressure at fatproj when
> PreserveFramePointer is off. See check_pressure_at_fatproj() [1].
>
> After this fix, the regression disappeared.
> The result of regression cases in SPECjvm2008:
> http://cr.openjdk.java.net/~jzhu/8269598/Book1.pdf
>
> [1] https://github.com/openjdk/jdk/blob/375fc2a2b29c454b36d3ae068a080b28f6ec04e9/src/hotspot/share/opto/chaitin.hpp#L620
>
> Best Regards,
> Joshua
Joshua Zhu has refreshed the contents of this pull request, and previous commits have been removed. The incremental views will show differences compared to the previous content of the PR.
-------------
Changes:
- all: https://git.openjdk.java.net/jdk/pull/4764/files
- new: https://git.openjdk.java.net/jdk/pull/4764/files/d3561e17..07e90524
Webrevs:
- full: https://webrevs.openjdk.java.net/?repo=jdk&pr=4764&range=01
- incr: https://webrevs.openjdk.java.net/?repo=jdk&pr=4764&range=00-01
Stats: 8 lines in 1 file changed: 0 ins; 8 del; 0 mod
Patch: https://git.openjdk.java.net/jdk/pull/4764.diff
Fetch: git fetch https://git.openjdk.java.net/jdk pull/4764/head:pull/4764
PR: https://git.openjdk.java.net/jdk/pull/4764
More information about the hotspot-compiler-dev
mailing list