-
Enhancement
-
Resolution: Fixed
-
P3
-
6
-
b06
-
generic
-
solaris_8
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-2180091 | 7 | Christian Thalinger | P3 | Closed | Fixed | b65 |
JDK-2180661 | 6u18 | Christian Thalinger | P3 | Closed | Fixed | b01 |
The optimizer should be told to normalize (AndL (ConvI2L x) 0xFF) to (ConvI2L
(AndI x 0xFF)), and then the existing matcher rule will work for free. The
suggested fix is OK only as a point fix in Tiger, since it mixes optimizer
knowledge into the matcher.
The optimizer should commute I2L with And for any mask that fits in 32 bits.
Also, the matcher should get rid of LDSB for any mask less than 0xFF. Also,
the matcher should remove useless I2UL conversions in more places. These are
more profitable and complex fixes, for Dragon.
(AndI x 0xFF)), and then the existing matcher rule will work for free. The
suggested fix is OK only as a point fix in Tiger, since it mixes optimizer
knowledge into the matcher.
The optimizer should commute I2L with And for any mask that fits in 32 bits.
Also, the matcher should get rid of LDSB for any mask less than 0xFF. Also,
the matcher should remove useless I2UL conversions in more places. These are
more profitable and complex fixes, for Dragon.
- backported by
-
JDK-2180091 Remove useless I2L conversions
-
- Closed
-
-
JDK-2180661 Remove useless I2L conversions
-
- Closed
-
- relates to
-
JDK-6863155 Server compiler generates incorrect code (x86, long, bitshift, bitmask)
-
- Closed
-
-
JDK-8032207 C2: assert(VerifyOops || MachNode::size(ra_) <= (3+1)*4) failed: bad fixed size
-
- Closed
-