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.

To download the current JDK release, click here.
JDK 6 JDK 7 Other
6u14Fixed 7Fixed hs13Fixed
Description
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.
26-03-2008