SUGGESTED FIX
Set control edge for EncodeP and DecodeN nodes using MemNode::Ideal_DU_PostCCP().
Also fix next problems:
- replace Type::is_narrow() with more precise Type::is_ptr_to_narrowoop()
defined during TypeOopPtr construction,
- use subclass check instead of alias types check in CallNode::may_modify(),
- call PhiNode::split_out_instance() also for Phi nodes with
non-instance OopPtr type which matches the instance type,
- stop compilation instead of VM exit when there is no space
for scratch buffer in CodeCache,
- don't flatten instance type in alias types,
- skip the split through phi in LoadNode::Ideal() if the Region node
dominates load's address,
- an allocation is not scalar replaceable if the resuilt is stored
into unknown array's element,
- try both Region's input paths in Node::dominates(),
- add missing checks for ConN node.
Added the test case. Also added the test case for 6689060.
|