http://webrev.invokedynamic.info/kvn/6723160/index.html
Fixed 6723160: Nightly failure: Error: meet not symmetric
Problem:
Missing settings of _instance_id value to InstanceBot in
TypeInstPtr::xmeet() and TypeAryPtr::xmeet().
Solution:
Add missing _instance_id settings.
Also:
Replaced klass exactness settings for types with instance_id
with asserts. Add explicit casts to klass exactness and ptr type
where we do instance_id casting.
Mark DecodeN and EncodeP nodes as expensive to avoid their
rematerialization.
Change CallNode::may_modify() to always return false for types
with instance_id since scalar-replaceable allocations are not
passed as arguments (otherwise they will be not scalar-replaceable).
In flatten_alias_type() preserve klass exactness and non-nullness
for types with instance_id, both arrays and instances.
Flatten only array's elements access to have only one alias type.
Set instance_id to InstanceBot (default value) for regular types.
Update inputs of original memory phis in EA split_unique_types()
to avoid intermixing unique instances and general memory operations.
Otherwise we got the assert in SuperWord::mem_slice_preds().
Add more complex search of scalar-replaceable object's fields
values through phis during the allocation elimination.
Added the regression tests for 6724218 since the bug
was fixed in HS14 as part of 6714694 fix.
Reviewed by:
Fix verified (y/n): y, generated code
Other testing:
JPRT, NSK (32-,64-bits, COOP), CTW (32-,64-bits, COOP)