United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
Bug ID: JDK-7199654 Remove LoadUI2LNode
JDK-7199654 : Remove LoadUI2LNode

Details
Type:
Bug
Submit Date:
2012-09-19
Status:
Resolved
Updated Date:
2013-09-04
Project Name:
JDK
Resolved Date:
2012-10-09
Component:
hotspot
OS:
generic
Sub-Component:
compiler
CPU:
generic
Priority:
P4
Resolution:
Fixed
Affected Versions:
hs24
Fixed Versions:
hs25 (b05)

Related Reports
Backport:
Backport:
Backport:
Backport:
Backport:
Backport:

Sub Tasks

Description
Remove LoadUI2LNode from Ideal.

                                    

Comments
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
                                     
2012-09-19
URL:   http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/f6badecb7ea7
User:  kvn
Date:  2012-10-09 21:46:46 +0000

                                     
2012-10-09
URL:   http://hg.openjdk.java.net/hsx/hsx25/hotspot/rev/f6badecb7ea7
User:  amurillo
Date:  2012-10-12 23:14:51 +0000

                                     
2012-10-12
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
                                     
2012-09-19



Hardware and Software, Engineered to Work Together