JDK-6680594 : Load + Load isn't canonicalized leading to missed GVN opportunities
Type:Bug
Component:hotspot
Sub-Component:compiler
Affected Version:hs13
Priority:P4
Status:Resolved
Resolution:Fixed
OS:solaris_9
CPU:sparc
Submitted:2008-03-26
Updated:2013-11-01
Resolved:2008-05-21
The Version table provides details related to the release that this issue/RFE will be addressed.
Unresolved : Release in which this issue/RFE will be addressed. Resolved: Release in which this issue/RFE has been resolved. Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.
The logic for commuting binary operations ignores the case where both operations are loads so it doesn't canonicalize them based on idx which can lead to missing GVN opportunities.
Comments
SUGGESTED FIX
repo: /net/jano2.sfbay/export2/hotspot/hg/hotspot-comp.clean
changeset: 77:8a4ef4e001d3
user: never
date: Fri Mar 28 09:00:39 2008 -0700
description:
6680594: Load + Load isn't canonicalized leading to missed GVN opportunities
Reviewed-by: kvn, jrose
files:
src/share/vm/opto/addnode.cpp
28-03-2008
EVALUATION
The fix is simply to handle Load + x and x + Load explicitly and allow Load + Load to fall through.