JDK-7199654 : Remove LoadUI2LNode
  • Type: Bug
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: hs24
  • Priority: P4
  • Status: Resolved
  • Resolution: Fixed
  • OS: generic
  • CPU: generic
  • Submitted: 2012-09-19
  • Updated: 2013-09-04
  • Resolved: 2012-10-09
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 7 JDK 8 Other
7u40Fixed 8Fixed hs24Fixed
Remove LoadUI2LNode from Ideal.

I want to remove LoadUI2L node because, I think, it is wrong and we don't need it in Ideal graph, we can do the same optimization in .ad files with predicate. This node reports its memory_type() as T_LONG but it is actually reading from an integer (4 bytes) field or array element. As result of this mismatch our memory aliasing analysis and vectors construction code could be incorrect. I hit an assert I added into superword.cpp today. LoadUI2L was added as part of "6797305: Add LoadUB and LoadUI opcode class" changes: http://hg.openjdk.java.net/hsx/hotspot-main/hotspot/rev/337400e7a5dd If nobody objects I want a volunteer from our new members to do that. Thanks, Vladimir

Here is new mach node definition: instruct loadUI2L(eRegL dst, memory mem, immL_32bits mask, eFlagsReg cr) %{ match(Set dst (AndL (ConvI2L (LoadI mem)) mask)); effect(KILL cr); Vladimir