|
Quick Lists
|
|
Bug ID:
|
6731641
|
|
Votes
|
0
|
|
Synopsis
|
assert(m->adr_type() == mach->adr_type(),"matcher should not change adr type")
|
|
Category
|
hotspot:compiler2
|
|
Reported Against
|
|
|
Release Fixed
|
hs14(b04)
|
|
State
|
10-Fix Delivered,
bug
|
|
Priority:
|
4-Low
|
|
Related Bugs
|
6715633
|
|
Submit Date
|
30-JUL-2008
|
|
Description
|
CTW runs trigger new assert. Failure observed on sparc -d32 with at least two different jar files:
cloudscape_classes.jar
jmf.jar
Posted Date : 2008-07-30 17:04:47.0
|
|
Work Around
|
N/A
|
|
Evaluation
|
http://hg.openjdk.java.net/jdk7/hotspot-comp/hotspot/rev/c3e045194476
Posted Date : 2008-08-01 19:15:15.0
AddPNode::bottom_type() and AddPNode::mach_bottom_type() produce
different result since the type of in(Address) edge is more
precise (TypPtr::NotNull) then the type of in(Base) edge.
The split_thru_phi code in loopopt.cpp and in memory.cpp
sets igvn.type(x) but does not reset bottom_type for TypeNode* x.
As result TypeNode::_type is not reset.
Missing bottom_type() method for mach node CMoveN.
In ConnectionGraph::split_AddP() the type 't' could be subclass of 'base_t'.
As result t->offset() could be large then base_t's size and it will
cause the failure in add_offset() with narrow oops since TypeOopPtr()
constructor verifies correctness of the offset.
It could happend on subclass's branch (from the type profiling
inlining) which was not eliminated during parsing since the exactness
of the allocation type was not propagated to the subclass type check.
Do nothing for such AddP node and don't process its users since
this code branch will go away.
Posted Date : 2008-08-01 19:20:53.0
|
|
Comments
|
PLEASE NOTE: JDK6 is formerly known as Project Mustang
|
|
|
 |