src/share/vm/opto/subnode.cpp

changeset 468
3288958bf319
parent 435
a61af66fc99e
child 548
ba764ed4b6f2
     1.1 --- a/src/share/vm/opto/subnode.cpp	Thu Feb 28 15:40:09 2008 -0800
     1.2 +++ b/src/share/vm/opto/subnode.cpp	Fri Feb 29 09:57:18 2008 -0800
     1.3 @@ -614,6 +614,13 @@
     1.4    const TypeOopPtr* p0 = r0->isa_oopptr();
     1.5    const TypeOopPtr* p1 = r1->isa_oopptr();
     1.6    if (p0 && p1) {
     1.7 +    Node* in1 = in(1)->uncast();
     1.8 +    Node* in2 = in(2)->uncast();
     1.9 +    AllocateNode* alloc1 = AllocateNode::Ideal_allocation(in1, NULL);
    1.10 +    AllocateNode* alloc2 = AllocateNode::Ideal_allocation(in2, NULL);
    1.11 +    if (MemNode::detect_ptr_independence(in1, alloc1, in2, alloc2, NULL)) {
    1.12 +      return TypeInt::CC_GT;  // different pointers
    1.13 +    }
    1.14      ciKlass* klass0 = p0->klass();
    1.15      bool    xklass0 = p0->klass_is_exact();
    1.16      ciKlass* klass1 = p1->klass();

mercurial